AutoHotkey スレッド part25at SOFTWARE
AutoHotkey スレッド part25 - 暇つぶし2ch150:名無しさん@お腹いっぱい。
17/10/03 17:41:40.86 y7JHy7Th0.net
Process

151:名無しさん@お腹いっぱい。
17/10/03 17:59:47.31 Z94A9/610.net
ありがとうございました
やってみたのですが、firefox.exeなのですが複数のプロセスがありますが1つだけしか変わりません
DOSではすべてが変わるのですが、全部を変える方法はありますか
WinGetのListで取ろうとしてもPIDは取れないし、同じイメージ名が複数ある場合は1つだけしか変えられないのでしょうか

152:名無しさん@お腹いっぱい。
17/10/03 18:09:22.57 ApSdm6mu0.net
winget List取得後にLoopで winget PIDしていけばよいのでは?
それかrunコマンド経由でwmic.exeの実行はできないん?

153:名無しさん@お腹いっぱい。
17/10/03 18:18:34.78 Z94A9/610.net
Firefoxはウインドウは1つだけ(タブは複数)起動しているんです
で、WinGet Listで取得すると、IDが1つだけしか取れません
でも、firefox.exeの同名のプロセスが3つ存在しています

154:名無しさん@お腹いっぱい。
17/10/03 18:31:52.02 tZYykB2i0.net
なにをやりたいのかわかってないんだけど、
AHKで起動してるんだから、RunコマンドのOutputVarPIDでいいんじゃないの?
Run Firefox.exe, , , NewPID
Process, priority, %NewPID%, Low
でこのスクリプトで起動されたfirefox processは全部Low priority
OneTabのせいで、Firefoxのマルチプロセスが無効だったことに気がつかせてくれて


155:ありがとう Firefox削除した



156:名無しさん@お腹いっぱい。
17/10/03 18:38:15.32 jR7/UGDJ0.net
頭悪い人の意見だけど
For process in ComObjGet("winmgmts:").ExecQuery("Select * from Win32_Process")
で全部取得しつつfirefox.exeならprocessで変えるようにすればいいんじゃない

157:名無しさん@お腹いっぱい。
17/10/03 18:51:40.20 Z94A9/610.net
>>150
やってみました
まず、Firefoxを全部閉じて、タブも1つだけ起動するようにして普通にFirefoxを起動しました
すると、firefox.exeという同名のプロセスが3つできます
次にこれをProcess, priorityで変更しようとすると、1つだけしか変更できず、2つは変更できません
次に
Run Firefox.exe, , , NewPID
MsgBox %NewPID%
Process, priority, %NewPID%, Low
としてやってみました。 MsgBoxでPIDを確認したかったからです
すると、確認している間にプロセスが3つ立ち上がって、結局変更できたのは1つだけ
ところが、MsgBoxをコメントアウトして
Run Firefox.exe, , , NewPID
Process, priority, %NewPID%, Low
でやれば、3つとも、プロセスがすべて低になりました
多分最初に起動したプロセスが親で、これをすぐに低に設定したら、それに続く2つのプロセスも
低のプロセスから派生したものだから低になるのでしょうね

この方法で出来ることはわかりました
でもすでに起動しているものを変更することはできないのかな

158:名無しさん@お腹いっぱい。
17/10/03 19:14:51.43 ApSdm6mu0.net
隠しプロセスだったらdetecthiddenwindows ONにしてからwingetは?

159:名無しさん@お腹いっぱい。
17/10/03 19:24:52.04 Z94A9/610.net
>>153
やってみました。 驚いたことに
detecthiddenwindows on
すると、1つだったIDが8つ出てきました。
これらはもちろん異なるIDだったのですが、WinGetでこれからPIDを求めるとすべて同じ多分親のPIDしか
出てこず、残りの2つのPIDは出ませんでした

160:名無しさん@お腹いっぱい。
17/10/03 22:12:00.42 aFw/sdPM0.net
Ctrlキー押しっぱのカーソル移動のすり抜けは
以下のメソッドを追加したら少し改善した。
少なくとも一定時間の移動ではすり抜けなくなってみたい。
但し、方向切り替え時に通常キーの同時押し状態になってしまう瞬間はダメですが、
SendMode Event
#UseHook
#InstallKeybdHook
#HotkeyModifierTimeout 100
SetKeyDelay,0

161:名無しさん@お腹いっぱい。
17/10/03 22:41:37.06 v5TBqoIN0.net
>>155
それキーボード側の同時押し可能数の問題じゃね
ゲーミングキーボードとか多同時押し対応したものなら起きないかもな

162:名無しさん@お腹いっぱい。
17/10/03 23:05:38.81 aFw/sdPM0.net
>>156
自分が使ってるのはリアフォかHHKBPro2だから同時押し6つのヤツ
恐らくCtrl+I,J,K,Lの2つのキーのSendだから3つ目が来た時に
単独押しの判定になるのかな?
少し改善したのはHotkeyModifierTimeoutを追加したのが効いてると思う。

163:名無しさん@お腹いっぱい。
17/10/03 23:30:28.37 Fa/rtAAh0.net
>>157
Ctrl+Iが押されたときAHKはまずCtrl upをSendしてから↑をSendし↑ upをSendしCtrlをSendする
この処理中にJ,K,Lを押すとスルーするかな

164:名無しさん@お腹いっぱい。
17/10/04 00:35:32.62 QCRp6QYx0.net
コマンドラインのツールのフロントエンドを作ろうとしたんですけど
Runwaitするとタイマーも割り込めないんですね…
Runの後にループでスリープしながら見張るのが無難でしょうか?

165:名無しさん@お腹いっぱい。
17/10/04 15:56:38.38 rfwLN1/G0.net
>>157
Send, {Blind}{Up}

166:名無しさん@お腹いっぱい。
17/10/04 16:53:46.41 LAY40rLs0.net
>>160
Ctrl+上 になってしまうのでは

167:名無しさん@お腹いっぱい。
17/10/04 23:43:40.87 eAdJsIi70.net
wikiに「1つのキーに3種類以上の動作割り当て」っていうサンプルがありますが
なぜあれで2度押しができるんですか?
解説お願いしたいです。

168:名無しさん@お腹いっぱい。
17/10/05 00:56:48.37 6h/nzYUE0.net
押された::
Q.すぐに離されましたか?
↓yes  no→ A.長押しです
Q.またすぐに押されましたか?
↓yes  no→ A.1度押しです
A.2度押しです

169:名無しさん@お腹いっぱい。
17/10/05 01:09:31.71 L8qoU5mE0.net
あれはキーダウンでラベルが呼び出されてから
keywaitでキーアップを待っているわけよ
0.3秒以内にキーアップがこなければ長押し
0.3秒以内にキーアップが来てそこから0.2秒以内にまたキーダウンが来たら2度押し
そうでなければ1度押し

170:名無しさん@お腹いっぱい。
17/10/05 08:37:47.60 YdyjWLJj0.net
解説必要かな
コメント適切すぎてどこで何してるのか一目瞭然だし
あれ以上の説明って逆に難しい気がするんだけど

171:名無しさん@お腹いっぱい。
17/10/05 09:00:00.95 6h/nzYUE0.net
押されているのが離されるのを待つコマンドで
離されることなくタイムアウトしたら
errorlevelが trueになる
ちょっと理解が混乱するのはいたしかたない

172:名無しさん@お腹いっぱい。
17/10/05 17:46:10.09 lN6wv7uW0.net
あるアプリにEditのコントロールがたくさんあります。50個くらい
これらのテキストをControlGetTextで取っているのですが
ひとつひとつクリックして選択してからGetしているので時間がとてもかかるのです
なので、このコントロールのメモリアドレスを取得することはできませんか
そうするとメモリから直接すべてのテキストを取得することができそうな気がするのですが
ControlGetTextでテキストを取得しているということは当然メモリにアクセスしているので
AHKはアドレスをゲットしているはずですね
一度すべてのEditコントロールのメモリアドレスをゲットしておけば以降はメモリアクセス
だけでゲットできるか考えているのですが

173:名無しさん@お腹いっぱい。
17/10/05 17:56:02.37 /O7vn0vF0.net
WinGetのControlListかControlListHwndとか?

174:名無しさん@お腹いっぱい。
17/10/05 18:26:18.76 lN6wv7uW0.net
>>168
controlHWNDをゲットして出来そうですね。 ありがとうございました

175:名無しさん@お腹いっぱい。
17/10/05 18:44:26.59 Mw/WW6ff0.net
>>160
Send, {Blind}でやってみたが、カーソルの動きが
変な動きをするんだけど、、、

176:名無しさん@お腹いっぱい。
17/10/05 19:01:28.37 pHsu3ccW0.net
説明を聞いたら分かりました。ありがとうございます!
「KeyWait,vk1Dsc07B,D T0.2」は0.2秒経過してもdownされてなかったらそのまま通すんですね。
そこが分かってなかったです。

177:名無しさん@お腹いっぱい。
17/10/05 23:48:46.74 ZYF3rk8J0.net
>>170
{Blind} は変換キー+JKLi とかで使う時が良いよ。

178:名無しさん@お腹いっぱい。
17/10/06 12:38:18.47 TXUF7LvYa.net
左クリックでsetkeydelayを効かせるにはどう書いたらいいんですか?
3パターンともディレイがききません。
setkeydelay,400
send,{LButton 4}
send,{LButton}{LButton}{LButton}{LButton}
Click,Left 4
return

179:名無しさん@お腹いっぱい。
17/10/06 12:46:51.83 PVKvJFle0.net
SetMouseDelay

180:名無しさん@お腹いっぱい。
17/10/06 12:59:37.03 TXUF7LvYa.net
>>174
ディレイできるようになりました。
ありがとうございます。

181:名無しさん@お腹いっぱい。
17/10/06 22:23:31.17 qJK6Bjjm0.net
>>172
Ctrl+通常キーの長押しは、ほぼこれでOKのようです。
同時押し時のすり抜けはまだ解決してませんが
今のところはキーの切り替え時に同時押しにならないようにすれば、
なんとかイケてます(^^♪

182:名無しさん@お腹いっぱい。
17/10/08 06:34:31.46 QHNb58xD0.net
HHKBで単独のDelキーがほしいのでバッククォートに割り当てたんだけど
バッククォート自体の入力をCtrl+バッククォートでSendしたけどうまく出来ません。
対処方法を教えてください

183:名無しさん@お腹いっぱい。
17/10/08 07:05:56.35 PU2F6qYD0.net
質問するならまず自分が書いたスクリプトを貼るのが筋

184:名無しさん@お腹いっぱい。
17/10/08 08:08:29.49 QHNb58xD0.net
>>178
`::Send,{Blind}{Delete}←バッククォートをDelキーに割り当てはOK
^`::Send,{Blind}`←Ctrl+バッククォートでバッククォート入力がうまく


185:いかない



186:名無しさん@お腹いっぱい。
17/10/08 08:17:56.19 PU2F6qYD0.net
>>179
仮想キーコード{vkC0}を使えば?

187:名無しさん@お腹いっぱい。
17/10/08 08:19:10.59 PU2F6qYD0.net
てかその使い方なら{Blind}は付けたらダメでしょ

188:名無しさん@お腹いっぱい。
17/10/08 08:22:33.90 TwLxa7sA0.net
`はエスケープ文字
wikiの仕様のとこ読んどいで
原因追求せずいきなり対処法教えてってのもなんだかな

189:名無しさん@お腹いっぱい。
17/10/08 10:03:11.28 QHNb58xD0.net
>>182
^`::Send,``とかでしょうか?いろいろ試したけどうまくいかない、、、

190:名無しさん@お腹いっぱい。
17/10/08 10:13:23.44 cTqdANU50.net
あとは >5のQ4

191:名無しさん@お腹いっぱい。
17/10/08 11:10:37.98 QHNb58xD0.net
#UseHookを定義してるので$は不要だと思う

192:名無しさん@お腹いっぱい。
17/10/08 18:29:50.95 PU2F6qYD0.net
vkC0使えと言ってるのになんで人の言うこと聞かないんだ?

193:名無しさん@お腹いっぱい。
17/10/08 19:21:06.25 QHNb58xD0.net
>>186
^`::Send,{vkC0}とかでしょうか?もちろん試したけどダメでしたよ

194:名無しさん@お腹いっぱい。
17/10/08 19:28:07.35 CPS4vhgt0.net
>>187
出力がダメなのか、入力がダメなのかを実験して

195:名無しさん@お腹いっぱい。
17/10/08 19:39:59.07 jtfbjOQf0.net
>>187
お前さあ、ここエスパーすれじゃねえんだから「もちろん試した」とか他人が分かるわけねえだろ
ろくに検証してないくせに上から目線になってんじゃねえよ

196:名無しさん@お腹いっぱい。
17/10/08 19:44:43.35 QHNb58xD0.net
>>188
入力がダメです。何か手立てはありますか?

197:名無しさん@お腹いっぱい。
17/10/08 19:47:31.10 Hhhcm4fC0.net
>>190
入力を仮想キーコードにすりゃいいじゃん
思考力停止してんのか?

198:名無しさん@お腹いっぱい。
17/10/08 20:25:27.98 QHNb58xD0.net
>>191
^{vkC0}::Send,{vkC0}か?実行エラー発生だわw

199:名無しさん@お腹いっぱい。
17/10/08 20:26:12.98 Hhhcm4fC0.net
>>192
入力の書き方が間違ってる
もっとちゃんと調べろ

200:名無しさん@お腹いっぱい。
17/10/08 20:30:32.94 mvXpExRv0.net
面白すぎるぞw
これ延々と続けるの?

201:名無しさん@お腹いっぱい。
17/10/08 20:46:24.13 QHNb58xD0.net
>>193
^vkC0::Send,{vkC0}か?これもダメだわ

202:名無しさん@お腹いっぱい。
17/10/08 20:52:54.09 mvXpExRv0.net
お前わざとやってるだろw

203:名無しさん@お腹いっぱい。
17/10/08 21:00:16.02 DDBFFTha0.net
>>195
なら君のキーボードが特殊で何か別のキーコードが発行されてんじゃね
#InstallKeybdHookでキーコード調べな

204:名無しさん@お腹いっぱい。
17/10/08 21:38:05.05 CPS4vhgt0.net
>>195
入力が問題ないかどうかは、
MsgBox,OK
とか出してみれば良い。
出力が問題ないかどうかは、
^a::
とかの入力で表示できるかどうか試せば良い。

205:名無しさん@お腹いっぱい。
17/10/08 21:58:28.07 K4/7+oooM.net
うちでは$付けて>183で出力できてるけどな
日本語キーボードだから実際に押すキーはshift+ctrl+@だけど

206:名無しさん@お腹いっぱい。
17/10/09 00:09:43.90 EuzlchIz0.net
エスパーになりたいなあ

207:名無しさん@お腹いっぱい。
17/10/09 00:46:03.79 l1fzjuhd0.net
Ctrlとバッククォートの同時押しをKeymillで見たら
VK_OEM3とVK_OEM4の二つの仮想キーが使われてるみたいなので
その値でSendしたら出来ました(^^♪
^vkF3::Send,``
^vkF4:Send,``

208:名無しさん@お腹いっぱい。
17/10/09 00:54:57.08 r2rCO5Lw0.net
散々アドバイス貰っておいて礼の一言も無し
こういう奴って他人を利用することしか考えてないんだろうな

209:名無しさん@お腹いっぱい。
17/10/09 01:29:35.12 ylAweGgd0.net
最近質問初回からストレートに「教えて」って言い方する人いて
地味に気になるわ

210:名無しさん@お腹いっぱい。
17/10/09 05:41:17.13 rf1NTRhp0.net
教えて!goo

211:名無しさん@お腹いっぱい。
17/10/09 11:57:03.87 HTLieya10.net
以下のスクリプトが急に効かなくなった
;━現在日時をスタンプする
^Tab::
FormatTime, TimeString,,yyyy_MMdd_HHmm
Clipboard = %TimeString%
Send, +{Insert}
Sleep, 200
clipboard =
return
PCの再起動しても直らず
単独のahkファイルにコピーで動作OK (他のコードを除外して)
元のファイルの別のコードを一つづつ削除していき
下記のスクリプトを削除で動作OK
;━スクリプトの自動リロード
#IfWinActive, ahk_class TextEditorWindowW166
~^s::
ScriptName := Script
IfWinActive, %ScriptName%
{
Reload
}
return

212:名無しさん@お腹いっぱい。
17/10/09 11:57:38.06 HTLieya10.net
つづき
削除前の無編集バックアップをそのまま上書きしてみる(動作しなかった時の状態のファイル)
何故か動作OK。その後ahkファイルを再起動するが動作せず
再度、スクリプトの自動リロードのコードを削除しリロードで動作OK
何か考えられる原因てあります?
この2つのコードが相性悪いようなのですが何かおかしいところはありますか?
エディタはサクラエディタを使用しています
スクリプトの自動リロードのスクリプト自体の方は問題無く動きます
自動リロードのスクリプトがある他のファイルでは問題は全く無いです
元々動作していましたが気付いたら動作しなくなってしまいました

213:名無しさん@お腹いっぱい。
17/10/09 12:16:33.49 HTLieya10.net
連投ですみません
スクリプトの順番を入れ替えたら問題無く動作するようになりました
う~ん でも何故かはわからないです
動作OK
①現在日時をスタンプする
②スクリプトの自動リロード
③その他
動作せず
①スクリプトの自動リロード
②現在日時をスタンプする
③その他

214:名無しさん@お腹いっぱい。
17/10/09 12:25:24.39 KhNcOqwe0.net
はやく教えろ

215:名無しさん@お腹いっぱい。
17/10/09 12:45:44.05 rf1NTRhp0.net
教えました。

216:名無しさん@お腹いっぱい。
17/10/09 12:50:33.29 NXVnt0i+0.net
#If閉じてないだけとか

217:名無しさん@お腹いっぱい。
17/10/09 13:18:13.91 HTLieya10.net
>>210
ありがとうございました
まさにその通りでした
いつの間にか#IfWinActiveを消してしまっていたようです
こんな初歩的なミスに気づかないとは...恥ずかしい

218:名無しさん@お腹いっぱい。
17/10/10 02:32:14.41 EmIG0yKf0.net
controlsend,について質問があります
たとえば以下の記述でwindows標準のメモ帳なら動きます
ControlSend, , test, ahk_class Notepad
ただこの記述では動かないアプリが結構ありますが、そのアプリでも成功したりしなかったりの条件があります
testをControlSendするアプリケーションのウィンドウが前面にあり、アクティブ状態なら成功しますがウィンドウが最小化状態だと失敗します
なのでwinactivateで失敗するアプリのウィンドウをアクティブ化してからcontrolsendしていますが
失敗するアプリでもwinactivateなし、最小化状態でcontrolsendすることってできないもんでしょうか

219:名無しさん@お腹いっぱい。
17/10/10 08:00:37.48 fQ70ranb0.net
その質問過去に何度も見てるけど解決したところは見たことない気がする
ただその質問する人ってほぼもれなくctrl空欄にしてるんだよね
まずは送りたいctrl特定してやってみて、できればハンドル指定で
バックグラウンド時にはcontrolフォーカス取れなくなるようなアプリなら効果あるかもしれないし
そこきちんと指定してやると結構精度上がるよ

220:名無しさん@お腹いっぱい。
17/10/11 11:38:11.27 eCPj5mWL0.net
Process, Priorityで、AutoHotkey自身をAboveNormalに変更しようとしたのですが、
出来ないようです
でも、タスクマネージャーで手動では変更できます。 なぜでしょうか?
出来ないのですか? 自分で自分は変更できないのかな

221:名無しさん@お腹いっぱい。
17/10/11 11:55:15.44 eCPj5mWL0.net
管理者権限でもやってみましたが変わりません

222:名無しさん@お腹いっぱい。
17/10/11 17:53:01.10 FW7ud3JO0.net
SetBatchLines, -1にして、数千行のバッチ処理をしている方って居ます?
最近AHKをアップデートしたんですけど、SetBatchLines, -1にしても昔の様に失敗しなくなったみたいなんです
もしかして修正でもされたのかな

223:名無しさん@お腹いっぱい。
17/10/11 18:16:15.05 MfAdhfs40.net
>>214
問題のスクリプトと環境は最低限書きましょう
そうしなければ何が間違っているのか誰にも分かりません

#Persistent
Process, Priority,, High
MsgBox % ErrorLevel ? "成功" : "失敗"
ESC::
ExitApp

224:214
17/10/11 21:21:43.67 eCPj5mWL0.net
>>217
失礼しました。私のとんだ勘違いでした。 私のスクリプトは
Process, priority, ahk_exe AutoHotkey.exe, AboveNormal
としていました
ahk_exeを外したら出来ました

225:名無しさん@お腹いっぱい。
17/10/12 01:02:36.24 9+/edpnH0.net
>>213
その方法でためしたところ一応キーはsendできていましたがショートカットは動きませんでした
アプリ側の問題みたいです ありがとうございました

226:名無しさん@お腹いっぱい。
17/10/12 12:40:14.52 fl4Aa2dU0.net
すみません
エクスプローラで選択しているファイルをあらかじめ指定したプログラムで起動したいのですが、
選択しているファイルのパスを取得するにはどうすればよいでしょうか?

227:名無しさん@お腹いっぱい。
17/10/12 13:48:00.68 22LCJS230.net
ctrl+cでクリップボード参照すればいいんじゃない?

228:名無しさん@お腹いっぱい。
17/10/12 14:30:20.01 WOPpKOf60.net
目的から考えると、Windowsの機能としてある右クリックメニューの「プログラムから開く」とか「送る」で出来るようにしておいて、
それをAutoHotkeyでキーを送って自動化すれば良いような。

229:名無しさん@お腹いっぱい。
17/10/12 15:31:51.36 gbYEcDhtM.net
昔ここでcomだかアクティブXだかでエクスプローラからファイル情取得するコードで盛り上がってた記憶あるけど
OSバージョンアップのたびにエクスプローラも様変わりしてるから今でも使えるかはわからんね
そもそも質問者の環境書いてないし
汎用で使いたいならクリップボードからパス拾うのが無難かと

230:名無しさん@お腹いっぱい。
17/10/12 18:16:00.48 sKWnufrn0.net
Excelの検索フォームのテキストを取得したいんですがうまくいきません。
Send, ^f
WinWaitActive, ahk_class bosa_sdm_XL9,,5
WinGet, OutputVar, ID
ControlGetText, text, ahk_id %OutputVar%
MsgBox, The text is:`n%text%
これで起動させるとtextがnullになってしまいます。
どなたかお助けを

231:220
17/10/12 18:30:17.45 fl4Aa2dU0.net
220です
クリップボード経由で思惑通りの動作できました
ありがとうございます

232:名無しさん@お腹いっぱい。
17/10/12 22:33:41.59 hFLP6ZS00.net
>>224
ControlGetText, text, , ahk_id %OutputVar%
これだとわざわざID取得した意味あんまりないけど
検索窓のハンドルではなくEditBOXハンドルを取得したい場合は WinGetではなくControlGetを使う
その場合もControlGetTextでの指定はControlではなくWinTitleとして指定する
URLリンク(ahkwiki.net)

233:名無しさん@お腹いっぱい。
17/10/12 23:11:28.22 TjO6Vz8k0.net
スクロールバーのShift+左クリックの動作を中クリックで実現したいんですが、
アドバイス頂けないでしょうか。

234:名無しさん@お腹いっぱい。
17/10/12 23:36:21.69 WOPpKOf60.net
>>227
その機能、今知ったわ。
今まで知らなかったWindowsの操作かと思ったけど、Live5chの機能なのかな。

235:名無しさん@お腹いっぱい。
17/10/12 23:43:42.76 hFLP6ZS00.net
その機能とやらは MButton:: +LButton でできる機能とは違うのかえ?
OSバージョンによって挙動違うかもしらんから正しく再現できてるかもわからんが
win8ではおなじ挙動になってるようだが

236:227
17/10/13 01:10:48.45 3xeDM7QO0.net
>>228
一部効かないのもあるけど、割と昔からあるっぽいWindows標準の操作みたい。
俺も最近知りました。
>>229
確かに、MButton:: +LButtonで行けますね。
何か変に難しく考えちゃってたみたいです。
ありがとうございます!

237:名無しさん@お腹いっぱい。
17/10/13 08:14:19.11 3Z5Ik+Fw0.net
>>230
それは、スクロールバーの余白


238:部分のShift+クリックという機能の方なのかな?(いきなりその場所に移動) 最初に試したのが、Live5chでスクロールバーをShift+ドラッグして、Shiftは押したまま維持、 Shiftを離すと、スクロール前の位置に自動的に戻ったから、Windowsにこんな機能があったのかと 思って他のソフトで試すと出来なかったからさっきの書き込みをした。



239:227
17/10/13 08:59:11.07 3xeDM7QO0.net
>>231
いきなりその場所に移動する機能のことですね。
Shift+ドラッグでShift離したら元の位置に戻るというのは見たこと無いですね。

240:名無しさん@お腹いっぱい。
17/10/13 09:10:31.30 Kmc31x970.net
224です。
>>226
回答ありがとうございます。
しかし、依然としてtextの値はnullのままです。
Send, ^f
WinWaitActive, ahk_class bosa_sdm_XL9,,5
ControlGet, controlHWND, Hwnd,,, 検索と置換
ControlGetText, text, ahk_id %controlHWND%, 検索と置換
MsgBox, The text is:`n%text%
このように修正しましたがダメでした。他にも
ControlGetText, text,, A
としてみたりしましたがうまくいきません。
ちょっと調べてみたところ
URLリンク(so-zou.jp)
に「なお、このコマンドで取得できるのはWindow Spyの[Control Under Mouse Position]のTextと同じであり、これで取得できない情報はこのコマンドでも取得できません。」と記載されていたのでこれが原因なのかなと思いました。
長文失礼しました。

241:名無しさん@お腹いっぱい。
17/10/13 13:27:09.12 trCb60PR0.net
>>233
>226の後半にも書いたがcontrolHWNDはControlではなくWinTitleとして指定する
ControlGetText, text, ,ahk_id %controlHWND%
古くてすまんがうちのExcel2007ではAU3_Spy.exeで情報取れてるよ
最新のExcelは持ってないのでわからないが
URLリンク(i.imgur.com)

242:名無しさん@お腹いっぱい。
17/10/13 14:39:55.15 Kmc31x970.net
233です。
>>226
なるほどーーーーーーーーーーーーーーー
完全に私が勘違いしてました。質問自体が正しくありませんでした。
下記画像の「大文字と小文字を区別する」の文字列を取得するにはどうしたらよいですか?
URLリンク(imgur.com)

243:名無しさん@お腹いっぱい。
17/10/13 18:05:09.37 xSVAQVol0.net
テンプレにあるACC.ahkをつかうと取れることは取れる

244:名無しさん@お腹いっぱい。
17/10/13 19:20:26.57 1yuJh+l1M.net
後出しすぎてワロタ

245:名無しさん@お腹いっぱい。
17/10/13 21:29:13.62 sASp439J0.net
これを後出しって言うか?
自分が勘違いしてたのが分かったから質問し直しただけでしょ

246:名無しさん@お腹いっぱい。
17/10/13 22:33:16.76 trCb60PR0.net
解答してた身として言わせてもらうがエスパー要求度高すぎやでw
オプション表示の有無についてはままある勘違いだけど
あの質問内容とコードからフォーカス行ってないコントロールの情報を取得しようとしてるとはまず気づけないっす
つか今回の教訓は下手な説明よりSS一発ってことですな

247:名無しさん@お腹いっぱい。
17/10/14 20:58:48.61 TUhxuyu80.net
Windows 10でMouseGestureLで管理者権限のアプリ操作する正しいやり方ってなに?。。。
AutoHotKey.exeを管理者権限で実行させる
→スタートアップで起動できなくなる
MouseGestureLでタスクスケジューラでスタートアップさせる
→設定反映後に管理者権限のアプリが操作できなくなる
UAC下げるしかないの?うまくやれている人は教えてくれ

248:名無しさん@お腹いっぱい。
17/10/14 22:39:53.23 zq2sRIVJ0.net
keyhac >>>>>>>ahk

249:名無しさん@お腹いっぱい。
17/10/15 00:25:01.54 kczcI/Ax0.net
guiのボタンのテキストを押す度にplayとかpauseとかに替えたいんですけど
これって出来ますか?

250:名無しさん@お腹いっぱい。
17/10/15 02:35:03.28 TFGCjPn+0.net
242ですが
guicontrolで出来ました

251:名無しさん@お腹いっぱい。
17/10/15 07:29:44.49 nQ2z0aEU0.net
>>240
MouseGestureLは
タスクスケジューラ>該当タスクのプロパティ>


252:全般タブ>「最上位の特権で実行する」にチェック



253:名無しさん@お腹いっぱい。
17/10/15 17:15:52.69 Ug0/OrZC0.net
keyhac >>>>>>>>>>>>>>>>>>ahk

254:名無しさん@お腹いっぱい。
17/10/15 18:39:01.48 jZaJe0Jda.net
Keyhac
 ・キーボード操作系しかコントロールできない     ←AutoHotkeyとはユーザー層が異なる
 ・設定ファイルはPython                   ←多少は羨ましい, 複雑な処理をする場合に処理速度が遅そう
 ・一応、Macにも対応
 ・Win版はVisual Studio 2015 ランタイム必須       ←糞
 ・アプリケーションデータディレクトリを使う       ←糞
 ・配布用の実行ファイルを作成できない
 ・環境のHDD容量が16MBくらい必要(AutoHotkeyの倍)

>>241,245
Keyhacスレ作ってそちらでヤレ

255:名無しさん@お腹いっぱい。
17/10/15 18:54:34.65 Ug0/OrZC0.net
キー押しっぱなし病・ホットキーすり抜け病対策の研究
URLリンク(did2memo.net)

256:名無しさん@お腹いっぱい。
17/10/16 02:40:41.03 wsUgyV9w0.net
>>244
それになってるんだけど何かの拍子で管理者権限のツールが動かなくなる。Windows 10 Insider Previewだから何か変わっちゃったのか?前はいけたのか、最近Windows 10にしたからわからん

257:名無しさん@お腹いっぱい。
17/10/16 04:07:50.47 tduCt/4y0.net
MGLってAHK_LのインストーラのオプションからUI Accessを有効にしても効かないの?

258:名無しさん@お腹いっぱい。
17/10/16 04:13:04.63 RJWuaMVg0.net
>>248
なんでInsider Previewなんか使ってんの?

259:名無しさん@お腹いっぱい。
17/10/18 01:07:39.70 BXsLEC/o0.net
UpDownのRangeですが、小数点以下の数値は出来ませんか。
以下の様にしても、5から10までの5段階になってしまいます。
Gui, res:Add, UpDown, Range5.0-10.0
よろしくおねがいすます。

260:名無しさん@お腹いっぱい。
17/10/18 07:17:16.46 ycPUavpC0.net
50-100にしてgの中で割って再表示

261:名無しさん@お腹いっぱい。
17/10/18 11:46:51.26 BXsLEC/o0.net
サブラベルで処理するのですね。
やってみます、有難うございました。

262:名無しさん@お腹いっぱい。
17/10/18 15:45:22.45 000xPmmi0.net
続けて質問失礼します。
If MyVar Not Contains a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,^,\,@,[,],:,/,*
上記処理をする時にカンマとセミコロンを含めたいのですが、上手くいきません。
よろしくおねがいします。

263:名無しさん@お腹いっぱい。
17/10/18 18:37:36.90 000xPmmi0.net
お騒がせしましたが、これで対応できました。
If MyVar is Number

264:名無しさん@お腹いっぱい。
17/10/21 10:48:43.67 ib1iSRB60.net
既出かと思いますが、見つけられませんでした。
同じ状況の方いらっしゃるかと思うのですが、対処をご教示賜りたく。
よろしくお願いいたします。
windows10 pro 64bit
thunderbird 52.4 32bit
ロジクールM510
WheelAccel.ahkの加速は"0"でしてません。
WheelAccel.ahkにて、thunderbirdの全てのペインにおいて
thunderbirdをアクティブな状態でスクロールすると、ホイール1ノッチに対して一気に何行もスクロールしてしまいます。
非アクティブな状態では、通常(希望通り)の動きになります。
互換スクロールに指定すると、ホイールが効かなくなってしまいます。
thunderbirdでは一切機能させなくてもいいのですが、どうしたらいいでしょうか。。

265:名無しさん@お腹いっぱい。
17/10/21 11:07:15.17 zu1VgrM50.net
>>256
ahkスクリプト全終了させた状態ではどうなん?
thunderbird使ってないからわからんけど多分↓このあたりの予感
トラックボール コロコロ(((○ Part125©2ch.net
スレリンク(hard板:537番)-538

266:名無しさん@そうだ選挙に行こう! Go to vote!
17/10/22 10:54:03.79 Dcuxbaqr0VOTE.net
ギャー
send,{shiftup} のことを今までぜーんぶ{shift up}と書いていたー
道理でへんな動きしてたんだ…
以上ですご清澄ありがとうございました

267:名無しさん@そうだ選挙に行こう! Go to vote!
17/10/22 12:00:06.03 4CdFLK3a0VOTE.net
>>257
ありがとうございます。
WheelAccel.ahkを走らせていないときは、通常の動きをします。
スームーズスクロールはoffにしてましたが、onでも変わりません。
(´・ω・`)

268:名無しさん@そうだ選挙に行こう! Go to vote!
17/10/22 14:32:51.29 L96ui5KXrVOTE.net
>>258
?
それで正常に動いてるなら別にそのままでも良いかも知れないが
盛大に誤解してそう

269:名無しさん@そうだ選挙に行こう! Go to vote!
17/10/22 19:36:09.31 Dcuxbaqr0VOTE.net
>>260
あれれ、ウィキ見直したら確かに混在してる…表組みのほうはスペースなしで例示されてて、コード用例ではスペース入ってますね
でも自分の場合、今まで不要なShift押下げが発生してた(どうやらShiftとUpとが発生していた?)のがスペースなくすことによってスッキリ根絶されたので、ううむ謎です

270:名無しさん@お腹いっぱい。
17/10/22 20:33:35.27 L96ui5KXr.net
>>261
つ公式Help

271:名無しさん@お腹いっぱい。
17/10/22 23:00:48.87 h+7LhoKm0.net
>>259
失礼しました
うちのwin8 & ロジマウス(M505、M570)では問題が起きないため確認できないのですが
Hotkeysの先頭に以下追加でアクティブ時に機能OFFできると思います
#IfWinActive ahk_exe thunderbird.exe
WheelDown:: Send,{WheelDown}
WheelUp:: Send,{WheelUp}
#IfWinActive

蛇足ですがWheelAccel.ahkでは加速OFFにはできないようなので加速が不要な場合は
ここのWheelScroll.ahkで以下の設定にしてみて下さい
AcclMode = 0
AcclSpeed = 0
URLリンク(www6.atwiki.jp)

272:名無しさん@お腹いっぱい。
17/10/23 20:33:30.32 IGQCHjjB0.net
F8を押したら画面範囲内にあらかじめスクショ&ペイントで抽出しておいたjpg画像と一致する箇所があれば
そこにマウスカーソルが移動して一致箇所の左上でCtrl+右クリをするマクロを作りたいと思い、
始めてコードというものを書いているシロウトです。
F8::CtS()
CtS(){
BlockInput On
ImageSearch, foundX, foundY, 1266, 584, 1904, 856, *50 \Users\HK\Desktop\pics\alc.jpg
if ErrorLevel = 0
SendInput, {Click, %foundX%, %foundY%, Left, 1}
  Else If ErrorLevel = 1
MsgBox Icon could not be found on the screen.
If ErrorLevel = 2
MsgBox Could not conduct the search.
  BlockInput Off
}

上記を実行したところ(このときエラーはありません)
ErrorLevel = 2 の結果が返ってきます。
考えられる要因を教えてくださるエスパーの方、いらっしゃいましたら。。。(;´Д`)

273:名無しさん@お腹いっぱい。
17/10/23 20:44:49.90 oxsVTEnZ0.net
>>264
全角スペース

274:名無しさん@お腹いっぱい。
17/10/23 20:47:54.03 WCeYnLa+0.net
>>265
>>264の書き込みではつかっちゃいましたが
全角スペースは使用してないと思います(><;)

275:名無しさん@お腹いっぱい。
17/10/23 21:08:58.83 oxsVTEnZ0.net
>>266
画像ファイルをフルパス


276:指定すれば



277:名無しさん@お腹いっぱい。
17/10/23 21:14:49.38 IGQCHjjB0.net
\Users\HK\Desktop\pics\alc.jpg

C:\Users\HK\Desktop\pics\alc.jpg
のフルパス指定にしましたが同じでした><;

278:名無しさん@お腹いっぱい。
17/10/23 21:17:38.32 vqubHTur0.net
>>264=266
デスクトップスクショの場合、自分は劣化の無いBMPで保存してそれ使ってたな
一度BMPで試してみては?(PNGも使えるようだけど自分は試したことない)

279:名無しさん@お腹いっぱい。
17/10/23 21:19:32.28 vqubHTur0.net
あ、リロードしてなかったorz
解決したみたいね>>269は忘れて良いよ

280:名無しさん@お腹いっぱい。
17/10/23 21:22:53.81 IGQCHjjB0.net
>>269
BMPで保存したところ
できました!!!!!!!
感動です!
皆さんありがとうございました

281:名無しさん@お腹いっぱい。
17/10/25 17:03:51.19 ypp7UERA0.net
>>263
ご返信賜り誠にありがとうございます。
なんだと言われてしまいそうですが、setpointにスムーズスクロールがあり
それをoffにすることで、何十ノッチも発生することはなくなりましたが、挙動がおかしかったため
setpointをアンインストールし、無事解決しました。
一部機能を使ってましたが、autohotkeyでまかなえますし!
firefox quantumのタブスイッチのため、autohotkeyを導入しましたが
ztopをやめて、一本化出来ました。
ありがとうございました。

282:名無しさん@お腹いっぱい。
17/10/26 00:31:46.15 X6UNjp0Ir.net
var =
(
<tag1 value1="0.0" value2="1.0">
<tag2>1.0</tag2>
</tag1>
<tag1 value1="2.0" value2="3.0">
<tag2>2.0</tag2>
</tag1>
) ;文の一番最後に改行が1個入ります
;これが連続するUTF-8(BOMなし)/改行LFの440KBの文書test.xmlを
;#MaxMem 1000 ;#MaxMemありなしで変化無し
FileEncoding, UTF-8-RAW
FileRead, var, *t %A_ScriptDir%\test.xml ;440KB
RegExMatch(var, "s)^<(tag1).+/\1>\n", $)
FileAppend, %$%, *%A_ScriptDir%\output1.xml ;test.xmlとまったく同じものになります(1)
;これを以下のようにするとvar変数を72.0KBに削らないとマッチしませんでした

283:名無しさん@お腹いっぱい。
17/10/26 00:32:21.09 X6UNjp0Ir.net
Loop
{
if(!RegExMatch(var, "s)(?:^<(tag1).+?>\n<(tag2)>\d+(?:\.\d+)?</\2>\n</\1>\n)+", $)) {
var := RegExReplace(var, "s)(^.+)(?:<tag1.+$)", "$1") ;マッチするまで末尾を削る
continue
}else {
MsgBox, %A_Index%周目でマッチした, ;4430周目でした
FileAppend, %var%, *%A_ScriptDir%\output2.xml ;72.0KB(2)
break
}
}
MsgBox, おわり
(1)の$変数には440KB代入できるのに
(2)ではvar変数が72.0KBになるまでマッチしないのはなぜでしょうか
#MaxMem 1000 では結果は同じでした
Loopの手前にVarSetCapacity(var, 1000000)を入れたらスクリプトがフリーズしました
環境古くてすいません v1.1.26.01 u32版 win7です

284:名無しさん@お腹いっぱい。
17/10/27 20:04:09.15 EJJiT1eZ0.net
AHKのエディタですが
Notepad++
サクラエディタ
秀丸エディタ
EmEditor
sublime
などがあるようですが、これらの中で、ラベルやホットキーへジャンプ出来るものは
どれですか
SciTEではラベル名を選択してF12を押すとラベルの個所へジャンプしてくれるし
ホットキーのリストも表示してくれるのですが、同じ機能を持っているエディタは
どれでしょうか
ちなみに、秀丸ではなさそうでした

285:名無しさん@お腹いっぱい。
17/10/27 21:59:52.86 rnKjM+z20.net
sakura 秀丸 その他のブラウザにタグジャンプ機能があるけど・・・
c言語専用?

286:名無しさん@お腹いっぱい。
17/10/28 01:37:13.87 3WINCwSX0.net
AHKはメジャー言語ではないので大抵のエディタではデフォルト対応はしていないと思う
AHK用のプラグインなりカスタマイズなりが必要になるのでは
ちなみに秀丸の場合はAHKシンタックスの強調表示定義ファイルを作ってやると
それを元にTagsファイル生成や単語補完などが可能になる
Tagsファイルを作っておくことでダイレクトタグジャンブで飛べるようになる
他のエディタも大抵はctags使えるみたいだし ctags形式のタグファイル吐き出せるスクリプトさえ書けば
お好みのエディタでダイレクトタグジャンブできるようになると思われ

287:名無しさん@お腹いっぱい。
17/10/28 01:43:48.93 LU+IQveF0.net
URLリンク(ahkwiki.net)
AutoHotkey用のシンタックスハイライト、オートコンプリートなどの定義ファイルあり

288:名無しさん@お腹いっぱい。
17/10/28 02:09:08.35 kOR4GWlf0.net
DPIが高すぎるとMouseGestureLのジェスチャーツールチップが小さくて見えない & RR、LL、UU、DDのピクセル数判定が緩くなっちゃうのだけど、これってなんとかなんない??

289:名無しさん@お腹いっぱい。
17/10/28 06:26:09.85 Ctf6COgz0.net
>>276-278
秀丸エディターで、AutoHotkey_L.hilight、AutoHotkey_L.txt は入れています
タグジャンプですが、tagsファイルの作成でする方法と、Exuberant Ctagsを使ってプログラム実行でする方法を
やってみましたが、AHKには対応していませんでした。 ラベルは認識されません
ちなみに使い方が違うのかと思って、cppファイルで試してみましたがこちらは関数等はちゃんと認識されていました
ということで、ahk用には何か別の専用スクリプトとか用意しないとダメなようです

290:275
17/10/28 06:33:37.89 Ctf6COgz0.net
秀丸エディターではダイレクトジャンプを選ぶとgrepで探すというのがあるので
当分はこれでしますか

291:名無しさん@お腹いっぱい。
17/10/28 08:40:24.48 coB4BUvsr.net
ctagsは自分でルールを書けば解析されるよ

292:279
17/10/28 13:24:55.08 kOR4GWlf0.net
よく考えたらマルチディスプレイで高DPIと通常DPIのディスプレイが混在しているとジェスチャーの判定もおかしくなるしもうだめだ/(^o^)\
100px移動でジェスチャー判定していたとしたら、200%スケールしているディスプレイでは200px移動に変えないと実態としてずれる。
アドバンスナビのほうもソースコード見てみたけど辛うじて描画領域確保しているのがわかるだけでフォントが小さく表示される原因がわからん・・・

293:275
17/10/28 15:19:16.97 Ctf6COgz0.net
秀丸エディターですが、AutoHotkey_L.hilightファイルをいろいろ触ってみました
もともと入っていたC-function.hilightを参照しながら触ったのですが
91,^[a-zA-Z0-9]+:
として、これをtagsファイルの作成のときに選択すると出来なかったのですが
21,^[a-zA-Z0-9]+:
としてやると、tagsファイルにラベルも出てきてダイレクトタグジャンプが出来るようになりました
この91や21で協調文字の種類を決めているのはわかるのですが、タグの生成にも関わっているとか
いろいろとめんどくさいそうですが、タグ生成用のためのファイルは出来そうです
あとは、スレチなので、秀丸さんの方で聞いてきますか

294:名無しさん@お腹いっぱい。
17/10/28 19:06:53.26 3WINCwSX0.net
>>284
あらら自己解決してたかな
こっちでも調べてたんだけど飛び先ラベルとして認識させるには「行の強調」にしてやらないとダメっぽいね
> 21,^[a-zA-Z0-9]+:
これだけだとホットキーラベルとサブルーチンラベルにしか飛べないので関数にもジャンプさせるなら
149,^[_a-zA-Z0-9]*\(.*\)
を追加すると良さげ
ちなみにうちの.hilight
独自構築モノなのでwikiの強調定義とは互換ないです
URLリンク(ux.getuploader.com)


295:nload/124 👀Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2)



296:275
17/10/28 20:25:45.14 g6R5313m0.net
>>285
わざわざありがとう。DLして参考にさせてもらいました
hilightファイルの構造がどうなってるのかググっても良くわからなかったので試行錯誤してやるしかないです
でも目的はtagsファイルを作ることなので、tagsファイルは中を見ると構成が簡単そうなので、直接外部アプリ(DosやGnu)で
tagsファイルを作成することを考えてもいいかなとも思ったのですが、助かりました

297:名無しさん@お腹いっぱい。
17/10/28 21:30:38.60 3WINCwSX0.net
ごめん.hilightの中に構造説明のコメント付けてたんだけど長くなるので削っちゃった
秀丸エディタマクロヘルプのloadhilight文の項に強調定義フラグの意味が載ってるので
興味当たったら調べてみて下さい

298:275
17/10/29 06:33:32.61 QNF+jVue0.net
>>287
マクロヘルプのloadhilight見てきました。ありがとう。こんなところに書かれても見つからんわw
でも良くわかりました。 あとはColorSetだな

299:275
17/10/29 06:41:23.64 QNF+jVue0.net
>>287
ColorSet、こちらもわかりました。 マクロヘルプのconfigcolorにありました
頂いたahk20171028.hilightのColorSetのコメントの意味はこれだったのですね
これでもうほぼ理解できました。ありがとうございました

300:名無しさん@お腹いっぱい。
17/10/29 13:56:57.31 KzWRlc+C0NIKU.net
開いているメモ帳のファイルパスを取得し、エクスプローラで開きたいんですがうまくいきません。
ComGet(WinTitle) {
if(WinTitle = "ahk_class XLMAIN"){
ControlGet, hwnd, hwnd, , Excel71, %WinTitle%
}else if(WinTitle = "ahk_class OpusApp"){
ControlGet, hwnd, hwnd, , _WwG1, %WinTitle%
}else if(WinTitle = "ahk_class PPTFrameClass"){
ControlGet, hwnd, hwnd, , paneClassDC1, %WinTitle%
}else if(WinTitle = "ahk_class Notepad"){
ControlGet, hwnd, hwnd, , Edit1, %WinTitle%
}
Window := Acc_ObjectFromWindow(hwnd, -16)
Loop,10
try{
Application := Window.Application
}catch{
if(WinTitle = "ahk_class XLMAIN"){
ControlSend, Excel71, {esc}, %WinTitle%
}else if(WinTitle = "ahk_class OpusApp"){
ControlSend, _WwG1, {esc}, %WinTitle%
}else if(WinTitle = "ahk_class PPTFrameClass"){
ControlSend, paneClassDC1, {esc}, %WinTitle%
}else if(WinTitle = "ahk_class Notepad"){
ControlSend, Edit1, {esc}, %WinTitle%
}
}
Until !!Application
return Application
}

301:名無しさん@お腹いっぱい。
17/10/29 13:57:59.50 KzWRlc+C0NIKU.net
;エクスプローラでフォルダを開く
WinTitle := "ahk_class Notepad"
oNotepad := ComGet(WinTitle)
filePath := oNotepad.ActiveWindow.FullName
RunAs, %USERNAME%, %PASSWORD%
Run, explorer `/select`,"%filePath%"
RunAs
この様に書いたらエクセル、ワード、パワーポイントまではうまくいったんですが、メモ帳だけうまくいきません。どうかご教授を。

302:名無しさん@お腹いっぱい。
17/10/29 14:58:41.15 NgmpJOSW0NIKU.net
ifwinexist
winget processpath
run

303:名無しさん@お腹いっぱい。
17/10/29 15:57:39.21 oo5Bc3OZ0NIKU.net
メモ帳にはCOMが用意されていないみたいだね
素直に、名前を付けて保存

304:名無しさん@お腹いっぱい。
17/10/29 16:17:30.91 KzWRlc+C0NIKU.net
>>293
ありがとうございます。スッキリしました。

305:名無しさん@お腹いっぱい。
17/10/29 23:34:38.22 sce/LU2/0NIKU.net
スクリプト&AutoHotKey初心者です
欲しいものは、アプリケーションキーAppsKeyを押すと
1回目 wキーを長押し
2回め wキー+8キーを長押し
3回目 動作無し
以降繰り返し
というものです。
何から手を付けていいのかわからないのでここで質問させて頂きました。
URLリンク(sites.google.com)にあることは確認しています。
どうか御教授お願いします。

306:名無しさん@お腹いっぱい。
17/10/30 04:09:49.70 dZnUwqZQ0.net
Run,URLリンク(www.google.com)
このスクリプトで検索しているのですが、


307:以下の(1)~(3)のようなことはできるのでしょうか? (1)エディタで文字列を選択してこのスクリプトを実行した時、ブラウザをActiveにしない。 (2)新しいTabを開かないで検索する。 (3)新しいTabで検索するが、現在のTabに留まる。 (1)は検索したあとにもう1度エディタをActivateさせているのですが、もっとうまくできないかと。



308:名無しさん@お腹いっぱい。
17/10/30 04:34:56.79 vmv0acd+0.net
>>295
wikiのサンプルコード集に「キーを押す度に機能を切り替え」ってのがあるからそれ参考にするといい
URLリンク(ahkwiki.net)
何から手を付けていいか分からないならとにかくwikiをよく読みな
急がば回れ

309:名無しさん@お腹いっぱい。
17/10/30 10:16:54.38 vMir4n9d0.net
>>296
どれもブラウザ依存だからAHK側からは基本ムリ
ブラウザ側で設定したり、ショートカットキーやコマンドラインオプションをAHK側から利用するしかない
ブラウザ側でできないなら、(1)は検索する前にエディタを最前面固定するといくらかマシに見える
(2)(3)は諦メロン

310:名無しさん@お腹いっぱい。
17/10/30 10:17:43.96 jNVZDUzg0.net
>>296
ご使用中のブラウザのコマンドラインパラメータをご確認ください

311:名無しさん@お腹いっぱい。
17/10/30 12:35:59.54 dZnUwqZQ0.net
>>298
>>299
分かりました。ブラウザの機能も調べてみます。ありがとうございます。

312:名無しさん@お腹いっぱい。
17/10/30 22:34:34.80 BusKigX60.net
>>297
回答ありがとうございます。およそ次のような枠組みになることはわかりました。
AppsKey::
Flag += 1
If Flag =1
{
「コマンド1」
Return
}
If Flag =2
{

Return
}
Flag = ;3回目変数をカラ
Return
「コマンド1」に関してURLリンク(ahkwiki.net)を参照すると
Loop
{
Send {w down}
sleep 30
}
Send {w up}
のように書くのかと思いましたが、 loopを脱出する条件やAppsKey:: Flag += 1などを考えるとわかりません。
サーチが不足しているかも知れませんが、どうかお助け願います。

313:名無しさん@お腹いっぱい。
17/10/31 00:01:07.53 IArYTqnO0.net
>>301
何をやりたいのか良く分からないんだが>>295
1回目と2回目押した時の「長押し」って押しっぱなし状態で固定して
3回目押したときにwと8を離すってことじゃないの?

314:名無しさん@お腹いっぱい。
17/10/31 05:01:26.49 7gNoBxwg0.net
ahk初心者です。よろしくお願いします。
環境(win10 64bit、AHK v1.1.26.01)
最初にアクティブだった窓で再生したスクリプトが違う窓に切り替えた後でも、バックグラウン
ドの最初の窓で終了(動作)させたくて、下記を書いたのですが反応なしです(IEなら動作しま
した)。chromeやoperaをWintitle指定でControlsendをさせる方法がありましたら教えてください
r::
WinGetTitle, title, Yahoo! JAPAN
ControlSend, ahk_parent, {f5}, Yahoo! JAPAN
Sleep, 2000
ControlSend, ahk_parent, {f5}, Yahoo! JAPAN
Sleep, 2000
ControlSend, ahk_parent, {f5}, Yahoo! JAPAN
return

315:名無しさん@お腹いっぱい。
17/10/31 09:19:18.89 HXbL+oKY0.net
>>303
WingetClassを使おう
>>301
脱出条件が書けないのは動作イメージがあいまいだからでは?
「長押し」をどういう挙動にしたいのか考えてみて
n秒以上押下 なのか AppsKey離されるまで押下 なのか等

316:名無しさん@お腹いっぱい。
17/10/31 10:31:49.91 7gNoBxwg0.net
>>304
回答ありがとうございます
下のをやっても反応なしでしたorz
諦める系なのかな?。。
;r::
DetectHiddenWindows, on
WinGetClass, Chrome_WidgetWin_1, A
ControlSend, ahk_parent, {f5}, Yahoo! JAPAN
return
r::
WinGetClass, Chrome_WidgetWin_1
ControlSend, Chrome_RenderWidgetHostHWND1, {f5}, Yahoo! JAPAN
return

317:名無しさん@お腹いっぱい。
17/10/31 12:48:17.99 HXbL+oKY0.net
タイトルやclass名が固定でわかってるときはGetしなくていいよ
とりあえずウィンドウ指定の方法からわかってなさ


318:そうなのでwikiを読もう http://ahkwiki.net/Window (別タブではなくあくまで別窓という前提で) 確認してみたがアクティブ化後は効くけど非アクティブ時は効かない この手の挙動のアプリはControlSendでは無理な場合が多い WinActivate, Yahoo! JAPAN ahk_class Chrome_WidgetWin_1 ControlSend, Chrome_RenderWidgetHostHWND1, {f5}, Yahoo! JAPAN ahk_class Chrome_WidgetWin_1



319:275
17/10/31 16:35:05.33 zqELyNoa0.net
SysListView32ですが、値をとってくるのはGetContorolを使えば出来るのですが
リストの任意の場所の値をセットすることって出来ますか
今はその場所へmousemoveでカーソルを移動してクリックさせて
Sendで値を入れるみたいなことをリストのひとつひとつにしているのですが、時間がとてもかかります

320:275
17/10/31 16:36:10.72 zqELyNoa0.net
→ControlGet

321:名無しさん@お腹いっぱい。
17/10/31 19:20:47.45 7gNoBxwg0.net
>>306
無理なんですね・・・
わざわざ確認とスクリプト、ありがとうございました

322:名無しさん@お腹いっぱい。
17/11/01 13:04:59.67 oLVxkSWa0.net
新しいPCでahkファイルへのD&Dで引数が正常に取れないと思ったら8.3形式のファイル名が無効になってた
Win10ではシステムドライブ以外のフォーマットは8.3形式のファイル名の無効がデフォになったのかな?

323:名無しさん@お腹いっぱい。
17/11/01 22:15:18.71 0XbH3Oow0.net
>>302
解決しました。指摘通り単に一回目がSend {w down}...etcで動作しました。
動作チェックがテキストエディタ上のみで、またその挙動が物理キーを押し続けた場合と違ってwがリピートされなかったため、
仕様を誤認していました。混乱させてしまい申しわけありませんでした。
アドバイスくださった方々、ありがとうございました。

324:275
17/11/02 11:23:34.64 F6tfVhm+0.net
AHKで、任意のウインドウのWinTitleを変えることって出来ますか

325:名無しさん@お腹いっぱい。
17/11/02 11:58:51.92 aI4Kc6yj0.net
>>312
出来ます

326:名無しさん@お腹いっぱい。
17/11/02 14:38:27.28 gLmdbRIP0.net
```
result2 := VarSetCapacity(point, 64, 0x00)
result := DllCall("kernel32\GlobalMemoryStatusEx", "Ptr", &point, "int")
lasterror := Dllcall("GetLastError")
ListVars
msgbox
```
このようなものを書いたのですが、GlobalMemoryStatusExが失敗しているようで、
Global Variables (alphabetical)
--------------------------------------------------
0[1 of 3]: 0
ErrorLevel[1 of 3]: 0
lasterror[2 of 3]: 87
point[0 of 32]:
result[1 of 3]: 0
result2[2 of 3]: 64
と表示されてます。
error codeの87は"パラメータが正しくない"だそうです。なにがだめなのでしょうか?
環境はwin8.1 64 のAutoHotkeyU64.exeです。
プログラム言語やスクリプトはAutoHotkey以外ほとんどやった事がないです。

327:名無しさん@お腹いっぱい。
17/11/02 15:00:05.60 k9JkDB2u0.net
>>314
URLリンク(msdn.microsoft.com)(v=vs.85).aspx
NumPutで構造体のdwLengthを指定しないとだめでしょ

328:名無しさん@お腹いっぱい。
17/11/02 15:02:04.54 VfmNp1pV0.net
dwLength
The size of the structure, in bytes. You must set this member before calling GlobalMemoryStatusEx.

329:名無しさん@お腹いっぱい。
17/11/02 17:44:56.54 gLmdbRIP0.net
>>315
ありがとうございます!解決しました。
```
result2 := VarSetCapacity(point, 64, 0x00)
NumPut(64, point , 0, "int")
result := DllCall("kernel32\GlobalMemoryStatusEx", "Ptr", &point, "int")
;dwLength := NumGet(point, 0, "Int")
dwMemoryLoad := NumGet(point, 4, "Int")
ullTotalPhys := NumGet(point, 8, "Int64")
ullAvailPhys := NumGet(point, 16, "Int64")
ullTotalPageFile := NumGet(point, 24, "Int64")
ullAvailPageFile := NumGet(point, 32, "Int64")
ullTotalVirtual := NumGet(point, 40, "Int64")
ullAvailVirtual := NumGet(point, 48, "Int64")
;ullAvailExtendedVirtual := NumGet(point, 56, "Int64")
MsgBox,
(
メモリ使用率:%dwMemoryLoad%`%
全物理メモリ:%ullTotalPhys%B
利用可能メモリ:%ullAvailPhys%B
ページング可能な最大ファイルサイズ:%ullTotalPageFile%B
現在ページング可能なファイルサイズ:%ullAvailPageFile%B
全仮想メモリ:%ullTotalVirtual%B
利用可能仮想メモリ:%ullAvailVirtual%B
)
```

330:名無しさん@お腹いっぱい。
17/11/03 14:40:06.50 l+MEYLy90.net
これはバグでしょうか。 ツールチップなのですが
下記のスクリプトで、tipwindowというのを表示させてこれをアクティブにして
ActiveWindowsInfoを見てもWindowTitleのところに
tipwindow
というのが出てきません。にもかかわらず
WinGet, aid, ID, tipwindow
WinGetTitle, t1, ahk_id %aid%
とすると拾えて、t1にはtipwindowと入っています
これにExcludeTitleを加えて
WinGet, aid, ID, tipwindow,,ahk_exe AutoHotkey.exe
WinGetTitle, t1, ahk_id %aid%
とすると取れないだろうと思ったのですが、これでも
t1には、tipwindow
が入ってきます。 なぜでしょうか
idでもpidでも同じ結果です
^a::
ToolTip, tipwindow, 100, 500, 2
WinSet, AlwaysOnTop, On, ahk_class tooltips_class32
WinGet, aid, ID, tipwindow,,ahk_exe AutoHotkey.exe
WinGet, apid, PID, tipwindow,,ahk_exe AutoHotkey.exe
WinGetTitle, t1, ahk_id %aid%
WinGetTitle, t2, ahk_pid %apid%
MsgBox aid=%aid%`napid=%apid%`nt1=%t1%`nt2=%t2%
return

331:名無しさん@お腹いっぱい。
17/11/03 14:46:15.58 l+MEYLy90.net
あ、AHKのバージョンは、v1.1.24.04です
ToolTip, tipwindow, 100, 500, 2の最後の2にはなんの関係もありません。これはなしでも同じ結果です

332:名無しさん@お腹いっぱい。
17/11/03 16:03:16.16 bkVry8BK0.net
#If MouseIsOver("ahk_class Shell_TrayWnd")
このコードがwikiにありますが
タスクバー上で、Wheelの左右が効かないのはなぜでしょうか?

333:名無しさん@お腹いっぱい。
17/11/03 16:58:12.94 oAKaFRrm0.net
>>318
少し試してみた感じだと、Tooltipの内容をタイトルとして取得できるのは同一のプロセス内だけっぽい?
AWIは別スクリプトだから取れてないのかと
あとExcludeTitleにはahk_??は使えなかったような

334:名無しさん@お腹いっぱい。
17/11/03 17:24:02.39 l+MEYLy90.net
>>321
ToolTipsのときは、ActiveWindowsInfoのWindowTitleには出てないのに
WinGet等で取れるっていうのがなんとも気持ち悪いです
デバッグするときにあれって思う

335:名無しさん@お腹いっぱい。
17/11/03 17:29:54.20 l+MEYLy90.net
ああ、ActiveWindowsInfoっていうのは
Window Spyのことね

336:名無しさん@お腹いっぱい。
17/11/03 17:45:24.63 AEQ8+teS0.net
>>318
WindowSpyがTooltipの内容をタイトルとして拾えないのは昔から仕様扱いだったと思う。
ahkとWindowSpyの両方から全く同じコードでGetWindowText()を呼び出しても、
ahkからしか取得できないので、OSの仕様じゃねーの?という扱いだったような。
ahkのcppソースのコメントにWM_GETTEXT()とGetWindowText()のどちらを使うかってのが説明してあって、
WindowSpy改造すればタイトルとして取得できるけど、問題のほうが多そうということで仕様扱い。
まあ、tooltipにはタイトルなんてない、で誰も困らないような。

337:名無しさん@お腹いっぱい。
17/11/03 18:03:00.03 l+MEYLy90.net
>>324
複数のアプリを立ち上げていて、そのWinTitleがたとえば
アプリ1
アプリ2
アプリ3
となっていて、ToolTipsにアクティブになってる同じタイトル名を表示する、ということをしたのですよ
で、WinGet, v, PID, アプリ1
ってやったら、なぜかAutoHotkey.exeのPIDを取ってきたのです
で、なんで? ってなって今回の話になりました
ToolTipsはWindowSpyで見たらタイトルにはなかったのでテキストに入ってるのかと思ってて
原因究明にめっちゃ時間がかかりました。まさかToolTipsのPIDを取って来てたなんて思っても
いなかった
結局、こういう場合、WinTitleからは確実にアプリ1のPIDをとることが出来ません
現状ではアプリ1のexe名を憶えておいて、それを利用するとかしか出来ません
ExcludeTitleも使えないなんてなあ
でもexe名もWinTitleからは得られないんですよね。AutoHotkey.exeになっちゃうから

338:名無しさん@お腹いっぱい。
17/11/03 18:14:40.56 AEQ8+teS0.net
>>325 やろうとしたことは大まかにわかったけど詳細がわからないので解決できるのか知らないけど、 WinGet使う前にtooltip非表示にしてしまえばいいのでは?



340:名無しさん@お腹いっぱい。
17/11/03 18:25:55.44 l+MEYLy90.net
>>326
WinGetで取る前にtooltip非表示にして取ってから
再度表示にする、ということですね
非表示にすると取らなくなるのかな
でも可能性はありますね
でもなあ、ExcludeTitleが使えたら解決するんですけどねえ
ahk_XXのときは使えないとか、なんでやねんw
今日は疲れました

341:名無しさん@お腹いっぱい。
17/11/03 18:37:53.97 l+MEYLy90.net
>>324
>まあ、tooltipにはタイトルなんてない、で誰も困らないような。
それとここですが、結局、Tooltipsの場合は、そこに表示されている内容も
WinTitleになる、ということですね。でもWindowSpyには出ないので要注意です
ほんとこれこそちょっとしたTIPSになりましたw

342:名無しさん@お腹いっぱい。
17/11/03 19:28:22.49 oAKaFRrm0.net
ActiveWindowInfo.ahkをモジュール化して組み込んだら
自分のtooltipはちゃんとタイトル表示されるようになったわ

343:名無しさん@お腹いっぱい。
17/11/05 14:42:30.14 lmZ+8dDx0.net
>>325
俺も似たようなことやってるけど
「アクティブウィンドウ:t1」みたいに表示させてたおかげで無自覚回避できてたようだな
というか真面目な話、バグとして報告していい案件なんじゃないの

344:名無しさん@お腹いっぱい。
17/11/05 23:42:34.65 mfJuW1tS0.net
>>325
>ToolTipsにアクティブになってる同じタイトル名を表示する
この部分がよく分からないんだけど、アクティブになってるウインドウのPIDを取得して、
それを元にウインドウタイトルを取得して、
そのタイトルをtooltipに表示する
ということだろうか?
だとしたら、
^a::
WinGet, v, PID, A
WinGetTitle, title, ahk_pid %v%
ToolTip, % title, 100, 500, 2
return
というのは?
wingetにおけるPIDの説明には
PID 条件に一致する一番最初(前面)のウィンドウのPID(プロセスID)。
となっており、「一番最初(前面)」というのは必ずしも「アクティブ」とは限らないと思うんだが…
間違っていたらスマン

345:名無しさん@お腹いっぱい。
17/11/06 08:39:10.84 +3FFCnlR0.net
1.app1というアプリが起動してあり、さらに
2.tooltipにapp1と表示させてた状況で
3.WinGetでタイトルがapp1のappを釣ろうとしたら、tooltipの中身のほうにひっかかった
という話でしょ。

346:名無しさん@お腹いっぱい。
17/11/06 17:03:32.17 whGphSg+0.net
で、そのとき
appとtooltipを区別して釣ることができない、ということ

347:名無しさん@お腹いっぱい。
17/11/06 18:29:26.02 M//XmyI50.net
タイトル指定でツールチップを除外したいだけなら普通にやりようあるけど
あまり相手したくない感じの人だから関わらないほうがいいかな

348:名無しさん@お腹いっぱい。
17/11/07 11:44:49.50 C4uwBzlx0.net
TrayTip の Seconds って機能してるのかな
10 も 30 も変わりないように感じるけど

349:名無しさん@お腹いっぱい。
17/11/07 12:02:59.88 wPhF9P5t0.net
Note: This parameter has no effect on Windows Vista and later.

350:名無しさん@お腹いっぱい。
17/11/07 12:06:09.50 FUUC0b2I0.net
>>335
本家ヘルプによるとvista以降で機能しない
>>334
横からだけどよかったら触りだけ教えて

351:名無しさん@お腹いっぱい。
17/11/07 13:05:31.04 C4uwBzlx0.net
>>336
>>337
書いてあったんですね、ごめんなさい。
ありがとうございます。

352:名無しさん@お腹いっぱい。
17/11/07 17:19:49.83 SgV85eZs0.net
>>337
ahk_class ^(?!tooltips_class32$)

353:名無しさん@お腹いっぱい。
17/11/08 12:57:11.90 FQHhkSa+0.net
>>339
その正規表現の意味がわからなかったけど試したらできたわありがとう
正規表現の勉強しなおしてくる

354:名無しさん@お腹いっぱい。
17/11/08 21:20:19.90 Aynw/XIa0.net
aaa()
{
実行文字列
}
で読み込んだ関数が
この後に
v::
while (GetKeyState("v","p") )
{
aaa()
}
return
で読み込めないのなんでだ…
aaaの実行ラインは
v::
の後に書き込むと問題なく動いてる
1.関数化できてない?
2.引数できてない?
あまり恥ずかしい内容なので中身を詳しく書けませんが
原因として考えられることがあれば教えてください

355:名無しさん@お腹いっぱい。
17/11/08 21:50:37.38 D9XhZkru0.net
よーわからんがとりあえずtooltipで試しすとちゃんと動くので
恥ずかしい内容の中身に問題があるのでは?

v::
while (GetKeyState("v","p") )
{
aaa()
}
tooltip
return
aa(){
tooltip,aaa
}

356:名無しさん@お腹いっぱい。
17/11/08 23:12:20.37 Aynw/XIa0.net
>>342
確かにtooltipで動かすと問題なく作動してますね
中を確認してみます
ありがとうございます

357:名無しさん@お腹いっぱい。
17/11/10 00:56:44.09 far4pfand.net
1つの処理だと問題ないんですが
a::
の中と
b::
の中に
同じ処理を入れようとすると
Duplicateエラーが出るのは同じ関数を使っているから?
対応策はありますか?

358:名無しさん@お腹いっぱい。
17/11/10 01:37:54.01 a/DVTS050.net
記述を隠したがるやつ妙に増えたな

359:名無しさん@お腹いっぱい。
17/11/10 03:14:31.48 U5SA2Xv00.net
a::
goto label1
label1:
return
b::
goto label1
label1:
return
だとエスパー

360:名無しさん@お腹いっぱい。
17/11/10 05:39:27.48 a1txFjAv0.net
最近、AHKが動かないソフトが増えている気がするけど、俺だけかな?
トライアル版を試したこれも動かなかった。
HippoEDIT
URLリンク(www.hippoedit.com)
俺のバージョンはv1.1.22.04。OSはWin7 64bit。
外国ののソフトは動かないのが多い気がする。

361:名無しさん@お腹いっぱい。
17/11/10 09:21:13.07 rAX5gFmOa.net
一年半まえに使い始めたわいので
v1.1.23.05やで
最新の
v1.1.26.01
試してみたらどうや
アプデって言っても置き換えるだけだし

362:名無しさん@お腹いっぱい。
17/11/10 18:02:19.75 a/s4mTF+0.net
>>344
>>347
AHKの「なにが」動かない?
書かなければ「分からない」

363:名無しさん@お腹いっぱい。
17/11/10 18:23:39.05 a1txFjAv0.net
>>349
ホットキーが無視されてしまいます。v1.1.26.0.1でも同様です。キーをフックする優先順位がAHKよりも高いような印象です。
皆様はいかがでしょうか?
最近、海外のソフトでは案外ひんぱんに経験します。AHKを管理者権限でインスコすればいいのかな?

364:名無しさん@お腹いっぱい。
17/11/10 18:33:22.48 e6Htw9YT0.net
管理者権限で試すのはインストールではなくスクリプトの起動では

365:名無しさん@お腹いっぱい。
17/11/10 18:38:52.24 a/s4mTF+0.net
>>350
問題が起こる最小限のスクリプトを書いていれば話がスムーズに進む
F1::MsgBox フックなし
$F2::MsgBox フックあり
フックの有無
管理者権限 >>10

366:名無しさん@お腹いっぱい。
17/11/10 18:38:58.39 uMNzoQ5c0.net
質問が頓珍漢過ぎて、さすがに釣りとしかw

367:名無しさん@お腹いっぱい。
17/11/10 18:43:51.83 a1txFjAv0.net
>>351
おお、動きました。ありがとうございました。
管理者権限で起動する方法は↓にありましたので早速やってみます。
管理者権限で実行しなければいけない常駐アプリのスタートアップ設定方法
URLリンク(tanweb.net)

368:名無しさん@お腹いっぱい。
17/11/10 19:04:38.60 a1txFjAv0.net
>>352
私はいわゆるSpaceFNをやっていまして、それがSpace押下でSpaceが入力されて困っていました。
何故外国のマイナーなソフトだとこういう現象が起きるのか不思議ですね。定番のソフトでは経験したことありませんでした。

369:名無しさん@お腹いっぱい。
17/11/10 22:15:32.90 Oslygo4n0.net
windows APIのABM_SETSTATE messageを使って「タスクバーを自動的に隠す」をオンにしたいのですが、 APPBARDATA構造体のlP


370:aramメンバーには何を入れればいいのでしょうか?また、hWndメンバーに入れるのはタスクバーのハンドルということでいいのでしょうか?



371:名無しさん@お腹いっぱい。
17/11/11 01:35:11.41 gMztQec90.net
ABS_ALWAYSONTOP = 0x0002
ABS_AUTOHIDE = 0x0001

372:名無しさん@お腹いっぱい。
17/11/11 07:52:33.31 IBbBqaBiM.net
>>357
よろしければ出典を

373:名無しさん@お腹いっぱい。
17/11/11 16:56:54.15 F5Z3qywF01111.net
「タスクバーを自動的に隠す」とは全く違う内容だが、こんなのあったの思い出した
1 Hour Software by Skrommel - DonationCoder.com
URLリンク(www.donationcoder.com)
【RunAndHide】
#NoEnv
#SingleInstance,Force
#NoTrayIcon
SetWinDelay,0
IfWinExist,ahk_class Shell_TrayWnd
{
 WinHide,ahk_class Shell_TrayWnd
 WinHide,Start ahk_class Button
}
Else
{
 WinShow,ahk_class Shell_TrayWnd
 WinShow,Start ahk_class Button
}

374:名無しさん@お腹いっぱい。
17/11/11 17:01:34.05 F5Z3qywF01111.net
>>359

「Start」は「スタート」と日本語にしないとスタートボタンに適用されないはず
ま、どうでもいいけどスレ汚しスマン

375:名無しさん@お腹いっぱい。
17/11/11 19:12:22.78 r2k0ryN301111.net
>>358
スレリンク(software板:7番)のマンドクセがすげー便利だからブクマしとくといい
>■リンク等
>AutoHotkey メモ - Principia
>URLリンク(principia.s54.xrea.com)
>なまず日記
>URLリンク(www.tierra.ne.jp)
>eamatの日記
>URLリンク(d.hatena.ne.jp)
>1 Hour Software by Skrommel - DonationCoder.com
>URLリンク(www.donationcoder.com)
>Rosetta Code (さまざまな処理を各種プログラム言語で書いた場合の比較)
>URLリンク(rosettacode.org)
>
>以下公式フォーラムより
>URLリンク(www.autohotkey.com)  Tips N Tricks
>URLリンク(www.autohotkey.com) ListViewで大きな画像を扱いたい
>URLリンク(www.autohotkey.com) GUIで標準のもの以外を使いたい
>URLリンク(www.autohotkey.com) GUIを手軽に作りたい
>URLリンク(www.autohotkey.com) DllCallで定数調べるのマンドクセ
>URLリンク(www.autohotkey.com) コンパイルユーティリティ%28Compile_AHK II)
>URLリンク(www.autohotkey.com) HIDを直に読んで、キーボードやマウスの拡張ボタンの状態を得たい
>URLリンク(www.autohotkey.com) Windowsのイベントをフックして色々やりたい
>URLリンク(www.autohotkey.com) ShellFolder() : エクスプローラのPathおよび選択ファイルを取得
>URLリンク(www.autohotkey.com) ShellDesktop() : デスクトップで選択されたファイルを取得
>URLリンク(www.autohotkey.com) ポップアップメニューの情報を得る
昔はテンプレにあったんだがいつの間にか消えてたんだな

376:名無しさん@お腹いっぱい。
17/11/12 12:55:49.04 8syapqkm0.net
ジョイスティックの傾き検出して逆にキーボード操作に置き換えるスクリプトが出来たけど需要ある?
G13使用とかでジョイスティックの傾きで歩き、走りを検出できるようにしたもの
Fallout4用に作ったけどジョイスティックが使えないゲームとか、他にも応用が効くはず
あるならうpします

377:名無しさん@お腹いっぱい。
17/11/12 13:08:15.48 WM9jBImW0.net
JTKで間に合ってます

378:名無しさん@お腹いっぱい。
17/11/12 13:58:55.86 zqxC5E00a.net
内部的にどうしてんのかは見てみたいからうぷっていいのよ

379:名無しさん@お腹いっぱい。
17/11/12 14:31:21.01 RFK/5/nu0.net
ブロ


380:グとかにアップして、アドレス貼ってくれる方が読みやすいから好き。



381:名無しさん@お腹いっぱい。
17/11/12 17:34:26.63 8syapqkm0.net
アップしてみました
JTKまがいなジョイスティックの傾き入力をキーボードに変換するということをAutohotkeyでやりたいという人
興味があればどうぞ
URLリンク(ux.getuploader.com) 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2)


382:名無しさん@お腹いっぱい。
17/11/12 18:50:56.86 BMyO5Iwfa.net
入力角度まで検出できんのか
ありがてえありがてえ
JTKより好みにキーコンフィグできそうだ

383:名無しさん@お腹いっぱい。
17/11/12 21:23:05.65 PxES/4Ifa.net
この設定ってAHKで実現できますかね..?
URLリンク(qiita.com)
緑文字の「Ctrlキーと(SandSの)Shiftキーを押しながら」のところが実現できるのか...

384:名無しさん@お腹いっぱい。
17/11/12 21:24:18.65 0k5Ffqyx0.net
JTKで出来るのになんでこんなもの作ったのかというと
JTKの特殊入力のアナログレベルによって切り替えるってところに不満があったから
多分、座標のXYの傾きだけで長方形判定してる。斜め入力時のときに誤操作が起きるって理由から
コッチは半径を求めてそれを目安にすることにした
それと内部的にキーおしっぱループの処理がわかってないのが怖い、連打してるかもしれないから
なので作った

385:名無しさん@お腹いっぱい。
17/11/12 21:28:02.68 PRQr2sD50.net
>>361
ありがとうございます。もう少し調べてみます。

386:名無しさん@お腹いっぱい。
17/11/12 22:24:35.47 0k5Ffqyx0.net
URLリンク(ux.getuploader.com)
>>366のものを二軸対応しました。ゲームパッドは二軸が主流でしたね。 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2)


387:名無しさん@お腹いっぱい。
17/11/12 23:49:57.26 8jWLb8S60.net
>>371
右スティックの軸はゲームパッドによってZ/Z回転だったり
X回転/Y回転だったりモデルによって異なるぞ

388:名無しさん@お腹いっぱい。
17/11/12 23:53:32.89 0k5Ffqyx0.net
>>372
ああ、そうか、そうなっちゃうともうデバッグonにして動いてるパラメーターから同じ要領で変更してください。
関数化してもよかったか

389:名無しさん@お腹いっぱい。
17/11/13 00:03:39.23 HPvoCD+z0.net
そのうち角度計算、半径計算は関数化してもう少しシンプルに各軸設定出来るようにします。お待ち下さい

390:名無しさん@お腹いっぱい。
17/11/13 00:05:12.60 4HU28rAR0.net
いや別に要らんけど

391:名無しさん@お腹いっぱい。
17/11/13 00:10:45.51 mG2uBOBH0.net
ジョイなんとかは自分とこだと暴発しておっかないから使うのやめたなあ

392:名無しさん@お腹いっぱい。
17/11/13 00:16:44.83 jtVf8kaUa.net
三角関数とか半径計算とか思いつかなかったしめんどくさいことを代わりにやってくれただけでも俺としては助かったか
これだけあれば無理にバージョンアップしなくてもええで
軸情報さえ与えればいいからな
GPDwin用に使わせてもらうわ

393:名無しさん@お腹いっぱい。
17/11/13 01:55:06.59 9Yyb7OWG0.net
Menuで出すホップアップメニューがたまに外クリックしても消えなかったりするんだけど対策とかある?

394:名無しさん@お腹いっぱい。
17/11/13 04:56:43.07 DdvhQXaH0.net
>>378
対策は知らんけど、消す方法ならある
loop, 5 {
ifwinexist
break
winactivate, ahk_class #32768
send, {alt}
}

395:名無しさん@お腹いっぱい。
17/11/13 05:03:16.68 DdvhQXaH0.net
ifwinexist
じゃなくて
ifwinnotexist, ahk_class #32768

396:名無しさん@お腹いっぱい。
17/11/13 07:42:55.30 GHdXBXoe0.net
>>378
ポップアップメニュー表示中は、S


397:etTimerの割り込みでさえ出来なくなるので、 ポップアップメニューを別AHKにして呼び出さないと、表示後の対策は何も出来ない。



398:名無しさん@お腹いっぱい。
17/11/13 11:33:02.31 MpwXGRWu0.net
使ってたフリーソフトがたびたび落ちるから、似たようなの自作して安定してたけど
元がmigemo対応してたんで、こっちにも組み込んでみたら落ちるようになったつらい

399:名無しさん@お腹いっぱい。
17/11/13 16:43:29.88 fTwFmDsma.net
#usehook
^b::
send,^a
return

^a:: ;コピー
send,^c
return

^bでコピーのスクリプトを動かす方法ってないですか?Goto、Gosubは使わないで

400:名無しさん@お腹いっぱい。
17/11/13 17:12:12.27 1/94+gPG0.net
何がしたいのかさっぱりわからん

401:名無しさん@お腹いっぱい。
17/11/13 17:19:11.52 CsIQdQOr0.net
この手の質問にあるあるだな
何をしたいのか具体的に書かずに、省略した謎コードを添削させるという

402:名無しさん@お腹いっぱい。
17/11/13 17:54:41.25 fTwFmDsma.net
なぜそうしたいのかなんて書く必要ねーからだろアホ

403:名無しさん@お腹いっぱい。
17/11/13 17:56:04.52 fTwFmDsma.net
質問に答えねーでケチつけるだけのゴミがでてくることこそあるある

404:名無しさん@お腹いっぱい。
17/11/13 18:07:11.52 GHdXBXoe0.net
クイズ問題だと思って答えれば良いってことだな。

405:名無しさん@お腹いっぱい。
17/11/13 18:10:32.01 GHdXBXoe0.net
^b::
^a::
send,^c
return

406:名無しさん@お腹いっぱい。
17/11/13 19:13:13.64 uV0ePfEm0.net
いやいやそこでクイズに答えてしまうと質問者は己のコードミスに気が付かないまま終わるで
send,^a はどこ行っちゃったんですかねぇ

407:名無しさん@お腹いっぱい。
17/11/13 19:19:50.16 uV0ePfEm0.net
ああ^cと^a間違えてるわけじゃなくてソフトウェアホットキー有効にしたいのね
#usehook外せばいいんじゃないすか

408:383
17/11/13 20:15:26.75 fTwFmDsma.net
>>389
すいませんその方法も使えないんです。
>>391
そうですソフトウエアホットキーを使いたいということです。
ですが#usehookや$がないと無限ループがおこるとかリスクがあるみたいなのでもう少し調べてなかったらあきらめます。
ありがとうございました。

409:名無しさん@お腹いっぱい。
17/11/13 21:47:08.56 uV0ePfEm0.net
無限ループ起こるのは
^a:: send,^a
とかやった場合だよ
A_ThisHotkeyと同じものをsendしたい場合だけ ラベルに$つければいいだけじゃね

410:名無しさん@お腹いっぱい。
17/11/14 23:10:37.76 5FT+P57l0.net
ダメだ。マウスエミュレーションじゃゲーム上でカメラ動かないわ
何が条件なんだろう

411:名無しさん@お腹いっぱい。
17/11/17 20:21:21.45 v4vSzIoOa.net
3つを一度に比較ってできませんか?
space::
a:=10
b:=20
c:=30
z:=(a < c > b)
tooltip,%z%,600,800
return

412:名無しさん@お腹いっぱい。
17/11/17 21:19:49.16 /dyoxVd70.net
そういう関数を作ればいい

413:名無しさん@お腹いっぱい。
17/11/17 21:26:38.63 Bg65fQp30.net
ここ2,3か月前に同じような質問見たな
まああれは質問というか文句言いに来て恥かいただけだったが

414:名無しさん@お腹いっぱい。
17/11/18 00:44:39.76 9bPtI36B0.net
and使うのが嫌ってこと?
まとめて一行で書く方法が分からないってこと?

415:名無しさん@お腹いっぱい。
17/11/18 01:29:01.86 /66QZllda.net
だいぶ説明不足でしたすいません。
3つの数字は常に変動してて、ホットキー押したときにそのとき一番大きい値のを選択するってことがしたいです。
ifを沢山書けばできるけど一行でやる方法ないかなあと調べたのですが分からず。
一つ増えまして4つで比較ができればいいのですが。

416:名無しさん@お腹いっぱい。
17/11/18 02:02:09.20 s0iz+kxI0.net
z := (a >= b ? a : b) >= ( c >= d ? c : d ) ? (a >= b ? a : b) : ( c >= d ? c : d )
1行で書けるけど、1年後とかに見たら何をやってるのか分かり難いので
ifで書いといたほうが視認性はいいんじゃないかな

417:名無しさん@お腹いっぱい。
17/11/18 02:03:39.21 9bPtI36B0.net
参考演算子使えばやれないこともないが素直にif書くほうが楽だと思うわ

418:名無しさん@お腹いっぱい。
17/11/18 02:04:14.18 9bPtI36B0.net
おっとかぶった

419:名無しさん@お腹いっぱい。
17/11/18 02:26:47.34 vo5Qrzy00.net
可変長引数を取るmax関数でも定義すればいいじゃない
Max(params*) {
t := params[1]
Loop % params.MaxIndex() - 1 {
b := params[A_Index + 1]
t := t > b ? t : b
}
Return t
}
a := 10
b := 20
c := 30
d := 40
MsgBox % Max(a, b, c, d)
Return

420:名無しさん@お腹いっぱい。
17/11/18 07:53:06.18 DK0R+z7u0.net
>>403
これはすばらしい。 こんなこと出来たんだ

421:名無しさん@お腹いっぱい。
17/11/18 09:51:33.02 73eJM4Pl0.net
integer限定でよければこういう方法も
Max_integer(params*) {
o := object()
Loop % params.MaxIndex() {
o[params[a_index]] := true
}
Return, o.MaxIndex()
}

422:名無しさん@お腹いっぱい。
17/11/18 15:19:43.22 KK0M+Lkna.net
質問です
対話形式プログラムの自動化ってできるんでしょうか?
コマンドプロンプトに対してControlSendで送ることは出来ても
返答メッセージの読み取り方が分かりません。

423:395
17/11/18 17:29:00.55 9x5Xxm/fa.net
>>400
>>403
>>405
おー、すごい
できるようになりましたありがとうございました。
ahkを一年以上使ってるけどwiki読んだり検索して似たようなことやってる人のスクリプトを見てもわからなくてちょっと改変して移植もできない場合が多すぎて自分のポンコツぶりが悲しいw

424:名無しさん@お腹いっぱい。
17/11/19 10:41:23.26 Z14m3kUG0.net
>>406
uwscは doscmd で出来るけど、ahkでは試そうとしたこと無いので出来るかどうか解らない

425:名無しさん@お腹いっぱい。
17/11/19 12:25:42.07 S3PDgYNS0.net
>>406
大昔に無理やり実装してた人はいた、オリジナルANSI版の頃のだからたぶん今だと動かないと思うが
ここの プロセスを起動して標準出力を読み書き
URLリンク(lukewarm.s101.xrea.com)
最近のだとこの辺とか?
AutoHotKey_Lで、標準出力を得る方法。
URLリンク(poimono.exblog.jp)
単純に出力見たいだけだったらファイルにリダイレクトしちゃうのが簡単だけど
(書き込み規制に引っかかるので全角化)
RunWait, cmd.exe /c es.exe 検索文字列>temp.tmp,,Hide /UseErrorLevel
FileRead,var,temp.tmp
msgbox,%var%

426:名無しさん@お腹いっぱい。
17/11/19 13:05:22.35 TLd+5rvh0.net
|clip

427:名無しさん@お腹いっぱい。
17/11/19 16:27:40.09 wn0nPePn0.net
>>406
例えば rmdir を使ってフォルダとその中にあるファイルを削除する場合
app := ComObjCreate("WScript.Shell").Exec(ComSpec)
app.StdIn.WriteLine("rmdir /s D:\DeleteMe") ; D:\DeleteMe と DeleteMe フォルダの中にあるファイルを削除するコマンド
W


428:hile (1) { ; DeleteMe フォルダの中に一つでもファイルやフォルダがないと無限ループするから注意 msg .= app.StdOut.Read(1) ; ReadLine だとこちらの入力待ちの時にデッドロックする If (InStr(msg, "よろしいですか (Y/N)?")) { MsgBox % msg app.StdIn.WriteLine("Y") ; 確認を求められたので y を入力して削除を実行 break } } app.StdIn.WriteLine("exit") Return こちらの入力待ちになるまでの処理は色々なやり方があると思う



429:名無しさん@お腹いっぱい。
17/11/19 16:56:27.05 X7pjzKSy0.net
URLリンク(autohotkey.com)

430:406
17/11/20 09:16:01.49 r9poHEzN0HAPPY.net
いろんなご意見ありがとうございます!
>>408
対話型には向いてなさそうな…
>>409
url一つ目のやつは試してみたけどahk_lだと動きませんでした
url二つ目のやつはout of memoryとでて、こっちもダメでした😭
>>411
これです!
なるほどこうやってCOMオブジェクトを使うんですね
すごい勉強になりました
>>412
原理的には411とほぼ一緒みたいですね
WINAPIはいまだにさっぱりよくわかりません
高速でControlSendを使うと
キーボードからの入力がたまにロックされて使えなくなってしまうことがあったので
COMオブジェクトで直接読み書きできるならそれにこしたことないですね

431:名無しさん@お腹いっぱい。
17/11/22 03:26:57.07 DaaBsnMY0.net
キーの長押しすり抜け病って修正されてるのかな?
未だなら早よ!
これがちゃんとできないとカーソル移動とか怖くてAHKは使えないんだよ
致命的な不具合だ!

432:名無しさん@お腹いっぱい。
17/11/22 06:40:23.02 ee0mAgGh0.net
一生治らないから諦めろ

433:名無しさん@お腹いっぱい。
17/11/23 11:33:48.10 IP8Uaqwm0.net
>>415
こんなポンコツよく使ってると感心する 信じられないw
もちろんこれがゆえにkeyhacに移行したわ!

434:名無しさん@お腹いっぱい。
17/11/23 12:32:45.22 AEqjMUC50.net
>>416
ハイハイ二度と来るなよ

435:名無しさん@お腹いっぱい。
17/11/23 12:36:42.73 6CZftXIg0.net
ここ数年で作ったものを見返してみたら全くホットキーと関係ないものばかり
なんで俺はAHKを使ってるんだろう…?

436:名無しさん@お腹いっぱい。
17/11/23 14:25:49.30 ekf0KvoP0.net
>>416
>>246

437:名無しさん@お腹いっぱい。
17/11/23 14:48:38.73 S1ijK/CVM.net
ちょっとしたファイル操作とかでもahkでやろうとする癖は付いてしまってるな
本来ならbatやwshあたりでやればいいんだろうけど

438:名無しさん@お腹いっぱい。
17/11/23 21:58:00.87 IP8Uaqwm0.net
本当にAHKは使いもんにならんのよ!
キーログを見るツールとかを立ち上げてAHKの動作を確認したんだが
スクリプトがまともに動かんのよ、ダメだろこれは!
ちゃんとフックできてないんよ、笑うわw

439:名無しさん@お腹いっぱい。
17/11/23 22:19:25.20 AEqjMUC50.net
>>421
だからもう来るなよ
頭沸いてんの?

440:名無しさん@お腹いっぱい。
17/11/23 22:38:36.55 IP8Uaqwm0.net
AHKって宗教か?
本当に改善が必要な部分を指摘してるのにまともに考えられないの?
だよ

441:名無しさん@お腹いっぱい。
17/11/23 23:07:41.31 AEqjMUC50.net
>>423
お前こそ宗教なの?
気持ち悪いから早く消えろよ

442:名無しさん@お腹いっぱい。
17/11/24 00:16:07.99 uAE0Il4A0.net
すり抜けとか押しっぱなしの指摘なんて散々されてると思ってたけど、そうでも無いの?

443:名無しさん@お腹いっぱい。
17/11/24 00:28:07.79 VrzeCVMba.net
             /ヽ       /ヽ
            / ヽ      / ヽ
  ______ /U ヽ___/  ヽ
  | ____ /   U    :::::::::::U:\
  | | ハサミ が  // ___   \  ::::::::::::::|
  | | 使エネーヨ |  |   |     U :::::::::::::|
  | | ヽ(`Д´)ノ.|U |   |      ::::::U::::|
  | |  >>421  | ├―-┤ U.....:::::::::::::::::::/
  | |____ ヽ     .....:::::::::::::::::::::::<
  └___/ ̄ ̄      :::::::::::::::::::::::::|
  |\    |           :::::::::::::::::::::::|
  \ \   \___      ::::::

444:名無しさん@お腹いっぱい。
17/11/24 00:40:22.15 2kxbHRR30.net
いうても困らない範囲内でしか使ってないからなあ
そもキーリピート発生するキーをホットキー長押ししようとは思わんし
ahkは名前こそAutoHotkeyだがキーカスタマイズだけが目的なソフトじゃないしな
ウィンドウ制御とかいらんならahkである必要性は薄い
ソフトによって得手不得手あるんだし自分の目的に合ったもん使えばいいよ

445:名無しさん@お腹いっぱい。
17/11/24 05:53:07.19 nG64IX5N0.net
GUIについての挙動についてです
GUI,Add, GUI,Showなどで作ったウインドウ上でスペースキーを押したときの挙動
ってどこかに書いてあるでしょうか
このときに別の挙動をするように、
#IfWinActive
でこのGUIがアクティブになったときに
Space:Msgbox TEST
としても反応しないのです
で、このGUIウインドウ上でアクティブなボタンが実行されます
GUIがアクティブのときにSpaceキーで別の挙動をするようにする方法を
教えてください

446:名無しさん@お腹いっぱい。
17/11/24 05:59:36.57 FhfG+MVc0.net
AHKでは長押しカーソル移動がまともにできませんよ
ソースコードをテキストエディタで開いてカーソル移動したら
意図しない文字が入力されてしまうなんて怖くて使えませんな

447:428
17/11/24 06:10:17.36 nG64IX5N0.net
テスト用のサンプルスクリプトを作りました
スペースキーが出来ません
Gui,Add,Button,GButton1 W242 H30,ボタン1
Gui,Add,Button,GButton2 W242 H30,ボタン2
Gui,Show, , テスト
return
Button1:
MsgBox ボタン1
return
Button2:
MsgBox ボタン2
return
#IfWinActive, テスト
Space::MsgBox SPACE
Up::MsgBox UP
#IfWinActive

448:名無しさん@お腹いっぱい。
17/11/24 08:25:23.92 uAE0Il4A0.net
>>429
俺の環境でも再現できるかどうか実験したいから、そのスクリプトを書き込んでくれるとありがたい。

449:名無しさん@お腹いっぱい。
17/11/24 10:04:29.03 H9F6LVQ/a.net
伸びてると思ったら変なのが居た

450:名無しさん@お腹いっぱい。
17/11/24 11:37:55.77 L3hSVCH20.net
>>430
Spaceキーを押したらmsgboxに SPACE と表示されるよ

451:名無しさん@お腹いっぱい。
17/11/24 12:01:15.75 /KejfmoM0.net
>>429
だから使わなきゃいいだろ
思考力停止してんの?

452:名無しさん@お腹いっぱい。
17/11/24 12:07:56.16 nG64IX5N0.net
>>433
ごめんなさい。 いまやったら出来ました。おかしいな、さっきは何回やっても出来なかったのに
どうも私の環境のようです。 この質問は撤回します

453:名無しさん@お腹いっぱい。
17/11/24 12:25:49.45 QRaiE2Jja.net
2バイト文字でスクリプト書かないほうがいいぞー

454:名無しさん@お腹いっぱい。
17/11/24 12:58:05.32 RTDitcQE0.net
ネットワーク上にあるファイルをFileCreateShortcutでショートカット作りたいんですが、
処理が異常に遅いんですけど、10秒くらいかかるんですけど、何か対処法
知っていたらご教授お願いします。

455:名無しさん@お腹いっぱい。
17/11/24 13:31:37.36 V79XzJDg0.net
>>436
くわしく

456:名無しさん@お腹いっぱい。
17/11/24 13:33:56.53 RTDitcQE0.net
>>437です。
自己解決したので報告します。
FileCreateShortcut, "%filePath%", %shortcutName%
といった具合に%filePath%にはダブルクオーテーションを付ける。
以上です。

457:名無しさん@お腹いっぱい。
17/11/24 14:12:59.90 X+2EL7n0a.net
>>438
ラベル名の話。テストとか

458:名無しさん@お腹いっぱい。
17/11/24 14:55:45.26 uBW3Ah/90.net
>>431
自分は>>249じゃないが>>136試してみたら確かに"すり抜け"っ


459:つうのは発生した 例えばメモ帳でctrl押しながらhを押しっぱなしにして十数秒~数十秒そのままにしてると 文字の「h」が入力されたり「置換」ダイアログが現われたりした win7 32bit home ahk 1.1.26.01 自分はこんな操作しないから困らないな



460:名無しさん@お腹いっぱい。
17/11/24 14:57:52.80 V79XzJDg0.net
>>440
いやだから具体的に何故ダメなのか教えて

461:名無しさん@お腹いっぱい。
17/11/24 15:59:58.59 hNkbZ/Nua.net
>>442
俺が引っかかった事例としては関数呼び出しのときにエラー吐いたり、文字化け起こしたり、ファイルの保存形式によってはそのまま貼るとエラー吐いたりして二度手間になったり、コンパイルする時エラー吐いたりした

462:名無しさん@お腹いっぱい。
17/11/24 16:50:37.32 MGSGyO6j0.net
GUIのボタンです
Gui,Add,Buttonで作ったボタンの色を変えることは出来ますか
Gui, Color, Red, Blue
とかやってみたのですが、ウインドウの背景は変わってもボタンの色が
変わりません
ボタンはひとつづつ個別に色を変えたいです
オプションのBackgroundもやってみたのですが、良くわかりません
Cnもボタンのテキストの色が変わりません

463:名無しさん@お腹いっぱい。
17/11/24 17:18:51.48 jYHL/YfM0.net
>>436
UTF8だから3バイトじゃないの

464:名無しさん@お腹いっぱい。
17/11/25 00:41:35.70 LFO66Rjj0.net
7-zip32.dll使いたくて↓を参考にDllcallのめぼしいところを Astrに直してみたんですがA32.exeでしか上手くいかないです
URLリンク(mimizun.com)
U32.exeはLPCSTRの型をAStrにすると戻ってこなくなっちゃう
Strのままだと文字化けしちゃう
VarSetCapacityのポインタ回りだと思うんですがどう直したらいいかわかる方いますでしょうか
ArcGetName(){
/*** int WINAPI SevenZipGetFileName(HARC _harc, LPCSTR _lpBuffer, int _nSize) ***/
global
;;;size:=VarSetCapacity(buf,256)
;;;DllCall(ArcLibPrefix . "GetFileName",UInt,hArc,Str,buf,Int,size,Int)
size:=VarSetCapacity(buf,256*2)
DllCall(ArcLibPrefix . "GetFileName",UInt,hArc,AStr,buf,Int,size,Int)
return buf
}

465:名無しさん@お腹いっぱい。
17/11/25 01:07:14.55 g6gRHPWN0.net
憶測だけど GetFileName が UTF16 じゃなくて CP932 で返すんでしょ。だから U32 を使ってそのまま使おうとすると文字化けする
DllCall した後に、StrGet(buf, "cp932") すればいいんでない

466:名無しさん@お腹いっぱい。
17/11/25 05:36:53.80 GERaD2vLM.net
これってマウスの操作はできないんだっけ?

467:名無しさん@お腹いっぱい。
17/11/25 09:19:47.50 5xCYZF4O0.net
できる

468:名無しさん@お腹いっぱい。
17/11/25 10:20:06.46 96jiAY9X0.net
>>444
基本的にできない
応用的には超めんどい(スレリンク(software板:659番),661)
Pictureで代用するのが早いと思う
ButtonではなくCheckbox, ComboBox, DropDownList, Edit, ListBox, Radio, Textのいずれかなら以下を使うとできる
[CLASS] CtlColors - color your controls (2017-10-30)
URLリンク(autohotkey.com)

469:名無しさん@お腹いっぱい。
17/11/25 11:42:19.29 LFO66Rjj0.net
>>447
return buf
 ↓
return StrGet(&buf, "cp932")
でできました!
ついでに 7-zip64.dll 入れてライブラリ参照元書き換えたらU64.exeでも動きました
ありがとうございます!

470:名無しさん@お腹いっぱい。
17/11/25 11:56:20.53 lMhgyyaw0.net
たとえば、
label1:
filename=test1
gosub routine
return
label2:
filename=test2
gosub routine
return
label3:
filename=test3
gosub routine
return
と、番号が違うだけでほかは同じスクリプトが20個くらいある場合、これって
ずらっと書かないとダメなのでしょうか。 それともAHKらしく、
loop,20
{
label%A_index%:
filename=test%A_index%
gosub routine
return
}
みたいな技って使えませんか。これではダメだと思いますが。スクリプト生成まではやってくれないのでしょうか

471:名無しさん@お腹いっぱい。
17/11/25 12:00:28.80 kBt1V0zO0.net
>>452
それなら、filenameを引数にした関数で良いんじゃないかな

472:名無しさん@お腹いっぱい。
17/11/25 12:07:18.25 lMhgyyaw0.net
そう言われると思いましたが、これは一例で関数は使えないときでお願いします
スクリプトの展開まではしてくれないのですか

473:名無しさん@お腹いっぱい。
17/11/25 12:28:22.23 YtrqIety0.net
ラベルの省略はできないが処理はまとめられる
label1:
label2:
label3:
label4:
label5:
label20:
StringReplace filename, A_thisLabel,label,,ALL
gosub routine
return
ラベルごとループで作成したいなら一旦ファイルに書き出して .ahkスクリプトとして実行するしかないのでは
loop,20
{
FileAppend,label%A_index%:,temp.ahk
FileAppend,gosub routine,temp.ahk
FileAppend,return,temp.ahk
}
run,temp.ahk

474:名無しさん@お腹いっぱい。
17/11/25 12:39:03.92 lMhgyyaw0.net
>>455
なるほど、A_thisLabelを使うというのは思いつきませんでした
ちょっとやってみましたが、これは使えそうです
それと、temp.ahkを出力するやり方ですが、これもインクルードファイルを自動生成させて
それを読み込ませるという方法が出来そうですね
ahkがインクルードファイルを読み込むタイミングを確認する必要がありそうですが
ちょっと期待できそうですw
インクルードファイルがなければ自動生成させてreloadで再実行し、ファイルが出来てれば
自動生成処理は飛ばすとか

475:名無しさん@お腹いっぱい。
17/11/25 12:46:13.64 E2bEhulC0.net
いろいろわかったつもりになってるだけのことが多そうな人だから
関数が使えないと言うのもきっと思い込みなんだろう


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch