请问怎样获取其他程序在通知栏的图标句柄

成都一沙鸥 2004-05-07 10:36:43
请问怎样获取通知栏图标句柄?(是其他程序的)
我自己想:应该先获取通知栏句柄吧。然后再获取其他程序的句柄吧。
可是怎么实现呢?
老实说我实验了好久,没成功。各位帮帮忙。有分送
...全文
54 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
supergreenbean 2004-05-07
  • 打赏
  • 举报
回复
可以考虑全局拦截API函数ShellNotifyIcon……
BitBlt 2004-05-07
  • 打赏
  • 举报
回复
通知拦是一个窗体,有句柄。时钟也有句柄。上面的图标是工具拦上的按钮,没有句柄。
onlineboy 2004-05-07
  • 打赏
  • 举报
回复
通知栏是哪一个?
如果是要获得程序和文件的系统图标的话,如下:

Public Const MAX_PATH = 260
Public Const SHGFI_DISPLAYNAME = &H200
Public Const SHGFI_EXETYPE = &H2000
Public Const SHGFI_SYSICONINDEX = &H4000 ' System icon index
Public Const SHGFI_LARGEICON = &H0 ' Large icon
Public Const SHGFI_SMALLICON = &H1 ' Small icon
Public Const ILD_TRANSPARENT = &H1 ' Display transContainer
Public Const SHGFI_SHELLICONSIZE = &H4
Public Const SHGFI_TYPENAME = &H400
Public Const BASIC_SHGFI_FLAGS = SHGFI_TYPENAME Or SHGFI_SHELLICONSIZE Or SHGFI_SYSICONINDEX Or SHGFI_DISPLAYNAME Or SHGFI_EXETYPE
Public Type SHFILEINFO
hIcon As Long
iIcon As Long
dwAttributes As Long
szDisplayName As String * MAX_PATH
szTypeName As String * 80
End Type
Public Declare Function SHGetFileInfo Lib "shell32.dll" Alias "SHGetFileInfoA" (ByVal pszPath As String, ByVal dwFileAttributes As Long, psfi As SHFILEINFO, ByVal cbSizeFileInfo As Long, ByVal uFlags As Long) As Long
Public Declare Function ImageList_Draw Lib "comctl32.dll" (ByVal himl&, ByVal i&, ByVal hDCDest&, ByVal X&, ByVal Y&, ByVal Flags&) As Long
Public Shinfo As SHFILEINFO


Public Function GetFileIcon(TempFileName As String) As String
'返回imagelist的Key
Dim hImgLarge As Long ' The handle to the system image list
Dim FileType As String

If TempFileName = "" Or Dir(TempFileName) = "" Then
GetFileIcon = "NonFile"
Exit Function
End If

hImgLarge& = SHGetFileInfo(TempFileName, 0&, Shinfo, Len(Shinfo), BASIC_SHGFI_FLAGS Or SHGFI_LARGEICON)
FileType = Left$(Shinfo.szTypeName, InStr(Shinfo.szTypeName, Chr$(0)) - 1)
If FileType = "应用程序" Then FileType = TempFileName
picLarge.Cls
ImageList_Draw hImgLarge&, Shinfo.iIcon, picLarge.hDC, 0, 0, ILD_TRANSPARENT

On Error Resume Next
GetFileIcon = imlIcon32.ListImages(FileType).Key
If Err.Number <> 0 Then
imlIcon32.ListImages.Add , "icon" & FileType, picLarge.Image
End If
On Error GoTo 0
GetFileIcon = "icon" & FileType

End Function
notepad--v3.4 windows Notepad--v3.4.0-plugin-Installer.exe 是win10下面的插件版安装包,会关联右键菜单等。 Notepad--v3.4.0-win10-portable.zip 是绿色免安装版本,解压即用,不会关联右键菜单注册表。 Ndd-quick-v3.3.0-win10-single-portable.zip 是单文件绿色免安装版,只包含皮肤和vc依赖库,不含插件、不含文件对比,主推轻量级、快速反应。适合只需要纯粹、轻快级,文本编辑器的用户。不定期发布。 MacOS 版本 Notepad--v3.4.0-mac_x64_12.3.dmg 是macos 12.x 及以后的版本。 Notepad--v3.4.0-mac_arm64_12.3.dmg 是macos 12.x 及以后 arm64 m1/m2芯片 的版本。第一次安装时,需要在设置偏好里面,放开苹果的安装限制,才能正常识别,请自行放开设置一下。 如果还是有问题,参考帖子:#I8JTJN:macOS Sonoma 14.1.1安装提示已损坏:macOS Sonoma 14.1.1安装提示已损坏 uos com.hmja.notepad_3.4.0.0_amd64.deb 是x64 cpu架构的uos系统对应的ndd版本。 其余系统版本后续会发布。 3.4 修改如下: 1 支持文件标签拖入拖出到新窗口的效果。 2 windows下修改快捷键放开。 3 按行号切分大文件。 4 大文件打开时,在文件夹查找所在目录,macos下可能会崩溃问题。 5 目录右键增加删除文件、文件夹功能。 6 补充深色主题下rust语法高亮; lisp 语法失效问题。 7 linux下信号打开文件,不拿锁,打开文件在消息队列中去做。

7,785

社区成员

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

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