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

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

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

Q&A

解決済

2回答

4411閲覧

他プロセスのメインウィンドウハンドルを取得したいが、取得した値が0x00000000となる。

firstlast

総合スコア138

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

0グッド

0クリップ

投稿2019/02/09 14:15

前提・実現したいこと

他プロセスのメインウィンドウハンドルを取得したいが、取得した値が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)

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

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

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

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

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

guest

回答2

0

こちらにあるようにウインドウハンドルの取得は可能みたいです。
但し、SendInputなどの入力系は動作しないようですので目的の動作は無理みたいですね。

投稿2019/02/09 14:54

YAmaGNZ

総合スコア10222

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

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

firstlast

2019/02/09 15:25

ありがとうございます。なんか方法があるんじゃないかとまだ調べているのですが...なかなかないですねw
guest

0

ベストアンサー

電卓は UWP っぽいのでウィンドウではないと思います。

投稿2019/02/09 14:18

Zuishin

総合スコア28656

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

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

firstlast

2019/02/09 14:33

ありがとうございます!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問