我是一名新手,学习delphi 还没一周时间..但却被他迷住了..现在有一个难题,,捆饶我3天3夜了..比如:我现在想取:delphi32.exe(进程)的目录,显示在edit.text的内容中. 该怎么做?谁能给我一个完整的代码那....包括uses var 需要声明哪些变量?.

解决方案 »

  1.   

     ShowMessage(ExtractFilePath(ParamStr(0)));//可执行程序的当前所在目录
      

  2.   

    这...谢谢您的回答,,但我想要的是完整的代码.比如取:delphi32.exe 所在的目录?.
    该如何操作..小弟跪求.新手..
      

  3.   

    顶额...详细给出代码吧...跪求ing...
      

  4.   

    var
      currentDirectory: string;
    begin
      currentDirectory:= ExtractFilePath(Application.Name);
      ShowMessage(currentDirectory);
    end;
      

  5.   

    谢谢...但是又出现错误了..currentDirectory:=  ExtractFilePath(Application.Name);这行[Error] main.pas(160): Missing operator or semicolon
    [Fatal Error] mymir.dpr(6): Could not compile used unit 'main.pas'如果我把Application.Name改为:delphi.exe 是否是弹出它的目录路径?
      

  6.   

    问题解决了,,但是:Application.Name 比如我想改成:qq.exe 缺不起作用...谢谢了,,我是新手,非常不好意思。。
      

  7.   

    急..RMB悬赏100.....帮忙完整解答,,谢谢了..要的是进程的目录哦..
      

  8.   

    http://dev.csdn.net/develop/article/64/64438.shtm
    GetModuleFileNameEx 在PsAPI单元
      

  9.   

    完整的代码,参考看看uses
      TLHelp32, PSAPI;procedure TForm1.Button1Click(Sender: TObject);
    var 
      AHandle: LongWord;
      AProcessEntry: TProcessEntry32;
      AFileName: array [0..MAX_PATH] of Char;
      AFound: Boolean;
    begin
      AHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
      try
        AProcessEntry.dwSize := Sizeof(AProcessEntry);
        AFound := Process32First(AHandle, AProcessEntry);
        while AFound do
        begin
          if SameText(AProcessEntry.szExeFile, 'Delphi32.exe') and
            (GetModuleFilenameEx(openprocess(PROCESS_QUERY_INFORMATION
              or PROCESS_VM_READ, False, AProcessEntry.th32ProcessID), 0,
              @AFileName[0], SizeOf(AFileName)) > 0 )then
          begin
            Edit1.Text := AFileName;
            Exit;
          end;
          AFound := Process32Next(AHandle, AProcessEntry);
      end;
      finally
        CloseHandle(AHandle);
      end;
    end;
      

  10.   

    那将如何去掉文件名呢?谢谢12rain. 主要的是路径..呵呵..
      

  11.   

    3天没吃饭,你现在应该是气若游丝,可怜... ^o*
    ExtractFilePath 可剥离文件,得到文件路径