设置外部应用程序焦点在VB.NET中,您可以使用焦点将焦点设置到外部应用程序AppActivate("WindowsName")或AppActivate(processIDAsInteger)现在这个工作正常,例如:DimintNotePadAsInteger=Shell("C:WINNTNotepad.exe",AppWinStyle.MinimizedNoFocus)AppActivate(intNotePad)但是当我这样做时:对于每个进程作为进程列表中的进程IfInStr(theprocess.ProcessName,"DWG")ThenstrProcessList+=String.Format("Process:{0}ID:{1}",theprocess.ProcessName,theprocess.Id)+vbCrLfAppActivate(theprocess.ID)EndIfNext那么它找不到窗口,即使它已打开,即使它找到了使用窗口标题的窗口。但我需要按进程ID排序。我怎样才能做到这一点?我需要它专注于WindowsInstaller安装项目中的第3方安装程序。我不知道你为什么没有得到正确的结果。总的来说,在将焦点设置到其他应用程序时,我对AppActivate的运气从来没有好过(至少取得了不同程度的成功)。试试这个:将此类添加到同一模块/对象/您的代码中:PublicNotInheritableClassWin32Helper_PublicSharedFunction_SetForegroundWindow(ByValhandleAsIntPtr)AsBoolean'LeavefunctionemptyEndFunction_PublicSharedFunctionShowWindow(ByValhandleAsIntPtr,_ByValnCmdAsInt32)AsBoolean'LeavefunctionemptyEndFunctionEndClass然后在你的代码中,而不是AppActivate,执行以下操作:DimappHandleAsintPtrappHandle=theprocess.MainWindowHandle'进程自然是你的进程对象DimWin32Help作为新的Win32HelperWin32Helper.SetForegroundWindow(appHandle)尝试这些Win32函数:隐藏=0ShowNormal=1ShowMinimized=2ShowMaximized=3Maximize=3ShowNormalNoActivate=4Show=5Minimize=6ShowMinNoActivate=7ShowNoActivate=8Restore=9ShowDefault=10ForceMinimized=11EndEnum使用Process.MainWindowHandle获取句柄这适用于大多数应用程序,但不是全部。以上就是C#学习教程:设置外部应用分享的焦点的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处:
