Что нового

Перезапуск скрипта ключом из командной строки

DesMono

Новичок
Сообщения
19
Репутация
0
Что-то не удалось сделать...
Нужен перезапуск работающего скрипта из командной строки ключом, например так: script.exe -restart

Для перезапуска использую функцию от Yashied
 

_Lexa98_

Осваивающий
Сообщения
551
Репутация
25
DesMono
Код:
If $CMDLINE[0] <> 0 Then
    If $CMDLINE[1] = "-restart" Then
        Run(@ScriptFullPath)
        Exit
    EndIf
Else
    ;Код программы
EndIf
 
Автор
D

DesMono

Новичок
Сообщения
19
Репутация
0
_Lexa98_
если в момент работы скрипта выполнить: script.exe -restart , то открывается просто ещё одна его копия.

Код:
#include <GUIConstantsEx.au3>

If $CMDLINE[0] <> 0 Then
    If $CMDLINE[1] = "-restart" Then
        Run(@ScriptFullPath)
        Exit
    EndIf
Else
    GUICreate("Test", 250, 250, -1, -1)
	GUISetState(@SW_SHOW)

	While 1
		$nMsg = GUIGetMsg()
		Switch $nMsg
			Case $GUI_EVENT_CLOSE
				Exit
		EndSwitch
	WEnd
EndIf
 

_Lexa98_

Осваивающий
Сообщения
551
Репутация
25
DesMono
Старая должна открыть новую и закрыться
 
Автор
D

DesMono

Новичок
Сообщения
19
Репутация
0
_Lexa98_
ну может и должна, но на деле открывается новая и старая остается. :whistle:
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
DesMono [?]
перезапуск работающего скрипта из командной строки ключом, например так: script.exe -restart
Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <SendMessage.au3>

If $CMDLINE[0] <> 0 Then
    If $CMDLINE[1] = "-restart" Then
        _SendMessage(WinGetHandle("Test"), $WM_CLOSE)
    EndIf
EndIf

GUICreate("Test", 250, 250, -1, -1)
GUISetState(@SW_SHOW)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch
WEnd
 
Автор
D

DesMono

Новичок
Сообщения
19
Репутация
0
InnI
Отлично! Работает и конструкция удобная. Спасибо.
 
Верх