iT邦幫忙

0

想把 powershell 的 ctrl+v 的貼上功能停用,卻遇到權限問題(已解決)

2022-09-23 13:16:29830 瀏覽
  • 分享至 

  • xImage

作業系統為 Win10,OS組建為 19044.2075

看了官方文件,說是要新增 powershell.config.json去自訂,新增此檔案的位置分兩種,一個是設定給所有使用者的$PSHOME,一個是個別使用者的路徑,使用Split-Path $PROFILE.CurrentUserCurrentHost去尋找

我在 powershell 底下輸入$PSHOME,出來的路徑是C:\Program Files\WindowsApps\Microsoft.PowerShell_7.2.6.0_x64__8wekyb3d8bbwe,這資料夾底下已經有個powershell.config.json,但要把編輯過的檔案儲存時卻一直沒辦法成功,會跳出拒絕存取路徑的錯誤訊息(VS 2022 preview),或是"您未擁有開啟此檔案的權限,請向檔案的擁有者或系統管理員詢問並取得權限"(記事本),即使我使用系統管理員的身分執行 VS 2022 preview 或記事本,要存檔時依舊會跳出同樣的錯誤訊息。

改用另一個路徑

使用Split-Path $PROFILE.CurrentUserCurrentHost查出來的路徑是C:\Users\username\OneDrive\文件\PowerShell,在這邊雖然可以編輯檔案,但沒起到停用 ctrl+v 的效果,檔案的內容如下:

{
  "Microsoft.PowerShell:ExecutionPolicy": "RemoteSigned",
  "WindowsPowerShellCompatibilityModuleDenyList": [
    "PSScheduledJob",
    "BestPractices",
    "UpdateServices"
  ],
  "actions": [
    {
      "command": "paste",
      "keys": "shift+insert"
    }
  ]
}

也嘗試了Remove-PSReadLineKeyHandler -Chord Ctrl+v的方法,一樣沒效果,還是可以繼續貼上

有試著在C:\Users\username\OneDrive\文件\PowerShell底下新增Microsoft.PowerShell_profile.ps1檔案,然後編輯文件把Remove-PSReadLineKeyHandler -Chord Ctrl+v加進去,把 Windows Terminal 關掉重開之後,Get-PSReadLineKeyHandler -Chord Ctrl+v不再顯示ctrl+v對應的貼上函式資訊了,但依舊能用ctrl+v複製貼上

意外發現原來 powershell 還能改用 vimode,Set-PSReadLineOption -EditMode vi,也就是下指令時能按ESC變成 normal 模式,之後就能在一串文字之間用 vi 指令移動

player iT邦大師 1 級 ‧ 2022-09-23 14:22:37 檢舉
有一種方法。寫一個dll檔去Hook視窗訊息,把你要過濾的按鍵組合擋掉。
這原本最常見的用途,是拿來寫外掛程式的,用特定的按鍵組合,把外掛的視窗叫出來。
如果你要寫的話,技術文件請自己看。
https://learn.microsoft.com/en-us/windows/win32/winmsg/hooks
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
nwm310
iT邦新手 4 級 ‧ 2022-09-24 21:18:45
最佳解答

停用ctrl+v

PowerShell

Remove-PSReadLineKeyHandler -Chord Ctrl+v

WindowsTerminal裡面的PowerShell

  • Remove-PSReadLineKeyHandler -Chord Ctrl+v
  • 修改settings.json
    1.進入設定 (Ctrl+,)
    2.左下角 開啟JSON檔案。(C:\Users\user\AppData\Local\Microsoft\Windows Terminal\settings.json會被打開。如果沒有這個檔案,它會自動生成)
    3.刪除以下文字,並存檔
            {
              "command": "paste",
              "keys": "ctrl+v"
          },
    

參考資料:
How to Use Windows Terminal Keyboard Shortcuts - All Things How

iT邦新手 4 級 ‧ 2022-09-25 08:59:22 檢舉

我在C:\Users\user\AppData\Local\Microsoft\路徑底下沒找到 Windows Terminal 的資料夾,不過用開啟 json 檔的方式打開了,實際路徑是C:\Users\user\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json,感謝您的幫忙,已成功改掉ctrl+v的貼上效果

我要發表回答

立即登入回答