webdesign / development + awesome
archivovaný archívny archív
Ak ste takí leniví ako ja, určite vás irituje každý klik navyše a radi používate všemožné klávesové skratky, gestá s myšou a podobné srandy. Ak ešte nie ste dostatočne leniví, raz to aj na vás prijde :p
Problém je, že často neexistujú skratky na to, čo zrovna potrebujete, či už vinou programu alebo operačného systému. Na druhej strane je kopa nevyužitých kombinácií kláves alebo dokonca samostatných kláves, na ktoré dal výrobca nejakú nepoužiteľnú hovadinu. :p Tu prichádza na pomoc AutoHotkey, vďaka ktorému môžete efektívnejšie ovládať počítač a využívať klávesy, ktoré by inak akurát zapadali prachom.
Čo je teda AutoHotkey? V podstate skriptovací jazyk (pre Windows), pomocou ktorého môžete veľmi jednoducho namapovať na prakticky ľubovoľnú udalosť v počítači (slačenie klávesy, pohyb myši, otvorenie okna, určitý čas bez aktivity, ...) vami zvolenú udalosť (stlačenie klávesy, poslanie správy oknu, spustenie programu, otvorenie súboru, zápis do logu, nič :), ...). Možno sa to na prvý pohľad nezdá, ale takáto vec má neskutočne veľa využití.
V tomto článku sa dozviete ako v priebehu zlomku sekundy spúšťat programy, prehadzovať skladby vo Winampe, písať super-advanced smajlíkov, ako čeliť zlým vtipom a ďalšie užitočné veci ;)
Po nainštalovaní AutoHotkey treba ako prvú vec vytvoriť súbor s príponou .ahk
, v ktorom bude náš skript. Na spustenie skriptu stačí 2x kliknúť na daný súbor a už je aktívny. AHK skripty sú potom permanentne spustené a čakajú na systémové udalosti. Samozrejme zaberajú v pamäti pomerne málo miesta (okolo 4MB) a prakticky nijak nespomaľujú systém, inak by strácali na význame a ja by som tu o nich nepísal :)
Po vytvorení súboru môžeme veselo písať skripty - pre začiatok niečo jednoduchšie - skript, ktorý bude spúšťať programy/otvárať súbory/adresy:
#c:: Run calc.exe ^!n:: Run D:\Docs\notes and whatnot.txt ^+g:: Run http://google.com
Toto je celý skript a už v takomto stave robí celkom slušné veci - Win+C
otvorí kalkulačku, Ctrl+Alt+N
otvorí textový súbor s rýchlymi poznámkami a Ctrl+Shift+G
otvorí Google v defaultnom prehliadači.
Ale zatiaľ to nie je nič prevratné a dá sa to čiastočne riešiť aj vytvorením obyčajných odkazov, takže prejdime na big guns!
#IfWinExist ahk_class Winamp v1.x Media_Prev:: PostMessage, 0x111, 40044, , ,Winamp Media_Play_Pause:: PostMessage, 0x111, 40046, , ,Winamp Media_Next:: PostMessage, 0x111, 40048, , ,Winamp ^Media_Play_Pause:: PostMessage, 0x111, 40045, , ,Winamp ^Media_Prev:: PostMessage, 0x111, 40144, , ,Winamp ^Media_Next:: PostMessage, 0x111, 40148, , ,Winamp #IfWinExist
Tento skript posiela Winampu (ak je spustený) rôzne správy po stlačení multimediálnych kláves (samozrejme môžete použiť aj ne-multimedíalne klávesy:). Posielané správy prehadzujú skladby, pauzujú prehrávanie a skáču po 5 sekundách dopredu/dozadu (kompletný zoznam správ sa dá ľahko vygoogliť). Vďaka takémuto krátkemu kódu za zrazu z inak fuckin' useless multimediálnych kláves stáva ultimátny nástroj na ovládanie Winampu bezohľadu na to v akom okne sa nachádzate. Neat :) Podobné správy existujú aj pre foobar2000 (Media_Next:: Run C:\Program Files\foobar2000\foobar2000.exe /next
) a pravdepodobne aj pre kopu ďalších prehrávačov.
Ďalšia fajn vec je skript na ovládanie hlasitosti - to sa zíde napríklad pokiaľ výrobca notebooku vyžaduje na takúto triviálnu vec inštaláciu 50MB kravín (Sony:) alebo pokiaľ dodávaná utilita nefunguje ak ste v okne, ktoré zachytáva klávesy Volume_Up a Volume_Down (Lenovo;). Vista/7 a XP majú inú správu zvuku, takže treba použiť 2 rôzne prístupy.
;XP Volume_Up:: SoundGet, volume volume := Round(volume+2) if Mod(volume,2) = 1 { volume-- } if volume > 100 { volume := 100 } SoundSet, volume GoSub, showVolume return Volume_Down:: SoundGet, volume volume := Round(volume-2) if Mod(volume,2) = 1 { volume-- } if volume < 0 { volume := 0 } SoundSet, volume GoSub, showVolume return
A ešte funkcie spoločné pre všetky OS slúžiace na vykreslenie ukazovateľa hlasitosti. Nevyzerá síce najlepšie, ale to nevyzerajú ani tie, čo sú dodávané k notebookom a tomuto sa dá aspoň ľahko pomôcť :)
showVolume: vol_PosY := A_ScreenHeight - 200 vol_BarOptionsMaster = 1:B1 ZH12 ZX0 ZY0 W150 Y%vol_PosY% CBBlack CWSilver IfWinNotExist, vol_Master { Progress, %vol_BarOptionsMaster%, , bla, vol_Master } Progress, 1:%volume%, , %volume% SetTimer, vol_BarOff, 500 return vol_BarOff: SetTimer, vol_BarOff, off Progress, 1:Off return
Občas môžu v živote nastať situácie, kedy je potrebné konať rýchlo a každá sekunda sa počíta - napríklad keď niekto povie veľmi zlý vtip. Z takejto ošemetnej™ situácie vás dostane tento skript ;)
Media_Stop::SoundPlay, D:\Audio\Sounds\rimshot.wav, 1
Po stlačení klávesy prehrá príhodný zvuk - ja ho mám dokonca nastavený na samostatnej klávese, keďže u nás padajú zlé vtipy častejšie ako by bolo zdravé ;)
A nakoniec pár drobností:
;vypne display po pol sekunde #o:: Sleep 500 SendMessage, 0x112, 0xF170, 2,, Program Manager return ;rezim spanku #s::DllCall("PowrProf\SetSuspendState", "int", 0, "int", 0, "int", 0) ;look of disapproval :) ^!d:: Send {ASC 3232}_{ASC 3232} ;tm ^!t:: Send {ASC 0153} ;zmena funkcii forward a back tlacitok na mysi XButton1:: Send {PgDn} XButton2:: Send {PgUp}
Pokiaľ sa čudujete čo je look of disapproval, je to tento smajlík ಠ_ಠ a možno vám ho už aj nejaký beťár™ poslal. Dá sa napísať aj bez AHK - vo všetkých unicode programoch by malo fungovať ALT+3232
.. ale takto je to rozhodne pohodlnejšie a môžte disapprove-ovať koľko vám srdce ráči :)
Možností, ako využiť AutoHotkey, je samozrejme oveľa viac ako som napísal - dajú sa v ňom simulovať kliknutia myšou na určité miesta, skriptovať celé makrá, vytvárať GUI a veľa ďalších vecí, ktoré nájdete v manuále alebo na fórach AHK. Takže pokiaľ prídete na niečo užitočné, nebojte sa o to podeliť v commentoch.
BTW vedeli ste, že na slovenskej/českej klávesnici je apostrof? (AltGr+P
:)
Archivovaný archív je bez komentárov. Radšej.
4 komentáre
komentuj ku každému komentáru sa v databáze ukladá iba meno, text a dátum, iba za účelom zobrazenia pod článkomneukladá sa email, IP adresa ani informácie o prehliadači a údaje sa nepoužívajú na reklamu, newsletter, na žiadnu ekonomickú aktivitu, nikam sa neposielajú, sú v databáze len aby sa mohli zobraziť pod článkom