Einzelnen Beitrag anzeigen

Rudirabbit

Registriert seit: 27. Sep 2006
111 Beiträge
 
#21

AW: Tastendruck im Hintergrund registrieren und Loggen

  Alt 31. Mai 2012, 19:23
Ich hole diesen alten Thread wieder hoch.
Der Code funktioniert, nur habe ich an einer Stelle ein Verständnisproblem.

Delphi-Quellcode:
 hMMF := CreateFileMapping($FFFFFFFF, nil, PAGE_READWRITE or SEC_COMMIT, 0,
    SizeOf(hWnd), FILEMAPPING_NAME);

  bHWND := MapViewOfFile(hMMF, FILE_MAP_WRITE, 0, 0, SizeOf(HWND));
  bHWND^ := hWnd; <--- hier wird das "Client" Handle im MMF gespeichert
  UnmapViewOfFile(bHWND); <-- hier wird es wieder zerstört ?
  GetMem(hWndBuffer, SizeOf(HWND)); <-- und hier wird Speicher reserviert
  hWndBuffer^ := hWnd; <-- um das Fenster Handle zu speichern, welches später bei PostMessage gebraucht wird.
Warum hier das hWnd so behandelt (gespeichert) werden muss glaube ich verstanden zu haben. (Prozesskommunikation)
Nur hier wird der MMF mit UnmapViewOfFile wieder geleert, um danach wieder Speicher zu holen um das Handle nochmals zu speichern.
In PostMessage wird nur hWndBuffer^ benutzt..
  Mit Zitat antworten Zitat