Access911.net   |   a9BBS   |   OTaA System  
  搜索文章:  
Access911欢迎您光临  
   主页      上传      繁體版       论坛     
设为首页  |  加入收藏   
  
你现在的位置:文章索引 -> 文章分类 -> API  
 首页|  近日更新|  下载  |  文章索引  |  搜索|  术语|  承接工程|  
 
系统正在加载内容,请耐心等待...
 
 查询
 窗体
 报表
 
 
 VBA
 函数
 ADO/DAO/ADO.NET
 API
 ADP
 安全
 发布
 OA
 ASP/ASP.NET
 其他语言
 控件
 DELPHI
 C#/.Net
 本站
 其他
 小例程
 常用软件
 参考文档
 业主作品
 网友大作
 
 
友情链接
 access911.net
 
访问人次
 1701912
 
站长 E-Mail
 net911@sina.com
 access911@gmail.com
 
RSS 订阅

显示附加信息 >>>

如何设置让任务栏自动隐藏?

作者:cg1  摘自:access911.net  :cg1  更新日期:2007-11-26  浏览人次:

 

问题:

右键单击任务栏,选择属性,在里面可以设置“自动隐藏任务栏”。
如何用 ACCESS 编程实现上述操作?
注意!不是要直接隐藏它,而是要设置这个选项!

 


回答:

用 VBA 结合 WINDOWS API 就可以实现

'按 Alt + F11 转到 VBE 界面,然后新建一个模块,将以下代码 COPY 进去
Public Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
End Type

Public Type APPBARDATA
    cbSize As Long
    hwnd As Long
    uCallbackMessage As Long
    uEdge As Long
    rc As RECT
    lParam As Long
End Type

Public Declare Function SHAppBarMessage Lib "shell32.dll" (ByVal dwMessage As Long, _
    pData As APPBARDATA) As Long

'参考:http://msdn2.microsoft.com/en-us/library/bb787961.aspx
'参考:http://msdn2.microsoft.com/en-us/library/ms630813.aspx

Public Const ABS_ALWAYSONTOP = &H2
Public Const ABS_AUTOHIDE = &H1
Public Const ABS_BOTH = &H3

'参考:http://msdn2.microsoft.com/en-us/library/ms647647.aspx
Public Const ABM_ACTIVATE = &H6
Public Const ABM_GETSTATE = &H4
Public Const ABM_GETTASKBARPOS = &H5
Public Const ABM_NEW = &H0
Public Const ABM_QUERYPOS = &H2
Public Const ABM_REMOVE = &H1
Public Const ABM_SETAUTOHIDEBAR = &H8
Public Const ABM_SETPOS = &H3
Public Const ABM_SETSTATE = &HA
Public Const ABM_WINDOWPOSCHANGED = &H9

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

'===========================================================
' 过程及函数名:  RunTest
' 版本号      :  --
' 说明        :  本过程只用于演示如何用VBA设置自动隐藏工具栏
' 引用        :  --
' 输入参数    :  --
' 输出值      :  --
' 返回值      :  --
' 调用演示    :  RunTest
' 最后修改日期:  2007-11-26 23:00:00
' 示例地址    :  http://access911.net/?kbid;72FABE1E1ADCEFF3
' 作者        :  cg1
' 网站        :  http://access911.net
' 电子邮件    :  access911@gmail.com
' 版权        :  作者保留一切权力,
'                 请在公布本代码时将本段说明一起公布,谢谢!
'===========================================================

Public Sub RunTest()
'将光标停在这里按 F5 键即可运行看效果
'参考:http://support.microsoft.com/kb/143117

    Dim abd As APPBARDATA
    Dim lngResult As Long
    Dim hTaskBar As Long
    abd.cbSize = Len(abd)
    lngResult = SHAppBarMessage(ABM_GETSTATE, abd)  '查询状态
    Select Case lngResult
    Case ABS_BOTH
        Debug.Print "自动隐藏,且将任务栏保持在其他窗口的前面"
    Case ABS_AUTOHIDE
        Debug.Print "自动隐藏"
    Case ABS_ALWAYSONTOP
        Debug.Print "将任务栏保持在其他窗口的前面"
    End Select
        
    SHAppBarMessage ABM_GETTASKBARPOS, abd
    hTaskBar = FindWindowEx(0, 0, "Shell_TrayWnd", vbNullString)
    If hTaskBar = 0 Then
        Debug.Print "查找状态栏失败"
        Exit Sub
    End If
    abd.hwnd = hTaskBar
    'abd.lParam = ABS_ALWAYSONTOP Or ABS_AUTOHIDE   '自动隐藏,且位于窗口前
    'abd.lParam = ABS_ALWAYSONTOP                   '不自动隐藏,且位于窗口前
    abd.lParam = ABS_AUTOHIDE                       '自动隐藏,且不位于窗口前
    SHAppBarMessage ABM_SETSTATE, abd               '进行设置
    
    
End Sub


 

本站文章旨在为该问题提供解决思路及关键性代码,并不能完成应该由网友自己完成的所有工作,请网友在仔细看文章并理解思路的基础上举一反三、灵活运用。

access911.net 原创文章,作者本人对文章保留一切权利。
如需转载必须征得作者同意并注明本站链接


 

 
相关文章
     没有手动相关文章
     不添加绑定控件如何在窗体上获取数据来源的某个字段值?隐藏对象 AccessField 介绍
     数据表视图下对列的操作常用属性。隐藏列、冻结列、更改列宽、排列列顺序
     如何使我的软件的窗体在系统任务栏上闪烁?
     新手来看:傻瓜问题:如何使WINDOWS任务栏只显示一个数据库对象?
     两个未公开的ACCESS方法的使用技巧
     如何隐藏或最小化access数据库窗口
     如何隐藏/显示某个表或者其他数据库对象?
     如何最大化、最小化、隐藏Access主窗口;如何隐藏access数据库窗体
 
评论
     查看或发表更多的评论,请单击这里。
 
 
 
 
 
   
  Access911.net   |   a9BBS   |   OTaA System   |
建站日期:2000年4月2日  |  设计施工:陈格 ( access911 & cg1 )
 Copyright © 2000 - 2003 COMET, 陈格 保留所有权利