【发布时间】:2016-03-22 01:30:38
【问题描述】:
使用 Borland C++ Builder。
在我使用 ITaskbarList3 之前,我会按照 Windows 的要求进行操作:
https://msdn.microsoft.com/en-us/library/windows/desktop/dd391692.aspx
您的应用程序应调用 RegisterWindowMessage(L"TaskbarButtonCreated") 并在其 wndproc 中处理该消息。在调用任何 ITaskbarList3 方法之前,您的应用程序必须接收到该消息。
然而这对我来说似乎并不总是有效,我等待的消息永远不会到来,即使 RegisterWindowMessage() 成功了。
经过一番挖掘,我发现问题与我的应用程序使用“runas”重新启动时有关,在启动后立即根据用户设置,应用程序需要运行提升。
第二次(现在提升)运行,我等待的消息永远不会到来。
我假设这是因为 Windows 已经发送此消息并且它不再发送此消息,即使创建了一个新实例 ??
假设消息必须已经在第二次(提升的)运行中发送,并且仍然继续使用 ITaskbarList3 有多安全?
【问题讨论】:
标签: c++ winapi c++builder c++builder-2010