标签: taskbar

如何向Windows询问系统托盘图标的大小?

我注意到我的应用程序将图标发送到尺寸为16x16像素的Windows托盘 - 而我的Vista PC我有一个双倍宽的任务栏,似乎以18x18显示图标.我的应用程序图标上的调整大小工件看起来很糟糕.如何询问Windows图标应该是多大?

编辑:

我正在动态生成图标,带有像素字体文本覆盖.动态生成一堆图标大小似乎很浪费,所以避免构建一个具有所有"可能"大小的图标会很好(不是我甚至不确定那些是什么).

GetSystemMetrics(SM_CXSMICON)返回16 - 不正确的值.

GetThemeBackgroundContentRect也没有帮助.

windows winapi taskbar system-tray

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

确定窗口是否具有任务栏按钮

我正在寻找一种方法来检查给定窗口是否有任务栏按钮.也就是说,给定窗口的句柄,如果窗口在任务栏中,我需要为TRUE,否则为FALSE.

相反,我想知道是否有办法获得属于给定任务栏按钮的窗口的句柄,我想这需要一种方法来枚举任务栏按钮.

(第一个前者是我需要的部分,后者是可选的.)

非常感谢.

windows taskbar

9
推荐指数
2
解决办法
2122
查看次数

使用Delphi可以在W7中禁用任务切换键盘快捷键吗?

我的应用程序已经有一种模式多年,客户可以"禁用对操作系统的访问".显然这个功能与谷物相悖(至少就Windows而言),但有些安装我的应用程序是唯一一个应该可见的机器操作员程序,在这种情况下这样的功能是有用的.

我使用的技术是从几个"层"构建的:

  1. 隐藏任务栏和按钮.
  2. 禁用任务切换.
  3. 禁用我的主表单系统图标.

要禁用我使用的任务栏:

// Get a handle to the taskbar and its button..
Taskbar := FindWindow('Shell_TrayWnd', Nil);
StartButton := FindWindow('Button', Nil);

// Hide the taskbar and button
if Taskbar <> 0 then
  ShowWindow( Taskbar, SW_HIDE );
if StartButton <> 0 then
  ShowWindow( StartButton, SW_HIDE );

// Set the work area to the whole screen
R := Rect( 0,0,Screen.Width,Screen.Height );
SystemParametersInfo(
  SPI_SETWORKAREA,
  0,
  @R,
  0 );
Run Code Online (Sandbox Code Playgroud)

这很好用,但在W7上似乎还算不错.研究如何在几年前禁用任务切换发现了唯一一种"假装"你的应用程序是屏幕保护程序的技术(除了将应用程序重命名为'explorer.exe'并启动它等等)之外的其他方法:

procedure EnableTaskSwitching( AState : boolean );
// Enables / disables task …
Run Code Online (Sandbox Code Playgroud)

windows delphi taskbar task-switching

9
推荐指数
2
解决办法
3927
查看次数

任务栏上的新实例中键单击/ shift +单击

在Windows 7中,某些程序允许用户通过中键单击/切换+单击任务栏项来启动多个实例(例如:Paint,Notepad,Visual Studio ......)

但是,我创建的应用程序都没有表现出这种行为.中间单击功能将使按钮发光,但无法打开另一个实例,除非我首先将程序固定到任务栏(这不是Paint/Notepad/etc仍然无法打开新实例)

允许WPF应用程序正确创建上述程序之类的新实例的秘诀是什么?

我试过搜索,但我只提出了跳转列表/任务或单实例程序结果.

wpf taskbar instance windows-7

9
推荐指数
1
解决办法
999
查看次数

使用Launch4j将Java应用程序固定到Windows 7任务栏

我目前正在尝试将Java应用程序固定到Windows 7任务栏.该应用程序是使用Launch4j启动的.程序图标显示正确,但右键单击任务栏上的图标仅显示带有"关闭窗口"条目的上下文菜单.没有用于将应用程序固定到任务栏的菜单项.将EXE文件拖到任务栏也无法正常工作.在任务栏中单击此新启动器时,第二个图标会在任务栏中生成.

我按照这两个问题的解决方案的指示来解决问题,但它没有帮助:

来自第二个问题/解决方案的JNA内容编译并且不会抛出任何异常.我可以在设置后阅读应用程序ID.但我仍然无法将应用程序固定到任务栏.

我在Github上创建了一个小测试应用程序来演示这个问题:

https://github.com/kayahr/launch4jtest

该应用程序使用Maven作为构建系统.只需运行mvn package,您就会在目标目录中找到一个ZIP文件,其中包含设置此应用程序ID所需的EXE文件和jna.jar.将此ZIP解压缩到某个目录,双击EXE并尝试将应用程序固定到任务栏,您将看到问题.

那么这个应用程序有什么问题?

java windows taskbar launch4j windows-7

9
推荐指数
1
解决办法
3087
查看次数

Windows 7任务栏图标分组与多个类似的窗口

当我打开许多类似的窗口时,例如,多个浏览器窗口,它们都被分组到任务栏上的相同图标中.当我将鼠标悬停在这上面时,我会得到一个窗口的缩略图,以及一段截断的文本,它可以帮助我找出那个窗口是什么.

但是我也想在资源管理器窗口中显示完整路径,因此截断的文本通常是C:\ CommonPathToEveryWind ...

我注意到如果我有超过14个浏览器窗口打开,那么Windows放弃尝试显示这些无用的缩略图,而是给我一个格式良好的路径列表.

我的问题是如何自定义此行为,为缩略图不合适的应用程序子集(缩略图,"Everything")禁用缩略图.或者将每个分组任务栏图标的最大缩略图数减少到2; 或者只是一起禁用缩略图,(不会丢失整个Windows主题)

编辑:只是为了清楚我目前得到的,以及我真正想要的东西.我仍然希望保持分组行为,以便同一程序的多个实例,例如Explorer,只在任务栏上占用一个插槽.我想要的是改变我将鼠标悬停在分组图标上时显示的内容:

我实际看到的 - 无用的缩略图: -

截图

我想要的任何数量的实例样式: -

截图

grouping taskbar jump-list windows-7

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

在多窗口模式下,Visual Studio 2015的任务栏上会显示两个或多个图标

我有两个显示器并在多窗口模式下使用VS 2015(即不同屏幕上的单独选项卡).VS 2013总是在任务栏上只显示一个图标,非常舒服,但VS 2015每个单独的窗口显示一个图标.这让我疯了!

我试图找到一个设置来关闭此行为,但没有结果.谷歌搜索也没有多大帮助.

顺便说一句,我使用的是Win Server 2008 R2.

有人找到了解决这个问题的方法吗?

taskbar multi-window visual-studio-2015

9
推荐指数
1
解决办法
891
查看次数

最大化的屏幕忽略任务栏

我有一个表格我设置为最大化,但由于某种原因,它忽略了任务栏并最大化到整个屏幕.那是典型的吗?有解决方法吗?

我正在运行带有双显示器设置的Windows XP(第一个/主窗口中的任务栏).

.net taskbar winforms

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

如何将Windows任务栏从"显示"切换/切换到"自动隐藏"(反之亦然)?

基本上我想制作简单的切换程序(将映射到某些键盘快捷键),如果处于正常模式,则将任务栏设置为自动隐藏模式(相反,如果处于自动隐藏状态,则设置为正常显示模式).

你知道如何在C#中实现它吗?(或者Win32 C++,但实际上做的任何事情都可以.)

谢谢.希望我已经清楚了.

-

我真的不想要任何与任务栏重叠的全屏应用程序,只有切换显示模式和退出的无窗口程序.我定期从自动隐藏切换到普通视图,并希望简化它.(使用Win7.)

-

编辑.例如

#include <windows.h>

int CALLBACK WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
    SetWindowPos(FindWindow(L"Shell_traywnd", NULL ), 0, 0, 0, 0, 0, 0x40);
}
Run Code Online (Sandbox Code Playgroud)

不会做的伎俩,它只显示任务栏,它已经可见=真,但没有将其切换为自动隐藏.(同样适用于0x80.)

c# windows animation taskbar

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

应用程序如何在Windows任务栏上显示对象?

Windows任务栏上的显示对象有几个应用程序,但没有实现IDeskBand接口.例如,联想电池表和笔记本电池电池信息.

例如:

笔记本电池信息http://home.arcor.de/batteryinfogateway/img/taskbar_new.png

在上图中,任务栏上的对象由应用程序放在那里,并在应用程序关闭时消失.这与IDeskBand不同,其中COM对象由explorer.exe直接加载.

可以在Windows中使用什么API /方法来实现这一目标?

windows winapi taskbar

8
推荐指数
1
解决办法
256
查看次数