 |
|
solomonkane |
17-09-2014 11:39 2403873 |
Приостановка или перезапуск процесса
Здравствуйте!
Отправляю файл на почту в письме через vbs скрипт, файл для отправки 1 постоянно перезаписывется и обновляется круглосуточно программой, запущенной от имени админ-пользователя.
Когда запускается скрипт он отсылает письмо, но без вложения, т.к. этот файл мониторит(используется) запущенной программой.
Можно ли переделать скрипт ниже, чтобы он находил этот процесс не по имени сразу, а по расположению, потом устранял и перезапускал его после отправки почты?
Ну или как-то взаимодействовать с bat/cmd?
Код:
On Error Resume Next
Dim o_Mess, v_Conf
v_Conf = "http://schemas.microsoft.com/cdo/configuration/"
Set o_Mess = CreateObject("CDO.Message")
With o_Mess
.To = "TO"
.From = "FROM"
.Subject = "HeLLo"
.TextBody = "*msg*"
.AddAttachment "C:\users\PC\app data\programdir\file.zip"
.TextBodyPart.Charset = "windows-1251"
With .Configuration.Fields
.Item(v_Conf & "sendusing") = 2
.Item(v_Conf & "smtpserver") = "smtp.mail.ru"
.Item(v_Conf & "smtpauthenticate") = 1
.Item(v_Conf & "sendusername") = "FROMLOGIN"
.Item(v_Conf & "sendpassword") = "PASS"
.Item(v_Conf & "smtpserverport") = 25
.Item(v_Conf & "smtpusessl") = False
.Item(v_Conf & "smtpconnectiontimeout") = 65
.Update
End With
.send
End With
Set o_Mess = Nothing
|
solomonkane, на какой ОС работает «круглосуточно программа, запущенная от имени админ-пользователя»?
|
solomonkane |
17-09-2014 12:25 2403898 |
Iska, windows 7
вот сам нарыл только это, может поможет в решений данной проблемы, но немного не то:
Код:
Restart Program Script:
set Service = GetObject ("winmgmts:")
set Shell = WScript.CreateObject("WScript.Shell")
'Name of the exe we want to watch
sEXEName = "processing.exe"
'Path of the folder it is in (Don't forget the trailing \)
sApplicationPath = "C:\process\"
'Loop until the system is shutdown or user logs out
while true
bRunning = false
'Look for our application. Set the flag bRunning = true
'If we see that it is running
for each Process in Service.InstancesOf ("Win32_Process")
if Process.Name = sEXEName then
bRunning=true
End If
next
'Is our app running?
if (not bRunning) then
'No it is not, launch it
Shell.Run Chr(34) & sApplicationPath & sEXEName & Chr(34)
end if
'Sleep a while so we do not hog the cpu
WScript.Sleep(2000)
wend
только следит чтоб программа не закрывалась и постоянно висит в процессах
|
solomonkane |
17-09-2014 16:11 2403995 |
Iska, спасибо за ответ :)
тогда у меня еще вопрос.
чтобы не заморачиваться с сервисами наверно проще этот файл скопировать а потом уже отправлять,
а как батником или в скрипте почты (ну или отдельно) зделать, так, чтобы:
искал нужный файл в ЗАДАННОЙ папке или диске, когда найдет копировал в другую папку создавая ее если не существует, а если папка уже есть - копирование в нее с перезаписью
и еще учитывать пробелы в имени файла и папок?
|
Цитата:
Цитата solomonkane
чтобы не заморачиваться с сервисами наверно проще этот файл скопировать а потом уже отправлять, »
|
«Заморачиваться», я полагаю. придётся.
Цитата:
Цитата solomonkane
а как батником или в скрипте почты (ну или отдельно) зделать, так, чтобы:
искал нужный файл в ЗАДАННОЙ папке или диске, когда найдет копировал в другую папку создавая ее если не существует, а если папка уже есть - копирование в нее с перезаписью
и еще учитывать пробелы в имени файла и папок? »
|
Данный вопрос как-то относится к текущей теме?
|
Время: 00:28.
© OSzone.net 2001-