BlagoYar
Русь Великая, Очнись! Поднимись с колен Родная!
- Сообщения
- 95
- Репутация
- -1
Проверял скрипт
Всё было нормально, показывалось уведомление в Windows 10. Скомпилировал. Спустя какое-то время запускаю exe. нет уведомления, запускаю в SciTE на выполенние, тоже нет. Помню давно такая же проблема была (лет так 5-8 назад). Просто редко пользуюсь, думал у меня какой-то глюк. Почему?
Код:
#RequireAdmin
#NoTrayIcon
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=..\..\..\..\..\..\Медиа\Изображения\Misc\My Token Mix\ICO\Total Commander Service.ico
#AutoIt3Wrapper_Outfile_x64=..\..\..\..\..\Помощь и полезные советы\Скрипты\Install as Service.exe
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_Res_SaveSource=y
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
$sServiceName = 'TotalCMD'
$stdout = Run('sc.exe query ' & $sServiceName, '', @SW_HIDE, 2)
ProcessWaitClose("sc.exe")
$data = StdOutRead($stdout)
$data = DllCall('user32.dll', 'bool', 'OemToCharA', 'str', $data, 'str', 0)[2]
;~ MsgBox(0, '', $data)
$Status = 'error'
If $data Then
$data = StringStripWS($data, 4)
Select
Case StringInStr($data, 'Stopped')
$Status = 'Остановлена'
Case StringInStr($data, 'Running')
$Status = 'Запущена'
Case Else
$Status = 'Не установлена'
EndSelect
EndIf
ConsoleWrite($sServiceName & " : " & $Status & @CRLF)
If $Status = 'Не установлена' Then
;~ MsgBox(0, '', $Status)
$RunBat = ShellExecuteWait('D:\TotalCMD\Помощь и полезные советы\Скрипты\TotalCMD as Service.bat', '', 'D:\TotalCMD\Помощь и полезные советы\Скрипты\', '', @SW_HIDE)
Run($RunBat)
TrayTip("Статус службы " & $sServiceName, $Status, 5, 1)
ElseIf $Status = 'Запущена' OR $Status = 'Остановлена' Then
TrayTip("Статус службы " & $sServiceName, $Status, 5, 1)
Exit
EndIf
Exit
;~ $stdout = Run('sc.exe query ' & $sServiceName, '', @SW_HIDE, 2)
;~ ProcessWaitClose("sc.exe")
;~ $data = StdOutRead($stdout)
;~ $data = DllCall('user32.dll', 'bool', 'OemToCharA', 'str', $data, 'str', 0)[2]
;~ MsgBox(0, '', $data)
;~ $Status = 'error'
;~ If $data Then
;~ $data = StringStripWS($data, 4)
;~ Select
;~ Case StringInStr($data, 'Stopped')
;~ $Status = 'Остановлена'
;~ Case StringInStr($data, 'Running')
;~ $Status = 'Запущена'
;~ Case Else
;~ $Status = 'Не установлена'
;~ EndSelect
;~ EndIf
;~ TrayTip("Статус службы " & $sServiceName, $Status, 5, 1)
;~ Exit
Func _StdOut($stdout)
Local $data
Local $Status
While 1
$data = StdOutRead($stdout)
If @error Then $Status = 'Error'
If $data Then
$data = StringStripWS($data, 4)
Select
Case StringInStr($data, 'STATE : 1')
$Status = 'Stopped'
Case StringInStr($data, 'STATE : 4')
$Status = 'Running'
Case Else
$Status = 'Not Installed'
EndSelect
Else
Sleep(1000)
EndIf
WEnd
EndFunc
Всё было нормально, показывалось уведомление в Windows 10. Скомпилировал. Спустя какое-то время запускаю exe. нет уведомления, запускаю в SciTE на выполенние, тоже нет. Помню давно такая же проблема была (лет так 5-8 назад). Просто редко пользуюсь, думал у меня какой-то глюк. Почему?