使用 Borland C++ 生成器。
在我使用ITaskbarList3之前,我按照 Windows 的要求进行:
https://msdn.microsoft.com/en-us/library/windows/desktop/dd391692.aspx
您的应用程序应调用 RegisterWindowMessage(L"TaskbarButtonCreated") 并在其 wndproc 中处理该消息。在调用任何 ITaskbarList3 方法之前,您的应用程序必须接收到该消息。
然而,这对我来说似乎并不总是有效,我等待的消息永远不会出现,即使 RegisterWindowMessage() 成功。
经过一番挖掘,我发现问题与我的应用程序使用“runas”重新启动自身时有关,在启动后,当基于用户设置时,应用程序需要运行提升。
第二次(现在提升)运行,我等待的消息永远不会出现。
我认为这是因为 Windows 已经发送此消息并且它不再发送此消息,即使创建了一个新实例?
假设消息必须已经在第二次(提升)运行时发送,并且仍然继续使用 ITaskbarList3 有多安全?