![]() |
Parameter aus externer Anwendung auslesen
Gibt es eine Moeglichkeit die Parameter aus einer laufenden Anwendung auszulesen?
Es muss ja Moeglich sein, da paramstr() auf die besagten Daten zugreifen kann, nur wie komme _ich_ daran? --win32 |
Re: Parameter aus externer Anwendung auslesen
*push*
hat den keiner eine idee? :( |
Re: Parameter aus externer Anwendung auslesen
IMHO stehen die Parameter der Applikation auf dem Stack der Applikation.
Bei einer externen Applikation müsstest du also in deren Speicher eindringen und auf deren Stack zugreifen. Da hoffe ich eigentlich, dass Windows das verbietet. |
Re: Parameter aus externer Anwendung auslesen
Zitat:
|
Re: Parameter aus externer Anwendung auslesen
ok, danke jetzt habe ich wenigstens schonmal einen ansatz.
|
Re: Parameter aus externer Anwendung auslesen
Hi,
wenn du noch nicht fertig bist, dann kannst du dir hier vielleicht ein paar Anregungen holen: ![]() Grüße vom marabu |
Re: Parameter aus externer Anwendung auslesen
Delphi-Quellcode:
function AufrufParameter(ProcessId : DWORD) : String;
var MBI : TMemoryBasicInformation; Buffer,PosCmdLine : Pointer; SystemInfo : TSystemInfo; Size : DWORD; CmdLine : WideString; LengthCmdLine : Word; ProcessHandle : THandle; begin Result := ''; FillChar(SystemInfo,SizeOf(TSystemInfo),0); GetSystemInfo(SystemInfo); GetMem(Buffer,SystemInfo.dwPageSize); Size := SizeOf(TMemoryBasicInformation); FillChar(MBI,Size,0); ProcessHandle := OpenProcess(PROCESS_VM_READ or PROCESS_QUERY_INFORMATION, False, ProcessId); if VirtualQueryEx(ProcessHandle,Pointer($20000),MBI,Size) = Size then if ReadProcessMemory(ProcessHandle,MBI.BaseAddress,Buffer,SystemInfo.dwPageSize,DWORD(nil^)) then begin LengthCmdLine := PWord(Longint(Buffer) + $42)^; if LengthCmdLine < 520 then begin SetLength(CmdLine,LengthCmdLine); PosCmdLine := Pointer(PLongint(Longint(Buffer) + $44)^); if ReadProcessMemory(ProcessHandle,PosCmdLine,PWideChar(CmdLine),LengthCmdLine,DWORD(nil^)) then Result := Copy(CmdLine,1,Pos(#0,CmdLine) - 1); end; end; CloseHandle(Processhandle); FreeMem(Buffer); end; |
Re: Parameter aus externer Anwendung auslesen
danke euch beiden bin noch nicht fertig, werde aber erstmal versuchen es alleine zu loesen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:02 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz