Stránka 1 z 1
Zástupce pro restart aplikace
Napsal: 04 črc 2020 18:39
od Scientific
Ahoj, jak si prosím ve windows vytvořím na plochu zástupce, který zabije aplikaci a hned ji zase spustí? Třeba s několkavteřinovým waitem/sleepem?
Součástí otázky jsou i souvislosti kolem, např, jak zjistím, nějaký statický identifikátor aplikace, jelikož předpokládám, že PID se mění.
Děkuji za pomoc.
Re: Zástupce pro restart aplikace
Napsal: 04 črc 2020 19:07
od ITCrowd
vbs skript.
Nač to potřebuješ?
Re: Zástupce pro restart aplikace
Napsal: 04 črc 2020 21:09
od Scientific
Jeden pofidérní program občas přestane dělat co má, ale přesto běží. Ale nedělá nic, tak ho potřebuji vypnout a zapnout.
Byl by někdo tak hodný a ten vbs skript mi mohl napsat? Hádám, že to budeou tři commandy na 10 vteřin práce, pokud to umíte. Dalších 30 vteřin mi vysvětlit, jak ten skript spouštět zástupcem z plochy. Případně 15 vteřin ještě vygooglit, jaký přepínače mají být za pro zabití podle nějakého statického identifikátoru namísto zřejme defaultního PID.
Kód: Vybrat vše
kill -nejak neco
sllep/wait 5
run /path/to/neco.exe
V pro CLI linuxu bych to měl z hlavy, něco jako:
Kód: Vybrat vše
PID=$(ps ax | grep "neco")
kill $PID
sleep 5
cd /path/to/app && ./app
Potřebuji to jen přepsat do Windows řeči.
Prosím pěkně.
Re: Zástupce pro restart aplikace
Napsal: 04 črc 2020 23:28
od ITCrowd
Nástřel by mohl vypadat nějak takhle:
Kód: Vybrat vše
Option Explicit
Dim oWMI, colProcess, Process, WshShell, prikaz, ProgramID
Set oWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colProcess = oWMI.ExecQuery ("SELECT * FROM Win32_Process WHERE Name LIKE 'Program%'")
If colProcess.count > 0 Then
For Each Process In colProcess
ProgramID = Process.ProcessID
Set WshShell = WScript.CreateObject("WScript.Shell")
prikaz = "cmd.exe /C taskkill /PID " & ProgramID
WshShell.Run prikaz, 1, True
WScript.Sleep 5000
prikaz = "c:\adresar\program.exe"
WshShell.Run prikaz, 1, True
End If
Set oWMI = Nothing
Set colProcess = Nothing
Set WshShell = Nothing
Pokud budeš mít zájem, klidně to napíšu a odladím třeba na notepad, který si pak nahradíš svým programem.
Re: Zástupce pro restart aplikace
Napsal: 07 črc 2020 08:28
od Scientific
S tímhle sem si hrál na vejšce v excelu.
1. Děkuji ti moc, nečekal sem, že to bude takhle hustě udělaný.
2. Pokud chápu, mám ve vyhledávacím dotazu upravit LIKE klauzuli + upravit cestu v proměnné "prikaz". Nic víc?
3. Tohle je nejaky.vbs skript a stačí zástupci na ploše přidat cestu něco jako spouštění programu wscript s nějakými parametry jako třeba cesta k tomu skriptu? Nebo jak to namontovat pro spouštění zástupce z plochy.
Re: Zástupce pro restart aplikace
Napsal: 07 črc 2020 08:39
od mirekol
Jeden pofidérní program občas přestane dělat co má, ale přesto běží. Ale nedělá nic, tak ho potřebuji vypnout a zapnout.
A nebylo by efektnější/lepší, odstranit příčinu, než řešit následek?
Re: Zástupce pro restart aplikace
Napsal: 07 črc 2020 08:46
od ITCrowd
scientific:
Chápeš to dobře.
Jinak stačí napsat to v notepadu, uložit s příponou .vbs. Pokud chceš tvořit zástupce, pak si ten script někam ulož a vytvoř k němu zástupce. Jinak stačí jen ho zkopírovat na plochu. Reaguje na dvojité poklikání, nic dalšího netřeba.
mirekol:
ne každá aplikace je správně napsána. Navíc může být i starší a programátoři už vyhynuli. Takže restart aplikace bývá často jediným a nejjednodušším řešením. Což v podstatě platí i pro hnusná wokna, kdy se leccos restartem vyřeší.
Re: Zástupce pro restart aplikace Vyřešeno
Napsal: 07 črc 2020 09:02
od TheSalon112
Myslím si, že cez cmd to bude omnoho jednoduhšie, ako cez VB script
Kód: Vybrat vše
taskkill /f /t /im proces.exe
timeout 5 /NOBREAK >NUL //počet sekúnd - 5
start "" "cesta_k_procesu" //Prvé uvodzovky ostávajú prázdne, do druhých sa píše cesta
Príklad v praxi:
Kód: Vybrat vše
taskkill /f /t /im chrome.exe
timeout 5 /NOBREAK >NUL
start "" "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
Uložíš ako .bat napr na plochu, a dvojitým poklepaním sa spustí, čo sa požaduje :)
Ak nevieš, ako vytvoriť bat súbor, návod napr tu:
https://sk.ateasyday.com/articles/windo ... ndows.html
Re: Zástupce pro restart aplikace
Napsal: 07 črc 2020 16:11
od Scientific
Děkuji moc Vám oběma, přesně tohle jsem chtěl, díky moc.
Řešení od ITCrowd je bez pochyby mnohem propracovanější a elegantnější, nicméně, mě stačí ta jednodušší primitivnější cesta, u které rozumím každému primitivnímu řádku.
Řešení od TheSalon112 jsem ověřil a funguje, ale nepochybuji o tom, že funguje i to propracovanější.
Díky moc.