Jak snadno programovat pro Windows – i automatizovat nudné úkoly



Hned v úvodu bych asi měl zmínit, proč vlastně píšu tento text: Narazil jsem na problém, jak rychle a snadno napsat jednoduchou aplikaci pro Windows. Nic velkého, na co bych chtěl vytahovat kanón typu MS Visual Studio (nejde o peníze, lze použít verzi Express, která je zdarma), prostě jen utilitu, která mi usnadní práci, a jejíž tvorbě nechci věnovat víc, než pár minut. Třeba se někomu budou moje postřehy a nalezená řešení hodit.

Nástroj, který jsem nakonec našel a použil, umožňuje nejen snadno programovat základní aplikace pro Windows, ale také automatizovat některé úkoly v tomto OS. Zvládne totiž i simulovat stisky kláves nebo pohyby myší, manipulovat s okny apod. (A je zdarma i pro komerční použití, sluší se dodat.) Ale měl bych asi začít ne od konce, ale od začátku.

První, co mě napadlo, bylo napsat mou aplikaci v PHP a zkompilovat ji do EXE souboru. To se dá řešit třeba prostřednictvím programu Bamcompile od Bambalam. Běžný soubor v PHP díky tomu spustíte jako exe, jeho výstup se zobrazí na standardním výstupu (v DOS okně). Pokud chcete grafické rozhraní, můžete použít knihovnu WinBinder, díky níž z PHP vytvoříte GUI dle potřeby. Nezní to špatně, součástí kompilátoru z PHP do EXE jsou i nějaké příklady použití, ale, po pravdě, nechtělo se mi učit se funkce WinBinderu. Původně jsem měl představu, že prostě napíšu PHP kód, což stejně dělám docela často, a spustím s výstupem do prohlížeče (což by měl umět placený nástroj ExeOutput, za který se mi ale, po pravdě, kvůli jedné jednoduché utilitě nechtělo platit). Tak jednoduše to ale s Bamcompile a s WinBinderem nejde.

Co chci a co ne

S PHP jsem se tedy rozloučil a přemýšlel, kudy dál. Pokud jde o jazyk, je mi to jedno – může to být C, Pascal, Basic, ve všem jsem už někdy něco bastlil a vzhledem k tomu, že půjde o pár řádků kódu, klidně to zbastlím zase. Co mě ale fakt unavuje, je pronikat do zákoutí knihoven objektů, metod a jejich parametrů, promakané interakce s GUI apod. Mým cílem je napsat něco jako: Vytvoř textové pole, ještě jedno, počkej, až uživatel klikne na OK, vezmi data z polí, načti soubor, něco s tím vším proveď a ulož to.

Takže to není zase tak jednoduché, aby to bylo na dávkový soubor, ale ani tak komplikované, abych řešil MFC a ladil propracovanou event driven aplikaci. I když pro každodenního programátora ve Visual Studiu by to byla určitě také práce na pár minut, já jsem s ním už pár let nepracoval, takže by mi zkoumání, co a jak, zabralo daleko víc času, než samotné psaní.

Jak snadno napsat aplikaci pro Windows

Editor nástroje AutoIT s kódem scriptu.
Editor nástroje AutoIT s kódem scriptu.
Nakonec jsem sáhl po nástroji, který se jmenuje AutoIT. Jak už jsem zmínil výše, je to bezplatný nástroj pro scriptování, který umožňuje snadno programovat jednoduché aplikace pro Windows i automatizovat některé úlohy v tomto OS prostřednictvím simulace stisků kláves nebo pohybů myší apod.

Po stažení a instalaci je k dispozici základní balík s editorem kódu a poměrně rozsáhlou nápovědou včetně příkladů, ale třeba i s compilerem scriptů. Pokud tedy své aplikace chcete šířit dál jako exe soubory, nic vám nebrání.

Jen pro představu, jak se v systému AutoIT programuje, jednoduchý příklad kódu:

#include

#include

GUICreate("Titulek okna", 400, 300)

GUICtrlCreateLabel("Text v okne na pozici 10, 10", 10, 10)

$textinp = GUICtrlCreateInput ( "vstupní textové pole 380x60 na pozici 10, 30", 10, 30, 380, 60, $ES_MULTILINE)

$okbutton = GUICtrlCreateButton("OK", 10, 250, 60)

GUISetState(@SW_SHOW)

While 1

$msg = GUIGetMsg()

Select

Case $msg = $okbutton

MsgBox(0, "Hola", GUICtrlRead($textinp))

Case $msg = $GUI_EVENT_CLOSE

ExitLoop

EndSelect

WEnd

Myslím, že kód je docela samovysvětlující, na počátku je vytvořeno jednoduché okno s několika ovládacími prvky, následuje smyčka, která řeší akce. Pochopitelně reakce na stisk tlačítka OK (okno s titulkem Hola a výpisem textu z textboxu) a není to pravé ořechové, ale je to jen příklad – a v reálu prostě provedete to, co je třeba. Typicky načtete hodnotu z nějakého vstupního pole a něco s ní provedete.

Funkcí je k dispozici řada, nechybí pochopitelně ty pro funkci se soubory, s GUI apod. Pokud váháte, jestli jsou k dispozici ty, které potřebujete, zkuste projít on-line nápovědu – stejně jsem postupoval i já, než jsem se pro nástroj rozhodl.

Jak automatizovat úlohy ve Windows

Už jsem psal výše, že se dají snadno automatizovat různé úkoly ve Windows. V nápovědě je tento příklad s Notepadem, který spustí Notepad, pošle do něj nějaký text a zavře Notepad bez uložení textu. Nic extra užitečného, ale jako příklad to myslím vyhovuje (středník uvozuje komentář):

Run("notepad.exe")

WinWaitActive("Untitled - Notepad")

Send("Text pro Notepad.")

WinClose("Untitled - Notepad")

WinWaitActive("Notepad", "Save")

;WinWaitActive("Notepad", "Do you want to save") ; Pokud aplikace bezi ve Windows XP

Send("!n")

Na závěr

Z jednoduchého editoru, který je součástí balíku, napsanou aplikaci snadno spustíte (klávesová zkratka F5) nebo zkompilujete do exe (F7). K dispozici je také, jak už jsem psal, nápověda s příklady kódu.

Nástroj AutoIT Script je jednoznačně výborný nástroj pro každého, kdo potřebuje občas napsat jednoduchou aplikaci pro Windows a přitom to nedělá každý den, a tak jsou pro něj nástroje jako je Visual Studio a knihovny MFC zbytečně příliš komplikované. Nemluvě o možnostech automatizace opakujících se úloh, které jsou v AutoIT dobře podporované. Jedinou nevýhodou je, že když o tom pak budete psát blog post, zabere vám psaní víc času, než samotné psaní aplikace :).


(13. 11. 2012 | RadekT)


Autorem tohoto textu není redakce těchto webových stránek, ale jeden ze čtenářů/ek: RadekT (kliknutím na jeho/její jméno přejdete na jeho/její domovskou stránku). Chcete-li si zde také vést deník nebo sem psát články, zaregistrujte se/přihlašte se na této stránce.

Další články tohoto čtenáře: všechny jeho/její články
Facebook Twitter
Komentáře, názory a rady

Inspirující,
někdy zkusím. Ale strašně málo info v češtině. Asi by stejně posloužil VBScript, JScript s WSH. Umí to OOP, seznamy, atd?...

>>> Číst a vkládat komentáře <<<

Tip - Konference: DATOVÁ CENTRA PRO BUSINESS 2019 - 19.9.2019!
Hledáme nové kolegy pro realizaci zajímavých projektů
v oblasti IT

NOVINKA: Pozoruhodné IT produkty 2019 podruhé
Ani tentokrát si nenechte ujít produkty, které vám mohou pomoci ve vaší práci v IT.

Pozoruhodné IT produkty pro rok 2019
Náš první letošní seznam zajímavých produktů, které byste určitě neměli minout






Články čtenářů

Titulky vložené do videa a další vid...


Dnes tu má tip pro všechny, kdo nejen pracují, ale také se občas baví :). Co dělat, když potřebujete video s vloženými titulky a máte jen video, kde titulky vložené ...

Problém: Pomalá Windows 10 a jak je ...


Pomalá Windows 10, to je problém, se kterým se potkává řada uživatelů. Často přitom nastane najednou, doslova ze dne na den. Windows se pomalu spouštějí, aplikace se...

Komentáře čtenářů

TBW
Dobrý den. Koukám že váš článek je z roku 2016. Dnes je rok 2019 a situace může být odlišná. Můj dotaz z...>>
Podnikání na youtube
Zdravím, měl bych pár dotazů týkajících se podnikání na youtube. Četl jsem na http://techhity.cz/media/j...>>
Zdá se mi to nebezpečné
Přijde mi to už docela nebezpečné, že půjde platit i prostřednictvím televize. Ale pokrok nezastavíme. C...>>

Další články tohoto čtenáře

všechny jeho/její články


©2011-2019 BusinessIT.cz, ISSN 1805-0522 | Názvy použité v textech mohou být ochrannými známkami příslušných vlastníků.
Provozovatel: Bispiral, s.r.o., kontakt: BusinessIT(at)Bispiral.com | Inzerce: Best Online Media, s.r.o., zuzana@online-media.cz
Používáme účetní program Money S3
O vydavateli | Pravidla webu BusinessIT.cz a ochrana soukromí | pg(797)