我们有一个在自定义Windows CE 5设备(供应商不再维护)上运行的自助服务终端应用程序。
我们在设备上的Internet Explorer中运行一个Web应用程序。该应用程序使用自定义ActiveX控件进行某些操作(例如在USB连接的打印机上打印PCL字符串)。
我们现在不得不使用其他打印机型号。新的打印机可以工作,但是会弹出一个令人讨厌的弹出窗口,每次连接或打开打印机电源时,屏幕中间都会出现一个未知的USB设备。您无需在弹出窗口中输入任何内容,打印机即可工作。
当打印机和设备一起启动时,这没问题,因为IE稍后启动并覆盖弹出窗口。
但是稍后再启动打印机时,这是一个问题。客户对弹出窗口感到困惑(而不是仅仅触摸UI的另一部分以将其置于后台)。
我的问题(Unknown USB device on Windows CE)关于如何在不成功的情况下使弹出窗口静音(不,我不想编写Windows CE打印机驱动程序只是为了删除消息框。
所以我想我们可能每隔几秒钟就将IE置于前台,并编写了一个小的ActiveX函数,该函数从Web应用程序中的计时器调用。
STDMETHODIMP CEFTLink::makeForegroundWindow(void)
{
HWND windowHandle;
windowHandle=GetActiveWindow();
SetForegroundWindow(windowHandle);
return S_OK;
}
来电者:
function StayForeground() {
window.setTimeout(StayForeground, 20000);
eft.makeForegroundWindow();
};
但是此代码无法达到目标。 为什么?