[過去ログ]
AutoHotkey スレッド part34 (1002レス)
AutoHotkey スレッド part34 http://egg.5ch.net/test/read.cgi/software/1719681136/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
レス栞
あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
435: 名無しさん@お腹いっぱい。 [sage] 2024/10/01(火) 18:07:44.77 ID:C+MHvTF60 >>419 WinGetTitleの取得の成否にSleepの有無は関係ないかと思います 必要な情報がないので推測ですが、WinGetTitleの取りこぼしと言うのはウィンドウが見つからないとか取得に失敗しているのではなく タイトルのない別のウィンドウを取得しているだけだと思います AHKのウィンドウ指定では条件に当てはまるウィンドウが複数存在する場合、Z-Orderが若い方が優先され対象となります ブラウザがChromeやEdgeであれば、ポップアップウィンドウのクラス名と実行ファイル名は同じになるので 例として、F1:: MsgBox(WinGetTitle("ahk_class Chrome_WidgetWin_1 ahk_exe chrome.exe")) のような指定では実行時にコンテキストメニューやマウスオーバーによるツールチップのようなポップアップウィンドウが存在する場合、そちらが優先されるので、結果は空文字になります これを回避するためには、WinGetListで該当するウィンドウのHwndを全て取得した後、ウィンドウスタイルで絞り込むなどの方法が必要になります ついでに、ウィンドウ指定について述べておきますが、Chromium系のクラス名は通常「Chrome_WidgetWin_1」であるため、クラス名のみの指定では他のアプリがヒットする可能性があります また、>>405で紹介されている所のようにahk_exeだけの指定では、DetectHiddenWindowsがオフであっても、アプリによってはサイズが0,0のサブウィンドウが存在したり マルチプロセスによるウィンドウ内ウィンドウがヒットしたりする可能性もあるため、注意が必要です 具体例として、エクスプローラーの指定が"ahk_exe explorer.exe"では正常に動作しませんが、これはタスクバーとProgram Manager(デスクトップ)もexplorer.exeによるウィンドウであるためです http://egg.5ch.net/test/read.cgi/software/1719681136/435
436: 名無しさん@お腹いっぱい。 [sage] 2024/10/01(火) 18:08:30.09 ID:C+MHvTF60 >>426 あらゆる場所にSleepがないとまともに動作しないなんて仕様はありませんし、Sleepが必要な場合はほとんどがAHK側の問題ではなく、アプリ側またはシステム上の問題です また、Sleepが必ずしも動作の安定に繋がるとは限りません 0以上のSleepが実行された場合、CPUのタイムスライスの割当てが次のスライス以降となるため、AHKに限らず他のスレッドによる割り込みが発生しやすくなり コードの実行結果が一定ではなくなるなどの可能性が出てくるので、動作上でSleepが必要な場合は明確な意図と効果を伴って使用すべきです >>427 おそらくアプリ側のメッセージ処理か入力処理の問題なので、とりあえず SetKeyDelay(, 50) SendEvent("abcdefghijklmnopqrstuvwxyz") で入力が正常に行われるか試してみてください http://egg.5ch.net/test/read.cgi/software/1719681136/436
441: 名無しさん@お腹いっぱい。 [sage] 2024/10/01(火) 20:38:22.05 ID:C+MHvTF60 >>439 Pale Moonは使用してないので正しいか分かりませんが FireFox系ならメインのウィンドウクラスは「MozillaWindowClass」 ポップアップウィンドウのクラスは「MozillaDropShadowWindowClass」なので WinGetListを使わずともクラス名まで指定すれば区別できると思います 逆にクラス名で指定しているにも関わらず、タイトルが取得できないことがある場合は別の所に原因があります http://egg.5ch.net/test/read.cgi/software/1719681136/441
445: 名無しさん@お腹いっぱい。 [sage] 2024/10/01(火) 22:11:08.20 ID:C+MHvTF60 >>444 palemoonのウィンドウタイトルが取れていないのではなく、ダイアログ待ちで別のダイアログがヒットしているような気がします とりあえず、開いたウェブページを保存するという挙動で良いのであれば、以下のような方法で良いと思います F1:: ; Run, %URL% ; ここにSleepを入れるか、完全にページの読み込みを待つのであれば、ImageSearchかブラウザ系のライブラリ、またはAccかUIAなどのライブラリを使用する必要があります ControlSend, ahk_parent, ^s, ahk_class MozillaWindowClass WinWaitActive, Save ahk_class #32770 ahk_exe palemoon.exe ; 実行ファイルがpalemoon.exeではない場合変更してください ; Send, {Enter} MsgBox, テスト Return http://egg.5ch.net/test/read.cgi/software/1719681136/445
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
1.567s*