Giter Club home page Giter Club logo

ctrl-ja's Introduction

ctrl-ja

左右の ctrl キーを単体で押したときに IME のオン/オフを切り替えるようにする PowerShell スクリプトです。左 ctrl キーで IME をオフ、右 ctrl キーで IME をオンにします。

Windows 10 で動作確認済みです。

制作過程などはこちら: 左右 Command キーで日本語入力をオフ/オンするやつの Windows 版を作った

実行方法

ctrl-ja.cs をダウンロードし PowerShell で以下のスクリプトを実行すると、ctrl キーで IME の切り替えができるようになります。

Add-Type -TypeDefinition (gc -Path ".\ctrl-ja.cs" -Raw) -ReferencedAssemblies System.Windows.Forms; [CtrlJa.Program]::Main();

停止するには ctrl+C を押します。停止後は ctrl キーの働きは元通りになります。

タスクスケジューラに登録する

このプログラムを常用する場合は、このプログラムがコンピューターの起動時に自動的に立ち上がるようにしておくと便利です。以下の手順に従ってこのプログラムを Windows のタスクスケジューラに登録します。

1. PowerShell を管理者権限で起動する

2. ctrl-ja.cs があるフォルダに cd する

cd .\ctrl-ja\

3. 以下のスクリプトを貼り付ける

$trigger = New-ScheduledTaskTrigger -AtLogon -User $env:USERNAME
$action = New-ScheduledTaskAction -Execute "powershell.exe" -Argument ('-NoLogo -WindowStyle Hidden -Command "& {Add-Type -TypeDefinition (gc ' + (Resolve-Path .\ctrl-ja.cs) + ' -Raw) -ReferencedAssemblies System.Windows.Forms; [CtrlJa.Program]::Main();}"') -Id "ctrl-ja"
$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -ExecutionTimeLimit (New-TimeSpan -Days 90)
Register-ScheduledTask -TaskName "ctrl-ja" -Trigger $trigger -Action $action -Settings $settings -User $env:USERNAME

(別法) タスクスケジューラの GUI から登録する

タスクスケジューラの GUI からもプログラムを登録することができます。

「ファイル名を指定して実行」に「taskschd.msc」と入力し、タスクスケジューラを開きます。

左側のパネルからタスク スケジューラ (ローカル) → タスク スケジューラ ライブラリを選択します。

メニューの「操作」→「タスクの作成」から、タスクの作成ウィンドウを開きます。以下に従って設定し、OK をクリックします。記載のない項目はデフォルト値のままとしてください。

  • 全般タブ
    • 名前: (お好みの名前)
  • トリガータブ
    • 「新規」ボタンをクリック
      • タスクの開始: ログオン時
  • 操作タブ
    • 「新規」ボタンをクリック
      • プログラム/スクリプト: powershell.exe
      • 引数の追加: -NoLogo -WindowStyle Hidden -Command "& {Add-Type -TypeDefinition (gc ctrl-ja.cs へのパス -Raw) -ReferencedAssemblies System.Windows.Forms; [CtrlJa.Program]::Main();}"
        • たとえば、ctrl-ja.cs を C:\ 直下に置いた場合は -NoLogo -WindowStyle Hidden -Command "& {Add-Type -TypeDefinition (gc C:\ctrl-ja.cs -Raw) -ReferencedAssemblies System.Windows.Forms; [CtrlJa.Program]::Main();}" となります。
  • 設定タブ
    • タスクを停止するまでの時間: チェックを外す

これで設定完了です。メニューの「操作」→「実行」を選択し、正しく実行されるか確かめてみてください。

謝辞

このプログラムは mac アプリ「英かな」に触発されて作成しました。

PowerShell と C# でキー入力を監視する方法については次の記事を参考にしました。 Creating a Key Logger via a Global System Hook using PowerShell

また、Win32 API で IME を制御する方法については次の記事を参考にしました。 (AutoHotkey)(IMEの制御をする 編) - もらかなです。

以上のプログラムおよび記事の作者に感謝申し上げます。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.