Что нового

Окна, Диалоги Почему глючно работает TrayTip?

BlagoYar

Русь Великая, Очнись! Поднимись с колен Родная!
Сообщения
95
Репутация
-1
Проверял скрипт
Код:
#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 назад). Просто редко пользуюсь, думал у меня какой-то глюк. Почему?
 
Верх