如何用代码实现自动隐藏系统任务栏,也就是用代码实现在自动隐藏任务栏这项上打勾

zimei 2009-04-09 11:22:37
如何用代码实现自动隐藏系统任务栏,也就是用代码实现在自动隐藏任务栏这项上打勾
...全文
261 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
vansoft 2009-04-13
  • 打赏
  • 举报
回复
如果仅仅是修改注册表,那就监控一下写哪就行了。
有软件的。
rmini 2009-04-13
  • 打赏
  • 举报
回复
zimei 2009-04-13
  • 打赏
  • 举报
回复
还是没有解决呀,
zimei 2009-04-12
  • 打赏
  • 举报
回复
谢谢楼上,我也没找到!继续!
CHIC250 2009-04-11
  • 打赏
  • 举报
回复
不怕做不到,就怕想不到。。6楼和8楼的都是人才。。。
东方之珠 2009-04-11
  • 打赏
  • 举报
回复
学习
hexinchun148 2009-04-11
  • 打赏
  • 举报
回复
Option Explicit
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long

Private Const SWP_NOMOVE = &H2 '忽略x,y
Private Const SWP_NOSIZE = &H1 '忽略cx,cy
Private Const SWP_HIDEWINDOW = &H80 '隐藏窗口
Private Const SWP_SHOWWINDOW = &H40 '显示窗口
Private Const HWND_NOTOPMOST = -2

Dim Hwnds As Long


Private Sub Command1_Click() 'show
SetWindowPos Hwnds, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE
End Sub

Private Sub Command2_Click() 'hide
SetWindowPos Hwnds, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_HIDEWINDOW Or SWP_NOMOVE Or SWP_NOSIZE
End Sub

Private Sub Form_Load()
'找到任务栏的句柄
Hwnds = FindWindow("Shell_TrayWnd", vbNullString)
End Sub
zimei 2009-04-11
  • 打赏
  • 举报
回复
有没有简单的方法,直接调用系统,给相应的键赋值。结果与手工给任务栏 自动隐藏这项 打勾 一样呢
BillLeecn 2009-04-11
  • 打赏
  • 举报
回复
引用"Windows Script Host "(WScript)
Dim reg As IWshRuntimeLibrary.WshShell
Set reg = New IWshRuntimeLibrary.WshShell

然后就可以reg.regwrite方法写注册表
至于写哪里,我找不出来...
zimei 2009-04-11
  • 打赏
  • 举报
回复
感谢6楼和8楼,前面的方法我早已试过,不过这达不到我的要求,隐藏后任务栏这里还是空着,软件也不能满屏。
我要的效果和手工给任务栏的自动隐藏任务栏,打勾效果是一样的,隐藏后,其它软件界面自动满屏
verywzm 2009-04-10
  • 打赏
  • 举报
回复
一下代码实现模拟自动隐藏,至于用注册表实现的,你可以用regmon跟踪一下系统


'=======================窗体=============================
Private Sub Form_Load()
'获得任务栏宽度
Dim R As RECT
Dim screenHeight As Long
GetWindowRect FindWindow("Shell_TrayWnd", vbNullString), R
screenHeight = Screen.Height / Screen.TwipsPerPixelY
taskHeight = R.Bottom - R.Top

lHook = SetWindowsHookEx(WH_MOUSE_LL, AddressOf CallMouseHookProc, App.hInstance, 0)
End Sub

Private Sub Form_Unload(Cancel As Integer)
Dim hnd As Long
hnd = FindWindow("Shell_traywnd", "") 'get the Window
ShowWindow hnd, 5
UnhookWindowsHookEx lHook
End Sub

'========================模块============================
'模块
Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (lpvDest As Any, ByVal lpvSource As Long, ByVal cbCopy As Long)
Public Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Public Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
Public Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As Long
Public Const WH_MOUSE_LL = 14

'鼠标消息
Public Const WM_MOUSEMOVE = &H200
Public lHook As Long

'鼠标信息
Public Type MOUSEMSGS
x As Long 'x座标
y As Long 'y座标
a As Long
b As Long
time As Long 'Window运行时间
End Type

'窗口信息
Public Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Public taskHeight As Long

'查找任务栏的函数
Public Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Public Const SWP_HIDEWINDOW = &H80
Public Const SWP_SHOWWINDOW = &H40
Public Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Public 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
'----------------------------------------

'鼠标钩子
Public Function CallMouseHookProc(ByVal code As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Static flag As Boolean
Dim hnd As Long
hnd = FindWindow("Shell_traywnd", "") 'get the Window
Dim MouseMsg As MOUSEMSGS
If wParam = WM_MOUSEMOVE Then
CopyMemory MouseMsg, lParam, LenB(MouseMsg)
If MouseMsg.y > Screen.Height / Screen.TwipsPerPixelY And flag = True Then
ShowWindow hnd, 5
flag = False
End If

If MouseMsg.y < Screen.Height / Screen.TwipsPerPixelY - taskHeight And flag = False Then '我估计任务栏的宽度为(Screen.Height / 15) / 20,不是很标准,可自行调整
ShowWindow hnd, 0
flag = True
End If
End If

If code <> 0 Then
CallMouseHookProc = CallNextHookEx(0, code, wParam, lParam)
End If
End Function

outou 2009-04-09
  • 打赏
  • 举报
回复
高手都去休息了。
zimei 2009-04-09
  • 打赏
  • 举报
回复
高手在哪里
reliang 2009-04-09
  • 打赏
  • 举报
回复
up
of123 2009-04-09
  • 打赏
  • 举报
回复
http://www.pc1news.com/how-to-hide-the-taskbar-automatically-939.html
zimei 2009-04-09
  • 打赏
  • 举报
回复
高手在哪里呀

7,789

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧