比如我想取得:windows.exe(正在运行的程序或者进程)的目录,该怎么操作.绝对给分的  我是知恩图报的人

解决方案 »

  1.   

    参考一下这段代码:
    dwThreadID: DWORD;  //主线程的ID
    Curwindow: Thandle; //取窗口的句柄    这两个就不用我说了吧....
    begin    GetWindowThreadProcessId(Curwindow, @dwThreadID);
        {获取路径}
         if dwThreadID<>0 then
          begin
          hWindow:= OpenProcess(PROCESS_ALL_ACCESS,false,dwThreadID);
            if hWindow<>0 then
              begin
               if  EnumProcessModules(hWindow,@hMod,sizeof(hMod),cbNeeded)  then
                 begin
                 SetLength(FilePatch, MAX_PATH);
                 iLen := GetModuleFileNameEx(hWindow, hMod, PCHAR(FilePatch),  MAX_PATH);
                     if  iLen  <>  0  then
                         begin
                          SetLength(FilePatch,  StrLen(PCHAR(FilePatch)));
                          PatchEdit.Text:=FilePatch;
                         end;
                 end;
                 CloseHandle(hWindow);
              end;
          end;
    end;
      

  2.   

    我想问下是:取特定程序的目录,,比如windows.exe 这个进程..该如何操作?.谢谢这位大叔.
      

  3.   

    GetModuleFileName 获取一个已装载模板的完整路径名称   自己看帮助~~`
      

  4.   

    再教你一个API 刚才那个做第2步用  第一步找出进程的话用枚举进程的API CreateToolhelp32SanpShot
      

  5.   

    Delphi 在启动应用程序时与 C 语言一样会传递命令行参数给应用程序,第一个参数(索引号为零)表示应用程序本身的文件名(包括完整的路径),这个 String 参数由函数 ParamStr(0) 返回。
            顺便说一句,Delphi 提供了分析文件名的多个函数,如果你需要从文件名中得到路径名,可用下面的两个函数,这两个函数有一点点微小的差别:
      
      ExtractFilePath(FileName:String)
      该函数返回路径名,其结尾字符总是“\”
      
      ExtractFileDir(FileName:String)
      该函数同样返回路径名,但不包括结尾的字符“\”,除非返回的路径是根目录。