Ovládáme (nejen) windows pomocí visual basic script 1. díl Vyřešeno

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

Uziv00
Pohlaví: Nespecifikováno

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

Příspěvekod Uziv00 » 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.
VbsEdit.png

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
Nemáte oprávnění prohlížet přiložené soubory.
Naposledy upravil(a) Uziv00 dne 24 čer 2021 18:38, celkem upraveno 5 x.

Reklama
Fox_25
Level 5
Level 5
Příspěvky: 2175
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"?

Uziv00
Pohlaví: Nespecifikováno

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

Příspěvekod Uziv00 » 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

Fox_25
Level 5
Level 5
Příspěvky: 2175
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.

Uziv00
Pohlaví: Nespecifikováno

Re: Ovládáme (nejen) windows pomocí visual basic script 1. díl  Vyřešeno

Příspěvekod Uziv00 » 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číš.

Fox_25
Level 5
Level 5
Příspěvky: 2175
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 6
Level 6
Příspěvky: 3249
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

Uziv00
Pohlaví: Nespecifikováno

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

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

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
Master Level 8.5
Master Level 8.5
Příspěvky: 6775
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 » 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ž

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
  • Sledování pomocí hodinek
    od palecek » 29 srp 2024 09:47 » v Mobily, tablety a jiná přenosná zařízení
    3
    1593
    od GamerXXX
    02 zář 2024 12:25
  • Mazání souborů pomocí Scriptu
    od luko02420 » 04 kvě 2024 07:32 » v Vše ostatní (sw)
    25
    5074
    od luko02420
    09 kvě 2024 10:12
  • Teamviewer - jak ovládat gps (pc) pomocí vzdálené podpory
    od Antonín » 27 bře 2024 14:35 » v Vše ostatní (sw)
    3
    3251
    od Antonín
    15 dub 2024 13:06
  • Náhrada za Windows 7, Windows XP pro MS Office a internet CZ - Obdobný podobný Windows 7 OS pro 64bit. a 32bit. PC
    od IMB » 28 črc 2024 15:25 » v LiNuX a ostatní alternativní OS
    6
    2430
    od zeus
    05 srp 2024 15:30
  • TAP-Windows 9.21.2 - error
    od ski1961 » 11 kvě 2024 15:20 » v Windows 11, 10, 8...
    2
    2114
    od faraon
    12 kvě 2024 09:00

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

Kdo je online

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