日期:2014-05-17  浏览次数:20981 次

很奇怪的现象,请教高手

[DllImport("user32.dll")]
private static extern int GetWindowLong(IntPtr hWnd, int nIndex);
//调用如下
IntPtr prevWndFunc = new IntPtr(GetWindowLong(label1.Handle, GWL_WNDPROC));


这个api的函数,如果传入的句柄是本窗体form1里面的某个label或者textbox均可以正常返回非0的内容

但是,如果我获取其他程序的某个窗体的某个label时候,就失败,返回了0

------解决方案--------------------
跨进程,有权限问题

------解决方案--------------------
没办法,除非注入线程。

就算你能得到窗口过程也没用,根本就不在一个寻址控件内。每个进程的逻辑地址对于别的进程是无效的。