Другие языки программирования и технологии

Необходимо создать короткий скрипт в vbs или в js. Подробности внутри.

Maksat Mussin
Maksat Mussin
7 512
В скриптах Foldername и Filename.exe нужно заменить на имя папки на рабочем столе и файла exe. Замечу, что "файл.ехе должен ...работать три минуты" и "запускать прогу ...каждые три минуты" - немного разные требования, реализовано первое.

Либо скрипт .js:

while (true) {
with (new ActiveXObject("WScript.Shell")) {
with (exec(specialfolders.item(0x4) + '\\Foldername\\Filename.exe')) {
WScript.sleep(180000);
terminate();
}
}
}

Либо скрипт .vbs:

do
with createobject("WScript.Shell")
with .exec(.specialfolders.item(&H4) & "\Foldername\Filename.exe")
wscript.sleep 180000
.terminate
end with
end with
loop

Если "в скрытом режиме" означает невидимое окно программы, тогда ниже - вариант с использованием WMI.

Либо скрипт .js:

var strFile = "Filename.exe";
var strPath = new ActiveXObject("WScript.Shell").SpecialFolders.Item(0x4) + "\\Foldername\\" + strFile;
with (GetObject("winmgmts:\\\\.\\Root\\CIMV2")) {
var objConfig = Get("Win32_ProcessStartup").SpawnInstance_();
objConfig.ShowWindow = 0;
while (true) {
Get("Win32_Process").Create(strPath, null, objConfig);
WScript.Sleep(180000);
with (new Enumerator(ExecQuery("SELECT * FROM Win32_Process WHERE Name = '" + strFile + "'"))) {
for (; !(atEnd()); moveNext()){
item().Terminate();
}
}
}
}

Либо скрипт .vbs:

strFile = "Filename.exe"
strPath = CreateObject("WScript.Shell").SpecialFolders.Item(&H4) & "\Foldername\" & strFile
With GetObject("winmgmts:\\.\Root\CIMV2")
Set objConfig = .Get("Win32_ProcessStartup").SpawnInstance_
objConfig.ShowWindow = 0
Do
.Get("Win32_Process").Create strPath, , objConfig
Wscript.Sleep 180000
For Each objItem In .ExecQuery("SELECT * FROM Win32_Process WHERE Name = '" & strFile & "'")
objItem.Terminate
Next
Loop
end with

PS отступы в ответах "съедаются", поэтому код выглядит уныло.
Олег Горбачёв
Олег Горбачёв
1 449
Лучший ответ
некак