Einzelnen Beitrag anzeigen

JonnyGuitar

Registriert seit: 4. Jun 2004
233 Beiträge
 
#19

Re: Kommunikation Service und Anwendung unter Vista

  Alt 21. Jun 2007, 11:14
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
the only thing to fear is runnin' out of beer
  Mit Zitat antworten Zitat