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

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

新規登録して質問してみよう
ただいま回答率
85.46%
Python 3.x

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

Q&A

解決済

2回答

4138閲覧

ウィンドウを操作したい

SadaFtyu

総合スコア16

Python 3.x

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

0グッド

0クリップ

投稿2021/08/10 07:33

編集2021/08/10 08:01

pythonでウィンドウ操作をするソースコードを実行したのですが、期待通りの操作は行われるのですが、エラーが起きます。なぜでしょうか。 pip install でpywin32 とpywin32guiどちらもインストール済みです。

エラーメッセージはこちらです。
module 'win32gui' has no attribute 'GetForegroundWindow'

python

1import subprocess 2 3import time 4import win32gui# アプリウィンドウをアクティブさせる 5import win32com.client 6import win32con 7import win32api 8 9def main(): 10 # サブプロセス(メモ帳)の起動 11 child_process = subprocess.Popen(r'c:\windows\system32\notepad.exe') 12 # プロセスチェック 13 print(child_process.poll()) 14 # ウェイト 15 time.sleep(1) 16 17 # メモ帳がフォアグラウンドにあるので、Win32APIのMoveWindowで(100,100)に移動し、500x500にリサイズ。 18 hwnd = win32gui.GetForegroundWindow() 19 win32gui.MoveWindow(hwnd, 10, 100, 500, 500, True) 20 21 child_process.wait() 22 23 print('done.') 24 25 26if __name__ == '__main__': 27 main()

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

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

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

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

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

itagagaki

2021/08/10 07:37

実行手順と、発生するエラーの内容を具体的に書いてください。
y_waiwai

2021/08/10 07:42

このままではコードが読めないので、質問を編集し、<code>ボタンを押し、出てくる’’’の枠の中にコードを貼り付けてください また、エラーが出たなら、エラーメッセージを提示しましょう エラーメッセージは、いらぬ翻訳省略しないで、出たそのママをコピペで提示してください
guest

回答2

0

Python

1from win32gui import GetForegroundWindow 2hwnd = GetForegroundWindow()

ですかね。

投稿2021/08/10 08:14

itagagaki

総合スコア8402

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

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

0

ベストアンサー

期待通りの操作は行われるのですが、エラーが起きます。

当方環境ではメモ帳は起動しますが、ウインドウは移動しませんでした。
MoveWindowには移動したいウインドウハンドルを渡す必要があります。
win32gui.MoveWindow(None, ~)win32gui.MoveWindow(hwnd, ~)
と修正すると、移動しました。

なお'win32gui' has no attribute 'GetForegroundWindow'エラーになっているのは
あなたの作成したソースファイル名がパッケージ名と同じwin32gui.pyとなっており、正常にimportできない状況に陥っているためです。
ソースファイル名をgui_test.pyなど別の名前に変えてください。

投稿2021/08/10 07:57

編集2021/08/10 08:28
can110

総合スコア38278

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

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

SadaFtyu

2021/08/10 08:00

移動はするんですけどmodule 'win32gui' has no attribute 'GetForegroundWindow' というエラーが起きます。
can110

2021/08/10 08:05 編集

エラー全文(Traceback)を省略せずに質問本文に追記ください。 また、質問コードが編集されていますが、MoveWindow(None,~)であっても、移動はしたのでしょうか?
SadaFtyu

2021/08/10 08:18

noneでは移動しませんでした。 トレースバックとはこれのことでしょうか Message=module 'win32gui' has no attribute 'GetForegroundWindow' Source=C:\Users\sator\source\repos\win32gui\win32gui\win32gui.py スタック トレース: File "C:\Users\sator\source\repos\win32gui\win32gui\win32gui.py", line 18, in main hwnd = win32gui.GetForegroundWindow() File "C:\Users\sator\source\repos\win32gui\win32gui\win32gui.py", line 27, in <module> main() Message=module 'win32gui' has no attribute 'GetForegroundWindow' Source=C:\Users\sator\source\repos\win32gui\win32gui\win32gui.py スタック トレース: File "C:\Users\sator\source\repos\win32gui\win32gui\win32gui.py", line 18, in main hwnd = win32gui.GetForegroundWindow() File "C:\Users\sator\source\repos\win32gui\win32gui\win32gui.py", line 27, in <module> main()
can110

2021/08/10 08:25

はい。こちらの欄は目立たないので、質問本文に追記ください。 もしかしてあなたの書いたソースコードのファイル名、「win32gui.py」になっていないでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問