まぁ、ウィンドウ指定でのホットキーはスクリプトロード時に決まるわけで、
autoexec section に記載しないと動かんわな。
何らかのサブルーチン内でウィンドウ探すときに
SetTitleMatchMode を変更して探索するのとは違うしな。
まぁ、言語仕様がアレなんで。
954 :
名無しさん@お腹いっぱい。:2008/08/14(木) 08:35:06 ID:2yMmcCqm0
> ToDo見たら「Full unicode build.」とかもあった。
ktkr
ということは、文字化けと無縁になるのか!?
>>953 >個人的には #if expression と while の実装が大当たり。
こう書かれても、素人の俺には理解できないので、
なんでもいいので使い方サンプルみたいなの晒してもらえませんか?
>>956 ぱっと思いついた範囲で。
Whileは基本的にLoopと似たような動作をするんだけど、
Loopの場合、抜けるまでの回数を数値か変数でしか指定できない。
省略すると無限ループになるけど、抜けるための条件をIfで書かないといけない。
例えばテンキーの0を押している間、aとbを交互に連続して入力するのを
LoopとWhileの場合で書いてみる。
Loopの場合
Loop
{
If GetKeyState("Numpad0")
{
If Mod(A_Index,2) = 1
{
Send, a
}
else
{
Send, b
}
Sleep, 10
}
}
つづき
Whileの場合
While GetKeyState("Numpad0")
{
If Mod(A_Index,2) = 1
{
Send, a
}
else
{
Send, b
}
Sleep, 10
}
Whileの場合のほうが、"テンキーの0が押されている間ループする"
って理解しやすいよね。
さらにつづき
書き忘れちゃったけど、Whileは抜けるための条件を式を使って書ける、
ってのがLoopと違うとこ。
で次は#if expressionね。これも式を指定できるんだけど、
ホットキーの動作をウィンドウごとに切り替えるための#IfWinActive〜と
同じようなもの。これも式を指定できるようになってる。
例としてフルスクリーン時にホットキーを動作させない設定を。
これは実際に俺も使ってる。
#if !CheckActiveWindowFullScreen()
a::b 等のホットキー定義、複数記述可能
#if
今まで1つ1つのホットキー定義にIf入れてたから、スクリプトがスッキリしたよ。
長くなってすまん。
あーもう、急いで書き込むと色々破綻してるな。
>>957 自己レスだけどこれじゃループ抜けないじゃん…
以下修正
Loop
{
If GetKeyState("Numpad0")
{
〜中略〜
}
else
{
Break
}
}
まぁこんな感じにできるってことで、適当に脳内補完してくれ。
なるほど、丁寧な解説ありがとう。
コードがスッキリするとデバッグもしやすくなるし、やる気も出るよね。
そんな俺のコードはifとloopとbreakばっかりだわ
unicode版は常駐量が増えるとかでマルチバイト圏外の人には疎まれそうだが
whileはぜひとも本家の方にもマージしてほしい機能だな
キーボードでIEやJaneをほんの少しスクロールさせたいのですがAHKでできるでしょうか?
少しというのはスクロールバーをドラッグしてちょこっと動かす程度です。
カーソルキーのDownをエミュレートすればいい
>>964 カーソルキーのDownだとスクロール量が多すぎるんです。
スクロールバーをドラッグして数ドット動かすくらいと言うか。
最小単位でスクロールさせたいんです。
SendMessage
WM_VSCROLL
>>966 ググったんですが、DownやPageDownと同じではないでしょうか?
説明がめんどくせー
はやらせるページのホイール関係のところの互換スクロールあたりを読むと良い。
969 :
名無しさん@お腹いっぱい。:2008/08/15(金) 01:49:59 ID:QuXAVy5j0
ThinkPadのTrackPointの真ん中ボタンによるスクロールは対応できませんか?
どうもフックで検出するツールだと拾えないみたいです。
TrackPointのドライバは仕様が変わっていて、
Foreground Windowにスクロールバーが存在すると
その窓にWM_V/HSCROLLメッセージが行く様です。
970 :
名無しさん@お腹いっぱい。:2008/08/15(金) 02:00:56 ID:QuXAVy5j0
そして、真ん中ボタンを押したまま、乳首の傾きの強弱をつけると
WM_VSCROLL
SB_LINEUP 軽く↑
SB_LINEDOWN 軽く↓
SB_PAGEUP 強く↑
SB_PAGEDOWN 強く↓
WM_HSCROLL
SB_LINEUP 軽く←
SB_LINEDOWN 軽く→
SB_PAGEUP 強く←
SB_PAGEDOWN (強く→
のイベントが発生します。(デフォルトの動作らしいです)
>>968 すみません。
どこに互換スクロールのついて書かれているページがあるんでしょうか?
流行らせるページで探したんですが見つかりませんでした。
Down → カーソルの移動(カーソルが最終行付近にいないとスクロールしない)
PageDown → 1ページだか半ページだかの単位でスクロール
WM_MOUSEWHELL、WM_VSCROLL → 2、3行ごとにスクロール
これより細かくスクロールさせる方法はシラネ
>>969 自分も前に試してみたけどよくわからなかった。
OnMessage()では外部のメッセージまでは拾えないみたいだし
DllCall()とかでゴニョゴニョすれば何とかなるのかも知れない。
流行らせるページ管理人氏が ThumbRemapでマウスドライバ弄ってるね
ドライバのライブラリさえあればAHKでもかなりの改造ができるみたいだな。
Aを押したらアクティブウィンドウを最小化、
Shift+Aを押したら直前に最小化したウィンドウを元の大きさに戻す。
というのはどうしたらいいでしょうか?
普通のウィンドウならできるんですが、
最小化時にタスクトレイに入るソフトだと分かりません。
最小化する前にウィンドウサイズを記憶しておいて
Restoreで戻らないならその数値からWinMoveする
このツールって何するものなの?
説明読んでもよくわからにゃいよ
>>975 そうだなぁ、ツールとして考えるよりもパーツとか材料の寄せ集めとして考えると分かりやすいかもしれないな
何をする為の道具かではなく、用意された部品や材料を使って何を作りたいかってことだな
このソフトおもしろい
プログラミング全然知らなくてもリファレンス通りやれば様になるね
Guiで摂氏と華氏を変換するプログラム作ってみた
うまくできた
自信がついた
まだThumbRemapの不具合は直ってない?
タッチパッドから指を離してても
ずっとタッチパッド押されたままと認識する状態が時々ある。
スクリプトにほころびがなくても
他に重い処理を裏でやってたりすると
押しっぱなしになるとかはよくあるよ
Ctrlと数値でブラウザー等を指定の場所並び大きさで
移動させているのですが、此れを各ソフトのパスで
起動時に適応したいのですが、可能なようでしたら
記載方法を教えて頂け無いでしょうか宜しくお願いします。
#NoTrayIcon
^1::WinMove, A, , 40, 100, 1200, 900
^2::WinMove, A, , 0, 90, 1280, 934
^3::WinMove, A, , 0, 58, 1280, 966
^4::ExitApp
#Include Opera MouseGesture.ahk
日本語、日本語
今はソフトを起動してから各キーでウィンドウサイズなどを変えているが、これを
ソフトの置いてあるフォルダで判別して、ソフト起動時に自動的にウィンドウサイズを変えたい
ってことじゃない?
>>982 説明が下手で申し訳御座いません。
>>983 全くその通りです。現状の設定も残しつつ追加記載したいのですが
どうぞ宜しくお願いします。
^1::
Run,"***.exe" ;ソフト起動する
Sleep,500 ;ちょっと待つ
WinMove, A, , 40, 100, 1200, 900 ;サイズ等変える
キーでソフト起動しつつサイズ変える、って方法でいいなら
簡単にだけどこんな感じ?
これでダメなら待ち方変えたりWinMoveでソフト指定したり。
ソフトは別の方法で起動して、
ソフトが起動されるのを監視してサイズ変える、
となると全然違う感じになるかな。
そういうのはわからないや。
>>984 起動を監視して調整するより、次のようにしてみたらどうかな?
起動時に何かしたいときはいつもこんな感じでやってるよ。
1 スクリプト書いたAHKファイルを作る
2 そのアプリのフォルダにブAHKファイルを入れとく
3 AHKのショートカットをデスクトップにでも置く
例
Run,Jane2ch.exe
WinWaitActive,Jane Doe Style
WinMove, A, , 0, 58, 1280, 966
Return
あら。。書いてたらかぶっちゃった。失礼いたしました。
988 :
名無しさん@お腹いっぱい。:2008/08/18(月) 22:40:12 ID:F50J/3C90
Runで起動後にSleepで無く起動完了を検地は出来ないのでしょうか
通常は問題無くても不安定なソフト、(Firefox 3)等が問題に
なりそうです。やはり
>>986氏の方法が安全かもです。
検地したいなら秀吉に頼んでみたら?
>>988 WinWait又はWinWaitActive
埋めた方が良くね?
産め
そうだな、埋め
埋め
梅
埋め
埋め
埋め
埋め
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。