`
lovnet
  • 浏览: 6881538 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

建立在TaskBar上没有Item的Form(转载)

阅读更多
TaskBar上针对每个程式都会有一个Item於其上,按该Item便会Activate该对应的程式
,其实TaskBar上的这些程式Item是用Tab Control做的,所以如果我们能得到TaskBar
上的Tab Control(SysTab)的hWnd,我们便可以随意删除其上的Item了。

1. 一个应用程式启动时, 除了送出 WM_ACTIVE 叫醒自己本身的主要视窗外, 它还会通知
SysTab (Send ABM_ACTIVATE) 建立该程式在工作列(TaskBar)上的按钮及图示
2. 要让一个应用程式, 按 Alt-Tab 无法切换到, 则必须先改变此应用程式的视窗型态
为 ToolWindow; 然而在 VB 里面用 Show vbModal 可以达到相同的效果

Option Explicit
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" ( _
    ByVal lpClassName As String, _
    ByVal lpWindowName As String) As Long
 
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" ( _
    ByVal hWndParent As Long, _
    ByVal hWndChild As Long, _
    ByVal lpClassName As String, _
    ByVal lpWindowName As String) As Long
Const GWL_EXSTYLE = (-20)
Const WS_EX_TOOLWINDOW = &H80
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Const TCM_FIRST = &H1300    ' Tab control messages
Private Const TCM_GETIMAGELIST = (TCM_FIRST + 2)
Private Const TCM_SETIMAGELIST = (TCM_FIRST + 3)
Private Const TCM_GETITEMCOUNT = (TCM_FIRST + 4)
Private Const TCM_GETITEMA = (TCM_FIRST + 5)
Private Const TCM_GETITEMW = (TCM_FIRST + 60)
Private Const TCM_SETITEMA = (TCM_FIRST + 6)
Private Const TCM_SETITEMW = (TCM_FIRST + 61)
Private Const TCM_INSERTITEMA = (TCM_FIRST + 7)
Private Const TCM_INSERTITEMW = (TCM_FIRST + 62)
Private Const TCM_DELETEITEM = (TCM_FIRST + 8)
Private Const TCM_DELETEALLITEMS = (TCM_FIRST + 9)
Private Const TCM_GETITEMRECT = (TCM_FIRST + 10)
Private Const TCM_GETCURSEL = (TCM_FIRST + 11)
Private Const TCM_SETCURSEL = (TCM_FIRST + 12)
Private Const TCM_HITTEST = (TCM_FIRST + 13)
Private Const TCM_SETITEMEXTRA = (TCM_FIRST + 14)
Private Const TCM_ADJUSTRECT = (TCM_FIRST + 40)
Private Const TCM_SETITEMSIZE = (TCM_FIRST + 41)
Private Const TCM_REMOVEIMAGE = (TCM_FIRST + 42)
Private Const TCM_SETPADDING = (TCM_FIRST + 43)
Private Const TCM_GETROWCOUNT = (TCM_FIRST + 44)
Private Const TCM_GETTOOLTIPS = (TCM_FIRST + 45)
Private Const TCM_SETTOOLTIPS = (TCM_FIRST + 46)
Private Const TCM_GETCURFOCUS = (TCM_FIRST + 47)
Private Const TCM_SETCURFOCUS = (TCM_FIRST + 48)
Private Const TCM_SETMINTABWIDTH = (TCM_FIRST + 49)
Private Const TCM_DESELECTALL = (TCM_FIRST + 50)
Private Const TCM_HIGHLIGHTITEM = (TCM_FIRST + 51)
Private Const TCM_SETEXTENDEDSTYLE = (TCM_FIRST + 52)
Private Const TCM_GETEXTENDEDSTYLE = (TCM_FIRST + 53)
Private Const TCM_SETUNICODEFORMAT = &H2005
Private Const TCM_GETUNICODEFORMAT = &H2006

Private Sub Form_Load()
 
    Dim lReturn As Long
    Dim lHwnd As Long

    lReturn = FindWindow("Shell_TrayWnd", vbNullString)    ' 先找 Shell Tray handle
    lReturn = FindWindowEx(lReturn, 0, "MSTaskSwWClass", vbNullString)    ' 再找它的 Child
    lHwnd = FindWindowEx(lReturn, 0, "SysTabControl32", vbNullString)    ' 原来就是这一个
    Me.Show
    'DoEvents
    Me.Visible = False
    '将 Window Extend Style 设成 ToolWindow, 按 Alt-Tab 无法切换到
    lReturn = SetWindowLong(Me.hwnd, GWL_EXSTYLE, WS_EX_TOOLWINDOW)
    '应该设定 Visible 的属性, 才能让改变Window Style的 API 致能
    Me.Visible = True
    ' 将 SysTab 上的最後一个 Item 删掉
    lReturn = SendMessage(lHwnd, TCM_GETITEMCOUNT, 0, ByVal 0)
    lReturn = SendMessage(lHwnd, TCM_DELETEITEM, lReturn - 1, ByVal 0)
 
End Sub
分享到:
评论

相关推荐

    易语言模块taskbar.rar

    易语言模块taskbar.rar 易语言模块taskbar.rar 易语言模块taskbar.rar 易语言模块taskbar.rar 易语言模块taskbar.rar 易语言模块taskbar.rar

    Hide Taskbar.zip

    同时,软件被描述为“干净”,这可能意味着它没有广告插件,不会在用户的电脑上留下冗余的文件或设置,也不会影响系统的性能。 标签 "Windows" 暗示了这个软件是专门为Windows操作系统设计的,适用于各种Windows...

    Taskbar Shuffle

    "Taskbar Shuffle"是一款专为Windows操作系统设计的小工具,它允许用户自由地调整任务栏上应用程序图标的顺序,满足那些对界面布局有特定要求,尤其是追求完美对齐的用户。这款软件无需安装,只需解压后运行,方便...

    7+ Taskbar Tweaker

    2. **自定义任务栏图标**:7+ Taskbar Tweaker 还可以改变任务栏图标的排列方式,比如将相同程序的多个实例合并成一个图标,或者禁止某些程序在任务栏上显示,从而保持任务栏的整洁。 3. **增强缩略图预览**:用户...

    MultiMon.TaskBar.PRO.3.5.Setup.Patch

    - 在所有显示器上显示任务栏,使得在多个屏幕间切换应用程序更加方便。 - 自定义每个显示器的任务栏布局,例如独立的任务栏、合并的任务栏或仅在主显示器上显示任务栏。 - 能够固定或移动窗口到特定显示器,避免误...

    taskbar tweaker for windows10

    4. **鼠标手势**:通过鼠标手势来执行特定操作,如拖拽任务按钮到其他位置,或是在任务栏上进行自定义的组合操作。 5. **隐藏与显示**:根据需要控制任务栏某些元素的可见性,如托盘图标、时间日期等。 6. **多...

    Hide-Taskbar

    对于那些需要在屏幕上显示大量数据或者进行精细设计工作的用户来说,这个功能尤为实用。例如,在演示文稿、视频编辑、编程或游戏时,隐藏任务栏可以避免视觉上的干扰,让焦点更加集中。 除了基本的隐藏功能,Hide-...

    TaskBar++.rar

    安装完成后,TaskBar++将在后台运行,用户可以直接在任务栏上体验其各项功能。 总之,TaskBar++是一款实用且功能丰富的任务栏增强工具,通过它可以实现任务栏的个性化定制,优化工作流程,提高电脑使用效率,是...

    hide taskbar

    在Windows CE(简称WinCE)操作系统中,"hide taskbar"是一个常见的需求,尤其是在开发嵌入式设备或定制用户界面时。Windows CE是微软为小型设备和嵌入式系统提供的一种实时操作系统,它允许开发者根据特定需求进行...

    Taskbar Control – 用键盘来隐藏任务栏

    今天介绍的 Taskbar Control 则可以通过设定键盘快捷键来快速显示隐藏任务栏。 解压缩运行 Taskbar Control 后,由于是第一次启动,所以会弹出一个提示框,直接关闭就可以了。软件本身设置的默认快捷键是 Ctrl + ...

    taskbar hide v1.8简体中文注册版.rar

    taskbar hide是一款窗口隐藏工具,它可以隐藏选择的指定程序窗口,显示选择的程序窗口,关闭选择的窗口,最小化选择的程序窗口到系统托盘。这个是办公室一族必备的小工具,具体什么场合使用就不用多说了吧。可以...

    Taskbar Hide窗口隐藏工具

    Taskbar Hide 是一款独特的任务栏窗口管理程序。通过热键对窗口(应用程序)进行隐藏,您也可以将它们最小化到系统托盘,而不在任务栏显示。隐藏一些系统托盘不经常使用的图标。 对任务栏窗口进行重新的排列。设置...

    labview hide taskbar

    运行无误,可以直接下载使用,可以直接下载使用。hide taskbar

    7+ Taskbar Tweaker v5.9.1

    7+ Taskbar Tweaker 可以对任务栏进行各种定制, 比如鼠标点击任务栏图标的行为, 任务栏图标合并和拆分的设置等等

    Taskbar Shuffle 任务栏重排

    【Taskbar Shuffle 任务栏重排】是一款小巧实用的软件工具,专为Windows操作系统设计,旨在帮助用户自由调整任务栏上应用程序图标的顺序。在Windows系统默认设置中,任务栏上的程序图标通常按照启动的顺序排列,这在...

    Windows7 Taskbar特效实例

    Windows7 Taskbar特效实例 Windows7 Taskbar特效实例 Windows7 Taskbar特效实例 Windows7 Taskbar特效实例 Windows7 Taskbar特效实例 Windows7 Taskbar特效实例

    taskbar中隐藏图标

    6. 对于那些不在列表中的图标,可能是由于它们没有提供控制是否显示在任务栏上的选项,此时,用户无法通过此界面进行控制,但通常这些图标会默认显示在任务栏上。 除了上述方法,还有一些与任务栏图标相关的高级...

    7+taskbar任务管理

    7+ Taskbar Tweaker 是一款由德意志著名软件工程师 RaMMicHaeL 精心设计与开发而成的完全免费且功能强大的微软 Windows 任务栏自定义设置即优化调整实用工具,允许用户通过配置任务栏程序行为、分组&合并方式以及...

    Taskbar Repair Tool Plus 1.11

    Taskbar Repair Tool Plus 1.11能检测并修复这一问题,使“开始”按钮重新出现在任务栏上,恢复正常的启动功能。 3. **气泡提示的消除**: Windows XP中的气泡提示虽然有助于提供信息,但过多或不必要的提示可能...

    Windows 7 IntegrationLibrary Taskbar

    当用户将鼠标悬停在任务栏上的某个应用图标上时,会显示该应用窗口的缩略图,而缩略图工具栏则可以在这个缩略图上添加自定义按钮,让用户可以直接在缩略图上进行操作,比如控制音乐播放或视频快进。 此外,"Win7...

Global site tag (gtag.js) - Google Analytics