Ovládáme (nejen) windows pomocí visual basic script 1. díl

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

Odpovědět
Uziv00

Ovládáme (nejen) windows pomocí visual basic script 1. díl

Příspěvek od Uziv00 »

Protože dost často zde pomáhám s automatizací různých operací, rozhodl jsem se napsat úvod do skriptování v jazyce VBS (visual basic script). Proč zrovna vbs?
- je to pokročilejší skriptovací jazyk a umí více, než třeba .bat (v cmd), nebo .ps1 (powershell)
- syntaxe jazyka je velice podobná jazyku VBA (visual basic for Application) používaném v makrech ms office - tedy zabijete dvě mouchy jednou ranou.
- podporují ho všechny verze windows už od windows98
- naučíte se základům programování.
K čemu vbs použít? Atomatizace operací (např. zálohy), zajištění prostředí po přihlášení (připojení síťových prostředků), usnadnění práce (prohledávání logů), kontrola systémových prostředků (nastavení sítě, volné místo na disku) atd.
Začneme tím nejjednodušším - zprávou. Pro to existuje příkaz MsgBox
Syntaxe: MsgBox text, ikona+tlačítka, titulek
Ikony MsgBoxu:
Ikony MsgBoxu
Ikony MsgBoxu
IkonyMsgBox.png (27.28 KiB) Zobrazeno 4687 x
Tlačítka MsgBoxu:
Tlačítka MsgBoxu
Tlačítka MsgBoxu
Nyní si můžeme zkusit napsat první skript. Kdysi jsem si takto dělal legraci z kolegů.

Kód: Vybrat vše

'První skript
Wscript.Sleep 20000  'čekání 20s
MsgBox "Vážený uživateli, Vaše bušení do klávesnice mě opravdu dost bolí!", vbOKOnly + vbExclamation,  "Zpráva operačního systému"
Takovýto skript jsem ukládal do složky po spuštění. Co skript dělá?
- po spuštění čeká 20s.
- po uplynutí 20s vypíše tuto zprávu:
MsgBox - příklad
MsgBox - příklad
Všimněte si v kódu:
Příkaz Wscript.Sleep 20000 - to je čekací doba. Wscript.Sleep na tuto dobu (v milisekundách) skript "uspí". Uspaný skript nevytěžuje systémové prostředky.
apostrof " ' " - vše co je za ním interpreter ignoruje. Lze jej proto použít ke komentářům kódu. Doporučuji používat, lépe se pak v kódu orientuje.

MsgBox jako funkce: - MsgBox umí vrátit hodnotu stisknutého tlačítka.
Syntaxe: tlacitko = MsgBox (text, ikona + tlačítko, titulek)
Návratové hodnoty tlačítek:
Hodnoty tlačítek
Hodnoty tlačítek
MsgBoxReturn.png (10.28 KiB) Zobrazeno 4687 x
Kód by mohl vypadat takto:

Kód: Vybrat vše

'Zjištění jaké tlačítko bylo stisknuto
tlacitko = MsgBox ("Prosím stiskněte tlačítko", vbQuestion + vbYesNo, "Test tlačítka")

'Nalezení hodnoty
If tlacitko = vbYes Then
   Wscript.Echo "Stisknuto Ano"
Else
   Wscript.Echo "Stisknuto Ne"
End If
Jaké tlačítko bylo stisknuto?
Jaké tlačítko bylo stisknuto?
Všimněte si v kódu:
- příkaz Wscript.Echo - funguje podobně jako MsgBox, je to však jen "zobrazovadlo". Nevrací stisknuté tlačítko a nelze si zvolit titulek okna. Používám jej pro kontrolu hodnot proměnných během ladění.
- sekvence příkazů If...Then...Else - větvení programu na základě splnění podmínky. V příkladu to znamená - pokud je vrácená hodnota vbYes, pak napiš "Stisknuto Ano". V opačném případě napiš "Stisknuto Ne".
- Odlišnost zápisu. Do proměnné tlacitko se ukládá vrácená hodnota stisknutého tlačítka. MsgBox je nyní zapsán jako funkce, a proto je text, ikona+tlačítka a titulek v závorkách.

Tolik k MsgBox.

Jaký editor používat pro vbs? S úspěchem používám vbsedit/, který disponuje i seznamem tříd windows. K základům postačí i neregistrovaná verze. Pokud si program zakoupíte, odstraní se zpoždění Debuggeru a získáte možnost váš kód zkompilovat do .exe souboru.
VbsEdit
VbsEdit
Jak můžete vidět, VbsEdit je opravdu velký pomocník. Na screenu můžete vidět možnosti objektu FileSystemObject

Tím bych považoval úvodní část za dostatečnou.
Budu rád za vaše komenty.

Příště se podíváme na proměnné a práci s nimi.
Odkazy:
Ovládáme (nejen) windows pomocí visual basic script 1. díl
Ovládáme (nejen) windows pomocí visual basic script 2. díl
Ovládáme (nejen) windows pomocí visual basic script 3. díl
Ovládáme (nejen) windows pomocí visual basic script 4. díl
Naposledy upravil(a) Uziv00 dne 24 čer 2021 18:38, celkem upraveno 5 x.
Fox_25
Level 5
Level 5
Příspěvky: 2175
Registrován: 05 dub 2017 02:32

Re: Ovládáme (nejen) windows pomocí visual basic script 1. díl

Příspěvek od Fox_25 »

Takže, s pomocí VBS si mohu napsat skript který ve složce "old" smaže složku "save", ve složce "záloha" přesune složku "save" do "old" a z nadřazeného adresáře překopíruje do složky "záloha" složku "save"?
Uziv00

Re: Ovládáme (nejen) windows pomocí visual basic script 1. díl

Příspěvek od Uziv00 »

Především - je třeba používat plnou (absolutní cestu). tedy např.: C:\old. Složku save můžeš mít v každém adresáři (složce), co jich jenom je.Z toho, co jsi napsal není jasno, oč jde.
A jinak - samozřejmě.
Příklad pravidelného zálohování třeba zde: https://pc-help.cz/viewtopic.php?f=39&t=218692
Fox_25
Level 5
Level 5
Příspěvky: 2175
Registrován: 05 dub 2017 02:32

Re: Ovládáme (nejen) windows pomocí visual basic script 1. díl

Příspěvek od Fox_25 »

Samozřejmě, to byl jen trochu kostrbatý příklad. Stručně řečeno, u hry hobo mám zálohu uložené hry vč. předchozí uložené hry a manuálně to dělat během hraní je prostě otravné. Vím že se to dá zautomatizovat, ale nechtělo se mi to hledat, takže díky za návod, respektive seriál.
Uziv00

Re: Ovládáme (nejen) windows pomocí visual basic script 1. díl

Příspěvek od Uziv00 »

Pokud jsem to dobře pochopil, tak by se jednalo o jakési "prorotování" složek s uloženými savy. To samozřejmě lze, ovšem za předpokladu, že si hra nějaký save soubor "nedrží". V takovém případě by to nefungovalo. Systém by se bránil jak smazání, tak přepisu.
Můžeš to vyzkoušet třeba tak, že si v adobe readeru otevřeš nějaké pdf a zkusíš ho smazat. Nepůjde to, dokud adobe neukončíš.
Fox_25
Level 5
Level 5
Příspěvky: 2175
Registrován: 05 dub 2017 02:32

Re: Ovládáme (nejen) windows pomocí visual basic script 1. díl

Příspěvek od Fox_25 »

Ano, samozřejmě, soubory "zamčené" aplikací nebo os mazat nejdou, nicméně zkopírovat ano. "Prorotování" složek ani ne(krom hobo, ten nezamyká), prostě smazání staré zálohy, přesunutí aktuální zálohy na pozici staré a kopírování do zálohy.
Uživatelský avatar
atari
Level 6
Level 6
Příspěvky: 3375
Registrován: 24 říj 2008 19:50

Re: Ovládáme (nejen) windows pomocí visual basic script 1. díl

Příspěvek od atari »

Můžeš prosím do těch dílů vkládat odkazy na jednotlivé díly? Děkuji
Uziv00

Re: Ovládáme (nejen) windows pomocí visual basic script 1. díl

Příspěvek od Uziv00 »

Ahoj, díky za připomínku, budu doplňovat vždy na konci úvodního příspěvku.
Uživatelský avatar
Ltb
Administrátor
Příspěvky: 6790
Registrován: 28 úno 2003 23:53
Bydliště: Praha západ
Kontaktovat uživatele:

Re: Ovládáme (nejen) windows pomocí visual basic script 1. díl

Příspěvek od Ltb »

Skvela zprava a drzim palce, at jde psani dalsich dilu hezky od ruky, diky moc! :bigups:
Uživatelský avatar
Prophet
Level 4
Level 4
Příspěvky: 1261
Registrován: 10 říj 2014 16:06
Bydliště: 127.0.0.1

Re: Ovládáme (nejen) windows pomocí visual basic script 1. díl

Příspěvek od Prophet »

Pamatuju doby kdy jsem si takhle střílel z kamarádů. Že jsem udělal tabulku třeba "máte virus" atd. :D
CPU: AMD Ryzen 7 5700x (Arctic Freezer 34)
GPU:MSI RTX 4070 Gaming X Slim 12GB GDDR6X
RAM: Kingston HyperX Fury Beast 32GB (2x16GB) DDR4 3200MHz CL16
MB: MSI B450-A PRO
Zdroj: Corsair RM850x (2021) 850W
Case:SilentiumPC Regnum RG4
SSD: Kingston A2000 500GB
HDD: Seagate Barracuda 1TB, Seagate Ironwolf 2TB
VR: Oculus Rift S
Proč nepoužívat WiFi na hry
Odpovědět
  • Podobná témata
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Nic se nenačítá ani po resetu biosu pomocí cmos baterie
    od Bliske » » v Problémy s hardwarem
    4 Odpovědi
    6363 Zobrazení
    Poslední příspěvek od pcmaker
  • Oficiální úprava Windows 11 do podoby klasických Windows (Windows 7)
    od IMB » » v Windows 11, 10, 8...
    0 Odpovědi
    19139 Zobrazení
    Poslední příspěvek od IMB
  • Windows 7 - Instalace a praktická použitelnost Windows 7 v roce 2025
    od IMB » » v Windows 11, 10, 8...
    0 Odpovědi
    425 Zobrazení
    Poslední příspěvek od IMB
  • Windows key
    od AirCrew » » v Windows 11, 10, 8...
    9 Odpovědi
    11917 Zobrazení
    Poslední příspěvek od pcmaker
  • Windows 10 nenaběhne
    od behavioralista » » v Windows 11, 10, 8...
    7 Odpovědi
    6859 Zobrazení
    Poslední příspěvek od pcmaker

Zpět na „Programování a tvorba webu“