前提・実現したいこと
他プロセスのメインウィンドウハンドルを取得したいが、取得した値が0x00000000となる。
他プロセスの画面にあるテキストボックスに文字列を入力させるために、
①他プロセスのプロセスを取得
②他プロセスのメインウィンドウハンドルを取得
③メインウィンドウの子ウィンドウを探索して、テキストボックスのウィンドウハンドルを取得
といったことをしようとしています。
しかし、取得したメインウィンドウハンドルの値が0x00000000となっていて、やろうとしたことができません。
他プロセスのアプリケーションが"Notepad"ですとちゃんとした値が入ります。
Calculator(電卓)はダメでした。
非表示になっているウィンドウやウィンドウを持っていないプロセスは、ウィンドウハンドルが取得できないとの情報もみかけましたが、電卓はウィンドウを持っているはずなので、これは原因ではないようです。
よろしくお願いします。
該当のソースコード
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.InteropServices; using System.Diagnostics; using System.Windows.Forms; namespace 他プロセス操作 { class Program { static void Main(string[] args) { var ppp = Process.GetProcessesByName("Calculator")[0]; var mainWindowHandle = ppp.MainWindowHandle; } } }
試したこと
環境
Microsoft Windows 10 Pro (Version 1809)
Microsoft Visual Studio Community 2017(Version 15.9.4)
Microsoft .NET Framework(Version 4.7.03190)

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/09 15:25