编辑:我改写了我的问题,请忽略以下所有评论(截至 5 月 7 日)。
首先,我将尝试解释问题:
我的过程正在尝试使用 ITrayDeskBand::ShowDeskBand 以编程方式显示 Deskband。
它在任何时候都可以很好地工作,除非操作系统正在加载其所有进程(在重置或注销之后)。
Windows 启动并开始加载各种应用程序\服务后,鼠标光标设置为等待几秒钟(取决于正在运行的应用程序数量\一切的速度)。
如果将鼠标光标设置为等待并且在此期间进程正在运行,则调用将失败。
但是,如果我的进程等待几秒钟(在此之后光标变为常规)然后调用调用,一切正常。
此行为在 Windows 7 和 Windows Vista 上都重现。
所以基本上我要问的是:
1)只是为了基础知识,当光标设置为忙时操作系统会做什么?
2)更重要的问题:当这个过程结束时,我如何以编程方式检测?
起初,我认为资源管理器没有正确加载,所以我使用了 WaitForInputIdle但事实并非如此。
后来我认为繁忙的光标表示 CPU 很忙,所以我创建了我的进程,IDLE_PRIORITY_CLASS
但在光标繁忙时收到了空闲时间。