Registriert seit: 3. Sep 2004
4.629 Beiträge
Delphi 10.2 Tokyo Starter
|
Re: Fremden Thread anhalten (SuspendThread)
10. Dez 2006, 13:28
Habe jetzt folgendes gefunden:
Code:
unsigned long GetTargetThreadIdFromWindow(char *className, char *windowName)
{
HWND targetWnd;
HANDLE hProcess
unsigned long processId, pTID, threadID;
targetWnd = FindWindow(className, windowName);
GetWindowThreadProcessId(targetWnd, &processId);
_asm {
mov eax, fs:[0x18]
add eax, 36
mov [pTID], eax
}
hProcess = OpenProcess(PROCESS_VM_READ, false, processID);
ReadProcessMemory(hProcess, (const void *)pTID, &threadID, 4, NULL);
CloseHandle(hProcess);
return threadID;
}
Kann mir das jemand nach Delphi portieren?
Ein paar Zeilen kann man weglassen, da ich die PID des Prozesses bereits kenne und nicht anhand des Fensterhandles ermitteln muss. Ich nehme einfach mal 435 als Beispiel.
Code:
unsigned long GetTargetThreadIdFromWindow(char *className, char *windowName)
{
HWND targetWnd;
HANDLE hProcess
unsigned long processId, pTID, threadID;
processID = 435;
_asm {
mov eax, fs:[0x18]
add eax, 36
mov [pTID], eax
}
hProcess = OpenProcess(PROCESS_VM_READ, false, processID);
ReadProcessMemory(hProcess, (const void *)pTID, &threadID, 4, NULL);
CloseHandle(hProcess);
return threadID;
}
Vielen Dank
Florian
|
|
Zitat
|