如何在Windows 8.1 Update 2操作系统中使用PowerShell环境中的Wi
发布时间:2020-12-14 02:05:38 所属栏目:Windows 来源:网络整理
导读:我不记得在旧的 Windows操作系统中找到一个窗口有任何问题,但是,我使用PowerShell v4.0在Windows 8.1 Update 2操作系统中没有成功. 这是我正在使用的PowerShell v4.0代码(非常简单): $sig=@'[DllImport("user32.dll")]public static extern IntPtr FindWind
我不记得在旧的
Windows操作系统中找到一个窗口有任何问题,但是,我使用PowerShell v4.0在Windows 8.1 Update 2操作系统中没有成功.
这是我正在使用的PowerShell v4.0代码(非常简单): $sig=@' [DllImport("user32.dll")] public static extern IntPtr FindWindow(String sClassName,String sAppName); '@ $fw = Add-Type -Namespace Win32 -Name Funcs -MemberDefinition $sig -PassThru $wname='Form1' # any existing window name $fw::FindWindow($null -as [String],$wname) # returns 0,always! 最后一个命令总是返回0. 将DllImport属性更改为 [DllImport("user32.dll",CharSet = CharSet.Unicode)] 什么都不改变; 0以相同的方式返回. 有趣的是注意到C#中的等效代码,返回正确的HWND值. 有谁知道上面的PowerShell v4.0代码有什么问题(以及如何修复)? 解决方法
第一:不是答案,而是帮助其他人工作,如果你使用好的类,例如在这里我编写CalcFrame,它是calc.exe的主窗口的真正类,它的工作原理.
$fw::FindWindow("CalcFrame",$wname) # returns the right value for me if calc.exe is started. 第二:以下对我有用;对于Microsoft documentation,第一个参数应为null,但是根据PInvoke站点,您必须将IntPtr.Zero作为第一个参数传递. $sig = @" [DllImport("user32.dll",CharSet = CharSet.Unicode)] public static extern IntPtr FindWindow(IntPtr sClassName,String sAppName); [DllImport("kernel32.dll")] public static extern uint GetLastError(); "@ $fw = Add-Type -Namespace Win32 -Name Funcs -MemberDefinition $sig -PassThru $wname='Calculatrice' # any existing window name $fw::FindWindow([IntPtr]::Zero,$wname ) # returns the Window Handle $a = $fw::GetLastError() $a (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- laravel – 从Windows系统中清除Homestead和Vagrant最干净的
- 错误 – 在Windows 7中使用“Git Bash Here”时,“文件扩展
- 使用Windows XP和两个单独的Linux安装对双启动进行分区建议
- xaml – x中ElementName的替代:与DataTemplates绑定
- batch-file – 用于在windows命令中循环打印日期两次
- Windows – WinDbg中的“Break指令异常”是什么?
- Windows10系统下wsappx占用CPU资源过高?wsappx是什么?如何
- 在Microsoft SQL Server中比较日期的最佳方法是什么?
- Windows上的FTP文本编辑器
- Windows如何安装Android SDK