AutoHotkey スレッド part27

■ このスレッドは過去ログ倉庫に格納されています
2019/04/20(土) 23:32:53.28ID:cTmLtZyf0
!extend:on:vvvvv:1000:512
!extend:on:vvvvv:1000:512
!extend:on:vvvvv:1000:512

■配布元
http://ahkscript.org/download/

■前スレ
AutoHotkey スレッド part26
https://egg.5ch.net/test/read.cgi/software/1524647289/

■日本語解説等
AutoHotkey Wik
http://ahkwiki.net
AutoHotkeyを流行らせるページ(ミラー)
http://ahk.xrea.jp/ (不調時は http://hdd.s300.xrea.com/ahk/ )
AutoHotkeyJp(過去ログdatあり)
http://sites.google.com/site/autohotkeyjp/
Autohotkey日本語ヘルプ(chmファイル)
http://www6.atwiki.jp/eamat/
Autohotkey専用うpろだ
http://ux.getuploader.com/autohotkeyl/
簡易スクリプト掲示板
http://pastebin.com/

■派生版
IronAhk (.NET製、クロスプラットフォーム)
https://github.com/polyethene/IronAHK
AutoHotkey.dll (真のマルチスレッド対応など, AHKLの派生)
http://www.autohotkey.com/board/topic/39588-autohotkeydll/
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2)
2019/06/04(火) 12:01:22.35ID:lwnGZ+XM0
>>158
ありがとうございます
早速試してみます
2019/06/04(火) 18:42:45.00ID:lwnGZ+XM0
入れ替えてみましたけど、Slow限定の機能なんですね
以前より遅くなりそうだったんで結局やめました アドバイスありがとうございます

それにしてもSlowは尋常じゃなく遅すぎる…
Fastがオプションじゃなくてデフォルト設定でいいんじゃないかと思いました
2019/06/04(火) 20:29:45.19ID:SfBx3yi30
ホットキーを特定のウィンドウだけで機能し、かつ特定のタイトルでは機能しないようにしたいのですが、どうすればいいかわかりません。

例えば、以下のコードでは思った通りに機能しません。
#IfWinActive ahk_exe chrome.exe
#IfWinNotActive Google
!A::Send, ^a
#IfWinNotActive
#IfWinActive

#IfWinActiveコマンドで実装は無理なのでしょうか。また他の方法でなら可能なのか教えて下さい。
2019/06/04(火) 20:41:39.23ID:wli2UBB50
>>161
#IfWinActive ahk_exe chrome.exe
だけを使って、 !A を押した時に
もしもアクティブタイトルがGoogleだったら何もしない
それ以外ならば Send, ^a
と言う条件分岐すればいいかと

#IfWinActiveと、#無しのIfWinActiveの使い方を整理して考えよう
2019/06/04(火) 20:58:58.09ID:OaQXkSrE0
#if () でand取ったらいいんちゃう
164名無しさん@お腹いっぱい。 (ワッチョイ a676-R3bS)
垢版 |
2019/06/04(火) 22:26:59.54ID:Es9oy+ZU0
日本語を含んだ文字列のバイト数を知りたいのですけど
unicode版だとStrLenは文字数を返してきます
簡単に知る方法は無いでしょうか?
2019/06/04(火) 22:47:51.14ID:jTUzc3z70
StrPut
2019/06/04(火) 23:23:28.93ID:f6UdUiHs0
>>161
WinActive()
ttp://ahkwiki.net/WinActive

#If WinActive("ahk_exe chrome.exe",, "Google")
#If
2019/06/05(水) 10:29:55.05ID:fxmk+rva0
>>137
わかりました。ありがとう。
2019/06/06(木) 17:37:34.32ID:p0DWWQ1S00606
Windows10で設定可能な解像度の取得が出来そうで出来ない。
Winの設定>システム>ディスプレイ>ここの解像度一覧の取得
わかる方お願いします。

参考ページ
https://nompor.com/2018/06/29/post-4002/
http://tokovalue.jp/function/EnumDisplaySettings.htm
2019/06/06(木) 19:42:01.81ID:mAiEbUms00606
>>162
>>163
>>166
解答ありがとうございます。
以下のコードのようにしたところ、思い通りに機能しました。

#If WinActive("ahk_exe chrome.exe") and WinActive("Google")
!a::Send, ^a
#If
2019/06/07(金) 11:14:32.49ID:0dL4X5eu0
動いたんならいいけど それChoromeかつGoogleの時しか動作しないんじゃね

>162の
>もしもアクティブタイトルがGoogleだったら何もしない
とは話違ってきてないか
2019/06/07(金) 12:13:25.60ID:AB/5CdCc0
WinActivateでアクティブにするより、Clickしたほうが高速で動作する気がするですけど
WinActivateを速くする方法ってありますか?

Clickだとペンタブと画面が近いとカーソルを乗っ取れない?というかバグる時があるから
なるべくClickさせたくないんですよね
2019/06/07(金) 12:21:08.67ID:0dL4X5eu0
まずはほんとWinActivateが遅いのか、どんくらい遅いのか検証してみたら
気がするレベルだと対策しても効果のほどを確認できないんじゃないの
2019/06/07(金) 12:23:35.63ID:0dL4X5eu0
あとペンタブとカーソル取り合いになるのはペンタブの仕様考えたら当然なので
バグじゃなくて正常動作な
2019/06/07(金) 12:36:05.08ID:AB/5CdCc0
0.11〜0.14秒だからむしろ速いとは思うんですけどClickは0.03〜0.05秒で終わると思うと遅く感じるんですよね
何回かアクティブにさせるスクリプトだとチリが積もって遅くなるというか...
2019/06/07(金) 12:41:41.50ID:Pk+QS0650
>>174
どういう計測方法?
2019/06/14(金) 00:32:15.07ID:FvBTnZwU0
設定中に変換キー効かなくなってアンインストールしても反応ないんですがこのケースご存じの方いませんか?
キーボードが英語用で認識されてないかとか物理的に壊れたのかとかどれも違うみたいで
再変換機能が使えないだけではなくキー自体が反応しないんですがこういったことはあるんでしょうか
2019/06/14(金) 00:34:43.83ID:ZQ1uaq1W0
ここはエスパースレじゃない
2019/06/14(金) 00:45:10.33ID:o4YA/Bqa0
アンインストールして再起動
それでも起こったらAHK関係ない
179名無しさん@お腹いっぱい。 (ワッチョイ 63b1-mMzj)
垢版 |
2019/06/14(金) 00:52:31.05ID:FvBTnZwU0
>>178
再起動してもダメだったのでAutoHotkey関係なしで調べてみます
ありがとうございました
2019/06/15(土) 12:55:48.17ID:R0IGa2Cr0
ahkの命令を途中まで入力したらヘルプ(引数の一覧とか)が出るみたいなテキストエディタってありますのん?
2019/06/15(土) 13:44:32.12ID:UFe75xeO0
Visual Studio Code に ahk用プラグインがいくつかあるね
VSCodeでahkを入力していないから詳しくはわからない
2019/06/15(土) 17:12:53.90ID:5czqDlcN0
前スレの950あたりから後ろを参照

AutoHotkey スレッド part26
http://egg.5ch.net/test/read.cgi/software/1524647289/950-
2019/06/15(土) 22:10:37.37ID:sR/eeJYQa
>>180
開発環境の構築
AutoHotkey用のシンタックスハイライト、オートコンプリートなどの定義ファイル
http://ahkwiki.net/Tools
2019/06/24(月) 19:21:30.12ID:CAnB0qRX0
AutoGui2.3.8からデバッガがうまく動作しない
同じ人おらんか
2019/06/24(月) 19:22:26.89ID:CAnB0qRX0
2.3.8じゃねえ2.5.8
2019/06/25(火) 18:36:07.38ID:fJAmXUdV0
wiki 見ながら書きました
メモ帳は動くのですが、秀丸は動きません 何が原因なんでしょう

メモ帳
WinActivate, ahk_class Notepad
WinMenuSelectItem, ahk_class Notepad, , ファイル, 開く
秀丸
WinActivate, ahk_class Hidemaru32Class
WinMenuSelectItem, ahk_class Hidemaru32Class, , ファイル, 開く
2019/06/25(火) 18:53:20.08ID:tmUVz3tk0
>>186
AHKスクリプトを管理者権限で実行しても動かないかな?
2019/06/25(火) 19:03:32.69ID:fJAmXUdV0
動かないです。
2019/06/25(火) 19:07:52.76ID:fJAmXUdV0
秀丸はアクティブにはなるのですが、WinMenuSelectItemの方が動かないです。
2019/06/25(火) 19:10:13.10ID:jHJHoOEZ0
ヒロシです。
2019/06/25(火) 19:25:14.41ID:tmUVz3tk0
>>188
じゃあ仕方ないね
>特殊な仕様のメニューバーを使用している場合、このコマンドで操作することは出来ない。

Sendとかでメニュー操作を代用すればいいんじゃないかな
2019/06/25(火) 19:38:45.42ID:I1hNxfkx0
ショートカットキーでどうぞ

Send ^o
2019/06/25(火) 21:24:10.16ID:uruLriSQ0
>>190
ちょっとわらった
2019/06/25(火) 22:54:58.13ID:HgfYOxLv0
秀丸はコントロールを独自にオーバーラップしてるのでメモ帳のようには扱えない
>192のようにショートカットキー投げちゃうのが簡単だと思うけど
あえてメニューを実行させたいならリソースハッカーでメニュー番号調べてWM_COMMAND を投げてやるといい

WM_COMMAND = 0x111
MENUITEM_OPEN = 4
WinActivate, ahk_class Hidemaru32Class
PostMessage, %WM_COMMAND%, %MENUITEM_OPEN%, 0, ,ahk_class Hidemaru32Class
https://i.imgur.com/P00ELZl.png

参考
https://ajinoya.hatenadiary.org/entry/20080509/1210329386
2019/06/26(水) 12:29:12.81ID:cfzOTqWJ0
>>194

ありがとうございます。 動きました。
秀丸を動かしたいわけでなくショートカットキー設定がない別のソフトを動かす勉強のつもりで
最初から動かなかったので助かりました。
196名無しさん@お腹いっぱい。 (ワッチョイ 9320-F2Fz)
垢版 |
2019/06/26(水) 16:08:17.86ID:SU3Y3WNV0
検索ソフトのeverythingを使っていますが”クリップボードの監視機能”
がないので下記を作りました。

#Persistent
OnClipboardChange:
Run,C:\Program Files\Everything\Everything.exe -s "%Clipboard% "
Return

firefoxで試しましたが、検索文字をコピーすると、firefoxの画面の上に、
everythingの検索結果の画面が毎回出てきます(ちょっとうざい)。
下記改善をしたいので知恵をお貸しください。

改善したいこと:コピーは、検索のためだけじゃないので、いつもはeverythingをfirefoxの
画面の下で動かして置き、検索結果を見たい時だけ、everythingの画面をクリックして、
上に持ってきたい。見た後は、FIREFOXの画面をクリックしてeverythingの画面を下にしたい。

表示優先度を最優先にできるソフトを使ってみたが、FIREFOXの画面が常時上になり、
everythingの画面は、隠れたままになりだめでした。

AHKですがキーボード操作は使いたくなく、クリック動作だけで行う方法を教えてください。

文章力がないので、うまく伝わるといいのですが。
2019/06/26(水) 16:50:47.94ID:5afaXcPU0
>>196
ようするにEverythingをバックグラウンドにしたまま検索できればいいんだよね?
RunしないでControlSetText使う
198名無しさん@お腹いっぱい。 (ワッチョイ 9320-F2Fz)
垢版 |
2019/06/26(水) 19:21:23.57ID:SU3Y3WNV0
>>196 です。
調べましたが、ControlSetTextの使い方が素人にはわかりません。
できたら、答えをください。
2019/06/26(水) 20:33:10.24ID:5lMSjDGm0
>>198
ここは学ぶ気無い人に答え丸々くれる人は殆どいないよ
もし学ぶ気があるならwikiのControlSetTextの使い方説明をしっかり読んで
その上でどの部分が理解できないのかを書いてくれないと
こちらも「何が分からないのか」が分からないので教えようが無いよ
2019/06/26(水) 21:37:45.44ID:fx2Owl41a
かなり根本的な問題な疑問
クリップボード監視機能はどういうときにほしいんだ?
検索結果を見たい時だけ見るのならクリップボードの監視は必要ないのでは?
Firefoxの下で動作させておく意味はあるのか?

Everythingというソフトの構造がインデクス作成用のサービスと表示用のEXEが別になっているとすればだけど
必要なときにクリップボードにある文字列を渡して起動すればいいだけなような気がするけど
そのときにRunWaitを使うようにして抜けてきたらFirefoxをアクティブにすればいい
Everythingを知らすに言っているので頓珍漢かもしれないけど
2019/06/26(水) 21:49:02.47ID:ZyitK4Lg0
everything使ってるけどクリップボードを監視させようという発想が理解できない
キーボードショートカットでコピー→クリップボード検索でいいじゃんとしか
2019/06/26(水) 22:10:21.02ID:aFqC4gPH0
自分もそう思う
>>196
>キーボード操作は使いたくなく、クリック動作だけで行う方法
というなら、長押しやロッカージェスチャーでEverything専用のものを作ればいい
文字列選択した後に、例えば右ボタン+X1ボタンで、
Ctrl+C
Clipwait
Run,〜
とかでいいんじゃないの
2019/06/26(水) 22:13:08.84ID:Yek0UStY0
そのものズバリをやりたいならControlSetTextを使う(難易度 中)
一瞬ちらついてもいいのなら直前のアクティブ(firefox)を再アクティブにする処理でごまかす(難易度 低)
バックグラウンドじゃなくて最小化で妥協するならMINオプション付きでrunする(難易度 低)

ただ願わくばクリップボードにあるものを何でもかんでもEverythingに送る必要が本当にあるのかよく考えて欲しい
>200やhttp://egg.5ch.net/test/read.cgi/software/1559369719/29,36 でも再三アドバイスされてるが
ホットキー起動で検索したい時だけEverythingに送るのがもっとも簡単でスマートな解決法だと思う
204名無しさん@お腹いっぱい。 (ワッチョイ 9320-F2Fz)
垢版 |
2019/06/26(水) 22:38:36.80ID:SU3Y3WNV0
>>200/201/202さん
舌足らずで申し訳ない。
Aという画面(例:firefox)で出てくるワードを頻繁にコピーしてネットで調査して記録しています。
この作業の中で、調査済みかどうか判断するために検索をかけています。
この検索は連続して必要な場合と記憶で不必要と判断できる場合があります。
検索ソフトのeverythingを使う場合
@検索をかけたい文字列をコピーし
AEverythingの画面を出し
BEverythingの検索ボックスにペースト
して検索しているが、”クリップボードの監視機能”があればBの動作を
省略できるので、その方法を探しています。

---ということで、>>196の質問をしています。
2019/06/26(水) 22:47:53.45ID:aFqC4gPH0
>>204
んー、つまり>>196は、どこかしらから拾ってきたもので、そのスクリプト自体をよく分かってないってことか
Run,C:\Program Files\Everything\Everything.exe -s "%Clipboard% "
が、
>AとBの動作を省略してることになるんだが…
AHKだけじゃなく、コマンドラインも理解しないとダメだよ
206名無しさん@お腹いっぱい。 (ワッチョイ 9320-F2Fz)
垢版 |
2019/06/26(水) 22:56:12.36ID:SU3Y3WNV0
>>199さん
おっしゃる通りですが、
#Persistent
OnClipboardChange:
Run,C:\Program Files\Everything\Everything.exe -s "%Clipboard% "
Return

の中で、今与えられているヒントは、RUNしないでControlSetTextを使えということだけです。
理解できたのは、everythingは起動させている状態で(構文では起動させない)
Clipboardの変化でeverythingにデータを送るということです。
ということで、
#Persistent
OnClipboardChange:
ControlSetText, Edit1, New Text Here, Untitled -
Return
まで来ましたが、Clipboardの指定と、
C:\Program Files\Everything\Everything.exeの指定をどうやってやるのか、
でつまずいています。ご指導をお願いいたします。
207名無しさん@お腹いっぱい。 (ワッチョイ 9320-F2Fz)
垢版 |
2019/06/26(水) 22:58:35.42ID:SU3Y3WNV0
>>204 さん
おっしゃる通りです。
100年早いですかねー。。。。
2019/06/26(水) 23:00:41.21ID:aFqC4gPH0
>>204
Everythingについてスレチだけど、↓読んで、-s がどういう意味なのか確認しよう
コマンドラインオプション - Everything日本語ヘルプ
ttps://sites.google.com/site/everythingjphelp/command_line_options
↓と組み合わせれば、もっと絞り込んだ検索ができるようになる
ttps://sites.google.com/site/everythingjphelp/searching

>>206
>RUNしないでControlSetTextを使えということだけです
何人も書いてる通り、その必要はないw そこから離れるべき
2019/06/26(水) 23:04:52.58ID:quYLqF180
教えて君五大要素
1. 読まない
2. 調べない
3. 試さない
4. 理解力が足りない
5. 人を利用することしか頭にない
2019/06/26(水) 23:25:22.02ID:5lMSjDGm0
>>206
wikiのサンプルコード
ControlSetText, Edit1, New Text Here, Untitled -
これはメモ帳を使った一例だよ
日本語版メモ帳の場合は最後のウィンドウタイトルはUntitled ではなく 無題 - だけどね

ウィンドウ指定の方法はwikiにリンク書いてあるからそれをちゃんと読もう
タイトルの他に、exeで指定したり ahk_class で指定したり出来る
(↑これ基本中の基本だからとても大事)

上記サンプルの Edit1 はメモ帳のテキスト入力欄のコントロールなので
Everythingの検索ボックスのコントロールはAHK付属の Window Spy で調べましょう
2019/06/26(水) 23:41:40.05ID:pGhNbyeE0
ControlSetText, Edit1, %Clipboard%, ahk_class EVERYTHING
2019/06/27(木) 19:16:56.84ID:GJMvau+Va
>>207
モチベーションのあるときほど学習効率がいいと思う
つまり今こそチャンス
213名無しさん@お腹いっぱい。 (ワッチョイ 4a20-Ij2G)
垢版 |
2019/06/27(木) 19:58:24.56ID:3ZicoPkN0
>>212さん
砂漠で道に迷っているときにこの言葉、私にとってのオアシスです。
ありがとうございます。
>>211/210さん
具体的な構文と Window Spy というキーワードで少し進めたような気がします。

#Persistent
OnClipboardChange:
ControlSetText, Edit1, %Clipboard%, ahk_class EVERYTHING
Return

でやっていますが、everythingの検索窓にClipboardの内容が入って来ません。
ほかの方々のご意見も含めて何回も何回も読んで、少しずつかみ砕いて行っています。

ControlSetTextから離れろ、というご指摘も含めて、七転八倒しています。
時間はかかりますがよろしくご指導ください。
2019/06/27(木) 20:18:57.73ID:GJMvau+Va
>>213
検索窓にキーワードが入らないのはEXEが起動してないからでは?
ウィンドウが最小化されていてもちゃんと入ったぞ
2019/06/27(木) 21:00:52.91ID:FFKBRgzw0
タスクトレイに入ってる場合は
DetectHiddenWindows, on
しないとだめかもね
2019/06/27(木) 21:01:28.47ID:FFKBRgzw0
それかあれだ管理者権限
217名無しさん@お腹いっぱい。 (ワッチョイ 4a20-Ij2G)
垢版 |
2019/06/27(木) 22:00:48.31ID:3ZicoPkN0
>>213です。
管理者権限 でした。構文はあってたようです。
おかげで実行ファイルの作り方まで覚えてしまいました。(大したことではないですが)
助言、ありがとうございました。
初めて利用しましたが、あったかいですねここのスレは。ーーー感謝!感謝!
2019/06/27(木) 22:30:09.18ID:GJMvau+Va
なるほど管理者権限か
解決したところで
こういうやり方もありではないかというやり方

Run,C:\Program Files\Everything\Everything.exe -minimized -s "%Clipboard% "

キーワードを送ると最小化するので
Everythingのウィンドウが見えている状態では違和感があるかもしれないが、
ほかのウィンドウの裏で動作しているなら
これでも実質ほぼ同じような使い方ができる
219名無しさん@お腹いっぱい。 (ワッチョイ 56be-Ij2G)
垢版 |
2019/06/28(金) 09:57:37.77ID:4QUstTnm0
結果報告です。
minimizedのほうがいいかも。
everythingの起動がいらないし、たくさんの画面が出ているときに一つでも画面を
減らしたい場合に効果があります。

ということで、最終形として下記にしました。
#Persistent
OnClipboardChange:
Run,C:\Program Files\Everything\Everything.exe -minimized -s "%Clipboard% "
Sleep,5000
Return
2019/06/28(金) 10:15:09.45ID:l/xbYwT/0
最小化でいいなら
Run,C:\Program Files\Everything\Everything.exe -s "%Clipboard%", ,MIN
でも行けるで
アプリ側にコマンドラインスイッチない時用な
2019/06/28(金) 12:26:31.85ID:ONfMFbQ2a
流れぶった切って悪いんだけど、Shutdownコマンドのオプションにある「電源を切る」ってどういう効果?Win8.1以降の電源を切るシャットダウンになるってこと?
2019/06/30(日) 10:29:26.75ID:cPd/cUyO0
AHKって、夜中の12時にリロードされるってことはありますか

なぜか、私のAHKは夜中の12時にリロードされてしまうのです。
リロードされてしまうので、デバッグをしようにもおかけようがないのですが何かいい方法はないでしょうか
2019/06/30(日) 10:53:03.81ID:YReehQLW0
>>222
拾い物スクリプトならそういう記述されてるだけじゃねえの
2019/06/30(日) 11:09:42.12ID:wwkXWOr50
スクリプトの中身すら見てなさそう
2019/06/30(日) 11:44:37.81ID:cPd/cUyO0
自分で作ったんだけどねえ
そんな仕様を入れ込んだ覚えがないw
2019/06/30(日) 11:55:57.55ID:cPd/cUyO0
タスクトレイのアイコンをダブルクリックすると、トレース画面が出てきますが、
これを自動でファイル保存させるオプションってないでしょうか
ファイルに保存されていたらあとから確認できるのですが
2019/06/30(日) 13:07:51.28ID:QVbBzoKx0
OnExit通してデバッグすれば
2019/07/01(月) 01:26:28.34ID:0ZD9smhN0
下のスクリプトを実行すると、^vの貼り付けがうまくいかないのはなぜでなんでしょうか?

vClipboardAll := ClipboardAll
Clipboard := ""
Clipboard := "Test"
ClipWait
MsgBox, %Clipboard%
Send, ^v
Clipboard := vClipboardAll

「hogehoge」をコピーした上でホットキーを実行
実行結果
メッセージボックス「Test」
テキスト出力「hogehoge」

「Send, ^v」の後ろに「Sleep, 100」を入れるとちゃんと「Test」が出力されますが、それもMsgBoxを消してしまうとそこそこの確率で失敗します。
っていうか前にSleepを入れると上手くいくのならまだ分かるのに……。

それと、Clipboard変数に直接文字を入れる場合、ClipWaitは不要だと思うのですが、合っていますか?
2019/07/01(月) 01:33:56.61ID:RauxKuAY0
>>226
Menu, Tray, add と Menu, Tray, Default で出来るんじゃね
何のファイルを保存したいのか分からんけど
2019/07/01(月) 02:58:24.79ID:xeKHJhLba
>>228
一番最初に?と思ったのは
>Send, ^v
のときにどういうウィンドウがアクティブになってるんだろうってこと
たとえばメモ帳がアクティブな状態でホットキーでスクリプトを呼ぶので
MsgBoxを閉じた後アクティブなウィンドウがメモ帳に戻っているということでいいんだろうか

もうひとつは
>テキスト出力「hogehoge」
が"Send, ^v"の効果としてのメモ帳への貼付けの意味なのかということ

>そこそこの確率で失敗します。
というのはメモ帳に「hogehoge」が貼り付くということなのか
つまりペーストは成功しているけどその内容が期待しているものと違うということなのか

>ClipWaitは不要だと思うのですが、合っていますか?
不要です
ついでに細かいことをいえば"Text"を入れる前に""を入れるのも不要です

ClipWaitがあるとうまく動いたりするならマシンスペックの問題ではないのか
であればそこにSleepを入れたとしてもうまく動くと思う

ペーストの処理で「hogehoge」が貼り付くのも
クリップボードの内容を「hogehoge」に戻す処理がahkのプロセス内で完結しているのに対して
Send による貼り付け処理は、ahk側のプロセスではメッセージを発行しているにすぎず
貼り付けが完了するにはOSがそのメッセージを処理して
アクティブになっているウィンドウ側でそのメッセージを受け取る処理となるので
ラグが発生する
マシンに十分なスペックがあればそれを意識しないで済むにすぎない
ということで受け取るウィンドウでの貼付け処理が終わるまでSleepで待ってやると
成功するのだと思う
2019/07/01(月) 06:10:33.35ID:BQ1MBvZ20
>>228
Sendの前じゃなくて後ろの問題
Send, ^v が実行された後、実際に貼り付けられるよりも先に次の
Clipboard := vClipboardAll によってクリップボートの中身が書き変わっている
スクリプトは貼り付けの成功を見届けてくれるわけではない
2019/07/01(月) 08:23:54.89ID:rzFpecjD0
>>229
タスクトレイのアイコンをダブルクリックしたときに、どういう行を順番に実行してきたかのトレース履歴がでてきますが、
それをファイルに保存したいのです
そういうオプションはありませんか
2019/07/01(月) 12:08:19.80ID:m0tl9kEg0
wingettext
2019/07/02(火) 07:22:58.89ID:Kw4uOEBEM
Menuで作るポップアップメニューについて
基本的にはラベル名を予め定義して使うものだと思いますが
例えば「あ」「い」「う」の3つの文字をメニュー表示し
選択された文字を特定するにはどうしたらよいでしょうか
選択可能な文字や選択肢の数は処理の実行ごとに変化します

ラベルを動的に定義する方法が分からなくて躓いています
2019/07/02(火) 08:19:49.79ID:HVA9KY7k0
>>234
項目が選択されたら組み込み変数が更新される

A_ThisMenu 親メニュー名
A_ThisMenuItem メニュー項目の名前
A_ThisMenuItemPos メニュー項目の位置
2019/07/02(火) 15:04:30.74ID:Kw4uOEBEM
>>235
ありがとうございます
頂いたヒントを基に一応やりたいことができました

str := "あ|い|う"
StringSplit, strArray, str , |
i := 0
Loop, %strArray0%
{
i := i + 1
s := strArray%i%
Menu, MENU1, add, %s%, label%i%
}
Menu, MENU1, SHOW
msgbox, %A_ThisMenuItem%
Return

label1:
Return
label2:
Return
label3:
Return

ただこれだと選択肢が増えたとき(あいうえお等)のためにラベルをたくさん定義しておかないといけません
もっといい方法があったらご教示ください
2019/07/02(火) 15:21:38.51ID:fWTG4duU0
str := "あ|い|う"
StringSplit, strArray, str , |
i := 0
Loop, %strArray0%
{
i := i + 1
s := strArray%i%
Menu, MENU1, add, %s%, label
}
Menu, MENU1, SHOW
Return

label:
msgbox, %A_ThisMenuItem%
Return
2019/07/02(火) 15:27:09.56ID:Kw4uOEBEM
>>237
ラベルを分ける必要なかったんですね!
ありがとうございました
2019/07/02(火) 18:49:14.13ID:HVA9KY7k0
>>238
圧縮するとこんな感じ

; --- 文字列 ---
str := "あ|い|う"
StringSplit, strArray, str, |
Loop %strArray0%
Menu, MENU1, Add, % strArray%A_Index%, label ; "% "で引数を式に変更
Menu, MENU1, Show
return

label:
MsgBox %A_ThisMenuItem%
return

; --- 配列 ---
arr := ["え", "お", "か"]
for k, v in arr
Menu, MENU1, Add, %v%, label
Menu, MENU1, Show
return

label() { ; 関数でもおk
MsgBox %A_ThisMenuItem%
}
2019/07/02(火) 19:31:20.69ID:Kw4uOEBEM
>>239
こんなスマートに書けるんですね!
実際には配列を使おうと思っていたのでとても参考になります
ありがとうございます
2019/07/03(水) 18:35:17.77ID:9G3p7G5Q0
パソコン上のゲームで、上から落ちてくるりんごをマウスでカーソルを動かしてクリックして消滅させるというのがあります。
これを昔のインベーダーゲームのように左右の矢印キーを押して、スペースキーを押してやろうとして、
Left::
MouseGetPos, x, y
MouseMove % x-2, y
return
とかして作ろうとしたのですが、すると。左矢印キーを押すと、一旦止まってから動き出す、という状況になってしまいます。
キーを押して直後から動き出すようにはできないでしょうか
2019/07/03(水) 19:21:02.17ID:v3mhnHa/0
>>241
SetTimerを使ってMouseGetPosとMouseMoveをリピートさせる
あとはGetKeyStateでキーを離したときにSetTimerを停止させればいい
2019/07/03(水) 19:46:11.92ID:9G3p7G5Q0
なるほど、 ありがとうございました
2019/07/03(水) 19:52:43.06ID:wxVLNcr20
よーし、いい子だ
2019/07/04(木) 04:11:02.69ID:HjepJlAZ0
すみません
デスクトップのどこかをクリックして何も選択していない状態にして
alt + F4 でシャットダウンとかをさせるショートカットを作ろうとしているのですが、
何も選択しないように(非アクティブに)するコマンドが分かりません
マウスでどこか背景をクリックしたような状態になればそれでいいのですが、
いい方法はありますでしょうか?
よろしくお願いします
2019/07/04(木) 04:26:53.25ID:FUdgW0PN0
a::shutdown, 1
2019/07/04(木) 10:30:17.75ID:6QzvhFwe0
MouseMove, X, Y [, Speed, R]

のSpeedの項ですが、0から100の数字を入れるとあるけど、数字を100とかいれてもスピードが遅くなりません

Windows7です。 これって効かないのですか
2019/07/04(木) 10:53:41.71ID:HjepJlAZ0
>>245
言葉がたりませんでした
デスクトップの時にalt F4を押した時に出る
シャットダウンやスリープを選ぶ画面を出すのを実現したいのですが
いい方法はありますでしょうか
2019/07/04(木) 11:17:55.34ID:joaKslF40
>>248
Win+D→Alt+F4と送るんじゃだめ?
2019/07/04(木) 11:18:42.78ID:7l7i5rFa0
>>248
デスクトップをアクティブにすればいいのでは
2019/07/04(木) 11:40:51.42ID:HjepJlAZ0
>>249
出てるウインドウが全部消えてしまうのですが
キャンセルした時に復帰するウインドウとしないウインドウがあって
ちょっと不安ですが、本当にシャットダウンする場合はいけそうな気がします
ありがとうございます

>>250
デスクトップをアクティブにするコマンドを知りたいんですが
みつからなくて
2019/07/04(木) 11:41:06.72ID:7l7i5rFa0
と思ったけどControlSendでデスクトップに直接送りつけたほうがはやいか
2019/07/04(木) 11:42:19.29ID:7l7i5rFa0
>>251
WinActivate
2019/07/04(木) 11:46:30.78ID:HjepJlAZ0
>>253
WinActivate って指定のウインドウをアクティブにするやつでは?
全部を非アクティブにしたいのですが、、、

今いろいろ調べてたらwin+Bでタスクトレイを選択させれば
見た目は変わらず選択が外れるみたいで
もしかしたら行けるかもとか思いました
邪道ですが、、
2019/07/04(木) 11:51:00.65ID:HjepJlAZ0
みなさんいろいろありがとう
なんかさらにいい案があったら教えてもらえると幸いです
でもなんとかなりそうな気がしてきました
2019/07/04(木) 12:28:25.04ID:FUdgW0PN0
>>255
>シャットダウンやスリープを選ぶ画面を出す
ということであれば、Win+X→U
デスクトップ→Alt+F4とは違うけど、デスクトップの何もない場所クリックとかアクティブ化とか
そういうのは気にしなくていいし、キー操作だけだから作りやすいのでは?
2019/07/04(木) 13:21:34.52ID:OgAe9k/z0
>>254
だからデスクトップをWinActivateすりゃいいんだろて
Window Spyでデスクトップを調べろ
2019/07/04(木) 13:23:53.77ID:HjepJlAZ0
>>257
ahk_class WorkerW
ahk_exe explorer.exe
これはうまく機能しなかったです
■ このスレッドは過去ログ倉庫に格納されています
16歳の水野カイトが封印の刀を見つけ、時間が裂けて黒い風と亡霊の侍が現れ、霊の時雨と契約して呪われた刀の継承者となる場面

ニューススポーツなんでも実況