X



AutoHotkey スレッド part25 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。 転載ダメ©2ch.net (ワッチョイ f977-fKjf)
垢版 |
2017/09/14(木) 11:52:40.84ID:uijNj4qb0

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

■前スレ
AutoHotkey スレッド part24
http://egg.2ch.net/test/read.cgi/software/1487149472/

■日本語解説等
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: checked:vvvvv:1000:512:----: EXT was configured 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2)
0414名無しさん@お腹いっぱい。 (ワッチョイ f987-ijJr)
垢版 |
2017/11/22(水) 03:26:57.07ID:DaaBsnMY0
キーの長押しすり抜け病って修正されてるのかな?
未だなら早よ!
これがちゃんとできないとカーソル移動とか怖くてAHKは使えないんだよ
致命的な不具合だ!
0416名無しさん@お腹いっぱい。 (ワッチョイ 4787-sSls)
垢版 |
2017/11/23(木) 11:33:48.10ID:IP8Uaqwm0
>>415
こんなポンコツよく使ってると感心する 信じられないw
もちろんこれがゆえにkeyhacに移行したわ!
0419名無しさん@お腹いっぱい。 (ワッチョイ df8e-067h)
垢版 |
2017/11/23(木) 14:25:49.30ID:ekf0KvoP0
>>416
>>246
0421名無しさん@お腹いっぱい。 (ワッチョイ 4787-sSls)
垢版 |
2017/11/23(木) 21:58:00.87ID:IP8Uaqwm0
本当にAHKは使いもんにならんのよ!
キーログを見るツールとかを立ち上げてAHKの動作を確認したんだが
スクリプトがまともに動かんのよ、ダメだろこれは!
ちゃんとフックできてないんよ、笑うわw
0426名無しさん@お腹いっぱい。 (アウアウエーT Sa1f-9XXY)
垢版 |
2017/11/24(金) 00:28:07.79ID:VrzeCVMba
             /ヽ       /ヽ
            / ヽ      / ヽ
  ______ /U ヽ___/  ヽ
  | ____ /   U    :::::::::::U:\
  | | ハサミ が  // ___   \  ::::::::::::::|
  | | 使エネーヨ |  |   |     U :::::::::::::|
  | | ヽ(`Д´)ノ.|U |   |      ::::::U::::|
  | |  >>421  | ├―-┤ U.....:::::::::::::::::::/
  | |____ ヽ     .....:::::::::::::::::::::::<
  └___/ ̄ ̄      :::::::::::::::::::::::::|
  |\    |           :::::::::::::::::::::::|
  \ \   \___      ::::::
0427名無しさん@お腹いっぱい。 (ワッチョイWW 07c6-ZBcO)
垢版 |
2017/11/24(金) 00:40:22.15ID:2kxbHRR30
いうても困らない範囲内でしか使ってないからなあ
そもキーリピート発生するキーをホットキー長押ししようとは思わんし
ahkは名前こそAutoHotkeyだがキーカスタマイズだけが目的なソフトじゃないしな

ウィンドウ制御とかいらんならahkである必要性は薄い
ソフトによって得手不得手あるんだし自分の目的に合ったもん使えばいいよ
0428名無しさん@お腹いっぱい。 (ワッチョイ 0777-+V5r)
垢版 |
2017/11/24(金) 05:53:07.19ID:nG64IX5N0
GUIについての挙動についてです
GUI,Add, GUI,Showなどで作ったウインドウ上でスペースキーを押したときの挙動
ってどこかに書いてあるでしょうか
このときに別の挙動をするように、
#IfWinActive
でこのGUIがアクティブになったときに
Space:Msgbox TEST
としても反応しないのです
で、このGUIウインドウ上でアクティブなボタンが実行されます
GUIがアクティブのときにSpaceキーで別の挙動をするようにする方法を
教えてください
0429名無しさん@お腹いっぱい。 (ワッチョイ 4787-sSls)
垢版 |
2017/11/24(金) 05:59:36.57ID:FhfG+MVc0
AHKでは長押しカーソル移動がまともにできませんよ
ソースコードをテキストエディタで開いてカーソル移動したら
意図しない文字が入力されてしまうなんて怖くて使えませんな
0430428 (ワッチョイ 0777-+V5r)
垢版 |
2017/11/24(金) 06:10:17.36ID:nG64IX5N0
テスト用のサンプルスクリプトを作りました
スペースキーが出来ません

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
0437名無しさん@お腹いっぱい。 (ワッチョイ a77d-DWFp)
垢版 |
2017/11/24(金) 12:58:05.32ID:RTDitcQE0
ネットワーク上にあるファイルをFileCreateShortcutでショートカット作りたいんですが、
処理が異常に遅いんですけど、10秒くらいかかるんですけど、何か対処法
知っていたらご教授お願いします。
0439名無しさん@お腹いっぱい。 (ワッチョイ a77d-DWFp)
垢版 |
2017/11/24(金) 13:33:56.53ID:RTDitcQE0
>>437です。
自己解決したので報告します。
FileCreateShortcut, "%filePath%", %shortcutName%
といった具合に%filePath%にはダブルクオーテーションを付ける。
以上です。
0441名無しさん@お腹いっぱい。 (ワッチョイ 7ff3-Iy5Q)
垢版 |
2017/11/24(金) 14:55:45.26ID:uBW3Ah/90
>>431
自分は>>249じゃないが>>136試してみたら確かに"すり抜け"っつうのは発生した
例えばメモ帳でctrl押しながらhを押しっぱなしにして十数秒〜数十秒そのままにしてると
文字の「h」が入力されたり「置換」ダイアログが現われたりした
win7 32bit home ahk 1.1.26.01

自分はこんな操作しないから困らないな
0443名無しさん@お腹いっぱい。 (アウアウカー Sadb-d0L7)
垢版 |
2017/11/24(金) 15:59:58.59ID:hNkbZ/Nua
>>442
俺が引っかかった事例としては関数呼び出しのときにエラー吐いたり、文字化け起こしたり、ファイルの保存形式によってはそのまま貼るとエラー吐いたりして二度手間になったり、コンパイルする時エラー吐いたりした
0444名無しさん@お腹いっぱい。 (ワッチョイ 6785-+V5r)
垢版 |
2017/11/24(金) 16:50:37.32ID:MGSGyO6j0
GUIのボタンです
Gui,Add,Buttonで作ったボタンの色を変えることは出来ますか
Gui, Color, Red, Blue
とかやってみたのですが、ウインドウの背景は変わってもボタンの色が
変わりません
ボタンはひとつづつ個別に色を変えたいです
オプションのBackgroundもやってみたのですが、良くわかりません
Cnもボタンのテキストの色が変わりません
0446名無しさん@お腹いっぱい。 (ワッチョイ 07c6-5mWG)
垢版 |
2017/11/25(土) 00:41:35.70ID:LFO66Rjj0
7-zip32.dll使いたくて↓を参考にDllcallのめぼしいところを Astrに直してみたんですがA32.exeでしか上手くいかないです
http://mimizun.com/log/2ch/software/1265518996/420-422

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
}
0450名無しさん@お腹いっぱい。 (ワッチョイ 5f67-cO/U)
垢版 |
2017/11/25(土) 10:20:06.46ID:96jiAY9X0
>>444
基本的にできない
応用的には超めんどい(http://anago.5ch.net/test/read.cgi/software/1317156599/659,661
Pictureで代用するのが早いと思う

ButtonではなくCheckbox, ComboBox, DropDownList, Edit, ListBox, Radio, Textのいずれかなら以下を使うとできる
[CLASS] CtlColors - color your controls (2017-10-30)
https://autohotkey.com/boards/viewtopic.php?f=6&;t=2197
0452名無しさん@お腹いっぱい。 (ワッチョイ 0777-+V5r)
垢版 |
2017/11/25(土) 11:56:20.53ID:lMhgyyaw0
たとえば、
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
}
みたいな技って使えませんか。これではダメだと思いますが。スクリプト生成まではやってくれないのでしょうか
0455名無しさん@お腹いっぱい。 (ワッチョイWW 27ec-ZBcO)
垢版 |
2017/11/25(土) 12:28:22.23ID:YtrqIety0
ラベルの省略はできないが処理はまとめられる
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
0456名無しさん@お腹いっぱい。 (ワッチョイ 0777-+V5r)
垢版 |
2017/11/25(土) 12:39:03.92ID:lMhgyyaw0
>>455
なるほど、A_thisLabelを使うというのは思いつきませんでした
ちょっとやってみましたが、これは使えそうです
それと、temp.ahkを出力するやり方ですが、これもインクルードファイルを自動生成させて
それを読み込ませるという方法が出来そうですね
ahkがインクルードファイルを読み込むタイミングを確認する必要がありそうですが
ちょっと期待できそうですw
インクルードファイルがなければ自動生成させてreloadで再実行し、ファイルが出来てれば
自動生成処理は飛ばすとか
0464名無しさん@お腹いっぱい。 (ワッチョイ 7fe0-DWFp)
垢版 |
2017/11/26(日) 08:14:54.78ID:Dha5Tkpk0
ホットキーを押したら特定の変数をリストビューに追加する事って出来ますか?
リストビュー初期化時にLV_Addで追加する事は出来たのですが、リストが作られた後に追加する方法が分かりません。
0465464 (ワッチョイ 7fe0-DWFp)
垢版 |
2017/11/26(日) 08:25:47.32ID:Dha5Tkpk0
自己解決しました。
LV_Addで変数を%で囲ったらダメでした。外したらいけました><
0466名無しさん@お腹いっぱい。 (ワッチョイ 0767-DWFp)
垢版 |
2017/11/26(日) 20:16:06.88ID:dJtA2dZF0
現在のCoordModeを参照する方法ってありますか?
関数内でのみScreenにしたいのですが。
0468名無しさん@お腹いっぱい。 (ワッチョイ 0767-DWFp)
垢版 |
2017/11/26(日) 20:57:46.19ID:dJtA2dZF0
A_CoordModeToolTipみたいな感じなんですね
A_CoordModeだけで試してて「出ないじゃん」とか思ってました
ありがとうございます
0469名無しさん@お腹いっぱい。 (ワッチョイ 5ff4-DWFp)
垢版 |
2017/11/27(月) 19:53:12.22ID:EWIA3ZBQ0
Visual Studioで AutoHotKeyを動かす方法はないでしょうか
Win10 + Visual Studio community 2017 では動きませんでした
Win7 + Visual Studio 2013(管理者権限で実行) もダメでした
Win7 + Visual Studio 2013(管理者権限でない) はAHKきちんと動いたのが謎ですが・・
0470469 (ワッチョイ 5ff4-DWFp)
垢版 |
2017/11/27(月) 19:56:01.38ID:EWIA3ZBQ0
すいません、
Win10 + Visual Studio community 2017 も
管理者権限だとAHKは動かなくて
管理者権限でないとAHKが動きました。
これは何なんだろう
0471名無しさん@お腹いっぱい。 (ワッチョイ 4787-sSls)
垢版 |
2017/11/28(火) 01:35:37.31ID:mrDQFh/p0
確実にAHKがダメだから
この際、keyhacに乗り換えるのが賢明、時間が勿体無い
0473469 (ワッチョイ 5ff4-DWFp)
垢版 |
2017/11/28(火) 03:26:21.76ID:xNQcaR7I0
KeyHacも試してみましたが、こちらもやはり
Visual Studioを管理者権限で実行するとキーリマップが効かないみたいですね・・
0477名無しさん@お腹いっぱい。 (ワッチョイ 0735-+V5r)
垢版 |
2017/11/28(火) 14:03:02.90ID:marODPdK0
ウインドウのハンドルを取って来て、そのウインドウ上に絵を描くことって出来ますか?
Dll等を使っても構いません

あるウインドウがあって、特定の場所がはっきりわかるように色を上書きして塗りたいのです。
既存のウインドウにデコレーションするというか

AHK以外でも、もしそういうことが出来る方法をご存じなら教えてください
0478469 (ワッチョイ 5ff4-DWFp)
垢版 |
2017/11/28(火) 16:51:01.37ID:xNQcaR7I0
>>474
ありがとう!解決しました!
おっしゃる通りAHKを管理者権限で実行したらVisualStudioでもきちんと動きました
0480名無しさん@お腹いっぱい。 (ワッチョイ 5f67-cO/U)
垢版 |
2017/11/28(火) 19:00:19.64ID:mbteePMb0
>>477
WinGetでハンドルが取れる
WinGetPosでウィンドウのサイズと位置が取れる
Guiでウィンドウにかぶさるようなウィンドウを作ったり画像を表示できる
WinSetでウィンドウの表示領域や透明度をいじれる

こんなとこ?
0481477 (ワッチョイ 0735-+V5r)
垢版 |
2017/11/28(火) 19:47:20.21ID:marODPdK0
>>480
とってもいいヒントを頂きました。ウインドウに直接描画するのではなく、別のウインドウを作って
それにお絵かきして上に載せるということですね。で、WinSetで表示領域を加工するとか
ちなみに、AHKのGUIで、ツールチップのようにタイトルとか枠とかのないほんとにプレーンなウインドウって
作れますか
0482名無しさん@お腹いっぱい。 (ワッチョイ c756-QHFH)
垢版 |
2017/11/28(火) 20:41:51.03ID:lLg2f02R0
>>481
F1::
Gui, Color, 00AA00
Gui, -0x00C00000 +ToolWindow
Gui, Show, W300 H200
Return

みたいな感じかな
あとはマウスイベント透過するとかWindowの切り抜きとか透過率とかはWinsetで指定
さらにWindowの移動やサイズ変更に追従させるとか、非アクティブ時や最小化時にhideするとかの必要があればそれも考慮する必要あるかな
0489名無しさん@お腹いっぱい。 (ワッチョイ 5e7f-H0p+)
垢版 |
2017/11/30(木) 17:17:53.07ID:JYsA73zK0
1.MouseGetPosでマウス下のコントロールを取得できる
2.SetTimerで常にマウス下のコントロールを監視
3.取得したコントロールにControlFocus(必要に応じてWinActivateも追加)でフォーカスを移す
でどうだろう。スマートではないが。
0492名無しさん@お腹いっぱい。 (ワッチョイWW 2a2e-DNVt)
垢版 |
2017/11/30(木) 23:52:51.72ID:z9WhXSkf0
>>488
割りとかんたん。
タイマーでモニターしてマウスオーバーでウィンドクラスを取り続けて変数によけとく
変数内のウィンドクラスとマウスオーバーで取ったクラスが違ったらそのウィンドクラスをアクティベートする


以前作ったけどウィンドの順序が切り替わりまくってボツにした
0494名無しさん@お腹いっぱい。 (ワッチョイ 697d-9wPJ)
垢版 |
2017/12/01(金) 11:10:36.81ID:TiVxu/Rn0
Run, explorer `/select`,"%path%"
ってやるとQTTabBarで新しいウィンドウが開いてしまうから
ファイル名を指定して実行でやってるんです。下記のように。
string = explorer `/select`,"%path%"
MGU_ExecuteByFileName(string)
MGU_ExecuteByFileName(exeString){
Send, #r
WinWaitActive, ファイル名を指定して実行,, 5
MGU_PasteString(exeString)
Send, {Enter}
Return
}
MGU_PasteString(string, pasteKeys := "^v"){
Backup := ClipboardAll
Clipboard := string
Send,%pasteKeys%
Sleep, 200
Clipboard := Backup
}
っていう風にしてるんですけど、これだとたまーーに実行文字列がNullになったり
するんで、もっといい方法ないですか?
ご教授お願いします。
0497名無しさん@お腹いっぱい。 (ワッチョイ 697d-9wPJ)
垢版 |
2017/12/02(土) 10:28:46.57ID:kgC/DzRO0
>>494です。
>>495
どうも、ファイルを選択してフォルダを開くメソッドが無いみたいなんですが、
どうでしょうか?
>>496
shellexecutehookを利用してキャプチャするにチェックをしても、別のプロセスで
フォルダーウィンドウを開くのチェックを外しても
Run, explorer `/select`,"%path%"
とすると、新規ウィンドウで開いてしまうみたいです。

あと報告です。
Clipboard := string
の後に
Sleep, 100
を入れたらNullになる症状が今のところ出ていません。
0498名無しさん@お腹いっぱい。 (ワッチョイ 59d1-Dirq)
垢版 |
2017/12/02(土) 10:39:02.57ID:/oo7d0lg0
>>491
少し脱線するけど俺は「App=Device」というコマンドラインで再生デバイスを変更できるフリーソフトを使用してる
AHKとこれを組み合わせてポップアップを表示したりすればお望みのことが出来るんじゃないかな
環境によっては管理者権限で実行する必要がある
0499名無しさん@お腹いっぱい。 (ワッチョイ 697d-9wPJ)
垢版 |
2017/12/02(土) 11:44:01.02ID:kgC/DzRO0
>>495
qs := ComObjCreate("QTTabBarLib.Scripting")
qs.Open("C:\Users\UserName\Documents")
aw := qs.ActiveWindow
at := aw.ActiveTab
at.SelectedItems := "Book2.xlsx"
と記述したらできました!ありがとうございました!
0500名無しさん@お腹いっぱい。 (イルクン MM92-QUIW)
垢版 |
2017/12/02(土) 12:08:48.75ID:TChgRzeMM
解決したみたいだから蛇足だけど起動中のエクスプローラ(qttab)と
ahkrun、ファイル名runで管理者権限の有無が統一されてなかったとか?
ファイル名runでだけ別プロセスにならない理由がよく分からんね
0501名無しさん@お腹いっぱい。 (ワッチョイ 697d-9wPJ)
垢版 |
2017/12/02(土) 15:13:06.03ID:kgC/DzRO0
>>494です。
>>500
試しに
RunAs, %USERNAME%, %PASSWORD%
Run, explorer `/select`,`"%filePath%`"
RunAs
とやっていたところを、単に
Run, explorer `/select`,`"%filePath%`"
と書き換えてみましたが、どちらとも新規ウィンドウで開いてしまいます。
コマンドプロンプトからやってみても同じでした。

ファイル名を指定して実行のexeを見てみたところ、explorer.exeとなっていた
のでこれが原因ではないでしょうか?
0502名無しさん@お腹いっぱい。 (ワッチョイ 6dec-Vvu7)
垢版 |
2017/12/02(土) 20:16:38.83ID:uHWvz9WS0
すみません、以下の場合に複数のキーの状態をまとめて指定する事は可能でしょうか?。

If GetKeyState("RButton", "P")
msgbox, 押されている
else
msgbox, 押されていない

この部分を
If GetKeyState("RButton" "MButton" "XButton1", "P")
とか
If GetKeyState("RButton" and "MButton" and "XButton1", "P")
とか
If GetKeyState("RButton" || "MButton" || "XButton1", "P")
とか
If GetKeyState("RButton" or "MButton" or "XButton1", "P")
とか素人なりにやってみましたが、全くダメでした。
宜しくお願いします。
0511名無しさん@お腹いっぱい。 (ワッチョイ 697d-9wPJ)
垢版 |
2017/12/03(日) 10:41:00.60ID:OIZ/xCmR0
>>499です。
前述した方法で行うとAHK起動後、約5分くらいで下記のエラーが出ます。

Error.File:C:\Apps\MouseGestureL\Config\MG_User.ahk
Error.Line:771
Error.Message:0x8013150B -
Source: mscorlib
Description: オブジェクト '/62092dc6_d0c8_47dd_803a_d87384c15e0f/sqpempia+y4xaa3s532qntda_2.rem' が切断されたか、サーバーに存在しません。
HelpFile: (null)
HelpContext: 0
Error.What:
Error.Extra: ActiveTab


aw := qs.ActiveWindow
at := aw.ActiveTab
at.SelectedItems := "Book2.xlsx"
を下記のように修正したりしましたがエラーが出ます。
qs.ActiveWindow.ActiveTab.SelectedItems := fileName

どうもタイムアウトエラーのようなのですが、下記のページの解決策のように
AHKで記述する方法がわかりません。
http://bbs.wankuma.com/index.cgi?mode=al2&;namber=21484&KLOG=41

どなたか解決策をご存知の方、ご教授お願いします。
■ このスレッドは過去ログ倉庫に格納されています

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