使用EnumWindows函数可以枚举所有顶层窗口,并且可以得到这些窗口的句柄,但我无法得到每个程序所在的路径,下面是我的代码,请指点。
function EnumWndProc(hwnd:Thandle;param:Cardinal):Boolean;stdcall;
var
  strWinMoudleName:string;
  iNumOfRunningProgram:integer;
  iLeiJi:integer;
  iWinInstance:integer;
begin
  iLeiJi:=0;
  iNumOfRunningProgram:=FrmMain.GetNumOfRunningProgram(ByNumsOfProgram);
  Result:=true;
  iWinInstance:=GetWindowLong(Hwnd,GWL_HINSTANCE);
  setlength(strWinMoudleName,100);
  GetModuleFileName(iWinInstance,pchar(strWinMoudleName),length       (strWinMoudleName));
  strWinMoudleName:=pchar(strWinMoudleName);//为什么这里总是工程的路径
end;