求助 常駐+托盤功能+定時運行某幾個程式+循環 的 結構範例..我對循環實在不行
求助高手.....給個 結構範例......重點是結構......因為我對於 想做這樣的事情 語法結構實在想不出來.....找個 拖盤菜單 的範例 來改了以後....卻發現.....定時運行的部份不知道要放再哪一段.....放在 While 1下面 .. 會定時跑出來...
但是 會影響 拖盤圖標的功能..... 放在....Switch GUIGetMsg()下面 卻又跑不出來......
找了論壇 很多資料.....不過 老實說 因為大家的程式都太複雜了....很難可以看出結構...搞了半天弄不懂.....所以只好求助
我需要寫個程式....常駐在記憶體裡面......定時 ( 定時間隔不是指定幾點幾分) 循環的 啟動 某幾支程式......重複循環....
例如: 啟動 程式一 10分鐘後 關閉程式一啟動程式二又過10分再關閉程式二 啟動程式三...然後再啟動程式一....程式二...程式三如此循環下去
另外我希望 可以 有拖盤的菜單 可以做一些設定 例如 本來10分鐘....可以利用拖盤菜單 改成20分鐘
所以 也需要加入托盤菜單的結構.....
因為常駐在記憶體....所以又不能 太過影響CPU 的運作.....
麻煩 高手幫忙.......希望能夠給個簡單的結構範例......感謝!! 给自己网吧编的,不定时关闭又重新打开文化检查软件的小东东.
起因是文化那鸟玩意在运行时间过长时会大量内存.
希望能给你一点启示吧.#NoTrayIcon
#Region ;**** 参数创建于 ACNWrapper_GUI ****
#AutoIt3Wrapper_icon=D:\Program Files\barserver\BarServer.ico
#AutoIt3Wrapper_outfile=C:\Documents and Settings\Administrator\桌面\BarServer.exe
#AutoIt3Wrapper_UseUpx=n
#AutoIt3Wrapper_Res_Comment=文化软件启动器,in an hour or so restart the Softwre circlely!
#AutoIt3Wrapper_Res_Description=文化软件启动器
#AutoIt3Wrapper_Res_Fileversion=1.0.0.1
#AutoIt3Wrapper_Res_LegalCopyright=by Alam Lu
#EndRegion ;**** 参数创建于 ACNWrapper_GUI ****
Sleep(100)
Local $aa=ProcessList(@ScriptName)
If $aa <> 1 Then Exit
Local $BarServerRoot = "D:\Program Files\barserver\"
Local $BarServerW = 'NetBarServer.exe'
Local $iTime
AdlibRegister('memory', 3000)
While 1
Sleep(50)
Switch @HOUR
Case 0 To 10
$iTime = 1.5 * 60
Case 11 To 18
$iTime = 1 * 60
Case Else
$iTime = 46
EndSwitch
_toRun()
WEnd
Func _toRun()
If Not ProcessExists($BarServerW) Then
ShellExecute($BarServerRoot & $BarServerW, '', $BarServerRoot, 'open', @SW_HIDE)
Sleep(6000)
WinSetState('文化监管平台网吧服务器','机器名称',@SW_HIDE)
Sleep($iTime * 60 * 1000)
ProcessClose($BarServerW)
ProcessClose('ServerAid.exe')
ElseIf ProcessExists ($BarServerW) Then
ProcessClose($BarServerW)
ProcessClose('ServerAid.exe')
ShellExecute($BarServerRoot & $BarServerW, '', $BarServerRoot, 'open', @SW_HIDE)
Sleep(6000)
WinSetState('文化监管平台网吧服务器','机器名称',@SW_HIDE)
Sleep($iTime * 60 * 1000)
ProcessClose($BarServerW)
EndIf
EndFunc ;==>_toRun
Func Memory()
_ReduceMemory(@AutoItPID)
EndFunc ;==>Memory
Func _ReduceMemory($i_PID = -1)
If $i_PID <> -1 Then
Local $ai_Handle = DllCall("kernel32.dll", 'int', 'OpenProcess', 'int', 0x1f0fff, 'int', False, 'int', $i_PID)
Local $ai_Return = DllCall("psapi.dll", 'int', 'EmptyWorkingSet', 'long', $ai_Handle)
DllCall('kernel32.dll', 'int', 'CloseHandle', 'int', $ai_Handle)
Else
Local $ai_Return = DllCall("psapi.dll", 'int', 'EmptyWorkingSet', 'long', -1)
EndIf
Return $ai_Return
EndFunc ;==>_ReduceMemory
感謝分享我參考看看謝啦
页:
[1]