我想知道是否有人知道如何关闭用户在 Google Chrome 中打开的特定网站?
截至目前,我的 Google Chrome 打开了用户输入的网站。该网站被分配给 $question 变量,您将在下面看到:
$question2 = Read-Host "Would you like to copy $question back to the server?"
if( ($question2 -eq 'yes') -or ($question2 -eq 'YES') -or ($question2 -eq 'Yes') -or ($question2 -eq 'Ye') -or ($question2 -eq 'Y') -or ($question2 -eq 'y') ) {
start chrome.exe http://$question.website.org/
}
我想知道 Chrome 打开该网站后是否有办法也可以将其关闭。
我知道
停止进程-processname chrome
但这将把 Chrome 全部关闭。我正在寻找一种方法来仅关闭我为他们打开的网站。
非常感谢任何建议。
提前致谢!
我相信非常困难。看来,当 Chrome 启动时,它会生成各种其他进程,最终成为窗口/选项卡,而您实际启动的进程只会促进此进程,然后退出。我认为可以强制它在新窗口中打开并跟踪该程序的 PID,但是返回的 PID 很快就消失了。
我还认为可以查看 ProcessStartInfo 信息,看看是否可以传递任何可以稍后查询的参数,但是当您启动进程时,它会执行所需的操作,然后消失并且参数不会传递到生成的进程。
就其价值而言,这就是我所取得的进展:
[PS] 118# $a = new-object system.diagnostics.process
[PS] 119# $a.startinfo.filename = "C:\program files (x86)\Google\chrome\application\chrome.exe"
[PS] 120# $a.startinfo.arguments = "--new-window http://google.com"
[PS] 121# $a.startinfo.useshellexecute = $false
[PS] 122# $a.startinfo.verb = "test"
[PS] 123# $a.start()
True
[PS] 124# $a
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
0 0 0 0 0.08 7332
[PS] 125# get-process | ? {$_.id -eq 7332}
[PS] 126# get-process | ? {$_.name -eq 'chrome'} | % {$_.startinfo.arguments}
[PS] 127#
虽然这确实创建了一个新窗口http://google.com http://google.com,如您所见,返回的进程 7332 不存在,并且StartInfo.Arguments
任何其他镀铬工艺均为空白
除了无法实现此功能之外,您可以通过使用简单的正则表达式来极大地简化是/否的回答逻辑:
($question2 -imatch "^y(es)?$")
($question2 -imatch "^no?$")
证明:
[PS] 404> $("y" -imatch "y(es)?$")
True
[PS] 405> $("YES" -imatch "y(es)?$")
True
[PS] 406> $("N" -imatch "^no?$")
True
[PS] 407> $("nn" -imatch "^no?$")
False
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)