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 NonVCL Hotkey (https://www.delphipraxis.net/10858-nonvcl-hotkey.html)

SleepyMaster 26. Okt 2003 20:34


NonVCL Hotkey
 
Hi ihrs!!! Weiß jemand von euch wie man mit Systemweiten Hotkeys arbeitet (ohne VCL)???

Als Beispiel (aber mit VCL):
Klick

Luckie 26. Okt 2003 20:36

Re: NonVCL Hotkey
 
IOch dachte mittlerweile würdest du sie kennen: http://www.luckie-online.de/tutorials/win32apituts/ :roll:

SleepyMaster 26. Okt 2003 20:37

Re: NonVCL Hotkey
 
Mein Problem ist es, dass ich nicht weiß wo ich
Code:
    procedure WMHotKey(var Msg: TWMHotKey); message WM_HOTKEY;
hinsetzen soll (Normal in den Private-Deklarationen von TForm1) :wall:
Vielen Dank schon mal!!!

SleepyMaster 26. Okt 2003 20:39

Re: NonVCL Hotkey
 
Ja!!! Ich kenn die Addresse von deinem Tutorial, aber den Inhalt noch nicht!

Wenn du mir jetzt sagst, dass die Lösung dadrinsteht, dann les ich das sogar mal!

Luckie 26. Okt 2003 20:44

Re: NonVCL Hotkey
 
Zitat:

Zitat von SleepyMaster
Ja!!! Ich kenn die Addresse von deinem Tutorial, aber den Inhalt noch nicht!

Dann kuck nach im Inhaltsverzeichnis. Ein Großteil ist sogar online verfügbar.

Zitat:

Wenn du mir jetzt sagst, dass die Lösung dadrinsteht, dann les ich das sogar mal!
Finde es selber raus oder würde ich sonst den Link posten. :evil: Ich würde fast jede Wette eingehen, dass du noch nicht mal auf den Link geklickt hast und gekuckt, was man da findet. :roll:

SleepyMaster 26. Okt 2003 20:44

Re: NonVCL Hotkey
 
Habs gefunden!!! Danke (für Daniel-> Donkää)!!!

(Wie gut das es in AcrobatReader eine Suchfunktion für uns Lesefaule gibt)

Luckie 26. Okt 2003 20:46

Re: NonVCL Hotkey
 
Völlig unnötig. Oder zeigt dein Browser die Tabelle unter den Downloads nicht an?

SleepyMaster 26. Okt 2003 20:46

Re: NonVCL Hotkey
 
Doch! Gedrückt hatte ich! Aber als ich dann gesehen habe, dass es 222 Seiten sind habe ich erstmal ganz entmutigt aufgegeben! :-D Aber zum Glück gibt es ja die Suchfunktion, da muss ich ja nochnedmal dass Inhaltsverzeichniss durchlesen!

SleepyMaster 26. Okt 2003 20:47

Re: NonVCL Hotkey
 
Dcoh! Tut er! Aber erst nach dem zweiten hinsehen! :wall:

SleepyMaster 26. Okt 2003 20:50

Re: NonVCL Hotkey
 
So! Nächste Frage:

Zitat:

Grundlage dafür ist die API-Funktion "RegisterHotKey". Neben dem Handle des Fensters als ersten Parameter, geben Sie als zweites eine möglichst eindeutige ID an, mit der der Hotkey später identifiziert werden kann.
Was ist wenn ich wie bei mir kein Fenster habe/nicht haben will???

SleepyMaster 26. Okt 2003 20:50

Re: NonVCL Hotkey
 
Nil???

phlux 26. Okt 2003 20:53

Re: NonVCL Hotkey
 
hWnd?

SleepyMaster 26. Okt 2003 20:54

Re: NonVCL Hotkey
 
Und als Parameter???

Luckie 26. Okt 2003 20:55

Re: NonVCL Hotkey
 
Ohne Fenster keine MessageLoop / MessageQueu und somit auch keine Nachrichtenverarbeitung und somit wiederrum bekommst du kein WM_HOTKEY. Oder kurz: "Aus die Maus." Hotkeys gehen nur in Verbindung mit Fenstern (mit einer Nachrichtenschlefe und einer fenster- / Dialogprozedur), ob sichtbar oder unsichtbar spielt dabei keine Rolle. Siehe dazu mein NoteIt.

SleepyMaster 26. Okt 2003 20:56

Re: NonVCL Hotkey
 
Ohh man!!! Dann muss ich jetzt mit Hooks anfangen??? :wall:

@Luckie wie finde ich dein dazu passendes Tutorial??? :angle:

phlux 26. Okt 2003 20:57

Re: NonVCL Hotkey
 
Zitat:

The RegisterHotKey function defines a hot key for the current thread.

BOOL RegisterHotKey(

HWND hWnd, // window to receive hot-key notification
int id, // identifier of hot key
UINT fsModifiers, // key-modifier flags
UINT vk // virtual-key code
);


Parameters

hWnd

Identifies the window that will receive WM_HOTKEY messages generated by the hot key. If this parameter is NULL, WM_HOTKEY messages are posted to the message queue of the calling thread and must be processed in the message loop.

id

Specifies the identifier of the hot key. No other hot key in the calling thread should have the same identifier. An application must specify a value in the range 0x0000 through 0xBFFF. A shared dynamic-link library (DLL) must specify a value in the range 0xC000 through 0xFFFF (the range returned by the GlobalAddAtom function). To avoid conflicts with hot-key identifiers defined by other shared DLLs, a DLL should use the GlobalAddAtom function to obtain the hot-key identifier.

fsModifiers

Specifies keys that must be pressed in combination with the key specified by the nVirtKey parameter in order to generate the WM_HOTKEY message. The fsModifiers parameter can be a combination of the following values:

Value Meaning
MOD_ALT Either ALT key must be held down.
MOD_CONTROL Either CTRL key must be held down.
MOD_SHIFT Either SHIFT key must be held down.


vk

Specifies the virtual-key code of the hot key.



Return Values

If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero.

Remarks

When a key is pressed, the system looks for a match against all thread hot keys. Upon finding a match, the system posts the WM_HOTKEY message to the message queue of the thread that registered the hot key. This message is posted to the beginning of the queue so it is removed by the next iteration of the message loop.
This function cannot associate a hot key with a window created by another thread.
RegisterHotKey fails if the keystrokes specified for the hot key have already been registered by another hot key.

If the window identified by the hWnd parameter already registered a hot key with the same identifier as that specified by the id parameter, the new values for the fsModifiers and vk parameters replace the previously specified values for these parameters.
Delphi-Quellcode:
RegisterHotKey(hWnd, 2FFF, MOD_ALT or MOD_CONTROL, VK_ESC);

SleepyMaster 26. Okt 2003 20:58

Re: NonVCL Hotkey
 
Upps war doppelt! :(

Daniel! lösch mal bitte!

SleepyMaster 26. Okt 2003 20:59

Re: NonVCL Hotkey
 
OK Habs gefunden (Ist aber von Assarbad)

phlux 26. Okt 2003 21:00

Re: NonVCL Hotkey
 
@Luckie: hat er nciht ein Fenster bzw Nachrichtenschleife wenn er nonVCL proggt, oder steh ich aufm Schlauch??

SleepyMaster 26. Okt 2003 21:02

Re: NonVCL Hotkey
 
Wenn ich ein in meinem NonVCL Prog ein Formular drin hab schon!

Aber ich will ohne Formular!

Luckie 26. Okt 2003 21:02

Re: NonVCL Hotkey
 
@phlux: Warum postest du jetzt den Auszug aus dem PSDK? :gruebel:

@sleepymaster: Schon mal an ein unsichtbabers Fenster gedacht? Dürfte um einiges einfacher sein als ein Hook.

phlux 26. Okt 2003 21:04

Re: NonVCL Hotkey
 
@Luckie: weil er selbst nicht weiß was er für parameter einsetzen musste, und da ich hoffe das er englisch versteht, könnte er etwas nützliches daraus erfahren ;), aber nichts destotrotz, erhat doch nen messageloop wenn er nonvcl schreibt, oder nicht?

SleepyMaster 26. Okt 2003 21:07

Re: NonVCL Hotkey
 
Nein! Für mich nicht! Sonst müsste ich mich ja noch zu tief in die NonVCL Programmierung einarbeiten (Und das würde ja wieder ARBEIT bedeuten!)

Übrigens will ich ALLE Tasten abfangen!

Und wenn ich das jetzt mit Hotkeys machen würde, dann müsste ich nachdem eine Taste gedrückt wurde:

1. Den Hotkey für diese Taste entfernen
2. Den Druck der Taste wieder simulieren
3. Den Hotkey wieder setzen

Außerdem:

Mit Hotkeys bekomme ich nicht ALLE Tasten abgefangen (z.B.: Wenn ein anderes Programm einen eigenen Hotkey hat)

phlux 26. Okt 2003 21:10

Re: NonVCL Hotkey
 
Zitat:

Zitat von SleepyMaster
Nein! Für mich nicht! Sonst müsste ich mich ja noch zu tief in die NonVCL Programmierung einarbeiten (Und das würde ja wieder ARBEIT bedeuten!)

Also ein bisschen muss man sich da schon einarbeiten und die Basics hast du auch recht schnell drauf, willst du sowas wie nen KeyLogger basteln?

Luckie 26. Okt 2003 21:14

Re: NonVCL Hotkey
 
Woher soll ich denn bitte sehr wissen, dass du alle Tasten willst, wenn nur noch einen Hotkey fragst? :evil:

@phlux: JA. Jedes fenster hat eien Messageloop, sonst könnte es auf keinerlei Eingaben reagieren. Und das hat nichts mit VCL oder nonVCl zu tun, so funktioniert Windows, nach dem Nachrichten Prinzip.

Zitat:

Sonst müsste ich mich ja noch zu tief in die NonVCL Programmierung einarbeiten (Und das würde ja wieder ARBEIT bedeuten!)
Und? Das Thema Hooks hast du ja auch schon so drauf, dass du ein Tutorial brauchst. :roll: Also wo ist der Unterschied?




PS: No pain, no gain.

SleepyMaster 26. Okt 2003 21:15

Re: NonVCL Hotkey
 
Jepp! Genau den! Ich hab zwar schon einen mir gemacht, aber basiert auf dem obengenannten Prinzip! (Dadurch wird ziemlich viel Rechenleistung verschwendet und er ist mit VCL programmiert, was ich bei meinem neuen nicht will)

@Mods/Admin(s) Ist es nicht irgendwie möglich, dass ich wenn in einem Thema was neues dazukommt ich benachrichtigt werde (wie bei Privat nachrichten)???

phlux 26. Okt 2003 21:17

Re: NonVCL Hotkey
 
Key Logger sind doch eh illegal, vergiß es. :warn:

SleepyMaster 26. Okt 2003 21:17

Re: NonVCL Hotkey
 
@Luckie ich hab ja garnicht erwartet, dass du das wissen sollst!!! :twisted:

Luckie 26. Okt 2003 21:18

Re: NonVCL Hotkey
 
Kannst du im Profil einstellen.

SleepyMaster 26. Okt 2003 21:19

Re: NonVCL Hotkey
 
@phlux wer hat denn gesagt, dass ich den VERWENDEN will??? Ich bin halt noch en Delphi anfänger und hab Spass am programmieren! Da ist es doch egal, was ich (FÜR MICH) programmiere

SleepyMaster 26. Okt 2003 21:22

Re: NonVCL Hotkey
 
Habs leider nicht gefunden! Find nur:

Zitat:

Bei neuen Privaten Nachrichten benachrichtigen:
&
Zitat:

Bei Antworten immer benachrichtigen:
Sendet Dir eine E-Mail, wenn jemand auf einen Deiner Beiträge antwortet. Kann für jeden Beitrag geändert werden.
&
Zitat:

PopUp-Fenster bei neuen Privaten Nachrichten:
Einige Templates öffnen neue Fenster, um Dich über neue private Nachrichten zu benachrichtigen.
Aber nicht von: PopUp-Fenster bei neuen Beitragen in einem Forum was von dir beobachted wird.

phlux 26. Okt 2003 21:23

Re: NonVCL Hotkey
 
Wenn du ein ANFÄNGER bist, solltest du dich vielleicht erstmal an LEICHTERE Aufgaben dran setzen :coder: .

Luckie 26. Okt 2003 21:24

Re: NonVCL Hotkey
 
Zitat:

Zitat von phlux
Key Logger sind doch eh illegal, vergiß es. :warn:

Nö. Nur wenn er ohne Wissen der betroffenen Person läuft und in ausspät. BTW. hab eich hie rim Forum einen nonVCL Keylogger in der OpenSource Sparte sogar schon vorgestellt und auf meiner HP gibt es ihn auch.

phlux 26. Okt 2003 21:25

Re: NonVCL Hotkey
 
Ja aber mit dem unterschied, das angezeigt wird, wenn er loggt.

SleepyMaster 26. Okt 2003 21:27

Re: NonVCL Hotkey
 
@phlux Bin ja schon seid 9Monaten am Programmieren also kein "totaler" Anfänger mehr. Und ich hab ja auch schon en bissel schwierigeres Programmiert.

@Luckie Es geht ja nicht darum einen KeyLogger zu HABEN sondern ihn zu MACHEN!

Daniel B 26. Okt 2003 21:32

Re: NonVCL Hotkey
 
Zitat:

Zitat von SleepyMaster
@phlux Bin ja schon seid 9Monaten am Programmieren also kein "totaler" Anfänger mehr. Und ich hab ja auch schon en bissel schwierigeres Programmiert.
@Luckie Es geht ja nicht darum einen KeyLogger zu HABEN sondern ihn zu MACHEN!

Jaa, wir glaubens Dir ja. :gruebel:
http://assarbad.org/stuff/tutorials/...k_tutorial.pdf
http://luckie-online.de/downloads/LuckieSpy2.zip

Ich wüsste nicht was man da noch für Infos bräuchte. Ich wette das Du Dir noch keins davon angeschaut hast und sonst was erwartest. ;)
Zeig dochmal etwas Code und sag uns genau wo das Problem liegt, denn langsam wirst Du OT!! :warn:

SleepyMaster 26. Okt 2003 21:40

Re: NonVCL Hotkey
 
Ich hab momentan kein Problem MEHR:

Das Problem hatte sich genau da gelöst:

Zitat:

OK Habs gefunden (Ist aber von Assarbad)
Als ich gemerkt hatte, dass ich es nicht mehr mit Hotkeys sondern mit einem Hook machen will.
Und in dieser Mitteilung wollte ich euch dann mitteilen, dass ich die "Lösung" für diese Frage gefunden habe.

Das einzige, was ich ab diesen Moment habe falsch gemacht ist das "Als ungeklärte frage" dingsda wegzumachen! (Wie macht man das???)

Wieso söllte ich mir sowas durchlesen, wenn ich

A) Lesefaul bin
B) würde ich es gerne soweit es geht selbst mir beibringen
C) Ich bin halt einer, der Tutorials ned mag! (Ne Luckie!!! ;))

Und OT werden wir hier momentan alle

SleepyMaster 26. Okt 2003 21:49

Re: NonVCL Hotkey
 
Danke!!! Habs gefunden gehabt!

Daniel B 26. Okt 2003 21:50

Re: NonVCL Hotkey
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von SleepyMaster
Das einzige, was ich ab diesen Moment habe falsch gemacht ist das "Als ungeklärte frage" dingsda wegzumachen! (Wie macht man das???)

Siehe Anhang, da drauf klicken auf den Link.

SleepyMaster 26. Okt 2003 21:51

Re: NonVCL Hotkey
 
Ich habs ja schon geschafft gehabt!!! Donkää ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:08 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