Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi RegisterHotKey gibt False zurück... (https://www.delphipraxis.net/103350-registerhotkey-gibt-false-zurueck.html)

Carlo91 14. Nov 2007 17:03


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

Carlo91 15. Nov 2007 18:12

Re: RegisterHotKey gibt False zurück...
 
*push*

Apollonius 15. Nov 2007 18:18

Re: RegisterHotKey gibt False zurück...
 
Hast du dich jemals gefragt, welche Funktion GetLastError() und SysErrorMessage() erfüllen?

Carlo91 15. Nov 2007 19:10

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

Christian Seehase 15. Nov 2007 21:21

Re: RegisterHotKey gibt False zurück...
 
Moin Carlo,

wie fragst Du den Rückgabewert von RegisterHotkey ab?

Carlo91 15. Nov 2007 21:26

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

Christian Seehase 15. Nov 2007 21:40

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:
if not RegisterHotkey(...) then
es könnte nämlich gut sein, dass LastError ansonsten wieder auf 0 gesetzt wurde, wenn vorher weitere API-Funktionen aufgerufen werden.

Carlo91 15. Nov 2007 21:45

Re: RegisterHotKey gibt False zurück...
 
Zitat:

Zitat von Carlo91
Hi,
sorry hätte ich vileicht schreiben sollen... GetLastError gibt 0 zurük und SysErrorMessage gibt somit "Der Vorgang wurde erfolgreich beendet"...

MfG Carlo

Hi, zuviel zum thema GetLastError.... und ja es ist der hotkey STRG + V aber in einer normalen VCL anwendung kann ich STRG + V auch als HotKey per Registerhotkey registrieren.

MfG Carlo

Christian Seehase 15. Nov 2007 21:51

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.

Luckie 15. Nov 2007 21:52

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 12:52 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz