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


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

AutoHotkey スレッド part4



1 名前:ぬるぽ mailto:sage [2007/07/16(月) 12:30:27 ID:cd0T6xfs0]
(テンプレ>>1)
■公式
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/

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


577 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/28(日) 07:04:23 ID:jmlI36md0]
>>576
職場内の不特定多数の人に以下の作業をやらせています。
1.EXCELで作ったindex.htmlを開く(開いたデータは各自が手で修正)
2.それをWEBサーバへFTP転送
3.転送後ブラウザで修正結果が正しく表示されるか確認

1〜3をAHKスクリプトで作ってEXE化し、職場内サーバに置いて実行させています。
EXCELファイルの拡張子がxlsでない事、人によってOfficeのインストールドライブや
フォルダが違う事などで、単純にRUNコマンドが使えないのです。

index.htmlをEXCELで作っているのは、表示内容が単純な表データの為と、
1〜3まで自動化してやれば、誰でも簡単にWEBのデータが修正できる為です。

578 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/28(日) 13:57:22 ID:q918e5XH0]
>>577
まず最初にEXCELのパスをドライブからLOOP検索して
パスをテキストに保存するようにすれば?
最初にそれを調べてIfNOtExistだったら再検索するとか

579 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/28(日) 14:52:16 ID:q9I1LpJb0]
全部表データなら、CSVからhtml生成するのが一番楽だと思うんだが。

580 名前:577 mailto:sage [2007/10/28(日) 20:13:17 ID:jmlI36md0]
>>578
うーん、ドライブ検索だと効率悪そうですね。
レジストリ検索したらいけるのかな?でもあんまり勝手に人のマシン内を探るのもまずそう・・・

>>579
表データなんですけど、一応社外の人に見せるように見栄えをよくするため
タイトル付けたり、セルに色付けたりとかセルの幅とかも調整してるんですよね・・
EXCELなら見たまんまそのレイアウトでWEBページになりますんで。

やっぱり作者さんのActiveXモジュール使ってる人少ないんですかね?
将来的にはAutoHotKey+ActiveXでシート名を取得・変更したり
セルの操作したりとかできるようになりたいんで、もうちょっと頑張ってみます。

581 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/28(日) 20:15:53 ID:B/JvxfHT0]
質問ですが、特定のキーを押している間は別のホットキー割り当てに
切り替えるなんて事は出来るでしょうか。
たとえば普段はBを押すとCが表示されるが、
Aを押している間にBを押すとDが表示される、というようなことです。

582 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/28(日) 20:25:01 ID:dLJcnKYR0]
出来る。

583 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/28(日) 20:28:28 ID:B/JvxfHT0]
ありがとう。
割り当てを切り替えるには特定のキーの状態を
監視して分岐させればいいみたいですね。

584 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/28(日) 20:29:26 ID:+dr9EP66O]
>>570
Run
wscript.exe xxxx.vbs param
でどうよ。 cscript.exeでも良いけど。

>>581
>>5

585 名前:584 mailto:sage [2007/10/28(日) 20:32:06 ID:+dr9EP66O]
ん、変なところで改行されてる。
Run
wscr〜な。



586 名前:584 mailto:sage [2007/10/28(日) 20:35:35 ID:+dr9EP66O]
何だimonaの仕様か?カンマが改行になる…
早くDION規制終わってくれ。スレ汚しゴメン。

587 名前:570 mailto:sage [2007/10/28(日) 21:08:55 ID:q7KA1l9V0]
>>584
この方法でうまくいきました。
ありがとうございます!

588 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/28(日) 22:22:47 ID:e5sn/U350]
>>581
B::Send,C
A & B::Send,D

こんな感じで良いんじゃね?

589 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/29(月) 01:53:43 ID:sI+1lOgM0]
>>575
横d
後学のために知りたいんだけど、LWin & LWin::returnってどういう効果があるの?

590 名前:名無しさん@お腹いっぱい。 [2007/10/30(火) 13:58:41 ID:Pjuee0l10]
AHK Wizardの皆様、おしえてください。
窓使いの憂鬱からAHKへの移行中で、.mayuスクリプトから.ahkスクリプトに書き換えています。
環境はWinXP Pro SP2およびAHK 1.0.47.04を使用しています。

ファンクションキーF1を無効にし、Shift+F1で本来のF1が入力されるようにしたく、
以下のようなスクリプトを書いてみましたが、うまく行きません。

F1:: Return
+F1:: Send {F1}

おそらく1行目でF1を無効にしているので、2行目も無効になっているのだと思うのですが、
どう記述したらよいかわかりません。どなたかご教授いただけませんか。

591 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/30(火) 14:24:51 ID:+l6/VMD20]
$

592 名前:590 [2007/10/30(火) 15:29:38 ID:2bIDrR8e0]
>>591
$F1:: Return
+F1:: Send {F1}
としたら期待通りの動作になりました。ありがとうございました。

連投大変失礼いたします。
モディファイヤキー単独押しと、モディファイヤ+その他のキーとで別の動作をさせたいと思い、
下記のようなスクリプトを書いてみました。期待する動作は、右Ctrlでcmd.exeが、
Ctrl+アプリケーションキーでエクスプローラが起動するというものです。

RCtrl:: Run cmd.exe
^AppsKey:: Run explorer.exe

これだと右Ctrlがリピートになってしまい、Ctrl+アプリケーションキーが動作しませんでした。
先程教えていただいた"$RCtrl::"も試してみたのですがダメでした。
問題点は、モディファイヤキーのキーリピートをどのように抑制するか、モディファイヤキーが他のキーと
同時に押された場合にどのように処理するか、の2点です。
みなさん、お教えください。

593 名前:590 mailto:sage [2007/10/30(火) 15:39:15 ID:2bIDrR8e0]
キーリピートは"RCtrl up::"で対処できました。

594 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/31(水) 12:17:50 ID:YI3UICds0]
「:」のキーに修飾キーを押しながら何かさせたいんだけどうまくいかないのはなぜ?
VKで指定してもだめだ。

595 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/31(水) 12:37:54 ID:baAICokR0]
^;::run,notepad
普通に動いた。
具体的に書かないとわからない。



596 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/31(水) 12:41:46 ID:baAICokR0]
あぁ、勘違い。

597 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/31(水) 12:44:33 ID:baAICokR0]
^vkBAsc028::run,notepad
でもvkで指定したら動いた。

598 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/01(木) 11:40:07 ID:tl7yf8qt0]
>>514 俺はコンパイルで精製されたファイルが、avast先生にtengeだって怒らた

オンラインファイルスキャンしてみれば複数の其れで嫌疑がヽ(`Д´)ノ

ahkを入れ直して最新版にしたら症状なくなった。つか、マジで感染してたのかw

599 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/02(金) 10:52:32 ID:XguY7NBI0]
最近のマウスについているような、横スクロールのシグナルをおくるような
AHKのスクリプトをお持ちの方はいらっしゃいませんか?
Click,WheelLeftみたいな感じでつかえるやつ。

600 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/02(金) 15:19:27 ID:SErhgEM20]
確かに何故かキーリストにないな。

601 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/02(金) 17:32:17 ID:a6D8GNLi0]
joytokeyの代わりに使えるかと思ったら
やや古めのゲームではマウスエミュレーション
でmousemoveの量を最低にしても
delayをいじってもカーソルがやたらと大きく動くので
使い物にならなかった。
よくわからんけどDirectinputの関係だろうか。

602 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/02(金) 17:52:57 ID:XtTM5q/v0]
>>601
どんなスクリプトを書いたか知らんが、どう見てもスクリプトの問題です。

603 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/02(金) 19:00:14 ID:a6D8GNLi0]
違います。
・同じスクリプトでもゲームによってマウスカーソルの動きの量は違う。
・ウインドウズ上はまともな精度でちゃんと動作する。
・最近のゲームではまともに機能する。
・試しに公式ページのマウスエミュレーションスクリプトを使っても
特定のゲームでは+1の動きでも動きすぎて使い物にならない。

604 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/02(金) 19:05:49 ID:a6D8GNLi0]
あたりまえの結論。
・Autohotkeyはマウスエミュレーションに関して特定の状況で細かい設定が出来ない。
よってそういう機能が必要なゲームに使用するのは避けるべき。

・ジョイパッド、スティックに単純にマウスを割り当てるなどの使い方をしたいのなら
joytokeyその他のほうが特化しているぶんはるかに優れている。常駐メモリも少ない。

605 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/02(金) 19:06:17 ID:XtTM5q/v0]
>>603
> ・ウインドウズ上はまともな精度でちゃんと動作する。
やや古めって、windowsじゃねーのかyp



606 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/02(金) 19:09:58 ID:XtTM5q/v0]
>>603
とりあえず動かないゲームと使ったスクリプトさらしてよ。
もしかしてahk使えないって愚痴りたかっただけかい?

607 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/02(金) 19:44:18 ID:a6D8GNLi0]
>>605
windowsデスクトップ上で、だ。

>>606
動かないゲームを間違いなく君は持ってないから晒さないよ。
どうせ検証できるわけでなし。
2000-2001年前後のアクション(FPS)ゲームだ。

スクリプトは公式のjoystick as mouseの丸パクリだ。よってスクリプトが
おかしいせいにしたいようだけど、そうじゃない。
言っておくが別にこのアプリを貶めたいわけじゃない。つかえねーものもあるということ。

608 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/02(金) 20:27:49 ID:hfArcMju0]
ネタ乙

609 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/02(金) 22:54:34 ID:jBZIrtFc0]
愚痴りたいだけならうざいから消えて

610 名前:594 mailto:sage [2007/11/02(金) 23:55:24 ID:K7cwsubO0]
>>597
vk指定したら動きました。
vk指定のしかたが間違っていたようです。
thx!

611 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/03(土) 00:53:44 ID:mabxkLOu0]
質問専用スレじゃないんだから別にいいんじゃないの。
どうせ過疎ってるんだし。

612 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/03(土) 01:07:24 ID:KDbiL8JY0]
自前のマウスカーソルを表示しているゲームの場合、AutoHotkeyが操れるシステムのカーソルと位置が違ってるのかも。
システムのカーソルを隠して、位置を監視し、基準位置から離れた距離に応じて自前のカーソルを動かし、
システムのカーソルの方は基準位置に戻すという処理をやっているらしい。
Alt+Tabで他のウィンドウを出したときにそれらしい動きをしているゲームがあった。
ゲームの自前カーソルの位置を特定できない以上、AutoHotkeyで操るのは難しいね。

613 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/03(土) 01:45:46 ID:99UkKWF20]
そういえば、optionでカラーカーソルのあるゲームでX,Y座標が
滅茶苦茶に取得されるのあったな…
カラーカーソル切れば無問題だったけど。

614 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/03(土) 02:01:19 ID:baOm0Gn60]
>>599
先月作って放置してあったのがあったから上げてみる。適当に改造して使って。
一応加速と、ExcelやWord、VBEなんかの分割ウィンドウでもリダイレクト可能にしてみた。

ホイールリダイレクト互換スクロール版
lukewarm.s101.xrea.com/up/file/085.zip

しかしこれ、ホイールイベントをトリガにしてるから ThinkPadみたいなトラックポイントでの独自ドライバでのスクロールだと
フックできないんだよね。職場でヒマな時作ったんだけど、自宅だとマウス繋げないから全然役たたず(´・ω・`)
Thinkのスクロールボタンの検知方法とかどなたかわかるかたいらっしゃいませんかね。

615 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/03(土) 14:18:39 ID:IVK6J3sH0]
>>614
ありがとうございます。
まだうまく動作できていないので、もうすこしかんばってみます。

クリップボードの履歴をテキストファイルに保存しようとおもい、
~^C:: FileAppend, %clipboard%`n`n, %A_ScriptDir%\clipboard.txt
などとやってみたのですが、うまくいきません。

~^C:: Msgbox, %clipboard%
とやってわかったのですが、クリップボードが更新される直前の内容が保存されます。
待機処理が必要なのだとおもうのですが、どのようにやればよいでしょうか?
識者の方々、おしえてください。



616 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/03(土) 14:26:13 ID:bWS4YM770]
Send, ^c
を入れればいいだけでは?

617 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/03(土) 14:33:36 ID:IVK6J3sH0]
>>616
そうでした。

^C up:: Send, ^C
OnClipboardChange:
FileAppend, %clipboard%`n`n, clipboard.txt
Return
で、ばっちりできるようになりました。

618 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/03(土) 15:51:31 ID:KoS6CqZf0]
AutoHotKeyがバックグラウンドで動いていることでCPUパワーやメモリへの負担はどれくらいなんでしょう。
ファイアウォールやアンチウイルスソフトに比べれば微々たるもんでしょうか。
エクセルやメーラーのようにCPUへの負担がたかが知れているものを使用するのと違って、
メモリやCPUを目一杯使用する画像処理ソフト(Photoshopなど)との併用を考えているんですが、
それがメモリやCPUへの負担を考慮して、果たして正しいやり方なのか。

重いアプリとの併用を試した方の経験などありましたら教えて頂けると幸いです。

619 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/03(土) 17:57:02 ID:boeZzQhE0]
>>618
スクリプトを動かすソフトに対して、CPUやメモリの使用量を聞いてどうするの?
お前さんの書いたスクリプト次第だろ?

620 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/03(土) 17:57:22 ID:CAd+Il2K0]
>>618
君が実際にAutoHotkeyを使って見るのが一番早い
重くなったのが感じられるなら無理と言う事だし、変化が解らないなら問題無いと言う事だ

621 名前:名無しさん@お腹いっぱい。 [2007/11/03(土) 18:27:22 ID:H0//tZlU0]
firefoxのコンテンツエリアにfocusするにはどうしたらいいですか?

SetTitleMatchMode, 2

!.::
WinActivate, ahk_class Progman
WinActivate, Mozilla Firefox

ここまでは書けたのですが、これだとwindowにfocusされるに過ぎず、
たとえば、textareaにfocusのあるときにAlt+.をしてもコンテンツエリア(bodyタグ直下のtextノードに相当)
のfocusされません。

よろしくお願いします。

622 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/03(土) 18:30:03 ID:PDweSZTN0]
>>618
ttp://lukewarm.s101.xrea.com/test/read.cgi/bbs/1157529465/39
一応書いておくが、実際やってみるのが一番。

623 名前:618 mailto:sage [2007/11/03(土) 18:53:52 ID:KoS6CqZf0]
>>619>>620>>622
レスありがとうございます。
作ってから判断するしかないですね…
URLのページも参考になりました

624 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/03(土) 18:57:34 ID:YvsIr1mE0]
自分とこだと
explorerのCPU時間が8:17、
System Idle Processが65:23:22程度に使ってるマシンで
プライオリティ通常以上で1000行くらいのAutohotkeyスクリプトが0:57。
全62プロセスの中の14位。
まあスクリプトの内容によるけど微々たるものだね。
ちなみに同時に使ってるmayu.exeは0:16

625 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/03(土) 19:55:54 ID:boeZzQhE0]
>>621
fx の UI は OS のデフォじゃなくて独自実装なので、
ahk の関数は無力です。
ahk から mozrepl 使って javascript を実行させましょう。



626 名前:名無しさん@お腹いっぱい。 [2007/11/03(土) 20:48:07 ID:H0//tZlU0]
>>625
ありがとうございます。
mozrepl調べてみます。

627 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/03(土) 21:59:17 ID:KDbiL8JY0]
ControlFocus,MozillaWindowClass7,ahk_class MozillaUIWindowClass

628 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/04(日) 00:11:27 ID:xp2+A/Gz0]
タスクバーを上に配置していて、ウィンドウがタスクバーに重なってしまう事が時々あるので
Loop{
WinGetPos, X, Y, , , A
If(Y < 23)
WinMove, A, , , 19
Sleep, 2000
}
return
のようにして使ってるんですが、これだとウィンドウがアクティブになるまで放置プレイなので
できたら Y < n のウィンドウが存在したらWinMoveするようにしたいです。
初心者ですみません、上手い方法ありますでしょうか?
助けてってば〜というソフトは自分の環境では上手く動作しませんでした。

629 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/04(日) 00:41:09 ID:q8+pQI0t0]
突然なのですが、キー2回押しの関数ですばらしいのを発見したのでご報告。
モディファイヤもばっちり動きます。

DoubleKey(RunCommand, timeout){
if(A_PriorHotKey = A_ThisHotKey and A_TimeSincePriorHotkey < timeout)
Run, %RunCommand%
}

こんなかんじで使用。
~LCtrl up:: DoubleKey("cmd.exe", 400)

630 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/04(日) 04:06:08 ID:E+kS+4E70]
>>624
俺もそんくらいだな。
SystemIdleProcessがその半分ぐらいの時間で、AutoHotKeyは14秒。

631 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/04(日) 23:49:43 ID:AZzCkrKS0]
>>629 どうやって動かすの?

632 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/05(月) 03:31:44 ID:FkXhXeMc0]
AutoHotkey.ahkのpathってどこで変えられますか?

633 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/05(月) 09:01:47 ID:T7zQuT9A0]
>>631
DoubleKey関数を自分のスクリプトにペーストします。
DoubleKey(起動したいコマンドライン、タイムアウトms)

- 左コントロールキー2回押しでコマンドプロンプト起動
~LCtrl up:: DoubleKey("cmd.exe", 400)

- 右シフトキー2回押しでCraftLaunch起動
~RShift up:: DoubleKey("C:\Tools\DF\DF.EXE", 400)

こんなかんじで。

634 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/05(月) 10:38:24 ID:RywdyRDO0]
発見てかいてあるからにはネットで拾ってきたんだと思うけど
出典元くらい書いたらどうなの

635 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/05(月) 11:06:08 ID:4B2+SDNl0]
>>634
すいません、わすれてしまいました。



636 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/05(月) 11:11:24 ID:4B2+SDNl0]
検索履歴をみたら再検索できました。
出展はこちらです。
www.donationcoder.com/Forums/bb/index.php?topic=5926.msg41894

637 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/05(月) 20:39:45 ID:0oN7XXgL0]
先頭に ~ をつけると どのような動作になるのでしょうか?

638 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/06(火) 11:54:52 ID:wcyUO4TQ0]
っ 説明書

639 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/06(火) 12:22:36 ID:k2QniCI00]
WindowsMediaPlayerにControlsendでキーストロークを送りたいのですが、
上手くいきません。他にもですがControlSendで不発なアプリがあるのですが、
アクティブにしてからSendでも送ることで諦めるしかないのでしょうか?

!b::
;ボス来る
WinGetClass, MotoWindow, A
ControlSend,,{Space},ahk_class MediaPlayerClassicW;メディアプレイヤークラシック一時停止
;ControlSend,,^{P},ahk_class WMPlayerApp
;↑同様にWメディアプレイヤーの一時停止だが、うまくいかない
WinActivate,ahk_class WMPlayerApp
Send,^{p}
WinActivate,ahk_class %MotoWindow%;元のウィンドウに戻す
return

WinActivateだと一瞬チラッとメディアプレイヤのグラフィックが出てしまって困ります。

640 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/06(火) 12:51:58 ID:okUbZAfE0]
PostMessageを使った方が確実で良いんじゃない

641 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/06(火) 18:59:45 ID:1fn8POGO0]
>>621
>Firefoxのコンテンツエリアにフォーカス
もう解決したかもしれないけど、mozreplの使い方が分からない自分の解決方法は
1.アドレスバーにフォーカス(Alt + d)
2.Enter
開いているページが更新されてしまうのが難点。

テキストエリアからフォーカスを戻したい時はEsc

642 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/06(火) 20:10:21 ID:pb+kNkjg0]
>>639
^{P} → ^p ではどう?

うちの環境では大文字送信だとショートカットキー上手く動かなかったからひょっとするかもよ。
あと文字送信だから{}で括らなくておk

ControlSendはあんまり確実性ないね。640の言う通りPostMessage使えそうならそっちのが無難

643 名前:639 mailto:sage [2007/11/06(火) 22:18:49 ID:k2QniCI00]
ダサイですが元のウィンドウを最前面固定にして、
背面ウィンドウをアクティブにしてSendで送ることで
やりたいことを実現しました。

Send/PostMessageはヘルプに書いてないのに
皆さん何で知っているんですか?質問ばかりですみません。

644 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/06(火) 22:26:47 ID:+cTzfPdI0]
いやいや書いてあるでしょ
ttp://www.autohotkey.com/docs/commands/PostMessage.htm

645 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/07(水) 14:48:21 ID:xcF2JGlk0]
下記のエラーメッセージが出てしまいます。
どう対処すればよろしいでしょうか。
Error: A control's variable must be global. The current thread will exit.
Specifically: vMyCheckbox

menu() {
global vMyCheckbox, vMyEdit, vMyRadio
Gui, add, tab,, First Tab|Second Tab|Third Tab
Gui, add, checkbox, vMyCheckbox, Sample checkbox
Gui, tab, 2
Gui, add, radio, vMyRadio, Sample radio1
Gui, add, radio,, Sample radio2
Gui, tab, 3
Gui, add, edit, vMyEdit r5 ; r5 means 5 rows tall.
Gui, tab ; i.e. subsequently-added controls will not belong to the tab control.
Gui, add, button, default xm, OK ; xm puts it at the bottom left corner.
Gui, show
return

ButtonOK:
GuiClose:
GuiEscape:
Gui, submit
MsgBox You entered:`n%MyCheckbox%`n%MyRadio%`n%MyEdit%
}
+^b::
menu()
return




646 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/07(水) 15:39:03 ID:c0R2jDpg0]
global MyCheckbox, MyEdit, MyRadio
vがいらないんじゃ?

別のエラーがでたけど

647 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/07(水) 17:01:45 ID:xcF2JGlk0]
>>646
ありがとうございます。
すすみました。

正規表現で質問があります。
うまく置換できないのですが、どこが問題でしょうか。

bb = %clipboard%
bb = RegExReplace(%bb%, "[A-z]", "_")
clipboard = %bb%


648 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/07(水) 17:09:47 ID:c0R2jDpg0]
bb := RegExReplace(bb, "[A-z]", "_")

649 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/07(水) 17:20:51 ID:xcF2JGlk0]
>>648
ありがとうございます。
こういうやり方ってできないんですかね。

clipboard := RegExReplace(%clipboard%, "[A-z]", "_")


650 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/07(水) 18:12:59 ID:c0R2jDpg0]
だからー、第一パラは%いらないのー

651 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/07(水) 18:56:45 ID:xcF2JGlk0]
>>650
もう分からないです。

こうすると clipboard := RegExReplace(clipboard, "[A-z]", "_")

クリップボードのデータが "RegExReplace(clipboard, "[A-z]", "_")" なります。


652 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/07(水) 19:02:13 ID:tZM8oTgz0]
OnClipboardChange:
clipboard := RegExReplace(clipboard, "[A-z]", "_")
return
をコピーしたら
_________________:
_________ := ____________(_________, "__-__", "_")
______
になった。

653 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/07(水) 19:20:20 ID:xcF2JGlk0]
>>652
すいません。
ありがとうございます。
できました。

ちなみに、これを実行するととんでもないことに
clipboard := RegExReplace(clipboard, "\\", "\\\\")

C:\
 ↓
C:\\\\\\・・・・・・

654 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/08(木) 10:34:56 ID:VpjEbYEG0]
GUIの入力項目で、よく検索ソフトとかで入力履歴がドロップで出て選択できるって機能がありますが
そんな部品ってありますか?または作れますか?

655 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/08(木) 11:37:39 ID:LkNXR2gq0]
>>654
ComboBoxかDropDownList



656 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/08(木) 12:19:25 ID:QotMhKmE0]
>>653
かっこ()の中は変数、それ以外は文字列って覚えとけ。
かっこの中の変数は、%%で展開する必要はない。逆に文字列は""で囲う必要がある。
 If(A_LoopField=str)   ;str=hoge
 If A_LoopField=%str%
 If(A_LoopField="hoge")
 If A_LoopField=hoge
どれも同じ

ちなみにC:\\\\\\・・・・・・にはならないぞ。
1つの\を4つの\に置換する表現だから、C:\\\\になるはずだし、試したら実際そうなったが。

657 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/08(木) 15:23:42 ID:XkPSzQlp0]
きっとループに陥ってるだけなんだろうな
もう少しこなれてからまたおいでって感じだな

658 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/08(木) 15:53:46 ID:VpjEbYEG0]
Gui, Add, ComboBox ,vCom Simple Sort, aaa|bbb|ccc|aab|aba

これで「a」を打つと下のリストボックスが、aaa,aab,abaに勝手に絞り込ます部品や方法ってありますか?
インクリメンタルサーチのリストボックス絞込み再表示みたいなイメージです。

659 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/08(木) 17:26:35 ID:MaxO5Kjc0]
流行らせるページのコマンドラインランチャがそんな感じ

660 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/08(木) 19:41:54 ID:VpjEbYEG0]
変数にリストがないのは痛いな。

配列を使っているけど、追加、削除、検索をjavaのクラスみたいに簡単に使いたい。

661 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/09(金) 13:36:05 ID:sCn2a4fh0]
VistaHomeBasicですが、
左Shiftキー二回押しでdeleteが入力されるようにしたいです。
そこで、以下のところまでは書いたのですが、この続きはどうしたらいいですか?
それともこの方向性は間違ってますか。
アドバイスお願いします。

; keybind to the delete key

flag:=0
SetTimer, checkShiftkey, 500
LShift::【flag==1にする】

checkShiftkey:
if(flag==1)
{
【deleteキーを押す】
}
flag:=0
return


662 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/09(金) 13:43:29 ID:FxAaRY1v0]
~LShift up:: DoubleKey("{Delete}", 400)

DoubleKey(Command, timeout){
if(A_PriorHotKey = A_ThisHotKey and A_TimeSincePriorHotkey < timeout)
Send, %Command%
}

663 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/09(金) 14:06:19 ID:sCn2a4fh0]
>>662
正常に動作しました。
今やっと理解できました。

ありがとうございます。

664 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/09(金) 19:46:13 ID:8en6gcJl0]
質問させていただきます

マウスの下のウィンドウのプログラムの実行ファイル(.exe)のパスを取得するにはどうすればよいのでしょうか?

MouseGetPosでウインドウ名、コントロール、などを取得した後
ウインドウ名やコントロールからどのようにしてファイルのパスを取得すればいいのかがわかりません

よろしくお願いします

665 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/09(金) 19:57:53 ID:cfB1EDup0]
>>664
俺には難しくてよくわからんw

2005-08-26 - eamatの日記
ttp://d.hatena.ne.jp/eamat/20050826
旧雑記サルベージ
ttp://lukewarm.s101.xrea.com/test/read.cgi/bbs/1157529465/70




666 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/09(金) 20:11:38 ID:PmoIudtT0]
hwnd から pid に変換は、EnumWindows と GetWindowThreadProcessId を使えばいいよ。
コールバック書けるならね。

667 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/09(金) 20:15:08 ID:mXY51MyH0]
>>666
WinGet?

668 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/10(土) 18:03:38 ID:/aFkmSrv0]
設定したホットキーの解除(一部のキー)ってできます?

669 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/10(土) 18:20:53 ID:77vfAw8E0]
Hotkey, OFF

670 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/12(月) 03:10:52 ID:BemSIh+W0]
#IfWinActive を使って Foxit Reader という PDFビューアをフックしたいのですが、うまくいきません。
AU3_Spy.exe で 見てみると、ahk_class Afx:400000:8:10011:0:xxxxxxx となって、最後の7桁が
起動毎に変ってしまいます。
SetTitleMatchMode, 2 として #IfWinActive ahk_class Afx にて中間一致を試みましたが
全くに認識されません。
このような場合にはどのようにしたらよいでしょう?

671 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/12(月) 05:08:05 ID:BFVOzu/J0]
ahk classには中間一致はないでソ
タイトルじゃないんだから

672 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/12(月) 08:08:30 ID:CUI4dA1N0]
>>670
> AU3_Spy.exe で 見てみると、ahk_class Afx:400000:8:10011:0:xxxxxxx となって、最後の7桁が
> 起動毎に変ってしまいます。
Afx:400000:8:10011:0:0000000〜Afx:400000:8:10011:0:9999999
まで書いとけばいいんじゃね?

673 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/12(月) 10:19:12 ID:z6SmkfAk0]
Sleipnirが最前面のときのみ
Sleipnirのみホットキーを有効にしたいのですが、うまくいきません。
ご教授ください。

Sleipnirをホットキーなしで使用したい場合もあるので、
ホットキーを有効にするかの条件を加えています。

;有効トグル用フラグ
flg = 0

;ホットキー
2::
;最善面のウィンドウがSleipnirで、フラグがONのとき
IfWinActive, ahk_class SleipnirMainWindow && flg = 1
{
Send {F2}
}
return

;フラグ切り替え
^1::
if (flg = 1) {
flg = 0
} else {
flg = 1
}
return


674 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/12(月) 10:20:31 ID:WsuDC3uN0]
>>671
なるほど、そういうことでしたか。
ヘルプを参照してタイトル部分一致を試みたのですが、ちょっとできませんでした。
また別の機会にやってみます。

>>672
いいアイディアをありがとうございます。

675 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/12(月) 11:28:10 ID:CUI4dA1N0]
>>673
> ;最善面のウィンドウがSleipnirで、フラグがONのとき
> IfWinActive, ahk_class SleipnirMainWindow && flg = 1
IfWinActive は If とは違うので中に式は掛けないと思うよ。
flag をトグルした場合に hotkey を登録したり、解除したりしないとダメだよ。

>>674
冗談だから本気にしないでね。



676 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/12(月) 11:31:04 ID:CUI4dA1N0]
>>673
;; と思ったけど、F2 送るだけならこれでいいんじゃ?
IfWinActive, ahk_class SleipnirMainWindow
2::
;; 最善面のウィンドウがSleipnirで、フラグがONのとき
if (flag == 1)
{
Send,{F2}
}
else
{
Send,2
}
return


677 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/12(月) 11:34:51 ID:VVUThdm/0]
>>672は想像してみて、ちょっと面白いなと思っていました。
アイディア自体も思いつかなかったので、また何かの力技系のときに応用してみます。
ありがとうございました。






[ 続きを読む ] / [ 携帯版 ]

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

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