标签: systray

如何启动WinForm应用程序最小化到托盘?

我已经成功创建了一个应用程序,使用NotifyIcon最小化托盘.手动关闭表单后,它将成功从桌面,任务栏和alt-tab中隐藏.尝试最小化应用程序时,会出现此问题.起初问题是应用程序将被最小化但仍会出现在alt-tab对话框中.将FormBorderStyle更改为ToolWindow选项之一(来自"None"选项)修复此问题,但引入了另一个问题.当应用程序首次启动时,在开始菜单上方可以看到最小化窗口的标题栏:

在此输入图像描述

打开表单并关闭它会使其正确隐藏.我尝试了很多变化,但这里基本上它是如何正常工作的......

WindowState在Designer中设置为Minimized.在构造函数中进行一些初始化后,我有以下几行:

this.Visible = false;
this.ShowInTaskbar = false;
Run Code Online (Sandbox Code Playgroud)

双击NotifyIcon时,我有以下内容:

 this.WindowState = FormWindowState.Normal;
 this.Visible = true;
 this.ShowInTaskbar = true;
Run Code Online (Sandbox Code Playgroud)

就像我说的那样,我已经尝试过很多小的变化(this.Hide()等).有没有办法让NotifyIcon成为主要组件,这样我可以完全启动并处理表单,同时让NotifyIcon运行?必须有一种方法来启动应用程序与最小化的形式没有任何奇怪.请帮帮我找到它!

.net c# systray visual-studio-2008 winforms

45
推荐指数
3
解决办法
5万
查看次数

快速简单:带有python的trayicon?

我只需要一个简单的例子来说明如何在我的系统托盘上轻松放置带有python的图标.这意味着:我运行程序,没有窗口显示,只有一个托盘图标(我有一个png文件)显示在系统托盘中,当我右键单击它时,会出现一个带有一些选项的菜单(当我点击时在一个选项上,运行一个函数).那可能吗?我根本不需要任何窗口......

示例/代码片段非常感谢!:d

python wxpython systray pyqt tray

32
推荐指数
5
解决办法
3万
查看次数

如何使用FireMonkey创建托盘图标?

使用新的FireMonkey跨平台工具,如何创建托盘图标?使用Delphi,它曾经是TTrayIcon.

文档什么都没有,似乎没有其他问题可以回答这个问题.会欣赏任何想法(我总是可以求助于每个平台的系统编程,但那就是真的没有这样的东西).

delphi trayicon systray firemonkey

29
推荐指数
1
解决办法
3759
查看次数

使Java系统在Linux中看起来更漂亮

我在Linux上创建了一个使用Java 6和Swing的 sytray的Java应用程序.该应用程序看起来很棒(使用系统的外观和感觉)但系统看起来很糟糕.我的意思是系统托盘菜单看起来像老widgedts(Motif?).我想知道是否有办法设置一个外观和感觉或什么使系统托盘更漂亮.

下面是托盘的截图: 在此输入图像描述

java swing systray

26
推荐指数
1
解决办法
2763
查看次数

如何将Windows窗体.NET应用程序显示为托盘图标?

要使.NET应用程序在Window的系统托盘中显示为图标,需要做些什么?

你如何处理所述图标上的鼠标按钮点击?

.net vb.net system-tray systray winforms

19
推荐指数
2
解决办法
2万
查看次数

在窗口托盘菜单中添加图像

我正在使用python为windows编写简单的托盘.

我成功创建了一个托盘图标,菜单,子菜单.我坚持为特定的托盘项目添加图像.

这是我用过的代码.(链接)即使这段代码也行不通.Windows文档不清楚.

def addMenuItem(self, wID, title, menu):
        path = os.path.dirname(os.path.abspath(__file__))
        path += "\print_pref.ico"
        option_icon = self.prep_menu_icon(path)
        item, extras = win32gui_struct.PackMENUITEMINFO(text=title,
                                                                hbmpItem=option_icon,
                                                                wID=wID)

        win32gui.InsertMenuItem(menu, 0, 1, item)


def prep_menu_icon(self, icon):
        # First load the icon.
        ico_x = win32api.GetSystemMetrics(win32con.SM_CXSMICON)
        ico_y = win32api.GetSystemMetrics(win32con.SM_CYSMICON)
        hicon = win32gui.LoadImage(0, icon, win32con.IMAGE_ICON, ico_x, ico_y, win32con.LR_LOADFROMFILE)

        hdcBitmap = win32gui.CreateCompatibleDC(0)
        hdcScreen = win32gui.GetDC(0)
        hbm = win32gui.CreateCompatibleBitmap(hdcScreen, ico_x, ico_y)
        hbmOld = win32gui.SelectObject(hdcBitmap, hbm)
        # Fill the background.
        brush = win32gui.GetSysColorBrush(win32con.COLOR_MENU)
        win32gui.FillRect(hdcBitmap, (0, 0, 16, 16), brush)
        # …
Run Code Online (Sandbox Code Playgroud)

python windows systray win32gui

19
推荐指数
1
解决办法
496
查看次数

如何显示超过63个字符的系统托盘工具提示?

如何显示超过63个字符的系统托盘工具提示?NotifyIcon.Text有63个字符限制,但我已经看到VNC服务器有更长的工具提示.

我该怎么做VNC服务器呢?

c# systray winforms

17
推荐指数
2
解决办法
8352
查看次数

系统托盘中的JavaFX应用程序

我正在使用JavaFX UI制作一个简单的应用程序,该应用程序只是这样做:

  • 有一个系统托盘图标,点击后显示一个窗口,再次点击时隐藏它,右键单击显示一个带有"退出"项目的菜单

我已经制作了UI并将应用程序放在Sys托盘中,但是我无法使用Normal Actionlistener方法显示/隐藏它,但是我收到了这个错误:

Exception in thread "AWT-EventQueue-0" java.lang.IllegalStateException: Not on FX application thread; currentThread = AWT-EventQueue-0
Run Code Online (Sandbox Code Playgroud)

这是代码:

import java.awt.Image;
import java.awt.MenuItem;
import java.awt.PopupMenu;
import java.awt.SystemTray;
import java.awt.Toolkit;
import java.awt.TrayIcon;
import java.awt.event.ActionListener;


import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class Main extends Application{
    public static void main(String[] args) { 
        launch(args);       
    }

    @Override
    public void start(final Stage primaryStage) {
        primaryStage.setTitle("Hello World!");
        Button btn = new Button();
        btn.setText("Say 'Hello World'");
        btn.setOnAction(new EventHandler<ActionEvent>() { …
Run Code Online (Sandbox Code Playgroud)

javafx systray awt

17
推荐指数
1
解决办法
1万
查看次数

使用本机Golang API在Windows上添加图标托盘

我正在开发一个没有UI的守护进程,除了Windows系统中的简单图标.

我想对任何其他软件包没有依赖关系,所以我试图使用syscall软件包并自己实现必要的调用.

文档

图书馆

履行

结构

使用xilp/systray文档构建.

type HANDLE uintptr

type HICON HANDLE
    type HWND HANDLE

type GUID struct {
    Data1 uint32
    Data2 uint16
    Data3 uint16
    Data4 [8]byte
}

type NOTIFYICONDATA struct {
    CbSize           uint32
    HWnd             HWND
    UID              uint32
    UFlags           uint32
    UCallbackMessage uint32
    HIcon            HICON
    SzTip            [128]uint16
    DwState          uint32
    DwStateMask      uint32
    SzInfo           [256]uint16 …
Run Code Online (Sandbox Code Playgroud)

windows systray go

13
推荐指数
1
解决办法
2209
查看次数

为什么我会看到多个Systray图标?

我已经在我的应用程序中添加了Notify图标,并且我经常在系统托盘中看到最多3份通知图标.是否有一个原因?

有没有办法阻止它发生.

在我的应用程序关闭后,这种情况经常持续存在,直到我迷失到系统托架并且系统托架扩展并折叠然后它们全部消失.

c# systray

12
推荐指数
2
解决办法
7524
查看次数