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

Uživatelský avatar
ITCrowd
Tvůrce článků
Guru Level 13.5
Guru Level 13.5
Příspěvky: 23591
Registrován: březen 10
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod ITCrowd » 02 čer 2021 23:05

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:
IkonyMsgBox.png
Ikony MsgBoxu
IkonyMsgBox.png (27.28 KiB) Zobrazeno 3376 x

Tlačítka MsgBoxu:
TlacitkaMsgB.png
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:
MsgBoxpriklad.png
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:
MsgBoxReturn.png
Hodnoty tlačítek
MsgBoxReturn.png (10.28 KiB) Zobrazeno 3376 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

TestTlacitka.png
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.png
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) ITCrowd dne 24 čer 2021 18:38, celkem upraveno 5 x.
Zkusili jste to vypnout a zapnout? Problémy řeším pouze v tématech. Do SZ mi proto píšete zbytečně.
Základní diagnostika WiFi Jak na diagnostiku sítě Router jako switch Proč je nesmysl chtít router s velkým dosahem Vybíráme router

Reklama
Fox_25
Level 5
Level 5
Příspěvky: 2175
Registrován: duben 17
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod Fox_25 » 02 čer 2021 23:21

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"?

Uživatelský avatar
ITCrowd
Tvůrce článků
Guru Level 13.5
Guru Level 13.5
Příspěvky: 23591
Registrován: březen 10
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod ITCrowd » 02 čer 2021 23:34

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: viewtopic.php?f=39&t=218692
Zkusili jste to vypnout a zapnout? Problémy řeším pouze v tématech. Do SZ mi proto píšete zbytečně.
Základní diagnostika WiFi Jak na diagnostiku sítě Router jako switch Proč je nesmysl chtít router s velkým dosahem Vybíráme router

Fox_25
Level 5
Level 5
Příspěvky: 2175
Registrován: duben 17
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod Fox_25 » 02 čer 2021 23:43

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.

Uživatelský avatar
ITCrowd
Tvůrce článků
Guru Level 13.5
Guru Level 13.5
Příspěvky: 23591
Registrován: březen 10
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod ITCrowd » 03 čer 2021 00:36

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číš.
Zkusili jste to vypnout a zapnout? Problémy řeším pouze v tématech. Do SZ mi proto píšete zbytečně.
Základní diagnostika WiFi Jak na diagnostiku sítě Router jako switch Proč je nesmysl chtít router s velkým dosahem Vybíráme router

Fox_25
Level 5
Level 5
Příspěvky: 2175
Registrován: duben 17
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod Fox_25 » 03 čer 2021 00:55

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: 3195
Registrován: říjen 08
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod atari » 08 čer 2021 15:22

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

Uživatelský avatar
ITCrowd
Tvůrce článků
Guru Level 13.5
Guru Level 13.5
Příspěvky: 23591
Registrován: březen 10
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod ITCrowd » 09 čer 2021 08:18

Ahoj, díky za připomínku, budu doplňovat vždy na konci úvodního příspěvku.
Zkusili jste to vypnout a zapnout? Problémy řeším pouze v tématech. Do SZ mi proto píšete zbytečně.
Základní diagnostika WiFi Jak na diagnostiku sítě Router jako switch Proč je nesmysl chtít router s velkým dosahem Vybíráme router

Uživatelský avatar
Ltb
Administrátor
Master Level 8.5
Master Level 8.5
Příspěvky: 6755
Registrován: únor 03
Bydliště: Praha západ
Pohlaví: Muž
Stav:
Offline
Kontakt:

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

Příspěvekod Ltb » 17 čer 2021 11:03

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: říjen 14
Bydliště: 127.0.0.1
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod Prophet » 17 čer 2021 20:46

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


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Windows 11 nelze zrušit přihlášení pomocí hesla PIN)
    od nulka » 17 srp 2023 11:08 » v Windows 11, 10, 8...
    9
    3381
    od nulka Zobrazit poslední příspěvek
    17 srp 2023 16:02
  • Windows XP emulátor na Windows 10 Příloha(y)
    od propi » 08 dub 2023 13:56 » v Windows 11, 10, 8...
    6
    2704
    od propi Zobrazit poslední příspěvek
    10 dub 2023 19:47
  • Windows 8.1 CMD
    od Daniel_Jackson » 29 dub 2023 13:33 » v Windows 11, 10, 8...
    4
    1522
    od petr22 Zobrazit poslední příspěvek
    29 dub 2023 14:38
  • Update Windows 10
    od liborek » 01 dub 2023 17:43 » v Windows 11, 10, 8...
    47
    4907
    od liborek Zobrazit poslední příspěvek
    08 dub 2023 11:33
  • Okenko Windows
    od Lebedil » 29 čer 2023 21:10 » v Problémy s hardwarem
    2
    738
    od Lebedil Zobrazit poslední příspěvek
    29 čer 2023 21:39

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

Kdo je online

Uživatelé prohlížející si toto fórum: Google [Bot] a 4 hosti