如何解决如何通过Batch-Vbscript混合脚本获取新生成的进程的Window标题?
我正在尝试使组策略编辑过程尽可能自动化。
我有以下脚本来生成gpedit.msc进程,但是一旦打开它的窗口就会失去焦点:
FINDSTR /E "'VbsCode" %~f0 > %temp%\~temp.vbs
CSCRIPT //NOLOGO %temp%\~temp.vbs
Sub GPEditOptions 'VbsCode
On Error Resume Next 'VbsCode
Set WshShell = WScript.CreateObject("WScript.shell") 'VbsCode
WshShell.Visible = False 'VbsCode
WshShell.Run "gpedit.msc",0 'VbsCode
:: WshShell.AppActivate "Local Group Policy Editor" 'VbsCode
End Sub 'VbsCode
GPEditOptions 'VbsCode
:: WScript.Quit 0 'VbsCode
如何AppActivate
由新产生的gpedit.msc进程打开的窗口?具体来说,如何知道已打开的窗口的名称/标题是什么? “本地组...编辑器”无效。
解决方法
我想我最终想出了解决该问题的方法。进程有不同类型。
在这种情况下,我首先需要选择 <Link
to={
disableLink
? '#' : '/project/details/' + project.projectId
}
className={disableLink ? "disabled-link" : ''}
onClick={disableLink ? preventDefault : ''}
>
<Card className={borderColor}>
<CardContent>
<Box>
<Box display="flex" pb={1}>
<Box mr={0.5} flexGrow={1}>
<Tooltip title={project.projectName}>
<Typography
variant="h6"
className="header-three"
>
{Name}
</Typography>
</Tooltip>
</Box>
<Box mr={0.5}>
<Tooltip title={Test}>
<Chip
size="small"
label=businessPractice
/>
</Tooltip>
</Box>
</CardContent>
</Card>
</Link>
窗口,因为它是产生实际“本地组策略编辑器”子进程的父进程。
因此,此代码通过事先发送大量键来完成选择第一个以字母“ W”开头的Windows组件的工作,是的,您确实需要管理员提升权限才能正确选择gpedit.msc窗口中的选项:>
Microsoft Management Console
希望这可以帮助面临类似问题的任何人。
,无需发送一堆密钥并获得组策略编辑器窗口标题。
实际上,每个组策略设置都具有等效的注册表项。并且可以通过VBScript轻松地编辑注册表。要找到组策略设置的等效注册表项,请执行以下操作:
- 从SysInternals下载名为Process Monitor的工具。
- 运行它,然后单击“过滤器”>“过滤器”。
- 现在创建两个过滤器,例如:
"Process name" - "is" - "mmc.exe" - then "include"
和"Operation" - "is" - "RegSetValue" - then "Include"
。 - 现在编辑组策略设置,注册表项将出现在“进程”监视器中。
以及在VBScript中编辑注册表的功能:
Function RegSetValue(regkey,value)
Dim WshShell
Set WshShell = CreateObject("Wscript.Shell")
WshShell.RegWrite(regkey,value)
End Function
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。