RT,我们可以通过一系列的API获取进程的路径,但是如果是像记事本,WORD文档,EXECL文档,WINDOWS图片浏览器等程序,我们得到的只是系统目录下的程序
如:NODEPAD。EXE ,返回来的结果是 c:\windows\notepad.exe,那有没有一种办法可以得知这个记事本到底是哪个目录下的哪个文件?
比如我打开的是e:\a.txt,通过枚举得来的却是 c:\windows\notepad.exe  这个路径,能不能得到 e:\a.txt这个路径?function   GetPathFileofModule(ModuleName:String):String;   
var   hProcSnap:   THandle;   
      pProcess:   THandle;   
      pe32:   TProcessEntry32;   
      s:   string;   
      buf:array[0..MAX_PATH]   of   char;   
      hMod:HMODULE;   
      cbNeeded:DWORD;   
begin   
   hProcSnap:=CreateToolHelp32SnapShot(TH32CS_SNAPALL,   0);   
   if  hProcSnap=INVALID_HANDLE_VALUE   then   Exit;   
   pe32.dwSize:=SizeOf(ProcessEntry32);   
   if  Process32First(hProcSnap,pe32)=True then   
       while   Process32Next(hProcSnap,pe32)=True   do   
       begin   
          if   uppercase(pe32.szExeFile)=uppercase(ModuleName)   then   
          begin   
             pProcess:=OpenProcess(PROCESS_QUERY_INFORMATION   or  PROCESS_VM_READ,FALSE, pe32.th32ProcessID);                                                       
             if   pProcess<>0   then   
             begin   
                if   EnumProcessModules(   pProcess,@hMod,sizeof(hMod),cbNeeded)   then   
                begin   
                   ZeroMemory(@buf,MAX_PATH+1);   
                   GetModuleFileNameEx(pProcess,   hMod,buf,MAX_PATH+1);   
                   Result:=strpas(buf);   
                end;   
             end;   
          end;   
       end;   
      CloseHandle(hProcSnap);   
  end; 
这个函数返回的无法实现我的要求!!!