質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

Windows 11

Windows 11は、Windows 10の後継バージョン。それまでのMetroデザインを廃止し、Fluentデザインを導入しています。スタートメニューの構成やウィンドウのデザインの変更の他、Androidアプリをネイティブに実行できます。

Q&A

解決済

1回答

1805閲覧

Windows PowerShell+Google日本語入力で、PowerShellのバージョンを下げずに、起動時に「_A」となる問題を解消したい

Ao_Sankaku

総合スコア6

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

Windows 11

Windows 11は、Windows 10の後継バージョン。それまでのMetroデザインを廃止し、Fluentデザインを導入しています。スタートメニューの構成やウィンドウのデザインの変更の他、Androidアプリをネイティブに実行できます。

0グッド

0クリップ

投稿2023/09/06 15:31

実現したいこと

このことは周知だとは思いますが、Google日本語入力を使用した環境でWindows PowerShellやコマンドプロンプトを開くと「_A」になります。「_A」とは「半角英数入力モード」のことで、一見問題ないように見えますが変換が可能になります。つまり、スペースバーを押すことで変換モードに入ってしまう他、Enterキーを余分に押す手間ができてしまいます。

試したこと

公式ドキュメントで「半角/全角」を探す

https://learn.microsoft.com/ja-jp/dotnet/api/system.windows.forms.sendkeys?view=windowsdesktop-7.0
ありませんでした。

「kanji」キーを押したことにする作戦

https://www.relief.jp/docs/018017.html

bat

1add-type -AssemblyName System.Windows.Forms 2[System.Windows.Forms.SendKeys]::SendWait("{kanji}")

「{kanji}」が認識できずエラーになります。VBAでは動くそうです。

IMEを切り替える方法

https://superuser.com/questions/1421219/how-to-start-app-program-with-defined-input-language
日本人向けではありませんでした。これを実行したが最後、システムのIMEが書き換わって、直しても再起動するまでGoogle日本語入力が動かなくなります。この記事を見ているみなさんは絶対に実行しないでください。

完全に手詰まりになっているので、解決手段をお持ちの方がいたら教えて下さい。2時間以上検索し続けていますが、一向に解決の兆しがありません。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

■漢字キーを押すサンプルプログラム

PowerShell

1$source = @' 2using System; 3using System.Runtime.InteropServices; 4namespace Microsoft { 5 public class Windows { 6 [DllImport("user32.dll")] 7 public static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, uint dwExtraInfo); 8 public static void kanji(){ 9 keybd_event(0xF3,0,0 ,0); 10 System.Threading.Thread.Sleep(20); 11 keybd_event(0xF3,0,0x2,0); 12 } 13 } 14} 15'@ 16Add-Type -TypeDefinition $source -ErrorAction Stop 17[Microsoft.Windows]::kanji() 18Read-Host "続行するには、Enter キーを押してください...:"

「 kanjiキーを押したことにする作戦 」の部分をPowerShellで実行しています。

■注意事項■
※青い画面を閉じると「 A 」に戻ります。
※現在ではkeybd_eventはSendInputに置き換えられています。

私の環境ではGoogle日本語入力を使用していないので、
動作するか分かりません。ご了承ください。

簡単な説明で申し訳ございません。詳しくはWEB検索をご利用ください。

投稿2023/09/12 09:37

ccc-

総合スコア356

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Ao_Sankaku

2023/09/13 16:45

理屈はさっぱりわからないのですが、バッチリ動きました!ありがとうございます!! このスクリプトは後でじっくり読んでみようと思います…
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問