| |
|
|
| Guten journée!
je suis großer ami qui Programmiersprachen XProfan sowie Autohotkey (AHK). Letztens hat sich mir qui Frage gestellt, si pas aussi dans XProfan un Befehl integriert ist, avec qui on Hotkeys programmübergreifend belegen peux (ähnlich comment dans AHK, wohin z.B. #n::Run Notepad cela Notepad startet ou bien allô::Tschüss cela mot "Hallo" komplett programmübergreifend par cela mot "Tschüss" ersetzt). Gibt es là un XProfanes Äquivalent? si pas allzu compliqué, volontiers aussi une ähnliche Funktion aus qui Windows API
déjà la fois vielen Dank im Vorraus, Vincent. |
|
|
| |
|
|
|
| |
|
|
|
| oui, cela venez qui ganzen l'affaire déjà très proche, vielen Dank quoi allerdings muss je 1faire, si je beispielsweise ganze Wörter ersetzen voudrais? D.h., si je im Editor ou bien aussi dans irgendeinem anderem Programme un "Hallo Welt" pas avec einem F12, sindern avec qui Eingabe eines ganzen Wortes provozieren voudrais?
alors si je beispielsweise cela mot "Klaus" eingebe et voudrais, dass cet mot ensuite par "Hallo Welt" ersetzt wird? alors cela anstatt des Wortes "Klaus" ensuite "Hallo Welt" erscheint bzw. transfert wird? |
|
|
| |
|
|
|
| c'est aussi ne...aucune Problem, j'ai Dir hierfür la fois un Construire aufbereitet.
Du musst pour mais stark son ^ ^ -
Du musst dans Deiner IDE XPSE [...] comme Kompiler angeben qui den Code quelque chose vorbereitet et ensuite à XProfan weitergibt: KompilierenMarqueSéparation {$cleq}
cls
userMessages wm_user+1234
initMyHook()
var try$=""
var myListFrom&=create("list",0)
var myListTo&=create("list",0)
addString(myListFrom&,"HALLO WELT")
addString(myListTo&,"Klaus")
addString(myListFrom&,"KLARO")
addString(myListTo&,"Prima!")
while 1
waitInput
select uMessage
caseof wm_user+1234
if &ulParam=128
ifnot &uwParam=160
if ((&uwParam>64) and (&uwParam<91)) or (&uwParam=32)
try$=try$+chr$(&uwParam)
case ord(try$)=32 : try$=del$(try$,1,1)
case right$(try$,2)=" " : try$=del$(try$,len(try$),1)
if len(try$)
if getString$(myListFrom&,selectString(myListFrom&,-1,try$))=try$
whileLoop len(getString$(myListFrom&,getCurSel(myListFrom&)))
sendKey(0,vk_back)
wend
sendString(0,getString$(myListTo&,getCurSel(myListFrom&)))
try$=""
endif
endif
else
try$=""
endif
endif
endif
endSelect
wend
nProc initMyHook
return SetWindowsHookEx(13,procAddr(myLowLevelKeyboardHookProc),getModuleHandle(0),0)/*WH_KEYBOARD_LL*/
endProc
nProc myLowLevelKeyboardHookProc
parameters code&,wParam&,lParam&
sendMessage(hWnd,wm_user+1234,long(lParam&,0),long(lParam&,8))
return 0
=s4 href='./../../funktionsreferenzen/XProfan/endproc/'>endProc
ici wird un LowLevel-Keyboard-Hook injiziert -
si Du irgendwo "HALLO WELT" tippst ensuite wird "Klaus" eingefügt bzw. aus "KLARO" wird "Prima!".
à peine getestet hingewürfelt mais es funzt chez mir Schonmal...
Um Dein XProfan XPSE-Fit trop faire simple xpse.exe, jwasm.exe et polink.exe de [...] herunterladen et ins XProfan-Verzeichnis kopieren et dans qui IDE chez Kompiler qui xpse.exe angeben. |
|
|
| |
|
|
|
| oui super, vielen Dank! Schaue mir cela demain la fois genauer à |
|
|
| |
|
|
|
| de rien - fand je aussi plan intéressant. |
|
|
| |
|
|
|
| So, hab cela ganze la fois getestet, funktioniert alles super, vielen Dank nochmal! Allerings c'est moi aufgefallen, dass avant allem cela erste Beispiel unheimlich viel CPU-Leistung usé. Habe la fois un Waitinput ergänzt - ensuite ging zwar qui CPU-Auslastung pour unten, cela Programme reagierte ensuite mais seulement encore sur cela isKey, si cela XProfan-la fenêtre aussi wirklich offen était, pas, si es z.B. minimiert wurde. Gibt's là une Trick, qui CPU-Auslastung possible large unten trop tenir? |
|
|
| |
|
|
|
| cela 2. Beispiel usé 0% CPU, cela 1. Beispiel dagegen im Prinzip "100%".
cet variante pourrait aussi "nichts" dépenser: KompilierenMarqueSéparation |
|
|
| |
|
|
|
Jörg Sellmeyer | Wahrscheinlich reicht sogar un Sleep 1. Ab XProfan 11 allez aussi "WaitInput 1". |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 23.01.2011 ▲ |
|
|
|
|
| Dank getAsyncKeyState reichen 10 Überprüfungen pro seconde et 1000 (theoretische) Überprüfungen pro seconde faire imho keinen Sinn. ^ ^
chez WaitInput 1 wäre je mir garnicht so sûrement... alors obs ensuite encore so funzt. |
|
|
| |
|
|