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

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

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

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

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

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

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

麻煩 高手幫忙.......希望能夠給個簡單的結構範例......感謝!!
发表于 2011-8-28 09:56:05 | 显示全部楼层
给自己网吧编的,不定时关闭又重新打开文化检查软件的小东东.
起因是文化那鸟玩意在运行时间过长时会大量内存.
希望能给你一点启示吧.
  1. #NoTrayIcon
  2. #Region ;**** 参数创建于 ACNWrapper_GUI ****
  3. #AutoIt3Wrapper_icon=D:\Program Files\barserver\BarServer.ico
  4. #AutoIt3Wrapper_outfile=C:\Documents and Settings\Administrator\桌面\BarServer.exe
  5. #AutoIt3Wrapper_UseUpx=n
  6. #AutoIt3Wrapper_Res_Comment=文化软件启动器,in an hour or so restart the Softwre circlely!
  7. #AutoIt3Wrapper_Res_Description=文化软件启动器
  8. #AutoIt3Wrapper_Res_Fileversion=1.0.0.1
  9. #AutoIt3Wrapper_Res_LegalCopyright=by Alam Lu
  10. #EndRegion ;**** 参数创建于 ACNWrapper_GUI ****
  11. Sleep(100)
  12. Local $aa=ProcessList(@ScriptName)
  13. If $aa[0][0] <> 1 Then Exit
  14. Local $BarServerRoot = "D:\Program Files\barserver"
  15. Local $BarServerW = 'NetBarServer.exe'
  16. Local $iTime
  17. AdlibRegister('memory', 3000)
  18. While 1
  19.                 Sleep(50)
  20.                 Switch @HOUR
  21.                 Case 0 To 10
  22.                         $iTime = 1.5 * 60
  23.                 Case 11 To 18
  24.                         $iTime = 1 * 60
  25.                 Case Else
  26.                         $iTime = 46
  27.                 EndSwitch
  28.             _toRun()
  29. WEnd

  30. Func _toRun()
  31. If Not ProcessExists($BarServerW) Then
  32.                         ShellExecute($BarServerRoot & $BarServerW, '', $BarServerRoot, 'open', @SW_HIDE)
  33.                         Sleep(6000)
  34.                         WinSetState('文化监管平台网吧服务器','机器名称',@SW_HIDE)
  35.                         Sleep($iTime * 60 * 1000)
  36.                         ProcessClose($BarServerW)
  37.                         ProcessClose('ServerAid.exe')
  38. ElseIf ProcessExists ($BarServerW) Then
  39.                         ProcessClose($BarServerW)
  40.                         ProcessClose('ServerAid.exe')
  41.                         ShellExecute($BarServerRoot & $BarServerW, '', $BarServerRoot, 'open', @SW_HIDE)
  42.                         Sleep(6000)
  43.                         WinSetState('文化监管平台网吧服务器','机器名称',@SW_HIDE)
  44.                         Sleep($iTime * 60 * 1000)
  45.                         ProcessClose($BarServerW)
  46. EndIf       
  47. EndFunc   ;==>_toRun

  48. Func Memory()
  49.         _ReduceMemory(@AutoItPID)
  50. EndFunc   ;==>Memory

  51. Func _ReduceMemory($i_PID = -1)
  52.         If $i_PID <> -1 Then
  53.                 Local $ai_Handle = DllCall("kernel32.dll", 'int', 'OpenProcess', 'int', 0x1f0fff, 'int', False, 'int', $i_PID)
  54.                 Local $ai_Return = DllCall("psapi.dll", 'int', 'EmptyWorkingSet', 'long', $ai_Handle[0])
  55.                 DllCall('kernel32.dll', 'int', 'CloseHandle', 'int', $ai_Handle[0])
  56.         Else
  57.                 Local $ai_Return = DllCall("psapi.dll", 'int', 'EmptyWorkingSet', 'long', -1)
  58.         EndIf

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

本版积分规则

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

GMT+8, 2026-9-22 16:45 , Processed in 0.066154 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2026 Discuz! Team.

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