AutoHotkey スレッド part34 (610レス)
1-

513: 10/22(火)11:54 ID:gM/80aqV0(1) AAS
>>35
順番入れ替えてもおなじですか?
514: 10/24(木)02:07 ID:fvQei37C0(1) AAS
Clipboard Historyの話題が出たので、Runコマンドの外部プログラムとの連携について備忘録

pythonで文字列操作する場合
|| Run | python.exe ".pyのpath" | I O

pythonは、argparseを使わず、sys.stdin.readline().strip()で標準入力読み込みになる。

pyに入力が渡らずけっこうハマった。
Clipboard HistoryとAHKとの連携は、基本AHK側で処理してやりとりはファイル入出力した方が確実だった。
515
(1): 10/24(木)22:10 ID:UIMUUpQt0(1) AAS
同じホットストリングをIME状態で分岐したいのですが、IME ONだけうまくいきます。
OFF時はどうやって書けばよいですか?

#if !IME_GET(1)
:*?:/11::""{Enter}{left 1}
#if

#if IME_GET(0)
:*?:/11::""{left 1}
#if
516: 10/24(木)22:10 ID:VLsa+vNJ0(1) AAS
autoclick:
if !(WinActive("ahk_id" . actWin) && (A_TimeIdlePhysical < 50 && !mouseMoved))
{
ControlSend, , 3, ahk_id %actWin%
; Send directly to Digit3 to the window.
cx := xp%currentClick%
cy := yp%currentClick%
ControlClick, x%cx% y%cy%, ahk_id %actWin%,,,, NA
currentClick := % Mod(currentClick + 1, totalClicks)
}
省6
517: 10/24(木)22:11 ID:ElSGbcVY0(1) AAS
alt+xで無変換が出来なくなってしまいました

;;;altとXで無変換
SetKeyDelay, 0
!x::
SendPlay,{vk1Dsc07B}
return

何か足りないのでしょうか?
よろしくお願いします。
518: 10/24(木)22:13 ID:ogkMQ6UV0(1) AAS
HID Macros と Autohotkey を連携させようとしていて、
テンキーの+と-を、CtrlとAltoに割り当てようと考えています。

If ( tkey1down ) { ; Numpad1キーが押されているなら
If tkey16down ; Numpadsubキーが押されていれば
tkey1down := HoldDownKey2(tkey1down, "ctrl")
Else If tkey17down ; Numpadaddキーが押されているなら
tkey1down := HoldDownKey2(tkey1down, "alt")
Else ; どちらも押されてなければ
tkey1down := HoldDownKey2(tkey1down, "")}
と記入したところ、
省5
519: 10/24(木)23:38 ID:7NTt7BQj0(1) AAS
>>515
; IME On
#HotIf IME_GET() = 1
520: 10/25(金)12:54 ID:YNvUvHS90(1) AAS
#IfWinActiveで
Chrome YouTube
Firefox YouTube
こんな風にYouTubeで別の操作をしたい場合(例え話)
複数の条件を指定する方法を教えて欲しいです
調べた感じ論理演算子などは使えないみたいなんですが
521: 10/25(金)13:12 ID:iV6NPiWJ0(1) AAS
説明不足で意味がよくわからんけど
二つのブラウザで分岐させたいの?
522: 10/25(金)14:18 ID:fJbwAcE00(1/2) AAS
v2でIfWinActiveは削除された
#HotIfのクイックリファレンスにorが出てきたのはどう?
外部リンク[htm]:ahkscript.github.io
v1は手元にない
523: 10/25(金)14:28 ID:fJbwAcE00(2/2) AAS
言ってなかったけどクイックリファレンスで検索したらたいてい解決するw
524: 10/26(土)17:14 ID:0sWrnwL20(1) AAS
質問です。
ホットキー指定で~をつけると、イベントを乗っ取らずそのままシステムに通しますが
その後の処理で、システムに通さないよう分岐する方法はありますか?

イメージは以下のような感じです

~RButton Up::
MouseGetPos, mx, my, hwnd, ClassNN
if ( ClassNN <> "ListView321" )
return ; そのままシステムに通してなにもしない

; 以下コンテキストメニューを表示してシステムに通さない
525: 10/26(土)17:48 ID:f/FyL4ZB0(1) AAS
普通に ~ を外して if と else で分岐させればいいだけでは?
条件一致で RButton Up を送信する
526
(1): 10/26(土)21:42 ID:VsCTIMnu0(1) AAS
範囲選択してスクリーンショットするアプリを使用しています。
左クリックのドラッグで範囲選択をします。

実現したいことは、「トリガー押下→範囲選択モードに移行(アプリ側でPrscに当てています)
→隣のモニタにカーソルを移動→範囲選択が終わり次第、トリガー押下時の座標にカーソルを戻す」
です

今回の質問は、下記スクリプト内の「条件式」のアイデアについてです。

試したことは、
・KeyWaitでLButtonのDownとUpを検出→LButtonの判定がKeyWaitに吸収されて範囲選択できない
・WhileとGetKeyStateの入れ子をうまいこと組み合わせる→よくわからないけど失敗

範囲選択モードになったことを示すものはないとして、マウスの挙動、つまり「ドラッグ選択が終わった」ことを認識できるような
省12
527: 10/26(土)22:43 ID:TWNlTM+70(1) AAS
while GetKeyState("LButton", "P")
continue
528: 10/28(月)21:04 ID:oZWBqLfk0(1) AAS
エクスプローラーで選択中のファイルが、特定の拡張子だったときだけサクラエディタで開きたいのですが、うまく動いてくれません。
どうすればよろしいでしょうか、、、

#ifWinActive ahk_exe explorer.exe

;ctrl+Eでサクラエディタで起動
^e::

Send, ^c
Sleep,100
if ( %Clipboard% = "*.拡張子" ){
Run, C:\Program Files\sakura\sakura.exe %Clipboard%
}
省5
529: 10/28(月)22:44 ID:kFEw7C+t0(1) AAS
初心者だよね?
v1はプログラミングに向いてないからv2を使ったほうがいい
530: 10/29(火)00:42 ID:4RMka5+D0(1) AAS
>>526
keywaitとgetkeystateを組み合わせる
;範囲選択が終わるまで待機
While (1) {
;条件式
keywait, lbutton, t1
if errorlevel and !getkeystate("lbutton")
break
}
531
(2): 10/29(火)18:35 ID:sPxkJTnl0(1/3) AAS
V2でControlGet系がうまく動かないのですが、V1からコントロール指定の方法が変わったのでしょうか。

ControlGetHwnd("Edit1")
なら動きますが、
ControlGetHwnd("Edit1", "ahk_exe notepad.exe")
のようにウィンドウ指定を追加すると動きません。
WinGetID("ahk_exe notepad.exe")はちゃんと動いているようです。

お知恵をお借りしたく…
532: 10/29(火)18:41 ID:hnPx1uMc0(1) AAS
V1で挫折した〝2ストロークキー〟の再現、V2でチャレンジもワイには実現無理そうだ
1-
あと 78 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.012s