Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 在运行时更改应用程序任务栏图标(忽略快捷方式图标)_Delphi_Delphi 2010 - Fatal编程技术网

Delphi 在运行时更改应用程序任务栏图标(忽略快捷方式图标)

Delphi 在运行时更改应用程序任务栏图标(忽略快捷方式图标),delphi,delphi-2010,Delphi,Delphi 2010,我有一个程序,它有两种不同的模式,用户可以使用。根据模式,我想更改任务栏图标以反映其状态。我发现application.icon允许我在运行时设置所需的任何映像,但有一个问题。安装程序时,会为“开始”菜单创建一个快捷方式。快捷方式显示为禁用更改任务栏图标的功能。有什么方法可以忽略快捷方式图标吗?快捷方式与应用程序图标在任务栏上的显示方式无关,快捷方式只指向将图标作为资源嵌入的实际可执行文件 您的问题可能是Windows图标缓存。这是图标缓存未正确更新的常见情况。您应该重建/刷新图标缓存,然后在任

我有一个程序,它有两种不同的模式,用户可以使用。根据模式,我想更改任务栏图标以反映其状态。我发现application.icon允许我在运行时设置所需的任何映像,但有一个问题。安装程序时,会为“开始”菜单创建一个快捷方式。快捷方式显示为禁用更改任务栏图标的功能。有什么方法可以忽略快捷方式图标吗?

快捷方式与应用程序图标在任务栏上的显示方式无关,
快捷方式只指向将图标作为资源嵌入的实际可执行文件

您的问题可能是Windows图标缓存。这是图标缓存未正确更新的常见情况。您应该重建/刷新图标缓存,然后在任务栏上显示当前加载的应用程序图标,然后可以使用
application.icon.Load…
在模式之间交换图标


这也可能是由于您的任务栏选项。如果将任务栏设置为同时使用图标和标签,则图标不会更改。确保该选项设置为“不合并”或“仅在任务栏已满时合并”。

我手动重新生成了“现金”图标并重新启动了计算机,但该图标仍然无法通过编程方式更改。我跟着这些。我还尝试从delphi()中刷新它。我认为快捷方式有一定效果的原因是,从可执行文件打开任务栏图标时会改变,但从快捷方式打开时不会改变。@onetwo,您的任务栏选项设置如何?如果您的选项设置为“组合图标+标签”,则更改图标无效。如果你的任务栏已满,情况也是如此。啊,我的任务栏选项设置为始终合并和隐藏标签。改变它解决了我的问题。非常感谢。