以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 程序最小化托盘后如何使用快捷键 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=55169) |
-- 作者:freeants -- 发布时间:2014/8/12 9:48:00 -- 程序最小化托盘后如何使用快捷键 在程序运行时候, 我可以使用快捷键 ,菜单设置的 快捷键, 但是把程序最小化到 托盘后 就不使用, 是否有办法呢 |
-- 作者:有点甜 -- 发布时间:2014/8/12 9:49:00 -- http://foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=52509&replyID=&skin=1
|
-- 作者:Bin -- 发布时间:2014/8/12 9:50:00 -- 把最小化到托盘写到菜单Click即可 |
-- 作者:客人 -- 发布时间:2014/8/12 10:16:00 -- Dim obj As GlobalKeyDown = GlobalKeyDown.getInstance RegisterHotKey(obj.Handle, 102, KeyModifiers.Control Or KeyModifiers.Alt, Keys.Y) \' 快捷键ctrl+alt+y 写不进全局代码
|
-- 作者:有点甜 -- 发布时间:2014/8/12 10:18:00 -- 你要拷贝全局代码到你的项目中去,然后拷贝内部函数的代码,然后才能用。
例子给你了,你要善于运用。 [此贴子已经被作者于2014-8-12 10:18:28编辑过]
|
-- 作者:freeants -- 发布时间:2014/8/12 10:20:00 -- \'==================设置快捷键============================== <DllImport("user32.dll", SetLastError := True)> _ Public Function RegisterHotKey(hWnd As IntPtr, id As Integer, fsModifiers As KeyModifiers, vk As Keys) As Boolean End Function <DllImport("user32.dll", SetLastError := True)> _ Public Function UnregisterHotKey(hWnd As IntPtr, id As Integer) As Boolean End Function <Flags> _ Public Enum KeyModifiers None = 0 Alt = 1 Control = 2 Shift = 4 Windows = 8 End Enum Public Class GlobalKeyDown Inherits System.Windows.Forms.form private shared obj As new GlobalKeyDown private Sub New() End Sub Public Shared Function getInstance() As GlobalKeyDown Return obj End Function Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message) Functions.Execute("处理快捷键", m) MyBase.WndProc(m) End Sub End Class Dim obj As GlobalKeyDown = GlobalKeyDown.getInstance RegisterHotKey(obj.Handle, 102, KeyModifiers.Control Or KeyModifiers.Alt, Keys.Y) \' 快捷键ctrl+alt+y
|
-- 作者:freeants -- 发布时间:2014/8/12 10:20:00 -- 放到 全局变量里面了 |
-- 作者:有点甜 -- 发布时间:2014/8/12 10:25:00 -- 你能参考例子是怎么写的吗?下面这段,写到AfterOpenProject
Dim obj As GlobalKeyDown = GlobalKeyDown.getInstance
RegisterHotKey(obj.Handle, 102, KeyModifiers.Control Or KeyModifiers.Alt, Keys.Y) \' 快捷键ctrl+alt+y
|
-- 作者:有点甜 -- 发布时间:2014/8/12 10:26:00 -- 且,内部函数你也要拷贝设置一下。 |
-- 作者:freeants -- 发布时间:2014/8/12 10:58:00 -- 多谢 ,VB 里面的函数 太复杂了, 只能依葫芦画瓢了 全局代码 里面 这句 Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message) Functions.Execute("处理快捷键", m) MyBase.WndProc(m) End Sub 内部函数 已经处理 但是 我不是需要显示对话框, 我要用外部程序,FOXTABLE 里面的代码如下,修改后无法运行, 请帮我看下 如何修改 全局代码 以及 内部函数 Dim m As object = args(0) Select Case m.WParam Case 100 Case 101 Case 102 Dim Proc As New Process \'定义一个新的Process baseMainform.visible=False 最小化 Proc.File = ProjectPath & "Attachments\\screencapture.exe" \'指定要打开的文件 Proc.WaitForClose=True \'直到关闭外部程序,才会执行接下来的代码 Proc.Start() End Select |