2013-08-03 83 views
1

基本上我想要做的是从另一个应用程序中查看应用程序中进度条的值,如果可能的话。从另一个应用程序获取信息

我已经能够找到我的应用程序的进度条,并获得WINDOWINFO:

[DllImport("user32.dll")] 
private static extern bool GetWindowInfo(IntPtr hwnd, ref WINDOWINFO pwi); 

但我不知道如何或者其可能获得的价值。

WINDOWINFO被解释为herehere

任何帮助或其他想法,将不胜感激。

+3

使用'RangeValuePattern'。 –

回答

2

GetWindowInfo不会告诉你任何具体的进度条 - 只有标准的窗口标志。查看Progress Bar Messages的文档,了解如何与进度条进行交互。

您需要使用PBM_GETPOS消息得到下面的进度条的当前位置:

const uint PBM_GETPOS = 0x0408; 
[DllImport("user32.dll")] 
private static extern IntPtr GetWindowInfo(IntPtr hwnd, uint msg, IntPtr wParam, IntPtr lParam); 

uint pos = (uint)SendMessage(hwnd, PBM_GETPOS, IntPtr.Zero, IntPtr.Zero); 
+1

您忘记了将PGM_GETPOS消息添加到您的SendMessage调用 –

+0

您可能也想使用'PBM_GETRANGE' –

+0

他当然会。这就是它*难*的地方,lParam指针需要在其他进程中有效。这个答案不会帮助他。雷蒙德的简短评论确实如此。 –

相关问题