这个非常有意思又带着“幽默”趣味小程序是我近日在一个网友的贴子中得到的灵感。
程序:徒有其表 1.0
开发环境:VB6.0 + windows xp
运行效果:隐藏桌面的一切,并且制造一个一模样的“假象”。
源码:为了不养成网友们只会“伸手”的坏习惯,主要部分的源码我会在讲解中贴出来,但不提供下载。
下面开始讲述,首先列出程序的流程:
1.显示桌面。
2.完整的截屏并保存成图片文件(相当于PrintScreen键的功能)。
3.隐藏桌面图标与任务栏。
4.把截屏保存的图片设置成桌面壁纸。
5.完成之桌面看起来并没有什么变化,只是什么也打不开,鼠标左右键都置若罔闻,类似假死现象。
源码:
'显示桌面
Private Sub DeskShow()
Dim m_Shell As New Shell32.Shell
m_Shell.MinimizeAll
End Sub
'截屏未保存(数据在缓存区)
Private Sub Cap()
BitBlt Me.hDC, 0, 0, Screen.Width, Screen.Height, GetDC(GetActiveWindow), 0, 0, vbSrcCopy '抓屏
End Sub
'完整路径
Private Function Format(path As String, exten As String)
Format = path & "back" & exten
End Function
'截屏保存
Private Sub PrintScreen()
Dim sFile As String
Call Cap
sFile = Format("c:\", ".jpg")
SavePicture Me.Image, sFile '保存数据 Me.hDC
End Sub
'隐藏桌面图标
Private Sub HideDisk(window As String, hide As Integer)
Dim Hwd As Long
Dim rtn As Long
Hwd = FindWindow(window, vbNullString)
If (hide = 1) Then
rtn = ShowWindow(Hwd, SW_HIDE)
ElseIf (hide = 0) Then
rtn = ShowWindow(Hwd, SW_RESTORE)
End If
End Sub
'调用
Call HideDisk("Progman", 1) '隐藏桌面图标
Call HideDisk("Shell_TrayWnd", 1) '隐藏任务栏
'即时设置壁纸
Private Sub SetBackpic(path As String)
Call SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, path, SPIF_UPDATEINIFILE + SPIF_SENDWININICHANGE)
End Sub
'声明
Const SW_HIDE = 0
Const SW_RESTORE = 9
Const SPI_SETDESKWALLPAPER = 20
Const SPIF_SENDWININICHANGE = &H2
以上几乎是全部代码的,思路和主要源码都给出了,希望大家可以自己DIY更多有趣的东西,编程也可以很快乐的。
恢复的办法也很简单,只要把隐藏的桌面和任务栏显示出来就可以了,函数上面也给出了。
小y本身是做软件售后工作的,水平刚入门,让各位大虾见笑了。