LoginSignup
2

More than 3 years have passed since last update.

C#でIMEを切り替えてみる

Last updated at Posted at 2018-10-28

前置き

作るきっかけ:IME切替が面倒

私はGoogle日本語入力を使用していて、PCの言語設定は英語です、
なので、
2つIMEが存在しています(GoogleとMS-IME、日本語MS-IMEは削除できた)。
2つのIME

デフォルト言語が英語になっているため、英語MS-IMEは消せない...

サインインすると英語MS-IMEが優先される!!

まあ、Win+Spaceで切り替えはできるから気にしてはいなかったのですが、
ついに面倒になった


ということで備忘録として残しておきます。
(消したときに困る)

使用言語等

  • C#
  • .NET Framework 4.6.1
  • Windows Forms App

コード

結論とはなってしまうのですが
私が作ったコードを載せておきます。

Form1.cs

using System;
using System.Windows.Forms;

namespace InputChanger
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        protected override void OnLoad(EventArgs e)
        {
            SendKeys.Send("+(%)");
            this.Close();
        }
    }
}

ちなみにUIはこのように
UI
変更したらウィンドウが閉じるため、UIは手を付けておりません

解説(...?)

using System;
using System.Windows.Forms;

必要なのはこれだけで、

SendKeys.Send("+(%)");
this.Close();

SendKeys.Send("+(%)")Shift + Altキーコマンドを送信、

this.Close()でウィンドウを閉じています。

使い方

Ctrl + Rshell:startupを実行し、開いたフォルダにEXEファイルのショートカットを貼り付けてスタートアップに登録できます。

追記

スタートアップに登録すると、私の環境ではサインイン画面とログオン後のデスクトップの2回実行されているようで、元の戻ってしまう...
Windowsの仕様なのか?
作った意味はあまりなくなってしまった...

追記の追記

なぜか2回実行されていたのが1回になっていた。
謎は深まるばかり…

ソースコード等

こちらで公開しています。
https://github.com/a01sa01to/IMEChange

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
2