Войти

Показать полную графическую версию : Помогите найти ошибку в скрипте


Anarasius
20-10-2009, 14:13
#NoTrayIcon
#include <Misc.au3>
;

_Singleton(@ScriptName)

;Задаём опции трея (меню пользователя)
Opt("TrayMenuMode", 1)

;Создаём пункты в значке трея
Global $nAbout_TrayItem = TrayCreateItem("О Программе")

;Задаём состояние трея
TraySetToolTip("test")
TraySetIcon("Shell32.dll", 22)
TraySetClick(8)
TraySetState()

;Указываем программу(ы) для запуска
Global $aRun_Apps = StringSplit(@ProgramFilesDir & '\test\test.exe', "|")


;Добавляем программу в автозапуск
If RegRead("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", @ScriptName) = "" Then _
RegWrite("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", @ScriptName, "REG_SZ", '"' & @ScriptFullPath & '"')



;Запускаем функцию _Check_Run_Proc() каждые 2 минуты
AdlibEnable("_Check_Run_Proc", 120000)
Call("_Check_Run_Proc")

;Главный цикл
While 1
Switch TrayGetMsg()

Case $nAbout_TrayItem
MsgBox(270400,"О Программе", "2009г.", 5)

EndSwitch
WEnd


Func _Check_Run_Proc()
If Not ProcessExists('test.exe') Then Run(@ProgramFilesDir & '\test\test.exe')
EndFunc

Скрипт работает, но при перезагрузки он не запускает(через автозапуск) приложение. т.е. сам скрипт загружается но программа test.exe нет.
Если вручную перезапустить скрипт то все ОК.
Где я допустил ошибку? СПАСИБО

Creat0R
20-10-2009, 14:39
сам скрипт загружается но программа test.exe нет. »
Значит видимо процесс test.exe уже загружен :)

Anarasius
20-10-2009, 14:43
нет, я бы увидел

FlatX007
21-10-2009, 07:22
Ошибок мульён :)

#NoTrayIcon
#include <Misc.au3>

_Singleton(@ScriptName)

Opt("TrayMenuMode", 1)
$nAbout_TrayItem = TrayCreateItem("О Программе")
TrayCreateItem("")
$nExit = TrayCreateItem("Exit")

TraySetToolTip("test")
TraySetIcon("Shell32.dll", 22)
TraySetClick(8)
TraySetState()

Global $sPathFull = @ProgramFilesDir & "\test"
Global $aRun_Apps = StringSplit("test.exe|test2.exe|test3.exe", "|")

;~ If RegRead("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", @ScriptName) = "" Then _
;~ RegWrite("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", @ScriptName, "REG_SZ", '"' & @ScriptFullPath & '"')

Call("_Check_Run_Proc")
AdlibEnable("_Check_Run_Proc", 3000)

While 1
Switch TrayGetMsg()
Case $nAbout_TrayItem
MsgBox(270400,"О Программе", "2009г.", 5)
Case $nExit
Exit
EndSwitch
WEnd

Func _Check_Run_Proc()
For $i = 1 To $aRun_Apps[0]
If Not ProcessExists($aRun_Apps[$i]) Then
Run($sPathFull & "\" & $aRun_Apps[$i])
ConsoleWrite("Run - " & $aRun_Apps[$i] & @CRLF)
Sleep(300) ; -------- !!!
EndIf
Next
EndFunc

me4enyi
03-01-2010, 21:38
Ну и мне пожалуй в эту тему...
Ситуация такая. Скриптом запускается exe.
Если это первый запуск, то выскакивает окно Ready to go? нужно нажать кнопку Да,
если запуск не первый, то выскакивает окно Warning нужно выбрать ответ Нет.


Run ("CW.exe")
WinWaitActive('Chew0.9')
Opt("MouseCoordMode",2)
MouseClick("left", 301, 205)
If WinExists("Ready to go?","",2) Then
ControlClick ( "Ready to go?", "", "[CLASS:Button; INSTANCE:1]" )
Else
If WinExists("Warning","",2) Then
ControlClick ( "Warning", "", "[CLASS:Button; INSTANCE:2]" )
Exit
EndIf
EndIf




© OSzone.net 2001-2012