隐藏显示桌面程序的方法
作者:弈宇风尘时间:2006-09-24E-mail:phj@hackbase.com
首先介绍两个用到的两个API函数:
1.FindWindowEx
VB声明
Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
说明:
在窗口列表中寻找与指定条件相符的第一个子窗口
返回值:
Long,找到的窗口的句柄。如未找到相符窗口,则返回零。会设置GetLastError
hWnd1 :Long,在其中查找子的父窗口。如设为零,表示使用桌面窗口(通常说的顶级窗口都被认为是桌面的子窗口,所以也会对它们进行查找)
hWnd2 :Long,从这个窗口后开始查找。这样便可利用对FindWindowEx的多次调用找到符合条件的所有子窗口。如设为零,表示从第一个子窗口开始搜索.
lpsz1:String,欲搜索的类名。零表示忽略.
lpsz2:String,欲搜索的类名。零表示忽略.
2.ShowWindow
VB声明
Declare Function ShowWindow Lib "user32" Alias "ShowWindow" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
说明
控制窗口的可见性(在vb里使用:针对vb窗体及控件,请使用对应的vb属性)
返回值
Long,如窗口之前是可见的,则返回TRUE(非零),否则返回FALSE(零)
参数表
参数 类型及说明
hwnd Long,窗口句柄,要向这个窗口应用由nCmdShow指定的命令
nCmdShow Long,为窗口指定可视性方面的一个命令。请用下述任何一个常数
SW_HIDE 隐藏窗口,活动状态给令一个窗口
SW_MINIMIZE 最小化窗口,活动状态给令一个窗口
SW_RESTORE 用原来的大小和位置显示一个窗口,同时令其进入活动状态
SW_SHOW 用当前的大小和位置显示一个窗口,同时令其进入活动状态
SW_SHOWMAXIMIZED 最大化窗口,并将其激活
SW_SHOWMINIMIZED 最小化窗口,并将其激活
SW_SHOWMINNOACTIVE 最小化一个窗口,同时不改变活动窗口
SW_SHOWNA 用当前的大小和位置显示一个窗口,不改变活动窗口
SW_SHOWNOACTIVATE 用最近的大小和位置显示一个窗口,同时不改变活动窗口
SW_SHOWNORMAL 与SW_RESTORE相同
3.界面
[img]http://p.blog.csdn.net/images/p_blog_csdn_net/penghaijun/220222/o_softbmp.bmp[/img]
4.代码:
Option Explicit
'*************************************************************************
'**模 块 名:
'**说 明:弈宇风尘 版权所有2006 - 2008(C)
'**创 建 人:弈宇风尘
'**日 期:2006-09-24
'**修 改 人:
'**日 期:
'**描 述:桌面程序
'**版 本:V1.0.0
'*************************************************************************
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long
Private Sub Command2_Click()
Rem:隐藏桌面
Dim hWnd As Long
hWnd = FindWindowEx(0&, 0&, "Progman", vbNullString)
ShowWindow hWnd, 5
End Sub
Private Sub Command1_Click()
Rem:显示桌面
Dim hWnd As Long
hWnd = FindWindowEx(0&, 0&, "Progman", vbNullString)
ShowWindow hWnd, 0
End Sub
本文地址:http://www.45fan.com/dnjc/69062.html