FindWindowByCaption函数查找尚不存在的窗口句柄

时间:2013-09-23 01:41:42

标签: c# gnuplot dllimport user32 findwindow

我正在编写一个C#应用程序,需要将gnuplot图移动到用户屏幕上的特定位置。为此,我使用DllImport将多个函数引入我的程序。特别是FindWindowByCaption和MoveWindow以及其他几个。到目前为止,这对我来说一直很好,但是图表突然停止了。

我发现生成的图表花费的时间更长,它会在创建窗口之前尝试执行MoveWindow函数,因此窗口实际上并未移动。我不知道为什么现在这是一个问题,因为它在早期版本的代码中很好。

由于某种原因,FindWindowByCaption函数在窗口实际存在之前找到窗口句柄。

我在一个循环中有find窗口函数,它应该尝试执行,直到找到正确的句柄。每个图表的名称都会更改。

IntPtr windowId = IntPtr.Zero;
        while (windowId == IntPtr.Zero)//keeps trying to get the id until it has it
            windowId = FindWindowByCaption(IntPtr.Zero, "p " + polyValue + " s " + (dataLocation + 1));

由于某种原因,它在实际创建之前找到gnuplot图形的句柄,然后它试图过早地运行MoveWindow函数,这样当实际生成图形时它不会到达正确的位置。

任何建议都会有所帮助

谢谢,

-Jake

0 个答案:

没有答案