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
Guru Level 13
Příspěvky: 21108
Registrován: březen 10
Pohlaví: Muž

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

Tlačítka MsgBoxu:
TlacitkaMsgB.png


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


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

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


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.

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
Nemáte oprávnění prohlížet přiložené soubory.
Naposledy upravil(a) ITCrowd dne 16 čer 2021 11:58, celkem upraveno 3 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: 2004
Registrován: duben 17
Pohlaví: Muž

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
Guru Level 13
Příspěvky: 21108
Registrován: březen 10
Pohlaví: Muž

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: 2004
Registrován: duben 17
Pohlaví: Muž

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
Guru Level 13
Příspěvky: 21108
Registrován: březen 10
Pohlaví: Muž

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: 2004
Registrován: duben 17
Pohlaví: Muž

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 5.5
Level 5.5
Příspěvky: 2761
Registrován: říjen 08
Pohlaví: Muž

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
Guru Level 13
Příspěvky: 21108
Registrován: březen 10
Pohlaví: Muž

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
Master Level 8
Příspěvky: 6618
Registrován: únor 03
Bydliště: Praha západ
Pohlaví: Muž

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

Příspěvekod Ltb » včera, 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: 1225
Registrován: říjen 14
Bydliště: 127.0.0.1
Pohlaví: Muž

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

Příspěvekod Prophet » včera, 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 5 3600 (Arctic Freezer 34)
GPU:Sapphire Radeon RX 5700 XT Pulse 8GB GDDR6
RAM: Kingston HyperX Fury 2x8GB 3200MHz
MB: MSI B450-A PRO
Zdroj: Seasonic S12II 620W
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
  • Ovládáme (nejen) windows pomocí visual basic script 2. díl
    od ITCrowd » 08 čer 2021 10:32 » v Programování a tvorba webu
    0
    354
    od ITCrowd
    08 čer 2021 10:32
  • Ovládáme (nejen) windows pomocí visual basic script 3. díl
    od ITCrowd » 16 čer 2021 11:54 » v Programování a tvorba webu
    0
    71
    od ITCrowd
    16 čer 2021 11:54
  • Domácí počítačová síť 3: rozšiřujeme dosah nejen Wi-Fi sítě
    od pnejezchleb » 15 črc 2020 12:43 » v Internet a sítě (čl.)
    4
    1256
    od pnejezchleb
    15 črc 2020 14:57
  • Visual Studio Code - Ako na pluginy
    od RayCodeCSC » 04 dub 2021 19:27 » v Vše ostatní (sw)
    0
    250
    od RayCodeCSC
    04 dub 2021 19:27
  • Soutěž na FB pomocí sdílení
    od PavelKilleR » 01 lis 2020 13:06 » v Komunikace na internetu
    0
    561
    od PavelKilleR
    01 lis 2020 13:06

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

Kdo je online

Uživatelé prohlížející si toto fórum: CommonCrawl [Bot] a 1 host