Stránka 1 z 2
.vbs - zavření okna MsgBox, kam napsat parametry příkazu
Napsal: 13 črc 2011 21:32
od tux
Hoj, dělám takovou blbost a potřebuju nějak nastavit aby se otevřelo okno bez žádnejch tlačítek, jenom s textem a po vteřině zavřelo a otevřelo jiný (prostě chci udělat odpočítávání).
Jde tohle nějak příkazem MsgBox a jestli jo tak jak, jestli ne tak jakým?
A ještě když mám třeba příkaz MsgBox a chci k tomu dát parametr vbCritical (Zobrazit ikonu "Kritická zpráva") tak jak to mam udělat? Nebo jak to napsat do toho jednoho řádku?
Re: .vbs - zavření okna MsgBox, kam napsat parametry příkazu
Napsal: 13 črc 2011 21:36
od Uziv00
Tlačítko tam bude vždycky. Jinak příklad:
Kód: Vybrat vše
MsgBox "Zobrazený text", _
vbOKOnly + vbCritical, "Titulek okna"
Re: .vbs - zavření okna MsgBox, kam napsat parametry příkazu
Napsal: 13 črc 2011 21:44
od tux
OK dík a to odpočítávání je nějak možný? Resp. zavření aktuálního okna, hned po zavření automaticky naskočí další.
Re: .vbs - zavření okna MsgBox, kam napsat parametry příkazu
Napsal: 13 črc 2011 22:12
od Uziv00
Tak to se mi nikdy nepodařilo zjistit. Kdybys na něco přišel, zajímalo by mě to.
Re: .vbs - zavření okna MsgBox, kam napsat parametry příkazu
Napsal: 13 črc 2011 22:19
od tux
A co to je ten PROMOTIC? Jsem vyčetl že je to něco jako rozšíření vbs, je to tak? Tím by to nešlo?
Re: .vbs - zavření okna MsgBox, kam napsat parametry příkazu
Napsal: 13 črc 2011 22:43
od Uziv00
Takže ve vbs to jde vyřešit takto:
Kód: Vybrat vše
Dim objFSO
set objFSO = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("Wscript.Shell")
Wait 5, "Toto okno se zavře samo"
Wait 5, "A tohle taky"
Sub Wait(Seconds, Message)
On Error Resume Next
Dim objFuncShell
If IsEmpty(objFuncShell) Then Set objFuncShell = CreateObject("wscript.shell")
objFuncShell.Popup Message, Seconds, "Title", 16 + 4096
End Sub
set objFSO = nothing
Re: .vbs - zavření okna MsgBox, kam napsat parametry příkazu
Napsal: 13 črc 2011 23:54
od tux
OK dík. Ještě dotaz, pokud použju tohleto:
Kód: Vybrat vše
Set wshshell = wscript.CreateObject("WScript.Shell")
Wshshell.run "Notepad"
wscript.sleep 100
wshshell.sendkeys "a"
wscript.sleep 100
wshshell.sendkeys "b"
wscript.sleep 100
wshshell.sendkeys "c"
wscript.sleep 100
wshshell.sendkeys "d"
wscript.sleep 100
wshshell.sendkeys "e"
wscript.sleep 100
wshshell.sendkeys "f"
wscript.sleep 100
wshshell.sendkeys " g"
tak se mi ty znaky budou vytvářet vedle sebe, jak tam mam udělat to aby se to dělalo na další řádek nebo obřádek?
A ještě jak udělat že když se napíše celej ten text tak aby se notepad zavřel?
Nebo jde to nějak udělat v cmd aby to okno bylo prázdný a nebylo tam C:\Users\xxxx ? Notepad na to co dělám není zrovna ideální

\\edit: Pro upřesnění, vím že místo toho "Notepad" můžu použít "cmd" ale jde mi to aby tam pak nebylo tohle:
ale napsal se jen ten text kterej tam chci (v tomhle případě „abcdefg“).
OT: Btw, jakýma klávesovýma zkratkama se dělaj uvozovky („“)? Run\charmap není zrovna rychlá volba

Re: .vbs - zavření okna MsgBox, kam napsat parametry příkazu
Napsal: 14 črc 2011 00:30
od Uziv00
K odřádkování lze použít "vbCr" - bez uvozovek.
k cmd - vzhled příkazové řádky určuje příkaz prompt. Zadáš-li např. příkaz "prompt vole" zmizí cesta i > a bude tam jen ten nápis. Musí tam ale být nějaký znak, mezeru to nevezme.
K ukončení notepadu - pošli mu alt+F4. Případně by to šlo i takto:
Kód: Vybrat vše
Option Explicit
Dim objWMIService, objProcess, colProcess
Dim strComputer, strProcessKill
strComputer = "."
strProcessKill = "'notepad.exe'"
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\cimv2")
Set colProcess = objWMIService.ExecQuery _
("Select * from Win32_Process Where Name = " & strProcessKill )
For Each objProcess in colProcess
objProcess.Terminate()
Next
WSCript.Echo "Just killed process " & strProcessKill _
& " on " & strComputer
Re: .vbs - zavření okna MsgBox, kam napsat parametry příkazu
Napsal: 14 črc 2011 00:53
od tux
To prompt ani vbCr mi nejde, můžeš mi sem dát nějaký funkční příklady abych věděl kam to jak psát?
U toho ukončení notepadu, jde to nějak aby se jen to okno zavřelo a nezobrazovala se zpráva Just killed process blabla.exe.. ?
A ještě potřebuju tohle, chci zapnout tuhle funkci - nekonečný zapínání a vypínání capslocku a hned za to MsgBox kterej vyskočí hned potom co se zapne ta fce, problém je v tom že za tím capslockem se už nic neděje.
Kód: Vybrat vše
Set oWMP = CreateObject("WMPlayer.OCX.7" )
Set colCDROMs = oWMP.cdromCollection
Set wshShell =wscript.CreateObject("WScript.Shell")
do
wscript.sleep 100
wshshell.sendkeys "{CAPSLOCK}"
loop
MsgBox "blablabla"
A potom ještě něco, ty vbs scripty nějak nejdou s ICQ - pořád se přepíná do popředí. Je nějakej příkaz aby se hned na začátku toho scriptu ICQ vyplo? (něco jako "kill C:\Program files\ICQ\ICQ.exe")
Re: .vbs - zavření okna MsgBox, kam napsat parametry příkazu
Napsal: 14 črc 2011 08:52
od Uziv00
Předpokládám, že prompt ti nejde přes skript. Pak bude problém v tom, že příkazový řádek není úplně platná aplikace windows. Pokud jde aspoň psaní do řádku, zkus místo vbCr předat escape sekvenci. trošku googli člověče :-)
Zprávu odstraníš zaremováním, nebo vymazáním řádku s WScript.Echo
A k tomu poslednímu - pochopitelně. Jestliže program uvrhneš do nekonečné smyčky obsluhující CapsLock a zprávu až za tuto smyčku, těžko můžeš čekat že z ní intuitivně vyskočí aby ti ji vypsal.
Re: .vbs - zavření okna MsgBox, kam napsat parametry příkazu
Napsal: 14 črc 2011 11:19
od tux
To zavření okna mi nějak nešlo ale vyřešil jsem to takhle:
Kód: Vybrat vše
strComputer = "."
strProcessToKill = "program.exe"
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\cimv2")
Set colProcess = objWMIService.ExecQuery _
("Select * from Win32_Process Where Name = '" & strProcessToKill & "'")
count = 0
For Each objProcess in colProcess
objProcess.Terminate()
count = count + 1
Next
- je tam vlatně jenom smazanej ten začátek.
K tomu CapsLocku, nejde třeba udělat že by ta smyčka běžela a mezitím se spustily další příkazy, něco jako příkaz vbNew objekt?

Re: .vbs - zavření okna MsgBox, kam napsat parametry příkazu
Napsal: 14 črc 2011 19:39
od Uziv00
Ten kód je stejný. Problém vidím v tom, že ještě neznáš syntaxi vbs.
Řádek lze totiž rozdělit podtržítkem na dva, takže zápis:
WSCript.Echo "Just killed process " & strProcessKill _
& " on " & strComputer
je stejný jako:
WSCript.Echo "Just killed process " & strProcessKill & " on " & strComputer
Nekonečná smyčka:
buď napíšeš kód tak, že vše bude uvnitř smyčky, nebo budeš muset na smyčku mít zvlášť skript.
--- Doplnění předchozího příspěvku (14 Črc 2011 19:49) ---
A k tomu cmd:
mě to normálně chodí i na vbCr. V tom případě lze k ukončení použít příkaz exit a potvdit vbCr, příkazový řádek se pak ukončí.