请问如何屏蔽[开始]键(在CSDN上至今末解决)(100分)

  • 主题发起人 主题发起人 zzy1012
  • 开始时间 开始时间
Z

zzy1012

Unregistered / Unconfirmed
GUEST, unregistred user!
曾有人提出该菜单实际上是一个BaseBar类窗口。用WinSight检查,当按下Win键后<br>确实有向BaseBar窗口发送消息。但仍无法通过Disable该窗口达到目的。<br>
 
off:<br>var<br>&nbsp; OldVal : LongInt;<br>begin<br>&nbsp; SystemParametersInfo (97, Word (True), @OldVal, 0)<br><br>on:<br>var<br>&nbsp; OldVal : LongInt;<br>begin<br>&nbsp; SystemParametersInfo (97, Word (False), @OldVal, 0)<br>// &nbsp; <br>EnableWindow(FindWindowEx(FindWindow('Shell_TrayWnd', &nbsp;nil),0,'Button',nil), FALSE);<br>//<br>EnableWindow(FindWindowEx(FindWindow('Shell_TrayWnd', nil),0, 'Button',nil), TRUE);
 
是啊,把它disable掉不就可以了吗?
 
<br>&nbsp; 美萍 &nbsp;不是屏蔽了吗?<br><br>
 
win键的级别比较高。要弄掉。只有用vxd来解决。用vxd来解决相当简单
 
我原以为用钩子可以钩掉,或者消息截获。<br>vxd的话小菜不懂的说。:(<br><br>借这个地问一下:^^<br>上面那句用SystemParametersInfo是用开屏蔽开始按钮的吗?我在我的2000下试没反应?<br>还有,经常看见别人的代码用97作参数,这97对应的什么参数?那里找得到对应表?
 
简单的做法:安装一个HOOK,因每次对开始按钮操作(如按下),WINDOWS会重新设置开始<br>按钮的状态为默认值,这样你的改变又变回来了,你需要用HOOK来过滤消息。<br>复杂做法:子类化窗口(我有C语言类似的例子)
 
SystemParametersInfo 可以把系统设置为屏保状态,允许响应一些特殊的键。
 
HAHAHA,我来回答,捡分啦.<br>//隐藏<br>procedure TForm1.btHideClick(Sender: TObject);<br>var<br>&nbsp; Rgn : hRgn;<br>begin<br>&nbsp;{Hide the start button}<br>&nbsp; Rgn := CreateRectRgn(0, 0, 0, 0);<br>&nbsp; SetWindowRgn(FindWindowEx(FindWindow('Shell_TrayWnd', nil),0,'Button',nil),Rgn, true);<br><br>end;<br>//显示<br>procedure TForm1.btShowClick(Sender: TObject);<br>begin<br>&nbsp; SetWindowRgn(FindWindowEx(FindWindow('Shell_TrayWnd', nil),0,'Button',nil),0,true);<br>end;<br>//失效<br>procedure TForm1.btDisabledClick(Sender: TObject);<br>begin<br>&nbsp;EnableWindow(FindWindowEx(FindWindow('Shell_TrayWnd', nil),0, 'Button', nil),false);<br>end;<br><br>//有效<br>procedure TForm1.btEnabledClick(Sender: TObject);<br>begin<br>&nbsp; EnableWindow(FindWindowEx(FindWindow('Shell_TrayWnd', nil),0,'Button',nil),true);<br>end;<br>
 
Seoul_BJ 是对的,我测试过了。<br>btw: 通过 FindWindowEx(FindWindow('Shell_TrayWnd', nil),0,'Button',nil) 得到开始按钮句柄,<br>你是怎么知道的?
 
不是我自己的解决的,我是以前在国外的一个网站上找到的。
 
我用设置屏保的方法(如bakubaku所说),用的很好嘛,不过是在98下,<br>2000不行吗?<br><br>先在我的电脑就用的我自己写的保护程序,没有我的密码,windows一个键都没用。
 
沒錯,用了自己寫的一個程式,用途為查詢鼠標所在位置<br>的 Window title, Class Name.<br>開始鍵的 Parent Class Name 的確是 'Shell_TrayWnd'<br>想要的人可至 &lt;a href='http://home.pchome.com.tw/soho/jiichen1/soft/MousePos.exe'&gt;這裡&lt;/a&gt;下載.<br><br>
 
同意Seoul_BJ,呵呵~,我昨天也刚从外国一个站点上看到,不过晚了一步。
 
接受答案了.
 
后退
顶部