任何人都可以建议一个良好的代码示例 vb.net/c#代码,以便在缩小时将应用程序放入系统托盘.
有没有办法保证您的系统托盘图标被删除?
要添加系统托盘图标,请执行以下操作:
Shell_NotifyIcon(NIM_ADD, &m_tnd);
Run Code Online (Sandbox Code Playgroud)
要删除系统托盘图标,请执行以下操作:
Shell_NotifyIcon(NIM_DELETE, &m_tnd);
Run Code Online (Sandbox Code Playgroud)
我想知道的是:如果你的应用程序崩溃怎么办?将鼠标悬停在系统托盘中,直到鼠标悬停为止.有没有办法保证图标将被删除,即使应用程序崩溃?我不希望出于各种原因使用结构化异常处理.
我想要处理的另一个案例是当进程被终止时,但不一定会崩溃.
我注意到我的应用程序将图标发送到尺寸为16x16像素的Windows托盘 - 而我的Vista PC我有一个双倍宽的任务栏,似乎以18x18显示图标.我的应用程序图标上的调整大小工件看起来很糟糕.如何询问Windows图标应该是多大?
编辑:
我正在动态生成图标,带有像素字体文本覆盖.动态生成一堆图标大小似乎很浪费,所以避免构建一个具有所有"可能"大小的图标会很好(不是我甚至不确定那些是什么).
GetSystemMetrics(SM_CXSMICON)返回16 - 不正确的值.
GetThemeBackgroundContentRect也没有帮助.
我的应用程序中有一个托盘图标.当我在后台加载某些东西时,我正在显示气球提示20秒.但是,如果背景负荷提前完成,比如10秒钟,我想隐藏气球提示.目前隐藏气球提示的唯一方法是单击气球提示中的关闭图标.
Public Tray As NotifyIcon
Tray = New NotifyIcon
Tray.BalloonTipIcon = ToolTipIcon.Info
Tray.BalloonTipText = "Loading"
Tray.BalloonTipTitle = "Please Wait"
Tray.ShowBalloonTip(20 * 1000)
Run Code Online (Sandbox Code Playgroud)
是否可以在达到指定时间之前以编程方式隐藏气球提示?
我希望我的程序在Windows中靠近时钟的TaskBar状态区中显示一个图标,并找到了一种方法.
问题是,我希望我的程序在状态区域保持打开状态,如果在窗口上按下"X",但不在系统托盘中,但我不知道如何这样做并且在Google上搜索没有'帮助(我可能没有找到正确的术语).
编辑:我认为我使用了错误的条款.我知道如何在通知区域中显示我的程序图标,我想要的是在最小化窗口时将其隐藏在通常显示的区域中.
我想为网站开发一个客户端应用程序.
我希望应用程序在最小化时驻留在系统托盘中.
我不知道如何完成这项任务.
他们是这种类型的操作的任何例子.
简短版本:我认为我需要帮助正确使用PowerShell中由于Windows消息而调用的事件来摆脱气球工具提示的图标.
长版:
我有一个长期运行的PowerShell命令(一个版本),我希望通过系统托盘/通知区域中的气球工具提示完成通知.
我能够创建一个Write-BalloonTip脚本(下面),它完全符合我的要求.唯一的问题是,托盘图标有时会发生,托盘图标不会消失,直到我将鼠标悬停在托盘图标上.通过重新使用相同的全局变量来表示NotifyIcon,我可以重新使用此脚本并保留它,以便只保留一个系统托盘图标(直到我将鼠标悬停在它上面).这仍然感觉像是一个黑客.我尝试添加一个事件处理程序,以便在BalloonTipClosed事件上通知它,然后在那里处理它.在事件处理程序中,我尝试了我看到的所有三种技术,以摆脱挥之不去的图标无济于事.
令人讨厌的部分是,一个简单的东西.Dispose似乎可以用于后续的脚本调用,这使我认为事件脚本块根本没有被调用.
我已经验证了在一个单独的WinForms应用程序中提示消失后BalloonTipClosed被调用.
我错过了什么基本的东西?任何帮助深表感谢.谢谢!
这是"Write-BalloonTip.ps1"的代码:
param
(
$text,
$title = "",
$icon = "Info",
$timeout=15000
)
[System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") | out-null
[System.Reflection.Assembly]::LoadWithPartialName("System.Drawing") | out-null
if ($global:writeBalloonTipIcon)
{
# This gets rid of the previous one
$global:writeBalloonTipIcon.Dispose()
}
$global:writeBalloonTipIcon = new-object System.Windows.Forms.NotifyIcon
$global:writeBalloonTipIcon.Icon = [System.Drawing.SystemIcons]::Information
# FIXME: This *should* cleanup the icon after it's done, but it doesn't seem to work
$global:writeBalloonTipIcon.add_BalloonTipClosed(
{
# this *should* work, but it's not. …Run Code Online (Sandbox Code Playgroud) 我正在讨论是否隐藏或不隐藏Windows Phone 7应用程序中的系统托盘.我没有找到关于这个问题的任何一般性建议 - 官方Windows Phone设计指南根本没有解决这个问题 - 除了Jeff Wilcox的博客文章,他建议他个人喜欢在应用程序中看到系统托盘.我想从其他Windows Phone开发人员那里获得有关此问题的一般建议.
显示系统托盘的一些原因是
隐藏它的原因是
我很欣赏这方面的所有建议.
我的代码片段如下:
SystemTray systray = SystemTray.getSystemTray();
try{
TrayIcon trayicon = new TrayIcon(new ImageIO.read(new File("icon.png")),"I am a description");
}
catch(IOException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
一切运行顺利,但系统托盘中显示的图像被切断.除非我缩小到16x16(从40x40),否则只显示左上角部分.这icon.png是一个正确加载的图像文件(非空).我以为系统托盘图标文件可能是40px?
有人可以向我解释一下这里有什么问题吗?
我想知道如何在WXGA分辨率下删除WindowsPhone8-App中系统托盘的底部边框?
以下是WXGA模拟器上发生的情况:

例如在720p仿真器中没有出现小灰线