AutoHotkey スレッド part4at SOFTWARE
AutoHotkey スレッド part4 - 暇つぶし2ch486:名無しさん@お腹いっぱい。
07/10/03 22:38:14 VBnQaqwA0
自分の文章見直したら、恐ろしくわかりにくかった。

とりあえず、結論から言うと、
ThumbRemap.ahkの、自分のPCのタッチパッド(実はAlpsだったようだ)
のドライバのほうのコメント部分(;)を消して有効化し、
それをそのまま初期状態で保存して、実行すると、
タッチパッドに触れなくてもリマップが有効になっている、
(どんなときでも「j」を押したら左クリックだし、「l」を押したら右クリック)
とそういうことらしい。どういう風に書けばいいんだろう?

487:名無しさん@お腹いっぱい。
07/10/03 22:59:22 hoH5rp2m0
100行かそこらのスクリプトくらい自分でデバッグしろ

488:名無しさん@お腹いっぱい。
07/10/04 18:21:43 npyGLoES0
shift+a押しっぱなしでaボタンを連打したいのですが、どうもうまくいきません

「+a::
Send,{a Down}
Sleep, 200
Send,{a Up}
return」

最初はこのようにしてましたが駄目でした。
sleep中に+aを押しっぱなしにしていることが認識されてしまいaの連打が出来ないのかと思い、
「sleep」を外し「Send, a」だけにしてみましたがこれもだめです。

aボタンを押しっぱなしでaを連打とするのが相性悪いのかなと、「+a::」を「q::」だけにしてみましたが失敗。
そこでなんとなく「SetKeyDelay」を足し

「q::
SetKeyDelay, 10, 5
Send, a
return」

にしてみたところ初めて成功しました。
 (SetKeyDelayが必要なのは連打対象のアプリの問題だと思います。)
「q::」を「^q::」にすると失敗で、returnのたびに「Send」コマンドによっておこる
ホットキー(Shift)のフックと言うものがとけてうまくないのだと思い、

「#InstallKeybdHook
^q::
SetKeyDelay, 10, 5
Send, a
return」

と「#InstallKeybdHook」をahkデータの頭に足して見たところ二度目の成功でした。

489:名無しさん@お腹いっぱい。
07/10/04 18:23:47 npyGLoES0

以上をふまえ

「#InstallKeybdHook

^a::
SetKeyDelay, 10, 5
Send, a
return」

としたところ、これはもう無惨に失敗でした。
やけでsleepをつけたり外したりしても駄目です。

どうやら「return」の度に「Shift+a」を押さえてることが認識されてしまうようなのですが、
「#InstallKeybdHook」によってShiftの分は解決するのです。
しかし「aボタン」が解決出来ない。

returnを連打中(押下中)に使わないで作るか、
もしくは#InstallKeybdHookのような設定をみのがしてるのかも知れません。

流行らせるページを分かる範囲で読みましたが、自分ではここまででした。
どなたか解決策を知ってる方いたら教えてください。

490:名無しさん@お腹いっぱい。
07/10/04 18:49:04 fTNMlWWa0
keywait

491:名無しさん@お腹いっぱい。
07/10/05 02:28:11 +yLmUSaM0
一昨日から、AHKを使おうと試行錯誤してます。
HHKで[ ; ' / キーを↑←→↓に入替えるにはどうすればいいのでしょう?
Fnなしでカーソル移動、ありで記号を入力にしたいのです。

Up::[
Down::/
Left::`;
Right::'

[::Send,{Up}
/::Send,{Down}
`;::Send,{Left}
'::Send,{Right}

と書くと、Fnに関係なく常にカーソルキーになってしまいます。
カーソルキーが別にあるキーボードだと簡単に入替えできるようなのですが
どなたか教えていただけないでしょうか

492:名無しさん@お腹いっぱい。
07/10/05 03:00:23 GNC7tDS30
HHKは持ってないからわからんけど、
そういうのはレジストリで入れ替えた方がいいんじゃない?
常駐しなくても済むし。

URLリンク(satoshi.web5.jp)

493:名無しさん@お腹いっぱい。
07/10/05 03:08:21 ZWaa12oz0
まずはFnのキーコード調べるところから始めるのかしら

494:491
07/10/05 03:34:50 +yLmUSaM0
>492
やっぱりそうですか。AHKだと
タスクトレイですぐにon/offできるのがうれしいんですが。

>Fnはたぶん単独ではコードを出さないようなんです。

レスありがとうございます。
もうすこし気長にがんばってみます。



495:名無しさん@お腹いっぱい。
07/10/05 04:32:32 9UehXwIc0
あんな訳の分からないキーボードは捨てろ
モバイルノート以外のキーボードにFnキーを付けようとする奴は例外なく死ね

496:名無しさん@お腹いっぱい。
07/10/07 03:27:16 nm9+eh940
>>125のスクリプトの改良について
^[::
Clipboard=「」
Send, ^v{Left}
Return

ime on のとき  ctrl + 「 → 「」の中キャレットフォーカス
ime off のとき  ctrl + [ → [] の中にキャレットフォーカス

このように動作させるにはどうしたらよいでしょうか?

497:名無しさん@お腹いっぱい。
07/10/07 03:37:01 xWub+tRp0
>>496
そんな複雑に考えなくても、
^[:: Send, []{Left}
で良いんじゃないの?

498:名無しさん@お腹いっぱい。
07/10/07 04:02:10 NsGpl4Fc0
半角全角キーを2回押せば、IME入力中なら変換せず確定するということができる

499:名無しさん@お腹いっぱい。
07/10/07 15:04:49 OQHpOHU/0
>>496
HDD漁ったら昔作った Functionがあったんで貼っとく

;-----------------------------------------------------------
; IMEの状態の取得
; WinTitle : 対象Window (省略時:アクティブウィンドウ)
; 戻り値 1:ON 0:OFF
;-----------------------------------------------------------
{
ifEqual WinTitle,, SetEnv,WinTitle,A
WinGet,hWnd,ID,%WinTitle%
DefaultIMEWnd := DllCall("imm32\ImmGetDefaultIMEWnd", Uint,hWnd, Uint)

;Message : WM_IME_CONTROL wParam:IMC_GETOPENSTATUS
DetectSave := A_DetectHiddenWindows
DetectHiddenWindows,ON
SendMessage 0x283, 0x005,0,,ahk_id %DefaultIMEWnd%
DetectHiddenWindows,%DetectSave%
Return ErrorLevel
}


500:名無しさん@お腹いっぱい。
07/10/07 15:06:19 OQHpOHU/0
コピペミス、関数名が抜けとったスマソ

IME_GET(WinTitle="")
;-----------------------------------------------------------
; IMEの状態の取得
; WinTitle : 対象Window (省略時:アクティブウィンドウ)
; 戻り値 1:ON 0:OFF
;-----------------------------------------------------------
{
ifEqual WinTitle,, SetEnv,WinTitle,A
WinGet,hWnd,ID,%WinTitle%
DefaultIMEWnd := DllCall("imm32\ImmGetDefaultIMEWnd", Uint,hWnd, Uint)

;Message : WM_IME_CONTROL wParam:IMC_GETOPENSTATUS
DetectSave := A_DetectHiddenWindows
DetectHiddenWindows,ON
SendMessage 0x283, 0x005,0,,ahk_id %DefaultIMEWnd%
DetectHiddenWindows,%DetectSave%
Return ErrorLevel
}


501:名無しさん@お腹いっぱい。
07/10/07 20:37:44 0W2A46iC0
自分も「なまずIME」のIME状態取得部分を拝借して、
>>500氏と同じような関数を作って、

j::
If IME_GET()=0
Send, {Down}
Else
Send, j
Return

k::
If IME_GET()=0
Send, {Up}
Else
Send, k
Return

↑みたいに書いて、IMEのON、OFFで他のアプリもviライクに使えるようにしてます。

ただ、500氏のコードをコピペして試してみたら、戻り値が1の時に良く分かんない
エラーが出たっす。これ何のエラーなんだろ…(´・ω・`)

71 hotkeys have been received in that last 1110ms.

Do you want to continue?
(see #MaxHotkeyPerInterval in the help file)

502:名無しさん@お腹いっぱい。
07/10/07 20:54:53 xWub+tRp0
>>501
$j:: のようにすれば直ると思う。
Send, jでAHKが発生させたキーイベントに反応して、マイクのハウリング現象みたいなことが起こってる。

エラーメッセージの意味は、直前の1秒くらいでなんかものすごい勢いでキーが押されてるけど大丈夫?スクリプト止める?
ってな感じ。大概はこういうスクリプトの暴走状態で出るけど、ホイールスクロールをホットキーにしてたりすると、
勢い良くホイールを回したときにも出てしまったりする。

503:501
07/10/07 21:05:13 0W2A46iC0
>>502
なんて速いレス…、解決です。ありがとうございます!

504:名無しさん@お腹いっぱい。
07/10/09 20:19:42 QXUEMv9q0
1、 !vk1Dsc07B::!f4   ; alt 無変換 → 閉じる
2、 ~LButton & RButton::WinClose A
3、 ~LButton & RButton::!f4

AHKを導入して、「閉じる」操作を割り当ててみたのですが、
3、のスクリプトだけうまく動作しません。

なぜうまく機能しないのか教えてもらえないでしょうか?

505:名無しさん@お腹いっぱい。
07/10/09 21:06:46 tVOno9/E0
折り目正しく?
Send, {ALTDOWN}{F4}{ALTUP}
と書いてみたらどうだろう

506:名無しさん@お腹いっぱい。
07/10/10 00:21:43 KbL0UTuR0
AltはUpDownせんでも ! でええじゃろ
F4に { }が付いてないのが問題

507:名無しさん@お腹いっぱい。
07/10/10 00:25:36 KbL0UTuR0
ごめんウソ書いたかも
remapの動作はよくわかんないわ

508:名無しさん@お腹いっぱい。
07/10/10 01:19:08 ejM0T2Mo0
穴が開くほどスクリプト眺めてみたが、どこがおかしいのかまったくわからん!
だれかThumbRemapちゃんと動いてる奴いるか?

どういう書き方してるか是非教えて欲しい。

知り合いからXpのSynapticsタッチパッドのノートPC借りたが、
これでも動かない。ということはALPSはダメでSynapticsはできるというわけでも無さそう。

(詳細な確認はしなかったが、基本は何も書き換えずデフォルトで
該当タッチパッドコメントアウトした状態で使った)

Thumbsenseのほうは動くしOSの問題でもなさそうだ。
いったい何が原因なんだろうか。

509:名無しさん@お腹いっぱい。
07/10/10 01:30:40 G66LASUF0
>>508
ときどきドラッグして文字列を選択したときとかにキーを離してもキーアップが発生しないことがあるけど、
それ以外はおおむね希望通りの動作。設定を書き換えてRunなどを割り当てるのもうまく動いている。
ThumbSenseのキーフックや、自分で書いたスクリプトと競合しているとかないの?
ThumbSenseをスタートアップから外して再起動→AlpsドライバならApoint.exeが起動しているか確認する
→ThumbRemapの該当コメントを外す→ThumbRemapを起動する
これでダメなら判らん。

510:名無しさん@お腹いっぱい。
07/10/10 01:54:50 ejM0T2Mo0
>>509
うお、言われたとおりやってThumbRemap.ahkのみを起動したらできた!
サンクス

てかそもそも俺、他のスクリプトと一緒に、AutoHotKey.iniに
#include ThumbRemap.ahk
って書いて、他のと一緒に使ってるんだけど、これだと動作しないらしい。
(読み込めないんじゃなく、リマップの部分だけが生きてて、常に普通のリマップ状態)

それぞれのスクリプトを別で全部実行した場合は、ちゃんと機能するから
スクリプトが衝突してるというわけでもないようだ。

逆に、何が悪いのか分からなくなったけど、
とりあえず応急処置として二つ起動で続けてみる、助かったぜ。

511:名無しさん@お腹いっぱい。
07/10/10 04:55:07 voHAyE5x0
#include ThumbRemap.ahk
の前にホットキーラベルがあったりすると初期化処理が読み込まれない

512:名無しさん@お腹いっぱい。
07/10/10 10:11:03 FSheiMK60
> 前にホットキーラベルがあったりすると初期化処理が読み込まれない
この仕様はいい加減に止めてほしいな。
大域変数の初期化も面倒だし。
ホットキーやラベルがあったらreturnまで読み捨てる、ってのじゃダメ?

513:名無しさん@お腹いっぱい。
07/10/10 15:13:15 ejM0T2Mo0
お前らThx

#include ThumbRemap.ahkを一番最初に書いたら
ちゃんと動いたぜ。

514:名無しさん@お腹いっぱい。
07/10/13 01:50:26 Rg1bEx6n0
昨日まではなんともなかったのに
今日からコンパイルするとavastに怒られるようになったんだけど、
俺だけだろうか。

515:名無しさん@お腹いっぱい。
07/10/14 03:18:50 tGnU+5lx0
ここ3-4日かけてThumbremapのホットキー試行と最適化を繰り返してたら
最強の使いやすさになった。
作者神スクリプトをありがとう。

516:名無しさん@お腹いっぱい。
07/10/17 14:06:30 cUQnM+Sh0
AutoHotKey ってUWSC等と比べて現時点ではどれ位使い物になるの?


517:名無しさん@お腹いっぱい。
07/10/17 14:48:37 UWrcrXPf0
そんな程度じゃ答えようもない

518:名無しさん@お腹いっぱい。
07/10/17 15:36:36 nNacPo+50
ではまずUWSC等の使い物になり度を説明してくれたまえ

519:名無しさん@お腹いっぱい。
07/10/17 17:22:58 EWyX0Tg10
UWSCの利点

エンコードが便利。ueと連動とか不要。
capslock制御可能。
IMEの制御
日本語解説本あり。

UWSCのデメリット
プロ版が有料 単体で動作させるにはプロ版でexe化する必要がある。

520:名無しさん@お腹いっぱい。
07/10/17 17:39:01 tJrK1zXM0
そいつはマウス2ボタンを同時押しした後、
1ボタンを離しまた別のボタンを押す、といった一連の操作それぞれに
対応して起動する処理を入れることは出来ますか

521:名無しさん@お腹いっぱい。
07/10/17 18:11:09 y5ZKSC6z0
>>520
残念ながら出来ません

522:名無しさん@お腹いっぱい。
07/10/17 19:17:44 IjRB9PLC0
>>519
> UWSCの利点
IE を含めた OLE や COM の制御が楽なのが一番のアドバンテージだと思うけど。
キー配置かえるとか、そういう用途では AHK のほうがはるかに便利。

523:名無しさん@お腹いっぱい。
07/10/17 20:52:28 KOkT03Ew0
要するに目的が違うのでは……
比較するものじゃないような

524:名無しさん@お腹いっぱい。
07/10/17 21:00:47 OvW65liC0
UWSC使ってたけど常駐させる意味が薄いからいらない
単なるスクリプト作動機

525:名無しさん@お腹いっぱい。
07/10/17 22:20:26 uQ5s7gsm0
AutoHotKeyもネトゲとかの狩り?マクロとかくめるらしいけど、
UWSCのほうがやりやすくて高機能なのが作れるとか、そういうレベルじゃね?
比較してる人は。

526:名無しさん@お腹いっぱい。
07/10/17 22:35:14 IjRB9PLC0
>>525
君のレベルはわかった

527:名無しさん@お腹いっぱい。
07/10/17 22:36:47 tJrK1zXM0
こういうスレの煽りはネタじゃなくて真性だから嫌だ

528:名無しさん@お腹いっぱい。
07/10/17 23:23:55 kx1GSyku0
自分が使いやすいの使うって話で。

529:名無しさん@お腹いっぱい。
07/10/18 00:00:08 cUQnM+Sh0
>>517-528
UWSCは使ってるけど、AHKは未だ使った事無いのでどうなのかなーと思って質問してみました。
AHKの実用サンプルってUWSCと比べて殆ど見ないので、実際どの程度の事が出来るのか知りたかったもので。

勿論、UWSCにも幾らかの不満が有ります。
正規表現が実装されてないとか、環境変数の値の取得が出来ないとか、3.xで出来た事が4.xで出来なくなってる
(ソースコードが非公開なので、自分で弄る事も出来ない)とか…

JScript や、ActivePerl 等で利用出来る、画像の位置をサーチしたりマウス操作やキー入力を操作が出来る
モジュールが有れば用が足りそうなのですが…


530:名無しさん@お腹いっぱい。
07/10/18 00:28:03 IZ1KPygF0
わざわざ乗り換える必要なし

531:名無しさん@お腹いっぱい。
07/10/18 00:52:03 Ek0hb0vC0
>>529
で、回答もらって知りたい事はわかったの?

どの程度の事が出来るのか、って言われても、
殆どの人が困ると思うんだが。

AHKの実用サンプルってのが何をさすか知らんが、
スクリプト自体はいくらでも公開されてるよ。



532:名無しさん@お腹いっぱい。
07/10/18 03:28:07 lANfUSPG0
実用サンプルって要するに「俺のやりたい自動処理を誰かが既に作って公開しているといいな~」ってことだろ

533:名無しさん@お腹いっぱい。
07/10/18 06:36:12 Ocu0rFsm0
UWSCって知らんけどAHKは軽いのが魅力に感じるなぁ
マウスのサイドボタンとかに機能割り当てるならやっぱコレじゃね

逆に複雑な自動操作には向いてない印象なんだが、やったことねーんでなんとも

534:名無しさん@お腹いっぱい。
07/10/18 08:41:26 z1eDF73r0
比較して迷ってる暇があったら使い慣れていったほうが早い

535:名無しさん@お腹いっぱい。
07/10/18 10:48:28 YxgPrvUq0
AHKはキーボードやマウスをカスタマイズするのに使うもんだろ

536:名無しさん@お腹いっぱい。
07/10/18 20:09:43 CAxJ+SA40
Fnキーにマッピングしたいのですが、Installkeyhookのhistoryに記録されないキーはAHKでは制御できないのでしょうか?

537:名無しさん@お腹いっぱい。
07/10/18 20:17:41 NLj7moSz0
>>536
Fnキー(F1~F12じゃないよね?)はキーボード内部やBIOSレベルでの変更が必要なので無理。
中には機種専用ツールがあったりするけど、一般的に使えるソフトは存在しないはず。

538:名無しさん@お腹いっぱい。
07/10/18 20:38:50 CAxJ+SA40
>>537
やっぱ無理か…即レス㌧クス。

539:名無しさん@お腹いっぱい。
07/10/20 12:04:53 WOANx8YP0
最近AHKを知り、便利に使わせていただいてます。
さて、質問なのですがあるプログラムにホットキー割り当てをして
常駐しているスクリプトを、対象のプログラムが終了したら自動で
終了させることは可能でしょうか?
スクリプト自身の後ろのステップでLOOPして対象プログラムの終了
監視をしてもだめですし、別のスクリプトで監視するとスクリプトが
2本走ることになってしまいます。
スクリプトが自分自身で完結するような書き方あるでしょうか?

540:名無しさん@お腹いっぱい。
07/10/20 12:16:37 X0gSkTm70
#IfWinActiveで対象のプログラムだけに
ホットキーを割り当てるのじゃだめなの

541:名無しさん@お腹いっぱい。
07/10/20 12:47:55 WOANx8YP0
>>540
もちろんそうしてます。

こんなスクリプトAでBeckyとそれをホットキーする常駐スクリプトBを起動
run "C:\Program Files\Becky2\B2.exe"
run "C:\Program Files\AutoHotkey\Extras\Scripts\スクリプトB.ahk"

Beckyを終了させると、スクリプトBだけ残ってしまうので、
次回また上のスクリプトAを起動すると
「スクリプトBのインスタンスが残っているけど上書きしますか?」
というメッセージが出て煩わしいのです。

できればスクリプトBの側で、Becky が終了したら自動で自分も終了するような
書き方ができないかなと思ったしだいです。

542:名無しさん@お腹いっぱい。
07/10/20 12:54:04 X0gSkTm70
常に常駐しているスクリプトにBecky用のホットキーを書いたらだめなの?

543:名無しさん@お腹いっぱい。
07/10/20 12:54:22 KnERfVSN0
>>541
直接の解決方法ではないけど。
#SingleInstance
URLリンク(lukewarm.s101.xrea.com)

544:名無しさん@お腹いっぱい。
07/10/20 13:07:29 urDNcbei0
>>541
winwaitclose
マニュアルくらい嫁よ

545:541
07/10/20 13:43:17 WOANx8YP0
>>543
これいいですね、使わせていただきます。

>>544
ホットキーと同時使用できるんでしょうか?
最初、ホットキー記述の後ろにLOOPでこれを書いたんですが
使い方が悪いのかうまくできませんでした。

546:名無しさん@お腹いっぱい。
07/10/20 13:55:49 urDNcbei0
>>545
> ホットキーと同時使用できるんでしょうか?
> 最初、ホットキー記述の後ろにLOOPでこれを書いたんですが
> 使い方が悪いのかうまくできませんでした。
何でホットキーの後にかくの?
B が Becky 起動させて終了するの待つだけでしょ?
winwaitclose か runwait のあとに exitapp でいいじゃん。

547:名無しさん@お腹いっぱい。
07/10/20 16:14:33 E0hFrWvy0
スクリプトBの中でベキ専用ホットキー & 終了監視を入れたいってことだよね?
LoopじゃなくてSetTimerで定期的にベキがいなくなったかどうかチェックしたらいいんじゃね?

あと、スクリプトAは常駐しないですぐ終了するの? だったらBのAutoExecute領域で

run "C:\Program Files\Becky2\B2.exe"
return

ってすれば、スクリプトは一個で済むんじゃね?

548:名無しさん@お腹いっぱい。
07/10/20 19:04:15 WOANx8YP0
ちょっと外出してたらこんなレスが・・・・

>>546-547
やっとわかりました。私がアホでした・・・orz
お二方のおっしゃる通り、スクリプト1個でスマートにBeckyの起動と終了監視、
ホットキーまで操作できることがわかりました。

こんな感じですね。
runwait "C:\Program Files\Becky2\B2.exe"
exitapp
#IfWinActive ahk_class Becky2MainFrame
MButton::Send,!m,l,y
#IfWinActive

ありがとうございました。

549:名無しさん@お腹いっぱい。
07/10/22 18:56:12 beQZI8wH0
スイッチを作ろうとして

Aというボタンを一回目に押したら(=スイッチon)αという動作をするようになる
Aというボタンを二回目に押したら(=スイッチoff)βという動作をするようになる
以下繰り返し

ということをしたいのですが
どうもスイッチでなく0と1だけ使った変数になってしまい
長く煩雑になってしまいます

onとoffだけでいいので簡単に書く方法ありますか

550:名無しさん@お腹いっぱい。
07/10/22 19:52:41 ZnJwDzgT0
「onとoffだけ」ってこういうことをして条件分岐するの?
 Ifinstring, Switch, ON, Setenv, Switch, OFF
 else Ifinstring, Switch, OFF, setenv, Switch, ON
 else Setenv, Switch, ON
変数は0と1の方が書きやすいとは思うが…

551:名無しさん@お腹いっぱい。
07/10/22 20:05:49 kRrYsv+Q0
>>549
flag := flag ? 0 : 1

552:名無しさん@お腹いっぱい。
07/10/22 20:09:54 R9Mr1voU0
false = 0
true = ~false = -1
だろうやっぱり。

553:名無しさん@お腹いっぱい。
07/10/22 20:47:20 ZKxjrr9K0
フラグをトグルにするための更新判定が繁雑ってことかな

更新は、flag = ~flag
で、判定は最終ビットだけ見るとか

if (flag && 0x0001) {
goto,SwichON }
else {
goto,SwichOFF }

554:名無しさん@お腹いっぱい。
07/10/22 20:54:22 ZKxjrr9K0
>>552
Trueが1ではなく -1なのって、False(0)の全ビット反転だからなのか。
VB暦は結構長いんだけど、今始めて気がついたわ

555:名無しさん@お腹いっぱい。
07/10/22 21:27:57 M6aKigNV0
flag=1

A::
If flag=1
XXXXX
Else
XXXXX
flag=flag*-1
Return

こんなんじゃダメ?

556:名無しさん@お腹いっぱい。
07/10/22 21:55:20 xfn8a7zf0
AutoHotkey使ってエクスプローラーを指定したサイズで起動する方法ってありませんか?

LoopとWinWaitとか使って監視しようかとも思いましたが起動したときのみという判定が難しいです

557:名無しさん@お腹いっぱい。
07/10/22 22:08:02 R9Mr1voU0
>>556
1.現在の explorer.exe の pid か hwnd をすべて取得して
配列かリストに保存。
2. 1 を適当な時間でポーリング
3.変化があったら変化があった hwnd だけ winmove

でどう?
そういえば ahk はリストとかハッシュが実装されて無いね。

558:名無しさん@お腹いっぱい。
07/10/22 22:50:37 ZKxjrr9K0
>>556
>438-447

質問前に100レス前くらいは遡って読みましょう

559:556
07/10/23 00:57:04 C4Dxb34U0
>>557
WinGet,,Listで100msごとにウィンドウ配列取得して前の配列になければWinMove
これでいけました
ありがとうございます

>>558
失礼いたしました
今後は気をつけます



今回はLoopで無理やりやったのですが
配列に値が存在するかどうかスマートに判断する方法ってありませんか?

560:名無しさん@お腹いっぱい。
07/10/23 08:08:46 n5ZgdZyR0
>>559
> 配列に値が存在するかどうかスマートに判断する方法ってありませんか?
無いから、リストとかハッシュとかイテレータとか実装してくれると大変助かる。

561:名無しさん@お腹いっぱい。
07/10/23 09:41:56 yNWS5b5p0
Run,URLリンク(www.google.com)
↑でクリップボードから検索しているのですが、
URLリンク(www.live.com)のサイトで検索したく、
URLリンク(search.live.com)
↑でやっているんですが、文字化けします。
yahooでも文字化けするんですが、
どうやったら文字化けが無くなるんでしょうか?

562:名無しさん@お腹いっぱい。
07/10/23 10:01:52 n5ZgdZyR0
>>561
urlはきちんとurlエンコードしてください

563:名無しさん@お腹いっぱい。
07/10/23 10:55:58 uae44SIt0
>>561
URLリンク(kaede.to)

564:名無しさん@お腹いっぱい。
07/10/23 12:48:56 53JAye4u0
AutoHotKeyで
ThumbRemapとマウスジェスチャを両方入れたとする。

んでマウスジェスチャの一つとして、右クリ+←をまぁ適当に「更新(F4)」
に割り当てたとする。

次にThumbRemapでLに右クリを設定したとする。

タッチパッド上に触れながらL押して左に指なぞったときに
ちゃんとマウスジェスチャのほうを認知させるようにしたい場合、
どう書き換えればいいかな?
(今の状態だと、Lを離したときに通常の右クリが発動するだけ)

もちろんThumbRemapでのホットキーを増やせば解決できるのはわかってるが、
いろいろな方法を用意しておきたいと思ってな。

565:名無しさん@お腹いっぱい。
07/10/23 12:56:00 Ig+mw1sJ0
MG_TriggerDown/Up

566:名無しさん@お腹いっぱい。
07/10/24 19:16:25 9a9f8UyA0
マウスカーソルの状態を取得できる方法ってないですか?


567:名無しさん@お腹いっぱい。
07/10/24 20:25:05 EcqMC+Se0
A_Cursor 現在のマウスカーソルの種類

568:名無しさん@お腹いっぱい。
07/10/25 17:47:37 KxJoRAzj0
AHKからEXCELファイルを開きたいのですが、
管理人さんのMy ScriptsページのActiveX操作サンプルや
WEBのそれらしきページを参考に書いてみましたがうまくいきません。
EXCELは立ち上がるのですが、ファイルが開けません。
どこか勘違いしてるでしょうか?

#include *i %A_ScriptDir%\ActiveX.ahk
ActiveX()
ObjExcel:=CreateObject("Excel.Application")
pp(ObjExcel,"Visible","true")
Inv(Inv(ObjExcel, "Workbooks"), "Open", "C:\Hoge.xls")

;EXCELインスタンスが立ち上がりっぱなしになるのでここでリリース
sleep 5000
Release(ObjExcel)


569:名無しさん@お腹いっぱい。
07/10/27 11:55:17 jCkP2WXL0
>>567
ありがとうございました。
コマンドばかり見てたので組み込み変数のほうは全く見てませんでした。

570:名無しさん@お腹いっぱい。
07/10/27 14:47:45 RjXdUIJ10
Run,AAA\BBB.vbs CCC
※AAAはフォルダ名、BBBはVBscriptファイル名、CCCはパラメータ
として、CCCというパラメータを指定してBBBを実行したいのですが、
「指定されたファイルが見つかりません。」とのエラーがでます。
エラーメッセージは下のようになっており、
CCCがパラメータとして認識されていないようです。

Action: <AAA\BBB.vbs CCC>
Params: <>

AAA\BBB.vbsやCCCを""でくくったりしてみましたがだめでした。
どのようにすればパラメータCCCを指定してBBBを実行できるでしょうか。

571:名無しさん@お腹いっぱい。
07/10/27 14:51:50 qXYPNrL50
Pathが通ってないんじゃね?

572:名無しさん@お腹いっぱい。
07/10/27 15:18:17 RjXdUIJ10
>>571ありがとうございます
AAA\BBB.vbsのパスが通っていないということでしょうか?
CCCを削除してRun,AAA\BBB.vbsにすると
パラメータなしでBBB.vbsが実行されるので、
AAA\BBB.vbsのパスは通っていると思うのですが・・

573:名無しさん@お腹いっぱい。
07/10/27 18:02:13 JjlIavqt0
Windowsキーと他のキーの組み合わせ(Win+Rとか)は生かしたまま
Windowsキー単発で押したときだけスタートメニューが出てくるのを無効にする方法はありますか

574:568
07/10/27 18:55:22 1DiNaabz0
あのう・・・
どなたか>>568
おわかりの方いましたらお答えいただけませんでしょうか?

下の3行はあえてやっているので、これのせいで開かないとかいうわけではありません。
この3行を外してもファイルは開けませんので念のため・・・
;EXCELインスタンスが立ち上がりっぱなしになるのでここでリリース
sleep 5000
Release(ObjExcel)

今は仕方ないのでEXCELファイル開く部分だけVBスクリプトで書いて呼び出しています。

575:名無しさん@お腹いっぱい。
07/10/27 22:40:42 feMike230
>>573
LWin::return
LWin & LWin::return
RWin::return
RWin & RWin::return

576:名無しさん@お腹いっぱい。
07/10/28 00:21:04 oCMwpLPC0
>>574
敢えてActiveX使ってる理由がわからんので何とも。
Run使った関連づけ実行じゃあかんのか?

577:名無しさん@お腹いっぱい。
07/10/28 07:04:23 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:名無しさん@お腹いっぱい。
07/10/28 13:57:22 q918e5XH0
>>577
まず最初にEXCELのパスをドライブからLOOP検索して
パスをテキストに保存するようにすれば?
最初にそれを調べてIfNOtExistだったら再検索するとか

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

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

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

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

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

582:名無しさん@お腹いっぱい。
07/10/28 20:25:01 dLJcnKYR0
出来る。

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

584:名無しさん@お腹いっぱい。
07/10/28 20:29:26 +dr9EP66O
>>570
Run
wscript.exe xxxx.vbs param
でどうよ。 cscript.exeでも良いけど。

>>581
>>5

585:584
07/10/28 20:32:06 +dr9EP66O
ん、変なところで改行されてる。
Run
wscr~な。

586:584
07/10/28 20:35:35 +dr9EP66O
何だimonaの仕様か?カンマが改行になる…
早くDION規制終わってくれ。スレ汚しゴメン。

587:570
07/10/28 21:08:55 q7KA1l9V0
>>584
この方法でうまくいきました。
ありがとうございます!

588:名無しさん@お腹いっぱい。
07/10/28 22:22:47 e5sn/U350
>>581
B::Send,C
A & B::Send,D

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

589:名無しさん@お腹いっぱい。
07/10/29 01:53:43 sI+1lOgM0
>>575
横㌧
後学のために知りたいんだけど、LWin & LWin::returnってどういう効果があるの?

590:名無しさん@お腹いっぱい。
07/10/30 13:58:41 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:名無しさん@お腹いっぱい。
07/10/30 14:24:51 +l6/VMD20
$

592:590
07/10/30 15:29:38 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
07/10/30 15:39:15 2bIDrR8e0
キーリピートは"RCtrl up::"で対処できました。

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

595:名無しさん@お腹いっぱい。
07/10/31 12:37:54 baAICokR0
^;::run,notepad
普通に動いた。
具体的に書かないとわからない。

596:名無しさん@お腹いっぱい。
07/10/31 12:41:46 baAICokR0
あぁ、勘違い。

597:名無しさん@お腹いっぱい。
07/10/31 12:44:33 baAICokR0
^vkBAsc028::run,notepad
でもvkで指定したら動いた。

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

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

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

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

600:名無しさん@お腹いっぱい。
07/11/02 15:19:27 SErhgEM20
確かに何故かキーリストにないな。

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

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

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

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

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

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

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

607:名無しさん@お腹いっぱい。
07/11/02 19:44:18 a6D8GNLi0
>>605
windowsデスクトップ上で、だ。

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

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

608:名無しさん@お腹いっぱい。
07/11/02 20:27:49 hfArcMju0
ネタ乙

609:名無しさん@お腹いっぱい。
07/11/02 22:54:34 jBZIrtFc0
愚痴りたいだけならうざいから消えて

610:594
07/11/02 23:55:24 K7cwsubO0
>>597
vk指定したら動きました。
vk指定のしかたが間違っていたようです。
thx!

611:名無しさん@お腹いっぱい。
07/11/03 00:53:44 mabxkLOu0
質問専用スレじゃないんだから別にいいんじゃないの。
どうせ過疎ってるんだし。

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

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

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

ホイールリダイレクト互換スクロール版
URLリンク(lukewarm.s101.xrea.com)

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

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

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

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

616:名無しさん@お腹いっぱい。
07/11/03 14:26:13 bWS4YM770
Send, ^c
を入れればいいだけでは?

617:名無しさん@お腹いっぱい。
07/11/03 14:33:36 IVK6J3sH0
>>616
そうでした。

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

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

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

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

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

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

SetTitleMatchMode, 2

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

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

よろしくお願いします。

622:名無しさん@お腹いっぱい。
07/11/03 18:30:03 PDweSZTN0
>>618
URLリンク(lukewarm.s101.xrea.com)
一応書いておくが、実際やってみるのが一番。

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

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

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

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

627:名無しさん@お腹いっぱい。
07/11/03 21:59:17 KDbiL8JY0
ControlFocus,MozillaWindowClass7,ahk_class MozillaUIWindowClass

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

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

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

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

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

631:名無しさん@お腹いっぱい。
07/11/04 23:49:43 AZzCkrKS0
>>629 どうやって動かすの?

632:名無しさん@お腹いっぱい。
07/11/05 03:31:44 FkXhXeMc0
AutoHotkey.ahkのpathってどこで変えられますか?

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

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

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

こんなかんじで。

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

635:名無しさん@お腹いっぱい。
07/11/05 11:06:08 4B2+SDNl0
>>634
すいません、わすれてしまいました。

636:名無しさん@お腹いっぱい。
07/11/05 11:11:24 4B2+SDNl0
検索履歴をみたら再検索できました。
出展はこちらです。
URLリンク(www.donationcoder.com)

637:名無しさん@お腹いっぱい。
07/11/05 20:39:45 0oN7XXgL0
先頭に ~ をつけると どのような動作になるのでしょうか?

638:名無しさん@お腹いっぱい。
07/11/06 11:54:52 wcyUO4TQ0
っ 説明書

639:名無しさん@お腹いっぱい。
07/11/06 12:22:36 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:名無しさん@お腹いっぱい。
07/11/06 12:51:58 okUbZAfE0
PostMessageを使った方が確実で良いんじゃない

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

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

642:名無しさん@お腹いっぱい。
07/11/06 20:10:21 pb+kNkjg0
>>639
^{P} → ^p ではどう?

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

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

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

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

644:名無しさん@お腹いっぱい。
07/11/06 22:26:47 +cTzfPdI0
いやいや書いてあるでしょ
URLリンク(www.autohotkey.com)

645:名無しさん@お腹いっぱい。
07/11/07 14:48:21 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:名無しさん@お腹いっぱい。
07/11/07 15:39:03 c0R2jDpg0
global MyCheckbox, MyEdit, MyRadio
vがいらないんじゃ?

別のエラーがでたけど

647:名無しさん@お腹いっぱい。
07/11/07 17:01:45 xcF2JGlk0
>>646
ありがとうございます。
すすみました。

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

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


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

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

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


650:名無しさん@お腹いっぱい。
07/11/07 18:12:59 c0R2jDpg0
だからー、第一パラは%いらないのー

651:名無しさん@お腹いっぱい。
07/11/07 18:56:45 xcF2JGlk0
>>650
もう分からないです。

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

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


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

653:名無しさん@お腹いっぱい。
07/11/07 19:20:20 xcF2JGlk0
>>652
すいません。
ありがとうございます。
できました。

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

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

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

655:名無しさん@お腹いっぱい。
07/11/08 11:37:39 LkNXR2gq0
>>654
ComboBoxかDropDownList

656:名無しさん@お腹いっぱい。
07/11/08 12:19:25 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:名無しさん@お腹いっぱい。
07/11/08 15:23:42 XkPSzQlp0
きっとループに陥ってるだけなんだろうな
もう少しこなれてからまたおいでって感じだな

658:名無しさん@お腹いっぱい。
07/11/08 15:53:46 VpjEbYEG0
Gui, Add, ComboBox ,vCom Simple Sort, aaa|bbb|ccc|aab|aba

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

659:名無しさん@お腹いっぱい。
07/11/08 17:26:35 MaxO5Kjc0
流行らせるページのコマンドラインランチャがそんな感じ

660:名無しさん@お腹いっぱい。
07/11/08 19:41:54 VpjEbYEG0
変数にリストがないのは痛いな。

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

661:名無しさん@お腹いっぱい。
07/11/09 13:36:05 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:名無しさん@お腹いっぱい。
07/11/09 13:43:29 FxAaRY1v0
~LShift up:: DoubleKey("{Delete}", 400)

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

663:名無しさん@お腹いっぱい。
07/11/09 14:06:19 sCn2a4fh0
>>662
正常に動作しました。
今やっと理解できました。

ありがとうございます。

664:名無しさん@お腹いっぱい。
07/11/09 19:46:13 8en6gcJl0
質問させていただきます

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

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

よろしくお願いします

665:名無しさん@お腹いっぱい。
07/11/09 19:57:53 cfB1EDup0
>>664
俺には難しくてよくわからんw

2005-08-26 - eamatの日記
URLリンク(d.hatena.ne.jp)
旧雑記サルベージ
URLリンク(lukewarm.s101.xrea.com)


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

667:名無しさん@お腹いっぱい。
07/11/09 20:15:08 mXY51MyH0
>>666
WinGet?

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

669:名無しさん@お腹いっぱい。
07/11/10 18:20:53 77vfAw8E0
Hotkey, OFF

670:名無しさん@お腹いっぱい。
07/11/12 03:10:52 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:名無しさん@お腹いっぱい。
07/11/12 05:08:05 BFVOzu/J0
ahk classには中間一致はないでソ
タイトルじゃないんだから

672:名無しさん@お腹いっぱい。
07/11/12 08:08:30 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:名無しさん@お腹いっぱい。
07/11/12 10:19:12 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:名無しさん@お腹いっぱい。
07/11/12 10:20:31 WsuDC3uN0
>>671
なるほど、そういうことでしたか。
ヘルプを参照してタイトル部分一致を試みたのですが、ちょっとできませんでした。
また別の機会にやってみます。

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

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

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

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


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

678:名無しさん@お腹いっぱい。
07/11/12 11:39:23 z6SmkfAk0
>>676
あっ
ごもっともです。
ありがとうございます。

679:名無しさん@お腹いっぱい。
07/11/12 15:00:51 z6SmkfAk0
無変換キーにウィンドウ最小化を与えたいのですが、

vk1Dsc07B:: WinMinimize

ではうまくいきません。

どうすればよいでしょうか。

680:名無しさん@お腹いっぱい。
07/11/12 15:07:35 BFVOzu/J0
さすがに付き合いきれんよ

681:名無しさん@お腹いっぱい。
07/11/12 15:17:03 VVUThdm/0
>>679
自分も最初これで悩んだ。
WinMinimize, A

682:名無しさん@お腹いっぱい。
07/11/12 15:29:49 z6SmkfAk0
>>681
あざーす

サンプルの一番下だけ見てなかったっす。

683:名無しさん@お腹いっぱい。
07/11/12 15:32:37 3EV62vgO0
あざーすって何だよ。

アザトースか?

684:名無しさん@お腹いっぱい。
07/11/12 15:37:13 CUI4dA1N0
>>683
ラブクラフトの読みすぎです

685:名無しさん@お腹いっぱい。
07/11/12 15:49:32 BFVOzu/J0
今日は優しい風が吹いてるな

686:名無しさん@お腹いっぱい。
07/11/12 17:56:25 z6SmkfAk0
「^c::Send,^c」という定義をした場合、
Ctrl+Cが押されるとCtrl+Cを送信するサブルーチンが実行され、そのCtrl+Cに反応して再度サブリーチンが実行され、無限ループに陥ってしまう。

とありますが、Send ^cの「^c」をホットキーでない通常のペーストにしたい場合はどのようにすればよろしいでしょうか?


687:名無しさん@お腹いっぱい。
07/11/12 18:02:00 CUI4dA1N0
>>686
> とありますが、Send ^cの「^c」をホットキーでない通常のペーストにしたい場合はどのようにすればよろしいでしょうか?
何も割り当てなければ C-c は C-c のままですよ?

688:名無しさん@お腹いっぱい。
07/11/12 18:02:39 CUI4dA1N0
ごめん激しく釣られた。
ペーストは C-v ですた。

689:名無しさん@お腹いっぱい。
07/11/12 19:57:39 LxbWc6NN0
ホットキーでマスタ音量を上げ下げしたくて作ったのですが二点ほど質問があります

TIPOFF:
tooltip
settimer, TIPOFF, off
return

^up::
settimer, TIPOFF, 500
soundset, +1, MASTER
soundget, MASTERVOL, MASTER
tooltip, %MASTERVOL%
return

^down::
settimer, TIPOFF, 500
soundset, -1, MASTER
soundget, MASTERVOL, MASTER
tooltip, %MASTERVOL%
return


1.ツールチップは透明にしたりできないのでしょうか?

2.なぜか+1しているのに0.999466ずつ足されていくのですがなぜでしょうか?



690:名無しさん@お腹いっぱい。
07/11/12 20:18:50 BFVOzu/J0
0~65536を百分割してるから誤差が出るんじゃないの

691:名無しさん@お腹いっぱい。
07/11/12 22:34:22 vc5RlPA+0
便乗質問。ツールチップのフォントの大きさ変えることできない?

692:名無しさん@お腹いっぱい。
07/11/13 00:02:17 6r0yPWm20
流行らせるページの「タスクトレイに最小化」スクリプトで
最小化したウィンドウを取り出すとき、
タスクトレイのアイコンをクリックするのではなく、
ショートカットキーで取り出す事ってできますか?

一応、特定のアプリだけで使いたいんですが、やり方がよく分かりません・・・

693:名無しさん@お腹いっぱい。
07/11/13 13:10:29 bRWzStWe0
Altキー2回押しで起動するアプリがあってそれをAHKを使って、Ctl+右クリックで呼びたいんですけど
下のいずれでもダメでした。
何か良い方法がありましたら教えてください。

^RButton:: SendEvent {ALT}{ALT}

^RButton:: SendInput {ALT}{ALT}

^RButton:: Send {ALT}{ALT}

^RButton::
SendInput {ALT} down
SendInput {ALT} up
SendInput {ALT} down
SendInput {ALT} up


694:名無しさん@お腹いっぱい。
07/11/13 13:45:41 3KwfawNn0
CLCLで試したけど

KeyWait, CTRL, U

はさんだら出来た。でも、キーを放すまでは動作しないので
ちょっと違和感ある

695:名無しさん@お腹いっぱい。
07/11/13 19:55:57 ax2MIHQd0
「起動する」のであれば、Runで呼び出すのではいかんのかい?

696:名無しさん@お腹いっぱい。
07/11/13 21:00:20 ax2MIHQd0
マウスカーソルを動かさずに、指定した座標にマウスのクリックを発生させることは不可能でしょうか?

697:名無しさん@お腹いっぱい。
07/11/13 21:55:57 LRbMYgHY0
PostMessage,SendMessage + WM_LBUTTONCLICK 辺り

698:名無しさん@お腹いっぱい。
07/11/13 21:57:34 YS/tTYSd0
右ダブルクリックにホットキーを割り当てたいのですが、
RButtonRButton:: ではだめでした。やり方が悪いのでしょうか?


699:名無しさん@お腹いっぱい。
07/11/13 22:15:44 nAoiLpYR0
>>698
その発想はないわw
629を少し変えれば良いと思うよ

700:名無しさん@お腹いっぱい。
07/11/13 22:25:35 3KwfawNn0
ワロスw

701:名無しさん@お腹いっぱい。
07/11/13 23:37:30 Zt52tcWK0
マウスジェスチャ2ならRB__RB__なんだがな

702:名無しさん@お腹いっぱい。
07/11/14 13:09:46 rIfeXugq0
マウスカーソルをデスクトップの右上に1秒置いたとき
関数を実行させることってできますか?

703:名無しさん@お腹いっぱい。
07/11/14 13:32:41 KNpdLpyT0
できるよ

704:名無しさん@お腹いっぱい。
07/11/14 14:13:46 Pr/9nclm0
~Lbutton & ctrl::send,{enter}
が暴走します。
字面通り左ボタンを押しながらCtrl押すとEnterになるのはいいんですが、
何故か家ではCtrl押しながら左ボタン押すと定義外のことが起きます。

何も定義してないのに、左ボタンを押してる間Enterが連打されてしまいます。

~b & ctrl::send,{enter}
だとCtrl押しながらbで(当然のことながら)何も起きないのに。

705:名無しさん@お腹いっぱい。
07/11/14 22:54:05 Pr/9nclm0
おかしいな家だけ?Lbuttonが壊れているわけでもないのに。

706:名無しさん@お腹いっぱい。
07/11/14 23:04:50 NYeH+lm70
>>697
ありがとう。調べてやってみましたが、
たとえばアクティブウィンドの(256,256)の座標に、マウスの左ボタンをクリック→離すを送るのに

SendMessage, 0x201,0,0xFF00FF,,A
SendMessage, 0x202,0,0xFF00FF,,A


を試してみました。
が、どうもうまくいきません。書き方間違っているのでしょうか。
右クリックにしてみると(0x204,0x205)、アクティブウィンドの種類によってはメニューは出ることがあるのですが、
意図した座標で右クリックしていないようで…

よろしければ知恵をお貸しください。

707:名無しさん@お腹いっぱい。
07/11/14 23:30:25 KNpdLpyT0
>>706
> SendMessage, 0x201,0,0xFF00FF,,A
wParam は 1 じゃないと不味いような。
昔書いた奴をやろう。

LClk(x, y, id=0)
{
lParam := x | (y << 16)
if id = 0
{
PostMessage, 0x0201, 1, %lParam%
PostMessage, 0x0202, 0, %lParam%
}
else
{
PostMessage, 0x0201, 1, %lParam%,,ahk_id %id%
PostMessage, 0x0202, 0, %lParam%,,ahk_id %id%
}
Return
}


708:名無しさん@お腹いっぱい。
07/11/15 21:05:47 1P+tCkQs0
現在文字入力中であるかどうか
を判断する方法はありませんか?

A_CursorXで判断できるかと思ったのですが入力中でないにも関わらず値が存在しますし
現在のコントロールだとwebページの入力フォームが判断できませんし

709:名無しさん@お腹いっぱい。
07/11/15 21:35:09 zw/4nkes0
キーを押しているかどうかなら GetAsyncKeyState
厳密に入力中かどうかは判定するなら、メッセージを hook しないといけない希ガス

710:名無しさん@お腹いっぱい。
07/11/15 22:15:14 1P+tCkQs0
間違えた上に言い方が悪かったです
A_CursorX ではなく A_CuretX でした
文字入力中かどうか ではなく キーを叩くと文字が入力される状態かどうか でした

何がやりたいかというと、文字を打ち込みたいとき以外は
修飾キーなし、英数字キー単体でキーボードショートカットを実現したいのです

711:名無しさん@お腹いっぱい。
07/11/15 23:25:24 rH+toGPZ0
COntrolGetFOcus
で文字打ち込み系のコントロールだったら除外するとか

712:名無しさん@お腹いっぱい。
07/11/16 09:04:41 MSHvKwcF0
よいお知恵を教えてください。
英語版WindowsXP Pro SP2上にてAutoHotKeyを使っています。

AHKで、メモ帳トラッパーやNotepadBranchのような働きをさせられたら、と思っています。
考えている仕組みは、上記のものと異なり、notepad.exeが開いたら対象ファイルのパスを取得し、
任意のエディタで開き、同時にnotepad.exeを閉じる、というものです。

しかしながらアクティブなnotepad.exeが開いているファイルパスの取得方法がわかりません。
どなたかご教授いただけないでしょうか。

713:名無しさん@お腹いっぱい。
07/11/16 09:55:58 TrZF8PzZ0
>>712
おまいさんの notepad.exe と俺の使ってる奴の version が同じかどうかはわからないが、
notepad.exe のメモリの 0x0100A900 を読めばいいとじっちゃんが言ってた。
ちなみに Unicode だから、ahk でそのまま表示しても文字化けするから注意してくれ。

714:名無しさん@お腹いっぱい。
07/11/16 10:34:20 Pk94Qr060
>>699
ありがとうございます。

RButton:: DoubleKey("cmd.exe", 400) でできましたが、
普通の右クリックが聞かなくなりました。
考えてみたら当たり前ですが・・・

やりたいことはartipsというソフトがあり、
artipsのの右ダブルクリック見たいに、ホットキーアクションをさせたいです。

artipsは、初回の右クリックで、通常の右クリックアクションが即効発動して
次の右クリックをすると、artipsのポップアップが出る動きです。

どうしてもAutoHotKeyで実装したいのですが、
すいません、ヒントをお願いします。

715:名無しさん@お腹いっぱい。
07/11/16 11:39:51 ESF4RUBf0
(右ダブルクリックだけなら、)わざわざ関数持ち出さなくともよくね?

~Rbutton::
If(A_PriorHotKey = A_ThisHotKey and A_TimeSincePriorHotkey < 200)
{
Send,{Esc}
;出現したコンテキストメニューを念のため消す
Send,Atoha yaritai koto
;後はご自由に
}
return

716:名無しさん@お腹いっぱい。
07/11/16 14:09:11 MSHvKwcF0
>>713
情報ありがとうございます。じっちゃんにもお伝え下さい。
しかしメモリの読みかたが全くわからないので、もしよろしければ
メモリの参照方法をじっちゃんに聞いていただけないでしょうか?

717:名無しさん@お腹いっぱい。
07/11/16 14:34:48 jVKwkL+A0
ググレカス

718:名無しさん@お腹いっぱい。
07/11/16 15:21:15 q18ihBcn0
WinMain を使えば出来そうな気配なんだけど
もうこれ以上は分からん┐( ´ー`)┌

719:名無しさん@お腹いっぱい。
07/11/16 15:33:11 0alUhCR10
流行らせるページ管理人氏のMyScriptにメモリをどうにかして読むサンプルがあったような気が

720:名無しさん@お腹いっぱい。
07/11/16 16:36:49 TrZF8PzZ0
>>716
ググれない奴は覚えないってじっちゃんが言ってた。

#include mbstring.ahk
ReadMemString(pid, ByRef res, addr, size)
{
local hproc, suc
hProc := DllCall("OpenProcess",UInt,0x001F0FFF,UInt,0,UInt,pid,UInt)
VarSetCapacity(res, size)
suc := DllCall("kernel32\ReadProcessMemory",Int,hProc,Int,addr,Str,res,Int,size,Int,0,Int)
DllCall("psapi\CloseProcess",Int,hProc)
return suc
}

#ifwinactive ahk_class Notepad
1::
WinGet, pid, PID
ReadMemString(pid, ures, 0x0100A900, 256)
MBS_WideCharToMultiByte(res, ures)
msgbox, %res%
return


721:名無しさん@お腹いっぱい。
07/11/16 17:08:59 Pk94Qr060
>>715
ありがとうございます。
下でできました。
1回だけの右クリックも聞くようにしました。

Rbutton::
If(A_PriorHotKey = A_ThisHotKey and A_TimeSincePriorHotkey < 1000) {
Send,{Esc}
処理・・・
} else {
MouseClick, RIGHT
}
return

上記では、右クリック押下だけで、MouseClick, RIGHTが反応してしまいます。

他アプリのマウスジェスチャを有効にしたいのですが、
右クリックを放した後にMouseClick, RIGHTを実行させることは可能でしょうか。


722:名無しさん@お腹いっぱい。
07/11/16 19:32:06 Dt0CPw7PP
>>721
チルダつければいいだけじゃないの?
つか、715はチルダつけてるじゃん。消したの?なんで?

723:名無しさん@お腹いっぱい。
07/11/16 20:10:43 vH69+YYy0
フルパスからそれが「フォルダ」なのか「ファイル」なのかを判別するのに
一番手っ取り早い方法ってありますでしょうか?



D:\hoge\hogehoge

hogehogeがフォルダなのか拡張子無しのファイルなのかを調べたいのです

724:名無しさん@お腹いっぱい。
07/11/16 20:22:52 zFQKjHEJ0
>>723
FileExist()

725:名無しさん@お腹いっぱい。
07/11/16 20:35:09 vH69+YYy0
どうも有り難うございます

リファレンスに普通にありましたね・・・

スレ汚しすみませんでした

726:名無しさん@お腹いっぱい。
07/11/16 20:53:58 Pk94Qr060
>>722
あっ、すいません。
どうもありがとうございます。

ところで、どっかのサイトにIMEの辞書登録で
上から2番目の項目に値をセットするとき

ControlSetText,RICHEDIT50W2, %Clipboard%, 単語/用例の登録

っとやっていましたが、「RICHEDIT50W2」ってどうやって調べるのでしょうか。
「単語/用例の登録」画面を立ち上げ、Spyで見ましたが
そんな項目はなかったです。

727:名無しさん@お腹いっぱい。
07/11/16 21:33:30 q18ihBcn0
自分の環境に合わせれ
ウチの2003だとふつうにEdit2

728:名無しさん@お腹いっぱい。
07/11/16 22:07:47 Pk94Qr060
>>727
え~できないです。
Edit1って、ウィンドウの上から2番目の入力ボックスってことですか?

729:名無しさん@お腹いっぱい。
07/11/17 00:50:38 epCPBx2R0
マウスのX1ボタン+右クリックでコピーするようにしたいのですが
XButton1 RButton :: ^c
としてもエラーが出てできませんでした。
リマップでは無理なんでしょうか?






730:名無しさん@お腹いっぱい。
07/11/17 01:17:03 CkIfa/570
質問してる奴等
まずは>>1の日本語解説ページのリファレンスを読んでこい。
話はそれからだ。

731:名無しさん@お腹いっぱい。
07/11/17 09:24:38 GvfwM5TX0
タスクマネージャーでは存在するのにwingetでpidが取得できません。
WinGet,v,Listでリストを書き出してみたところ該当するプロセスがありませんでした。

試したスクリプトは
DetectHiddenWindows,On
WinGet,w,List,,,joijpouhpoijjjjjjj
Loop, %w%
{
tempid := w%A_index%
WinGet, PName, ProcessName, ahk_id %tempid%
WinGet, Pid, PID, ahk_id %tempid%
FileAppend, %A_index%%A_Tab%%Pid%%A_Tab%%PName%`n, %A_ScriptDir%\%A_ScriptName%.txt
}
return

です。
タスクマネージャを起動してpidを手打ちしているのですが、
スクリプトで取得する方法がありましたら教えていただけませんでしょうか。

732:名無しさん@お腹いっぱい。
07/11/17 09:37:32 MV1rI88j0
>>731
detecthiddenwindows

733:名無しさん@お腹いっぱい。
07/11/17 11:59:47 tWWYI8If0
VBなどでカレンダーのコントロール(部品?)がでて、選択するとその日にちが
横のテキストにセットされるなんてのがありますが、
そんなことって、autohotkeyでできますか?

734:名無しさん@お腹いっぱい。
07/11/17 14:27:22 36qedEkq0
>>733
>>730

735:名無しさん@お腹いっぱい。
07/11/17 16:07:50 V77SupSP0
>>720
すすす、すげぇ!!! ばっちりです。
質問の前に自分でも調べてみたのですが、当分できなかった気がします。
また勉強してきます。本当にありがとうございました。

736:名無しさん@お腹いっぱい。
07/11/17 17:10:19 GvfwM5TX0
>>732 さんありがとうございます。
DetectHiddenWindows,Onは試してるんですがどうにもうまくいきません。

タスクマネージャーでPidを表示できるようにして確認したところ、pidは最大でも4000までだったのでloopで総当りしてみました。
その時点で50プロセス程存在していました。

DetectHiddenWindows,On
Loop,4000
{
tpid := A_Index
WinGet, PName, ProcessName, ahk_pid %tpid%
if (PName == "")
continue
FileAppend, %tpid%%A_Tab%%PName%`n, %A_ScriptDir%\%A_ScriptName%.txt
}
return

結果は32プロセスしか取得できなかったようです。
System Idle Process,System,Spoolsv.exe等のユーザー名がSYSTEMなものがほとんどなんですが
それ以外にも散見されます。
取得したいプロセスは自ユーザーです。
PCに詳しくない人に使ってもらうためなので、できればスクリプトの中で取得したいと思っています。
どなたかお知恵を拝借願えませんでしょうか。

737:名無しさん@お腹いっぱい。
07/11/17 17:16:41 MV1rI88j0
>>736
ソフトとかも何も提示されていないから、エスパーするしかないが、
もしかしてウィンドウが存在しない物のpidを取得したいってことか?

738:名無しさん@お腹いっぱい。
07/11/17 18:51:29 tWWYI8If0
サンプルコード類のCtrl key double tapで
コピーするときにCtrl押してからcを押すまでがとろいと ;some actionが走ります。

何か方法はあるでしょうか。

そもそもCtrlキー長押しは連打になるのでしょうか?

739:名無しさん@お腹いっぱい。
07/11/17 19:45:03 tWWYI8If0
2つのウィンドウを作って呼び出そうとしているのですが、
2つ目の画面が出ません。なぜでしょうか。

MyRadio = 1
w1:=1
Gui,%w1%:Default
Gui, add, radio, vMyRadio, 何もしない
Gui, add, button, default xm, OK ; xm puts it at the bottom left corner.

+^b::
Gui,%w1%:Default
Gui, show
return
ButtonOK:
GuiClose:
GuiEscape:
Gui, submit
return

MyRadio1 = 0
w2:=2
Gui,2:Default
Gui, add, radio, vMyRadio1, 何もしない
Gui, add, button, default xm, OK1 ; xm puts it at the bottom left corner.

+^v::
Gui,2:Default
Gui, 2:show
return
ButtonOK1:
Gui, 2:submit
return

740:名無しさん@お腹いっぱい。
07/11/17 20:56:41 X1W5C5Ju0
賑やかだがややカオス

741:名無しさん@お腹いっぱい。
07/11/18 10:09:47 DxQltXMf0
A:: Send,{B}
A:: Send,{C}

でエラーを出さずに後の定義を有効にするようには出来ないものか。

742:名無しさん@お腹いっぱい。
07/11/18 10:44:26 pEScAPz30
割り込みというもの

743:名無しさん@お腹いっぱい。
07/11/18 19:08:11 k9r02pTe0
>>741
その定義をすることで
何をしたいんだ?

ていうか、BとC両方を押す処理を送りたいなら
Send,BC
だけじゃね?

744:名無しさん@お腹いっぱい。
07/11/18 23:14:31 AHiS+Z1P0
>>737
> ウィンドウが存在しない物
そうだと思います。
アプリケーションの通信部分を担当してるような名前です。

タスクマネージャに出てるならなんとか操作できるんじゃないかってのが事の発端でした。
今はタスクマネージャを起動してpidを目視→入力って手順で使ってもらってるんですが
そこ手順を省略できないかなぁと思いまして書き込んでみました。

リストビュー操作の方向でもうちょっと勉強してみます。

745:名無しさん@お腹いっぱい。
07/11/18 23:35:05 ellkomLo0
>>744
psapi.dll

746:名無しさん@お腹いっぱい。
07/11/19 03:16:43 eArk+a4z0
>>745 さま
/*
psapi.dllを使ってプロセス名からpidを取得するサンプルは発見できたんですが
DllCallに書き直すのに挫折しました。
流行らせるページからProcessMem.ahkというスクリプトを拝領して
先のloopスクリプトで検索することでうまくいきました。
ヒントを与えてくださった皆様ありがとうございました。
*/
hModule := DllCall("LoadLibrary", str, "psapi.dll") ;ロードする
#Include %A_ScriptDir%\ProcessMem.ahk
limits = 4000
Loop, %limits%
{
tpid := A_Index
PName := getPEName(tpid)
if (PName == "")
continue
else if PName Not contains hogehoge.exe ;プロセス名
continue
else
break
}
msgbox, % tpid = limits ? 0 : tpid
DllCall("FreeLibrary", UInt, hModule) ;開放する

return


747:名無しさん@お腹いっぱい。
07/11/19 19:23:07 H4+iClNx0
↑解決されたようなので次の質問です

コンテキストメニューが表示されたことを判断したいのですが
どうすれば良いでしょうか?

ひと通り「流行らせるページ」は読んできました

748:名無しさん@お腹いっぱい。
07/11/19 22:26:14 PuiTrZ3r0
既出かもしれないけど貼っておく
URLリンク(www.donationcoder.com)

色々勉強になる。

749:名無しさん@お腹いっぱい。
07/11/19 22:32:24 xgu4LjI+0
>>748
既出かもしれないと思うなら、さすがに>>2くらい見てからのほうが…

750:名無しさん@お腹いっぱい。
07/11/20 19:27:35 IdA+GMNY0
質問です。
直前のアクティブウィンドウのハンドルを取得することはどうすればいいですか
DllCallのGetWindowでいけそうなんですが、うまくいきません
よろしくお願いします。

751:初心者だが
07/11/20 19:44:17 +H6sk/kC0
これちょっと惑わされたぜ

誤)ライブラリスクリプトは「%A_MyDocuments%\AutoHotkey\Lib\」か、AutoHotkey.exeのあるフォルダ内に格納する。

正)ライブラリスクリプトは「%A_MyDocuments%\AutoHotkey\Lib\」か、AutoHotkey.exeのあるフォルダ内の「Lib\」に格納する。


それともこれって常識なのか?

752:名無しさん@お腹いっぱい。
07/11/20 19:47:12 0O21fTkm0
>>751
ソース本体と同じディレクトリにいれておいた方が便利だよ。
どうせたいしたライブラリもないし。

753:名無しさん@お腹いっぱい。
07/11/20 19:50:41 RcpW0Wap0
>>707
遅くなりましたがありがとうございます。
どうもidの取得・指定がうまくいってないみたいです。

別のソフトでウインドハンドルを取得して、それを指定するとうまくいったので。
いろいろ試してみようと思います。ありがとうございました。

754:名無しさん@お腹いっぱい。
07/11/22 18:26:21 g9vmyrCo0
起動してもタスクバーに表示されなくて何もできない zipとインストール版両方試したけど
前は使えてたのになんでよ


755:名無しさん@お腹いっぱい。
07/11/22 18:32:50 g9vmyrCo0
ドキュメントに作成されたやつ削除して起動繰り返してたらタスクに常駐しだした
おじゃましますた

756:名無しさん@お腹いっぱい。
07/11/24 05:35:20 dDIqV/XZ0
1.0.47.05

757:名無しさん@お腹いっぱい。
07/11/25 03:05:24 aen/os2R0
名前に「ソ系」のダメ文字の入ったファイルの属性変更をするにはどうすれば良いですか?

ソЫⅨ噂浬欺圭構蚕十申曾箪貼能表暴予禄兔喀媾彌拿杤歃濬畚秉綵臀藹觸軆鐔饅鷭偆砡纊犾


裏技で変更できたりしますか?

758:名無しさん@お腹いっぱい。
07/11/25 11:46:08 IObwvCyD0
キーカスタマイズソフトスレで見つけました。これはAHKで実現できますか?
60 名前:名無しさん@お腹いっぱい。[] 投稿日:03/06/19(木) 02:09 ID:Yi+QkHTo
XKeymacsなどを使って、
Ctrl と CapsLockをひっくり返すのではなく、
通常のCtrlはそのままで、
CapsLockをemacsバインド専用のCtrl2として、
利用できるようにはできませんか?
通常のCtrlとemacsキーバインドが重複するのはすごく不便な反面、
CapsLockキーのほうはなくなってもほとんど困ることはないので。

759:名無しさん@お腹いっぱい。
07/11/25 11:49:56 z38QYbrw0
>>758
できるだろうけどお前のPCじゃ無理なのは間違いない。

760:757
07/11/25 12:17:57 neA10OGo0
ソ.txtに対して
FileGetAttribは問題ないのですが
FileSetAttribが利きません


誰か助けてください



761:名無しさん@お腹いっぱい。
07/11/25 12:25:17 IObwvCyD0
>>759
AHKはCapslockはいじれないんでしたっけ?
F13を割り当ててやってみましたが、全然ダメでした。
非常駐型でF13~F24までを割り当てられるのってあるのかな?
でも、絶対に重複してはいけないというわけでもないから、F13~F24を使う必要もないか。
changekeyとかでCapslockに数字キーのようなコンビネーションをあまり使わないキーを割り当ててそのコンビネーションで使えばいいかな?

762:名無しさん@お腹いっぱい。
07/11/25 12:27:00 IObwvCyD0
>>761
あっ、数字が入力されてしまうか?ダメだね。
あんまり使わない修飾キーをアサインするしかないのかな?
誰か助けてー

763:名無しさん@お腹いっぱい。
07/11/25 12:30:38 33flX5nk0
Capslockはレジストリで変更したほうがラクだし確実じゃね?
keyswapとか併用しろよ

764:名無しさん@お腹いっぱい。
07/11/25 13:12:22 4BOZwyhx0
>>758 俺もレジストリ値書き換えが面倒で、Xkeymacsに書き換えてもらってるわけだが、
何の問題なく書き換えられたぞ(Varsion 3.19)。最新版はしらんがね(Varsion 3.43)。

765:名無しさん@お腹いっぱい。
07/11/25 13:14:52 ewXDjkPs0
>>760
なまず ダメ文字 でカス

766:名無しさん@お腹いっぱい。
07/11/25 13:21:37 neA10OGo0
>>765
いやそういう問題ではなくて

FileGetAttrib, OPV, ソ.txt

はOKで

FileSetAttrib, +R, ソ.txt

がダメなのはどうしてだろうと思って質問しました


767:名無しさん@お腹いっぱい。
07/11/25 13:54:48 xHrvRBu30
マウスの左右のキーどちらか押されたほうの入力を監視したいのですが、
Input, InputKey, L1, {RButton}{LButton} ではだめでした。
keywaitは一文字しかだめらしいので、何かよい方法はあるでしょうか。

768:名無しさん@お腹いっぱい。
07/11/25 15:12:26 /9NP1ooM0
>766
FileGetAttrib は AHK 内部で文字列を解析していないが、FileSetAttrib は解析しているんじゃないの?

と思ってみたらソース見たらやっぱりその通りで、FileGetAttrib はほぼ Win32 API にスルー、FileSetAttrib は
ワイルドカード系の処理のためにパス区切りを自前で調べてる。

DllCall 使って SetFileAttributes() を直接呼び出せばいいんじゃない?

769:名無しさん@お腹いっぱい。
07/11/25 15:58:12 lrJQTdQh0
>>764
単なるCtrlじゃなくて、Ctrl2として使用できていますか?
Ctrl+HをBackspaceにアサインしたいんですけど、メモ帳

770:名無しさん@お腹いっぱい。
07/11/25 16:00:36 lrJQTdQh0
>>769
うっかり送信してしまいました。

単なるCtrlじゃなくて、Ctrl2として使用できていますか?
Ctrl+HをBackspaceにアサインしたいんですけど、メモ帳
で検索が立ち上がるし、ATOKだとHelpが出てくるしで面倒なので、Ctrl2が使いたいのですが。
>>758の文章だとXkeymacsでは出来ないように思えるのですが。。。。

771:名無しさん@お腹いっぱい。
07/11/25 18:38:18 e5c2cAn40
>>758
RWinとか、あんまり使いそうにないキーをCapsLockに割りあてて、
RWin & h::Send, {BS}とかすれば良いのでは?

772:名無しさん@お腹いっぱい。
07/11/25 19:06:04 EUDcNtJ60
>>768
どうもありがとうございました
自分にはソース解析などまったくできないので、本当に感謝しています

FileSetAttribは使えないことがわかったので以下の関数を登録して使うことにしました


SetFileAttributes(ByRef path,attrib=128){
DllCall("SetFileAttributes", str, path, int, attrib)
}


DllCallを使うのは初めてだったのですが何とかできました

AutoHotkeyの日本語環境で使ってはいけない(ダメ文字)コマンドの一覧があると便利だと思います
誰か作ってください

773:名無しさん@お腹いっぱい。
07/11/25 19:21:55 SP727yv40
JoystickMouse.ahkを改造してアクティブウィンドウ毎にボタン設定を
切り替えるようにしたいのですが、
AutoHotKey.iniに書いたコマンドをグローバル変数に代入して、.ahk側で
参照し実行するというような事は可能でしょうか?

774:773
07/11/25 19:28:23 SP727yv40
書き換えたいのはボタンではなくPOVの設定です。
POV上下::スクロールをカーソルキーにしたりという感じです。
JoystickMouse.ahk内にIfWinActiveを書き連ねるしか無いのでしょうか?

775:名無しさん@お腹いっぱい。
07/11/25 21:57:52 ZcmBxjB40
基本的に一般的な使い方しか出来ないアプリだよ。
そういうマニアックなことには使えない。

776:名無しさん@お腹いっぱい。
07/11/26 07:54:16 CAK4/XjM0
Alt+`をホットキーにできないようですがこれは仕様ですか?
`をIME起動に割り当てているので代わりにAlt+`に`を割り当てたいのですが。

777:名無しさん@お腹いっぱい。
07/11/26 08:13:56 CAK4/XjM0
質問なのですが、トレイアイコンのシングルクリックに、メインウィンドウを
表示する以外のコマンドを割り当てることはできないでしょうか?

778:名無しさん@お腹いっぱい。
07/11/26 08:16:46 0Q60mCj/0
>>776
`はエスケープ文字

779:名無しさん@お腹いっぱい。
07/11/26 13:06:53 fm9sZXc30
>>767
現状keywaitで一つだけしかできないべ

780:名無しさん@お腹いっぱい。
07/11/26 14:19:05 uAmLls5k0
ボタン長押しで連打をやりたいのですが、スマートなやり方が考えられず
長押し解除専用のキーを必要としてしまいます。>>781

キー一本で長押し実現するヒントを教えてください。

781:名無しさん@お腹いっぱい。
07/11/26 14:19:37 uAmLls5k0
Trigger=0
2::
if Trigger =0
Trigger :=1
else if Trigger =1
Trigger :=0
return
1::
sleep,500 ;sleep入れて疑似長押し?
Loop
{
if Trigger =1
{
Trigger :=0
break
}
else
{
keywait,2, t0.25 ;長押し解除キーを.25秒待つ
send,繰り返しキー
}
}
return

782:名無しさん@お腹いっぱい。
07/11/26 15:27:59 iMxJ7Rzr0
>>780
解除するキーを 1 up に割り当てればいいんでね?
適当だけど。

783:名無しさん@お腹いっぱい。
07/11/26 21:21:06 wbN4Z2af0
神様!

どうか私にgogo.dllを使用するwav→mp3エンコードの関数をくださいませ!

784:名無しさん@お腹いっぱい。
07/11/26 21:55:57 /7Fctvyq0
gogo.exeを探し他方が早い気も酢

785:名無しさん@お腹いっぱい。
07/11/26 23:00:08 uAmLls5k0
>>782 2回押さないと止まらないし、確実に差し込めない。
というか、1キーで長押し自体Autohotkeyで無理ですか?

786:名無しさん@お腹いっぱい。
07/11/26 23:37:08 ZTpaeFzk0
>>785
希望と違う動作だったらスマン
Aをリピート

1::
KeyWait,1,U T0.5
If ErrorLevel=1
{
Loop
{
GetKeyState,State,1
If State=U
Break
Send,A
sleep,100
}
}
Return

787:名無しさん@お腹いっぱい。
07/11/26 23:58:44 EJchMc/w0
>>784
まったくそのとおりですねw

run, gogo_8hz.exe [options] inputPCM [outputPCM]

だそうです

788:787
07/11/27 00:17:22 OYLJ5zKh0
さて、デコードはどうすんべ

789:名無しさん@お腹いっぱい。
07/11/27 00:46:17 kvvUYL2J0
LAME.EXEでいいんじゃ

790:名無しさん@お腹いっぱい。
07/11/27 01:34:48 ia6xNpI10
ffmpegでもいいし

791:名無しさん@お腹いっぱい。
07/11/27 08:46:55 YpWIafWr0
>>785
$1::send,繰り返しキー

で、長押ししてれば普通は勝手にキーリピートしてくれないか?
特に制御とかなくてもイベント発生したような。
1 up:: を入れてしまうと解除までノーアクションになるかも知れんが。
リピートさせたいキーは特殊なキーなの?

792:名無しさん@お腹いっぱい。
07/11/28 00:36:00 CPesBzhw0
>>778
亀レスだが、キーラベルをエスケープすると怒られるよ。

793:名無しさん@お腹いっぱい。
07/11/29 02:35:47 urhdV+bi0
Offece2007 ってWinMenuSelectItemの 特殊な仕様のメニューバーに含まれる?

794:名無しさん@お腹いっぱい。
07/11/29 13:57:46 urhdV+bi0
FirefoxもWinMenuSelectItemが運ともスントも言わない。糞だ。

795:名無しさん@お腹いっぱい。
07/11/29 14:40:10 EAGnRBHX0
はいはい。そうだね。

796:名無しさん@お腹いっぱい。
07/11/29 22:54:55 uaNLMd3k0
767です。

お願いですから、誰か教えてくださいぃぃぃ・・・


797:名無しさん@お腹いっぱい。
07/11/29 22:57:50 aduZWmtj0
>>796
何がしたいのか分からない。

798:名無しさん@お腹いっぱい。
07/11/29 23:22:39 dRUo8qbw0
元々キー入力を監視するソフトじゃないか
確かに何がしたいのかわからん
~LButton::
~RButton::
SoundBeep
Return


799:名無しさん@お腹いっぱい。
07/11/29 23:53:16 ZgP+LruG0
英語版Windows XP Pro SP2上でAHKを使用しています。
AHKから英語版秀丸エディタ(Maruo Editor)を同定したいと思い、
以下のようなスクリプトを書きました。

SetTitleMatchMode, 2
#IfWinActive, ahk_class Hidemaru32Class
1::
WinGetTitle, title, A <-- ここが質問
MsgBox %title%
Return

WinGetTitleでアクティブウィンドウを指定すると期待通りにタイトル文字列が
取得できるのですが、タイトル取得モードを中間一致にしているにもかかわらず、
タイトル中の文字列を指定した場合にうまく動作しません。

WinGetTitle, title, Maruo <-- これはうまくいかない

何か理解不足があるのだと思うのですが、どなたか教えていただけませんか。

800:名無しさん@お腹いっぱい。
07/11/30 00:30:29 wmXESGfa0
大文字と小文字は区別されるよ

801:名無しさん@お腹いっぱい。
07/11/30 00:55:37 1wAf3rVe0
英語版まるおは使ったことないのでどういうタイトルがついてるのかよくわからん
まるおのタイトルキャプション見本をあげてくれ

802:799
07/11/30 01:21:26 kqe4GcaD0
>>801

キャプションは以下のとおりです。
(untitled) - Maruo
C:\AUTOEXEC.BAT - Maruo <-- これだけハイフンのまえにスペース2つ
C:\WINDOWS\win.ini (updated) - Maruo

803:799
07/11/30 01:51:52 kqe4GcaD0
本来の問題は解決していないのですが、>>799のスクリプトは単独ならば正常に動作しました。
何か他のスクリプトとコンフリクトしているようなので、もう少し調べてみます。

804:名無しさん@お腹いっぱい。
07/11/30 05:07:18 auk33WG70
SetTitleMatchModeをちゃんと「実行」しろ

805:名無しさん@お腹いっぱい。
07/11/30 06:55:00 t7lB3msY0
Gui,+Resize
Gui,Add,ListView,g_List grid -Hdr -Multi NoSort r32 w512 -Wrap,text

_List:
Loop,Read,%_ReadText%
{
LV_Add("",A_LoopReadLine)
}
LV_ModifyCol()
Gui,Show
Return

ExitApp

ウィンドウ表示後にウィンドウを大きくしても、リストの外側部分が広くなるだけで
リスト部分はリサイズされないんだけど、追随させるにはどうすれば良いのでせう。


806:名無しさん@お腹いっぱい。
07/11/30 22:37:02 xm2XOGBn0
w512で固定してるんだから、Guiがリサイズされたときにそこを変更するように書かないとだめなのでは。

807:名無しさん@お腹いっぱい。
07/11/30 23:52:27 +kb/eKZx0
>>797
右か左クリックが押されるのを待ちたいのです。

808:名無しさん@お腹いっぱい。
07/12/01 00:51:47 Ekk8adlM0
Loopで左右両方のGetKeyStateを監視するとか

809:名無しさん@お腹いっぱい。
07/12/01 01:36:47 qDIhy/Pw0
したいことをはっきり書かなきゃ分からんな。

「待ちたい」のはなぜ?
1) 前処理 → クリックイベント待ち→後処理 の様に連続処理の間に待ち時間がほしい
2) クリックイベントで何らかの処理を走らせたい

1) なら途中に無限ループ(適宜スリープを入れる)タイプ
>>808 の様にする

2) ならクリックイベントの処理を書く
>>798 の様にする

810:名無しさん@お腹いっぱい。
07/12/01 20:28:42 c5xiGZ130
>806
w512を消しても駄目だし、GuiSize:で別の値設定しても駄目なんすよね。
ウィンドウサイズ可変なんてよくありそうな処理だし、
何か方法はあるんだろうと、色々やってみてはいるんだけど。


811:名無しさん@お腹いっぱい。
07/12/01 22:24:15 Ekk8adlM0
GuiSize:
でいいんじゃないの

812:名無しさん@お腹いっぱい。
07/12/01 23:35:35 nbkJkIto0
ウィンドウ可変と言えばコレだろ
URLリンク(www.autohotkey.net)

813:名無しさん@お腹いっぱい。
07/12/02 00:33:46 DHBOHEh30
初心者質問ですみません。uwscで書いたスクリプトをAutoHotkeyに移行したく、
流行らせるページのリファレンスを読んだのですが、
ファイルの特定の行の文字列を置換した文字で上書き、たとえばuwscで
fid = Fopen(InputVar, F_read or F_write1)
Fput(fid, ChgMoj(Fget(fid, line), "hoge","hogehoge"), line)
Fclose(fid)
のような事を行える方法が見つかりません。

Loop, Read, hoge.txt, hoge.txt
{
StringReplace, NewStr, A_LoopReadLine, hoge, hogehoge, All
IfInString, A_LoopReadLine, hoge, FileAppend, %NewStr%`n
}
return
これだと、ファイルの末尾に置換した文字列(行)が書き込まれてしまいます。
NewStrに取得した置換後の文字列を、その行に上書きするには、AutoHotkeyでは
どのように書いたら良いでしょうか。

814:名無しさん@お腹いっぱい。
07/12/02 01:20:29 sHQIZF330
Loop, READ, hoge.txt, temp.txt

とかやって、別ファイルにいったん書き出し、
新しいファイルを元の名前に上書きリネームするとかかな
UWSCも内部的には同じこと支店じゃないかとも思うんだけど

815:名無しさん@お腹いっぱい。
07/12/02 01:31:24 p1dTw0Br0
fputs使ってるんじゃね。

816:名無しさん@お腹いっぱい。
07/12/02 04:21:56 dsrGxldQ0
>>810
消したってそりゃだめだってw
一度設定した値を変えるのはGuicontrolで。

GuiSize:
width:=A_GuiWidth-10
height:=A_GuiHeight-10
GuiControl,Move,list,w%width% h%height%
Return

817:名無しさん@お腹いっぱい。
07/12/02 08:31:32 9WHdCfv90
どちらかでSpace + 文字キーでShiftを送るスクリプトが公開されていますが(SandS.ahk)、
もう少しシンプルなスクリプトはないでしょうか。
当方の環境ではスクリプト実行に少し時間がかかっているようで、
たまにキー入力についてきてくれないことがあるのです。
そこで自分で多少カスタマイズしようと思ったのですが、
複雑で理解できなかったため、もう少しやさしい教材があればと思ったためです。

818:名無しさん@お腹いっぱい。
07/12/02 12:15:45 6uXj/QTc0
そのスクリプト見てないし、
どんだけしょぼいスペックなのか分からないし
超高速タイピング技術の持ち主かもしれない
で、sleepはどうなっている

819:名無しさん@お腹いっぱい。
07/12/02 12:56:02 322RY1hZ0
スクリプトはこちらの、SandS.ahkというものです。
URLリンク(sadat-studio.net)
スペックはXP Pro SP2, Pentium M 1.6GHz, 2GBです。
Sleepはスクリプト中には入っていなかったので、Sleep, -1を入れてみましたが、
あまり変わらないような気がしました。
とりあえずこれで使ってみます。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch