Follow along with the video below to see how to install our site as a web app on your home screen.
Anmerkung: This feature may not be available in some browsers.
:FncAskKillOrRunApp
::Parameters: <NameOfApp>
setlocal EnableDelayedExpansion
tasklist | find "%~nx1" > NULL
if %ERRORLEVEL% == 0 (
set /p ask=Soll das Programm "%~nx1" beendet werden ^(j/n; enter=n^)^?
if /i "!ask!" == "j" tskill "%~n1"
) else (
set /p ask=Soll das Programm "%~nx1" gestartet werden ^(j/n; enter=n^)^?
if /i "!ask!" == "j" start "" "%~1"
)
exit /b 0
@echo off
:LOOP
call :FncAskKillOrRunApp c:\windows\system32\notepad.exe
call :FncAskKillOrRunApp Programm2.exe
call :FncAskKillOrRunApp Programm3.exe
:: ...
call :FncSleep 5
goto :LOOP
goto :EOF
:FncAskKillOrRunApp
::Parameters: <NameOfApp>
setlocal EnableDelayedExpansion
tasklist | find "%~nx1" > NULL
if %ERRORLEVEL% == 0 (
set /p ask=Soll das Programm "%~nx1" beendet werden ^(j/n; enter=n^)^?
if /i "!ask!" == "j" tskill "%~n1"
) else (
set /p ask=Soll das Programm "%~nx1" gestartet werden ^(j/n; enter=n^)^?
if /i "!ask!" == "j" start "" "%~1"
)
exit /b 0
:FncSleep
::Parameters: <seconds to wait>
set /a _FncSleep_seconds"=(%1 +1)"
ping -n %_FncSleep_seconds% -w 1000 127.0.0.1 >NUL
exit /b 0
/***********************************************************
name ... procControl
ver ... alpha
coder ... IsNull
securityvision.ch
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
descrp.:
Minimales Tool um (im Vorfeld definierte) Prozesse zu
kontrollieren. Eine aktivierte Checkbox bedeutet dass der
jeweilige Prozess läuft. Mit einem Doppelklick auf einen
Prozess kann dieser gestartet bez. beendet werden.
************************************************************
*/
/**********************************************************
conf:
Syntax:
NameDesProzesses | PfadZumProgramm
***********************************************************
*/
proclist =
(
Hallo.exe|Path to my exe
explorer.exe|C:\Windows\Explorer.exe
habadaba.exe|C:\wayne.exe
test.exe|C:\test.exe
usw...
)
delay := 2000
;**********************************************************
/**********************************************************
-----------------------GUI
minimales GUI aufsetzten
***********************************************************
*/
Gui, Add, text, x10 y20,Liste der zu überwachenden Programme:
Gui, Add, ListView, r20 w700 gMyListView Checked, Prozess Name|Path|Info
gui, show
gosub, checkProcs
SetTimer,checkProcs, %delay%
return
/**********************************************************
-----------------------Eventhandler
reagiert auf User-Interaktionen:
Doppelklick
***********************************************************
*/
MyListView:
if A_GuiEvent = DoubleClick
{
LV_GetText(RowText, A_EventInfo,1) ;1 Zelle
LV_GetText(path2proc, A_EventInfo,2) ;2 Zelle
Gui +LastFound
SendMessage, 4140, A_EventInfo - 1, 0xF000, SysListView321 ; 4140 is LVM_GETITEMSTATE. 0xF000 is LVIS_STATEIMAGEMASK.
IsChecked := (ErrorLevel >> 12) - 1
if (!IsChecked){
;prozess läuft nicht -> starten
IfNotExist, %path2proc%
{
msgbox "%path2proc%" nicht gefunden!
return
}
run, %path2proc%,,UseErrorLevel
if (errorlevel){
msgbox Prozess kann nicht gestartet werden!
}
return
}else{
;prozess läuft -> schliessen?!
msgbox,4,Close Process, Soll der Prozess %RowText% geschlossen werden?
IfMsgBox, Yes
{
Process, close, %RowText%
}
}
GoSub, checkProcs
}
return
/**********************************************************
-----------------------Sub Section
checkProcs: überprüft die Programme und schreibt die
Ergebnisse in das GUI.
***********************************************************
*/
checkProcs:
LV_Delete()
loop, parse, proclist, `n
{
procPathState := ""
procName := ""
procPath := ""
loop, parse, a_loopfield,|
{
if (a_index = 1){
procName := a_loopfield
}else{
procPath := a_loopfield
}
}
ifexist, %procPath%
{
procPathState := "ok"
}Else{
procPathState := "File not found!"
}
process, Exist, %procName%
if (!errorlevel){
LV_Add("", procName, procPath, procPathState)
}else{
LV_Add("Check", procName, procPath, procPathState)
}
}
LV_ModifyCol() ; Auto-size each column to fit its contents.
return
GuiClose:
exitapp
/***********************************************************
name ... procControl
ver ... alpha
coder ... IsNull
securityvision.ch
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
descrp.:
Minimales Tool um (im Vorfeld definierte) Prozesse zu
kontrollieren. Eine aktivierte Checkbox bedeutet dass der
jeweilige Prozess läuft. Mit einem Doppelklick auf einen
Prozess kann dieser gestartet bez. beendet werden.
************************************************************
*/
/**********************************************************
conf:
Syntax:
NameDesProzesses | PfadZumProgramm
***********************************************************
*/
proclist =
(
Hallo.exe|Path to my exe
explorer.exe|C:\Windows\Explorer.exe
habadaba.exe|C:\wayne.exe
test.exe|C:\test.exe
usw...
)
delay := 2000
;**********************************************************
/**********************************************************
-----------------------GUI
minimales GUI aufsetzten
***********************************************************
*/
Gui, Add, text, x10 y20,Liste der zu überwachenden Programme:
Gui, Add, ListView, r20 w700 gMyListView Checked AltSubmit, Prozess Name|Pfad|Info
gui, show
gosub, checkProcs
SetTimer,checkProcs, %delay%
return
/**********************************************************
-----------------------Eventhandler
reagiert auf User-Interaktinen:
Leftclick
***********************************************************
*/
MyListView:
if A_GuiEvent = Normal
{
LV_GetText(RowText, A_EventInfo,1) ;1 Zelle
LV_GetText(path2proc, A_EventInfo,2) ;2 Zelle
Gui +LastFound
SendMessage, 4140, A_EventInfo - 1, 0xF000, SysListView321 ; 4140 is LVM_GETITEMSTATE. 0xF000 is LVIS_STATEIMAGEMASK.
IsChecked := (ErrorLevel >> 12) - 1
if (!IsChecked){
;prozess läuft nicht -> starten
IfNotExist, %path2proc%
{
msgbox "%path2proc%" nicht gefunden!
return
}
run, %path2proc%,,UseErrorLevel
if (errorlevel){
msgbox Prozess kann nicht gestartet werden!
}
return
}else{
;prozess läuft -> schliessen?!
msgbox,4,Close Process, Soll der Prozess %RowText% geschlossen werden?
IfMsgBox, Yes
{
Process, close, %RowText%
}
}
GoSub, checkProcs
}
return
/**********************************************************
-----------------------Sub Section
checkProcs: überprüft die Programme und schreibt die
Ergebnisse in das GUI.
***********************************************************
*/
checkProcs:
LV_Delete()
loop, parse, proclist, `n
{
procPathState := ""
procName := ""
procPath := ""
loop, parse, a_loopfield,|
{
if (a_index = 1){
procName := a_loopfield
}else{
procPath := a_loopfield
}
}
ifexist, %procPath%
{
procPathState := "ok"
}Else{
procPathState := "Datei nicht gefunden!"
}
process, Exist, %procName%
if (!errorlevel){
LV_Add("", procName, procPath, procPathState)
}else{
LV_Add("Check", procName, procPath, procPathState)
}
}
LV_ModifyCol() ; Auto-size each column to fit its contents.
return
GuiClose:
exitapp