热情软件屋

 

如何能够禁止WINDOWS的任务栏出现


编号:QA000242
建立日期: 1998年12月22日 最后修改日期:1999年3月2日
所属类别:

邓霄清:
    如何能够禁止WINDOWS的任务栏出现?

回答:

    可以使用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

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio