问题标签 [systray]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
515 浏览

java - 如何在 Java 中执行特定于操作系统的通知?

我不是专业的程序员(我所掌握的任何 Java 知识都来自 Hard Knocks 学院)。请原谅我要问的愚蠢问题,并适当回答。

我正在开发的一个 Java 应用程序使用非常错误的平台无关通知(例如当文件已成功下载时)。我想使用平台感知通​​知。在 Linux 上发出通知的代码非常简单:

在 Mac 上它有点复杂但仍然可行:

它需要一个可从此 github 存储库获得的 dylib:https ://github.com/petesh/OSxNotificationCenter

Windows方式是这样的:

关键是,我希望这些片段在适当的平台上执行;我不希望 Java 在 Windows 上编译 GTK 方法,因为它的依赖项不存在。

如何让它让 Java 识别它,比如“嘿,我正在为 Mac 系统编译,所以我使用的是 Mac 版本的代码。”

0 投票
2 回答
561 浏览

python - 程序结束时如何销毁图标托盘

我有一个类,当我的 .py 程序启动时会调用它,它会在 Windows 任务栏中创建一个图标托盘。在其中,有一个选项quit,它映射到kill_icon_tray我的类中的函数,它应该终止图标,然后完成我的程序。

这是类(一些方法被省略,因为它们不是必需的):

但是,每当我quit在图标托盘中单击时,都会返回以下异常:

我尝试将方法修改kill_icon_tray为此,但它引发了相同的异常:

根据infi.systray 文档,我做得正确:

要在程序结束时销毁图标,请调用systray.shutdown()

所以我不确定我在这里错过了什么......有人可以帮忙吗?谢谢!

0 投票
1 回答
406 浏览

python - 如何在系统托盘中显示/隐藏 Windows 控制台?

我正在完成一个 python 程序,我将作为 exe 分发。我在 Windows 10 64b 上使用 Python 3.7。

用户将双击 exe 来运行我的程序。然后打开一个 Windows 控制台并在此控制台中显示日志。

我的程序不需要任何 gui,但我想为用户提供隐藏带有日志的控制台并在他/她想要从系统托盘中的图标时显示回来的可能性。

我在这里找到了各种答案,但没有一个能满足我的需求。

我想我不是那种想在我们的 python 脚本上使用这个选项的人。它可能非常有用。

我找到了一个在 python 中构建系统托盘图标的教程:

https://youtu.be/WM27fMo5Gg8

但它是关于打开 Windows 程序,而不是关于显示/隐藏它自己的控制台。

0 投票
0 回答
43 浏览

python - 退出后“死”的 tkinter 窗口

我有一个脚本,它创建一个托盘图标,我从中调用两个不同的窗口。

我正在使用的托盘图标库(infi.systray)会自动创建一个退出选项,但如果窗口没有关闭,它们会在退出后保留。他们变得无响应并且应用程序不会退出。我应该怎么做才能使退出选项破坏任何打开的窗口?

这是我的代码:

0 投票
2 回答
82 浏览

python - 为什么尽管 python 代码正在执行而没有任何错误,但图标没有显示在系统托盘中?

我刚刚开始学习 python 并尝试创建一个系统托盘图标。该程序正在执行,没有任何错误,但没有显示任何图标。

此代码在 VSCode 中显示以下输出

0 投票
1 回答
70 浏览

python - 为什么我的程序在我想显示后没有响应?

我用 PyQT5 和 SysTrayIcon (infi.systray) 制作了一个小程序,如果程序关闭(人按“X”),可以选择用 TrayIcon 打开它。

在此处输入图像描述

如果按下按钮“打开”(在 TrayIcon 中),则程序必须显示为开始时的样子

在此处输入图像描述

但是,它正在启动但没有响应

在此处输入图像描述

为什么?以及如何解决?
我的代码:

0 投票
0 回答
51 浏览

python - Python从另一个文件关闭文件

我处于一个非常棘手的情况......我已经在 python 上创建了一个应用程序,然后让 SysTrayIcon 为用户添加一个托盘项目以轻松显示/隐藏/关闭应用程序。

不幸的是,quit 方法根本没有关闭我的应用程序,它只是删除了之前创建的托盘图标......

我想做的是同时关闭主应用程序窗口和托盘图标。

对于这种效果,我已经尝试过调用os.system("TASKKILL /F /IM py.exe")(从正在运行的应用程序启动的 cmd 窗口)。这没有用。我尝试了类似的:

无济于事。

我也试过sys.exit()了,但这当然只是关闭了托盘图标系统,而不是 cmd 进程。

我的想法有点用完了,所以如果有人有其他提示或想法来解决这个问题,我将不胜感激。

随时询问我是否遗漏了一些信息以便更好地理解这个问题。

问题概述

0 投票
1 回答
38 浏览

python - Windows 10 系统托盘应用程序在运行几个小时后崩溃。可能是什么原因?

我真的想添加更多上下文,但目前我只是迷路了。当我单击链接以显示它失败的哪一行指向此('win32gui.PumpMessages()')时,我可以说它似乎发生在计算机处于待机状态一个小时左右之后。感谢您对我的任何帮助/指责。我只是需要帮助。谢谢

下面是它失败的区域的片段。

以下是错误:

0 投票
1 回答
88 浏览

c++ - ShowWindow() 显示空白应用程序,直到从 C++ 中的系统托盘恢复后通过鼠标/键盘进行交互 - Flutter App

我一直想将系统托盘功能合并到我的 Flutter 应用程序中,所以我去修改启动窗口等的本机 C++ 代码,看看我是否可以挂接到它。尽管在 C++ 方面没有太多经验,但我已经能够在系统托盘中为我的应用程序创建一个图标,其菜单允许窗口在隐藏时再次显示(使用ShowWindow(hwnd, SW_HIDE);)并完全退出。

However when an option in my systray menu is selected to show the window again using ShowWindow(hwnd, SW_NORMAL);after being hidden, the app stays blank like this:

在此处输入图像描述

然后,当最终与窗口交互时,窗口的内容再次显示:

在此处输入图像描述

这是到目前为止我添加到我的 win32_window.cpp 的代码(来自默认的 Flutter 应用程序)。我没有包含整个函数,因为我认为这会使事情变得不太清楚,但我也会在本文末尾附上完整的 win32_window.cpp。Win32Window::CreateAndShow():

Win32Window::WndProc():

Win32Window::MessageHandler():

在此处链接到完整的 win32_window.cpp。

这里发生了什么?我认为使用 UpdateWindow() 会有所帮助,但后来我意识到该应用程序是在 ShowWindow() 上绘制的。我的猜测是这与 Flutter 的运行循环被阻塞有关,但我不知道下一步该去哪里,特别是考虑到我通常不涉足 C++,只是想在运行时为我的应用程序添加一个额外的功能在 Windows 上。

任何帮助将不胜感激,谢谢。

0 投票
1 回答
59 浏览

node.js - Nodejs - 小型 Express 服务器 + trayicon + pkg

我试图找出是否可以使用更小的文件大小,为基于 Express 的 API 服务器应用程序提供一个可分发的文件,并带有一些用于基本控件的托盘图标 - 基本上是退出 + 重新启动应用程序 + 在默认浏览器中打开 API。

使用 Electron Builder,我可以在大约 68MB 中执行 --ia32 目标,但想知道是否可以使用更小的大小,以了解更多信息。但是在尝试使用 pkg 使 Systray2 和相关解决方案工作时遇到问题(从 node_modules 获取 exe 文件上的 ENONENT(是的,尝试将其添加到 package.json pkg 资产,或者甚至将该 exe 复制到项目根目录下的 traybin 文件夹)。我我确信有办法,但我可能会遗漏一些可能很明显的东西,所以现成的 Git 会很棒。

因此,如果有任何方便的可能,是否有一些样板可供下载?当我只使用构建器、托盘和通知,但没有 mainWindow、ipc Renderer 等时,下载 Electron 感觉就像浪费空间......