CreateShortcut und Hotkey-Parameter
CreateShortcut und Hotkey-Parameter
Hab im Forum ein paar Prozeduren zum Erstellen von Verknüpfungen und Shortcuts gefunden (Danke, ts-soft!) und habe damit mal rumgespielt. Wenn ich also zum Beispiel einen F3-Shortcut haben will, dann habe ich in der CreateShortcut-Prozedur von ts-soft hotkey.l = #VK_F3 gesetzt und es funktioniert. Danach wollte ich den Shortcut <strg>+<F3> haben. Aber hotkey.l = #VK_CONTROl | #VK_F3 funktioniert nicht. Es wird nur #VK_F3 erkannt. Was mache ich da falsch??
- alter Mann
- Beiträge: 201
- Registriert: 29.08.2008 09:13
- Wohnort: hinterm Mond
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
für einen solchen Hotkey müßtest du beide keys zusammen abfragen.
ts routine stellt dir anscheinend zur verfügung, einen VirtualKey mit einer Funktion zu verbinden.
d.h. intern wird er wohl GetAsyncKeyState_( hotkey ) ausführen, und bei #True reagieren.
um jetzt eine Tastenkombination zu bekommen, darf man
nicht GetAsyncKeyState_( hotkey1 | hotkey2 )
prüfen, sondern muss auf
GetAsyncKeyState_( hotkey1 ) And GetAsyncKeyState_( hotkey2 )
reagieren.
... vielleicht hat ts ja sowas schon eingebaut, dann musst du halt seine routine irgendwie anders aufrufen.
war da keine readme dabei?
wo ist denn der thread wo er das veröffentlicht hat...
ts routine stellt dir anscheinend zur verfügung, einen VirtualKey mit einer Funktion zu verbinden.
d.h. intern wird er wohl GetAsyncKeyState_( hotkey ) ausführen, und bei #True reagieren.
um jetzt eine Tastenkombination zu bekommen, darf man
nicht GetAsyncKeyState_( hotkey1 | hotkey2 )
prüfen, sondern muss auf
GetAsyncKeyState_( hotkey1 ) And GetAsyncKeyState_( hotkey2 )
reagieren.
... vielleicht hat ts ja sowas schon eingebaut, dann musst du halt seine routine irgendwie anders aufrufen.
war da keine readme dabei?
wo ist denn der thread wo er das veröffentlicht hat...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Bevor hier noch mehr Antworten kommen, die in keinster Weise nützen, sry,
hier mal der Link zum Tip:
http://www.purebasic.fr/german/viewtopi ... 3825#93825
Warum der Code von Susan20 so nicht geht weiß ich im moment aber auch
nicht. Könnte 2 Gründe geben:
1. Hotkey bereits vergeben oder Kombination nicht erlaubt.
2. Es ist wohl doch ein besonderes Format notwendig, hierzu müßte man
mal in der MSDN suchen, fehlt mir leider im Moment die Zeit.
Das vergeben von Hotkeys in Verknüpfungen halte ich sowieso nicht für
besonders Sinnvoll, sowas hat MASM für seinen Editor mal gemacht, hat
tierisch genervt wenn der Editor auftauchte, obwohl ich garnichts mit ihm am
Hut hatte
hier mal der Link zum Tip:
http://www.purebasic.fr/german/viewtopi ... 3825#93825
Warum der Code von Susan20 so nicht geht weiß ich im moment aber auch
nicht. Könnte 2 Gründe geben:
1. Hotkey bereits vergeben oder Kombination nicht erlaubt.
2. Es ist wohl doch ein besonderes Format notwendig, hierzu müßte man
mal in der MSDN suchen, fehlt mir leider im Moment die Zeit.
Das vergeben von Hotkeys in Verknüpfungen halte ich sowieso nicht für
besonders Sinnvoll, sowas hat MASM für seinen Editor mal gemacht, hat
tierisch genervt wenn der Editor auftauchte, obwohl ich garnichts mit ihm am
Hut hatte

PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
@Kaeru Gaman:
Hast recht, den Link hätte ich posten sollen!
@ts-soft:
Danke, dass Du den Link bereitgestellt hast. Mein Ziel war es, dass einer Verknüpfung auf dem Desktop ein Shortcut zugewiesen wird. Das sollte dann eben eine solche Tastenkombination aus strg-Taste und F-Taste sein. Per Hand kann man das unter Eigenschaften im Kontext-Menü ja leicht machen. Auch mit VBScript geht das. Wäre natürlich super genial, wenn ich das auch unter PB machen könnte ...
Hast recht, den Link hätte ich posten sollen!
@ts-soft:
Danke, dass Du den Link bereitgestellt hast. Mein Ziel war es, dass einer Verknüpfung auf dem Desktop ein Shortcut zugewiesen wird. Das sollte dann eben eine solche Tastenkombination aus strg-Taste und F-Taste sein. Per Hand kann man das unter Eigenschaften im Kontext-Menü ja leicht machen. Auch mit VBScript geht das. Wäre natürlich super genial, wenn ich das auch unter PB machen könnte ...
- HeX0R
- Beiträge: 3040
- Registriert: 10.09.2004 09:59
- Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3 - Kontaktdaten:
Ich weiss ja nicht, wieso du nicht einfach im MSDN nachliest (so wie ich das jetzt mal gemacht habe).
Ist natürlich sehr viel einfacher zu warten, bis sich irgendjemand die Mühe macht...
Also die Sondertaste muss im Highbyte (hier nachzulesen) sein.
Also dein Hotkey wäre in diesem Fall:
Für die Zukunft:
Je weniger Arbeit sich ein Fragesteller macht
(in deinem Fall:
1.) zu faul den [existentiell wichtigen] link zu ts-softs code beizufügen
2.) keine Absätze zur besseren Lesbarkeit in die Beiträge pflanzen
3.) keine Lust im MSDN zu stöbern),
desto wahrscheinlicher bekommt er irgenwann keine vernünftigen Antworten mehr.
Manche von uns sind da wie Elefanten (und ich meine jetzt nicht nur wegen der Ausmaße
)
Ist natürlich sehr viel einfacher zu warten, bis sich irgendjemand die Mühe macht...

Also die Sondertaste muss im Highbyte (hier nachzulesen) sein.
Also dein Hotkey wäre in diesem Fall:
Code: Alles auswählen
HotKey = (#HOTKEYF_CONTROL << 8) | #VK_F3
Je weniger Arbeit sich ein Fragesteller macht
(in deinem Fall:
1.) zu faul den [existentiell wichtigen] link zu ts-softs code beizufügen
2.) keine Absätze zur besseren Lesbarkeit in die Beiträge pflanzen
3.) keine Lust im MSDN zu stöbern),
desto wahrscheinlicher bekommt er irgenwann keine vernünftigen Antworten mehr.
Manche von uns sind da wie Elefanten (und ich meine jetzt nicht nur wegen der Ausmaße

{Home}.:|:.{Codes}.:|:.{Downloads}.:|:.{History Viewer Online}.:|:.{Bier spendieren}
@HeXOR:
Also, für den fehlenden link habe ich mich quasi schon entschuldigt.
Im MSDN nachlesen, das klingt einfach, ist aber für mich wegen fehlender Routine mit gewissen Hürden verbunden. Daher: "Eine Taste im Highbyte" ist für mich leider keine triviale Sache.
Trotzdem: Dein Code funktioniert. Dafür vielen Dank!
Also, für den fehlenden link habe ich mich quasi schon entschuldigt.
Im MSDN nachlesen, das klingt einfach, ist aber für mich wegen fehlender Routine mit gewissen Hürden verbunden. Daher: "Eine Taste im Highbyte" ist für mich leider keine triviale Sache.
Trotzdem: Dein Code funktioniert. Dafür vielen Dank!
