AutoHotkey スレッド part25 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
1名無しさん@お腹いっぱい。 転載ダメ©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)
2017/09/30(土) 13:15:40.77ID:1lMD47790
>>123
ありがとうございます!使用したいソフトに数値あてはめてテストしたら問題なく動きました。
最近ahkを触り出したので、ご紹介いただいたDllCallなど、まだ触ったことのないコマンドでした。さっそくwikiを見つつ理解しようとしてますが頭がパニックになってます!アリモノの関数から値を引き出している?うーむ
またじっくり勉強していこうと思います、ありがとうございましたm(_ _)m
2017/09/30(土) 14:39:05.78ID:0PNJ6R9f0
>>112
サイドボタンに割り当てた任意キー(PgDnなど)がAHKに入力されないのは原因不明で
まだ解決してないんですが、いろいろいじってたら
Xbutton1と2がAHKに認識してくれるようになりました。

Xbutton2::
Send,{PgDn}
Sleep,200
While (GetKeyState("Xbutton2", "P"))
{
Send,{PgDn}
Sleep,30
}
Return

こんな感じで、リピート機能がないサイドバタンにリピートさせてます。
こんなコードでいいのか分かりませんが。
2017/09/30(土) 15:50:31.87ID:O67+Avl20
>>125
はじめとリピート中は
Send {PgDn down}
で、return前に
Send {PgDn up}
2017/10/01(日) 08:25:25.42ID:5/Rqy1jY0
>>126
添削ありがとうございます。
たしかにそれのほうがスマートですね。
128名無しさん@お腹いっぱい。 (ワッチョイ 1587-bz6c)
垢版 |
2017/10/01(日) 08:37:12.64ID:gRVszgej0
Ctrlのショートカットでカーソル移動をしてるのですが、
長押しすると文字のすり抜けが発生します。
どうすればこのすり抜け現象が解決するのでしょうか?

<^h::switchKeyByWindow("{Home}", "^h")
<^;::switchKeyByWindow("{End}", "^;")
<^l::switchKeyByWindow("{Right}", "^l")
<^j::switchKeyByWindow("{Left}", "^j")
<^i::switchKeyByWindow("{Up}", "^i")
<^k::switchKeyByWindow("{Down}", "^k")
2017/10/01(日) 09:12:52.31ID:Zz0Wp6Pe0
そんな関数知らねーよ
2017/10/01(日) 09:16:25.09ID:CNkKl/UV0
>>128
ググったら、1ページだけヒットした。
その作者に知らせてあげるのが一番良いよ。
131名無しさん@お腹いっぱい。 (ワッチョイ 1587-bz6c)
垢版 |
2017/10/01(日) 09:25:13.81ID:gRVszgej0
申し訳ありませn( ^ω^ )
;----------------------------------------------------------------
; Window によって送信するキーを振り分ける
;
; defaultKey デフォルトで送信するキー
; ctrlKey Ctrlを送信するウィンドウのとき送信するキー
;----------------------------------------------------------------
switchKeyByWindow(defaultKey, ctrlKey)
{
if (isCtrlKeyWindow())
{
Send,%ctrlKey%
}
else
{
Send,%defaultKey%
}
Return
}
132名無しさん@お腹いっぱい。 (ワッチョイ 1587-bz6c)
垢版 |
2017/10/01(日) 09:38:47.57ID:gRVszgej0
さらに、、、
;----------------------------------------------------------------
; Ctrl キーを送信する Window かどうかを判断する
;----------------------------------------------------------------
isCtrlKeyWindow()
{
; GVim
IfWinActive,ahk_class Vim
{
return 1
}
; Poderosa
IfWinActive,ahk_class WindowsForms10.Window.8.app.0.20f9772
{
return 1
}
; Mingw
IfWinActive,ahk_class ConsoleWindowClass
{
return 1
}
Return 0
}
2017/10/01(日) 09:44:20.65ID:ibUzHhgP0
自力で直せないならその関数使うのやめて#ifで書き直したほうがいいと思う
2017/10/01(日) 10:15:37.57ID:J6v0aHef0
SendMode, Playにすると動かないマシンがあるんだけどどういうことなんだろう
Win8やWin10のマシンではちゃんと機能するのにWin7のマシンではPlayにすると全く動作しなくなる
135名無しさん@お腹いっぱい。 (ワッチョイ 1587-bz6c)
垢版 |
2017/10/01(日) 10:16:23.02ID:gRVszgej0
単純にSendだけでもキーを切り替えた瞬間にすり抜けが発生してしまいます
136名無しさん@お腹いっぱい。 (ワッチョイ 1587-bz6c)
垢版 |
2017/10/01(日) 10:29:42.68ID:gRVszgej0
以下のスクリプトで、Ctrl+通常キーとのショートカットを長押して
カーソル移動しているのですが、上下左右を切り替えた瞬間に
通常キーがすり抜けます。何か手立てはありますか?

<^h::Send,{Home}
<^;::Send,{End}
<^l::Send,{Right}
<^j::Send,{Left}
<^i::Send,{Up}
<^k::Send,{Down}
2017/10/01(日) 13:36:43.12ID:CNkKl/UV0
>>136
SendMode,Input
#InstallKeybdHook
#UseHook
この設定だとどうなる?
2017/10/01(日) 15:24:44.69ID:gRVszgej0
>>137
レスありがとうございます
試しましたが、結果は変わりませんでした( ˘ω˘ )
Ctrlキー押しっぱなしで通常キーを切り替えた瞬間、
一文字だけすり抜けてしまいますね
2017/10/01(日) 18:45:43.89ID:rJfDiFvr0
MouseGestureLで画面端に接触って機能がありますが
autohotkeyではどのように再現すれば良いのでしょうか?
2017/10/01(日) 19:10:22.42ID:k6gLp1+F0
>>139
MouseGetPos
141名無しさん@お腹いっぱい。 (ワッチョイ 1587-bz6c)
垢版 |
2017/10/01(日) 20:28:29.75ID:gRVszgej0
Ctrlキーを使ったカーソル移動で、
Ctrlキーと通常キーの両方を押しっぱなしにしただけでも
時々すり抜けが起きますね、、、困ったな(''_'')
2017/10/01(日) 23:10:27.69ID:s8qjH76V0
>>141
Ctrlが押されてる間ループで自前処理はどうでしょう
2017/10/02(月) 18:40:04.60ID:aXY7sAIp0
>>142
それってどうやるのでしょう?教えて
2017/10/03(火) 11:26:31.37ID:k2wSjcMy0
わりと最近何度も話題になってたので過去ログさがせばすぐ出てくると思う
2017/10/03(火) 17:29:15.20ID:Z94A9/610
Win7ですが、プロセスの優先度を変更するのに、MSDOSでは
wmic process where name=
を使って変更できますが、AHKでも出来ますか
アプリを起動するごとに複数のアプリの優先度を組み合わせによって変更したいのです
アプリの起動はAHKで行うので、AHKで優先度も変更できれば楽です
MSDOSのバッチファイルを作っていちいちそれを起動するというのは避けたいのですが
2017/10/03(火) 17:41:40.86ID:y7JHy7Th0
Process
2017/10/03(火) 17:59:47.31ID:Z94A9/610
ありがとうございました
やってみたのですが、firefox.exeなのですが複数のプロセスがありますが1つだけしか変わりません
DOSではすべてが変わるのですが、全部を変える方法はありますか
WinGetのListで取ろうとしてもPIDは取れないし、同じイメージ名が複数ある場合は1つだけしか変えられないのでしょうか
2017/10/03(火) 18:09:22.57ID:ApSdm6mu0
winget List取得後にLoopで winget PIDしていけばよいのでは?
それかrunコマンド経由でwmic.exeの実行はできないん?
2017/10/03(火) 18:18:34.78ID:Z94A9/610
Firefoxはウインドウは1つだけ(タブは複数)起動しているんです
で、WinGet Listで取得すると、IDが1つだけしか取れません
でも、firefox.exeの同名のプロセスが3つ存在しています
150名無しさん@お腹いっぱい。 (ワッチョイ b54c-RH3k)
垢版 |
2017/10/03(火) 18:31:52.02ID:tZYykB2i0
なにをやりたいのかわかってないんだけど、
AHKで起動してるんだから、RunコマンドのOutputVarPIDでいいんじゃないの?
Run Firefox.exe, , , NewPID
Process, priority, %NewPID%, Low
でこのスクリプトで起動されたfirefox processは全部Low priority

OneTabのせいで、Firefoxのマルチプロセスが無効だったことに気がつかせてくれてありがとう
Firefox削除した
2017/10/03(火) 18:38:15.32ID:jR7/UGDJ0
頭悪い人の意見だけど
For process in ComObjGet("winmgmts:").ExecQuery("Select * from Win32_Process")
で全部取得しつつfirefox.exeならprocessで変えるようにすればいいんじゃない
2017/10/03(火) 18:51:40.20ID:Z94A9/610
>>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つのプロセスも
低のプロセスから派生したものだから低になるのでしょうね


この方法で出来ることはわかりました
でもすでに起動しているものを変更することはできないのかな
2017/10/03(火) 19:14:51.43ID:ApSdm6mu0
隠しプロセスだったらdetecthiddenwindows ONにしてからwingetは?
2017/10/03(火) 19:24:52.04ID:Z94A9/610
>>153
やってみました。 驚いたことに
detecthiddenwindows on
すると、1つだったIDが8つ出てきました。
これらはもちろん異なるIDだったのですが、WinGetでこれからPIDを求めるとすべて同じ多分親のPIDしか
出てこず、残りの2つのPIDは出ませんでした
155名無しさん@お腹いっぱい。 (ワッチョイ 1587-bz6c)
垢版 |
2017/10/03(火) 22:12:00.42ID:aFw/sdPM0
Ctrlキー押しっぱのカーソル移動のすり抜けは
以下のメソッドを追加したら少し改善した。
少なくとも一定時間の移動ではすり抜けなくなってみたい。
但し、方向切り替え時に通常キーの同時押し状態になってしまう瞬間はダメですが、

SendMode Event
#UseHook
#InstallKeybdHook
#HotkeyModifierTimeout 100
SetKeyDelay,0
2017/10/03(火) 22:41:37.06ID:v5TBqoIN0
>>155
それキーボード側の同時押し可能数の問題じゃね
ゲーミングキーボードとか多同時押し対応したものなら起きないかもな
2017/10/03(火) 23:05:38.81ID:aFw/sdPM0
>>156
自分が使ってるのはリアフォかHHKBPro2だから同時押し6つのヤツ
恐らくCtrl+I,J,K,Lの2つのキーのSendだから3つ目が来た時に
単独押しの判定になるのかな?
少し改善したのはHotkeyModifierTimeoutを追加したのが効いてると思う。
158名無しさん@お腹いっぱい。 (ワッチョイ 236e-e2we)
垢版 |
2017/10/03(火) 23:30:28.37ID:Fa/rtAAh0
>>157
Ctrl+Iが押されたときAHKはまずCtrl upをSendしてから↑をSendし↑ upをSendしCtrlをSendする
この処理中にJ,K,Lを押すとスルーするかな
2017/10/04(水) 00:35:32.62ID:QCRp6QYx0
コマンドラインのツールのフロントエンドを作ろうとしたんですけど
Runwaitするとタイマーも割り込めないんですね…
Runの後にループでスリープしながら見張るのが無難でしょうか?
2017/10/04(水) 15:56:38.38ID:rfwLN1/G0
>>157
Send, {Blind}{Up}
2017/10/04(水) 16:53:46.41ID:LAY40rLs0
>>160
Ctrl+上 になってしまうのでは
2017/10/04(水) 23:43:40.87ID:eAdJsIi70
wikiに「1つのキーに3種類以上の動作割り当て」っていうサンプルがありますが
なぜあれで2度押しができるんですか?
解説お願いしたいです。
2017/10/05(木) 00:56:48.37ID:6h/nzYUE0
押された::
Q.すぐに離されましたか?
↓yes  no→ A.長押しです
Q.またすぐに押されましたか?
↓yes  no→ A.1度押しです
A.2度押しです
2017/10/05(木) 01:09:31.71ID:L8qoU5mE0
あれはキーダウンでラベルが呼び出されてから
keywaitでキーアップを待っているわけよ
0.3秒以内にキーアップがこなければ長押し
0.3秒以内にキーアップが来てそこから0.2秒以内にまたキーダウンが来たら2度押し
そうでなければ1度押し
2017/10/05(木) 08:37:47.60ID:YdyjWLJj0
解説必要かな
コメント適切すぎてどこで何してるのか一目瞭然だし
あれ以上の説明って逆に難しい気がするんだけど
2017/10/05(木) 09:00:00.95ID:6h/nzYUE0
押されているのが離されるのを待つコマンドで
離されることなくタイムアウトしたら
errorlevelが trueになる

ちょっと理解が混乱するのはいたしかたない
2017/10/05(木) 17:46:10.09ID:lN6wv7uW0
あるアプリにEditのコントロールがたくさんあります。50個くらい
これらのテキストをControlGetTextで取っているのですが
ひとつひとつクリックして選択してからGetしているので時間がとてもかかるのです
なので、このコントロールのメモリアドレスを取得することはできませんか
そうするとメモリから直接すべてのテキストを取得することができそうな気がするのですが
ControlGetTextでテキストを取得しているということは当然メモリにアクセスしているので
AHKはアドレスをゲットしているはずですね
一度すべてのEditコントロールのメモリアドレスをゲットしておけば以降はメモリアクセス
だけでゲットできるか考えているのですが
2017/10/05(木) 17:56:02.37ID:/O7vn0vF0
WinGetのControlListかControlListHwndとか?
2017/10/05(木) 18:26:18.76ID:lN6wv7uW0
>>168
controlHWNDをゲットして出来そうですね。 ありがとうございました
2017/10/05(木) 18:44:26.59ID:Mw/WW6ff0
>>160
Send, {Blind}でやってみたが、カーソルの動きが
変な動きをするんだけど、、、
2017/10/05(木) 19:01:28.37ID:pHsu3ccW0
説明を聞いたら分かりました。ありがとうございます!
「KeyWait,vk1Dsc07B,D T0.2」は0.2秒経過してもdownされてなかったらそのまま通すんですね。
そこが分かってなかったです。
2017/10/05(木) 23:48:46.74ID:ZYF3rk8J0
>>170
{Blind} は変換キー+JKLi とかで使う時が良いよ。
2017/10/06(金) 12:38:18.47ID:TXUF7LvYa
左クリックでsetkeydelayを効かせるにはどう書いたらいいんですか?
3パターンともディレイがききません。

setkeydelay,400
send,{LButton 4}
send,{LButton}{LButton}{LButton}{LButton}
Click,Left 4
return
2017/10/06(金) 12:46:51.83ID:PVKvJFle0
SetMouseDelay
2017/10/06(金) 12:59:37.03ID:TXUF7LvYa
>>174
ディレイできるようになりました。
ありがとうございます。
176名無しさん@お腹いっぱい。 (ワッチョイ 0d87-BYga)
垢版 |
2017/10/06(金) 22:23:31.17ID:qJK6Bjjm0
>>172
Ctrl+通常キーの長押しは、ほぼこれでOKのようです。
同時押し時のすり抜けはまだ解決してませんが
今のところはキーの切り替え時に同時押しにならないようにすれば、
なんとかイケてます(^^♪
177名無しさん@お腹いっぱい。 (ワッチョイ 0d87-BYga)
垢版 |
2017/10/08(日) 06:34:31.46ID:QHNb58xD0
HHKBで単独のDelキーがほしいのでバッククォートに割り当てたんだけど
バッククォート自体の入力をCtrl+バッククォートでSendしたけどうまく出来ません。
対処方法を教えてください
2017/10/08(日) 07:05:56.35ID:PU2F6qYD0
質問するならまず自分が書いたスクリプトを貼るのが筋
2017/10/08(日) 08:08:29.49ID:QHNb58xD0
>>178
`::Send,{Blind}{Delete}←バッククォートをDelキーに割り当てはOK
^`::Send,{Blind}`←Ctrl+バッククォートでバッククォート入力がうまくいかない
2017/10/08(日) 08:17:56.19ID:PU2F6qYD0
>>179
仮想キーコード{vkC0}を使えば?
2017/10/08(日) 08:19:10.59ID:PU2F6qYD0
てかその使い方なら{Blind}は付けたらダメでしょ
2017/10/08(日) 08:22:33.90ID:TwLxa7sA0
`はエスケープ文字
wikiの仕様のとこ読んどいで

原因追求せずいきなり対処法教えてってのもなんだかな
2017/10/08(日) 10:03:11.28ID:QHNb58xD0
>>182
^`::Send,``とかでしょうか?いろいろ試したけどうまくいかない、、、
2017/10/08(日) 10:13:23.44ID:cTqdANU50
あとは >5のQ4
2017/10/08(日) 11:10:37.98ID:QHNb58xD0
#UseHookを定義してるので$は不要だと思う
2017/10/08(日) 18:29:50.95ID:PU2F6qYD0
vkC0使えと言ってるのになんで人の言うこと聞かないんだ?
2017/10/08(日) 19:21:06.25ID:QHNb58xD0
>>186
^`::Send,{vkC0}とかでしょうか?もちろん試したけどダメでしたよ
2017/10/08(日) 19:28:07.35ID:CPS4vhgt0
>>187
出力がダメなのか、入力がダメなのかを実験して
2017/10/08(日) 19:39:59.07ID:jtfbjOQf0
>>187
お前さあ、ここエスパーすれじゃねえんだから「もちろん試した」とか他人が分かるわけねえだろ
ろくに検証してないくせに上から目線になってんじゃねえよ
2017/10/08(日) 19:44:43.35ID:QHNb58xD0
>>188
入力がダメです。何か手立てはありますか?
2017/10/08(日) 19:47:31.10ID:Hhhcm4fC0
>>190
入力を仮想キーコードにすりゃいいじゃん
思考力停止してんのか?
2017/10/08(日) 20:25:27.98ID:QHNb58xD0
>>191
^{vkC0}::Send,{vkC0}か?実行エラー発生だわw
2017/10/08(日) 20:26:12.98ID:Hhhcm4fC0
>>192
入力の書き方が間違ってる
もっとちゃんと調べろ
2017/10/08(日) 20:30:32.94ID:mvXpExRv0
面白すぎるぞw
これ延々と続けるの?
2017/10/08(日) 20:46:24.13ID:QHNb58xD0
>>193
^vkC0::Send,{vkC0}か?これもダメだわ
2017/10/08(日) 20:52:54.09ID:mvXpExRv0
お前わざとやってるだろw
2017/10/08(日) 21:00:16.02ID:DDBFFTha0
>>195
なら君のキーボードが特殊で何か別のキーコードが発行されてんじゃね
#InstallKeybdHookでキーコード調べな
2017/10/08(日) 21:38:05.05ID:CPS4vhgt0
>>195
入力が問題ないかどうかは、
MsgBox,OK
とか出してみれば良い。
出力が問題ないかどうかは、
^a::
とかの入力で表示できるかどうか試せば良い。
2017/10/08(日) 21:58:28.07ID:K4/7+oooM
うちでは$付けて>183で出力できてるけどな
日本語キーボードだから実際に押すキーはshift+ctrl+@だけど
2017/10/09(月) 00:09:43.90ID:EuzlchIz0
エスパーになりたいなあ
2017/10/09(月) 00:46:03.79ID:l1fzjuhd0
Ctrlとバッククォートの同時押しをKeymillで見たら
VK_OEM3とVK_OEM4の二つの仮想キーが使われてるみたいなので
その値でSendしたら出来ました(^^♪
^vkF3::Send,``
^vkF4:Send,``
2017/10/09(月) 00:54:57.08ID:r2rCO5Lw0
散々アドバイス貰っておいて礼の一言も無し
こういう奴って他人を利用することしか考えてないんだろうな
2017/10/09(月) 01:29:35.12ID:ylAweGgd0
最近質問初回からストレートに「教えて」って言い方する人いて
地味に気になるわ
2017/10/09(月) 05:41:17.13ID:rf1NTRhp0
教えて!goo
2017/10/09(月) 11:57:03.87ID:HTLieya10
以下のスクリプトが急に効かなくなった
;━現在日時をスタンプする
^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
2017/10/09(月) 11:57:38.06ID:HTLieya10
つづき

削除前の無編集バックアップをそのまま上書きしてみる(動作しなかった時の状態のファイル)
何故か動作OK。その後ahkファイルを再起動するが動作せず
再度、スクリプトの自動リロードのコードを削除しリロードで動作OK

何か考えられる原因てあります?
この2つのコードが相性悪いようなのですが何かおかしいところはありますか?
エディタはサクラエディタを使用しています
スクリプトの自動リロードのスクリプト自体の方は問題無く動きます
自動リロードのスクリプトがある他のファイルでは問題は全く無いです
元々動作していましたが気付いたら動作しなくなってしまいました
2017/10/09(月) 12:16:33.49ID:HTLieya10
連投ですみません
スクリプトの順番を入れ替えたら問題無く動作するようになりました
う〜ん でも何故かはわからないです

動作OK
@現在日時をスタンプする
Aスクリプトの自動リロード
Bその他

動作せず
@スクリプトの自動リロード
A現在日時をスタンプする
Bその他
2017/10/09(月) 12:25:24.39ID:KhNcOqwe0
はやく教えろ
2017/10/09(月) 12:45:44.05ID:rf1NTRhp0
教えました。
2017/10/09(月) 12:50:33.29ID:NXVnt0i+0
#If閉じてないだけとか
2017/10/09(月) 13:18:13.91ID:HTLieya10
>>210
ありがとうございました
まさにその通りでした
いつの間にか#IfWinActiveを消してしまっていたようです
こんな初歩的なミスに気づかないとは...恥ずかしい
2017/10/10(火) 02:32:14.41ID:EmIG0yKf0
controlsend,について質問があります
たとえば以下の記述でwindows標準のメモ帳なら動きます

ControlSend, , test, ahk_class Notepad

ただこの記述では動かないアプリが結構ありますが、そのアプリでも成功したりしなかったりの条件があります
testをControlSendするアプリケーションのウィンドウが前面にあり、アクティブ状態なら成功しますがウィンドウが最小化状態だと失敗します
なのでwinactivateで失敗するアプリのウィンドウをアクティブ化してからcontrolsendしていますが
失敗するアプリでもwinactivateなし、最小化状態でcontrolsendすることってできないもんでしょうか
2017/10/10(火) 08:00:37.48ID:fQ70ranb0
その質問過去に何度も見てるけど解決したところは見たことない気がする
ただその質問する人ってほぼもれなくctrl空欄にしてるんだよね
まずは送りたいctrl特定してやってみて、できればハンドル指定で
バックグラウンド時にはcontrolフォーカス取れなくなるようなアプリなら効果あるかもしれないし
そこきちんと指定してやると結構精度上がるよ
2017/10/11(水) 11:38:11.27ID:eCPj5mWL0
Process, Priorityで、AutoHotkey自身をAboveNormalに変更しようとしたのですが、
出来ないようです
でも、タスクマネージャーで手動では変更できます。 なぜでしょうか?
出来ないのですか? 自分で自分は変更できないのかな
2017/10/11(水) 11:55:15.44ID:eCPj5mWL0
管理者権限でもやってみましたが変わりません
2017/10/11(水) 17:53:01.10ID:FW7ud3JO0
SetBatchLines, -1にして、数千行のバッチ処理をしている方って居ます?
最近AHKをアップデートしたんですけど、SetBatchLines, -1にしても昔の様に失敗しなくなったみたいなんです
もしかして修正でもされたのかな
2017/10/11(水) 18:16:15.05ID:MfAdhfs40
>>214
問題のスクリプトと環境は最低限書きましょう
そうしなければ何が間違っているのか誰にも分かりません


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

ESC::
ExitApp
2017/10/11(水) 21:21:43.67ID:eCPj5mWL0
>>217
失礼しました。私のとんだ勘違いでした。 私のスクリプトは
Process, priority, ahk_exe AutoHotkey.exe, AboveNormal
としていました
ahk_exeを外したら出来ました
2017/10/12(木) 01:02:36.24ID:9+/edpnH0
>>213
その方法でためしたところ一応キーはsendできていましたがショートカットは動きませんでした
アプリ側の問題みたいです ありがとうございました
2017/10/12(木) 12:40:14.52ID:fl4Aa2dU0
すみません
エクスプローラで選択しているファイルをあらかじめ指定したプログラムで起動したいのですが、
選択しているファイルのパスを取得するにはどうすればよいでしょうか?
2017/10/12(木) 13:48:00.68ID:22LCJS230
ctrl+cでクリップボード参照すればいいんじゃない?
2017/10/12(木) 14:30:20.01ID:WOPpKOf60
目的から考えると、Windowsの機能としてある右クリックメニューの「プログラムから開く」とか「送る」で出来るようにしておいて、
それをAutoHotkeyでキーを送って自動化すれば良いような。
2017/10/12(木) 15:31:51.36ID:gbYEcDhtM
昔ここでcomだかアクティブXだかでエクスプローラからファイル情取得するコードで盛り上がってた記憶あるけど
OSバージョンアップのたびにエクスプローラも様変わりしてるから今でも使えるかはわからんね

そもそも質問者の環境書いてないし
汎用で使いたいならクリップボードからパス拾うのが無難かと
■ このスレッドは過去ログ倉庫に格納されています
16歳の水野カイトが封印の刀を見つけ、時間が裂けて黒い風と亡霊の侍が現れ、霊の時雨と契約して呪われた刀の継承者となる場面

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