标签: system-tray

单击按钮时应用程序最小化到系统托盘?

如何让我的应用程序最小化到WindowsXP/Vista中的系统托盘?

当鼠标悬停在图标上时,我也在寻找一种方法来显示消息.弹出气球可以有两条线吗?

c# system-tray tooltip minimize

7
推荐指数
1
解决办法
6113
查看次数

确定托盘图标的位置

我的应用程序设计为位于系统托盘中,其行为类似于Windows 7中的网络/卷/电源/操作中心托盘项目(以及Windows Vista中的等效项目).也就是说,当单击托盘图标时它变为可见,并且当焦点丢失时变为隐藏.

该应用程序是用WPF编写的,但我目前正在使用WinForms的NotifyIcon作为托盘图标.

我想知道是否有人对如何确定应用程序托盘图标的位置(即屏幕坐标)有任何建议.默认的Windows Vista/7托盘项目有一些方法可以执行此操作,因为弹出窗口在相关托盘图标上方居中对齐.

在Vista中这不是一个问题:我将应用程序永久设置在右下角,这看起来很好(尽管没有任何逻辑包含任务栏没有放在屏幕底部的情况).但是,在Windows 7中,我的应用程序最终会遮挡新系统托盘弹出框,而不是像音量控件等一样悬停在它上面.

到目前为止,我在搜索中看到的最佳解决方案是处理NotifyIcon上的鼠标添加事件,并使用鼠标坐标来确定图标的位置.我认为如果除非有人有更好的想法,我最终会使用这种方法,尽管它并不理想,因为根据用户点击的图标内的位置,位置会略有不同.

wpf position system-tray notifyicon coordinates

7
推荐指数
2
解决办法
3109
查看次数

如何检测System TrayIcon for Java App的单击?

我正在开发一个简单的Java swing应用程序,它在创建时会在系统托盘中添加一个图标.我要做的是检测用户单击此图标的时间(无论是通过左键单击还是右键单击),没有弹出菜单,我只想在单击图标时恢复应用程序.

这是我正在使用的代码:

    SystemTray tray = SystemTray.getSystemTray(); 
    Image icon = toolkit.getImage("icon.png");

    ActionListener listener = new ActionListener()
    {
        public void actionPerformed(ActionEvent e)
        {
            System.out.println("click detected");
        }
    };

    TrayIcon trayIcon = new TrayIcon(icon, "Test Program", null);
    trayIcon.addActionListener(listener);
    tray.add(trayIcon);
Run Code Online (Sandbox Code Playgroud)

但是,当我运行此程序时会发生什么,单击(左或右)没有任何效果,但是当我双击时,它会在控制台中显示消息"click detected".

我还可以检测到单次点击该怎么办?我需要使用MouseListener吗?(我听说MouseListeners会导致问题,ActionListeners会更好)

java swing trayicon system-tray actionlistener

7
推荐指数
1
解决办法
4988
查看次数

Windows 10通知中的空白图标

我的java应用程序使用看起来或多或少的代码在系统托盘上显示其图标:

Toolkit mainToolkit = Toolkit.getDefaultToolkit();
SystemTray mainTray = SystemTray.getSystemTray();
Image trayIconImage = mainToolkit.createImage(getClass().getResource(resourcePath));
TrayIcon mainTrayIcon = new TrayIcon(trayIconImage);
mainTray.add(mainTrayIcon);
Run Code Online (Sandbox Code Playgroud)

有时我会改变这样的图标:

Image newImage = mainToolkit.createImage(getClass().getResource(otherPath));
mainTrayIcon.setImage(newImage);
Run Code Online (Sandbox Code Playgroud)

我的应用程序有时需要显示一些通知(使用来自托盘图标的气球消息):

mainTrayIcon.displayMessage(someCaption,  msg, TrayIcon.MessageType.NONE);
Run Code Online (Sandbox Code Playgroud)

所有这些代码实际上都是以某种方式简化,但很好地掌握了这个功能.

所以Windows 7上的一切都很好.但事实证明,在Windows 10上,它的显示方式不同.在通知上,左侧显示一个图标.它通常是我的应用程序的当前托盘图标,但有时它只是空白:

错误的通知

在上面的红色圆圈(在通知上)是有时出现的空白图标,而不是我的应用程序的图标(在系统的托盘上的红色小圈中).我不知道它为什么会发生.我所知道的只有当应用程序的托盘图标和通知消息在第一次通知(总是正确显示其图标)之前发生变化时才会发生这种情况.如果显示通知,则手动关闭淡出/然后应用程序的托盘图标和通知更改,下一个通知(使用刚设置的新消息)将正确显示应用程序的图标.

java notifications trayicon system-tray windows-10

7
推荐指数
1
解决办法
1945
查看次数

强制Windows显示系统托盘图标

这是一个非常愚蠢的问题,但是这里有:

有没有办法(在.net中)强制Windows显示您的系统托盘图标而不是隐藏它?我不想一直这样做,但至少我的应用程序第一次运行时,我希望它在系统托盘中可见.

.net windows system-tray .net-2.0

6
推荐指数
2
解决办法
7529
查看次数

如何在C++程序中创建KDE托盘通知?

我有一个C++程序(使用Qt),我想用进度条创建一个托盘通知.我认为Qt可以显示文本通知,但不会显示进度条 - 这是特定于KDE的.我找不到在C++中管理KDE托盘通知的任何示例.有什么建议?

PS这就是我的意思:

在此输入图像描述

c++ qt kde system-tray

6
推荐指数
2
解决办法
1461
查看次数

将系统托盘图标添加到Chrome应用程序(如Google Hangouts应用程序)可以吗?

谷歌的Hangouts Chrome应用将自身添加到系统托盘

系统托盘中的Google Hangouts

我找不到任何关于如何完成的文档.这只是谷歌可以做的特殊事情,或者这可能吗?怎么样?

google-chrome system-tray google-chrome-app

6
推荐指数
0
解决办法
1438
查看次数

右键单击Windows 10中带有AutoHotKey的托盘图标

在Windows 7中,我有一个AutoHotKey脚本,可以自动右键单击托盘图标.

#Include %A_Scriptdir%\TrayIcon.ahk
TrayIcon_Button("CCC.exe", "R")
Run Code Online (Sandbox Code Playgroud)

其中使用了FanaticGuru的帖子中的TrayIcon.ahk库.

这在Windows 7上运行得很好,但不再适用于Windows 10.

有没有办法在Windows 10上的AutoHotKey脚本中右键单击TrayIcon?

这是库中的TrayIcon_Button函数.我没有张贴整个图书馆,因为它相当长.

; ----------------------------------------------------------------------------------------------------------------------
; Function .....: TrayIcon_Button
; Description ..: Simulate mouse button click on a tray icon.
; Parameters ...: sExeName - Executable Process Name of tray icon.
; ..............: sButton  - Mouse button to simulate (L, M, R).
; ..............: bDouble  - True to double click, false to single click.
; ..............: index    - Index of tray icon to click if more than one …
Run Code Online (Sandbox Code Playgroud)

autohotkey system-tray windows-10

6
推荐指数
1
解决办法
2424
查看次数

如何获取通知中心显示的推送通知

所有这些都来自我目前正在开发的一个应用程序,我们称这个应用程序为SampleApp

如何从我的手机托盘中获取这些通知的列表

在此处输入图片说明

是的,我知道我可以通过此代码获取通知

if #available(iOS 10.0, *) {           
    UNUserNotificationCenter.current().getPendingNotificationRequests { (requests) in
        print("here are the iOS 10 notifs \(requests)")
    }         
} else {
    let requests = (UIApplication.shared.scheduledLocalNotifications ?? [])
    print("here are the NON iOS 10 notifs \(requests)")
}
Run Code Online (Sandbox Code Playgroud)

但此代码的问题在于我只能获取我离线创建的通知,而不能获取来自Apple 推送通知服务器 (APNS) 的通知

通过离线创建我的意思是,scheduled UILocalNotifications,并且由于Push Notifications不是UILocalNotifications 我不知道该怎么做

你可能会问的一些问题

  1. 这些通知是来自我的应用程序吗?

    • 是的
  2. 我使用的didReceiveRemoteNotificationAppDelegate

    • 是的,但那是不同的。
  3. 我的远程通知是否有效/来自 APNS

    • 是的。
  4. 我注册远程通知的代码是什么样的?

    if #available(iOS 10.0, *) {
        let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound] …
    Run Code Online (Sandbox Code Playgroud)

notifications system-tray swift

6
推荐指数
1
解决办法
2695
查看次数

Flutter Desktop - 系统托盘实现

我是颤振新手,我正在努力创建系统托盘实现。

我需要的是:

  1. 为我的应用程序创建一个托盘图标。
  2. 能够通过托盘图标右键菜单隐藏和显示应用程序窗口。
  3. 能够向托盘图标右键菜单添加选项,例如打开屏幕 X。
  4. 能够启动和停止某些进程,并实时更改托盘图标(见下图)。

在此输入图像描述

有人可以指导我吗?:D

PS:我的应用程序将在 Windows、Linux 和 MacOS 上运行。

谢谢大家!

system-tray flutter flutter-plugin flutter-desktop

6
推荐指数
2
解决办法
6364
查看次数