| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 491 人关注过本帖, 1 人收藏
标题:有什么办法让程序缩小到托盘后,检测到用户按了某个按键吗?
只看楼主 加入收藏
琅拿度
Rank: 1
等 级:新手上路
帖 子:166
专家分:5
注 册:2016-4-7
结帖率:75.86%
收藏(1)
已结贴  问题点数:20 回复次数:4 
有什么办法让程序缩小到托盘后,检测到用户按了某个按键吗?
我目前的办法是使用timer

Declare Integer GetAsyncKeyState In user32 Integer vKey
N_key=GetAsyncKeyState(117) && F6
If Type("N_key")="N" And Abs(N_key)>32700    && abs(N_key)一般值为:32767 或 32768,不固定
    messagebox('F6')
Endi

但是,不知道为什么timer在托盘一段时间后(可能是一天两天或几天)会失效,这样就导致timer不工作而无法检测

所以请教大家还有没有其它不使用timer的方法? (不讨论timer失效的问题,它就是失效)


搜索更多相关主题的帖子: timer 托盘 检测 失效 办法 
2023-10-17 11:32
iswith
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:5
帖 子:474
专家分:621
注 册:2013-5-14
收藏
得分:20 
系统全局热键,你使用timer 带替 do , timer怎么会失效呢?直接用MYFLL不可以?
*-- 表单A Init 事件代码:
Set Library To MyFll

*-- 表单A Resize 事件代码:
If This.WindowState=1 && 最小化
This.Hide && 隐藏表单
SystrayAdd(1,("路径\图标.ico"),This.Caption,"MyForm.Show","MyForm.Show") && 向托盘添加图标
SysTrayShowMessage(1,"可以 双击、右单击 或按 Alt+W 键 还原。","我最小化到托盘了",64) && 显示托盘消息
HotKeyAdd(1,1,Asc('W'),"MyForm.Show") && 向系统注册一个热键 Alt+W
Endif

*-- 表单A Show 方法代码:
Lparameters nStyle
This.Visible=.T.
This.WindowState=0 && 0(普通窗口) 或 2(最大化窗口)
SysTrayDel(1) && 删除系统托盘中的图标
HotKeyDel(1) && 删除添加的热键

*-- 运行表单时
Public MyForm
Do Form 表单A.Scx Name MyForm




[此贴子已经被作者于2023-10-17 12:07编辑过]

收到的鲜花
  • 琅拿度2023-10-27 11:29 送鲜花  4朵   附言:好用
2023-10-17 11:43
琅拿度
Rank: 1
等 级:新手上路
帖 子:166
专家分:5
注 册:2016-4-7
收藏
得分:0 
回复 2楼 iswith
只能用组合键吗?

单独一个按键可以吗,比如说 F7 按键?  HotKeyAdd怎么写?
2023-10-17 18:22
iswith
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:5
帖 子:474
专家分:621
注 册:2013-5-14
收藏
得分:0 
看它HotKeyAdd函数说明呀!MYFLL很多年了!
收到的鲜花
  • 琅拿度2023-10-27 11:29 送鲜花  1朵   附言:ok
2023-10-17 18:46
琅拿度
Rank: 1
等 级:新手上路
帖 子:166
专家分:5
注 册:2016-4-7
收藏
得分:0 
隐藏托盘后,timer失效,使用hotkey再激活timer,目前解决了问题。好评
2023-10-27 11:31
快速回复:有什么办法让程序缩小到托盘后,检测到用户按了某个按键吗?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016839 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved