![]() |
RegisterHotKey gibt False zurück...
Hi,
ich versuch mal mein problem zu beschreiben, also ich programmiere an einer dll die ich in einen anderen prozess injecte diese dll führt die API "RegisterHotKey" aus mit dem fensterhandle des hauptfensters vom prozess (handle hol ich mir per FindWindow das funzt alles wunderbar handle ist NICHT 0). Da meine dll kein eigenes fenster hat nutz ich das hauptfenster des prozesses um an die Message WM_HOTKEY zu kommen habe ich eine hook auf die API "GetMessageA". So jetzt zum eigendlichen problem RegisterHotKey gibt immer false zurück wenn ich das fensterhandle vom hauptfenster als parameter über geb(wenn ich das gleiche in einer VCL Anwendung machen funzt alles). Warum funzt es mit dem hauptfenster einer selbst programmierten VCL anwendung aber nicht mit dem hauptfenster einer anderen anwendung? P.S. ich hoffe ich hab mein problem gut erklärt... und das einer eine antwort/lösung für mein problem hat... MfG Carlo |
Re: RegisterHotKey gibt False zurück...
*push*
|
Re: RegisterHotKey gibt False zurück...
Hast du dich jemals gefragt, welche Funktion GetLastError() und SysErrorMessage() erfüllen?
|
Re: RegisterHotKey gibt False zurück...
Hi,
sorry hätte ich vileicht schreiben sollen... GetLastError gibt 0 zurük und SysErrorMessage gibt somit "Der Vorgang wurde erfolgreich beendet"... MfG Carlo |
Re: RegisterHotKey gibt False zurück...
Moin Carlo,
wie fragst Du den Rückgabewert von RegisterHotkey ab? |
Re: RegisterHotKey gibt False zurück...
Hi,
ich weiß jetzt zwar nicht wofür das wichtig ist aber naja... MessageBoxA(0, PChar(IntToStr(Integer(RegisterHotKey(hFenster, lpID, MOD_CONTROL, $56)))), '', 0); MfG Carlo |
Re: RegisterHotKey gibt False zurück...
Moin Carlo,
ich hatte die Befürchtung, dass Du auf = true prüfst, was auch bei Erfolg dann zu einem "Fehler" führen könnte. ;-) Wenn ich das richtig sehe, registrierst Du CTRL+V, als die für "Einfügen" übliche Tastenkombination. Dass das schiefgehen kann, kann ich nachvollziehen. Teste doch mal, was GetLastError zurückgibt, wenn Du es dirket nach einem Fehlschlag aufrufst:
Delphi-Quellcode:
es könnte nämlich gut sein, dass LastError ansonsten wieder auf 0 gesetzt wurde, wenn vorher weitere API-Funktionen aufgerufen werden.
if not RegisterHotkey(...) then
|
Re: RegisterHotKey gibt False zurück...
Zitat:
MfG Carlo |
Re: RegisterHotKey gibt False zurück...
Moin Carlo,
das hatte ich durchaus gelesen, aber bei der Konstruktion, die Du da zur Abfrage des Rückgabewertes aufgebaut hast, habe ich so meine Zweifel, dass Du wirklich den durch RegisterHotkey gesetzten LastError erwischst. |
Re: RegisterHotKey gibt False zurück...
Hast du jetzt mal GetLastError direkt nach RegisterHotKey aufgerufen?
@CS: Denke ich auch. Wahrscheinlich ist das der Fehlercode der von MessageBox gesetzt wird. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:38 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz