AutoHotkey スレッド part26

■ このスレッドは過去ログ倉庫に格納されています
2018/04/25(水) 18:08:09.39ID:LmrG+Efz0
!extend:on:vvvvv:1000:512
!extend:on:vvvvv:1000:512

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

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

■日本語解説等
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)
2018/09/19(水) 12:28:31.23ID:hbmu9zXt0
無変換、変換キーとのコンビネーションが余りに良過ぎて絶頂快感レベルなんだが。
2018/09/19(水) 21:02:10.87ID:gnJBXJJ7M
>>402
わかる
2018/09/20(木) 01:47:33.71ID:z3KDZezp0
>>401
そのアプリでは確認してないがコレでどうかな?

擬似フルスクリーン関数 / Pseudo Full Screen Function
https://pastebin.com/PddjCJhY
2018/09/20(木) 09:17:32.37ID:C98ZhkQO0
>>404
回答ありがとうございます
ですがどうやってタイトルバー隠して最大化するかという話ではなく、
ウィンドウ回りのメッセージいじくった副作用で、
マウスイベントが変になったウィンドウを正気に戻すにはどうすればという話ですので……

リンク先のコードもホットキーで最大化みたいな見た目にさせるものであって、
ウィンドウサイズを記憶するアプリケーションで嫌なことになるでしょうし、
HCBT_MINMAXイベントにフックして発火させてる自分のコードの参考にはなりませんでした
2018/09/20(木) 09:24:43.44ID:C98ZhkQO0
正直、他の大抵のアプリケーションでは何の問題もありませんし、
ControlSend, , {Alt}{Alt}, ahk_id %hWnd%でもだいたい治るのですが、
ほんの一部だけ変なままのコントロールがあったりしますし、
何かパッと全て解決する冴えた命令とかないのかなと思ってお伺いしたかったのです
2018/09/20(木) 10:12:39.47ID:z3KDZezp0
>>405
作者の意図しないスタイル変更で不具合起きても
再起動以外の万能な解決方法なんて「存在しない」と思うので
最大化すると狂うならしなければいいんじゃね?って答えです
2018/09/20(木) 19:54:17.92ID:U81pDOFs0
任意のアプリをつかっているときに、押したキーボードをファイルへ保存するために下記のようなものを作ろうと思っています。

a::
send, a
FileAppend a, filename
return

b::
send, b
FileAppend b, filename
return

c::
send, c
FileAppend c, filename
return

試しに少し作ってやってみたらうまく行きました。
でもこれをa-zまで、また、1-9,0まですべてのキーに対して作ろうと思うと、ちょっとげっそりします
なにかいい方法はありませんか
2018/09/20(木) 20:24:53.66ID:A/yRjkVr0
>>408
その方法のまま、ちょっと簡単にするなら、
~a::
~b::
~c::
k:=RegExReplace(A_ThisHotkey,"~","")
FileAppend %k%, keylog.txt
return
2018/09/20(木) 20:51:41.61ID:U81pDOFs0
>>409
なるほど。A_ThisHotkeyってのがミソですね
ちなみに、頭についているチルドはなんですか。ついてるのとついてないのではどういう違いがありますか
2018/09/20(木) 21:26:41.46ID:A/yRjkVr0
>>410
キーの動作はそのままに、ついでに実行する感じ。
だから、本来の動作をさせるために書いていたsendが不要になります。
2018/09/20(木) 22:07:05.65ID:U81pDOFs0
なるほど、ありがとうございました。 sendがいらないのですね
2018/09/21(金) 19:26:27.97ID:JRAgMbwQ0
includeで関数をまとめたahkを相対パスで読み込むスクリプトがあります
このスクリプトを普通にダブルクリックで起動した時は問題ないんですが
別のスクリプトでrunコマンドで起動するとincludeできないエラーがでます
なぜでしょうか
2018/09/21(金) 19:34:26.42ID:SEg6ZgdL0
カレントが includeで関数をまとめたahk のパスになってないから
2018/09/22(土) 01:31:57.12ID:107FtndLr
Array := ["平成","昭和","大正","明治","慶應","…"]

この配列の要素数を取得するにはどのようにすればいいのでしょうか?
2018/09/22(土) 02:08:16.24ID:F6Zy33Bn0
length()
2018/09/23(日) 10:43:20.32ID:FekjhB1ra
StringGetPosで文字の場所を特定したあと、そこへ即座にキャレットを移動するにはどうすればよいでしょうか?
行中で最初に見つかる特定の文字(ここでは「様」)を消す、というスクリプトを作ったのですが
{Right}をル−プしているせいか、offsetの値が大きめのときにガタガタと動作が遅くなってしまいます。
(等幅フォントなら、文字の横幅を計算するという力技も使えそうですが……)
^Right::
{
x := A_CaretX
y := A_CaretY
Send, +{End}
Send, ^c
MouseMove, x, y, 0
MouseClick, Left
content := Clipboard
StringGetPos, offset, content, 様
If offset = -1
{
Send, {End}{Right}
Return
}
Else
{
Loop, %offset%
{
Send, {Right}
}
Send, {Delete}
Return
}
}
2018/09/23(日) 10:48:16.10ID:FekjhB1ra
一応補足ですが>>417はStringReplaceで一括処理していい場面ではなく、
ひとつひとつ視認しながら作業したいとき用に作ったものです。
2018/09/23(日) 11:58:20.92ID:FekjhB1ra
>>417をいろいろ試してみましたが、文字サイズが小さいときはキャレットの位置がずれて変な挙動をしてしまいますね…
2018/09/23(日) 12:19:11.53ID:FekjhB1ra
度々すみません。
A_CaretX A_CaretY MouseMove の部分は、{Left}で事足りたようです。

しかし肝心の、{Right}をル−プしている部分の動作の遅さは改善できていません。

AppsKey::
{
Send, +{End}
Send, ^c
str := Clipboard
Send, {Left} ;何故かこれで選択文字列の先頭へキャレットが移動する
StringGetPos, offset, str, 、
If offset = -1
{
Send, {End}{Right}
Return
}
Else
{
Loop, %offset%
{
Send, {Right}
}
Send, {Delete}
Return
}
}
2018/09/23(日) 12:28:15.56ID:FekjhB1ra
あ…ループせずとも、これでよかったですね。
いずれにせよ処理速度はやはり遅いままですが…

AppsKey::
{
Send, +{End}
Send, ^c
str := Clipboard
Send, {Left}
StringGetPos, offset, str, 様
If offset = -1
{
Send, {End}{Right}
Return
}
Else
{
Send, {Right %offset%}
Send, {Delete}
Return
}
}
2018/09/23(日) 13:48:06.18ID:ZOALMWKL0
特定のプログラムが起動 (アクティブや最前面) されたら、特定のプログラムが自動で起動出来るスクリプトは、可能でしょうか?
2018/09/23(日) 16:24:42.95ID:VYcnd+gw0
可能
2018/09/23(日) 18:03:43.65ID:ZOALMWKL0
#IfWinActive アクティブウィンドウ指定
RUN 起動したいプログラム
#IfWinActive

だけでは、出来ませんでした。

どなかた教えて頂けますでしょうか?
2018/09/23(日) 21:17:47.22ID:BliL24p00
Windowsのイベントを拾う - hoge
https://sites.google.com/site/agkh6mze/howto/winevent
2018/09/23(日) 21:36:47.03ID:31DDKA4n0
>>417
; --- TEST ---
; カリン様の仙豆様様です
; カリン様の仙豆様様です
; ------------

SendMode Input

F1::SearchAndDestroy("様")
Esc::ExitApp

SearchAndDestroy(SearchText) {
BlockInput On
ClipSave := ClipboardAll
Clipboard =
Send {Home}+{End}^c
ClipWait 1
ClipStr := Clipboard
if (RegExMatch(ClipStr, "(.*?)" SearchText "(.*)", Str)) {
Clipboard := Str2
Send ^v{Home}
Sleep 100
Clipboard := Str1
Send ^v
Sleep 100
} else
Send {Down}{Home}
Clipboard := ClipSave
BlockInput Off
}
2018/09/24(月) 05:20:00.81ID:BRuHDRmp0
>>424
#if〜(頭に#付き)はホットキー用
settimerを使って1〜2秒毎に ifwinactive で監視すればいい

#Persistent
settimer, hoge, 1000
return

hoge:
ifwinactive ウィンドウタイトル
{
run 実行するプログラム
settimer, hoge, off
settimer, hage, 1000
}
return

hage:
ifwinnotactive ウィンドウタイトル
{
settimer, hage, off
settimer, hoge, on
}
return
2018/09/24(月) 11:54:00.95ID:ZlvdI27na
>>426
おぉっ、ありがとうございます!
実際には消さずに1つ飛ばして次へ行きたい場合もあるので、そういう機能も追加してみようと思います
429名無しさん@お腹いっぱい。 (ワッチョイWW b184-1vXo)
垢版 |
2018/09/24(月) 15:34:23.11ID:9OJkCbcr0
>>427
ありがとうございました。
2018/09/25(火) 08:04:19.41ID:3R3+W8UO0
1.1.24から1.1.30へアプデしたら
ALTキーの空押しトリガーでアクセラレーターキー発動しまくりメニューが反応してしまう
大抵大丈夫なソフトが多かったがそれらのバージョンによっても反応しちゃったりしなかったり
酷いのはメニューがいきなりプルダウンする乱暴な奴とかいたり
トリガー変えたりなんだりいろいろやって納得行かず調べた結果どうやら1.1.27以降で仕様が変わったみたい

で対策(反応するっちゃするけど速攻で無効化)
#MenuMaskKey vk07
*~○○○::(LAlt、RAltを抜いた全部のキー)いっぱいなので割愛
*~LAlt::Send {Blind}{vk07}
*~RAlt::Send {Blind}{vk07}

プログラムによっちゃ無効化出来る設定あるけどOSレベルで無効にできんのかなぁ
2018/09/26(水) 14:20:01.12ID:7m8X8t6VM
Hayateがまともに動作しなくなったんでイラっとして1.1.26.01まで戻した
2018/10/01(月) 14:29:01.32ID:iwdKiYmDM
英語キーボードを使っていて、リモート接続のクライアントのIMEを右altで切り替えようとしているのですがうまくいきません
Send, SendInputいずれの場合も右alt1回目は普通にaltを押したようにメニューバーがアクティブになり
2回目かescapeでメニューバーをキャンセルするとimeが切り替わるようになります
ログを見ると、どうやらRAltを押した瞬間に
Send, {Blind}{vkF3 Up}
とあり、
離したときに
Send, {Blind}{vkF3 DownTemp}
Send, {Blind}{vkF3 Up}
とup, down, upの順に実行されていることが原因ではないかと思ったのですが
down, upと動作させるにはどうしたらいいでしょうか?
バージョンは1.1.24と1.1.30で試しましたが、u,d,uで実行されているのは変わりません
2018/10/01(月) 20:49:46.86ID:4Q2Wzr5t0
>>432
vkF3(半角/全角)で行う必要性が全く意味がわからないんだが

getIMEMode := IME_Get()
if (%getIMEMode% = 0)
{
IME_SET(1)
IME_SetConvMode(25)
}
else
{
IME_SET(0)
}
return
2018/10/01(月) 21:14:55.69ID:4Q2Wzr5t0
ちなみ俺のを貼っておく
https://dotup.org/uploda/dotup.org1656656.png
2018/10/02(火) 03:32:02.56ID:XIOIGa0E0
pngで貼るとか頭おかしいんちゃうか
2018/10/02(火) 03:54:49.60ID:yi1VJCDs0
参考程度に見れば十分やろ
関数は配布されてる単純なロジックやし使い方だって検索したらいくらでも説明あるでしょ
あとはリファレンス読めばわかるレベル
433で答えまで書いてやってんだから理解出来ないなら諦めたらえぇ
2018/10/02(火) 09:57:59.75ID:AEJZr7gaM
>>433
上部メニューのアクティブを抑制する行の追加リモート接続でも動きました
ありがとうございます
ちなみにIME_SETでは動かず、Send vkF3なら動作しました
キーボードの違いだと思いますが、何にせよ解決したので良かったです
2018/10/02(火) 10:12:56.41ID:z227XsnEa
Twitterで長文メモのスクショ貼る人みたい
2018/10/05(金) 13:08:49.72ID:SCAEAGvB0
たとえばFirefoxなのですが、縦スクロールバーがでている状態で、上下矢印キーを押すと上下にスクロール
するのですが、スクロールの幅が大きいのです。
スクロールバーの上下についている四角の箱をクリックしてもちょっと大きく動きます

これをAHK使って、あるいは他の方法でもいいのですが、1ピクセルづつスクロールさせたいのですが
出来ますか。
2018/10/05(金) 14:06:54.87ID:CEpw7DNT0
Firefoxのことは
Firefoxを調べた方が早いんじゃないの?
2018/10/05(金) 14:56:25.59ID:SCAEAGvB0
AHKならスクロールバーの制御も一般的に出来るのかなと思ったのですが
2018/10/05(金) 14:58:02.50ID:SCAEAGvB0
AHKでスクロールバーの制御をしようと思ったら、バーのマウスを持ってきてDown状態にして
カーソルを動かす、みたいなことしか方法はないのかな
2018/10/05(金) 15:32:42.44ID:Ff+7G5Zn0
1ピクセルずつとか文字列1行分スクロールするのに何回押さなきゃならないんだ
ってくらい使いにくくなるんだが
2018/10/05(金) 16:42:10.30ID:fes53dD+0
sexeやタスクスケジューラを使ってログオン前にLiveCapture3などのソフトを常駐させると、タスクトレイにアイコンが表示されないままになりますが、
AutoHotKeyを使って無理やりタスクトレイにアイコンを追加したり、該当ソフトのタスクトレイアイコン右クリック時に出るメニューと同じものを表示することは可能でしょうか?

SendMessage, 0x0205, , , , ahk_exe lc3.exe だと見つからず反応しませんでした
あと何故かtvrock.exeの場合トレイにアイコンがあっても反応しませんでした…
2018/10/05(金) 17:28:36.73ID:0eixHvUx0
sendmessageでスクロールメッセージ投げてやりゃスクロールはできるし
ホイールメッセージならマウスのプロパティで設定しとけば一行ずつにはなる
が、1ピクセルずつは無理じゃね
"スクロールバーを掴んで引っ張る"をエミュレーションできればあるいは
2018/10/10(水) 18:46:51.09ID:bXLwrapy01010
すみません、二つの変数を比較して同一の数値の場合に処理を実行したいのですが、これだと間違っていますか?

If HensuuA = %HensuuB%
{
処理
}
2018/10/10(水) 23:38:10.06ID:+qwU9+TE0
■変数と値の比較
if var = value
if (var = "文字列")
if (var = 数値)

■変数通しの比較
if var = %var%
if (var = var)

■代入演算子
var := var
var := "文字列"
var := 数値
2018/10/11(木) 03:55:06.71ID:AK0vvxQ+0
テストしてみればいいやん
HensuuA=1
HensuuB=1

If HensuuA = %HensuuB%
msgbox,1
else
msgbox,2

If (HensuuA=HensuuB)
msgbox,3
else
msgbox,4
2018/10/11(木) 08:32:11.30ID:nmZ2gWSh0
括弧なしifは旧仕様
分かりにくいし紛らわしいからなるべく使わない方向で
2018/10/11(木) 12:30:24.80ID:+ZOAvUFq0
>>447, >>448, >>449
出来ました、有難うございます。
2018/10/13(土) 20:22:56.92ID:R8f6qIw8a
質問です。
現在フォーカスしているテキストエリアが空っぽかどうかを確かめたいのですが、
^a^cなどクリップボードを経由する以外に簡単な方法ってありますか?
2018/10/13(土) 23:12:56.95ID:PPQQn2Ql0
ControlをGetしてTextを取得すれば良いと思うのだ、そうなのだ
2018/10/17(水) 17:16:37.12ID:D79vkLFj0
Windowsのレジストリで、環境によって変化するサブキーがありますが、これを取得する方法ってないでしょうか。
具体的には
\HKEY_CURRENT_USER\Control Panel\Desktop\PerMonitorSettings\の下のモニター識別子なんですが…
2018/10/17(水) 17:40:59.26ID:hablK01d0
>>453
http://ahkwiki.net/LoopReg
2018/10/17(水) 18:17:16.63ID:D79vkLFj0
>>454

おお、ホントだ、ありがとうございます。
何かややこしく考え過ぎてました
2018/10/19(金) 10:15:05.21ID:pLy6hzb20
v1.1.30.00
Hotkey, If [, Expression]

Hotkey, If, (1)
エラーが出るけど、もしかして使えない?
2018/10/19(金) 11:09:45.16ID:gpPJ+axP0
エラー嫁
2018/10/19(金) 12:10:05.55ID:pefhSxfW0
アプデで動かなくなったならchangelogを確認
うちは 1.1.24.01の仕様変更で動かなくなった
2018/10/19(金) 14:15:23.77ID:EstbMLBD0
Win7
AutoHotkey_v1.1.30.00
MPC-HC v1.7.13

MPC再生リストのウィンドウサイズ変更をしたい 


Playr本体は、WinMoveでウィンドウサイズ変更可能 
WinMove , ahk_class MediaPlayerClassicW , 編集リスト , 150 , 322 , 680 , 400 , , ; ; X Y wid hei 除外tt

再生リストには、位置移動は効くが、ウィンドウサイズ変更が効かない
WinMove , 再生リスト , 再生リスト , 20 , 0 , 1300 , 315 , , , ; ; X Y wid hei 除外tt


WinSet , Region ,
ウィンドウを切り取った様に非表示にするが、ウィンドウ端を摘みサイズ変更で、消えてた領域も再表示 微妙

ControlMove , SysListView321 , 20 , 50 , 1009 , 615 , 再生リスト , 再生リスト , ,
ウィンドウサイズ変わらず、内部だけ変わる skrバーも消える 微妙


スマートにWサイズを変更出来ないから、もうMouseMoveして実際に掴んでWサイズを変えるか、別のソフトに頼るしかない 
MouseMoveせず、何とかAHKだけで出来ないだろうか? 
知恵をお借りしたい 
2018/10/19(金) 19:35:17.44ID:IXe0O+ly0
obj := {key: "a"}
Send, {%obj.key% Down} ;<- error

今は key := obj.key として %key% で2行目を通してるけど、
一時変数を使わず obj.key を使用する方法はありますか?
2018/10/19(金) 21:05:34.76ID:9raoExfA0
>>460
コマンドの各引数の先頭に「% 」で式になる
hoge, % 式, 文字列, % 式

F1::
obj := {key1: "a", key2: "b"}
obj.key3 := "c"
obj["key4"] := "d"
k = key
Send, % "{" obj.key1 "}{" obj["key2"] "}{" obj[k 3] "}{" obj[k "4"] "}"
return
2018/10/20(土) 01:01:00.88ID:9JrZydin0
>>461
ありがとう
おかげで理解が深まりました
2018/10/20(土) 03:18:16.02ID:HeWkqqCAa
今までに打ったpの回数を数えるスクリプトなのですが、動きません。
何がいけないのでしょうか?

kaisuu :=

$p::
kaisuu := %kaisuu% . "p"
Send, p
Return

k::
Loop, Parse, %kaisuu%
{
Send, %A_LoopField%
}
Return
2018/10/20(土) 08:48:26.84ID:e98hZzR20
これと kaisuu := %kaisuu% . "p"
これ Loop, Parse, %kaisuu%

上手くいかないときはlistlinesやlistvars見ればどこで躓いてるのかすぐわかる
2018/10/20(土) 19:12:56.61ID:HeWkqqCAa
>>464
単純に%を抜いたら動きました
ありがとうございます
2018/10/20(土) 19:54:03.54ID:f5Sc3ODKM
細かいことだが := で変数初期化するなら 値は "" にしたほうがいいよ
= だと右辺を空にするしか方法ないけど
2018/10/20(土) 20:02:07.60ID:ras6l8WJ0
それはなんで?
2018/10/25(木) 19:42:23.21ID:MT0G2iQx0
入力文字種をローマ字入力のひらがなに固定するスクリプトがいまのいままで間違ってた...orz

■正
if IME_GET()
{
 IMEMode := IME_GetConvMode()
 if (IMEMode <> 25)
 {
  if IMEMode in 0, 3, 8, 9, 11
   Send !{vkF2}
  IME_SetConvMode(25)
 }
}

■誤
if IME_GET()
{
 if (IME_GetConvMode() <> 25)
  IME_SetConvMode(25)
}
;かな入力時×
2018/10/26(金) 07:18:29.14ID:7VIDX2sma
キャレットを行末に移動したいのですが、{End}だとあくまで折り返し地点に行くだけで
改行コード(\rや\n)のあるところまで移動してくれません。
何かよい方法はありますか?
2018/10/26(金) 09:39:17.53ID:7VIDX2sma
{End}+{Left}^c{Right}からのRegExMatch()で改行があるかないかを調べ、
なかったら次の行を調べ…とすればいいのかなとも思いますが
最後尾にたどり着いても改行コードが見つからない場合は延々とループしそうなので
それを回避する手段が必要…?

{End}だけでなくこれの{Home}版も作りたいですが、考え方は同じ…?
2018/10/26(金) 18:44:43.09ID:HTEiSBrp0
もし、特定のソフト(テキストエディタ)で行末に移動させたいのであれば
行末に移動するショートカットキーが存在する場合があるのでヘルプを参照してみては
2018/10/26(金) 21:42:45.36ID:QyeYEwKz0
>>469-470
テキストエディタでの話と明言してなかったのでレスしなかったが>>471と同じこと思ってた(後出しだけど)

もしショートカットキーが無い場合でも検索機能で正規表現使えるなら「\n」を検索できるので、
それを備え付けのマクロ機能でマクロ化してショートカットキーに登録すれば一発で移動できると思うんだが…
有名何処のエディタならマクロ機能ぐらい装備してると思うけど「メモ帳」じゃ無理かも
2018/10/27(土) 11:24:09.50ID:7lsaB75Ra
>>471-472
あ、明言していませんでしたが主にGoogle Chromeですね…
調べてみたらChromeにはそのようはショートカットはありませんでした
(一応Clrl + Endとかは動くものの、何を基準にした仕様なのかは分からず…)

テキストエディタと違って[EOF]を検出できるかも怪しいので、 >>470 に書いたようにループを気にしていた次第です

まず+^{End}^cで今いる地点から文末の間に改行コードがあるかどうかをRegExMatchで探し(なければ終了)
もしあれば【最初に返ってきた位置地点までキャレットを瞬時に移動する】…方法があればいいですけど
そういうのってないですよね…?
(マウスクリックだとなんか安定しないし…)

仕方ないので一旦{Left}で選択を解除し、
+{End}^cで再度1行ずつ改行コードを探しつつ、
その行に改行コードがなければ次の行へ…とするのが最善…?

ということで自己解決した…ような気がします
474名無しさん@お腹いっぱい。 (ニククエW df28-eysJ)
垢版 |
2018/10/29(月) 18:11:16.16ID:pGyDCuIr0NIKU
すいません教えて下さい。
USBテンキーの割当てについて、
今までi buffaloのテンキーを使用してnumlockオフ時のキーの割当てを変えていたのですが、
最近ナカバヤシのDigio2という静音のワイヤレステンキーを買ったらpgup、home等のキーがメインのキーボード側とは区別されていない仕様で、5のキーも何も割当てがない(ibuffaloのはclearが割当てられていました)仕様でした。
これはナカバヤシのが普通でibuffaloのが特殊なんでしょうか?
今まで通り割当てるつもりで買ったら何も出来ないので困っています。
2018/10/29(月) 19:07:38.51ID:G3c6EY1j0NIKU
下記で、AAAがアクティブなとき、aキーを押したとき、something2は実行されますか。
されないとすると、なぜでしょうか

#ifwinactive, AAA
a::
do something1
return
#ifwinactive

#ifwinnotactive, BBB
a::
do something2
return
#ifwinnotactive
2018/10/29(月) 19:31:45.02ID:DbSYxVta0NIKU
#if系 は排他制御だから
複数の条件で一致しても先に見つかったほうしか実行されない
2018/10/29(月) 19:52:49.55ID:XZZ80pWq0NIKU
>>474
んなもんハードウェア仕様次第だろ
各ハードごとの仕様の違いなんてスレチ
478名無しさん@お腹いっぱい。 (ニククエW e187-eysJ)
垢版 |
2018/10/29(月) 21:23:15.22ID:RYRYJnjF0NIKU
>>477
やっぱりメーカによって違うという事ですか。
分かりました元々キーコードが無いとどうしようもない?ので諦めてibuffaloにします。
ありがとうございました。
2018/10/29(月) 21:40:14.09ID:DbSYxVta0NIKU
お勧めのテンキー
http://mevius.5ch.net/test/read.cgi/hard/1231658312/

プログラマブルキーボード的な使い方を想定してる人もいるので一応見てみたら
480名無しさん@お腹いっぱい。 (ニククエW e187-eysJ)
垢版 |
2018/10/29(月) 23:43:32.58ID:RYRYJnjF0NIKU
>>479
テンキー専門のスレなんてあるんですね
自分はCADを使う時にテンキーにショートカットやマウスの動きを割り振っていたので参考になるかもしれません
ありがとうございます
最初に買ったテンキーがibuffaloの物だったのでほかのテンキーも何事もなく割り振れると思い込んでました・・・無知でした
481名無しさん@お腹いっぱい。 (ワッチョイ 2d63-q5k6)
垢版 |
2018/10/31(水) 09:13:41.73ID:WLGP5gIM0
AHKメニュー上で↓キーは効くのですが,無変換キーから送っている下記コードが動作しません.
sc07B & D::
Send {Blind}{Down}
return
AHKメニュー以外では問題なく動作します.
原因の分かる方おられませんでしょうか.
2018/10/31(水) 11:01:39.53ID:WLGP5gIM0
補足です.
"AHKメニュー上"というのは,AHKで作って出したメニューという意味です.
2018/10/31(水) 11:08:09.93ID:opd+04/w0
>>481
カーソルキーの定義だけ別のAHKで走らせておくと良いよ。
または、メニュー関連だけ別AHKとか。
2018/10/31(水) 11:13:25.55ID:gjv71M2k0
Menu,Showしてる間はスクリプトがその行で完全に停止していてホットキー等の割り込みはできない
2018/10/31(水) 12:36:04.50ID:RhubQVeN0
これもいい加減FAQだなあ
2018/10/31(水) 14:01:27.21ID:WLGP5gIM0
>>483
>>484
ご返信ありがとうございます.
>>Menu,Showしてる間はスクリプトがその行で完全に停止していてホットキー等の割り込みはできない
このような動作で無効となっているようでした.
実際にはアクセスキーを割り当てているので困ることは無いのですが,理解が深まりました.
長年の悩み解消に,大変感謝いたします.
2018/10/31(水) 14:02:30.72ID:WLGP5gIM0
>>483
>>484
ご返信ありがとうございます.
>>Menu,Showしてる間はスクリプトがその行で完全に停止していてホットキー等の割り込みはできない
このような動作で無効となっているようでした.
実際にはアクセスキーを割り当てているので困ることは無いのですが,理解が深まりました.
長年の悩み解消に,大変感謝いたします.
2018/10/31(水) 14:03:13.31ID:WLGP5gIM0
>>483
>>484
ご返信ありがとうございます.
>>Menu,Showしてる間はスクリプトがその行で完全に停止していてホットキー等の割り込みはできない
このような動作で無効となっているようでした.
実際にはアクセスキーを割り当てているので困ることは無いのですが,理解が深まりました.
長年の悩み解消に,大変感謝いたします.
2018/10/31(水) 14:40:12.38ID:dT0cJuwPH
めっちゃ感謝してるね
2018/10/31(水) 17:51:18.10ID:RhubQVeN0
w
2018/10/31(水) 21:04:54.32ID:OZesCr780
フォントを指定しないで作成した表示中のGUIで使用しているフォントの種類を知る方法ってありますか?。
492名無しさん@お腹いっぱい。 (ワッチョイ 4f67-pP8n)
垢版 |
2018/10/31(水) 22:52:35.57ID:LdONliey0
インプットメソッドの状態取得といえば定番は IME.ahk ですが、
(https://www6.atwiki.jp/eamat/pages/18.html)
どうやら TSF (Text Service Framework)対応のアプリまたはインプットメソッドで、
状態取得に失敗するようなのです。
例えば、Thunderbird + MS-IME です。
伝聞形なのは、じぶんの環境で再現できていないからです。

ここで質問ですが、
1)IME.ahk がTSF対応アプリやインプットメソッドで問題となるケース
 特に、IME_GetConvMode() が変換モードを取得できないケースとは、
 具体的にはどのような操作なのでしょうか。
2)TSFに対応した autohotkey のライブラリ、もしくはサンプルスクリプトは
 どっかに落ちてないでしょうか。
2018/10/31(水) 23:37:37.36ID:RhubQVeN0
IME.ahkは同梱のtxtに記載がありますがTSF関数には全く対応していません
ただIME側で下位互換がありIMM関数で値が取れるものはかろうじて拾えるようです
どのIMEのどこまで互換があるのかは分からないです

TSFに関してはこの辺が参考になるかも知れません
https://qiita.com/496_/items/95acf68eaf31fd57f44e
https://qiita.com/tignear/items/2377c1be20e1aec71045
https://msdn.microsoft.com/library/ms629043.aspx

自分は断念しました
494名無しさん@お腹いっぱい。 (ワッチョイ 3e67-OMPP)
垢版 |
2018/11/01(木) 01:44:27.83ID:9ZyI4byU0
>>493
詳細な情報をいただき、ありがとうございました。

自分は、TT_IME というフリーソフトが、コード付きで落ちていたので解析中です。
TT_IME は、imeの状態監視を行うソフトであり、TSF対応しているようですので、
目的には叶っています。
でも、32bit dll/64bit dll/ 32bit.exe / 64bit exe の4本立てという濃厚さなので
解析するのも一苦労です。

このimehook.dllを AutoHotkey のDllcall で呼び出せば、
もしかしてTSF対応できるかも、などと妄想したりしています。

http://d.hatena.ne.jp/merom686/20120602/1338609232
https://blog.goo.ne.jp/kzstock/e/d99afd1b215c48843b93ae6cc2bc8b04
2018/11/01(木) 23:21:34.95ID:2uiyzVkS0
URLDownloadToFileでhttpsのドキュメントなどは落とせないのでしょうか?
2018/11/02(金) 13:27:50.06ID:loaTwIIP0
メイプルストーリーが矢印キーでしか移動できないので

w:up
a:left
s:down
d:right

とシンプルなスクリプトを作り動作確認できたのですが、ウィンドウモードのメイプルからデスクトップや別ブラウザ(Chromeなど)に一度でも切り替えるとメイプルで最初効いていた動作が利かなくなるのですが、原因分かるかたいますか?
リロードスクリプトをすれば、また効くようになるのですが。管理者権限は常時使っています。効いていたのに、別のところに切り替えるとメイプルだけなぜか動作しなくなる…
2018/11/02(金) 13:34:59.37ID:0sE/AXpAa
>>496
あ、スクリプトはちゃんとa::leftにしてます。ここに書く際、『:』を1つだけにしてました。
2018/11/02(金) 14:05:19.59ID:hKnah+9H0
>>496
ゲーム側の不正対策でそうなっている
2018/11/02(金) 18:45:30.70ID:tDKIogQ70
>>498
不正対策ならリロードしても効かないはずでしょ
2018/11/02(金) 19:05:14.72ID:hKnah+9H0
>>499
至って単純な対策だけど殆どのユーザーに対してはこれで十分効果がある
2018/11/02(金) 19:56:47.25ID:0sE/AXpAa
>>500
質問したものです。なるほど、対策だったんですね。それを知れただけでもよかったですありがとうございました。
■ このスレッドは過去ログ倉庫に格納されています
16歳の水野カイトが封印の刀を見つけ、時間が裂けて黒い風と亡霊の侍が現れ、霊の時雨と契約して呪われた刀の継承者となる場面

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