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 以降も参照
239 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/18(木) 19:41:07 ID:JJ+I/19Q0] 路地はハードは良いんだけどね と言うかマウスユーティリティで良いものってあまり見ない。 絶対使わなそうなランチャとかイラネ。 古いInteliPointとエレコムホイールユーティリティは良いと思う >>237 もうちょい頑張ろうぜ ttp://lukewarm.s101.xrea.com/Examples.html
240 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/18(木) 20:16:32 ID:7JmYAkRj0] AutoHotkeyをインストールする (インストーラーでインストールするとahkファイルの関連付けが一緒に行われる) Autohotkey.exeと同じフォルダに 新規テキスト 作成する。 新規テキスト.txt を AutoHotkey.ini に変更する ※AutoHotkey.ini ではなく、任意の名前.ahk (ahkファイル)でもいい。 ※ahkファイルならどこに作成してもOK。 テキストエディタ(メモ帳など)で Autohotkey.ini を開く。 ウィンドウの識別方法はいくつかあるけど、ウィンドウクラスで識別する方法を。 ウィンドウクラスを調べる方法はいろいろあるけど同梱されている AU3_Spy.exe を使うと簡単。 (AutoHotkey.exeと同じフォルダにある) 取得した ahk_class をクリップボードにコピーする。 例えばメモ帳のウィンドウクラスを調べると Notepad ということが分かる。 #IfWinActive, ahk_class Notepad ; メモ帳がアクティブなら ^0::F1 これを AutoHotkey.ini に貼り付けて保存し、Autohotkey.exe を実行。 (任意の名前.ahk に貼り付けて保存した場合は 任意の名前.ahk をダブルクリック) 最初の取っかかりで躓いているのだろうけど 後は>>239 のリンク先に殆ど書かれている。
241 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/18(木) 21:10:14 ID:Ojx5UvYg0] いまんとこできたのがソフトの起動のみ・・・ WinTitle Mozilla Firefox ^PgDn::F2 #IfWinActive MozillaUIWindowClass ^PgDn::F2 これでできません・・・何が間違ってるのでしょうか?
242 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/18(木) 21:23:46 ID:wnsiLCT/0] F2::^PgDn じゃないの? ってか、とりあえず流行らせるページひととおり読もうぜ
243 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/18(木) 21:49:21 ID:7JmYAkRj0] 「Ctrl+0にF1を」として書いてた・・・ 「Ctrl+0をF1に」なら F1::^0 だった 他の方も言ってるけどAutohotkeyを流行らせるページを見た? (主に関連する解説ページはウィンドウの指定方法、ホットキー、Remap)
244 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/18(木) 21:52:18 ID:SVpnwZUO0] >>241 Sendを使う Remapは修飾キーを離してくれないので それだとCtrl+F2が押されたことになっている
245 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/19(金) 00:10:42 ID:nmCnAcVn0] スレッド動作中に、ほかのキーが押されているかは「GetKeyState」で できますが、マウスのホイールが回ったかどうかを調べる方法は、ありますか? マウスの左右チルトを倒してスレッドを開始し、 そこでループさせながらホイールの上下入力を検知したいのですが、 ホイールの回転検出方法でつまずいてしまいました。
246 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/19(金) 00:46:58 ID:IlTer6q60] こんな感じか ~WheelUp::wheel:=1 ~WheelDown::wheel:=-1 WheelLeftl:: wheel = 0 Loop { ほげほげ If (wheel!=0) ふがふが } Return
247 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/19(金) 01:32:42 ID:nmCnAcVn0] >>246 ありがとうございます。うまくいきました。 なるほど、1スレッドにこだわるあまり、思いつきませんでした。
248 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/19(金) 01:47:13 ID:yGrRFejp0] #IfWinActive MozillaUIWindowClass F2:: Send ^ Send PgDn return これでも駄目だった・・・なぜかしらん?
249 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/19(金) 01:59:10 ID:pArZgo1w0] いいかげん解説くらい読んでくれ
250 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/19(金) 13:42:58 ID:567XQ0M40] >>248 ctrlとPgDn別々に押してるんだから動かなくて当然 あとSendのページ読めば{}やら,やら必要なのもわかるはず それと、なんで>>242 試してみないの?
251 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/19(金) 18:13:40 ID:fIAAihen0] まあ ahk_class 付いてない時点でウィンドウ判定に失敗してるんだけどな
252 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/19(金) 19:46:31 ID:yGrRFejp0] ここ2、3日騒いでいた者ですがなんとか設定できました。 F2::^PgDnで問題なくできました。 問題は、251さんの指摘しているところですw
253 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/19(金) 19:53:11 ID:YBCNr5+M0] もう二度とこないでね^^
254 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/19(金) 20:18:25 ID:hGBhDH/a0] >>226 ,227,228,233,234 自分>>178 なんですが、ロジのマウス使ったことないですがやっぱりShiftが押されっぱなしになりますね。 マウスドライバはMSの純正で、ボタン割り当てはAutoHotkeyのみでやってます。 LShift & WheelDown::AltTab LShift & WheelUp::ShiftAltTab だけで走らせてみたところ、LShift & WheelDown::AltTab でフォーカスを移したあと、マウスクリックで 元のウィンドウに戻ってくると、毎回 Shiftが押されっぱなしになることが分かりました。 TeraPadとJanedoeViewで確認。 LShift & WheelUp::ShiftAltTab では大丈夫みたいです。 マウスはサンワのTB38という5ボタンのトラックボール、メーカーのドライバを入れた前歴はありません。 キーボードがへたってるのかなあ
255 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/19(金) 20:29:17 ID:IlTer6q60] ■ キー押しっぱなし俺的まとめ ■ 症状 i) キーはCtrl や Shift が多い ii) 物理キー押下・押上で解除される 原因となっていそうなもの A) SetPoint(ロジクール製マウスユーティリティ) B) 窓使いの憂鬱(のどか) C) VMWare / VirtualPC A単独、もしくは (B または C) + デュアルコア以上のCPU ※ ソースは繭スレとか ---- 俺はCore2のPCにした時 B で一度なってAHKに完全移行(OS再インスト)で いったん無くなったけど、VMWareを入れて(C)再発した。 今はどちらも入れていないので特に問題は起きていない。
256 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/19(金) 20:59:14 ID:NFr4v0Hr0] 何分後に動作 とか 何時何分に動作 っていうタイマーってできないかな? 1分ごとに監視するのは無駄な動作が多い
257 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/19(金) 21:11:27 ID:NFr4v0Hr0] 何分後ってのはタイマーで指定すればいいだけか 時間指定できないかな
258 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/19(金) 21:24:32 ID:hGBhDH/a0] >>255 AとCは該当なし、Bは使った事ないですがChangeKeyで前変換とカタカナキーを殺していたのを思い出して リセットして再起動してみましたが駄目でした。自分もCore2DuoのE8400です。 OS再インストールするしかないのかな・・・ orz
259 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/19(金) 21:59:46 ID:RvBowY+q0] 結局これといった解決方法は無しかorz
260 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/20(土) 12:28:49 ID:Z+MpXoRr0] >>256 SetTimer,OnTimer,60000 return OnTimer: FormatTime,NowTime,,HHmm If (NowTime >= 0659) && (NowTime <= 0701) && (!Compleate) { Msgbox, 7:00になったよ Compleate := 1 } Else{ Compleate := "" } return 1分ごとに時間チェックするだけなら大した負荷にはならんと思うけど (どっちにしろどこかで何かしらが定期時間チェックする必要はあるので 自分でやるか、他人に任せるかの違いでしかないのだし) どうしても1分Timerが嫌なら単独スクリプトにしてOS標準のタスクスケジューラに登録したらいい
261 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/20(土) 14:09:37 ID:J9kUfX5s0] >>190 遅くなりましたが、動作確認できました。 > いづれ修正版を上げ直したくはあるんですが、色々手を入れたいとこがありすぎる 期待しています。 とりあえず WheelAccel.ahk に修正を加えてアップしておきました。 ttp://lukewarm.s101.xrea.com/up の 111.zip >>189 氏ともども、ご教示ありがとうございました。今後ともよろしくお願いいたします。
262 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/20(土) 16:45:22 ID:yzkbbsVb0] ソフトのタイトルの一部で判断し 各キーを対応させるにはどうすれば いいのでしょうか?
263 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/20(土) 16:48:52 ID:m9lSj1Vi0] 複数のキーボードを接続している状態で、特定のキーボードについてのみ キー配置のリマッピングを有効にする方法はあるのでしょうか。 Alphagripというイロモノキーボードを買ってみまして、AutoHotkeyで リマップして キー配置を変更したのですが、普通のキーボードも同時に 使っているので そちらは出来ればそのままのキー配置にしたいのです。 一応関数は探してみたつもりですがそれっぽいのが見つかりませんでした。
264 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/20(土) 17:46:05 ID:Kh84drTR0] >>262 SetTitleMatchMode と #IfWinActive >>263 ドライバレベルで対応出来るものじゃないと出来ない。無理。 テンキーなら ttp://ioenc.net/magickeypad/ で出来るけど、 でもこれもやっぱりドライバ置き換え。
265 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/20(土) 18:01:50 ID:yzkbbsVb0] >>264 レスどうも タイトルに AutoHotkeyというのが含まれてる場合 SetTitleMatchModeで指定するにはどうすればいいのでしょうか? #IfWinActiveの場合は、付属のソフトでahk_class○○といった 感じでできました。
266 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/20(土) 18:09:21 ID:m9lSj1Vi0] >>264 レスありがとうございます。やっぱ無理なんですか、残念。
267 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/20(土) 18:47:56 ID:Kh84drTR0] >>265 #IfWinActive などのウィンドウの状態を見てのキーアサインを振り分ける機能は Autoexec セクション内での SetTitleMatchMode コマンドの指定したやり方で判定をする (指定がなければ前方一致をデフォルトとする) 意味が全然分からないならスクリプトの「1行目」に以下を書く SetTitleMatchMode, 2
268 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/20(土) 18:57:45 ID:yzkbbsVb0] とりあえずテンプレのサイトにいって調べてみたら MatchMode タイトルのマッチ方法 1 前方一致(WinTitleで指定した文字列で始まるウィンドウが一致する)(高速)(デフォルト) 2 中間一致(WinTitleで指定した文字列を含むウィンドウが一致する) 3 完全一致(WinTitleで指定した文字列に完全に一致するものが一致する) こんなのを発見しました。 2というのとかの意味もわかりました。使い方自体は疑問ですが、 最初の行に書き込むことによって目的の動作ができるようになりました。 m(_ _)mペコッ
269 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/20(土) 19:19:19 ID:Z+MpXoRr0] ID:yGrRFejp0 = ID:yzkbbsVb0 だろ 264でヒントもらっといて 265みたいな再質問ってあり得ない 質問するなとはいわんが答えてもらった内容をちゃんと噛み砕いて飲み込む努力しろよ 調べる能力つけないとこのソフト使うのは難しいぞ
270 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/20(土) 19:58:07 ID:Kh84drTR0] 多少なりとも前進はしてるようだけど、調べる気がないのはちょっとな
271 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/20(土) 23:35:06 ID:yzkbbsVb0] そんな風にみえちゃんだろうけど相当検索し調べその結果ですw 調べ方が悪いのかしら・・・
272 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/20(土) 23:57:07 ID:LyIyydqb0] 調べ方も頭も態度も悪い
273 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/21(日) 01:19:42 ID:LY2SRQDx0] hoge.ahkが起動しているかを別のahkから調べる方法はありますか? プロセスがあるかで調べようと思ったのですがどれもAutoHotkey.exeで調べられませんでした
274 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/21(日) 01:34:59 ID:LCii9rhx0] >>273 もらいもの DetectHiddenWindows, On WinGet, ahk_id_list, list, ahk_class AutoHotkey Loop, %ahk_id_list%{ this_id:=ahk_id_list%a_index% WinGetTitle, this_title, ahk_id %this_id% msgbox, %this_title% } それか、AutoHotKey.exeをhoge.exeにリネームコピーしてhoge.ahkをhoge.exeに送れば問題なし。
275 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/21(日) 01:38:33 ID:gJSSJElb0] SetTitleMatchMode, 2 #SingleInstance, force DetectHiddenWindows, On WinWait, \hoge.ahk - AutoHotkey, , 0.1 DetectHiddenWindows, Off msgbox, % Errorlevel ? "ないよ" : "あるよ"
276 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/21(日) 01:46:22 ID:ylbkYADc0] コマンドラインを読む関数がどこかになかったっけ? それ使えばいいような
277 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/21(日) 01:53:22 ID:LY2SRQDx0] >>274-275 出来ましたありがとうございます
278 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/21(日) 03:28:19 ID:LY2SRQDx0] すみませんAHK連携絡みでもう二つ質問させてください。 あるAHKから起動中の別のAHK内の指定処理(ラベルなり関数)を実行させる最適な方法は何でしょうか? 起動中のAHK間の変数の受け渡しはファイル書き出し、読み込み以外で方法ありますか?
279 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/21(日) 04:22:12 ID:gUuxFMOa0] 隠し(じゃなくてもいいけど)GUI作って、ボタンを押す。パラメタ渡しは隠しGUIのEditとかに書く
280 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/21(日) 05:14:16 ID:gJSSJElb0] 関数ならAutoHotkeyをインストールしているディレクトリにLibフォルダを作って そこに入れておけばいいんじゃないかな 変数の受け渡しはクリップボードを軽油する方法もある。 一定間隔でクリップボードを監視し、特定の文字列から始まるなら 変数の受け渡しと見なし、変数に置き換えてやるとか。
281 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/21(日) 05:15:29 ID:gJSSJElb0] ;例えば特定の文字列を ahk9999999 とし、 ;クリップボードコピーする形式を ahk9999999,変数名,値 というにようにする。 ;下記スクリプトを実行中に ahk9999999,hoge,5 をクリップボードにコピーすると ;msgboxに hoge = 5 と表示。 #Persistent #SingleInstance, force hoge=1 ; テストで変化を確認するために初期値を 1 にしておく SetTimer, ClipBoardCheck, 100 return ClipBoardCheck: if(Instr(Clipboard, "ahk9999999")=1){ loop, parse, Clipboard, `, { if A_Index=2 hogehoge=%A_LoopField% else if A_Index=3 %hogehoge%=%A_LoopField% } Clipboard= ; クリップボードを空にする msgbox, %hogehoge% = %hoge% } return ;変数を渡す方のスクリプトはClipboardの内容のバックアップしておき、 ;Clipboardが空になったらバックアップしていたのを戻すようするといいかも。
282 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/21(日) 15:21:49 ID:ZMhX9OF60] >>279 仕組みは分かったのですがやり方が分かりません(´;ω;`) よかったら簡単な例を教えてください 試しにこういうふうに作ったのですがGUIがHideだからなのかクリックしてくれません 操作する側に ControlClick, Button1, HideControl 操作される側に GUI, Add, Button,,Exit Gui, Show, Hide, HideControl return ButtonExit: ExitApp >>280-281 なるほどクリップボードですか 接頭辞を決めておくというのは思いつきませんでした
283 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/21(日) 16:13:59 ID:gUuxFMOa0] >>282 操作側で DetectHiddenWindows,On
284 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/21(日) 16:33:39 ID:16cGC6mhP] 受け渡しなら、OnMessageとPostMessageでしょjk 英語公式のリファレンスに詳しいサンプルがある
285 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/21(日) 16:43:17 ID:ZMhX9OF60] >>283 早速試しましたが変化無しでした
286 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/21(日) 17:36:28 ID:gUuxFMOa0] >>284 まぁそれが普通だと思うけど、GUIのボタン押すのもあまり変わらないと思う ---- server.ahk ---- Gui, Add, Button,gSub1 Gui, Add, Edit, vParam Gui, Show,Hide, HiddenWindow Return Sub1: Gui, Submit, NoHide MsgBox, % Param Return ---- client.ahk ---- Gui, Add, Edit, vParam Gui, Add, Button,,Go Gui, Show Return ButtonGo: Gui, Submit, NoHide DetectHiddenWindows, On ControlSetText,Edit1,% Param, HiddenWindow ahk_class AutoHotkeyGUI ControlClick,Button1,HiddenWindow ahk_class AutoHotkeyGUI Return
287 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/21(日) 17:56:23 ID:16cGC6mhP] じゃあ、先に普通のやり方教えてあげなよw 余計なGUIリソース消費するし、コードの可読性や保守性を考えるとあまり一般的な解決法とも思えない
288 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/21(日) 18:09:32 ID:ZMhX9OF60] >>286 おー無事出来ました どうもありがとうございました >>284 やっぱりそっちのほうがいいんですかね でも英語読めないので諦めますw
289 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/21(日) 18:33:01 ID:gUuxFMOa0] 普通のアプリならそうすると思うけど、色々覚えなきゃいけないことが多いから AHKのコマンドだけで出来る事に意義はあると思うよ。 リソースったってたいしたことないよ。
290 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/21(日) 18:58:11 ID:16cGC6mhP] まあ、人それぞれだから好きにすればいい 一応OnMessageだってahkのコマンドだし、覚えるのが大変なのはGUI絡みだって同じだと思うけどね 文字列の受け渡しになるとちょいと面倒になるけど、数値の受け渡しならこの程度で済む --- receiver.ahk --- OnMessage(0x5555,"MsgHandler") MsgHandler(wParam, lParam, msg) { TrayTip,Receiver,Message %msg% arrived:`nWPARAM: %wParam%`nLPARAM: %lParam% } --- sender.ahk --- F12:: SetTitleMatchMode 2 DetectHiddenWindows On PostMessage, 0x5555, 11, 22, , receiver.ahk ahk_class AutoHotkey return
291 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/21(日) 22:46:25 ID:q3qyIN4s0] 人それぞれって言われたらそれまでだが、GUIはちょっとな AHKのGUI関連って無駄にイベントラベル増えるからコードぐちゃぐちゃになるし。 自分だったら窓表示する必要があってもGUIコマンドは可能な限り使いたくないな。 >>276 管理人さんのマウスジェスチャ2の中だな。hh.exeなんかからでもchmファイルのフルパス抜けるし便利だよ GetCommandLine(pid=0,WinTitle="A"){ if (!pid) WinGet,pid,PID,%WinTitle% ; kernel32\GetCommandLineA のアドレスへのポインタを設定? ptr:=(NumGet(DllCall("kernel32.dll\GetProcAddress",UInt,DllCall("kernel32.dll\GetModuleHandle",Str,"Kernel32"),Str ,"GetCommandLineA",UInt)+1)) ; プロセスのハンドルを取り出す hp:=DllCall("kernel32.dll\OpenProcess",UInt,0x001F0FFF,UInt,0,UInt,pid,UInt) VarSetCapacity(res,1024) ; GetCommandLineのメモリアドレスを取得してからコマンドライン文字列を取得 DllCall("kernel32.dll\ReadProcessMemory" ,UInt ,hp ,UInt ,ptr, UIntP,addr ,UInt ,4 ,UInt ,0) DllCall("kernel32.dll\ReadProcessMemory" ,UInt,hp ,UInt,addr ,Str,res ,UInt,1024 ,UInt,0) DllCall("psapi\CloseProcess", UInt,hp) return res }
292 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/21(日) 23:48:05 ID:ZMhX9OF60] >>290 これはスマートでいいですね 使わせてもらいます
293 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/22(月) 02:55:22 ID:9141GuF00] >>200 この方法ではNumpad0,Numpad6,Numpad1に割り当てできなくなります。 何とかなりませんでしょうか?
294 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/22(月) 03:00:20 ID:2F0zdoiY0] キーを押し続けている間連続で加速しながら処理 プレイヤーのシーク操作やボリューム操作など Left:: sleepTime := 80 ;初期待ち時間 While GetKeyState("Left","p") { send, {Left} ;任意処理 sleep, %sleepTime% sleepTime := sleepTime > 20 ? sleepTime * 0.95 : 20 ;加速 }
295 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/22(月) 22:47:42 ID:Qq8KUG5Y0] AHK使い始めたばかりなんですが、ウィンドウタイトルの無いウィンドウを 操作するのはどうしたらいいでしょうか? 具体的にはnovolization.hp.infoseek.co.jp/pro.html#ao のMovieOperatorを 操作したいんですが。自分ではウインドウタイトルが無いとマウスで絶対座標指定して いちいちクリックとかしか考え付かないです。 ちなみに前はUWSC使ってました。こいつでもウィンドウタイトルが無いとどうにもならなかったんで ツール変えてみようかと思い立ったわけなんですが…
296 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/22(月) 23:08:50 ID:HdFC8Trn0] ウィンドウクラスとプロセス名(PID)で絞り込みかなl Process, Exist, MovieOperator.exe IfWinExist,ahk_class #32770 ahk_pid %ErrorLevel% { ; ここにウィンドウ操作 ControlGetText, text, ComboBox1 MsgBox, % text }
297 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/22(月) 23:35:44 ID:Dlle25nB0] >>>>>>>>>>( Window Title & Class )<<<<<<<<<<< JPG2AVI ahk_class Afx:00400000:b:00010011:00000006:0594124D AU3_Spy.exeで見ると普通にウィンドウタイトル取れてるみたいだが。 これで操作できないんか?
298 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/22(月) 23:40:34 ID:Dlle25nB0] ってスマソ、思いっきりソフト間違えとる。
299 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/22(月) 23:41:31 ID:Jnu5lPCA0] JPG2AVI じゃなくて MovieOperator じゃないの? ウチの環境でMovieOperatorをAU_Spy.exeで取得してみたけど タイトル無しの ahk_class #32770 だったよ
300 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/22(月) 23:57:31 ID:Qq8KUG5Y0] >>296 ありがとうございます。PIDで取れました。 これで色々操作するめどが立ちます。
301 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/23(火) 00:15:03 ID:ZOyW9r5y0] 先の質問とは関係ないですがエディタにサクラエディタ使ってる人居ないですかね? キーワード定義既存のがあったら欲しいです…
302 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/23(火) 01:08:54 ID:K2VHacbK0] >>301 昔どこかで拾ったんだよなあ。再びググったが見付からず。 黙ってあげてみるが、明日の昼には消す。 ttp://aaabbbccc.s6.x-beat.com/upload/src/up26358.zip
303 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/23(火) 02:46:42 ID:ZOyW9r5y0] >>302 ありがとう。頂きました。
304 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/23(火) 13:43:55 ID:WplNcnsp0] コントロールのウィンドウハンドルからClassNNを取得するにはどうすればいいんでしょうか
305 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/23(火) 15:41:53 ID:4VER+fnU0] 最近使い始めたばかりなのですが ttp://hp.vector.co.jp/authors/VA044605/resp.html このRespというソフトとの連携がうまくいきません IfWinExist, RESp { WinActivate, RESp ControlFocus, TButtonEdit1 ControlSetText , TButtonEdit1, %1% Send, {ENTER} return ;サブルーチンを終了 } Run, Respのぱす WinWait,Resp WinActivate, RESp ControlFocus, TButtonEdit1 ControlSetText , TButtonEdit1, %1% Send, {ENTER} return ;サブルーチンを終了 ソフトが立ち上がっている場合はうまくいくのですが立ち上がってからの検索ワードが渡りません よろしくご教授のほどお願いします。
306 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/23(火) 15:58:32 ID:uY1EeqKp0] うまく動かないときは、適当にスリープを噛ませると、動く場合がある 検証してないけど↓はサンプル。 ControlFocus, TButtonEdit1 sleep,100 ControlSetText , TButtonEdit1, %1% sleep,100 Send, {ENTER} 動けば、徐々にsleepの値を小さくしていけば、おk
307 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/23(火) 16:19:32 ID:4VER+fnU0] Sleepかましてやってみたんですが10秒 5秒 1秒 でも Resp起動→スクリプト→検索はうまくいくのですが スクリプト→Resp起動→検索は起動はするのですが検索ワードがわたりません 二度手間になりますが起動はするのでこのまま使用して また時間のあるときにいじることにします。 ありがとうございました。
308 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/23(火) 16:42:43 ID:63qINAR80] × WinWait,Resp ○ WinWait,RESp
309 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/23(火) 18:31:10 ID:4VER+fnU0] いけました。大文字と小文字で違うんですね。勉強になりました。 RESPで検索=D:\〜\AutoHotkey.exe "D:\〜\RESp\Resp_SelecitonSearch.ahk" "$TEXT$LINK" Janeからこんな感じで使ってます ありがとうございました。
310 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/27(土) 16:12:17 ID:kilshKVq0] アクティブウィンドウの枠に色をつけたいです。 Progress / SplashImage使えばいいんですかね? 方法を教えてください。
311 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/27(土) 16:19:28 ID:TU1fJsoo0] アクティブウインドウの大きさを調べて、 それより少し大きいGUIを作って、背景の色を変えればいいだろう そのやり方を教えてってことなら、勉強するしかない
312 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/27(土) 20:43:29 ID:mjW9CgOJ0] 画面のプロパティで出来るだろ
313 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/28(日) 02:43:19 ID:H2leh/Na0] 下のように設定するとAlt+AでもHomeキーが押されたことにるんだけど Alt+AのときにはCtrl+Aが押されたことにするにはどうすればいいですか? ^A::send {Home} !A::send ^a
314 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/28(日) 03:18:30 ID:gb9fK4qR0] >>313 >>4 A7
315 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/28(日) 04:45:22 ID:H2leh/Na0] >>314 サンキュ。うまくいきました
316 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/29(月) 22:45:37 ID:e/W0qJft0] ahkでFizz-Buzz問題の解答ください www.aoky.net/articles/jeff_atwood/why_cant_programmers_program.htm
317 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/29(月) 23:09:18 ID:roKbqfx60] 読んでみたけど、これってフィクションだよね? ド素人の自分でもわかるのにプログラマ志望の人が分からないとか・・・
318 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/29(月) 23:57:56 ID:yHCDc8410] loop,100{ tr++ fi++ tr:=tr=4 ? 1:tr=3 ? "Fizz":tr fi:=fi=6 ? 1:fi=5 ? "Buzz":fi valu:=tr="Fizz" && fi="Buzz" ? "FizzBuzz" : tr="Fizz" ? "Fizz" : fi="Buzz" ? "Buzz" : A_Index MsgBox,%valu% } Return こんなんでいいのかな?
319 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/29(月) 23:58:11 ID:CtyaNjiT0] ttp://rosettacode.org/wiki/FizzBuzz#AutoHotkey
320 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/30(火) 00:03:39 ID:j31Q4+5v0] >>318 わかりづらいから駄目。 と言ってみる(´-ω-`)
321 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/30(火) 00:13:58 ID:T80ICC0z0] if mod(a_index,3)=0 {うんたら} if mod(a_index,5)=0 {かんたら} で適当に分岐させればいいんじゃないの
322 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/30(火) 00:17:09 ID:p76oAck30] こんな感じか Loop,100{ a := (!Mod(A_Index,3) ? "Fizz" : "") . (!Mod(A_Index,5) ? "Buzz" : "") msg .= (!(a) ? A_Index : a) . "`n" } msgbox %msg% >>317 プログラマ「志望」なら案外そんなもん。 趣味でフリーソフト作ってるような人ばっか応募してくるわけじゃない。 シーケンスの基本概念なんて実務でもやってなきゃ案外頭に入ってないもんだよ。
323 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/30(火) 00:18:37 ID:MqDPxJU80] こんなの? Loop,100 Fizz:=Mod(A_index,3) , Buzz:=Mod(A_index,5) , output.= (Fizz = 0 && Buzz = 0) ? "FizzBuzz'n" : Fizz = 0 ? "Fizz'n" : Buzz = 0 ? "Buzz'n" : A_index "'n" MsgBox, %output% output =
324 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/30(火) 00:22:04 ID:T80ICC0z0] みんな可読性わるすぎw 大括弧だけで1行 1命令1行 を徹底してる俺は異端なのか・・・
325 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/30(火) 00:35:09 ID:j31Q4+5v0] MsgBox, 1 MsgBox, 2 MsgBox, Fizz MsgBox, 4 MsgBox, Buzz MsgBox, 6
326 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/30(火) 00:36:33 ID:rzfPOy180] 俺の頭の悪さに絶句・・・ Loop 100 { outLine := A_INDEX Loop 3 { check := outLine if A_INDEX = 1 subVal = 15 else if A_INDEX = 2 subVal = 5 else if A_INDEX = 3 subVal = 3 Loop { check := check - subVal if check < 0 break if check = 0 { if subVal = 15 outLine = FizzBuzz else if subVal = 5 outLine = Buzz else if subVal = 3 outLine = Fizz break } } } FileAppend, % outLine . "`n", %A_ScriptDir%\FizzBuzz.txt }
327 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/30(火) 00:40:37 ID:xs+OUAE+0] Loop,100 { If Mod(A_Index,3)=0 value=Fizz If Mod(A_Index,5)=0 value=%value%Buzz If value= value=%A_Index% Msgbox,%value% value= } これで最後にして寝よう。なかなかおもしろかったー。
328 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/30(火) 00:47:38 ID:j31Q4+5v0] まあ、基本形はこれで Loop,100{ if !Mod(A_index,15) MsgBox, FizzBuzz else if !Mod(A_index,3) MsgBox, Fizz else if !Mod(A_index,5) MsgBox, Buzz else MsgBox, % A_index }
329 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/30(火) 00:48:16 ID:EZ0ubY2h0] 考え方としては 3で割り切れるなら[Fizz] 5で割り切れるなら[Buzz]と表示 どちらでも割り切れないなら数字を表示 改行 だな
330 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/30(火) 00:51:54 ID:T80ICC0z0] >>319 ↓懐かしすぎて涙が出た FOR A = 1 TO 100 IF A MOD 15 = 0 THEN PRINT "FizzBuzz" ELSE IF A MOD 3 = 0 THEN PRINT "Fizz" ELSE IF A MOD 5 = 0 THEN PRINT "Buzz" ELSE PRINT A END IF NEXT A ↓Perl。さすが変態 sub f { $_[0] % $_[1] ? '' : $_[2] } print f($_, 3, 'Fizz') . f($_, 5, 'Buzz') || $_, "\n" foreach 1 .. 100;
331 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/30(火) 11:22:41 ID:ZWlKlVyy0] SHIFT+カーソルの範囲選択を SHIFT+無変換+IJKLでやる書き方って出来る? 三つのコンビネーションって指定できないっぽいんだけど
332 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/30(火) 11:45:52 ID:z7lSMuFpP] 通常のカーソル移動も兼ねて良いのなら ~SC7B & i:: Send, {Blind}{Up} ~SC7B & j:: Send, {Blind}{Left} ~SC7B & k:: Send, {Blind}{Down} ~SC7B & l:: Send, {Blind}{Right}
333 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/30(火) 16:39:04 ID:gVhvA3S20] 今更ながら>>63 と>>76-77 を試したんですが、これすごい良いですね。 自分は単なるリマップとマクロにしか使ってなかったので、こんな事も 出来るのかと驚きました。
334 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/30(火) 21:34:48 ID:WurnbeTc0] >>332 うまくいった。ありがとう。 キーボード眺めてたら変換キーが丸々あいてるんだよな。 JKでタスク切り替え、残りのA-Zをランチャなんかに割り当てたら めちゃくちゃ便利そうな気がしてきた。
335 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/30(火) 23:43:51 ID:hpTcuIjN0] ひらがなキーを押したときの動作を key stroke and script info で見てみたら ひらがなキーがなぜか押上されることが解りました この不具合?を解消するにはどうすればいいのでしょうか
336 名前:名無しさん@お腹いっぱい。 [2009/07/01(水) 02:28:14 ID:JH7gYY9R0] ∧∧∧∧∧∧∧∧∧∧ ___/ ̄ ̄ ̄\ < ┌┐ ┌───┐ > / / / ̄ ̄ ̄ ̄\ < ││ │┌─┐│ > /  ̄ \ < ││ └┘ // >/ □ \ < ││ // >// ̄~\ / ̄ ̄ ̄\ | < ││  ̄ >|//\ヽ ∨〃/\ \ /\ < ││ _ >//(・) \ゞ/ /(・) 〉 | | ∩| < ││ // >| \_/ノ \_/ ノ し|: | ∪| < ││ / | >l:::::::::∠~ ⌒ | \/ < ││ //|| >|:::::::::r〜〜‐、ヽ / / < ││  ̄ || >|:::::::::)jjjjjjjjjjjヽヽ / / <  ̄  ̄ >|:::::::::|,, || / / <. ロロ┌┐┌┐┌┐ >!:::: ヽiiiiiiiii// / / < ┌┘│││││ >ヽ ヽ〜〜"/ / <  ̄ ̄ └┘││ > ヽ、__,,,_∠__/ < ┌┐┌┐ ││ > _]::::::: [_ < ││││ // > ̄~ ゙ ̄ ̄ ̄ ̄ヽ < ││││  ̄ > ,〜ヽ < └┘└┘ > 〜 ノ ̄\ < [] [] > ’ノ⌒⌒⌒⌒〉〉 ∨∨∨∨∨∨∨∨∨∨∨ { Y∫
337 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/01(水) 11:19:06 ID:qaOF2plA0] 2バイトコードの処理方法で質問です。 TV録画用途のPCで、テレビ番組名をINIファイルのセクションに割り当てて、 いろいろ自動処理しています。 INIコマンドで、セクションに使ってはいけない文字(たとえば括弧「[」「]」) が入ると、INI自体は書けるものの、同一のセクションに書いてくれなかったり、 セクションを正しく読めないなどの不具合が出ます。 とりあえず、使ってはいけない特定の文字をアンダーバーに置換してみました。 name := RegExReplace(name,"(\.|\*|\?|\+|\[|\]|\{|\}|\||\(|\)|\^|^$|\\)","_") 成功 前 [道徳ドキュメント[再]] 後 [道徳ドキュメント_再_] 失敗1 前 [スパイスTVどーも・キニナル!] 後 [スパイスTVど\も・キニナル!] 失敗2 前 [暴れん坊将軍[再]] 後 [棒れん坊将軍_再_] これって2バイトコードが1バイトずつ処理されてるのが原因っぽいですね。 2バイトコード部分に混入する文字は無視し、1バイト部分だけ置換したいのですが、 なにかうまい回避策はないでしょうか。
338 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/01(水) 11:49:08 ID:qJNMhI6B0] >>337 マルチバイトの1バイト目の文字コードは 0x80〜0x9F 0xE0〜0xFC の範囲のはずなので (?<=^|[^\x80-\x9F\xE0-\xFC]) で弾けると思う >>335 OSやAHKのバージョンも書かずにそんなこと言われても答えられるやつはいないだろ。 マジレスするとKeyHistory まわりの問題は環境依存の可能性が高い。 (OS側が返してくる値自体が問題なのでAHK側でどうにかするのはたぶん無理) 現実的な解決策としてはキーボード変えるとかしかないと思われ
339 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/01(水) 11:52:56 ID:ll+32tHk0] >>1 の 駄目文字微対策版 って消えてない?サイトに繋がらない >>337 RegExReplaceじゃなくて 流行らせるページのBREGEXP.ahkを使えばいけると思う
340 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/02(木) 11:36:06 ID:i54unxpm0] しつもーん。 自分で作成したGUIのウィンドウを WinSetのTransparentで半透明にしようとすると透過度の数値に関わらずウィンドウが消えるけど、バグ?
341 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/02(木) 12:11:48 ID:rnkVZ9Ym0] そんな事起きた事がない
342 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/02(木) 12:14:52 ID:i54unxpm0] ↑ だけど、いろいろ実験したら、半分自己解決。 一定サイズ以上のGUIウィンドウを、半透明にしようとすると、ウィンドウが消えるみたい。 たとえば、30000×10000のウィンドウを半透明にしようとすると消える。 ウィンドウサイズが超でかいのを半透明にするとすごく重そうだしそれを防止するための処理が組まれてるのかな? 回避方法はないだろうか。。。。
343 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/02(木) 12:20:25 ID:i54unxpm0] ちょっと極端な数値を書いたけど、 5000×2000のウィンドウでもダメみたい。 というか、マルチモニタ環境だけかもしれないけど、 挙動がちょっとおかしい。 5000×2000のGUIウィンドウを半透明にしようとすると なぜかプライマリモニタにはウィンドウが表示されず、セカンダリにだけ表示される。 セカンダリにウィンドウが完全に移動したわけではなく、 プライマリとセカンダリの両方にウィンドウがまたがっているはずなのに、 プライマリの部分だけが表示されない。 マルチモニタ環境用にちょっとでかいウィンドウを使っていろいろやりたいのだけれど、 想定されていないバグってしまうサイズなのかな?。。。。
344 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/02(木) 13:25:08 ID:YojB3hE5P] ウチは6000x6000くらいはOKだったな というか、ウィンドウスタイルでWS_EX_TRANSPARENTを指定してるだけだし AutoHotkeyのバグではないと思うが そもそも透明にする必要性があるのか分からんし、回避方法は勝手に探求してくれ
345 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/02(木) 15:07:53 ID:0ufGIgHi0] DOSの %1 %~d1 %~p1 %~n1 %~x1 %~s1 のようなコマンドはありますか?
346 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/02(木) 15:18:55 ID:odzNiaBs0] えっ
347 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/02(木) 15:32:24 ID:6MEA84T00] ない 文字列操作、正規表現ライブラリ駆使して頑張れ
348 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/02(木) 15:38:42 ID:LzARIfnI0] >>345 コマンドラインからの引数で、なにかを利用したいなら %1% %2% %3% %4% ・・・ で取れる。使い方はDOSの%1と同様。 ファイル名に含まれる各種情報を取り出したいなら、 lukewarm.s101.xrea.com/commands/SplitPath.html SplitPath, InputVar [, OutFileName, OutDir, OutExtension, OutNameNoExt, OutDrive] >InputVar 分解するファイルパスを格納した変数名 >OutFileName フォルダパスを除いたファイル名を格納する変数名フォルダパスのみの場合は、空になる >OutDir フォルダパス(最後の「\」を含まない)を格納する変数名 >InputVarがファイル名のみの場合は、空になる。 >OutExtension ファイルの拡張子(「.」は含まない)を格納する変数名 >OutNameNoExt 拡張子を除いた名前部分を格納する変数名フォルダパスのみの場合は、空になる >OutDrive ドライブ文字(「:」付き)やネットワーク上のパスのマシン名を格納する変数名 InputVarが相対パスなどの場合は、空になる。
349 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/02(木) 15:50:24 ID:0ufGIgHi0] >>348 ありがとうございます。
350 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/02(木) 17:05:05 ID:YojB3hE5P] ダメ文字があるので、BREGEXP使ってごにょごにょした方が確実かと。 >>1 の対策版は繋らないね…
351 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/02(木) 18:37:31 ID:0ufGIgHi0] SplitPath, %1%, OutFileName, OutDir, OutExtension, OutNameNoExt, OutDrive で、 %1%,を使えないです。 X:= %1%, も使えないです。どうすれば使えるようになりますか? >>350 Batでダメ文字があったので逃げてきたのに・・・
352 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/02(木) 18:42:48 ID:LzARIfnI0] X= %1% SplitPath, %X%, OutFileName, OutDir, OutExtension, OutNameNoExt, OutDrive でどうよ
353 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/02(木) 18:47:08 ID:LzARIfnI0] おっと間違ったかも 手元のコードを見直したら X= %1% SplitPath,X, OutFileName, OutDir, OutExtension, OutNameNoExt, OutDrive これで動くはず
354 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/02(木) 19:09:24 ID:0ufGIgHi0] >>353 ありがとうございます。動きました。 がんばってみます。
355 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/02(木) 22:17:47 ID:0ufGIgHi0] DOSのSHIFTコマンドの代わりになるようなコマンドありますか? また、X= %1% の中の1の部分を %%y%%として数字を増やしたいのですが出来ません。%%の間に%%を入れることは不可能なんですか?
356 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/02(木) 22:23:21 ID:F+s6QMxA0] 演算子を:=にして式にする X := %y%
357 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/02(木) 22:34:25 ID:qjImDfCp0] ;AutoHotkey Help の「command line parameters」をそのままコピペ Loop, %0% ; For each parameter: { param := %A_Index% ; Fetch the contents of the variable whose name is contained in A_Index. MsgBox, 4,, Parameter number %A_Index% is %param%. Continue? IfMsgBox, No break }
358 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/02(木) 22:41:42 ID:0ufGIgHi0] >>356 >>357 度々すみませんでした。ありがとうございました。 がんばってみます。
359 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/03(金) 05:14:43 ID:c5pAeyeU0] >>335 環境依存ではなく、Windowsの仕様(?)らしい。 ttp://lukewarm.s101.xrea.com/test/read.cgi/bbs/1095764510/243-246 ttp://d.hatena.ne.jp/blechmusik2/20090513/1242142080 2番目のリンク先のコメントによると他のキーと違いひらがなキーは Up → Down ということらしいので (UWSCでキーのOn/Offチェックをしてみたけど、AutoHotkeyのKeyHistoryと同様にOnのままになってた) ひらがなキーをAutoHotkeyでカスタマイズしたい場合はドライバレベルで別のキーに変更しておく必要があるみたい。 別キーに置き換えるなら他のキーと重複しないF13〜F24がいいかも。 ということでひらがなキーをF13に置き換える手順。 AutoHotkeyで任意のキーをF13にリマップする。 例:F12をF13にリマップし、スクリプトを実行させる。 F12::F13 Changekeyを起動する。(Changekeyが無いならググって入手する) 「調査」→「どのキーなのか?またはスキャンコードでキーを変更します」を選択。 F12を押すとスキャンコード「0x0064」、該当するキーは「該当なし」と表示される。 (0x0064 はF13のスキャンコード) 「上のスキャンコードでキー変更する」をクリックすると 「変更前 (中略) 0x0064 をどのキーに変更しますか?」 というウィンドウが表示されるので「ひらがな」キーを選択。 「登録」をクリックし、Windowsを再起動する。 リマップ( F12::F13 )を解除する。
360 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/03(金) 19:37:40 ID:RmoLSHNq0] クリップボード内のテキストの中に、機種依存文字がないかチェックする処理って どうやって書けばいいかな。メール送信前にチェックするのに使いたいと思ってるんだけど。 機種依存文字一文字一文字について、検索処理するのは非効率だと思うんだけど ほかに何か良い方法ある?
361 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/03(金) 19:53:11 ID:eBItoHy+0] それぞれ(非)存在チェックするしかないと思うが。 If var [not] contains values で一発じゃないの
362 名前:360 mailto:sage [2009/07/04(土) 01:39:53 ID:NLnkQJFM0] 今、こんな感じに書いてて、処理を呼び出しとります。 m0: sleep,200 Send,^a sleep,200 Send,^c ClipWait sleep,200 Words = @,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S … (略) Loop, parse, Words, `, { StringGetPos, pos, clipboard, %A_LoopField% if pos >= 0 MsgBox, %pos%文字目に機種依存文字の%A_LoopField%が使われています。 } return >>361 If var [not] contains values を使って書くと、どんな感じになるんでしょう?
363 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/04(土) 02:09:25 ID:NLnkQJFM0] おぉお…機種依存文字じゃない文字が機種依存文字として認識されてしまう… ムズかしい。
364 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/04(土) 02:33:45 ID:RHUozl570] 正規表現か何かで文字コードを指定した方がいいんじゃない?
365 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/04(土) 16:48:06 ID:RdF1EmR40] 指定ドライブの空き容量を取得する方法はありますか?
366 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/04(土) 16:52:03 ID:RdF1EmR40] 自己解決しました DriveGetっていうのが用意されてたんですね 無駄にSystemMonitor関数とか探してました
367 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/05(日) 05:31:00 ID:rCPgZ7Wd0] 質問よろしいでしょうか? タイトルバーの中クリックを検出する方法はないでしょうか? 具体的にやりたいことは、タイトルバーの中クリックを押すとウインドウを最小化する機能をつけることです。 他のソフトでもできそうなのですが、 というか同機能のすでにTTBaseのMinimizeプラグインを使っているのですが、 これだと、Office2007系(Excel2007とか)のメニューがバグって最小化できずしかも操作不能になってしまうのです。 その点をカスタマイズしたいのです。 (TTBaseのプラグイン作者はすでにおられないみたいでした)
368 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/05(日) 05:39:38 ID:1ELefC3x0] ~MButton:: CoordMode, Mouse, Screen MouseGetPos,x,y,hwnd SendMessage, 0x84, 0, x|y<<16,, ahk_id %hwnd% ; WM_NCHITTEST If (ErrorLevel==2) ; HC_CAPTION PostMessage, 0x112, 0xF020,,, ahk_id %hwnd% ; WM_SYSCOMMAND / SC_MINIMIZE Return
369 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/05(日) 07:16:54 ID:rCPgZ7Wd0] >>368 すげええw WM_NCHITTESTにメッセージ送ったらどこにあるか状態返ってくるんかw 知らんかった。サンクス 参考:WM_NCHITTEST [WinAPI Database for VB Programmer] www.winapi-database.com/Message/WM/WM_NCHITTEST.html Excelだと WM_NCHITTEST だと 1(クライアント領域内)が返ってきてうまくいかないけど、バグるよりはよいや… これでしばらく使ってみます ありがとうございました。
370 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/05(日) 16:17:11 ID:cg382fnr0] #q:: Loop{ 延々ループ処理 } return こんな感じのホットキー作ったんだけど 別のホットキーで、#qで動作させているホットキーの内容を強制的に停止させる方法って無い? #e:: ExitApp return こういうのしてみたけどプログラム終了しなかった(´・ω・`)
371 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/05(日) 16:32:19 ID:1ELefC3x0] 普通に動くけどなぁ #q:: exec:=true While (exec) Tooltip, Mouse is Here! Tooltip Return #e::exec:=false
372 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/05(日) 17:13:15 ID:cg382fnr0] >>371 んーだめっぽいなぁ CoordMode,Mouse,Relative CoordMode,Pixel,Relative SetDefaultMouseSpeed,0 SetMouseDelay,10 SetKeyDelay,10,10 SendMode EVENT hModule := DllCall("LoadLibrary", str, "***.dll") こんな感じにやってるけど設定になんか問題でもあるのかなー
373 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/05(日) 18:12:19 ID:bzcOmVnlP] そもそも>>370 の方法で終わらないのがおかしい #MaxThreadsが1になってるとか、OnExit絡みがおかしくて失敗してるのでは とは言え、1行目がExitApp等なら割り込まれるから(#MaxThreadsヘルプ参照)、 純粋に>>370 のコード例は動くはずなんだけどな
374 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/07/05(日) 20:47:52 ID:lEC8MHrV0] %A_YYYY% %A_MM% %A_DD% これらの組み込み変数で、 ・昨日 ・先月 を、うまく呼び出す方法ってないでしょうか。 単純にマイナス1でやると、あたりまえですが1月や毎月1日の時に、 先月や昨日が0月 や 0日になってしまいます。
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+←を送って選択させた後に再変換