XREA.COM Logo XREA.COM Ad

スクリプト質問スレッド

1管理人 ★:04/09/21 20:01 ID:???
質問が多いので独立させます

状況や実現したいことは出来るだけ具体的に書いてください。

スクリプトがうまく動かないなどの問題の場合、問題のあるスクリプトの内容や
エラーメッセージの内容を併記してください。
81unnamed.ahk:05/04/03 14:39 ID:???
ブラウザの終了を監視し
終了と同時にあるアプリケーションを一緒に終了したいのですが
どうやればいいのでしょうか?
82unnamed.ahk:05/04/03 17:42 ID:???
Process
83unnamed.ahk:05/04/03 17:50 ID:???
ブラウザがMDIかSDIかで監視の方法は変わるし
連動アプリがタスクトレイ収納型かどうかで終了のさせ方も変わる。
要は環境書かなきゃ答えようがない
84unnamed.ahk:05/04/03 19:08 ID:???
>>82
出来ました。
ありがとうございました。
85unnamed.ahk:05/04/09 15:26 ID:???
このソフトは、DirectInputアプリ(ゲーム)にて、
マウスの拡張ボタン(4、5ボタン目)を認識させられますか?
X Wheel NTが仕様上駄目なので、こちらはどうなのでしょうか。
あと、アプリ毎に設定変更も可能でしょうか。
86unnamed.ahk:05/04/09 15:38 ID:uuYWhC6A
色々ためした結果、確証はないけど駄目っぽい気がする。モノにもよるけど。
キーボードはいけるけど、MouseとJoystickはなんか挙動がおかしい感じ。
ホットキーに割り当ててマクロ的な動作させる分には問題ないんだけどね。

他の人フォロー、ツッコミよろ。
87unnamed.ahk:05/04/25 04:30 ID:HxERFtyU
qと入力したときはa,
dqと入力したときはzを出力したい場合、どのように記述すればよいですか?
以下では駄目でした。

$q::
Send,a
Return

$d::
Input, UserInput, V T1 L1 C, {Enter}{Esc}, q
If UserInput = q
Send, {BS}z

Return
88unnamed.ahk:05/04/25 15:42 ID:???
>>87
$がなければ動きましたよ
89unnamed.ahk:05/04/25 20:08 ID:HxERFtyU
>>88 87の例ではそれで出来ますね。
書き込み用にかなり削ったものだったのでそれでも大丈夫だったようです。
もう少し増やした以下の例ではだめでした。実際はもっと多いです。
qと入力したときはso,wと入力したときはko,sと入力したときはka,
dqと入力したときはmya,dwと入力したときはgya,
dsと入力したときはpi,dpと入力したときはwo,を出力したい場合、どのように記述すればよいですか?
以下では駄目でした。

q::
Send,so
Return

w::
Send,ko
Return

s::
Send,ka
Return

d::
Input, UserInput, V T1 L1 C, {Enter}{Esc}, q,w,s,k,o,m,g,y,a,p,i
If UserInput = q
Send, {BS}myo
Else If UserInput = w
Send, {BS}gya
Else If UserInput = s
Send, {BS}pi
Else If UserInput = p
Send, {BS}wo

Return
90unnamed.ahk:05/04/25 22:20 ID:???
>>89
何らかの日本語入力方法のようにみえるなぁ。
窓使いの憂鬱でkeymap使ったほうが良さそうな感じ。
91unnamed.ahk:05/04/26 00:19 ID:ws3lbNbI
窓使いの憂鬱は出先のPCで気軽に使えないというのが気になる。
hishiと組み合わせて目的は達成してるけど、常駐ソフト減らしたいので何とかAutoHotKeyのみで出来ないものか
92unnamed.ahk:05/04/27 13:42 ID:???
#UseHook On
InputLock = 0
!#S::Suspend, On

q::
    if InputLock = 0
        Send,so
    else
        Send,q
Return

w::
    if InputLock = 0
        Send,ko
    else
        Send,w
Return

s::
    if InputLock = 0
        Send,ka
    else
        Send,s
Return

d::
InputLock = 1
Input, UserInput, L1 C, {Esc}, q,w,s,k,o,m,g,y,a,p,i
    If UserInput = q
        Send, myo
    If UserInput = w
        Send, gya
    If UserInput = s
        Send, pi
    If UserInput = p
        Send, wo
InputLock = 0
return

>>89できたぞよ。結構手こずったぜ。これぐらいはAHKで出来るはずだろうと、意地になってしまったよ。
93unnamed.ahk:05/04/27 16:00 ID:???
どうもはじめまして、スクリプト投稿スレの15さんのがバージョンの違いのせいか
動いてくれず、15さんのを参考に同じ動作をするように作ってみたのですが
なかなか動いてくれません。OSはXP SP2でAutoHotKey.iniに直接書いてます。
根本的なとこから間違っているのでしょうか、間違いを指摘してくださいお願いします。

SetTimer,OverWindowCheck,1000

OverWindowCheck:
WinGet,winstatus,MinMax,A
if (winstatus == 0)

WinGetPos,win_x,win_y,win_width,,A

r_limit := 1024 - 35
l_limit := -%win_width% + 100
t_limit := 30
b_limit := 768 - 10

if (%r_limit% <= %win_x%) WinMove, A,, %r_limit% ; 右
if (%l_limit% >= %win_x%) WinMove, A,, %l_limit% ; 左
if (%t_limit% >= %win_y%) WinMove, A,,, %t_limit% ; 上
if (%b_limit% <= %win_y%) WinMove, A,,, %b_limit% ; 下

return
94unnamed.ahk:05/04/27 16:06 ID:???
if ( 式 ) の場合、%〜%のようにしなくても変数展開は行われる。
95unnamed.ahk:05/04/27 16:28 ID:???
うげ、途中で投稿しちまった
なんかよく見ると色々ツッコミ所があるから箇条書きにするか。

1. AutoExcuteブロックがどこまでか分からない。 -> return をSetTImerのあとに入れる
2. SetTimerで常駐させるなら #Persistent を先頭に入れて常駐させることを明示
3. 1と2の結果により、先頭から順にサブルーチンラベルもそのままに実行してスクリプトは終了する
4. If コマンドに引き続き同じ行に真になったときの処理を書くときは、 「,」で区切る
5. If(〜)が真のとき実行されるのは次の1コマンドもしくは1ブロック
 つまり、 「if (winstatus == 0)」の所は真偽判定して結局何もしていない
6. 下4つのIfの所は、x, yそれぞれ1つめの条件が真になれば、
  もう一つは条件判定する必要がないので2,4番目は else if がいい。
7. if ( 式 ) の場合、%〜%のようにしなくても変数展開は行われる。

結論、もうちょっとマニュアルを読んだ方がいい。
96unnamed.ahk:05/04/27 16:33 ID:???
あぁ、まだあるな
8. var := 式 の場合、%〜%のようには基本的にしなくていい。(変数展開が分かってるなら別)
97unnamed.ahk:05/04/27 19:55 ID:???
いきなり4方向じゃなく、まず上下動くようにしようと思います。

SetTimer,OverWindowCheck,2000
return

OverWindowCheck:
WinGet,winstatus,MinMax,A
if(winstatus == 0)
{
WinGetPos,,win_y,,,A

t_limit=30
b_limit=A_ScreenHeight - 10

if(t_limit > win_y) ; 上
{
WinMove, A,,, %t_limit%
}
else if(b_limit < win_y) ; 下
{
WinMove, A,,, %b_limit%
}
}
return

#Persistentはahkじゃなく、iniファイルに書けば必要ないんですよね。
指摘された事を一応考慮したつもりなのですが、動作させるにはあと何が必要でしょうか。
また、投稿スレの>>15さんのが動かないのは正常ですか?
98投稿スレ15:05/04/27 22:36 ID:???
>>97
>また、投稿スレの>>15さんのが動かないのは正常ですか?
Ver.1.0.25で若干仕様変更があったので今のahkバージョンだと動作しないです。
投稿スレにも貼ったけど、修正してマルチモニタで動作確認済みのものを
あぷろだの方に上げたので良かったら、ドゾ
ttp://lukewarm.s101.xrea.com/up/file/023.zip

>#Persistentはahkじゃなく、iniファイルに書けば必要ないんですよね。
ホットキーの指定がない場合はiniでもいるよ、多分
9993,97:05/04/28 03:18 ID:???
>>98
レスありがとうです、スクリプト参考にさせてもらいます。

iniファイルの下の方に書いてやってたのですが
どうやらiniファイルの書く位置を変えて一番上に移したら、あっさり動いてくれました。
ahkにして#Includeで呼び出す場合も、上にコマンドが何も無い場所に置かないと動いてくれませんでした。
それによる他のHotkeyなどのコマンドへの影響は無いのですが、
SetTimerを使う場合は上に置かないと動かないという様な仕様でもあるのでしょうか?
それとも単純に私の書いたスクリプトの書式がおかしいからでしょうか。

あと#Persistentはahk単体で動かした場合以外は無くても動くみたいです
100unnamed.ahk:05/04/28 07:54 ID:???
http://lukewarm.s101.xrea.com/Scripts.htm
スクリプトの起動とAuto-executeセクションの項を嫁

今サイト見直して思ったんだけど上のページ
関数とかの説明追加でAuto-execute後ろのほうに来てるから
確かに見つけにくくなってるね
でも>95でも書いててくれてるんだけど
10189:05/04/28 17:16 ID:rR3b5PsE
>>92
ありがとうございます。確かに出来ました。
キーを増やしていろいろ試してみます。
#UseHook On なんて使ったこと無かったよ
102unnamed.ahk:05/05/17 19:13 ID:xFRY65zw
うーん、lpStringにNull値を設定して上位に渡すにはどうすれば良いのでしょうか
VBだと空変数を渡すと、クラスもタイトルも見ないで Zオーダートップの
コントロールをかえしてくれるんだけど...
ttp://www.geocities.jp/winapi_database/Window/Change/FindWindow.html
ttp://www.geocities.jp/winapi_database/Window/Change/FindWindowEx.html

#7::
WinGet,hParentWnd,ID,A
lpClassName =
lpWindowName =
max1:=VarSetCapacity(lpClassName,0)
max2:=VarSetCapacity(lpWindowName,0)

hChildWnd := DllCall("FindWindowEx","UInt",pwhd,"Uint",0,"Str",lpClassName,"Str",lpWindowName,"UInt")

msgbox,%hChildWnd%
return
103unnamed.ahk:05/05/17 19:43 ID:???
>>102
Intで0を送ればいいんじゃない
104102:05/05/17 20:45 ID:???
>>103
lpClassName = 0 てのはやってみたんだけど、型をIntにするのは気がつかなかった orz
↓で無事取得できました。ありがとうございます。
hChildWnd := DllCall("FindWindowEx","UInt",pwhd,"Uint",0,"Int",0,"Int",0,"UInt")
105unnamed.ahk:05/05/18 13:02 ID:???
Runでプロセスを起動するときの引数に,を使用したいのですが、
,はRunコマンドで引数の区切りをして使用されている為使用できません。
これを回避する方法はありますか?

やりたいこと
#z::Run,D:\ddwin.exe 1,2,3,4,5
106unnamed.ahk:05/05/18 14:20 ID:???
エスケープ
107105:05/05/19 00:39 ID:/Keiu9rM
自己解決

tmpZ_Arg = 1,2,3,4,5
#z::Run,D:\ddwin.exe %tmpZ_Arg%

これでいけました^^
108unnamed.ahk:05/05/19 01:35 ID:???
>>107
まぁそういう方法もあるけど、>106はおまいさんに対する回答だと思うのだが。

具体的に書くと
#z::Run,D:\ddwin.exe 1`,2`,3`,4`,5
109105:05/05/19 10:56 ID:LObLxA/Y
>>108
なんと!!そうだったんですか。気が付きませんでした。
106さんありがとう
110unnamed.ahk:05/05/20 14:53 ID:???
マウスカーソルのアイコンを変えたいんだけど、autohotkeytから出来ます?
特定のアプリ上ででは無く、コントロールパネルの
マウスのプロパティから変えた時と同じように、完全に変えたいんだけど
ちなみにOSはXP
111110:05/05/22 01:30 ID:hYT0tsys
質問は2chのスレで解決しました(マルチじゃないyo)
一応教えてもらったのを貼ります

#1::  SetSystemCursor(LoadCursorFromFile("C:\WINDOWS\Cursors\hoge.cur"),32512)
#2::  SetSystemCursor(LoadCursorFromFile("C:\WINDOWS\Cursors\hoga.cur"),32512)

LoadCursorFromFile(lpFileName)
{ ; カーソルファイルからマウスカーソルを作成する
  return DllCall("LoadCursorFromFile",Str, lpFileName, Int)
}
SetSystemCursor(hCur,id)
{ ;システムカーソルを変更する
  return DllCall("SetSystemCursor", Uint,hCur, Int,id ,Int)
}
112unnamed.ahk:05/06/15 02:10 ID:io2Wdpo6
初めまして

便利なソフトを紹介して下さってありがとうございます。
日本語リファレンスを多読させてもらってます。

一つ疑問なのですが

/* */
msgbox ,test

皆さんの環境ではこのスクリプトを作ったらmsgboxが出てきますか?
私の環境では何も実行されません。
どうも、/*コメントが上手くコンパイルされてない気がします。

私だけでしょうか? ちなみに、XPで秀丸エディターです。
既出ならば、スレ汚しスイマセン
113112:05/06/15 02:19 ID:io2Wdpo6
ついでに

string = abcdefg /* 初期化 */

などのように変数に値を代入し、それについてコメントを記入すると
string の値が abcdefg /* 初期化 */ になってしまいます。
114unnamed.ahk:05/06/15 06:28 ID:0VbSCvr6
/* */については挙動が微妙だから;を使ったほうが無難…
115unnamed.ahk:05/06/16 10:32 ID:???
/* comment */ とかだと確かにおかしくなる。どうやら /* と */ がそれぞれ行頭にないと
(つまり複数行コメンじゃないと)認識くれないみたい。
/*
memo
memomemo
*/
↑のような書き方ならOK
一時的にスキップしたいソースをコメントするときは便利なんだがな
116112:05/06/17 00:36 ID:F9sdiZr2
>>115
その書き方だと大丈夫だとは気づきませんでした〜
117unnamed.ahk:05/06/17 14:10 ID:???
>>115
ほうほう、なるほどね。
118unnamed.ahk:05/06/20 23:42 ID:mN9IbqMI
ローカル関数内から
複数のグローバル変数 string1 〜 string20
にアクセスしたいときは

global string1,string2 ・・・ ,string20

の様に全ての変数名を羅列して定義するしかないのでしょうか

Loop 20
{
global string%a_index%
}

もしくは

Loop 20
{
temp = string%a_index%
global %temp%
}

上記のような定義の仕方ではエラーになります。
これだと配列が無いことが非常に不便な気がします。
119unnamed.ahk:05/06/21 00:34 ID:???
globalをデフォルトにする
120118:05/06/21 21:16 ID:m1a3+TY2
な〜るほど、頭イイ!!
ってか、この場合オレが悪いねw
サンクスです >119
121unnamed.ahk:05/07/06 05:53 ID:JI6Rnr8w
一度表示したコントロールをその部分だけ再描画するにはどうしたらいいのでしょうか?
例えば、2個エディットボックスを配置して、エディット1に入力が行われたら、その内容を
エディット2にも表示させる、と言った場合です。
この場合、
エディット1のgオプションでGUI, Submitを行い
エディット1のvオプションで入力値を取得し
エディット2のtext引数に代入し
エディット2のみを再描画して表示し直したい
のですがGUI, Submitした時点でウインドウ全体が消去されてしまいます。その後、GUI, Show
で再表示すると入力値をエディット2に反映させることはできるのですが、ウインドウを消去
しないでエディット2のみ描画を更新することはできないでしょうか?
122121:05/07/06 07:22 ID:JI6Rnr8w
自レス
GuiControlでなんとかできそうですね・・・
スレ汚し すいません
123unnamed.ahk:05/09/12 18:38 ID:lSWi5zg+
ホットキーを押すたびに上の二つのウィンドウが交互にアクティ
ベイトされるようなスクリプトを組みたいのですが、アクティブ
ウィンドウのすぐ下のウィンドウタイトルをGetする方法が判り
ません。最初、
WinGetTitle, OmoteWin, A
WinGetTitle, 2BanmeWin, [なんでもHITする文字列], ,%OmoteWin%
のようにすればいいのかと思ったんですが、WinGetTitleはワイルド
カードが使えないのですね。アクティブウィンドウをWinMinimumize
してもフォーカスは移動しないみたいだし。
なんか別のやり方があるのですかね?>有識者各位
124unnamed.ahk:05/09/12 21:10 ID:w9uN3O4I
・・・うわわ、ごめん!よく考えたら目的のためにはALT+TAB発行
すれば良いだけだった(大恥)

でも、まあもし判ったら上もヨロシクお願いします。
125unnamed.ahk:05/09/13 02:21 ID:???
>>123
F12::SimpleTaskChange()

SimpleTaskChange()
{
    WinGet, activePId, PId, A
    WinGet, List, List
    Loop, %List%
    {
        hwnd := List%A_Index%
        WinGet, pId, PID, ahk_id %hwnd%
        if(pId == activePId)
            continue
        WinGetClass, className, ahk_id %hwnd%
        ; 除外クラス名の追加は、下行のコメントを外してクラス名を参照すると楽
        ; tooltip, [%className%]
        If className contains Shell_TrayWnd,CTipWnd,Indicator,Progman,tooltip
            continue
        Else
        {
            WinActivate, ahk_id %hwnd%
            break
        }
    }
}
126unnamed.ahk:05/09/13 02:27 ID:???
>>125 に追記
IE統合シェル(2K, XPでデフォルト)使ってるなら除外クラスはもっとありそう。
ReBarとか
127unnamed.ahk:05/09/14 13:49 ID:mNImviZM
回答ありがとうございます・・なるほど、WinGet, 〜, Listで
全ウィンドウのハンドルが取得できるのですね。
他の機能を利用する場合も応用できそうな機能ですね。
128unnamed.ahk:06/01/31 18:52 ID:OL7m/gtM
キーボード自体無効ってできますか?
129unnamed.ahk:06/02/01 18:27 ID:???
特殊なキーでなければ殆どのキーを無効には出来る。
全部といわれると・・・キーボードによるかな。
BlockInputとかじゃマウスも使えなくなるから困るだろうし。
いずれにしてもCtrl+Alt+Delは無効にはならないよ
当たり前だけど。

あと、多分キーボードだけ無効にするコマンドは見あたらないので、
めんどくさいかも。

キーボードの掃除とかの為にキーボード無効にするソフトとか
あるはずだからそっち使った方がいいと思う。
130unnamed.ahk:06/02/01 18:31 ID:???
キーボードだけフックした上で、スクリプトをハングアップさせてキーボードフックをせき止めてやれば、全てのキーボードが働かなくなるかも?
131unnamed.ahk:06/05/14 11:46 ID:qGfRlSJ6
[一]ホットキー[Alt & N]でメモ帳起動
[二]ホットキー[Alt & N(2回押し)]でC:\メモ帳.txtを起動するようにすべく

管理人さんの「Ctrl key double tap」を参考にスクリプト書いてみましたが
これだと[一]は問題ないのですけど
[二]でメモ帳起動とメモ帳.txt起動がダブルで実行されてしまいます。
どうすれば[Alt & N(2回押し)]だけに特定のコマンドを割り当てる事ができるのでしょうか?
WinXP HOME SP2です

LAlt & n::
if A_TickCount < %ctrldouble%
{
IfWinExist, メモ帳.txt
        {
        WinActivate
        }
    else
        {
        Run, Notepad.exe C:\メモ帳.txt
        }
ctrldouble=0
}
else
{
ctrldouble=%A_TickCount%
ctrldouble+=400
IfWinExist,ahk_class Notepad
        {
        WinActivate
        }
    else
        {
        Run, Notepad.exe
        }
}
return
132unnamed.ahk:06/05/14 16:54 ID:???
別の所で聞いてみましたので131は取り消させて頂きます。
スレ汚しすみません。
133unnamed.ahk:06/05/21 18:34 ID:???
SpaceにEnterを、SにSpaceを割り当て
SでEnterの動作にならないようにし、
ホットキーで切り替えというスクリプトを
教えて頂けないでしょうか?
134unnamed.ahk:06/05/21 19:10 ID:???
>>133
Win+1でオンオフ切り替え

#1::
    IfEqual, key, 1
    {
        key = 0
        ToolTip, Off
    }
    Else
    {
        key = 1
        ToolTip, On
    }
    Sleep, 500
    ToolTip
return
$Space::
    IfEqual, key, 1, Send, {Enter}
    Else, Send, {Space}
return
$S::
    IfEqual, key, 1, Send, {Space}
    Else, Send, s
return
135133:06/05/21 19:14 ID:???
>>134
ありがとうございます。
思い通りの動作です。
136unnamed.ahk:06/05/22 00:22 ID:xo0ZTrUo
これから試しに使ってみようと考えている者です。

単純な質問ですみませんが、ファンクション・キーの割り当て
はどのように記述するのでしょうか。 教えてください。
([Ctrl]+[Fn]でログ整理をやりたい)
137unnamed.ahk:06/05/22 00:46 ID:???
>>136
[Fn]ってノートパソコンとかの隅っこに付いてるキーのことを言ってる?
それともF1〜F12キーのことを言ってる?
前者なら不可能。
後者なら例えば下のような感じ。
これはCtrl+F1でアクティブウィンドウを最前面化したり解除したりする場合の表記。
^F1::
    WinGetClass, cls, A
    WinSet, AlwaysOnTop, TOGGLE, ahk_class %cls%
return
138136:06/05/22 16:01 ID:xo0ZTrUo
>>137
レス有難う御座います。m(__)m

説明が足らない様で、すみませんでした。
後者の[F1]〜[F12]の方です。
何種類かのサーバー・フィルターを稼動しているので
キー毎にそれぞれのログ整理が出来そうです。

有難うございます。
139unnamed.ahk:06/06/15 11:19 ID:Baf4XcN+
「タイトルバーをホイールクリック」でそのウインドウを閉じるようにしたいのですが
タイトルバーを指定する方法がわかりません。
ご教授お願いできますでしょうか。
140unnamed.ahk:06/06/15 12:29 ID:???
>>139
この辺はどうか。
ttp://d.hatena.ne.jp/eamat/20060123
141unnamed.ahk:06/06/15 13:17 ID:???
すばやいレスありがとうございます。
見てみます。
142unnamed.ahk:06/06/15 14:59 ID:???
MyScriptsにある
143unnamed.ahk:06/06/17 00:31 ID:???
MyScriptsにあるホイールリダイレクトを使用するとTerapadでマウスホイールが効かなくなるのですが、何か対処法はないでしょうか?
144unnamed.ahk:06/06/17 01:20 ID:???
VxEditorを使う
145unnamed.ahk:06/06/17 01:44 ID:???
#IfWinNotActiveを使う
146unnamed.ahk:06/06/17 07:36 ID:???
>>144-145
ありがとうございます。
ちょっと頑張ってみます
147unnamed.ahk:06/06/17 08:30 ID:???
http://lukewarm.s101.xrea.com/test/read.cgi/bbs/1146398137/11
148y^z:06/06/28 12:49 ID:4gWNrfB6
クリップボード内の式を計算して答えをクリップボードに戻す事は出来ますか?
理想はテキストを選択→ホットキー→計算して→貼り付け…です。
149unnamed.ahk:06/06/28 13:43 ID:???
できる
150unnamed.ahk:06/07/11 20:36 ID:???
全てのウィンドウの最小化と復元を
一つのキーで行うにはどうすればいいでしょうか?
151unnamed.ahk:06/07/11 21:40 ID:???
WinMinimizeAll / WinMinimizeAllUndo
152unnamed.ahk:06/07/11 21:48 ID:???
適当なキーにWIN+Dを割り当てたらOKじゃね?
153unnamed.ahk:06/07/12 08:09 ID:???
>>151
それはもう試してはみたけど
良く分からなかった。

>>152
それは盲点だった。
試してみます。
154153:06/07/12 10:07 ID:???
結局出来なかった。
>>134のと組み合わせて、
$Z::
IfEqual, key, 1, WinMinimizeAll
else, send, z
{
keywait, z
WinMinimizeAllUndo
}
return
ここまでは出来たけど進まない
誰かご教授を!
155unnamed.ahk:06/07/12 15:35 ID:???
アルファベットキーに直接割り当てるのは強引だと思う
修飾キーと組み合わせるか、使わないファンクションあたりでやってみれ
F12::
if (key == 1)
{
    WinMinimizeAll
    key = 1
}
else
{
    WinMinimizeAllUndo
    key = 0
}
あるいは
F12::Send,#d


あと、慣れないうちは行数減らすより分かりやすいコードを書くようにしたほうがいいよ
if (key == 1)
    WinMinimizeAll
else
    send, z

; そうすると↓以下を { }でくくってる意味がないことがわかるでしょ
{
    keywait, z
    WinMinimizeAllUndo
}
156unnamed.ahk:06/07/23 04:09 ID:/sjOsA3M
AutoHotkeyを使い始めてまだ1週間の初心者です。
管理人さんのScript「トレイアイコン一覧からの操作」を
大変便利に使わせていただいてます。
私はタスクトレイのシングルクリックで大半の用が足りるので、
シングルクリックを「Enter」キーに割り当てる程度のScriptの改造は
なんとか自分でできました。
が、ここで欲が出てきまして。
ふだん白い背景に黒い文字のエディタを最大化して作業しているので、
トレイアイコンの一覧が、白地に黒い文字だと見づらいときがあるのです。
リスト一覧を「黒い背景に白い文字」にする方法はないでしょうか。
Scriptの解説を読んだのですが、私にはまだ難しすぎて半分も理解できません。
どのように改造すればいいのか、アドバイスいただければ幸いです。
157unnamed.ahk:06/07/23 09:33 ID:???
Gui,Color
158156:06/07/23 10:57 ID:???
>157
ありがとうございます!
GUIの説明ページの見るべき場所がわかりました。
ついでにフォント名も変えたりして。

Gui,Color,1D3A3A,1D3A3A
Gui,Font,CFFFFFF s11,ARISAKA

に変更したら、ダークグリーンに白い文字のARISAKAになって、
見やすくなりました。
159unnamed.ahk:06/08/01 21:56 ID:p7wxrFMM
GuiのTabについてです
Gui,Addで追加後に、既存のタブの編集(タブ名の変更や削除)は可能なのでしょうか。

GuiControlの説明に、
>変更によってタブシートの数が減る場合、
とあるので削除は可能な感じはするのですが、設定項目がわかりません。
160unnamed.ahk:06/08/26 00:15 ID:lmyq5sls
このソフトウェアでマウスのサイドボタン(2つ)に
キーボードのキーをリマップすることができますか?
161unnamed.ahk:06/08/26 00:21 ID:???
>>160
できる
XButton1とXButton2に割り当てればおk
162unnamed.ahk:06/08/26 00:25 ID:lmyq5sls
>>161
ありがとうございます。
試してみます。
163unnamed.ahk:06/08/27 04:30 ID:XXQZjrJQ
ひとつのキーに、キーの押し下げ、押し下げ解除を割り付けたいのですがうまくいきません。
下のスクリプトだと押し下げることはできても、押し下げ解除が機能しません。

上手に押し下げ解除する方法はないでしょうか?

IfWinActive,ahk_class TTeraPadMainForm
{    
F11::
    GetKeyState, state, Shift
    if state = U
    Send,{Shift Down}

    else if state =D
    Send,{Shift Up}
return
}
exit
164unnamed.ahk:06/08/27 10:35 ID:???
コードから目的が読めない。何がやりたいか書いて
そのコードだと、↓のような動作になってる。
F11押下→Shift押し下げ / F11+Shift押下→Shift押し上げ

あと、IfWinActiveの使い方がおかしい。
判定文をホットキーの外に出したいなら #IfWinActive使わないと
165163.ahk:06/08/27 22:57 ID:???
>>164
レスありがとうございます。

やりたいのはスレイプニルのナビゲーションロックの改良です。
ようするに、検索結果等から、連続して新タブでページを開く機能の改良です。

上記を実行するためには、「ナビゲーションロック + shift押し下げ」
でリンクをクリックしなければなりません。

そこで F11 にナビゲーションロックを割り当て、
~F11:: から AHK でシフト押し下げと押し上げをきりかえれたらいいな、と思ったしだいです。
166unnamed.ahk:06/08/27 23:21 ID:???
スレイプニルなら、設定でナビゲートロック出来るぞ。
オプション>検索エンジンのとこ見てみ。右の方にナビゲートロックのチェックボックスあるで。
スレ違いスマソ
167unnamed.ahk:06/09/10 13:13 ID:Gs//q9kc
キーボードのzを押したらaとiがまったく同時に入力される(押される)ようにするには
どうすればいいですか
$b::send,{a}{i}とやっても出来ません、教えてください
168unnamed.ahk:06/09/11 18:40 ID:???
全くの同時なんてあり得ないだろうけど、Aを押し下げてからAを離す前にIを押せばいいんじゃないの
169unnamed.ahk:06/09/11 20:09 ID:KM/zI1NM
>>168
ありがとう
まったく同時に押したいからSetKeyDelay使ってこう書いてみたけど同時になってない
z::
send,a
SetKeyDelay, -1
send,i
return

-1はまったく間なしに実行と書いてあるから同時に行くと思ったんだけどなあ
さあどうしよう
170unnamed.ahk:06/09/11 23:10 ID:???
Sendの説明をよく読め
171unnamed.ahk:06/09/11 23:50 ID:???
完全同期でセーノで押してセーノで離さないといかんわけじゃなくて
両方のキーを同時に押されてる期間があればいいんだろ?
人間が手でキー叩くよりは誤差のない範囲で同時押しになると思うが

send,{a down}{i down}{a up}{i up}
172167:06/09/12 20:23 ID:W+XoG+FM
>>171
それも前試したけどやっぱりaが先に入るからだめだった
完全同時おしじゃないとだめだからやはり無理か
173unnamed.ahk:06/09/13 08:50 ID:???
完全同時押しなんて操作普通有り得ないだろ
一体何をしてるんだ?
174167:2006/09/16(土) 00:55:39
無理っぽい?
175unnamed.ahk:2006/09/16(土) 05:58:44
>>1
>状況や実現したいことは出来るだけ具体的に書いてください。
176見習い:2006/10/05(木) 07:01:59
あるテキストを入力したら、その内容を見やすく切り分けるというスクリプトを作っています。
自作関数"OK"をまとめる方法はないでしょうか。
入力するテキストは
アオキ|75|85
イヅマ|95|75
..
のような感じです。のちのちは20個ほど処理したいのですが、よろしくお願いします。
177見習い:2006/10/05(木) 07:03:12
Gui, Add, Edit, v1Name gOK W200 Section -Wrap
Gui, Add, Edit, v1Kokugo W30 ys+0 x+5 ReadOnly
Gui, Add, Edit, v1Sansu W30 ys+0 x+5 ReadOnly
Gui, Add, Edit, v2Name gOK W200 ys+20 xs+0 -Wrap
Gui, Add, Edit, v2Kokugo W30 ys+20 x+5 ReadOnly
Gui, Add, Edit, v2Sansu W30 ys+20 x+5 ReadOnly
Gui, Show
return

OK:
GUI, Submit, NoHide
StringSplit, Array, 1Name, |
IfInString, 1Name, |
{
GuiControl, , 1Kokugo, %Array2%
GuiControl, , 1Sansu , %Array3%
}
StringSplit, Array, 2Name, |
IfInString, 2Name, |
{
GuiControl, , 2Kokugo, %Array2%
GuiControl, , 2Sansu , %Array3%
}
return
178見習い:2006/10/07(土) 12:58:04
自己解決しました。
OK:
GUI, Submit, NoHide
Loop,2
{
x=%A_Index%
StringSplit, Array, %x%Name, |
IfInString, %x%Name, |
{
GuiControl, , %x%Number, %Array2%
GuiControl, , %x%Kokugo, %Array3%
GuiControl, , %x%Sansu , %Array4%
}
}
で出来ました。お騒がせしました。
179初心者1:2006/12/03(日) 11:43:28
先日、このソフトダウンロードしてみたんだけど、
無知な俺にはムズカシイ('A`)

一応、色々勉強しようかと思ってるんだが、

このソフトで、
「画面の1部分(常にある1箇所、1ドットでもおk)の色が変化(ある決まった色→ある決まった色)したら、キーを押す(ある決まったキー)」
みたいのは可能でしょうかね?

可能じゃなさそうなら、勉強するだけ無駄かもしれないから('A`)
180unnamed.ahk:2006/12/03(日) 18:45:09
http://lukewarm.s101.xrea.com/Examples.html
181179:2006/12/05(火) 17:23:31
↑ありがとです(´;ω;`)b
できるっぽいですね。

では、ちょっと色々試してみて、頑張ってみようと思います。

わからないことあったら、またお世話になると思いますがw
85KB
名前: E-mail:
ファイル:
0ch BBS 2005-10-08