我是通过handle:=FindWindow(‘xxx',nil)得到handle的,请问怎么通过这个handle获得xxx这个程序的目录?

解决方案 »

  1.   

    midwinter(仲冬)回复于 2005-01-23 09:37:48 得分 0
    整理出来就是这样:  
      function   GetModuleFileNameEx(hProcess:   HINST;   hModule:   HINST;   lpFilename:   PChar;  
          nSize:   DWORD):   DWORD;   stdcall;  
       
      function   GetModuleFileNameEx;   external   'psapi.dll'   name   'GetModuleFileNameExA';  
       
      function   GetModuleFileNameFromWindow(hWnd:   HWND):   string;  
      var  
          Buffer:   array[0..54]   of   Char;  
          ProcessID:   Cardinal;  
          hProcess:   Cardinal;  
      begin  
          Result   :=   '';  
          if   hWnd   <>   0   then  
          begin  
              GetWindowThreadProcessId(hWnd,   ProcessID);  
              hProcess   :=   OpenProcess(PROCESS_ALL_ACCESS,   True,   ProcessID);  
              if   hProcess   <>   0   then  
              begin  
                  GetModuleFileNameEx(hProcess,   0,   @Buffer,   255);  
                  Result   :=   Buffer;  
              end;  
          end;  
      end;引用:http://topic.csdn.net/t/20050117/22/3733196.html