c# – 图标存在于系统托盘中?

我想检查系统托盘中是否存在图标;如果“X”应用程序在系统托盘区域中显示了他们的系统托盘图标.

我已经用Google搜索了有关如何执行此操作的信息,但我没有找到任何内容.

UPDATE :

这是我在VB.NET中尝试翻译由Robert评论给出的网址的C#示例,但我不知道如何继续它.

Imports System.Runtime.InteropServices

Public Class Form1

    Public Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String,ByVal lpWindowName As String) As Long
    Public Declare Function findwindowex Lib "user32.dll" Alias "findwindowexA" (ByVal hWndParent As IntPtr,ByVal hWndChildAfter As IntPtr,ByVal lpClassName As String,ByVal lpWindowName As String) As IntPtr

    Public Shared Function WindowHandle(sTitle As String) As Long
        Return FindWindow(vbNullString,sTitle)
    End Function


    Private Shared Function GetSystemTrayHandle() As IntPtr
        Dim hWndTray As IntPtr = FindWindow("Shell_TrayWnd",nothing)
        If hWndTray <> IntPtr.Zero Then
            hWndTray = findwindowex(hWndTray,IntPtr.Zero,"TrayNotifyWnd",nothing)
            If hWndTray <> IntPtr.Zero Then
                hWndTray = findwindowex(hWndTray,"SysPager",nothing)
                If hWndTray <> IntPtr.Zero Then
                    hWndTray = findwindowex(hWndTray,"ToolbarWindow32",nothing)
                    Return hWndTray
                End If
            End If
        End If

        Return IntPtr.Zero
    End Function

    Private Sub Button1_Click(sender As Object,e As EventArgs) Handles Button1.Click
        MsgBox(WindowHandle("Steam")) ' 6687230
        MsgBox(GetSystemTrayHandle()) ' 62789
    End Sub

End Class

解决方法

您应该阅读 this代码项目文章.

相关文章

目录简介使用JS互操作使用ClipLazor库创建项目使用方法简单测...
目录简介快速入门安装 NuGet 包实体类User数据库类DbFactory...
本文实现一个简单的配置类,原理比较简单,适用于一些小型项...
C#中Description特性主要用于枚举和属性,方法比较简单,记录...
[TOC] # 原理简介 本文参考[C#/WPF/WinForm/程序实现软件开机...
目录简介获取 HTML 文档解析 HTML 文档测试补充:使用 CSS 选...