CreateShortcut und Hotkey-Parameter

Anfängerfragen zum Programmieren mit PureBasic.
Susan20
Beiträge: 54
Registriert: 28.02.2008 22:00

CreateShortcut und Hotkey-Parameter

Beitrag von Susan20 »

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??
Benutzeravatar
alter Mann
Beiträge: 201
Registriert: 29.08.2008 09:13
Wohnort: hinterm Mond

Beitrag von alter Mann »

versuch es mal mit #PB_Shortcut_F3 und #PB_Shortcut_Shift

(siehe auch Hilfe zu AddKeyboardShortcut())
Win11 64Bit / PB 6.0
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

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...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
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

Beitrag von ts-soft »

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 :mrgreen:
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.
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

tja, hätte man gleich den link gepostet, hätte man auch keine spekulationen provoziert.

... so und wie funktionieren jetzt kombinationen?
da ist ja weniger Anleitung dabei als bei einer Kloschüssel... /:->
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Susan20
Beiträge: 54
Registriert: 28.02.2008 22:00

Beitrag von Susan20 »

@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 ...
Benutzeravatar
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:

Beitrag von HeX0R »

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:

Code: Alles auswählen

HotKey = (#HOTKEYF_CONTROL << 8) | #VK_F3
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 :lol: )
Susan20
Beiträge: 54
Registriert: 28.02.2008 22:00

Beitrag von Susan20 »

@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! :)
Antworten