Entwickler-Ecke
Windows API - Windows Fehlerdialog abfangen
Sal-9000 - So 10.01.10 04:06
Titel: Windows Fehlerdialog abfangen
Hi
ich hab da mal wieder eine Frage:
Wie kann ich den Windows-Fehler bzw Nachrichtendialog abfangen?
Zur Erklärung .... ich versuche eine Datei zu löschen, auf die gerade zugriff besteht ... ergebniss: Windows ist "so nett" mich mit einem DING und einer Fehlermeldung darauf aufmerksam zu machen.
Wie kann ich diese Meldung nun am effektifsten abfangen, noch bevor auch nur ein flackern zu sehen ist bzw ein ton zu hören ist?
soweit ich das immo verstanden habe, muss ich dafür einen ShellHook einsetzen ... stimmt das? Wenn ja, wie kann ich damit den Dialog abfangen, bevor er wirklich erzeugt wird?
Ach ja ... nutze XP Pro, falls das entscheident sein sollte!
Danke schonmal
Sal-9000
BenBE - So 10.01.10 04:32
Grobe Frage: Wozu willst das machen? Sowas wie nen Auto-Unlocker?
Theoretisch ja; ließe sich aber auch mit nem API-Hook realisieren.
Sal-9000 - So 10.01.10 04:35
Weil ich auf den einen oder anderen Fehler gerne reagieren würde, ohne selbst am pc zu sein :)
BenBE - So 10.01.10 04:44
Dann wäre ein API-Hook IMHO die bessere Variante.
Sal-9000 - So 10.01.10 04:47
ok, und das mach ich wie ? Ich werd nu erstmal nach API-Hook schauen .... wie läuft das denn dann? Übers handel direkt geht ja nicht, da wurde die meldung ja bereits kreiert...
BenBE - So 10.01.10 04:55
Siehe uallCollection. Da gab's auch mal ne Demo, was man da so alles tun kann.
Astat - So 10.01.10 06:44
Sal-9000 hat folgendes geschrieben : |
ok, und das mach ich wie ? Ich werd nu erstmal nach API-Hook schauen .... wie läuft das denn dann? Übers handel direkt geht ja nicht, da wurde die meldung ja bereits kreiert... |
Hallo Sal-9000, bevor Du zu Hooken anfängst, kannst Du dass mal versuchen.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| function IsFileInUse(const FileName: string): Boolean; var hFileRes: HFILE; begin Result := False; if not FileExists(FileName) then Exit;
hFileRes := CreateFile(PChar(FileName), GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
Result := (hFileRes = INVALID_HANDLE_VALUE);
if not Result then CloseHandle(hFileRes); end; |
lg. Astat
Delete - So 10.01.10 17:04
Und warum willst du den Benutzer im Unklaren darüber lassen, warum sich die Datei nicht löschen lässt?
Sal-9000 - So 10.01.10 22:08
Hi
aaaaaaaalso ... erstens: Der Benutzer ... bin ich :D
zweitens würde ich gerne Fehler abfangen und loggen können mit dem zusatz, die entsprechende meldung so abzufangen, das sie nicht auftaucht.
Es muss doch ieinen Weg geben, das, was Windows macht, wenn ein Fehler auftaucht, abzufangen und zu analysieren .....
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!