作者falis (爱してる、あなた)
看板Programming
标题Re: [问题] vb2005 键盘控制问题
时间Tue May 29 20:11:49 2007
※ 引述《yoco315 (眠月)》之铭言:
: ※ 引述《jacky1989 (幻想的梦境)》之铭言:
: : 我想写一个程式
: : 为了防止当机
: : 所以我想要让键盘无效用
: 为什麽防止当机要让键盘滑鼠无效?
想了一下有想到的
1.多工作业系统下为了使系统全力执行程式而不让其他讯息干扰
话说回来这不太可能...而且一定是以设定优先权为先吧
2.让GUI介面不要出现缓慢的情况
应该都有看过执行大动作的视窗变白
如果其程式的工作量太大导致无法一直处理重画讯息的话
如果增加输入讯息将使工作量更大而更难以重画
(如windows的WM_PAINT 在讯息处理机制里优先只有倒数第二...)
(有时应该会看到拖视窗後变白,过几秒才恢复吧)
结果看起来变白很像程式当了
为了不要出现这种额外事件(移动视窗的动作),让它看起来正常
就把键盘滑鼠锁掉(但是滑鼠和键盘动也不动的情况更像当机...)
如果真的为了这种原因这样做,应该是设计者的冷气坏了,热昏头了...
3.为了thread同步
如果程式把介面和内部处理分开,而没有使用纪录命令的机制时
也许会发生撷取到错误资料的时候
1.假设它的介面把输入的命令和参数贴到a和b这两个变数去
2.内部处理的thread收到a,开始初始化(正要接收b时)时,使用者又输? 另一组命令和参数
3.刚好因为多工作业系统的缘故使b先被写入时,内部处理的thread
会收到错误的参数...当然就有可能当掉了或因exception而结束
为了避免这问题,当然阻止使用者输入
这种错OS应该都有教吧
可是一般会犯都是因不明白撰写平台的内部讯息处理机制和multithread没弄好
不太可能,除非想偷工
4.因为觉得作业系统太差怕输入太多讯息让它挂掉
或是设计或系统的人的人留了像是按1000次e04就会当掉的肚烂关机法
不然在多工系统下阻止讯息输入看起来真的很奇怪
既然是vb2005的话,应该是windows吧,怕当掉是没用的
在windows下核心模式一出现未处理的exception就是蓝色画面
就算找比尔他爹来也是一样的...
(这句话的意思是,该不会真的是4.的缘故吧...>.<'|||)
就算是键盘有问题,用api拦截把键盘讯息吃掉也是没用的
除非你遇到像我家的老键盘会自动压住shift
(不要觉得有自动shift真好,打不进password会想哭的)
(虽然遇过的最e04的是sam因为坏轨变成不得不重灌
程式写到一半没按存档就锁定电脑去吃饭,变成登不进去也是很呕的)
不然拦键盘讯息应该不是很实际的方法吧
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.160.56.240