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

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

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

DLL(Dynamic Link Library)とは、他のモジュールからも使用する事が出来る、関数とデータが格納されているモジュールのことです。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

1回答

8795閲覧

ctypes.windll.user32.FindWindowWでフルネームではなく名前の部分一致でウインドウを検索したい。

Aki1000

総合スコア78

DLL

DLL(Dynamic Link Library)とは、他のモジュールからも使用する事が出来る、関数とデータが格納されているモジュールのことです。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

1クリップ

投稿2018/11/11 11:08

編集2018/11/11 11:09

下記のように、ウインドウのタイトル名で起動しているウインドウを検索して、最前面に移動させるコードを使用しています。
しかし、この名前の指定で、例えばMozillaとかだけで、部分一致で探すことは出来ないでしょうか?

Python

1import ctypes 2hwnd = ctypes.windll.user32.FindWindowW(None, "Google - Mozilla Firefox") 3ctypes.windll.user32.SetForegroundWindow(hwnd)

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

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

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

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

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

guest

回答1

0

ベストアンサー

FindWindowでは出来ません。EnumWindowsでウインドウ列挙し、条件に一致したウインドウに対して処理するようなアプローチが必要です。
以下、メモ帳のウインドウを最前面にするサンプルコードです。
参考:Pythonを使って指定したWindowのハンドルを取得したい

Python

1import win32gui 2import ctypes 3 4def forground( hwnd, _): 5 name = win32gui.GetWindowText(hwnd) 6 if name.find('メモ帳') >= 0: 7 ctypes.windll.user32.SetForegroundWindow(hwnd) 8 return False # 列挙終了 9 10# ・pywintypes.error: (126, 'EnumWindows', '指定されたモジュールが見つかりません。')と表示される(が動作している) 11# ・最小化していると列挙対象にならない? 12win32gui.EnumWindows( forground, None)

投稿2018/11/11 11:35

can110

総合スコア38262

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

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

Aki1000

2018/11/11 11:42

……うう、win32gui、私のPCだとインストールでこけるので使えないのです…… pip install win32guiとやると……あー、やはり、 「Command "python setup.py egg_info" failed with error code 1 in C:\Users\ユーザ\AppData\Lacal\Temp|pip-install-lrcwftdn\win32gui\」 と表示されて、止まってしまうのです……
can110

2018/11/11 11:43

あらら、残念です…
Aki1000

2018/11/15 10:04

pipインストールではなく、バイナリ化してあるものをダウンロードして、無事win32guiをインストール出来ました。 おかげさまで、そのメモ帳を検索するコード動きました。 動くんですけど、ちょっと pywintypes.error: (0, 'EnumWindows', 'No error message is available') のエラーが気になりますね……
can110

2018/11/15 10:25

そういえばこちらでも同様メッセージ出てました。 おそらくモジュール内部でそれなりに対処されているかと。 (だがメッセージだけは出しとこう、程度) なので、あまり気にしなくてもよいのかなと思います。
Aki1000

2018/11/16 00:00

ありがとうございます! 安心しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問