如何能够禁止WINDOWS的任务栏出现
编号:QA000242
建立日期: 1998年12月22日 最后修改日期:1999年3月2日
所属类别:
Q
邓霄清:
如何能够禁止WINDOWS的任务栏出现?
A回答:
可以使用FindWindow和ShowWindow来控制任务栏。下面给出一个例子程序。首先建立一个窗体和两个按钮。在窗体声明部分输入如下定义:
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As Any) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Const SW_HIDE = 0
Const SW_SHOWNORMAL = 1
然后在按钮的事件中输入如下代码:
Private Sub Command1_Click()
Dim hTaskBar As Long
hTaskBar = FindWindow("Shell_TrayWnd", 0&)
ShowWindow hTaskBar, SW_HIDE
End Sub
Private Sub Command2_Click()
Dim hTaskBar As Long
hTaskBar = FindWindow("Shell_TrayWnd", 0&)
ShowWindow hTaskBar, SW_SHOWNORMAL
End Sub
你按Command1将隐藏任务栏,而按Command2将显示任务栏。
另外,还有一个办法可以使VB的窗体可以遮住任务栏。你可以在设计时将窗体的WindowState属性设为2,MaxButton设为False。这样,你的程序运行时,窗体会遮住任务栏,即使任务条被设置为"总在最前"。这本是VB的一个Bug,但可能更适合于有些程序,如屏幕保护程序。
上面的两个办法都存在一个问题,就是用户按Ctrl-Esc或Windows键就会出现任务条。如果要想屏蔽掉Ctrl-Esc键,除了QA000258 "如何制作LoadResPicture之类的函数对应的*.res文件"所说的办法,还可以使用RegisterHotkey键或截取WM_SYSCOMMAND消息来屏蔽掉这两个系统键,不过这两种方法更适合C语言来实现,而不是VB。
此问题由李海回答。
附加关键字:编程, 源程序, programming, source code, Visual Basic, VB, Windows API, win32, api, windows api, gdi32, kernel。
| |
|
|
| |
|
|