AutoHotkey スレッド part5at SOFTWARE
AutoHotkey スレッド part5 - 暇つぶし2ch159:名無しさん@お腹いっぱい。
08/02/25 00:59:30 CkSp6l1c0
>>158
わーい、あっさり釣れちゃったw

160:名無しさん@お腹いっぱい。
08/02/25 01:24:59 CR8nTVZC0
面白いと思ったんだろうな…

161:名無しさん@お腹いっぱい。
08/02/25 01:37:56 cH268g130
すぐ弄れなくなって逆に不便

162:名無しさん@お腹いっぱい。
08/02/25 02:12:01 u9rJ9FnG0
わがままな私を許したまえ・・・・

Notepad++もダメですた。。。
立ち上げるたびにいちいちAutoHotKeyモードにマウスでセットしないといけないし、
なんか使いにくい・・ス・・・。
Terapadでキーワード強調や自動インデント利いてくれれば最高なんだけど
皆さんがAHKスクリプトを書くのに愛用しているエディタとか、紹介して下さったりは・・・しないですよねぇ・・・?

163:名無しさん@お腹いっぱい。
08/02/25 02:37:33 c6xAHJsD0
xyzzyでahk-mode使って書いてるよ
>>152でも書いたけど、強調だけじゃなくてインデントや補完もしてくれるよ
けど、インデントがおかしくなったりもするんで、
試してないけどmeadow(Emacs)もどうぞ
xyzzyに移植した人がベースにしたのよりバージョンが進んでるから、
もしかしたら解決してるかも

もし導入するなら、wikiがあるから読んでみて

164:名無しさん@お腹いっぱい。
08/02/25 03:28:17 m5sVBzv/0
notepad++使ったことないけど
普通ファイル拡張子に対応してモード切りかえてくれるみたいな
機能あるんじゃないの?
そのくらい自力で設定できないとvimもemacsも使えないと思うけど。

165:名無しさん@お腹いっぱい。
08/02/25 10:56:15 YFbRMEPB0
>>162
その嫌味ったらしい文章いい加減にせーよ
もし自覚無しに今までのような文を書いていたとするなら正直、性格に大きな問題があると思う
わざとやってるならもうシラネ

166:名無しさん@お腹いっぱい。
08/02/25 11:10:53 6u3azxFT0
>>162
自分で道を切り開く気概がないのなら、おとなしく金を出して秀丸かEmのシェア版をつかっとけ。
気概があるのなら>>131のスクリプトをTeraPad用に書き換えてうぷしたら結構な人数から感謝されると思うが。

167:名無しさん@お腹いっぱい。
08/02/25 11:27:24 Ed9FXoJZ0
ひどいのが湧いてるんだな

168:名無しさん@お腹いっぱい。
08/02/25 12:36:04 cV8w8sra0
だから揶揄したつもりだったのに

169:名無しさん@お腹いっぱい。
08/02/25 14:30:41 3LV0fXQU0
エディタの話題自体は悪くないと思うし、他の人の参考になるかもしれんから一応レスするが
いいかげんクレクレの姿勢はやめてんか('A`)

今見てみたけど、サクラや寺の.kwdファイルって1行1ワードの単純表記じゃん。
これだったら Extras/Editors/Syntax/*.txt をほとんど無加工でkwd転用できんじゃねーの?
(寺には任意文字列の強調指定機能自体は存在しない
が、プリセット済言語のキーワード編集は可能なので他の言語枠潰せばOK)

入力補完の形式も同じ、サクラや秀丸ならそのままシンタックスファイル突っ込めば補完してくれる。
サクラや寺なら補完タンも使える。
インデントは、C言語風のインデントとか適当に指定しておけばそれっぽい動作になる。(寺でのやり方は知らん)

以上、頼むから人に聞く前にちっとは調べてくれよ。

170:名無しさん@お腹いっぱい。
08/02/25 15:50:36 I5MAoWVB0
しかしほんとに AutoHotKey 使えてるんだろうか、この人。

171:名無しさん@お腹いっぱい。
08/02/25 16:13:03 Ed9FXoJZ0
>>170がいいこと言った

172:名無しさん@お腹いっぱい。
08/02/25 18:01:24 hdl/wsYC0
Janeをバックグラウンドで操作できないって人
AIRAってソフト使うといいよ.NET製だけど
Jane専用のAIRA Jってのもある

173:名無しさん@お腹いっぱい。
08/02/26 07:16:30 mku3zxtt0
質問です。
Menu,m,show
でメニュー出ている間、そのスクリプトは完全に停止してるんですよね。
それが嫌なら別スクリプトでメニュー出せってことですよね。

174:名無しさん@お腹いっぱい。
08/02/28 02:18:21 YvTJFwHG0
詳しい方、教えてください。
ジョイスティックの接続確認をしたく、以下のようなスクリプトを書いてみました。

1:: Msgbox, % GetKeyState("JoyName")

しかしこのスクリプトではジョイスティック抜去後もジョイスティック名が返ってしまいます。
接続前、あるいはスクリプト再起動後は(期待通りに)ブランクとなります。
しかし最終的には常駐スクリプト内のタイマーで接続確認をしたいので
できればスクリプトの再起動は行いたくないのですが,
他によい方法はないものでしょうか。

175:名無しさん@お腹いっぱい。
08/02/28 14:43:16 PhP4W87s0
「TPanel」というコントロール上のテキストを取得したいのですが、

ControlGetText,var,TPanel,A

とやっても、ErrorLevelは0で成功していますが、テキストは取得できませんでした。
何か他に方法はないでしょうか?


176:名無しさん@お腹いっぱい。
08/02/28 14:43:26 7hkAKIl30
根本解決じゃないけど、ステート取得部分だけを別スクリプトにするとか。

177:名無しさん@お腹いっぱい。
08/02/28 17:40:04 EaHOYdX80
>>174
#persistent
settimer, timer
maxNumDev:=DllCall("winmm\joyGetNumDevs") ;サポートするジョイスティックのデバイス数

timer:
AllJoyNames=
loop, %maxNumDev%{
JoyName=%a_index%JoyName
AllJoyNames:=AllJoyNames . a_index . GetKeyState(JoyName) . "`n"
DllCall("winmm\joyReleaseCapture", UINT, a_index-1) ;キャプチャをリリースするジョイスティックのIDを指定
}
tooltip, %AllJoyNames%
return

接続されるジョイスティックの数わかってたらmaxNumDevは決めうちした方が良いかも

178:名無しさん@お腹いっぱい。
08/02/28 18:40:48 EaHOYdX80
>>174
キャプチャリリースしたくない場合は
#persistent
VarSetCapacity(ji, 16, 0)
joyNum=1 ;何個目のジョイスティックをチェックするか指定
settimer, timer
return

timer:
mmresult := DllCall("winmm\joyGetPos", UInt, joyNum-1, str, ji) ;ここで指定するジョイスティックのIDは0から始まるので注意
KeyName=%joyNum%JoyName
JoyName:=GetKeyState(KeyName)
JoyName:=(!mmresult) ? JoyName:"" ;mmresultが0の場合No Errorなので、それで判断する。
tooltip, mmresult=%mmresult% JoyName=%JoyName%
return

見たいに自分で名前管理するしかないかも。

179:名無しさん@お腹いっぱい。
08/02/28 18:44:19 EaHOYdX80
補足:>>177-178は2kでしかテストしてないので他だとどうなるかわからん。

180:名無しさん@お腹いっぱい。
08/02/29 12:38:25 9/5fEks90
タスクトレイのAHKのアイコンからバルーンヘルプ出してくれる機能って無いですか?

181:名無しさん@お腹いっぱい。
08/02/29 14:19:22 mWVpkLJp0
xyzzyというエディタで、右クリック+下方向ドラッグのマウスジェスチャーをしたとき、
Ctrl+w を送信して当該タブを閉じたいのですが、どうすればいいでしょうか?

182:名無しさん@お腹いっぱい。
08/02/29 14:49:23 amtFt0EP0
RButtonでMouseGetPosとって
放されたときとの差分が閾値を越えたらSend

183:名無しさん@お腹いっぱい。
08/02/29 16:48:46 mWVpkLJp0
>>182
ありがとうございます。
頑張って作ってみたのですが、うまく動作しません><

~RButton::
WinGetTitle, Title, A
StringGetPos, pos, Title, xyzzy
if(pos = 0) {
MouseGetPos, x1, y1
Loop {
GetKeyState, stat, RButton
if(stat = "U") {
MouseGetPos, x2, y2
dy := y2 - y1
if dy > 20
send, ^w
Break
}
}
}
return

184:名無しさん@お腹いっぱい。
08/02/29 20:12:38 u6+juc6r0
馬鹿みたいな質問で悪いんだけど、
a:: send,F5
ってしたい場合、どうすればファンクションキーのF5にできるの?

185:名無しさん@お腹いっぱい。
08/02/29 20:16:08 CbNqfYyN0
>>184
a:: send,{F5}

186:名無しさん@お腹いっぱい。
08/03/01 00:26:25 EIt1A+310
JANE擬似バックグラウンド操作悪足掻き

#Persistent
#WinActivateForce
SetTimer,OnTimer,90000
return
OnTimer:
IfWinActive,Jane
{
BlockInput,On
ControlSend,,{F5}
BlockInput,Off
}
Else
{
BlockInput,On
WinGet,ID,,A
WinSet,AlwaysOnTop,ON,ahk_id %ID%
WinActivate,Jane
ControlSend,,{F5},Jane
WinActivate,ahk_id %ID%
WinSet,AlwaysOnTop,OFF,ahk_id %ID%
BlockInput,Off
}
return

自分なりに頑張ってみたけどいい方法あったら情報求む!

187:名無しさん@お腹いっぱい。
08/03/01 00:34:59 ZNinU2520
>>185
ありがとうございます

188:名無しさん@お腹いっぱい。
08/03/01 07:53:26 YXKCq/m60
janeバックグラウンドでもControlSendRawで動いたけどなあ
俺だけか

189:名無しさん@お腹いっぱい。
08/03/01 14:14:15 EIt1A+310
動きません

190:名無しさん@お腹いっぱい。
08/03/01 15:18:39 +yMSyrKJ0
JaneDoe Viewでしか確認してないが、PostMessageでちゃんと操作できる。
タスクトレイに入ってるいる場合は、DetectHiddenWindows, Onで。
ウィンドウタイトルは適当に変更。

PostMessage, 273, 58, 0, , JaneDoe ; タブを閉じる
PostMessage, 273, 82, 0, , JaneDoe ; スレ新着チェック
PostMessage, 273, 29, 0, , JaneDoe ; スレ一覧更新
PostMessage, 273, 81, 0, , JaneDoe ; 新着までスクロール
PostMessage, 273, 133, 0, , JaneDoe ; 更新チェック
PostMessage, 273, 205, 0, , JaneDoe ; 次のタブ
PostMessage, 273, 206, 0, , JaneDoe ; 前のタブ

191:名無しさん@お腹いっぱい。
08/03/01 15:23:16 +yMSyrKJ0
追記。
メニューは表示しておかないとダメだった。

192:名無しさん@お腹いっぱい。
08/03/01 17:44:24 EIt1A+310
>>190
おお。
これは凄いViewで非アクディブ時に動作した
メニューのコマンドIDの調べ方が見つからなかったから
教えてもらった操作以外できない無能な自分

193:名無しさん@お腹いっぱい。
08/03/01 19:33:31 EIt1A+310
jane styleではこの技使えないっぽいね
コマンドIDがない?

194:名無しさん@お腹いっぱい。
08/03/01 20:03:02 MsKw54Sp0
コマンドIDが違うんだろ。

195:名無しさん@お腹いっぱい。
08/03/01 20:07:41 EIt1A+310
窓コンなど使ったんだけど調べることができなかった
どういうふうに調べたらいいんだい?

196:名無しさん@お腹いっぱい。
08/03/01 20:30:28 4ZLR0WrH0
StyleはViewと違うコンポーネント使ってるから無理だってさ

197:名無しさん@お腹いっぱい。
08/03/01 20:31:51 vZzloCuJ0
でもいい加減Jane以外のブラウザ出てきても良いと思うんだがなぁ

198:名無しさん@お腹いっぱい。
08/03/01 20:47:06 EIt1A+310
>>196
thx。無理なのか残念

199:名無しさん@お腹いっぱい。
08/03/01 21:50:09 ymHLVwiU0
生JANEでもむりぽ

200:名無しさん@お腹いっぱい。
08/03/02 20:11:12 p3zuqVec0
ControlGetText,dat,TMemo1,Jane Doe Style
IfInString,dat,dat落ち
{
ControlSend,,^w,Jane Doe Style
}
ControlSend,,^r,Jane Doe Style

201:名無しさん@お腹いっぱい。
08/03/02 21:16:36 noZ5oKoh0
ある非アクティブなウィンドウを左クリックでアクティブにした瞬間の
カーソル位置を取得したいのですが、何か方法ありませんでしょうか?

#IfWinActive ahk_class xxxx
Lbutton::MouseGetPos,Xpos,Ypos
return

これだと一度アクティブにしてからクリックしないと取れないんですよね…

202:名無しさん@お腹いっぱい。
08/03/02 23:28:34 +5/E1A/w0
~Lbutton::
MouseGetPos,Xpos,Ypos
IfWinActive, ahk_class xxxx
{
msgbox,x=%xpos% y=%ypos%
}
return

203:名無しさん@お腹いっぱい。
08/03/03 17:33:36 RiQhmL4t0
>>202 おお ありがとうございますっ!

204:201、203
08/03/03 18:55:40 RiQhmL4t0
すみません、もうひとつついでに質問させてくださいー
非アクティブなウィンドウを左クリックしてアクティブにした時、
左ボタンを押した瞬間(ボタンを離す前)のウィンドウの相対位置を取れないものでしょうか?
もしくは「ドラッグし始めの座標」とか…

ボタンを押し込んだ場所から多少離れた場所にドラッグしてボタンを離しても、
ボタンを押し込んだ場所をクリックした事にする・・・という感じのスクリプトを組もうと思ってまして、
その際ウィンドウバー部分は除外する、という風にしたいのです。

205:名無しさん@お腹いっぱい。
08/03/03 19:34:27 ar9/AEtf0
いまいち文意が取れない

206:名無しさん@お腹いっぱい。
08/03/03 20:02:02 VWTaDQFw0
~Lbutton up:: でもう一度MouseGetPosして計算するなり、MouseClickでポジション戻してやるなり
すればいいんじゃね?

207:名無しさん@お腹いっぱい。
08/03/03 20:15:43 RiQhmL4t0
>>205
スンマセン

~Lbutton::
MouseGetPos,XposA,YposA
return
#IfWinActive ahk_class xxxx
{
  ~Lbutton up::
    MouseGetPos,XposB,YposB
    if ( Abs(XposA-XposB) <= 100 ) && ( Abs(YposA-YposB) <= 100 )
    {
      MouseClick,Left,XposA,YposA,,0
;      Msgbox 0,,IN A1=%XposA%,%YposA% B1=%XposB%,%YposB%
    }
    else
    {
;      Msgbox 0,,B-OUT A=%XposA%,%YposA% B=%XposB%,%YposB%
    }
  return
}

こんな感じでボタンを押しこんだ場所と離す場所の差分を取って
許容範囲内だったら押し込んだ場所をシングルクリックさせます。
しかしその際、非アクティブのウィンドウ(class xxxx)を左クリックでアクティブ化すると
XposA・YposAで取れる座標がスクリーン左上からの絶対座標になってしまって…
このXposA・YposAをウィンドウ(class xxxx)の相対座標値で取れませんでしょうか?

現在はCoordMode,Mouse,Screenで絶対座標値のみにして処理するようにしてるんですが、
これだとウィンドウ内の特定位置を除外、という風に出来ないのでどうにかならないものかと…

208:名無しさん@お腹いっぱい。
08/03/03 21:08:19 T5eoaUjL0
ちょっとごめんね
ウインドウのペイン分割のスプリッタてあるじゃない
あれをキーボードで自由に動かすってのはAHKでできるのかな?
スプリッタのコントロール指定してメッセージ?送ればいけるもんなのかな

209:名無しさん@お腹いっぱい。
08/03/04 12:57:52 8GxbdjTU0
すいません。
AutoHotkeyを流行らせるページ でまだまだ勉強中ですが、
MiddleClickのSingleClick、DoubleClick、TripleClickで動作を変えたいのですが、
方法がわかりません。
ヒントで良いので何か助言いただけないでしょうか?

ちなみに現状はSingleのみ変更できてる状況で
#IfWinActive ahk_class hoge
{
MButton::F1
}


210:名無しさん@お腹いっぱい。
08/03/04 13:36:43 aEuZxla60
つ 多重クリック関数サンプル
URLリンク(d.hatena.ne.jp)

211:209
08/03/04 14:59:06 8GxbdjTU0
>>210
うわ。そのままですね。
ありがとうございました。
思い通りの動作ができました。


212:名無しさん@お腹いっぱい。
08/03/05 09:24:33 b/T8K1QR0
以下のコマンドで空ディレクトリが削除できるはずなのですが、何故かできません。
FileRemoveDir, ディレクトリ名, 0
別プロセスがひっかかってる可能性を考慮して、ログオンおよび再起動直後にもやってみましたが、
やはりダメでした。いったい何が問題なのか、ご意見下さい。

213:名無しさん@お腹いっぱい。
08/03/05 09:39:20 T67eAJgT0
ControlSendでSendMode Playのように送ることはできないのでしょうか?

214:名無しさん@お腹いっぱい。
08/03/05 10:27:41 plxDEGkd0
>>212
何から実行してる?
ファイラーからならそのファイラーが作業ディルとしてつかんでたり
AHKに作業DIRとして送られてるかもよ

215:名無しさん@お腹いっぱい。
08/03/05 11:03:28 pPxF/FYA0
対象フォルダが日本語でダメ文字で引っかかってるとかってオチじゃないよな?
もしくは制限ユーザーログオンで削除権のないフォルダ消そうとしてるとか

216:212
08/03/05 11:39:38 NmUtjMzI0
"FileRemoveDir, ディレクトリ名, 1"とすると削除できることが分かりました。
どうもディレクトリ内のファイル/サブディレクトリの有無の判断ができていないようです。
なのでそれを明示的に判断できればいいと思うのですが、どうやればいいのか。。。

>>214
消去したいディレクトリは絶対パスで与えています。
また上述のように、無条件削除の場合は実行可能でした。
なのでパス指定や作業ディレクトリの件は問題ないと思うのですが。
>>215
アカウントは管理者権限です。
消去したいディレクトリは英数字のみでスペースは含まれていませんが、ピリオドが入っています。
しかし上述のように無条件削除の場合は実行可能ですので、
AHKはディレクトリとして判断していると思います。

217:212
08/03/05 11:52:07 NmUtjMzI0
>>216
FileRemoveDir, ディレクトリ名, 0
Msgbox, %ErrorLevel%
とすると、エラーレベルは1が返ってくるので、やはり内容物の判断ができていないようです。

218:名無しさん@お腹いっぱい。
08/03/05 13:08:14 UFI/YkYK0
うちではちゃんと動作するけどなぁ

219:名無しさん@お腹いっぱい。
08/03/05 13:35:00 NmUtjMzI0
212です。解決しました。
実はスクリプトの上流で、自分自身をSetWorkingDirしており、それがロックしていました。
複雑なスクリプトではないのですが、ディレクトリ内ファイルのLoopに慣れておらず見落としていました。
大変おさわがせしました。
ありがとうございました。

220:名無しさん@お腹いっぱい。
08/03/05 18:01:56 8AGRNr8B0
> スクリプトの上流で
もうね、あほk(ry

221:名無しさん@お腹いっぱい。
08/03/06 00:46:00 u1Cz17qHO
PostMessageの引数msg、wparam、lparamの値はどう調べて設定すればいいのでしょうか?

このスレのログを見ましたが、さっぱり分かりません。

222:名無しさん@お腹いっぱい。
08/03/06 01:03:44 QqXQZBLy0
URLリンク(technet.microsoft.com)
なんかMSのサイトに載ってた

223:名無しさん@お腹いっぱい。
08/03/06 01:27:38 Xmj7hVZD0
>>221
流行らせるページのリファレンス見れ、参考になりそうなサイトのリンクもある

224:名無しさん@お腹いっぱい。
08/03/06 01:35:25 xNYWdmgs0
IntelのGraphics Controllerの明るさとかのスライドバーを操作したいんだけど
矢印キーだと1づつしか動かせないしPgDnは移動しすぎだしで10刻みでやりたいんだけど
Loop:10とかやってみると妙にゆっくりしてるし
横の数値をControlGetTextしてポッチの位置を予想してMouseClickDragさせると
キー操作より早いけどなんかしっくりこない

225:名無しさん@お腹いっぱい。
08/03/06 08:54:13 BV4oMbN/0
ahkのexeを元のテキストファイルに戻すにはどうしたらいいですか?


226:名無しさん@お腹いっぱい。
08/03/06 12:04:27 lRZgq2Fj0
>>223
それでもわからないです。

アクティブでないソフトにキー連打を投げようと思っているのですが、
とりあえず、1つ投げようと思い、
PostMessage,0x0100,52,0, ,ok.txt - メモ帳 ;0x0100 = WM_KEYDOWN 52 = Rキー

こう書きましたが、動作しませんでした。

どうすればできるでしょうか?

227:名無しさん@お腹いっぱい。
08/03/06 16:35:44 xNYWdmgs0
>>225
公式にあるますよ
Other DownloadsのとこのScript Decompiler

228:名無しさん@お腹いっぱい。
08/03/06 17:22:40 BV4oMbN/0
>>227
ありがとうございます、そのものずばりがありましたね。

229:名無しさん@お腹いっぱい。
08/03/08 00:04:58 xH0DTZtbO
Send,{a DOWN}
Sleep,2000
Send,{a UP}
こう書いたのですが、aが押されません。
どうすればできるでしょうか?

230:名無しさん@お腹いっぱい。
08/03/08 00:56:43 DtPLQhIDP
Send,a

231:名無しさん@お腹いっぱい。
08/03/08 01:10:49 vkiW+A4s0
マウスカーソル直下のクラスにキーを送るには何を使えば良いんですか?

232:名無しさん@お腹いっぱい。
08/03/08 03:52:22 C49QZ/eM0
まずマウスカーソル直下のクラスを取得して、その取得したクラスに向けてキー入力を送信すれば良いんじゃないでしょうか。

233:名無しさん@お腹いっぱい。
08/03/08 07:37:52 xH0DTZtbO
>>230
あー、いや、押しっぱなしにしたいんです

234:名無しさん@お腹いっぱい。
08/03/08 07:42:01 DtPLQhIDP
何のために?
押しっぱなしにしてもキーリピートは発生しないから一回押下するのと変わらないはずだよね?

235:名無しさん@お腹いっぱい。
08/03/08 08:11:16 xH0DTZtbO
>>234
キーリピート発生するものだと・・・
じゃあ高速でa連打してるようにするしかないか。

ただ単にShift+a-zを楽にしたかったのですが、諦めます。

236:名無しさん@お腹いっぱい。
08/03/08 09:35:30 1dCsOj/k0
やりたいのはキャプスロックなの?

237:名無しさん@お腹いっぱい。
08/03/08 09:46:12 gdlcsZFD0
どなたか>>226をお願いします。

238:名無しさん@お腹いっぱい。
08/03/08 16:32:59 sRcY2mlL0
>>237
メモ帳にRなんか連打して何がしたいんだ
そもそもRなんてショートカットキーあるか
動かないのもしょうがないだろ
テキスト入力したいならコマンドが違う

239:名無しさん@お腹いっぱい。
08/03/08 17:15:19 fACAe+Ks0
>>238
なにがしたいんだって、それは練習作業の「たとえば」の部分だろ。
おまえはツッコミ処が違う。

ただ、>>237みたいに、初回に書き込んだ後、なにも経過を書かず、
アンカーだけで督促するようなゆとりには、アドバイスなんかしたくないが

240:名無しさん@お腹いっぱい。
08/03/08 17:44:40 gdlcsZFD0
>>239
ゆとりみたいな催促ですみません。
書く前まではあまり進展がなかったのですが、
入力するキーを変えたり、キーコードをVK_Rなどにしたり、メモ帳以外のソフトに投げてみたり、
WM_CHARAで投げてみたり、KEYUPを追加してみたり、SendMessageで投げてみたり。

少なくとも上のことはしました。
でも反応がないです。
他に試すものはありますか?

241:名無しさん@お腹いっぱい。
08/03/08 17:50:30 ipRVXXHT0
公式が落ちててDLできないや

242:名無しさん@お腹いっぱい。
08/03/08 18:02:45 2YOSdkCz0
>>240
何がしたいの?具体的にやりたいこと書いたほうがいいよ。

243:名無しさん@お腹いっぱい。
08/03/08 21:39:03 pv+wG3tD0
Oblivionってキーカスタマイズできないの?
不便すぎて死ぬ。

244:名無しさん@お腹いっぱい。
08/03/08 22:15:46 mQS6JGYG0
>>242
>アクティブでないソフトにキー連打を投げようと思っているのですが、
そっくりそのままの意味ですが同じボタンを約1~5万回押さなければならず、
普通にSendで送ってもいいのですがやってる時間がもったいないので、バックグラウンドで放置して投げようかと思っていた次第です。

245:名無しさん@お腹いっぱい。
08/03/08 22:19:12 fACAe+Ks0
>>244
「具体的に」

246:名無しさん@お腹いっぱい。
08/03/08 22:35:47 TbcOcXMf0
>>116あたりからの流れ見りゃいいんじゃねぇの?

247:名無しさん@お腹いっぱい。
08/03/09 00:15:32 vy5jug8M0
非アクティブウィンドウに Postするサンプルならホイールリダイレクトあたり探せば出てくるんじゃね?

248:名無しさん@お腹いっぱい。
08/03/09 04:30:03 /EsSZJU/0
>>244
キーリピートならループ処理じゃね?
Loop, 50000
Send, a

249:名無しさん@お腹いっぱい。
08/03/09 05:36:33 k1HRQwMn0
何がしたいのなんて関係なくね?
要はできるかできないかだけ
教えてやればいい

250:名無しさん@お腹いっぱい。
08/03/09 10:35:35 xgksTwcV0
>>249
ソフトによってキーメッセージの受け取り方が違ったりすることはザラだし、
質問者が物凄い効率の悪い方法でやろうとしていて、
その効率の悪い方法について聞いてたりすることもあったりするから、
目的をはっきりさせた上で、自分が試したことを書くってのが答えやすい質問なんじゃない?

お望みのことはこれでできるけど応用は勝手にやっておくれよ
PostMessage, 0x100, 0x41, 0, Edit1, ahk_class Notepad

251:名無しさん@お腹いっぱい。
08/03/09 12:54:57 4SvVAdgeO
ゲームを操作しながら他の作業ができるようにスクリプト組めますか?
また、どの関数使えばいけますか?

ControlSendは動いてくれませんでした。

252:名無しさん@お腹いっぱい。
08/03/10 03:41:18 BEWopslV0
あるウィンドウで任意のキーが押されたとき、常に特定のエディットにフォーカスして
押されたとおりのキーを送りたいのですが、どうするのが上手い書き方でしょうか?
今のところ、↓のように全部のキーを書く方法しかわかりませんでした。

#IfWinActive HogeHoge
HogeSendKey(x)
{
ControlFocus, Edit1
Send, %x%
}
*a:: HogeSendKey("{Blind}a")
*b:: HogeSendKey("{Blind}b")
*c:: HogeSendKey("{Blind}c")
*d:: ......

253:名無しさん@お腹いっぱい。
08/03/10 13:52:10 BSxkGXvM0
1.0.47.06

254:名無しさん@お腹いっぱい。
08/03/10 16:54:27 vUAUq/Eu0
Caps LockをCtrlに対応させたく思い、
vkF0sc03A::vkA2sc01D

CapsLock::Ctrl

CapsLock::^
としてみましたが出来ません。どうすればいいのでしょう。
教えてください。よろしくお願いします。

255:名無しさん@お腹いっぱい。
08/03/10 17:24:27 9BCH5cLc0
>>3

256:名無しさん@お腹いっぱい。
08/03/10 19:05:40 Qf9LF4830
mayu とか KeySwap とか併用が前提だな

257:名無しさん@お腹いっぱい。
08/03/10 20:06:01 7U86VYG60
同じキーでSHIFT状態によって別な文字が入る(例:1と!)のを逆転させる方法はないものかって
ずっと心の片隅に引っかかってたけどやっとこさ見つけられて(NT系限定だけど)とってもハッピー
SendしてからRemapすればよかったのか

!::Send, 1
1::!


258:名無しさん@お腹いっぱい。
08/03/10 22:34:56 ffMlG0e60
>>254
自分はChgKeyというソフトで無変換に変更してから、
AHK上で無変換キー(SC79)としてつかってる。
(ちなみに英語キーボードなので無変換は空キー)

259:名無しさん@お腹いっぱい。
08/03/11 18:46:36 8hd1Vj+m0
ALT+左ドラッグで表示画面移動
→ホイールドラッグで実現したく、

MButton::Send, {Alt} down {LButton} down
MButton up::Send, !{LButton} up

など試しましたが、押した瞬間しかALTが押されていないようです。
どこを変えたらよいか教えてください。

260:名無しさん@お腹いっぱい。
08/03/12 09:38:42 7Sj/8niq0
ちょっと質問します。
"アクティブウィンドウ以外を最小化"を行いたく、以下のようなスクリプトを書いたのですが、、、

WinGetActiveTitle, title
WinMinimizeAll
WinActivate, %title%

なぜか自分の環境ではWinMinimizeAllが効かずこの方法は断念しました。
それとは別に、一瞬にしてもアクティブウィンドウは最小化させたくはないので(上記のスクリプトはきっとチカチカする)
できればループ処理でアクティブウィンドウ以外を最小化させたいのですが、
全ウィンドウのコレクションを取得する方法が思いつかず、かつ見つけることもできませんでした。
AHK達人の皆さま、お知恵を拝借できないでしょうか。

261:名無しさん@お腹いっぱい。
08/03/12 09:55:52 BBn5kDvF0
Winget list

262:名無しさん@お腹いっぱい。
08/03/14 01:55:46 X0LgGNT60
キー操作じゃなく
ControlClick, X座標 Y座標, Jane Doe Style, , LEFT, , NA
ってな感じにツールバーボタンをクリックしてやる操作だと
Janeをバックグラウンドで動かせるな
ツールバーにないのはスキンで追加したりして

263:名無しさん@お腹いっぱい。
08/03/14 04:22:47 w2GTXRhg0
マウ筋から乗り換え中ですが、躓きました。どうかアドバイスお願いします。

マウス右ボタン+ホイール上下で、キーボードの「カーソル上or下」を送信し、
右ボタンを放したときに、右クリックメニューを{ESC}で消す動作を想定しています。

RButton & WheelDown::Send,{Down}

RButton & WheelUp::Send,{Up}

ひとまずこれで操作はできたのですが、ホイール操作後に右クリックを離すと、
(当然ですが)右クリックメニューが出てしまいます。

マウ筋でいうところの「アクション終了後に実行」に相当する機能で
ESCを送信すれば解決しそうなのですが、それに相当する機能がどうしても
わかりません。

このあと、右クリックを離したときに {Esc} を送信するには、
どう書けばいいでしょうか。


それと、マウ筋の「トグル動作」に相当する機能は、
AutoHotkeyでも可能でしょうか。

264:名無しさん@お腹いっぱい。
08/03/14 09:02:54 QnXsY3pI0
調べてもわからなかったので質問します。

X単打→A
X長押し→B

といった風に、特定のキーの単打と長押しで動作を変える方法はあるでしょうか。
教えていただけるとうれしいです。

265:名無しさん@お腹いっぱい。
08/03/14 11:23:39 t9zhO3C60
流行らせるページのマウスジェスチャ2なんだけど
explorerにRB_LB_でAlt+F4を送るようにしてあるんだけどマウス直下じゃなくてアクティブウィンドウに利くようになってる。
もちろん設定のアクティブウィンドウをターゲットにするはチェックしていない。
また、ブラウザなどが持っているマウスジェスチャが一部が利かなくなったりする。
どうにかならないだろうか。

266:名無しさん@お腹いっぱい。
08/03/14 13:33:04 0BKa7fCF0
Alt+F4の前にWinActiveを書けばいいと思う

267:名無しさん@お腹いっぱい。
08/03/14 13:33:44 0BKa7fCF0
WinActivateか

268:名無しさん@お腹いっぱい。
08/03/14 17:29:36 P6frNnDA0
RButton & Wheelup::send {Left}
と記述したら、これ以外の右クリック関係が効かなくなってしまいました
以前の動作と共存させるにはどうしたらいいですか?

269:名無しさん@お腹いっぱい。
08/03/14 18:04:12 m2sf8lzZ0
まずは落ち着いて流行らせるページを読んだ方が良いと思うよ

270:名無しさん@お腹いっぱい。
08/03/14 18:06:43 +F3eJm7K0
アフィを踏まないようにな。

271:名無しさん@お腹いっぱい。
08/03/14 18:20:10 khMgy4pn0
>>264
KeyWaitで時間指定してErrorLevelで判断すれば多分出来る

272:名無しさん@お腹いっぱい。
08/03/14 19:34:39 P6frNnDA0
~RButton & Wheelup::send {Left}
としたら動くようになりましたが、アクション後に右ボタンを離したらコンテキストメニューが出てしまいます
出さないようにするにはどう記述すればよいですか?

273:名無しさん@お腹いっぱい。
08/03/14 19:59:10 D9gd79zc0
KeyA & KeyB::
{
 Some Script
}
$KeyA::Send,{KeyA}

274:名無しさん@お腹いっぱい。
08/03/14 20:16:57 khMgy4pn0
なんか、

RButton::
MouseClick, R,,, 1, 0, D
KeyWait, R
MouseClick, R,,, 1, 0, U
return

ってやってもドラッグがうまくいかないな、なんかやり方ある?
どうも、押下時点でメニューとか出るんでKeyWaitがうまく行ってないのかな?

275:名無しさん@お腹いっぱい。
08/03/14 20:20:29 LGlyJ14t0
なまず日記のmigemo_isearchを使っている人に質問です。

「[MIGEMO] I-search:」ウィンドウが開いているときに
ブラウザ内のどこかにフォーカスが移ると、検索ワードの
入力待ちから抜けられなくなりますよね。
そこで、とりあえず、自分でフォーカスを移した場合に
ついては以下のようにして逃げていますが、根本的な
解決策が知りたいです。

#IfWinActive ahk_class IEFrame
^s::MIS_IEMigemoISearchForward()

#IfWinActive ahk_class migemo-isearch
^s::MIS_MigemoISearchNextForward()

Esc::
AppsKey::
+f10::
MIS_MigemoISearchClose()
return

*LButton::
MIS_MigemoISearchClose()
MouseClick, Left
return

*RButton::
MIS_MigemoISearchClose()
MouseClick, Right
return
#IfWinActive


276:名無しさん@お腹いっぱい。
08/03/14 20:47:13 P6frNnDA0
>>273
ありがとうございました m(_ _)m

277:名無しさん@お腹いっぱい。
08/03/15 06:40:10 5wNKe8CI0
>>274
う・・・わ、恥ずかしい。今ごろ気付いた
R待ってても意味無いよな。RButtonだろ俺
ナンダヨー ニヤニヤ スンナヨー><;

278:名無しさん@お腹いっぱい。
08/03/15 13:25:31 MWOMNoQ50
xx分をxx時間xx分に換算する関数を作ろうと思い、できたのがこんなんです。
Conversion(origin){
min := Mod(origin, 60)
h := Round((origin - min) / 60)
Return, (hr ? h " h " : "") min " min"
}
いまいちかっこわるいのですが、こんなもんでしょうか。

279:名無しさん@お腹いっぱい。
08/03/15 13:57:40 A+4bfbKP0
簡単なので言えばこんなのとか
conv(i){
 t = 2000
 t += %i%,Minutes
 FormatTime FormdT, %t%, HH 'h' mm 'min'
 return FormdT
}

280:名無しさん@お腹いっぱい。
08/03/15 20:27:19 LpB2dUsx0
型定義か、オブジェクト作成が出来ればいいんだけどね
static 変数使えば、private変数みたく出来・・・ないか

ま、そこまで求めるような処理系をやるような言語ではないしな

281:名無しさん@お腹いっぱい。
08/03/16 02:40:14 PRavS+EG0
WinGetコマンド等でExclude Titleを指定できますが、
ここで複数タイトルを指定するにはどのようにすればいいでしょうか?

282:名無しさん@お腹いっぱい。
08/03/16 06:18:08 PRavS+EG0
>>281
AddGroupでグループ化して、ahk_groupで除外するというのを試みたのですが、うまくいきませんでした。

283:名無しさん@お腹いっぱい。
08/03/16 20:13:32 L7k3BomJ0
長押しと独自キーリピートのサンプルクレクレ

284:名無しさん@お腹いっぱい。
08/03/16 22:17:10 bN/A5LaO0
Inputbox に数式を入れると、結果を返すだけのツールを
作ったんですが、激しく仰々しくって・・・。もっと簡素に書けませんか?

vk1Csc079 & i::
  InputBox, suushiki, 数式を入力,,, 300, 110, , ,,
  FileAppend, Output:=%Suushiki%`r`n, c:\Enzan.ahk
  FileAppend, Msgbox`,`%Output`%, c:\Enzan.ahk
  Run, c:\Enzan.ahk
  Sleep, 500
  FileRecycle, C:\Enzan.ahk
return

(一行しか式を書き込めないので、拡張性に乏しいです)

285:名無しさん@お腹いっぱい。
08/03/16 22:28:10 6gu0PBjt0
なんでFileAppendなんか使うん?

286:名無しさん@お腹いっぱい。
08/03/16 22:37:17 bN/A5LaO0
FileAppendしか思い付かなかったので・・。行数制限は外したが。

vk1Csc079 & i::
Loop, 20{
InputBox, Suushiki, 数式を入力(Canselで入力終了),,, 300, 110,,,,,Y:=
If ErrorLevel = 0
{
FileAppend, %Suushiki%`r`n, C:\Enzan.ahk
}
If ErrorLevel = 1
{
FileAppend, %Suushiki%`r`n, C:\Enzan.ahk
break
}}
FileAppend, Msgbox`,`%Y`%, C:\Enzan.ahk
Run, C:\Enzan.ahk
Sleep, 500
FileRecycle, C:\Enzan.ahk
return

287:名無しさん@お腹いっぱい。
08/03/16 22:44:09 MFHWv9K4P
>>284
fenrirスレとマルチのうえあっちはほったらかしかよ。死ねよクソガキ。

288:名無しさん@お腹いっぱい。
08/03/16 23:05:49 6gu0PBjt0
俺には付いていけん発想だ
炊飯器に乗って隣の家に行くような

289:284
08/03/16 23:26:39 bN/A5LaO0
ID調べる粘着さんに誤爆をマルチ呼ばわりされてしまった。


>>288 ダイヤログボックスに数式を入れて結果を入力させるのが目的です。
上の文ではMsgboxを使っていますが、使用時はクリップボード&貼り付けにしています。

Google窓やCals.exe等では、結果の閲覧までなので一歩進めて入力までやりたくて・・。

290:名無しさん@お腹いっぱい。
08/03/16 23:29:19 EsUPLoeS0
これはひどい

291:284
08/03/16 23:59:55 bN/A5LaO0
Gui,Edit を出して変数に格納するのですか?

そうだとしても外にAHKを書くためにFileAppend以外に方法はないと思うのですが・・・。

292:名無しさん@お腹いっぱい。
08/03/17 00:32:49 tHZ6lmZ50
まあ、もう少し付き合うけど
変数に入れてそれをLoop, Parseするのでは何がいかんのか?

293:名無しさん@お腹いっぱい。
08/03/17 01:31:27 5FHlkxSn0
結果をほかのものに渡すだけならクリップボードを使えば良いだろ。
ClipBoard= %Suushiki%

294:名無しさん@お腹いっぱい。
08/03/17 05:00:44 w3b2p0Pp0
標準出力でもいいんじゃね

295:名無しさん@お腹いっぱい。
08/03/17 10:40:11 0WAsk9HL0
>そうだとしても外にAHKを書くためにFileAppend以外に方法はないと思うのですが・・・。
FileAppend以前にわざわざ外にAHKを書く意味がわからない。

fenrirスレ見てきたけど、IDなんか調べなくてもまんまマルチじゃん。
しかも向うではツッコミ入れられてから誤爆とか言い訳してるし、お前本当クズだな

296:名無しさん@お腹いっぱい。
08/03/17 12:44:41 vyHUZ/Zr0
数式ならはやらせるページのあぷろだにいくつかあった気がするが

297:名無しさん@お腹いっぱい。
08/03/17 23:36:46 z52UcUVJ0
>>271
遅くなりましたが、ありがとうございます。

298:271
08/03/18 06:36:36 DBpKlb6a0
>>297
いえいえ

299:名無しさん@お腹いっぱい。
08/03/18 16:20:40 p9N7Q+240
Loop の回数を入力して2重ループでキーをsendするマクロを使っているのですが;
たまに回数を間違えて終わるのを待つのがつらいです。
マクロを強制終了する方法はあるのでしょうか?

300:名無しさん@お腹いっぱい。
08/03/18 17:13:36 5EvAikyp0
^ESC:: ExitApp とか適当にホットキー設定しておけば?
マルチスレッドで動いてるはずだから多分大丈夫じゃね?

本当にどうしようもない時はタスクマネージャからプロセスの終了で強制終了汁

301:名無しさん@お腹いっぱい。
08/03/18 19:21:18 +E1ehu8R0
連打だったら、こんな感じで
規定回数orフォーカスずらしたら終わるようにしてるなぁ

renda(key, cnt) {
 WinGetClass, oCls, A
 Loop, %cnt%
{
  IfWinNotActive, ahk_class %oCls%
  Break,
  Send, {%key%}
 }
 return
}

302:名無しさん@お腹いっぱい。
08/03/18 21:31:22 qz5VYRvo0
GetKeyStateで適当なキー押下を調べて
押されてたらBreakするとか

303:名無しさん@お腹いっぱい。
08/03/18 22:42:31 LmQpgVGGO
UWSCのMOUSEORGみたいに、
特定のウインドウにキーを送る関数や方法はありますか?

304:名無しさん@お腹いっぱい。
08/03/19 00:13:54 Qu6VUaAz0
ありまくり

305:名無しさん@お腹いっぱい。
08/03/19 12:12:38 ZHMEY0Ip0
>>301
ありがとうございます。

306:名無しさん@お腹いっぱい。
08/03/19 13:45:53 PsQCSOhe0
>>304
ありがとうございます。

307:TWZmalSIIaso
08/03/21 09:05:57 0s2M9jx00
<a href=URLリンク(imporous.cn) >online</a>
URLリンク(importee.cn)
<a href=URLリンク(importee.cn) >online</a>
URLリンク(jointed.cn)
<a href=URLリンク(jointed.cn) >online</a>
URLリンク(jolite.cn)
<a href=URLリンク(jolite.cn) >online</a>

308:名無しさん@お腹いっぱい。
08/03/22 14:49:01 6t3qgOPy0
・マウスの中ボタンを押すと、(中ボタンを放した瞬間)検索開始
・マウスの中ボタン+ホイール↓で、検索の次候補(F3)
・マウスの中ボタン+ホイール↑で、検索の前候補(shift+F3)

という動作をさせたいのですが、

MButton::send,^f
MButton & WheelDown::send,{F3}
MButton & WheelUp::send,+{F3}

この3行のうち、下の2行を入れると、
先頭の「中ボタンを押しただけの動作」が無視されてしまいます。

希望する動作にするためには、どう書けばいいでしょうか。

309:名無しさん@お腹いっぱい。
08/03/22 15:15:08 UA/65Cwf0
単独と&の組み合わせって駄目じゃなかったっけ。
前試して動かなかったような記憶が。

310:名無しさん@お腹いっぱい。
08/03/22 16:24:18 DRTfcI5V0
MButton Up::send,^f
でできると思う

311:名無しさん@お腹いっぱい。
08/03/22 20:17:36 0AYJpUnlO
マウスボタンの配置を入れ替えることはできますか?

a::b
b::a
↑キーボードはできたんですけど

312:名無しさん@お腹いっぱい。
08/03/22 20:59:20 H09tmeZI0
指をクロス

313:名無しさん@お腹いっぱい。
08/03/23 02:24:18 yu0oJW4R0
>>311
Windowsの設定で左利き用にするのではだめなのか?

314:311
08/03/23 09:32:42 h6Mm6xGhO
右←→X2を交換したいんです
ロジのトラックボール(ST-45UPi)を購入した
ので親指に左右クリックを集めて使いたいなと
SetPoint+UberOptionsで実現できそうなのですが
できればSetPointとか使いたくないんです。

315:名無しさん@お腹いっぱい。
08/03/23 09:37:41 h6Mm6xGhO
間違い左←→X2です

316:名無しさん@お腹いっぱい。
08/03/23 09:57:54 IKb6ZKv10
SetPointつかったほうがいいんでないかい

317:名無しさん@お腹いっぱい。
08/03/23 11:37:05 MbnHXQ3d0
>>308です。

>>309
そのようです。

>>310
これでできました。ありがとうございます。

318:名無しさん@お腹いっぱい。
08/03/23 21:27:50 7xaaJCup0
>>311
この辺が参考になるかも
URLリンク(www.autohotkey.com)
URLリンク(www.autohotkey.com)

319:311
08/03/24 11:25:36 Ns5Ryq4zO
>>318 ありがとう。すごく参考になりました。

一応結果を書いておきます。
飛び先にはいくつか方法が書かれているけど,↓がベターだとおもう。

*LButton::
MouseClick, right,,,,, D
KeyWait, LButton
MouseClick, right,,,,, U
return

*RButton::
MouseClick, left,,,,, D
KeyWait, RButton
MouseClick, left,,,,, U
return

KeyWaitの効果??でマウスジェスチャー,範囲選択も標準同様に動作できた。
ちょっと不満なのは右クリするとコンテクストメニューが表示されたり
されなかったりする。それ以外は期待通りでした。
(再現も規則性があって,右ダブルクリックすれば回避できるけど)

>>316
自分の環境だと突然ALTやCtrlが押された状態になってイライラするから
使いたくないんです。原因もわからないし・・

320:名無しさん@お腹いっぱい。
08/03/24 16:06:20 n1SVzXNB0
XPSP3日本語版はキーUp/Down情報が正しく返して(>>3)くれる・・・わけないよなぁ

321:名無しさん@お腹いっぱい。
08/03/24 20:59:47 4Vqa4LsF0
Setpointの押しっぱなし回避のため、Alt/Ctrl/Shift upとSetpoint再起動のスクリプトを書いておくがよろし

322:名無しさん@お腹いっぱい。
08/03/24 22:08:58 m2WbBKQQ0
>>319
スレチだけど、押しっぱなしの件うちも起こるなぁ。>Setpoint
まぁ、ごく稀になんで我慢して使ってるけど。MouseWareの頃はこんな事なかったのになぁ。
どれかが押されたままになったら、そのキー(キーボード実体)を適当にポンポン叩いてると
しばらくすれば直るんだけど。
俺は>>321をやってみようかと思う。アイデアどうもありがとう


323:名無しさん@お腹いっぱい。
08/03/24 23:56:48 4Vqa4LsF0
>>321をやるなら、ホットキーは^!+z::みたいにするのがおすすめ。
押しっぱなしの症状出ていても起動するようにな。

324:名無しさん@お腹いっぱい。
08/03/25 14:08:04 fKCEZ+8l0
Ahkファイルを右クリックしたとき出る「edit script」で使用するエディタを変更する方法は何かないでしょうか?

325:名無しさん@お腹いっぱい。
08/03/25 16:39:51 /e6R/f5R0
>>324
俺は↓のレジストリのnotepad.exeの部分を書き換えてる。
他の方法もあるかもしれないけど。ちなみにOSはXP

HKEY_CLASSES_ROOT\AutoHotkeyScript\Shell\Edit\Command

326:名無しさん@お腹いっぱい。
08/03/25 19:23:22 tZ5Dk9KN0
>>324
URLリンク(lukewarm.s101.xrea.com)


327:名無しさん@お腹いっぱい。
08/03/25 20:01:12 4sJAnoqM0
「フォルダオプション」の「ファイルの種類」で
.ahk->詳細設定->Edit scriptいじってもできるよ。

328:名無しさん@お腹いっぱい。
08/03/25 20:45:40 v2dURCKr0
あとは、Menu, Tray, ~で全部書き換えてしまうとか

329:名無しさん@お腹いっぱい。
08/03/26 00:45:10 uloWWH/t0
Photoshop、Sai、Neko、ComicStudio共通、3分間操作しないと自動保存を行うAutoHotkeyスクリプト
URLリンク(blogs.yahoo.co.jp)

330:名無しさん@お腹いっぱい。
08/03/26 10:21:32 rg2QQF050
雑談していいか?デジ絵業界のこと全く知らんのだが、プロにもAutohotkeyは流行ってるの?浸透する余地はあるの?

331:名無しさん@お腹いっぱい。
08/03/26 12:03:00 UhywBhzN0
プロや同人者じゃないけどフォトショやイラレくらい普通に使うっしょ。ビジネスでも個人でも。

スクリプトに免疫ある云々以前に自動保存は危険だから そうそう需要があるとは思えんし
(保存する気は無いけどちょっと試してみた、っつーような状態でオリジナル更新とかされたら泣ける。
MS-Officeみたいに保存でアンドゥバッファがクリアされるようだとかなりアウチな状況になる)
329のブログの人は元々uwscとかやってるから、浸透させたいとかそういう意図じゃなく
単純に自分が使ってるものを公開してるだけじゃないか?


332:名無しさん@お腹いっぱい。
08/03/26 12:27:50 XtKWYjkt0
VAIOノートのボリューム変更が面倒(ミュートボタン+十字キー)なので、ahkでボリュームを変更しようと考えました。
しかし、VistaのせいかVAIOのせいか、XP機では問題なく動作していたコマンド「SoundSet」がまったくききません。

これはVistaで音量管理が変わったせいでしょうか。それともVAIO固有の問題でしょうか。
他にVista機を使ったことがないので、ボリューム関係の命令が通常は問題なくVistaでも動作するのかどうかお教えいただければと思います。

333:名無しさん@お腹いっぱい。
08/03/26 12:28:04 rg2QQF050
イラレを普通の人が使うか?まぁいいや。俺的には糞キーだった無変換と

変換キーがAHKで超活躍したのに感動して、ネタ探しにこのスレに居着いてる。

334:名無しさん@お腹いっぱい。
08/03/26 13:42:09 s4aoxhYc0
無変換は使う人は使うらしい。
うちの親父がひらがな確定するのに使ってた。
AHK立ち上げたまま貸したから誤爆しまくってた。

335:名無しさん@お腹いっぱい。
08/03/26 14:06:53 aFNDPsi80
ドロー系ってイラレくらいしか市販ソフトで選択肢なくなってるじゃん
簡単なものならInkscapeとかでも良いけどちょこっと凝ったことやって
印刷所に渡すとかならイラレ一択だよ

普通の人でもちょっと凝ったチラシ程度は作ったりするでしょ?

336:名無しさん@お腹いっぱい。
08/03/26 14:20:42 mvQbsgET0
作業上、定型処理があってマクロが無い場合、
何らかの補助ツールを用いてバッチ的に処理したいと思うのは
当たり前なんじゃないの?

エクセルとかの事務処理ツールは大抵マクロがあるけど、
オーサリングとか描画とかのツールには無いことがあるし。
その場合、キー送信って方法はわかりやすい手法だと思う。

でも浸透はしてないと思う。

>>332
アプリケーション毎に音量を変えられる Vista の仕様には対応してないとか。
つまり、AHKのプロセスのみの音量が変わるだけ。
システム全体のボリュームを変更したい場合は以下のようにして逃げろと書いてある。

①AHK互換モードで動かす
②ボリューム変更キーを変更してシステム全体のマスタ音量を変えるようにする


URLリンク(www.autohotkey.com)
> [Remarks]
> On Windows Vista, SoundSet and SoundGet affect only the script itself
> (this may be resolved in a future version).
> There are at least two ways to work around this:
>
> 1) In the properties dialog for the file "AutoHotkey.exe" (or a compiled script),
>   change the compatibility setting to "Windows XP".
> 2) Have the script send volume-control keystrokes to change the master
>   volume for the entire system. For example:
> (以下略)



337:名無しさん@お腹いっぱい。
08/03/26 14:22:30 oolhOgY80
>>334
俺も無変換に機能を割り当ててウハウハ気分。
だが、あるとき「あれ?ひらがなにならねぇじゃん」というシーンがちらほら。

・・・あれだけ邪魔扱いしていた無変換キーを、
無意識のうちに微妙に使ってたことに驚愕した。ごめんよ無変換君

まぁ最終的に ~ up で支障のないように割り当てちゃったけど

338:名無しさん@お腹いっぱい。
08/03/26 15:23:42 UhywBhzN0
>>336
コミスタみたいな漫画描き用ツールは使ったことないからわからんが
adobe系ならアクションで操作記憶できるし、jsも使えるからな
外部のソフトでどうこうしようって需要はそんなには高くないんじゃないかな

自分はjsわからんからAHKで適当にやらせちゃったりしてるけど。

339:名無しさん@お腹いっぱい。
08/03/27 12:16:30 YojpcV9k0
>>336
なるほど、Volume_Upを送ればいいんですね。助かりました。
AhkがVistaの仕様に対応してくれると面白いんですがね。

340:名無しさん@お腹いっぱい。
08/03/27 23:12:54 wa/kgMqy0
>>337
変換中にひらがな なら、Ctrl+u、或いはF6使うとか?
Ctrl+u,i,o,pに慣れたんで、変換中は無変換キー使わないです。

無変換キーは、なまず日記(2005-09-16)参考で(Alt複数回押しが元ネタ)
2度押しでF24キー送ってランチャの呼び出しキーにしてるのと
テンプレにもある無変換+IJKLで↑←↓→にして使ってる。

341:名無しさん@お腹いっぱい。
08/03/27 23:45:44 7ph+A4hy0
すみません。全くの初心者です。
マウスのX2ボタン+ホイールで水平スクロールさせたいのですが、つまづいてます。
下の表記ではダメなのでしょうか?どの様に表記すれば良いでしょう?

XButton2 & WheelUp::
ControlGetFocus, fcontrol, A
SendMessage, 0x114, 0, 0, %fcontrol%, A

XButton2 & WheelDown::
ControlGetFocus, fcontrol, A
SendMessage, 0x114, 1, 0, %fcontrol%, A

342:名無しさん@お腹いっぱい。
08/03/28 00:51:14 vippfD4h0
「アクティブウィンドウのアクティブコントロール」だと
実際はどこにフォーカス当たってるのかわからんよ
マウス下のコントロールハンドル送るほうがまだ確実

MouseGetPos,,,,ctrl,3
PostMessage, 0x114, 0, 0, ahk_id %ctrl%

もしこれでもダメなら対象のコントロールがスクロールに対応してない
(見当違いのコントロールをつかんでしまっている)か、
スクロールハンドルも指定してやらないといかんとかだと思う

343:名無しさん@お腹いっぱい。
08/03/28 01:09:11 SNoH02TP0
Mousegesture.ahk使え

344:名無しさん@お腹いっぱい。
08/03/28 08:29:45 1yE4nRrQ0
>>331
使いにくいインターフェースを使いやすくするのには使っている。

URLリンク(upp.sakura.ne.jp)
URLリンク(upp.sakura.ne.jp)
URLリンク(upp.sakura.ne.jp)


345:名無しさん@お腹いっぱい。
08/03/28 20:40:26 lF6janXs0
%00%01%12みたいにエンコードされたURL文字列をデコードしたいのですが、
変数に入っているURLをデコードするには、どのようにすればいいでしょうか。

AutoHotkey本家サイトで、下記のサンプルらしきものをみつけたのですが、
AutoHotkey自体にまだ慣れていない状態で。たとえば %abc% という変数に
入れたURLを変換するには、どのように書けば動いてくれますか?


uriDecode(str) {
Loop
If RegExMatch(str, "i)(?<=%)[\da-f]{1,2}", hex)
StringReplace, str, str, `%%hex%, % Chr("0x" . hex), All
Else Break
Return, str
}

URLリンク(www.autohotkey.com)

346:名無しさん@お腹いっぱい。
08/03/29 16:33:33 VfpQtKeR0
これってクリップボード拡張機能があるの?
あるんだったらいくつまでため込んでおけるの?

347:名無しさん@お腹いっぱい。
08/03/29 17:02:54 G6elPIP40
クリップボードをどうにかできる機能はある。拡張は各自で行う。
己の好きなだけためられるようなコードをかけばOK

348:名無しさん@お腹いっぱい。
08/03/29 17:59:21 VdXqTZUN0
cbhistory%num% = cbhistory%num-1%
とか偽配列に溜め込んでいけばいくらでも

349:名無しさん@お腹いっぱい。
08/03/29 20:14:12 T1+UFJiD0
例えばあるキーを押したら「○」と入力されるようにするには
クリップボードを使わずにできるの?

350:名無しさん@お腹いっぱい。
08/03/29 20:59:51 G6elPIP40
できるけど全角文字はOSや入力先コントロールによっては化けるよ

351:名無しさん@お腹いっぱい。
08/03/30 02:53:04 E4XGHc6a0
アニメ「めぐみ」ダウンロードページ
URLリンク(www.rachi.go.jp)

352:名無しさん@お腹いっぱい。
08/03/30 09:32:11 ltQQNcJf0
他のスレでAHKを勧められたんで使ってみようかと思っています。
iniファイルに設定を書けって言われたんで記述しようかと思ったんだけど
落としたzipにはiniファイルがありません。
これは自分で作れってことですか?

353:名無しさん@お腹いっぱい。
08/03/30 09:55:59 gl83dI/t0
>>352
初回にAHKを起動したときに自動で作られる
URLリンク(d.hatena.ne.jp)

354:名無しさん@お腹いっぱい。
08/03/30 10:23:13 vGXFRISg0
練習ならデスクトップで、右クリックして
 [新規作成]→[Autohotkey Script]
と選択して新規ファイル作る。

さらに出来たファイルを右クリックして
 [Edit Script]
を選んで編集する。
たぶんメモ帳で編集となる。

何か書いたら*保存して*からダブルクリックして実行。

後はがんばれ。

355:名無しさん@お腹いっぱい。
08/03/30 10:27:04 Ok2aoVwO0
自分も新参なんでそのへんよくわからんですが、
最近のAHKは、ini ファイルあれば読み込むけど、勝手につくったりはしないのでは。
適当な名前(AutoHotkey.ahkとか) を適当なところに置いて起動時に実行させたほうが、
エディタで編集もしやすいし良いような。

356:名無しさん@お腹いっぱい。
08/03/30 10:37:22 UVMk0PgG0
zip版でも.ahk起動でなかったらini作られると思うけど

357:名無しさん@お腹いっぱい。
08/03/30 13:01:06 qN+p1OrA0
AHKでiniファイルを作って使用する場合
その設定はシステム全体に共通するものになってしまうんですか?
ある特定のソフトではその設定を無効にすることってできますか?

358:名無しさん@お腹いっぱい。
08/03/30 15:24:24 Irt6PGPH0
>>357
システム全体に共通のものにすることも
特定のソフトだけに適用させることも
特定のソフトだけを除外することも

皆できます。

359:名無しさん@お腹いっぱい。
08/03/30 16:15:28 WwLdVX2H0
>>358
そのやり方の書いてあるサイトを紹介してくれませんか?

360:名無しさん@お腹いっぱい。
08/03/30 16:47:55 UVMk0PgG0
>1

361:名無しさん@お腹いっぱい。
08/03/30 22:10:05 oszNmWuy0
さすがに春とは言えひどいのがわくなw

362:名無しさん@お腹いっぱい。
08/03/30 22:14:42 mTU/MBw90
いちいちあおんな

363:名無しさん@お腹いっぱい。
08/03/30 22:19:42 JMekhfLu0
>>350
やっぱり化けますか。
クリップボードに文字入れてペーストするしか方法ないのかな。

364:名無しさん@お腹いっぱい。
08/03/30 23:35:22 vGXFRISg0
URLリンク(lukewarm.s101.xrea.com)
の[Sendコマンド用日本語コード変換]

365:名無しさん@お腹いっぱい。
08/03/31 23:53:39 I9uPmNx00
変換キーをシフト+コントロールにしたいんだけど
vk1Csc079::^+
だとうまく動かないんだけどSend使ってもダメだった。
どうやったら出来るの?全然違うことやってるかな…



366:名無しさん@お腹いっぱい。
08/04/01 00:15:47 Bzz1rfhi0
おまえら、AutoHotkeyなんてもう腐りきった言語をいつまでも使ってるんじゃない!
これからはJHotkeyの時代だぞ!!
URLリンク(lukewarm.me.land.to)

367:名無しさん@お腹いっぱい。
08/04/01 00:28:52 o19x/qgO0
>>開発途中のため、構想されている機能のうち極一部しか実装されていません。

意気込みはいいが、これじゃな…

368:名無しさん@お腹いっぱい。
08/04/01 00:31:29 VxtyJ8oc0
今日は・・

369:名無しさん@お腹いっぱい。
08/04/01 00:32:21 taqmYof10
ぬるたん、何やってんのw

370:名無しさん@お腹いっぱい。
08/04/01 01:05:47 +YiplxOD0
エイプリルフール?
じゃないのね・・・
さすがスクリプトオタク

371:名無しさん@お腹いっぱい。
08/04/01 01:49:23 Bzz1rfhi0
;# MobileSOS.ahk
Gui, 1:+ToolWindow -Disabled -SysMenu -Caption
Gui, 1:Color, FF0000
Gui, 1:Show, X0 Y0 W%A_ScreenWidth% H%A_ScreenHeight%
Gui, 2:+ToolWindow -Disabled -SysMenu -Caption
Gui, 2:Color, 000000
Gui, 2:Show, X0 Y0 W%A_ScreenWidth% H%A_ScreenHeight%
Loop
{
Gui, 1:SHOW
Sleep, 200
Gui, 2:SHOW
Sleep, 200
Gui, 1:SHOW
Sleep, 200
Gui, 2:SHOW
Sleep, 200
Gui, 1:SHOW
Sleep, 800
Gui, 2:SHOW
Sleep, 200
}
Return

Esc::ExitApp

URLリンク(www.forest.impress.co.jp)

372:名無しさん@お腹いっぱい。
08/04/01 02:04:47 rprG/suh0
>>365
AHK勉強中です、正しい書き方でないだろうし
もっとよい記述があると思うんだけど一応書いてみました。
vk1Csc079::
Send,{Shift Down}{Ctrl Down}
loop
{
sleep, 10
GetKeyState, vkstate, vk1Csc079, P
if vkstate=U
{
Send, {Shift Up}{Ctrl Up}
break
}
}
return

373:名無しさん@お腹いっぱい。
08/04/01 02:25:34 +YiplxOD0
>>371
すばやいな
でも、SOSは・・・ーーー・・・だとおもうんだ


374:名無しさん@お腹いっぱい。
08/04/01 03:41:28 xJn9jWDG0
画面の特定の場所(たとえば右上)にマウスオーバーしたら、
特定のアプリを最前面表示、みたいにやりたいんですが、
どこかにそういうスクリプト公開されてますか?

375:名無しさん@お腹いっぱい。
08/04/01 03:48:29 Bx9nGxi10
画面端だけならMouseGesture.ahkにある

376:名無しさん@お腹いっぱい。
08/04/01 03:51:02 xJn9jWDG0
なるほど。ちょっと見てみます。

377:名無しさん@お腹いっぱい。
08/04/01 03:52:36 Bx9nGxi10
     *      *
  *     +  うそです
     n ∧_∧ n
 + (ヨ(* ´∀`)E)
      Y     Y    *

378:名無しさん@お腹いっぱい。
08/04/01 04:02:39 xJn9jWDG0
         ナ ゝ   ナ ゝ /    十_"    ー;=‐         |! |!
          cト    cト /^、_ノ  | 、.__ つ  (.__    ̄ ̄ ̄ ̄   ・ ・
ミミ:::;,!      u       `゙"~´   ヾ彡::l/VvVw、 ,yvヾNヽ  ゞヾ  ,. ,. ,. 、、ヾゝヽr=ヾ
ミ::::;/   ゙̄`ー-.、     u  ;,,;   j   ヾk'! ' l / 'レ ^ヽヘ\   ,r゙ゞ゙-"、ノ / l! !ヽ 、、 |
ミ/    J   ゙`ー、   " ;, ;;; ,;; ゙  u ヾi    ,,./ , ,、ヾヾ   | '-- 、..,,ヽ  j  ! | Nヾ|
'"       _,,.. -─ゝ.、   ;, " ;;   _,,..._ゞイ__//〃 i.! ilヾゞヽ  | 、  .r. ヾ-、;;ノ,.:-一'"i
  j    /   ,.- 、  ヾヽ、 ;; ;; _,-<  //_,,\' "' !| :l ゙i !_,,ヽ.l `ー─--  エィ' (. 7 /
      :    ' ・丿   ̄≠Ξイ´,-、 ヽ /イ´ r. `ー-'メ ,.-´、  i     u  ヾ``ー' イ
       \_    _,,......::   ´゙i、 `¨ / i ヽ.__,,... '  u ゙l´.i・j.冫,イ゙l  / ``-、..- ノ :u l
   u      ̄ ̄  彡"   、ヾ ̄``ミ::.l  u   j  i、`ー' .i / /、._    `'y   /
              u      `ヽ  ゙:l   ,.::- 、,, ,. ノ ゙ u ! /_   ̄ ー/ u /
           _,,..,,_    ,.ィ、  /   |  /__   ``- 、_    l l  ``ーt、_ /  /
  ゙   u  ,./´ "  ``- 、_J r'´  u 丿 .l,... `ー一''/   ノ  ト 、,,_____ ゙/ /
        ./__        ー7    /、 l   '゙ ヽ/  ,. '"  \`ー--- ",.::く、
       /;;;''"  ̄ ̄ ──/  ゙  ,::'  \ヾニ==='"/ `- 、   ゙ー┬ '´ / \..,,__
、      .i:⌒`─-、_,....    l   /     `ー┬一'      ヽ    :l  /  , ' `ソヽ
ヾヽ     l      `  `ヽ、 l  ./  ヽ      l         )  ,; /   ,'    '^i

379:名無しさん@お腹いっぱい。
08/04/01 15:34:48 PbhXdZno0
SubMakeTxt:
(処理)
FileAppend,%Text%,hoge.txt
Return

このようなサブルーチンで、処理の最中に再び同じサブルーチンが呼び出された場合、
最初に呼び出された方を打ち切って新しく最初からやり直すというのはどう書けばいいんでしょうか。

やりたいのは「さっきのやめて新しい条件でhoge.txt作って」という感じのことです。

380:名無しさん@お腹いっぱい。
08/04/01 21:45:56 taqmYof10
そいつをコンパイルEXE化しといて
呼出し毎にまずプロセスを落としてから処理に入るとか

381:名無しさん@お腹いっぱい。
08/04/01 22:27:43 TzLRdUHG0
偉い先生、教えてください。
スクリプト起動中に Hotstring の設定を書き換えられますか?
たとえば
#Hotstring C
 ↑
 ↓
#Hotstring C0
などとトグルしたいんですが。

382:名無しさん@お腹いっぱい。
08/04/01 23:35:42 iDdNVKh40
>>364
ありがとう!

383:名無しさん@お腹いっぱい。
08/04/02 17:23:33 WduZd3PH0
AHKでマウスのスクロールボタンを押した
動作を設定したいんですがそれってできます?
テンプレにある流行ページ見たんですが
ボタン押しのキーリストがありませんでした。
やりたいことはスクロールボタンを押したまま
スクロールさせてアプリを切り替えたんです。

384:名無しさん@お腹いっぱい。
08/04/02 17:24:05 WduZd3PH0
× 切り替えたんです。
○ 切り替えたいんです。

385:名無しさん@お腹いっぱい。
08/04/02 19:30:07 wPtPDyuj0
下の二行で頭がくらっと来た。

386:名無しさん@お腹いっぱい。
08/04/02 20:57:10 XEaurMqJ0
エディタや入力部分等で選択している範囲の文字列中の一番右側の数値を1増やすのってどうやればいいんですか?

file-01.txt

を選択して実行すると

file-02.txt

になるような感じです

387:名無しさん@お腹いっぱい。
08/04/02 21:08:44 2iojmLuY0
>>386
正規表現で数字部分だけ引っこ抜いたらどうでしょう

388:名無しさん@お腹いっぱい。
08/04/02 22:43:10 d+HQvHP20
Alt や Ctrl や Shift を素早く二回押しして
クリップボードとかを立ち上げようと思っているのですが、
こういう「連続押し」はどうすれば良いのでしょうか?

(窓使いの憂鬱スレで聞いたら「AHKが得意だよ」と言われてやって来ました)

389:名無しさん@お腹いっぱい。
08/04/03 00:02:45 nVgIA2Ke0
URLリンク(lukewarm.s101.xrea.com)
その他

390:名無しさん@お腹いっぱい。
08/04/03 01:29:40 k0tD4Xy50
>>389
どうもありがとうございます。
これに何か書き加えれば
連続押しでアプリを呼び出したりできるんですね。
ちょっと勉強してみます。
詰まったらまた質問させて頂きますので
その時はお願いします。

391:名無しさん@お腹いっぱい。
08/04/03 23:44:41 2gOsBbkj0
リファレンス見てて
Exp() ネピア数eのべき乗を返す関数
を見たときに自分の限界を感じた
商業科卒でろくな数学教わってこなかったから
単語調べても説明文から理解できないという詰みっぷり
例題とかどういう時に使うのかないから
プログラミングできなくてもこれ使えばなんとかなるかなフフンって思ってた自信が崩れた
理系の学校に行っとけばよかったと思ったよ後の祭り

392:名無しさん@お腹いっぱい。
08/04/04 00:45:32 7zeiblG+0
>>389のURLで紹介されていた

~CTRL::
if A_PriorHotkey <> %A_ThisHotkey%, return
if A_TimeSincePriorHotkey > 400, return
;some action


return

に、現在クリップボードを呼び出すショートカットである
Ctrl+D を試しに割り当てて呼び出したいのですが、
どうすれば良いでしょうか?
(高校中退の僕にはプログラミングは難し過ぎでした)

393:名無しさん@お腹いっぱい。
08/04/04 11:01:00 pBB/Zv3r0
リファレンスの Send の項を見て来い
わからないんならお前には無理、あきらめろ

394:名無しさん@お腹いっぱい。
08/04/04 17:41:26 1bP2SCxJ0
>>391
eなんて理系でも使わないとこじゃまったく使わねぇよw

ってか何でそんなもんを調べてるんだ?
「米の炊き方が知りたいのですが鉄の熱伝導率を調べても私には意味がわかりませんでした」って言ってるようなものだぞ

395:名無しさん@お腹いっぱい。
08/04/04 18:04:46 G2g11yCV0
"e"をネピア数っていうんだ。知らんかった。一応理系の大学でたけど。
てか、数学をコテコテいじるようなところじゃなかったしな。

自然対数の"底"って書いてあれば、高校数学程度って分かるんだが。
数Ⅱくらいか?(ってか今、数Ⅱってあんのか・・・?)

396:名無しさん@お腹いっぱい。
08/04/04 20:35:03 bHsVIBeM0
>>394
ちゃうだろ
米の炊き方なら目的がはっきりしてるから鉄の熱伝導率なんて知識が
米を炊く時に必要かそうでないか判断できる
知らないものを調べることになんか疑問あるかね
何か思い立ったときそれが必要だったとして知らなかったら不可能として諦めて損になる

397:名無しさん@お腹いっぱい。
08/04/04 20:45:23 bcgYhMW50
日本語でおk

398:名無しさん@お腹いっぱい。
08/04/04 22:48:35 5/uiSusF0
何か不幸な生い立ちでも?

399:名無しさん@お腹いっぱい。
08/04/05 08:23:27 AZM4ch+j0
Cを始めるときにC言語辞典読破してからハローワールドするみたいな

400:名無しさん@お腹いっぱい。
08/04/05 10:04:21 8a6N5frDO
>>396
お前にとってeが必要になる可能性が高いかどうかくらいは今でも判断つくだろ?
おおよそ不必要なら、さっさと基本的な事をマスターして、その後で覚えたらいいやん。

401:名無しさん@お腹いっぱい。
08/04/05 16:47:46 IvDj1tasP
覚えたらeやん

402:名無しさん@お腹いっぱい。
08/04/05 17:49:22 IwMCZKAQ0
つくしが引っ込んだぞ、おい

403:名無しさん@お腹いっぱい。
08/04/05 19:31:49 zWjQS3cI0
ゴメン

404:名無しさん@お腹いっぱい。
08/04/06 21:06:22 FTx5YlaY0
神様
あるウィンドウがクリックされた時に、
そのウィンドウにあるメニューバーの特定のメニュー項目がdisabledならば、
クリックされなかったことにしてreturnしたいのですが、
どこかにサンプルなどないでしょうか。

たとえばIEがクリックされた時、IEのメニューバー->編集(E)->コピー(C)が
disabledならクリックイベントが発生しないようにしたいです。

エロかっこいい神様、どうかおながいします。

405:名無しさん@お腹いっぱい。
08/04/06 21:25:26 nrvmy2DX0
コピー限定だけど、Disableかどうかにかかわらずとりあえず実行して
クリップボードが変更されたなら実行、そうでないなら放置、でいいのでは。

406:名無しさん@お腹いっぱい。
08/04/06 21:34:22 FTx5YlaY0
例は、分かりやすく書いただけなので、「コピー」とは別物です。
フックとかしないとだめなんでしょうか。

エロカッコいい神様、どうかおながいします。

407:名無しさん@お腹いっぱい。
08/04/06 21:47:07 JhcN1jbX0
>>404
サブクラス化

408:名無しさん@お腹いっぱい。
08/04/06 23:24:36 FTx5YlaY0
サンプル見つけました。
URLリンク(www.autohotkey.com)
エロスさまどうもあらがとうごあいまさた。

409:名無しさん@お腹いっぱい。
08/04/07 23:41:05 TGYHX9Tn0
$^f::Send {Right}
として、MS Word 上で ^f のキースクロールをくりかえすと、
たまに (数百回に一回ぐらい) Ctrl-F が入力されてしまうんだけど、
こんなもんなのだろうか?

^v::Send {PgDn}
でも Ctrl-V が入っちゃう。Sleep を入れるともっと悪くなるよ orz



410:名無しさん@お腹いっぱい。
08/04/08 01:04:03 IhpfBzS20
AutoHotkeyでも、こういうソースコードっぽいソースを書く人もいるんだな

411:名無しさん@お腹いっぱい。
08/04/08 07:59:06 BaKIsNaN0
素人質問ですが、教えてください。

① ;右クリック+ホイール↓ = タスク切り替え
  ~MButton & WheelDown:: AltTab

  ;右クリック+ホイール↑ = タスク切り替え(逆順)
  ~MButton & WheelUp:: ShiftAltTab

② ~MButton & WheelDown:: AltTab

   ~MButton & WheelUp:: ShiftAltTab

①の方法で記述すると、ダイアログにアイコンが表示されるんですが
②だと表示されず、中央ボタンを押したらアプリが切り替わります。
ですのでホイールの意味がまったくないんです。
どこが違うんでしょうか?②でも①のような操作がしたいんですが。

412:名無しさん@お腹いっぱい。
08/04/08 08:00:03 BaKIsNaN0
①のMButton→RButtonに置き換えてください。

413:名無しさん@お腹いっぱい。
08/04/08 14:24:21 AbWtGmV70
IMEが入力中かどうかを判別する方法はありますか?
変換や確定のSpace,Enterとそれ以外を分けたいんです。

414:名無しさん@お腹いっぱい。
08/04/08 16:01:49 /9Ax63ok0
IME状態を得るのなら探せば幾つか・・と即レスするところだった。
MS-IMEやATOKがはたらいているかどうか、見るスクリプトは見たことないなぁ。

415:名無しさん@お腹いっぱい。
08/04/08 16:52:37 225eMm8v0
OnかOffかという状態をみるだけならなんとでもなるんですけどね…

416:414考え中
08/04/08 18:36:01 /9Ax63ok0
AutoHotKey Threadの>>591で言われているPixelSearchを
実際に使ってみた。やれないことはなさそう。>>413

;0XC56A31 ←ATOK変換時の色(青) 0XFFFFFF ←未確定時の色(真っ白)
X2:=A_CaretX + 5
Y2:=A_CaretY + 1
PixelSearch, Px, Py, A_CaretX, A_CaretY, X2, Y2, 0X0F0400 ,0
if ErrorLevel = 0
IMEFlag=1
Msgbox, %IMEFlag%

417:名無しさん@お腹いっぱい。
08/04/09 00:48:40 8oDip4ta0
>>413に書いてある内容だけ実現したいなら、
"窓使いの憂鬱が"の方が向いている
だが、Vistaだと厳しいな

418:名無しさん@お腹いっぱい。
08/04/09 02:52:04 CYoGSIzg0
AutoHotkey から Text Services Framework (TSF) は使えないのだろうか?

419:名無しさん@お腹いっぱい。
08/04/09 21:39:19 Y/Kzcbh10
最近いじり始めたばかりだが
マウスジェスチャの動作書くのって
素人じゃ難しいかな?
どっかに詳しく書いてあるといいんだが。

420:名無しさん@お腹いっぱい。
08/04/09 22:30:24 j0FC8OmH0
>>419
マウスジェスチャならはやらせるページの作者がかなり高性能なものを作ってくれてる
それをいじるなり参考にするなりすべし

421:419
08/04/09 23:30:39 Y/Kzcbh10
一応それ入れて中見てみたけど
もう自分にはチンプンカンプンでした。
a::bみたいな簡単には行かないんですね。

422:名無しさん@お腹いっぱい。
08/04/10 22:18:00 R9AZZFcs0
RButton →←::~
みたいな書式なら楽だな

ってか、マウ筋みたいだ

423:名無しさん@お腹いっぱい。
08/04/10 22:35:21 Z+zxLkTQ0
マウ筋をAHKに移行したいのだがマウ筋でつくった設定が膨大すぎてやる気が起きんw

424:名無しさん@お腹いっぱい。
08/04/10 22:39:41 Ys36v7eM0
URLリンク(www.ms.u-tokyo.ac.jp)
こんなんあるな

はやらせるページに比べたらはるかに低機能だが

425:419
08/04/10 23:29:26 zeB47hBY0
>>424

これは具体的にどうすればいいんでしょう?

ラベルで振り分けるようにしてみました.
マウ筋 に近い挙動にしたつもり.これをincludeして,
設定ファイルにはMG_****(****にはジェスチャの動作を入れる)なるラベルを書けばいいです.
プログラム名とかも指定できて,次のような感じ.

426:419
08/04/10 23:30:29 zeB47hBY0
include?
設定ファイル?
ahkに上の文章を書き込むだけじゃダメ?

427:名無しさん@お腹いっぱい。
08/04/11 03:08:21 uA7AvC520
自分で試行錯誤できないなら止めとけよ。


428:名無しさん@お腹いっぱい。
08/04/11 18:19:46 Pc4g0Pb20
::無変換+E
~vk1Dsc07B & e::Edit
こんなんやってるんだけどIMEオン時にひらがな、カタカナ、半角カタカナと切り替わるんだけど
この切り替わるのを無効に出来ないですか?


429:名無しさん@お腹いっぱい。
08/04/11 22:53:50 JQHzlaNh0
>>428
IME側の設定を変えるのが良いかと思う

430:名無しさん@お腹いっぱい。
08/04/11 23:30:02 1LAD2LgE0
~消して、IMEがOnかOffかを調べてOnだったら無変換送らないようにするとか

431:名無しさん@お腹いっぱい。
08/04/11 23:57:14 8JtpLxde0
>>429
あーそこ忘れた。
ありがとう

430もありがとう


432:名無しさん@お腹いっぱい。
08/04/16 13:59:42 QOZL0eII0
メインスクリプトAとサブスクリプトBがあって、それぞれ共通の変数cを使いたいんだが
いわゆる戻り値という形で変数を使いたい場合はどのようにすればいいかな?
今はその方法がわからないので、iniに読み書きすることでどうにか対応してるけど
もっとスマートな方法があったら教えてくれないか
一応スクリプト晒す

A
;回数入力-確認
;c ループ回数
runwait B.ahk
iniread,lc,ahk.ini,変数,c
msgbox,ループ回数 %c%

433:名無しさん@お腹いっぱい。
08/04/16 14:02:29 QOZL0eII0
つづき

B
;回数入力
;d ループ回数
loop
{
inputbox,d,回数入力,繰り返す回数を入力(1-999)
;Cancelを押した場合
;iniに0を書き出してmsgbox出してループ脱出終了
if errorlevel<>0
{
iniwrite,0,ahk.ini,変数,c
msgbox,終了します
return
}
;1~999の数字を入力した場合
;iniにdを書き出してループ脱出終了
if d between 1 and 999
{
iniwrite,%a%,ahk.ini,変数,c
return
}
;1~999以外の数字を入力した場合
;msgbox出してループ戻り
else
msgbox,回数は1-999の間で入力
}

Bはいろいろなスクリプトで使いまわしたいので
それぞれ独立した形でどうにか実現したいんだ・・・

434:名無しさん@お腹いっぱい。
08/04/16 17:55:30 KChtUcd/0
Bを関数化して汎用ライブラリにすりゃいいんじゃないの?
AなりCなり好きなメインスクリプトから Includeして使えばいい

435:名無しさん@お腹いっぱい。
08/04/16 23:07:32 dzf8gFoh0
>>434
(・∀・)デキター
どうもありがとう

436:名無しさん@お腹いっぱい。
08/04/16 23:34:07 fqJFcYl60
このスクリプト(URLリンク(tryhost.net)
動いている人いますか?

こちらでは

Error at line 94.

Line Text: List %FAV_DIR%
Error: This line does not contain a recognized action.

The program will exit.

というエラーになってしまうんですが。

437:名無しさん@お腹いっぱい。
08/04/16 23:44:44 nEMDvuYT0
そんな行はないぞ。手を入れてないか?

438:名無しさん@お腹いっぱい。
08/04/16 23:46:22 xXoSaRM/0
変数内の文字列で条件分岐したいのですが、
Tabってどうやって検索すればよいのでしょうか。
\tでも`tでもないんですね。

439:名無しさん@お腹いっぱい。
08/04/16 23:54:27 fqJFcYl60
>>437
FavoriteFinder.ahk の94行目を global List, FAV_DIR に変更したら一応動いたんですが
リストが取得できていないようです。

手を加えたのは12行目のMigemoOpenのところだけです。

440:名無しさん@お腹いっぱい。
08/04/17 01:01:28 tiSAGbZG0
>>438
%A_Tab%

441:名無しさん@お腹いっぱい。
08/04/17 07:48:16 pTaNcO/h0
;; EBWinで辞書検索
#s::
clipboard=
Send,^c
ClipWait
SetEnv,word,%clipboard%
run,C:\applications\EBWin\EBWin.exe /C=1 /S=%word%
return

442:名無しさん@お腹いっぱい。
08/04/17 08:27:20 BPEkA5hT0
>>439
気になったので調べてみたよ。

Files = %Files%%fn%`n

ret = %ret%%FAV_DIR%%item%.url`n



Files := Files . fn . "`n"

ret := ret . FAV_DIR . item . ".url`n"

に変える。

`nが何故か消えちゃって全部つながっちゃうのが原因だったみたい。AHKのバグなのかな??
しかし、作者さんの言うように検索がどうもうまくいかないみたい。

443:名無しさん@お腹いっぱい。
08/04/17 08:48:06 BPEkA5hT0
訂正:

ret = %ret%%FAV_DIR%%item%.url`n

の方は修正しなくても大丈夫みたい

444:名無しさん@お腹いっぱい。
08/04/17 15:59:55 pTaNcO/h0
>>442-443
ありがとうございます。

まだ使い始めたばかりなんですが色々できて面白そうですね。

445:名無しさん@お腹いっぱい。
08/04/18 01:51:41 4Mol9YLc0
Send系で、^や+等の特殊キーやアルファベットの大文字等のShiftを押しながら入力する文字が化けることってない?
^vで貼り付けをしたはずが単にvだけだったり、括弧()を入力したはずが89になったりとか…
Delayの値を増やしても時々発生するしバグなのかな

446:名無しさん@お腹いっぱい。
08/04/18 09:22:21 Tx6njfDx0
>>440
助かりました。ありがとうございます。

447:名無しさん@お腹いっぱい。
08/04/18 18:10:02 VCKaK5TL0
;Mac用ユーティリティ Smart Scroll X にlogiマウスのフリースピンっぽいことができるスクロールに慣性つける機能があるけど
;Win用ユーティリティでそれができるものがたぶんないと思うので作ってみたがが・・できたものは別物orz

;ホイールを速く回せば連続スクロールに変わり逆回転で止める(連続スクロール中に速度を変えることもできない・・
~WheelDown::
Wheelstate:=1 ; スクロールUpの停止条件
If (A_EventInfo > 2) ; ホイールの速度が設定値を超えると連続スクロール
Loop, 100 { ; 暴走対策・・
Sleep, 30 ; スクロール速度調整用のウェイト
Acceleration:=A_EventInfo*A_EventInfo*A_EventInfo ; スクロール加速度・・とりあえず3乗してみた
Loop,%Acceleration% {
if (Wheelstate=0) ; WheelUpが入力されるとスクロール停止
return ; breakしないでもいいんだろうか?
send,{WheelDown}
}}
return
~WheelUp::
Wheelstate:=0 ; スクロールDownの停止条件
If (A_EventInfo > 2)
Loop, 100 {
Sleep, 30
Acceleration:=A_EventInfo*A_EventInfo*A_EventInfo
Loop,%Acceleration% {
GetKeyState, Wheelstate, WheelDown
if (Wheelstate=1) ; WheelDownが入力されるとスクロール停止
return
send,{WheelUp}
}}
return

; これをもっとまともにできないだろうか・・?

448:名無しさん@お腹いっぱい。
08/04/19 01:18:50 BmW3iOlc0
~WheelUp::以下の
GetKeyState, Wheelstate, WheelDown
を消し忘れてた・・・それ以前の問題だろうけど・・

449:名無しさん@お腹いっぱい。
08/04/19 02:31:09 iBWV1p7A0
1) スクロール速度用の変数をグローバル変数でもつ
2) ホットキー設定では、スクロール速度の変数だけを操作して、何も送信しない("~"はつける)
3) タイマで一定のサブルーチンがコールされるようにする
4) 3)で呼ばれるルーチン内で指定の速度分のスクロールをPostMessageで利用して送る
ex) PostMessage,522,%wParam%,%lParam%,%cls%,ahk_id %hwnd%

って感じかなぁ。
トラックポイント派なので検証できず。

450:名無しさん@お腹いっぱい。
08/04/19 15:49:36 7DcoF6RP0
zを押したら
jとvをタイプしてくれるようにするには
どう書けばいいのか教えてください

451:名無しさん@お腹いっぱい。
08/04/19 16:07:29 7DcoF6RP0
::send,jv

452:名無しさん@お腹いっぱい。
08/04/19 19:35:50 kQy+E4pv0
なまず日記が復活して、楽しみにさかのぼって読んでたら・・・
もう面白いスクリプトは書いてくれなさそうで残念だ。

453:名無しさん@お腹いっぱい。
08/04/20 06:21:20 QN2yrlSL0
>>449
よくわからなかったが・・それらのキーワードをヒントに調べてみると
どうやら>>1のなまず日記の中で(3)(4)らしいことやってるようなのでそのあたり参考(むしろパクリつつ)作り直してみた・・・
1;
#Persistent
#MaxHotkeysPerInterval 300
FreeScroll("init",0) ; タイマ0でないと遅くなる・・
FreeScroll("setDefault",1.5,120,1) ; 加速度"1.5",最小スクロール幅"120",スクロール開始速度"1"
return
WheelDown::
FreeScroll("down")
return
WheelUp::
FreeScroll("up")
return
FreeScroll(dir = "", param1 = "", param2 = 0, param3 = 0)
{
static WheelDownCounter ; down方向のホイール割り込み回数
static WheelUpCounter ; up方向のホイール割り込み回数
static Acceleration ; スクロール加速度
static MinimumScrollValue ; 最小のスクロール量(1ノッチ
static FreeScrollSpeed ; 連続スクロールに切り替えるホイール速度
global FreeScrollState ; 連続スクロールの状態 0=通常スクロール,1=連続スクロール開始フラグ,2=連続スクロール中
global ScrollValue ; スクロール量(速度)
global cntrl ; スクロールコントロールウィンドウ?
if(!dir){
if(WheelDownCounter || WheelUpCounter){ ; ホイール入力があったとき
CoordMode,Mouse,Screen
MouseGetPos, posX, posY, window , cntrl, 3 ; PostMessageのために位置とウィンドウを取得
; WinActivate, ahk_id %window% ; ホイールでウィンドウをアクティブにする・・しかしスクロールがガクガクになる

454:名無しさん@お腹いっぱい。
08/04/20 06:21:52 QN2yrlSL0
;2
ScrollValue := Round((WheelDownCounter ** Acceleration) * MinimumScrollValue * -1) ; スクロール量の計算
ScrollValue := ScrollValue + Round((WheelUpCounter ** Acceleration) * MinimumScrollValue) ; スクロール量の計算
Critical
WheelDownCounter = ; ホイールDownカウンタをリセット
WheelUpCounter = ; ホイールUpカウンタをリセット
Critical, Off
Gosub, FreeScrollCheck ; 条件が面倒なので外に出した・・
}}
else if(dir == "init"){ ; 初期化
Critical
if(!Acceleration)
Acceleration = 1.5 ; 1で加速なし
if(!MinimumScrollValue)
MinimumScrollValue = 120 ; アプリによってはこれより低いとスクロールしないらしい
if(!FreeScrollSpeed)
FreeScrollSpeed = 1 ; 大きいほどスクロール切り替えに要する速度が速くなる
Critical, Off
if(!FreeScrollState)
FreeScrollState = 0 ; タイマ0でないと遅くなる・・
if(!param1)
time = 0
SetTimer, FreeScrollHandler, %time%
}else if(dir == "setDefault"){ ; Defaultの設定
Critical
if(param1 != 0)
Acceleration = %param1%
if(param2 != 0)
MinimumScrollValue = %param2%
Critical,Off

455:名無しさん@お腹いっぱい。
08/04/20 06:22:17 QN2yrlSL0
;3
if(param3 != 0)
FreeScrollSpeed = %param3%
}else if(dir == "down"){
WheelDownCounter++
if(WheelDownCounter > FreeScrollSpeed && FreeScrollState == 0) ; 連続スクロールのホイール速度取得
FreeScrollState := 1 ; 連続スクロールの開始フラグ
}else{
WheelUpCounter++
if(WheelUpCounter > FreeScrollSpeed && FreeScrollState == 0) ; 連続スクロールのホイール速度取得
FreeScrollState := 1 ; 連続スクロールの開始フラグ
}
if(ScrollValue == 0) ;スクロールしないときは終了。これがないとスクロールバーがアホになる・・
return
WinGetPos,winX,winY,winW,WinH, ahk_id %cntrl% ; コントロールの真ん中の座標・・?
if(posX == "")
posX := winX + winW // 2
if(posY == "")
posY := winY + winH // 2
wparam := (posY << 16) | (posX & 0xffff)
lparam := ScrollValue << 16
PostMessage, 522, %lparam%, %wparam%, , ahk_id %cntrl%  ; メッセージを送りスクロールする
if(FreeScrollState == 0) ; 通常スクロールのときはメッセージを送ったあとスクロール量をリセット
ScrollValue := 0
sleep,20 ; 増やすとスクロールは荒くなるが重いウィンドウでのスクロール停止が早くなる
return
}
FreeScrollCheck:
{ ; 通常スクロール以外の条件分岐
if(FreeScrollState == 0) ; 通常スクロールならさっさと抜ける

456:名無しさん@お腹いっぱい。
08/04/20 06:23:08 QN2yrlSL0
;4
return
if(FreeScrollState == 2 && FreeScrollValue > 0 && ScrollValue < 0){ ; 連続スクロールUpをWheelDownで止める
ScrollValue := 0
FreeScrollValue := 0
FreeScrollState := 0
return
}
if(FreeScrollState == 2 && FreeScrollValue < 0 && ScrollValue > 0){ ; 連続スクロールDownをWheelUpで止める
ScrollValue := 0
FreeScrollValue := 0
FreeScrollState := 0
return
}
if(FreeScrollState == 1 && ScrollValue != 0){ ; 連続スクロール開始時
FreeScrollValue := ScrollValue ; FreeScrollValueは連続スクロールの方向を保持しているような・・
FreeScrollState := 2
return
}}
FreeScrollHandler: ; タイマハンドラ FreeScroll()コールするだけ
{
FreeScroll()
return
}

長くなってしまった・・
スクロールがガクガクならずにホイールでウィンドウをアクティブにするにはどうすれば・?
他にもなにかあれば・・

457:409
08/04/23 22:41:57 FJVhdogM0
$^f::
BlockInput On
Send {Right}
BlockInput Off
return

としたら >>409 の問題現象が出なくなった。こんなもんで良いのだろうか…
AHK Version 1.0.47.06

>>445
同じ問題のように思えるので、BlockInput を追加して試してみてくれるとうれしいな。

458:名無しさん@お腹いっぱい。
08/04/27 01:39:30 TGEhJA8Z0
エクセルの永遠のテーマである
「入力」モードから、「編集」モードに行く時、
F2押さないと、移行しないっていう面倒な仕様。。

ぐぐるとみんなあの仕様にイライラしてて
でも解決策ないみたいで。

autohotkeyなら、
入力開始したら、左下ステータスの文字を判定して、すぐ編集モードに移るのができそうな気がして。

もし「超々々々々」気が向いたら、誰かあの仕様を回避するスクリプト書いてくれませんか

459:名無しさん@お腹いっぱい。
08/04/27 14:50:06 6JZuf2bE0
F1ヘルプさえヌッコロしとけばF2編集は別に苦痛じゃない。
Windows標準ショートカットなので慣れれば忘れることもそうないし。

460:名無しさん@お腹いっぱい。
08/04/27 16:31:27 LWYvIa7f0
F2の何が面倒なんだ?
選択項目編集としては標準キーバインドじゃん
せいぜいF2から他のキーに変えたいなら分かるが

モード移行は自覚的に行いたいし自動的に
編集モードとかのほうが糞仕様だと思うが

461:名無しさん@お腹いっぱい。
08/04/27 16:51:19 4OSW5I0L0
Vimのノーマルモードくらい非編集時に英数字キーに機能が割り当てられているわけではないし、
こういった直接入力の要望が出てくるのはそんなに不自然なことではないと思うけど…

作ってやれよと言うつもりは毛頭ないけど、なんでも頭ごなしに否定するのはどうなのさ。

462:名無しさん@お腹いっぱい。
08/04/27 18:02:31 GNgnzel70
Ctrl+何かにF2を割り当てるような定義じゃ駄目なのか、それほどせっかちさんなのか

463:名無しさん@お腹いっぱい。
08/04/27 18:07:54 fR4TStBp0
セルを上書きしたい場合は、一度内容を消すのかな?



464:名無しさん@お腹いっぱい。
08/04/27 18:13:59 4hZaxx9B0
AHKで、エクセル中は無変換キーあたりをF2に割り当てたらどうよ?

465:名無しさん@お腹いっぱい。
08/04/28 05:57:30 reBjcHgv0
>>458 うちの会社はこうだが、何をぐぐったんだ?みんなってお前一人だろ。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
SendKeys "{F2}"
End Sub

466:名無しさん@お腹いっぱい。
08/04/28 12:08:52 SAJE0Db70
Vistaに導入する際に、UACは特に気にせずインスコしても動きますか?
導入時の注意事項があれば教えてください。

又、mousegesture.ahkをVistaで使ってる人、問題点などないでしょうか?

467:名無しさん@お腹いっぱい。
08/04/28 12:24:34 UjhgWZ4K0
CUIのツールが標準出力に吐き出した値を拾って
ahkのGUIでその数値を加工して表示し隊のですが
どうすれば標準出力から拾ってこれますか?

468:名無しさん@お腹いっぱい。
08/04/28 14:28:05 KqItUE2c0
スレチだけど、Windows Script HostとかPowerShellを使うほうがいいような

469:名無しさん@お腹いっぱい。
08/04/28 15:46:22 Bwb7i5Fk0
>>467
そのCUIのツールは、リダイレクトで結果をファイルにはき出させて、
AHKからそのファイルの中を見る
とか・・・

470:名無しさん@お腹いっぱい。
08/04/28 16:51:32 ARGm8jsa0
>>466
基本、あまり問題は起きない。
マウスジェスチャもつかえる。

でもこれまで遭遇した問題は、
ホットキーをランチャーがわりにして、
メッセンジャーを立ち上げようとしたときにものすごいディレイがあるとかだったかな・・・・

とりあえずオフにしてる。

471:466
08/04/28 17:56:50 mttKTXzzO
>>470
ありがと。勢いインスコしてみたがmousegesture.ahkは問題ないみたい。
会社のXPマシンと、ウチの旧XPマシンで2ヵ月ほど前にmousegesture.ahkを導入したらマウスジェスチャ無しで操作するのが厳しくなっちゃって…。
1年程前に買ったVistaマシンはフリーソフトで汚さないwって決めてたんだけど、マウスジェスチャできないから旧マシンを使う頻度の方が高くなっちゃってたんですよ。
これで快適にVistaが使えます。

472:名無しさん@お腹いっぱい。
08/04/28 19:26:29 UjhgWZ4K0
>>468,469
ありがとうございます
こういう用途にはahkは向いてないみたいですね
おとなしく標準出力以外の出力方法があるソフトを探すか
他のスクリプト言語に切替えます λ..........トボトボ


473:名無しさん@お腹いっぱい。
08/04/28 21:32:35 w8H8giGfO
規制中なので携帯から簡単に。
cmdret.dllを使うと楽。

474:467
08/04/29 00:23:17 TKo6PHKn0
>>473
おお、こういうのがあるんですね
Forumのサンプルコード見ながら頑張ってみます
ありがとうございました

475:名無しさん@お腹いっぱい。
08/04/30 23:31:11 ZElAylVP0
AHKでコンパイルした実行ファイルを2つ起動していると、
片方で#IfWinActiveが効いた瞬間にもう片方が動作
しなくなってしまうのですが、なぜでしょうか。
Reloadすると動作するようになるのですが、いちいち面倒です。

476:名無しさん@お腹いっぱい。
08/05/01 19:30:50 Fgucx+QS0
Menu, Showで表示させたメニューなんですが、
キーボードでEscapeキーを押すと消えてくれますが、
Send,{Escape}で消えてくれません。解決策はあるでしょうか?

477:名無しさん@お腹いっぱい。
08/05/01 20:13:18 agwV3sli0
>>476
別のAHKスクリプトからじゃないと消せないんじゃないだろか。

478:名無しさん@お腹いっぱい。
08/05/01 20:59:51 /6hzVxqK0
{ESC}
でいいんじゃまいか

479:名無しさん@お腹いっぱい。
08/05/02 00:25:36 Q776ljbS0
>>465
そのVBAは矢印キーでセル移動するだけで必ず編集modeになるな
酷すぎるw

480:名無しさん@お腹いっぱい。
08/05/02 05:19:12 34mNTVls0
AHKスレらしくエクセルのdll呼び出してずばっと解決してくれる神はおらんのか?

481:名無しさん@お腹いっぱい。
08/05/03 09:23:38 4YTov+QA0
>>458
URLリンク(www11.axfc.net) DLKey=ahk
あまり試してない。
古いExcel使って試したから新しいExcelだとだめかも。(Excel 2000使用)

編集状態のままセル移動のオマケ付き。
Excelって、テキストデータの切り貼りとか整形ぐらいで たまにしか使ってなかったから
編集状態維持したままセル移動出来ないの知らんかった。

設定はエディタで編集して。

482:481
08/05/03 10:39:01 4YTov+QA0
バグってた
URLリンク(www11.axfc.net) DLKey=ahk

483:名無しさん@お腹いっぱい。
08/05/03 15:49:27 cnmVYKra0
ウィンドウを垂直方向・水平方向それぞれに
最大化・リストアのトグルをするには
どうすればいいでしょうか?
窓使いの憂鬱でいうところのWindowVMaximize,
WindowHMaximizeを実現したいのですが・・・

484:名無しさん@お腹いっぱい。
08/05/03 20:16:23 8H08QxQU0
WinGetPosで直近のサイズを取得してクラスやタイトルと一緒に保存、
WinMoveで縦なり横なりを最大化したサイズに変更
戻す時は直近のサイズをまた取得してどちらかがマックスだったら
保存してあるサイズに戻す、とか

485:名無しさん@お腹いっぱい。
08/05/03 21:30:24 g1xl/KBL0
>>458 出てこい。つか、>>482でも動かない希ガス。

486:481
08/05/03 21:45:23 4YTov+QA0
思い付きで機能追加しまくったんで使いもんにならなくなってた。
URLリンク(www11.axfc.net) DLKey=ahk

・日本語入力確定の為に[Enter]押しても次のセルに移ってしまう。
・「編集開始1発目のキーが [BS]か[Del]でセルクリア」が不完全。
・[F2]自動モードOff時は「[BS]か[Del]でセルクリア」もOffにした。
・[F2]自動モードをOffにした時、[F2]のホットキーまでOffにしていたので、[F2]で
 編集モードに入った時、「自動でカーソル位置の変更」が機能しなかった。

Excel2000しか試せないからExcelのバージョンによって挙動が違う場合は正直お手上げ。

>>485
全く機能が働かないならバージョン違いによる可能性大。

487:481
08/05/03 22:15:29 4YTov+QA0
Excelのバージョン違いによるタイトル違いの可能性を忘れてた。
125:SwitchMode:
126:  Hotkey,IfWinActive,Microsoft Excel -  <-ここが違うと全部だめ
127:  SetHotKeys(Excel_Label,Excel_HotKeys)

あと、設定にあるクラス名が一致してれば ある程度は動くはず。

488:名無しさん@お腹いっぱい。
08/05/04 00:13:11 dJtYYrWj0
斜め黄泉のおっさんですがDLLを1つ作成して
WH_KEYBOARDをグローバルフックをしたらいいとおもうよ
URLリンク(www.kumei.ne.jp)
URLリンク(www.autohotkey.com)

489:名無しさん@お腹いっぱい。
08/05/04 00:18:30 Jy+nA7+u0
>>486

458じゃないですが、いただきました。

Excel2000と2003で今のところ問題なし。というほど色々弄くってはいないけど・・・
便利ですねー。今まで無変換キーにF2を割り当てていたのだが、これ使おうかなぁ。
ただ、AHKのスクリプト3つ(内1つはMousegesture.ahk)走らす事になるからちと悩みどころ。
とりあえず様子見てみます~。




490:481
08/05/04 00:47:24 35cVLblb0
>>488
それ作りはじめに思った。
全文字キー1個1個打ちながら、こんなのタイマー回してExcel見つけたらスレッドフック
かけちった方がはえーなって。処理する必要ないときはスルーすれば済むし。

>>489
2003はOKと。報告㌧。
#Includeで他のスクリプトのケツに読み込んで、このスクリプトの1番上に適当なラベル名を
付けて、他のスクリプトの起動時にGosubで呼び出せば多分問題なく使えるとおも。

491:名無しさん@お腹いっぱい。
08/05/04 18:44:02 jcnqkmNH0
Shift+テンキーの「.」でカンマ「,」を出そうとしていますが
+NumpadDot::,
と記述してもDelete(デフォルトの動作)になってしまいます。
どうすればよろしいでしょうか、お知恵を拝借したいです。

492:名無しさん@お腹いっぱい。
08/05/04 18:44:52 cGN/EYVF0
NumLockオフったら

493:名無しさん@お腹いっぱい。
08/05/04 22:34:17 ydz3yyO/0
Spaceと数字のコンビネーションでプログラムを実行しようと
下のように書いたのですが、単にSpaceを入力するとき
キーリピートが利きません。
キーリピートが利くようにはできないでしょうか?

Space & 1:: Run, "c:\path\to\exe"
~Space:: Send, {Space}
~*Space:: return

494:名無しさん@お腹いっぱい。
08/05/04 23:44:10 KBkpDPw80
~Space & 1:: Run, "c:\path\to\exe"
だけでいいだろ

495:名無しさん@お腹いっぱい。
08/05/05 00:34:26 tOYYOoT+0
>>494
ありがとうございます。できました。
が、当たり前かもしれませんがSpaceを押して1を押す前の間に
Spaceが入力されてしまうんですね。
Spaceを押して直後に1が入力されればSpaceはモディファイアのように働き、
何も入力されなかったときだけSpaceを入力するようにはできますでしょうか?

496:名無しさん@お腹いっぱい。
08/05/05 01:10:00 Tkv85+Ez0
なんでSpaceなんて一番使用頻度の高いKeyを修飾keyとして使うという発想が沸くのかが疑問だ…。

497:名無しさん@お腹いっぱい。
08/05/05 02:14:41 9F1eIESU0
今Windows標準のデフラグソフト「ディスク デフラグ ツール」を起動させてCドライブの
デフラグが終わったら表示されたウィンドウを閉じて次に自動的にDドライブのデフラグを開始
させるような一見簡単そうなスクリプトを組んでいます。Windows標準のデフラグが2つ同時
や1個目終了ご2個目等のように実行できない為、退席時間が長い場合に有用だと思っています。
スクリプトを晒します。
#persistent
run, %SystemRoot%\system32\dfrg.msc, C:\WINDOWS\system32
;sleep, 2000
setKeyDelay, 200
SetTitleMatchMode, 2
;ifWinActive, ahk_class MMCMainFrame
winWaitActive, ahk_class MMCMainFrame
{
send, {TAB}{SPACE}
}
;winWaitActive, ahk_class #32770
winWaitActive, , 最適化が完了しました
{
msgbox, ココまできたよん
sleep, 500
send, {ALT DOWN}C{ALT UP}
sleep, 200
mouseClick, LEFT, 80, 116
sleep, 200
send, {TAB 2}{SPACE}
}
今のところこんな感じなのですが、どおおおおおおしてもCの最適化終了後の「最適化が完了しました」
ウィンドウをwinWaitActiveで取得できません!ahk_class指定してもダメだし(ahk_class #32770)
ウィンドウタイトルは本体のデフラグと全く同じタイトルなのでいきなり判定されてしまうし、
ウィンドウテキストでチェックかけても取得できず。 URLリンク(lukewarm.s101.xrea.com) を
見てみるとWinTitleとWinTextぐらいでしか指定できないみたいで、打つ手なしと言う感じです。
いくら試行錯誤しても解決できません・・・。ご教示よろしくお願い致します・・・。

498:名無しさん@お腹いっぱい。
08/05/05 02:38:52 tOYYOoT+0
>>494
一番使用頻度が高いので大きくて押しやすくなっているからです。
AHK自体いじり始めたばかりなのですが、
すばやく操作するのに便利かと思いやってみよう思いました。
やはり何らかのモディファイアとのコンビネーションに
するしかないでしょうか?


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