ich mal wieder
habe das jetzt folgendermassen versucht zu lösen:
der service guckt, ob eine anwendung namens sender.exe läuft mit folgendem code:
Delphi-Quellcode:
function TTestService.GetSenderProcessHandle:Cardinal;
var
h: THandle;
rec: TProcessEntry32W;
ProcessHandle: THandle;
begin
Result := 0;
h := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
try
rec.dwSize := sizeof(rec);
if Process32FirstW(h, rec) then
repeat
if Uppercase(string(rec.szExeFile)) = UpperCase('sender.exe') then
begin
Result := rec.th32ProcessID;
ProcessHandle := OpenProcess(PROCESS_QUERY_INFORMATION, False, rec.th32ProcessID);
Result := ProcessHandle;
CloseHandle(ProcessHandle);
Break;
end;
until not Process32NextW(h, rec);
finally
CloseHandle(h);
end;
end;
danach versuche ich es mit duplicatehandle folgendermassen:
Delphi-Quellcode:
if not DuplicateHandle(GetCurrentProcess, FMutexHandle,GetCurrentProcess, @ProcessHandle, 0, FALSE, DUPLICATE_SAME_ACCESS) then
RaiseLastWin32Error;
nachdem ich das gemacht habe versuche ich mich mit sender.exe auf den gleichen
mutex zu connected allerdings OHNE duplicatehandle.
die komponente merkt serviceseitig merkt leider nicht, dass sich einer in diesen speicherbereich connected hat?
hat noch einer eine idee was ich anders machen könnte?
mfg Jonny