Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 检查其他进程的文本框是否为活动控件_C#_Vb.net_Winforms_Pinvoke - Fatal编程技术网

C# 检查其他进程的文本框是否为活动控件

C# 检查其他进程的文本框是否为活动控件,c#,vb.net,winforms,pinvoke,C#,Vb.net,Winforms,Pinvoke,我想通过文本框句柄检查其他进程文本框控件是否是其他进程主窗口中的活动控件 代码应该如下所示: 将主窗口句柄设置为IntPtr=Process.getProcesssByName(“proccessName”)(0)。主窗口句柄 如果主窗口句柄IntPtr.Zero,则 Dim TextBoxHandle作为IntPtr=FindWindowEx(主窗口句柄,0,“编辑”,“文本框内部文本”) 如果TextBoxHandle IntPtr.Zero,则 将ActivateHandleInTheMi

我想通过文本框句柄检查其他进程文本框控件是否是其他进程主窗口中的活动控件

代码应该如下所示:

将主窗口句柄设置为IntPtr=Process.getProcesssByName(“proccessName”)(0)。主窗口句柄
如果主窗口句柄IntPtr.Zero,则
Dim TextBoxHandle作为IntPtr=FindWindowEx(主窗口句柄,0,“编辑”,“文本框内部文本”)
如果TextBoxHandle IntPtr.Zero,则
将ActivateHandleInTheMinWindow调暗为IntPtr=GetActiveHandleFrom(主窗口句柄)‘ActivateHandleInTheMinWindow=主窗口的聚焦控制句柄’。
如果activeHandleIntheMainWindow=TextBoxHandle,则
MsgBox(“文本框在焦点上”)
其他的
MsgBox(“文本框未处于焦点。”)
如果结束
如果结束
如果结束
我该怎么做(c#/vb.net)?

我找到了答案:
使用
GetForegroundWindow
函数获取用户当前使用的窗口。
使用
GetWindowThreadProcessId
函数获取此窗口和您的窗口的ID。
使用
AttachThreadInput
函数临时将线程的消息队列与拥有另一个窗口的线程相关联。
使用
GetFocus
功能获取hWnd! 再次使用
AttachThreadInput
函数断开与其他线程的连接。
资料来源:

请将您的发现作为答案发布,我想几天后您就可以接受了。