| Код | WindowName := FindWindow(nil, 'MY APP NAME'); GetWindowThreadProcessId(WindowName, @ProcessId); HandleWindow := OpenProcess(PROCESS_ALL_ACCESS, False, ProcessId); If HandleWindow<>0 then begin GCL:=Cardinal(GetProcAddress(GetModuleHandle('kernel32.dll'),'GetCommandLineA')); if GCL<>0 then begin if ReadProcessMemory(HandleWindow,Pointer(GCL+1),@DW,4,NumWriteRead)and(NumWriteRead=4)and ReadProcessMemory(HandleWindow,Pointer(DW),@StrAddr,4,NumWriteRead)and(NumWriteRead=4) then begin SetString(AppCommandLineA, nil, MAX_PATH); if ReadProcessMemory(HandleWindow,Pointer(StrAddr),@AppCommandLineA[1],Length(AppCommandLineA),NumWriteRead) then begin SetLength( AppCommandLineA,Pos(#0, AppCommandLineA)-1); end else AppCommandLineA:=''; end; end; CloseHandle(HandleWindow); end;
|
В AppCommandLineA будет путь к программе. |