[PowerShell][Proxy]用PowerShell設定Proxy – 模擬鍵盤

參考網址:
福別問的部落格 一鍵開啟proxy代理伺服器、顯示隱藏檔案副檔名、新增刪除輸入法

網路上大部分的教學是修改登錄檔, 但是實際上是行不通的, 修改登錄檔只能"表面上"把開啟代理伺服器的選項打勾, 並沒有真正地開啟代理伺服器。 這就是為什麼你可能按照網路上的方法寫了一個修改登錄檔的批次檔, 執行之後仍然不能夠從校外連線, 但是進到設定代理伺服器的頁面時, 卻又可以看到其代理伺服器已經被打勾啟動, 這時候又突然可以校外連線了。 (當你"檢視"啟動代理伺服器到底有沒有打勾時, 這時候windows後台又會做一些動作, 來"真正地"啟動代理伺服器。)

本腳本的原理就只是很簡單地模擬鍵盤的動作。
 

# 註解
# 開啟[網際網路 - 內容]
control inetcpl.cpl

# 如果是要開啟[資料夾選項],顯示隱藏檔案的副檔名,可以用RunDll32.exe shell32.dll,Options_RunDLL 7
# 如果是要開啟[地區及語言],新增或刪除輸入法,可以用control intl.cpl
# 更多進入控制台下的項目的指令,參考https://support.microsoft.com/en-us/help/192806/how-to-run-control-panel-tools-by-typing-a-command

# 讓系統取得title叫做[開啟網際網路 - 內容]的視窗
# 並讓該視窗變成當前視窗
$wshell = New-Object -ComObject wscript.shell;
$wshell.AppActivate('開啟網際網路 - 內容')

#停頓1秒,避免delay造成下一步無法順利進行
Sleep 1

# 按下鍵盤上的各鍵
# ' '表示按下space鍵, +表示搭配Shift, %表示搭配Alt
# 各鍵的對應表參考https://msdn.microsoft.com/en-us/library/office/aa202943(v=office.10).aspx
# 注意,每個電腦的按鍵組合可能不相同,
# 請自行做相應的修改

$wshell.SendKeys('+{TAB}')

For ($i=1; $i -le 4; $i++)
{$wshell.SendKeys('{RIGHT}')}

$wshell.SendKeys('%l')

$wshell.SendKeys('{TAB}')
$wshell.SendKeys('{TAB}')

$wshell.SendKeys(' ')

$wshell.SendKeys('{ENTER}')
$wshell.SendKeys('{ENTER}')

 

本篇發表於 Windows系統。將永久鏈結加入書籤。