[表示 : 全て 最新50 1-99 101- 201- 301- 401- 2chのread.cgiへ]
Update time : 10/07 15:09 / Filesize : 154 KB / Number-of Response : 425
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

AutoHotkey スレッド part8



1 名前:名無しさん@お腹いっぱい。 [2009/05/23(土) 00:23:38 ID:78PWRd9v0]
■公式
www.autohotkey.com/

■解説
AutoHotkeyを流行らせるページ
lukewarm.s101.xrea.com/

■過去スレ
1 pc7.2ch.net/test/read.cgi/software/1098531338/
2 pc7.2ch.net/test/read.cgi/software/1129836713/
3 pc11.2ch.net/test/read.cgi/software/1157043396/
4 pc11.2ch.net/test/read.cgi/software/1184556627/
5 pc11.2ch.net/test/read.cgi/software/1201502896/
6 pc11.2ch.net/test/read.cgi/software/1219130051/
7 pc12.2ch.net/test/read.cgi/software/1230694774/

■派生版
AutoHotkey_L
www.autohotkey.net/~Lexikos/AutoHotkey_L/

駄目文字微対策版
yak.myhome.cx/junks/#ahk.cp932

関連リンク>>2以降も参照


375 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/05(日) 21:09:54 ID:1ELefC3x0]
タイムスタンプ形式文字列(YYYYMMDDHH24MISS)にして、負数を加算

dt = 20090101000000
dt += -1, Days
MsgBox, % dt

376 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/05(日) 21:13:06 ID:lEC8MHrV0]
>>375
ありがとうございます。
これでstringmidで抜き取れば、ゼロ桁揃えもバッチリですね。

377 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/05(日) 21:42:40 ID:TpLw+W1E0]
>>375
横レスだが、こんなことができることに驚いた


378 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/06(月) 11:18:51 ID:+bpunDPa0]
特定アプリケーションの特定クラスで

マウスを1クリックしたときは、そのアプリケーションクラスにキーを送る
マウスをWクリックしたときは、ダブルクリック
マウスを3回連続クリックしたときは、そのアプリケーションを閉じる
マウスを2秒以上押したときは、閉じる

そのほかのアプリケーションでは通常動作。

って設定するにはどうすればいいですか?

379 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/06(月) 11:57:42 ID:D5LcDuIT0]
解説読んでその通りに作ればいい

380 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/06(月) 13:12:35 ID:afPTjDljP]
dt:=DllCall("GetDoubleClickTime")/1000

#IfWinActive hogehoge

LButton::
t:=A_TickCount
KeyWait LButton
KeyWait LButton,D T%dt%
if( ErrorLevel=1 ) {
if( A_TickCount-t > 2000 ) {
ToolTip Press 2sec %A_TickCount%
return
}
ToolTip SingleClick %A_TickCount%
return
}

KeyWait LButton
KeyWait LButton,D T%dt%
if( ErrorLevel=1 ) {
ToolTip DoubleClick %A_TickCount%
return
}

ToolTip,TrippleClick %A_TickCount%
return

381 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/06(月) 16:06:11 ID:+bpunDPa0]
>>380
ありがとうございました。

382 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/10(金) 12:19:20 ID:n1t9ih6R0]
全角英数字→半角英数 と 特定文字列を置き換えたいのですが
どういう手順が一番いいですか?
外部ソフト使ったほうがいいですか?内部で処理できます?

383 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/10(金) 15:00:57 ID:h/ikD8t3P]
それくらいの内容だったら1バイトずつチェックして自分で変換してもいいし、
外部のツールを使ってもどちらでもいいと思う

BREGEXP.DLLのBTransを使えば比較的楽だと思うけど、
流行らせるページのラッパーには無いんだな…
次に貼っておく
BTransの返値には置換された個数が帰ってくるので、
ちょっと変えれば>>360の用途にも使えると思う



384 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/10(金) 15:23:04 ID:h/ikD8t3P]
; 省略してるけど、2, 3番目のパラメータに変換前、後に対応する文字列を指定する。
str:=_BTrans("abc cba AutoHotkey", "[a-z]", "[A-Z]", "k")
str:=_BTrans("ABXYZ", "ABCDEFGXYZ", "abcdefgあいう", "k")

_BTrans(target,pattern,trans,opt="")
{
s:="tr/" . pattern . "/" trans . "/" . opt
t:=target
outendp:=&target+StrLen(target)
pRExp=0
VarSetCapacity(msg,256)
hModule:=DllCall("LoadLibrary", str, "BREGEXP.DLL")
if(DllCall("BREGEXP.DLL\BTrans", Str,s, Str,target, Int,outendp ,IntP,pRExp, Str,msg, "Cdecl int")) {
start:=StructGetInt(pRExp,0)
len:=StructGetInt(pRExp,4)-start
VarSetCapacity(result,len+1)
DllCall("RtlMoveMemory", Str,result, UInt,start, UInt,len+1)
}
else {
result:=target
}
DllCall("BREGEXP.DLL\BRegFree",Int,pRExp)
DllCall("FreeLibrary", UInt, hModule)
return result
}

StructGetInt(pStruct,offset)
{
DllCall("RtlMoveMemory", UIntP,r, UInt,pStruct+offset, Int,4)
return r
}

385 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/10(金) 16:00:26 ID:n1t9ih6R0]
>>383
ありがとうございます。ちょっと試してみます。

386 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/10(金) 16:10:24 ID:UjJB4Kmb0]
>>302のサクラエディタ用のキーワード定義をひろった方がいたら
再upしてもらえないでしょうか?
お願いします。

387 名前:385 mailto:sage [2009/07/10(金) 16:29:10 ID:n1t9ih6R0]
試してみました。
むずかしくて意味がわかりませんでした。
せっかく教えていただいたのでじっくり取り組んでレベル向上するように頑張ります。

388 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/11(土) 14:07:36 ID:cI0LSYAf0]
マウスの左メイン押下&サイドボタンクリックでスクリプト発動したいんですが、
マウス左ボタン押下状態でちょっとでもカーソル動かすとうまく発動できません。
何かうまい方法ないでしょうか?

~LButton & XButton1::
hogehoge
return

389 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/11(土) 14:29:41 ID:xRlAh2IZP]
~XButton1::
if( GetKeyState("LButton", "P") ) {
hogehoge
}
return

ちなみに>>388はウチではうまく動作する。

390 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/11(土) 21:37:47 ID:cI0LSYAf0]
>>389
レスthxです。
教えていただいたスクリプト、ダメでした・・・
何も反応しません。

LButtonとXButtonが逆なのかと思って逆にしてみてもダメでした。

~LButton & XButton1::Send ^tをgoogle chromeで使っているんですが、
XButton1をクリックする前にマウスが動くとうまくいかないんですよね・・・


391 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/11(土) 21:47:30 ID:SAtGLE1R0]
>>390
ふつうにLButton:: でまずスレッドを立てて、その中で
LButtonが離されるまでLoopさせ、そのループ中にXButtonが押されているか検知し、
そこで分岐させればいいんじゃね?


392 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/11(土) 21:50:14 ID:e08r4NpA0]
というか、コンビネーションキーが認識出来ていない段階でおかしい
何らかのマウスユーティリティ入れてたりしないよな?

393 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/12(日) 09:23:18 ID:PeyC4smHP]
Chromeが原因っぽい
ウチのSRWare Ironで確認したんだけど、他のアプリでは大丈夫だけどIronでだけダメだった

以前からChrome(Iron)は、Sendで取りこぼしがよく発生すると思ってたんだけど
これもそのうちの一つかもしれない
(例えばコンテキストメニュー出して即アクセラレータキーを送っても、それを拾ってくれない場合があったりする)

どうやらLButtonでドラッグしている間はキーを無視してるらしいので、
無理矢理LButton Upを送ってからキーを送ったらうまくいくようになったけど、
ちょっと試しただけなので、副作用があるかもしれないし、Ironでしか確認してないが、
参考にでもなれば

~LButton & XButton1::
Send {LButton Up}
Send ^t
return



394 名前:390 mailto:sage [2009/07/12(日) 18:27:18 ID:sKIcc7dc0]
>>391-393
>>393の方法でうまくいきました。ありがとうございます。
確かにchromeが問題っぽいですね。
試しにドラッグ中にキーボードでCtrl+tを押してみても新タブ開かないですし

ともあれ、これで快適にAHKを活用できそうです。ありがとうございました。

395 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/12(日) 21:31:22 ID:tYrCWj8c0]
じぐざぐマウス
ttp://lukewarm.s101.xrea.com/up/file/113.zip

396 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/12(日) 21:41:42 ID:XcNgENWm0]
>>395
なにこれ?
説明もないし、実行しても何も起こらないし、意味が全くわからない

397 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/12(日) 22:04:43 ID:4APWhaXL0]
DllCallでimm32.dllのImmGetContextを呼んでhIMCを取得したいのですが、0 しか返ってきません
ErrorLevelは 0 になってるので書き方は↓であってるはずなのですが・・・

WinGet,hWnd,ID,A
hIMC := DllCall("imm32\ImmGetContext",Uint,hWnd, Uint)

どなたか解決方法をご教示願えないでしょうか

398 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/12(日) 22:12:49 ID:tYrCWj8c0]
>>396
すまん、マウスを横にギザギザするだけ。
DExposE2とかと使ってSend, !{tab}を送ったりするといい。

最後らへんは、下手したら多重起動しちゃう。
まだまだ、要変更でしたorz
DExposE2を使うなら最後のReturn前に、KeyWait, LButton, D T1とか。

399 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/12(日) 22:19:20 ID:XcNgENWm0]
>>398
あぁやっと意味がわかった。ギザギザにカーソルを移動するんじゃなくて、
マウスを縦横に振り回すと、縦横に応じたRunが発動されるってことね。

それなら、名称がギザギザよりもフリフリのほうがいいんじゃないの?

ソースを見ても何をやりたいのか全く理解できなかったコードは、
これが初めてだわw

こういった公共の場にリンクを貼るなら、最低限の説明は書いてくれよ。
だれも俺みたいな暇人じゃないんだから。

400 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/12(日) 22:43:47 ID:/CYjiatT0]
>>397
無理。対象ウィンドウを生成したプロセスでしか操作出来ない。
AttachThreadInputしても同じ。

>>99とかその辺りの流れで我慢汁

401 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/12(日) 22:44:29 ID:tYrCWj8c0]
>>399
まあそうなんだけどね\(^O^)/
じぐざぐマウスはClockLauncherの機能で、それをパクって、縦横で分け判定を厳しくしただけだから、
名称は統一感があったほうがいいかなと。

ソースはくるくるスクロールをリスペクトw

402 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/13(月) 03:02:54 ID:9veVwPlv0]
>>395
くるくるじぐざぐマウスに修正(´・ω・`)

403 名前:名無しさん@お腹いっぱい。 [2009/07/13(月) 15:24:53 ID:EfchmhA10]

あるペイントソフトで
デフォルトで画面の拡大・縮小がそれぞれ
num+ nun-と割り当てられている状況で
これをマウスホイールのwheelup,wheeldownにできないかと

#IfWinActive, ahk_class Afx:400000:8:10011:x:xxxxxxxx
WheelUp::send, NumpadAdd
WheelDown::send, NumpadSub
return
としてみたのですが、AU3_Spyで調べた
ウインドウクラス名が起動毎に変わってしまいます
このウインドウクラス名は特定する事はできるのでしょうか?



404 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/13(月) 15:47:32 ID:L6IuKEblP]
SetTitleMatchMode RegEx
#IfWinActive, ahk_class Afx:400000:8:10011:.*

;ウィンドウのタイトルが Untitled - hogehoge paint だったら、さらに
#IfWinActive, -\shogehoge\spaint$ ahk_class Afx:400000:8:10011:.*

自分の使う環境で誤爆が起きない範囲で調整すればいいと思う


405 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/13(月) 17:04:24 ID:9QQrzBKg0]
なんで「あるペイントソフト」とか意味もなく隠すんだろうか。

具体的にソフト名を書いておけば、
別の方法で回避する方法がわかるかもしれないのに

406 名前:名無しさん@お腹いっぱい。 [2009/07/13(月) 17:43:13 ID:EfchmhA10]
403です、間違えましたahk_class Afx:400000:8:10011:0:xxxxxxの
x以下六桁が変動でした。ソフトはpaintgraphic2ですが(スレ違いかなって思って)
続け様で申し上げないのですが
SetTitleMatchMode RegEx
#IfWinActive, ahk_class Afx:400000:8:10011:0:.*
でいいのかなと思って色々弄ってみたけど駄目でした
因みにウインドウクラス名は新規作成(Untitled )を開いても
変化はありませんでした

407 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/13(月) 17:52:58 ID:Jqm7FBF10]
SetTitleMatchModeコマンドがきちんとAutoexecブロック内にあるかい?

408 名前:名無しさん@お腹いっぱい。 [2009/07/13(月) 19:11:45 ID:EfchmhA10]
何度もすいません
Autoexeもブロック化もしていなかったのでしてみました
{
SetTitleMatchMode RegEx
}

#IfWinActive, ahk_class Afx:400000:8:10011:0:.*
WheelUp::send, NumpadAdd
WheelDown::send, NumpadSub
return
こういう感じでしょうか?(しつこくスイマセン)

409 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/13(月) 19:14:52 ID:gpgKXs+F0]
SetTitleMatchMode RegEx
#IfWinActive, ahk_class Afx:400000:8:10011:0:.*
return

WheelUp::send, {NumpadAdd}
WheelDown::send, {NumpadSub}
かな?ァァァアアアアア〜アッヒャッヒャ!ヽ(;`・∀)ノ

410 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/13(月) 20:45:49 ID:6dlsOKO00]
>>400
ahkじゃむりですか・・・
何か他の手を考えてみます、ありがとうございました

411 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/13(月) 21:13:28 ID:nb47aZHk0]
>>408
lukewarm.s101.xrea.com/Scripts.html
の「スクリプトの起動とAuto-executeセクション」を熟読


412 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/14(火) 16:57:18 ID:3/lvv1eT0]
F12::#D

こんな感じのキー変更を行いたいのですがなんか上手く動作しません
キー変更先にWINキーは使えない仕様なのか、それとも環境の問題か…
デスクトップ表示の命令が分かれば解決しそうだけど誰か情報あったらplz!

413 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/14(火) 17:04:03 ID:4gFEIoud0]
大文字のDだとシフト押した扱いになるんじゃないかな

F12::#d



414 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/14(火) 17:05:29 ID:3/lvv1eT0]
えー事故解決しますた。。。あまりスマートな方法じゃないけど
デスクトップ表示のショートカットアイコンを起動する形で実現出来ました

415 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/14(火) 17:07:21 ID:3/lvv1eT0]
>>413
うわっホントでした、なんという恥ずかしい間違いw
ありがとうございました。

416 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/14(火) 18:01:13 ID:tjaNVAHDP]
Run, shell:::{3080F90D-D7AD-11D9-BD98-0000947B0257}

417 名前:名無しさん@お腹いっぱい。 [2009/07/14(火) 19:03:55 ID:rlrvyAbn0]
403です
おかげでなんとか
動くようになりました
ありがとうございます

418 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/14(火) 19:32:35 ID:v50nfNmk0]
質問の際、ソフト名を書かない
解決の際、解決に至った情報を書かない

まさに自分のことしか考えていない。
情報を共有する場所で、あるまじき行為

419 名前:名無しさん@お腹いっぱい。 [2009/07/14(火) 20:48:40 ID:rlrvyAbn0]
嗚呼失礼そういうルールでしたか
直接に解決に至った情報は409の方が提示されていたんですが
スペルチェックというか「,」であったり半角スペースを忘れる
イージーミスだったので
ちゃんと
SetTitleMatchMode, RegEx
#IfWinActive, Paintgraphic2 ahk_class Afx:400000:8:10011:0:.*
return

WheelUp::send, {NumpadAdd}
WheelDown::send, {NumpadSub}
return
で今のところ順調に動くようになりました
ご忠告を含め大変感謝です!

420 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/14(火) 20:59:28 ID:v50nfNmk0]
よし、合格!
これで、同じ悩みを持つ人の糧になる。

421 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/15(水) 04:48:01 ID:ZstWjcqp0]
FavoriteFinder.ahk消えちゃったね(´-ω-`)

422 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/15(水) 09:05:36 ID:0bQiTwD20]
Internet Archiveにも情報が残ってないとか

423 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/15(水) 09:44:47 ID:NhmkqrjQ0]
AutoHotkeyでマルチバイト(全角)文字を文字化けなしで出力する関数 - Knowledge Database IT
it.kndb.jp/entry/show/id/1188

これを使うと、文字が確定した状態で出力されてしまいます。
文字を未確定のまま出力させるにはどうすればいいのでしょうか。



424 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/15(水) 10:29:13 ID:eRZrTUyIP]
日本語入力モードにしてローマ字(ひらがな)を送った後、スペース等の変換キーを送るとか、
  IME_Set(1)
  Send mikakuteide{Space}

IMEが再変換に対応してれば>>423で漢字を送った後、再変換させるキー(MS IMEだと変換)を送るとか、
  mb_send("未確定で")
  Send {SC79}
  ※厳密に再変換させるなら、日本語文字数分だけShift+←を送って選択させた後に再変換






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<154KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef