我有一个程序app1,它使用:
启动另一个应用程序app2Server := CreateOleObject('app2.Server');
在ocassion上,它通过调用过程app2Server.SendData将数据和控制传递给app2,然后调用app2Server.TopMost并设置变量dataSent = True
当用户返回app1时,Form1.OnPaint事件会检查dataSent是否为True,然后从app2中检索一些数据。
基本上在Windows7上,第2步不起作用。在我看来,有两件事在Window7中不起作用 - app2 OleObject没有被设置为TopMost而且app1 Form没有被绘制(在初始创建之后)。
这是Win7的已知问题,如果是这样,任何人都可以建议
非常感谢
编辑:要更改app1和app2的Z顺序,我使用以下内容:
SetWindowPos(Form1.Handle,HWND_BOTTOM,0,0,0,0,swp_NOMOVE or swp_NOSIZE);
app2Server.TopMost;
似乎两者都没有工作。
ps我继承了这段代码我只需要让它工作:)
答案 0 :(得分:0)
我的解决方案就是这个
我在app1中使用了一个计时器来持续检查应用2中的付款,因为OnPaint似乎在Win7中不起作用。
Form1.TopMost实际上在Win7上工作,但仅在应用程序最小化时才有效。欢迎任何建议。
感谢