Hallo Gemeinde,
ich habe einen globalen Haken ins System gehauen und kann damit folgende Infos erhalten,
lParam: soll die Struktur mit den Infos die ich brauche enthalten
wParam: steht auf 1
message: enthält die richtige Nummer zum Anzeigen der Balloon-Message
hWnd: das Handle auf die Anwendung die die Balloon-Message sendet, stimmt auch.
soweit so gut, nun kommt das Problem:
hier mal ein bißchen Code:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| hFile:=CreateFile('...\messageinfo.log',GENERIC_WRITE or GENERIC_READ,0,nil,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,0);
...
try SetFilePointer(hFile, 0, nil, FILE_END); PID:=GetCurrentProcessID; FileSatz.PID:=PID; FileSatz.lParam:=lParam; FileSatz.wParam:=wParam; FileSatz.a.lParam:=CWPS(Pointer(LParam)^).lParam; FileSatz.a.wParam:=CWPS(Pointer(LParam)^).wParam; FileSatz.a.message:=CWPS(Pointer(LParam)^).message; FileSatz.a.hWnd:=CWPS(Pointer(LParam)^).hwnd; if FileSatz.a.message=wm_IconMessages then begin IconData:=NOTIFYICONDATA(Pointer(FileSatz.a.lParam)^); WriteFile(hFile,IconData,Sizeof(IconData),sizewritten,nil); end; finally CloseHandle(hFile); end; |
Die FileWrite Anweisung kann es auch nicht sein. Die hatte ich zuvor zum Schreiben von FileSatz benutzt.
Offenbar bekomme ich beim Auslesen der Daten zum zuweisen für IconData die Zugriffsverletzung.
Die Frage lautet: "warum"?