按键里的热键F10运行程序F12停止运行,挺方便的。AU3怎么实现呢?[已解决]
本帖最后由 cashiba 于 2016-9-22 23:42 编辑按键里的热键F10运行程序F12停止运行,挺方便的。
这个AU3热键好像只是设置激活某函数过程,激活程序本身不知道怎么写,思路打不开阿....
HotKeySet("热键"[, "函数"])
HotKeySet("{F10}", "ToggleExe")
HotKeySet("{F12}", "Terminate")
Func HotKeyPressed()
Switch @HotKeyPressed
Case "{F10}"
ToolTip('终止程序', 0, 0)
Terminate()
Case "{F12}"
ToolTip('启动程序', 0, 0)
ToggleExe()
EndSwitch
EndFunc
Func ToggleExe()
..................
EndFunc
Func Terminate()
..................
EndFunc 回复 1# cashiba
查看帮助文件
#include <MsgBoxConstants.au3>
; 点击 Esc 键中止脚本, 点击 Pause/Break 键暂停脚本
Global $g_bPaused = False
HotKeySet("{PAUSE}", "TogglePause")
HotKeySet("{ESC}", "Terminate")
HotKeySet("+!d", "ShowMessage") ; Shift-Alt-d
While 1
Sleep(100)
WEnd
Func TogglePause()
$g_bPaused = Not $g_bPaused
While $g_bPaused
Sleep(100)
ToolTip('Script is 脚本"暂停"', 0, 0)
WEnd
ToolTip("")
EndFunc ;==>TogglePause
Func Terminate()
Exit
EndFunc ;==>Terminate
Func ShowMessage()
MsgBox($MB_SYSTEMMODAL, "", "这是一条消息.")
EndFunc ;==>ShowMessage 本帖最后由 cashiba 于 2016-9-18 09:44 编辑
刚正在看帮助文件.....
问题在于源码编译后的程序,如何用热键达到如下图scite工具栏里的启动和停止这两个键的功能
难道是把整个源码封装成一个函数,然后用一个if判断 @HotKeyPressed值改变流程?
还是有个接口可以控制流程呢? 按键程序运行后,任务栏有托盘图标显示运行状态。是不是获取自身进程号,然后
按F10,run("程序.exe")
按F12,end("程序.exe")
再改变托盘图标状态? 开始、停止这都应该被封装成一些小的功能函数,热键去调用这些功能函数实现某些功能。
而并不是去调用一个可执行文件。 简单的,使用一个全局变量协调其它函数。TogglePause 和 Terminate 修改该值。
复杂点的,使用多进程处理,麻烦的是进程间的协调。{:face (303):} 按键里热键启动和终止程序感觉非常方便,只是不知道是怎么实现的。希望用AU3编译的程序,启动时能驻留在托盘里,热键启动,热键终止。因为第三方操作界面需要在前。只好暂时用延时启动来留足切换界面的时间了 另外,为啥send(“#m”)或send(“#d”)语句不能达到显示桌面的效果呢,写法有问题吗? 原程序为A.exe
然后再写一个小程序B.exe,其中源码:
1、F10热键Run A.exe
2、F12热键KillA.exe (终止一个程序运行而不是干掉进程代码咋写?)
这样好像可以实现了? http://www.autoitx.com/thread-53360-1-1.html 不错 很好{:face (332):}
页:
[1]