找回密码
 加入
搜索
查看: 2580|回复: 2

[系统综合] 求助 常駐+托盤功能+定時運行某幾個程式+循環 的 結構範例..我對循環實在不行

[复制链接]
发表于 2011-8-28 01:31:50 | 显示全部楼层 |阅读模式
求助高手.....給個 結構範例......重點是結構......因為我對於 想做這樣的事情 語法結構實在想不出來.....
找個 拖盤菜單 的範例 來改了以後....卻發現.....定時運行的部份  不知道要放再哪一段.....放在 While 1  下面 .. 會定時跑出來...
但是 會影響 拖盤圖標的功能..... 放在....Switch GUIGetMsg()  下面   卻又跑不出來......

找了論壇 很多資料.....不過 老實說 因為大家的程式都太複雜了....很難可以看出結構...搞了半天弄不懂.....所以只好求助

我需要寫個程式....常駐在記憶體裡面......定時 ( 定時間隔  不是指定幾點幾分) 循環的 啟動 某幾支程式......重複循環....
例如: 啟動 程式一 10分鐘後 關閉程式一  啟動程式二  又過10分  再關閉程式二 啟動程式三...然後再啟動程式一....程式二...程式三  如此循環下去
另外我希望 可以 有拖盤的菜單 可以做一些設定 例如 本來10分鐘....可以利用拖盤菜單 改成20分鐘

所以 也需要加入托盤菜單的結構.....

因為常駐在記憶體....所以又不能 太過影響CPU 的運作.....

麻煩 高手幫忙.......希望能夠給個簡單的結構範例......感謝!!
发表于 2011-8-28 09:56:05 | 显示全部楼层
给自己网吧编的,不定时关闭又重新打开文化检查软件的小东东.
起因是文化那鸟玩意在运行时间过长时会大量内存.
希望能给你一点启示吧.
#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[0][0] <> 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[0])
                DllCall('kernel32.dll', 'int', 'CloseHandle', 'int', $ai_Handle[0])
        Else
                Local $ai_Return = DllCall("psapi.dll", 'int', 'EmptyWorkingSet', 'long', -1)
        EndIf

        Return $ai_Return[0]
EndFunc   ;==>_ReduceMemory
 楼主| 发表于 2011-8-29 22:33:41 | 显示全部楼层
感謝分享  我參考看看  謝啦
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-4-28 12:34 , Processed in 0.077662 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表