Foxtable(狐表)用户栏目专家坐堂 → 程序最小化托盘后如何使用快捷键


  共有3085人关注过本帖树形打印复制链接

主题:程序最小化托盘后如何使用快捷键

帅哥哟,离线,有人找我吗?
freeants
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:572 积分:3771 威望:0 精华:0 注册:2014/5/8 13:41:00
程序最小化托盘后如何使用快捷键  发帖心情 Post By:2014/8/12 9:48:00 [显示全部帖子]

在程序运行时候, 我可以使用快捷键 ,菜单设置的 快捷键, 但是把程序最小化到 托盘后 就不使用, 是否有办法呢

 回到顶部
帅哥哟,离线,有人找我吗?
freeants
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:572 积分:3771 威望:0 精华:0 注册:2014/5/8 13:41:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:572 积分:3771 威望:0 精华:0 注册:2014/5/8 13:41:00
  发帖心情 Post By:2014/8/12 10:20:00 [显示全部帖子]

放到 全局变量里面了

 回到顶部
帅哥哟,离线,有人找我吗?
freeants
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:572 积分:3771 威望:0 精华:0 注册:2014/5/8 13:41:00
  发帖心情 Post By: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
 

 回到顶部
帅哥哟,离线,有人找我吗?
freeants
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:572 积分:3771 威望:0 精华:0 注册:2014/5/8 13:41:00
  发帖心情 Post By:2014/8/12 11:03:00 [显示全部帖子]

功能就是 和 QQ 的截图 一样使用, 用的 搜狗的 截图 程序 

 回到顶部
帅哥哟,离线,有人找我吗?
freeants
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:572 积分:3771 威望:0 精华:0 注册:2014/5/8 13:41:00
  发帖心情 Post By:2014/8/12 12:00:00 [显示全部帖子]

见 附件  ,单独 可以运行, 函数 里面 不能运行
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:test.zip


 回到顶部
帅哥哟,离线,有人找我吗?
freeants
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:572 积分:3771 威望:0 精华:0 注册:2014/5/8 13:41:00
  发帖心情 Post By:2014/8/12 12:10:00 [显示全部帖子]

用快捷键 ctrl+alt+y  无法调用, 在内部函数 里面 以及写了 


 回到顶部
帅哥哟,离线,有人找我吗?
freeants
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:572 积分:3771 威望:0 精华:0 注册:2014/5/8 13:41:00
  发帖心情 Post By:2014/8/12 12:15:00 [显示全部帖子]

好的, 这种情况下 加载后 ,在 CLOSEPROJECT后 是否需要删除快捷键

Dim obj As GlobalKeyDown = GlobalKeyDown.getInstance
UnregisterHotKey(obj.Handle, 100)
UnregisterHotKey(obj.Handle, 101)
UnregisterHotKey(obj.Handle, 102)
[此贴子已经被作者于2014-8-12 12:15:29编辑过]

 回到顶部