5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

AutoHotKey Thread

1 :名無しさん@お腹いっぱい。:04/10/23 20:35:38 ID:Flqkxif4
AutoHotKeyはキーボードやマウスなどに様々な機能を割り当てる常駐ユーティリティです。
スクリプトで自由に動作を設定できます。
ポップアップメニューや入力ボックスなどのGUIを表示することができ、
応用次第で使い方は無限に広がります。

公式サイト
http://www.autohotkey.com/

AutoHotkeyを流行らせるページ
http://lukewarm.s41.xrea.com/AutoHotkey/

316 :名無しさん@お腹いっぱい。:05/03/17 22:37:45 ID:0n8rPfUR
S and S がうまくいかねぇ。
あ、いや、別に常用するわけじゃないんだが、なんとなくやってみたくて。
ごり押しなら可能なのは分かるんだが、スマートに実現出来んもんか…

317 :名無しさん@お腹いっぱい。:05/03/18 06:41:36 ID:dqftPDrk
こんなのみつけた

> tp://limz80.at.infoseek.co.jp/program/old_ctrl.html

> グローバル・フックという Windows の機能を使用して、CapsLock キーの挙動を見てみた事があるのですが、
> このキーは特殊な扱われ方をしているらしく、普通のアプリケーションやサービスでは
> 「キーが押された事は分かっても、キーが離された事は分からない。ついでにキーが押され続けている事も分からない。」キーです。
> キー入力を司る何かのデバイス・ドライバ (多分 IME…ひょっとしたらキーボード・クラス・ドライバや日本語 106 キー・フィルタ・ドライバかも) が
> このキーの入力に手を加えているのでしょう。


ctrl と capslock の入れ替えは日本語Windowsでは無理っぽいな。
AutoHotKeyのページのChangeLog 1.0.26 で、capslock のサンプルが載っていることから、
多分英語Windowsでは使えてるんだろうな。

俺はAutoHotKeyを起動しているときだけのキー入れ替えは諦めた。
レジストリでキーマップ変えてる。


318 :名無しさん@お腹いっぱい。:05/03/18 07:47:32 ID:5gcuaKn5
入換えは別にいいんだけど(ctrlの位置は慣れちゃったし)
ベストポジションに使いもしないキーがあるのは勿体ないんだよね
>317のリンク先のヲサンも書いてるけど何とか活用したかったんだが、残念

>>316
S and S ってなんだ?よくわかんね
LShift & RShiftってことか?

319 :名無しさん@お腹いっぱい。:05/03/18 07:53:24 ID:HD7sW+cf
S and S は Space & Shiftの略。
Spaceキー普通に押して離したらA_Space出力
押しっぱなしで、他の文字キー押すときはシフトキーの働きするヤツ。

320 :名無しさん@お腹いっぱい。:05/03/18 09:10:22 ID:pvMfLqSV
GUIのeditboxってIMEの変換中に一文字しか表示されないんだけど回避方法しってるやつ居る?
INPUTBOXは大丈夫なんだけど…

321 :名無しさん@お腹いっぱい。:05/03/18 14:10:35 ID:/hDSORYt
>>319
Space Up:: Send,{Space}
Space & a:: Send,+a
Space & b:: Send,+b
Space & c:: Send,+c

みたいな?
CapsLock ONの状態でも大文字出力になっちゃうけど
(うちの環境だとCapsONで Send,+A しても小文字出力にはならなかった)

322 :名無しさん@お腹いっぱい。:05/03/18 23:27:08 ID:edlHxfYp
解説が足りなかったな。俺も入れ替えはしてないよ。
CtrlはそのままでCapsLockを色々活用してる。
具体的に言うと、CapsLockと変換キーをレジストリで入替えて、
スクリプトは変換キーで書く。
こんな具合 ↓

1. まずこれをダウンロード
tp://homepage2.nifty.com/winfaq/w2k/capsctrl.reg

メモ帳などで開くと、 1d となっている箇所が2箇所あるので、
この値を2箇所とも 79 に書き換える。

2. 保存したファイルを実行すると、レジストリに取り込まれる。

3. Windowsを再起動 (再起動後はCapsLockと変換キーが入れ替わっている。)

4. スクリプト例

sc079 & $j::Send,{Left}
sc079 & $m::Send,{Return}
sc079 & $c::Send,^c
sc079 & $v::Send,^v

大文字固定/元に戻す がShift + 変換 だから注意。
他の人がPC触るときは、レジストリの該当値を削除して再起動の必要あるが、
大文字に固定する人はあまりいなそうだからそんなことしなくても気づかれないかも。
変換キー使う人は他のキーに変えればいいだろ。
レジストリは正しく使えば別に問題ないから毛嫌いしなくてもいいだろ。
キーボードドライバいぢってそうな訳分からんソフトいれるよりいいと思う。



323 :名無しさん@お腹いっぱい。:05/03/18 23:37:41 ID:PTrOH4Hy
GPLなんだし、
そこらへんの日本語環境特有のバグをフィックスしたAutoHotKeyJPみたいなのキボン…


324 :318=321:05/03/19 00:09:58 ID:pX2qc26u
S and S、結構おもろいかも

aList=1|2|3|4|5|6|7|8|9|0|-|\|q|w|e|r|t|y|u|i|o|p|@|[|a|s|d|f|g|h|j|k|l|;|:|]|z|x|c|v|b|n|m|,|.|/|Tab|Enter|Esc|BS|Del|Ins|Home|End|Pgup|Pgdn|Up|Down|Left|Right|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12
aList=%aList%|sc00D  /* ^ */
aList=%aList%|sc073  /* 右下 \ */
Loop,Parse,aList,|
  Hotkey, Space & %A_LoopField%, SandS
return

SandS:
  Loop,Parse,A_ThisHotkey,%A_Space%
    ifEqual A_index,3, SetEnv,Key,%A_LoopField%
  StringLen, len, key
  ifNotEqual,len,1,  SetEnv,key,{%key%}
  GoSub, ModifierKeyCheck
  Send,%modifier_key%%key%
return

ModifierKeyCheck: /* 同時押し修飾キーチェック */
  modifier_key = +  /* Shift */
  GetKeyState,work,Ctrl,P
  ifEqual,work,D, SetEnv,modifier_key,^%modifier_key%
  GetKeyState,work,Alt,P
  ifEqual,work,D, SetEnv,modifier_key,!%modifier_key%
  GetKeyState,work,LWin,P
  ifEqual,work,U, GetKeyState,work,RWin,P
  ifEqual,work,D, SetEnv,modifier_key,#%modifier_key%
return

Space Up:: Send,{Space}

325 :名無しさん@お腹いっぱい。:05/03/19 00:40:14 ID:pX2qc26u
>>322
レジとAutohotkeyの2段がまえにするのね。詳しい解説サンクス
つかその方法 前に昔流行らせるページに書込んでたわ 漏れ
http://lukewarm.s101.xrea.com/test/read.cgi/bbs/1095764510/12

結局入換えできる(使ってない)キーがなくて断念したような
キーボードに存在してないF13〜F20とかを割り当てられると良かったんだけど
レジ弄ってキーボード入換える系のフリーソフトでは見当たらなかった。

F12が sc058 だから、sc059 あたり割り当てればいいのかな…
貰った capsctrl.reg 弄って試してみるわ、アリガトン

326 :名無しさん@お腹いっぱい。:05/03/19 00:53:16 ID:39aRjgDj
>>323
>>263をみればわかるように、AutoHotKeyはドライバレベルの実装ではないと思う。
だから、原理的に無理だと思う。
ドライバ書くしかないし、書けても新しいIMEでたらまたドライバ書き直し(多分)。
きちんと書かないと、ノートパソコンなどで使ったときに下手するとOSハングアップするかもしれん。


327 :名無しさん@お腹いっぱい。:05/03/19 02:07:27 ID:w+azIIRZ
そこで繭と合流

328 :名無しさん@お腹いっぱい。:05/03/19 03:15:23 ID:rSCP/6b2
タスクトレイすっきり化計画はなかなか上手くいかないなw

329 :名無しさん@お腹いっぱい。:05/03/19 05:35:11 ID:uC3uGflC
autohotkey みたいなスクリプト的な拡張はともかく、
単なるキーボード入れ替え機能は windows で提供してくれても
いいと思うねえ。X なんか実際ユーザーレベルで変えられるんだし。

330 :名無しさん@お腹いっぱい。:05/03/19 21:27:33 ID:UeNuGxMr
>>321,324
そうそう、そんな感じ。
一部の人にはキーカスタマイズソフトではコレができるか否かが肝になるらしい。AHK布教にはいいかなと。
繭では One Shot Midifier ( modifer = 広義のシフトキー ) と言う機能で一発登録できる。

>>329
ユーザにカスタマイズさせない方向に持っていきたいのがM$でしょ。

331 :名無しさん@お腹いっぱい。:05/03/20 12:33:32 ID:RSTZJfjG
S and S に興味が有って >324 をコピペしたんですが
エラーになってしまいます。何故?他の人は大丈夫だったんですか。

332 :324:05/03/20 16:19:31 ID:DfvGvyZp
全角スペース → 半角2スペース

あとスレに張るのに行コメント ; だとわかりにくいんで範囲 /* */ にしたんだけど、
/* 同時押し修飾キーチェック */ と /* Shift */ がエラってるっぽい
→ 行コメント ; (半角セミコロン) へ置換えてクレ

333 :名無しさん@お腹いっぱい。:05/03/20 19:02:49 ID:uMhXOhSW
あぁ、何となく思いつきでやってみたら出来たわ。数分で書いたスクリプトだから色々詰めなきゃいけない所はあるけど。
本来ならShiftDownの間にいずれかのキーが押されてなきゃSpace吐くようにしたいんだけど
「どれでもいいからキーが押された」ってことを拾えない(漏れが知らない?)んでキャレットが動かなきゃSpace吐くってようにした。(つまりバグは内包してる。)

; S and S
Gosub,InitCaret
Space::
 if(CX == -9999 && CX == -9999)
 {
  CX := A_CaretX
  CY := A_CaretY
 }
 Send, {ShiftDown}
 return
Space Up::
 Send, {ShiftUp}
 If(CX == A_CaretX && CY == A_CaretY)
 {
  Hotkey,Space,off
  Send,{Space}
  Hotkey,Space,on
 }
 Gosub,InitCaret
 return
InitCaret:
 CX := -9999
 CX := -9999
 return



334 :名無しさん@お腹いっぱい。:05/03/20 19:06:22 ID:uMhXOhSW
行頭インデント全角スペースの方が分かりやすいね orz

335 :名無しさん@お腹いっぱい。:05/03/20 20:46:35 ID:DfvGvyZp
>どれでもいいからキーが押された
漏れも最初Inputでいけそうな気がして軽く試してみたんだが
Spaceのキーリピート発生しちゃうのとEndKeyを ShiftUpに指定できないので諦めた
うまいこと設定してやれば使えるのかも知んないけど

336 :名無しさん@お腹いっぱい。:05/03/20 20:47:43 ID:DfvGvyZp
× EndKeyを ShiftUpに
○ Space Up をEndKeyに

337 :名無しさん@お腹いっぱい。:05/03/20 23:59:53 ID:uMhXOhSW
よく見たらひどいスクリプトだなぁ。CXとCYのつもりだったが…
推敲はするもんだねorz

338 :名無しさん@お腹いっぱい。:2005/03/21(月) 19:38:15 ID:3lfi8roc
>>337
推敲したやつを是非!

339 :333:2005/03/21(月) 19:58:02 ID:5M52dZ2k
>>338
あぁ推敲っていっても>>333そのままでも動くと思うけど、訂正点は、

4行目
if(CX == -9999 && CX == -9999)
     ↓      ~~~
if(CX == -9999 && CY == -9999)
            ~~~
下から2行目
CX := -9999
~~~ ↓
CY := -9999
~~~
にするだけ。
>>333 でも書いたけど、S and Sってこんな感じってサンプルでバグ内包してるから常用しないように。
キャレットの移動がないキーとの組み合わせをやったあとにスペース吐くんで。
(分かってて使うぶんにはいいけど。)

340 :324:2005/03/21(月) 23:17:36 ID:HpFCrz0e
基本姿勢は>333の方向でキャレットが進まなくてもOKにしてみた。
NT系限定 例によって全角スペース → 半角2スペース置換えで

MatchList=1,2,3,4,5,6,7,8,9,0,-,^,\,q,w,e,r,t,y,u,i,o,p,@,[,a,s,d,f,g,h,j,k,l,;,:,],z,x,c,v,b,n,m,,,.,/
EndKeys = {Tab}{Enter}{Esc}{BS}{Del}{Ins}{Home}{End}{Pgup}{Pgdn}{Up}{Down}{Left}{Right}{F1}{F2}{F3}{F4}{F5}{F6}{F7}{F8}{F9}{F10}{F11}{F12}{sc073}
return

$Space::
  Send,{Shift Down}
  keycnt = 0
  Loop
  {
    Input,key,I L1 T0.1,%EndKeys%,%MatchList%
    ifInstring ErrorLevel, EndKey:
    {
      StringReplace,Key,ErrorLevel, EndKey:
      key = {%key%}
    }
    StringReplace,key,key,%A_Space%,
    StringLen,len,key
    if len > 0
    {
;;      Gosub, ModifierKeyCheck  ; 同時押しチェック (>324)
      Send,%modifier_key%%key%
      keycnt += len
    }
    GetKeyState,work,Space,P
    ifEqual, work,U, break
  }
  Send,{Shift Up}
  ifEqual keycnt,0,  Send,{Space}
return

341 :名無しさん@お腹いっぱい。:2005/03/22(火) 00:10:19 ID:ZWUNk2OZ
324さんと333さんは私の中で神と認定させて頂きました。
333での書式はバグを内包しているとの事ですので340をコピペして使わせて頂いています。

「猫まねき」でSandSを知ってから、ずっとこの機能を使ってみたかったのですが
私が同時打鍵入力方式の親指シフト配列の愛用者なので泣く泣く諦めていました。
それで質問なのですが以下のような事ってAutoHotKeyで実現できるのでしょうか?

1.IME/OFFの時だけSandSが機能するようにする
2.IME/OFFの時だけ無変換(変換)をスペースキーにする
3.無変換と変換の同時打鍵でIME ON/OFFを切り換える

実はAutoHotKeyには前から非常に興味が有ったものの、初心者には敷居が高く
掲示板をたまに覗く程度で済ませていました。質問した機能を実現させたい
とは思ってはいたものの、私の実力では無理っぽかったので諦めていました。

AutoHotKeyは外国産のソフトなのでIME ON/OFFと日本語専用キーの判定が
難しい云々という話も見た事が有るのですが、どんなものなのでしょうか?
実現できそうならインストールとアンインストールを繰り返していた
AutoHotKeyを本格的に導入したいと思っています。敬白 m(_ _)m

342 :340:2005/03/22(火) 00:21:34 ID:u8g20rRv
StringReplace,key,key,%A_Space%,
→ StringReplace,key,key,%A_Space%,,ALL
の方が安全カモ

ウチの環境だと>333や↓のスクリプトで何故かSpaceキーリピート発生しちゃう
XP Sp1a ahk Ver.1.30.04
Send,{Shift Down}すると押しっぱなしにしてても勝手にSpace Upになってしまうらしい
>340は何故か大丈夫なのだが…? >317のIME関係かしらん
$Space::
 Send,{Shift Down}
 KeyWait,Space,U
 Send,{Shift Up}
 Send,{Space}
return

343 :名無しさん@お腹いっぱい。:2005/03/22(火) 17:55:25 ID:hGX419B1
鯖移転したのか。
>>341
1&2
IME状態取得は現状でどうなんだろ。
ttp://lukewarm.s101.xrea.com/test/read.cgi/bbs/1095764510/16-17
辺りをみると厳しいのか?漏れはATOK使いでMSIMEヌッ殺してるから分からんけど。
3
コンビネーションキーでいけるんじゃね。下はAlt+全半吐くやつ。
vk1Dsc07B & vk1Csc079::Send, !{vkF3sc029}

344 :名無しさん@お腹いっぱい。:2005/03/22(火) 22:33:43 ID:q6kOYwGg
>>341
その目的だと、
AutoHotKey より「窓使いの憂鬱」の方が向いてる。
猫まねきより高度な設定ができる分、設定が難しいけど、
設定の仕組みさえわかれば
>>341 に書いてあることがすんなりできると思うよ。

345 :名無しさん@お腹いっぱい。:2005/03/22(火) 22:54:59 ID:u8g20rRv
>>341
ほい
ttp://lukewarm.s101.xrea.com/up/file/015.zip

>343のリンク先だと現在変換中かどうかの判定になってしまうんだな
今回の使い方には合わないのでIMEの設定で
「直接入力のときにIMEツールバーを隠す」にしている前提での判別方法にしてみた。
ただムリクリ感は否めないので>344の紹介してるものを使ったほうがいいかも知れぬ

346 :名無しさん@お腹いっぱい。:2005/03/23(水) 00:28:52 ID:u+jkcuR0
確かに>>341やるなら繭だわな。数行で出来る。
やっぱ専用ソフトっつーのは便利だな。

以下チラシの裏

現在の言語仕様じゃ他人のスクリプト組み込むのに手直しは必須っつーのが…
まぁ、その辺を変えることで重くなったりバギーになったりしたら本末転倒だが。
布教するにもマニアにしか受けんし。スクリプト仕様みてイラネって言う香具師もいる。
VBでSendKey連発するようなスクリプト書いてる香具師には訴求力ありそうなんだが。
ロカル変数くらいは欲しい。

347 :名無しさん@お腹いっぱい。:2005/03/23(水) 07:55:25 ID:FuBDL8hK
>現在の言語仕様じゃ他人のスクリプト組み込むのに手直しは必須っつーのが…
スクリプト自体に手を加えないでいい作りにしたいなら
カスタマイズオプションを.iniから読込むように作ればできないこともない
小規模のスクリプトだったら直書き換えさせちゃったほうが手軽だけどね

348 :名無しさん@お腹いっぱい。:2005/03/23(水) 19:52:38 ID:0rrNT0fg
これ、アプリごとにキーバインド変えようと思ったら、
アプリごとにキーバインド設定をするんじゃなくて、
キー設定の中でアプリ判定→分岐
するしかないの?

ようは
if (アプリ A){key a=hoge;key b=fuga}
じゃなくて
key a=(if (アプリ A){key a=hoge}else{key a=gaga})
こんな風にしかできない?

349 :名無しさん@お腹いっぱい。:2005/03/23(水) 20:32:12 ID:FuBDL8hK
SetTimer か Loopで
IfWinActiveすればアプリごとの設定のできないことはないけど
ホットキー登録しないので取りこぼしが発生する可能性大

350 :名無しさん@お腹いっぱい。:2005/03/23(水) 20:36:41 ID:u+jkcuR0
>>348
基本的にはそうかな。
SetTimerで指定間隔毎にアクティブ窓で分岐させてキー割付を動的に切り替えるって方法もあるけど…

SetTimer,Hoge,100
 :
 :
Hoge:
 WinGetClass,class,A
 If(Class == "〜")
 {
  HotKey,〜,〜
  HotKey,〜,〜
 }
 Else If(Class == "〜")
   :
  以下略
   :
 return


351 :名無しさん@お腹いっぱい。:2005/03/23(水) 20:37:58 ID:u+jkcuR0
うは、かぶったw

352 :348:2005/03/23(水) 20:51:59 ID:0rrNT0fg
どうもです。
window が切り替わったときのフックみたいなのがあれば
もっときれいにできそうですね。

353 :341:2005/03/23(水) 21:41:19 ID:jdrum20v
>>345さん
わざわざありがとうございました。まさかこんな事までして頂けるとは! ありがとうございます。m(_ _)m フカブカ〜
ただ、挙動に関しては少し問題が出ています。実は私、親指シフトのエミュレーションのため
に富士通製のOASYS系のIMEであるJapanistを愛用していて、それでツールバーからIME
の状態を取得する方法が上手く行かないようです。IME/ONの状態の時に変換(無変換)
との同時打鍵が正常にできなくなってしまいます。

ちらっと覗いたらAHKを流行らせるページさんの方のBBSでも親指シフトの方がいらっしゃったり、
IMEの検知について書いておられる方が居るので、そちらも参考にしてみようと思います。
まぁ、あそこの管理人さんのマウスジェスチャーのスクリプトすら設定できなかったヘタレ初心者なんで、
どれだけ時間が掛かるか分かりませんが・・・。

何にせよ、私なんぞのためにわざわざ手間暇かけてまで尽くして頂いて非常に感謝しています。
改めて御礼申し上げます。

>>344,>>346さん
どうも。窓使いの憂鬱の存在は知っているのですが、猫まねきと共存できないとの事ですので、
色々と細かい事ができて良いという話は聞いていても今まで諦めていました。興味は有るんですが、
作者の方も更新を止めておられるようですしWindowsXPに完全に対応していないとかの話も聞くので、
初心者としては手が出しにくいです。う〜ん。


354 :名無しさん@お腹いっぱい。:2005/03/23(水) 22:10:23 ID:u+jkcuR0
漏れはAHKと繭との併用がかなりしっくりくると思うんよね。
AHKより繭の方が(PC界でいう)低レベルだからバッティングしない。(ハズ)
まぁどのソフト使うかっつーのはそれぞれだから何とも言えんが。

スレ違いだけど、繭の最新版(Snapshot20040810)だとXPで安定っつー報告が多い。
つか、繭スレ過疎ってるなぁ。いい意味で枯れてるからなんだが。

355 :名無しさん@お腹いっぱい。:2005/03/23(水) 23:56:49 ID:hwCpAJQG
>>354
繭は過去ログとML読めば、大体やりたいことはできるからなー。俺もsnapshot+XPで安定。
おっさん的には枯れてるメディアの方が肩が凝らなくてイイ。

ただ、「ランチャ-ファイラ-AutoHotkey」をフラッシュメモリかなんかに入れて持ち歩けたら
めちゃくちゃ便利な気がするんで、ただ今移行試行中。

356 :名無しさん@お腹いっぱい。:2005/03/24(木) 01:36:45 ID:o2hZlty4
ランチャ持って行ってどうするよ
システム関連のしか起動できないだろ

357 :名無しさん@お腹いっぱい。:2005/03/24(木) 01:48:58 ID:0iJjPf2m
アプリもメモリに入れていくんじゃね?
Autohotkeyなら作り方しだいで相対パスランチャも作れるし。

358 :名無しさん@お腹いっぱい。:2005/03/24(木) 01:51:29 ID:NE3PvoZW
まあ、絶対パスにしか対応してなくても、subst使えばいいんだけどね。

359 :名無しさん@お腹いっぱい。:2005/03/24(木) 08:11:35 ID:ZFYJxLnl
文字列を計算式として認識させられないかな
例えばエディタで 1+2 を打って、それを選択して3に書き換えるようにしたいんだけど
これが出来れば常駐ソフト一つ減らせる


360 :名無しさん@お腹いっぱい。:2005/03/24(木) 08:20:52 ID:/dBqUNUy
>>359
そういや、ATOKプラグイン?であったぞ。

361 :名無しさん@お腹いっぱい。:2005/03/24(木) 08:56:10 ID:lTfEK0IO
>>360
AMET Multi だな。ATOKの入力文字列を引数にコマンドラインで何でも(perlとか)起動できるやつ。
でも、IME On/Offの面倒さはあるなぁ。

AHKでもやろうと思えば出来なくは無い。スクリプト投稿スレにも似たようなのでてたし。

362 :名無しさん@お腹いっぱい。:2005/03/24(木) 09:08:14 ID:ZFYJxLnl
>>360
IMEのATOKと無関係かと思って探してたけど
まんまATOKのプラグインだったんですね->AMET ATOK入れてないんで・・

AHK単体でやるのは無理なのかな




363 :359 362:2005/03/24(木) 09:12:03 ID:ZFYJxLnl
>361
かぶった・・すいません
投稿スレ見てきます

364 :名無しさん@お腹いっぱい。:2005/03/24(木) 15:32:50 ID:NE3PvoZW
>>359
秀丸とサクラエディタならそういうマクロあるよ。
ttp://www.edit.ne.jp/~deagle/

365 :名無しさん@お腹いっぱい。:2005/03/24(木) 17:17:39 ID:lCSIfVGc
soft1では右クリックとホイールでPageUp
soft2では右クリックとホイールでF2
を押したようにしたいとします。
AutoHotkey.iniに
----------------------------------------
IfWinExist, soft1
{
~RButton & WheelUp::Send,{PgUp}
}
IfWinExist, soft2
{
~RButton & WheelUp::Send,{F2}
}
----------------------------------------
と書いてみましたが、うまくいきません。
根本的な勘違いをしているような気がしますが、
どうすれば希望の動作が実現できるでしょうか?


366 :名無しさん@お腹いっぱい。:2005/03/24(木) 17:48:09 ID:9ah/0VJm
条件分岐でホットキーを設定するにはホットキーラベルじゃなくてHotkeyコマンドを使う。
ただこの場合SetTimerでループさして
アクティブなソフトを監視しないといけなくてめどいから、
~RButton & WheelUp::
    IfWinExist, soft1
    {
        Send,{PgUp}
    }
    IfWinExist, soft2
    {
        Send,{F2}
    }
という風にする。


367 :名無しさん@お腹いっぱい。:2005/03/24(木) 19:20:14 ID:0iJjPf2m
IfWinExist → IfWinActive でそ

368 :365:2005/03/24(木) 19:44:17 ID:lCSIfVGc
>>366
ありがとうございます。
AutoHotkey便利そうです。

369 :叩き台〜その1〜:2005/03/24(木) 21:53:05 ID:lTfEK0IO
^!C::
 ToolTip,[Calc], %A_CaretX%, %A_CaretY%
 Operand1 =
 Operand2 =
 CalcStr =
 math =
 Loop
 {
  Input, key, L1
  If(key == "") ; ""内は 0x1B
  {
   break
  }
  Else if(key == "`n" || key == "=")
  {
   If(Operand2)
   {
    if(math = "+")
     Operand1 := Operand1 + Operand2
    Else If(math = "-")
     Operand1 := Operand1 - Operand2
    Else If(math = "*")
     Operand1 := Operand1 * Operand2
    Else if(Operand2 = "" || Operand2 = 0)
     Operand1 := "NaN"
    Else
     Operand1 := Operand1 / Operand2
   }

370 :叩き台〜その2〜:2005/03/24(木) 21:53:39 ID:lTfEK0IO
   Else
   {
    Send, %Operand1%
    Break
   }
   Operand2 =
   math =
  }
  Else If key in 0,1,2,3,4,5,6,7,8,9,0,.
  {
   CalcStr = %CalcStr%%key%
   If(math)
    Operand2 := CalcStr
   Else
    Operand1 := CalcStr
  }
  Else If key in +,-,/,*
  {
   If(math == "")
   {
    math := key
    CalcStr =
   }
  }
  Tooltip,[Calc] %Operand1%%math%%Operand2%,%A_CaretX%,%A_CaretY%
 }
 Tooltip
 return

371 :名無しさん@お腹いっぱい。:2005/03/24(木) 21:55:16 ID:lTfEK0IO
適当に作ってみた2項の四則演算のみ。
バグがあるかもしれない。
あくまで叩き台ってことなんで、叩かないでw

372 :名無しさん@お腹いっぱい。:2005/03/24(木) 21:59:34 ID:lTfEK0IO
あぁ、行数制限で説明抜いてたわ。
Alt+Ctrl+[C]でインライン(?)電卓モードに。
数字 演算子 数字の並びになったときに Enter で計算
結果はツールチップに。
ツールチップに1項のみが表示されているとき Enter で数字を出力。

つか0割の所うまく動いてないわw

373 :名無しさん@お腹いっぱい。:2005/03/24(木) 22:53:47 ID:lTfEK0IO
色々直したよ。一人で連投してスマソ…
ttp://lukewarm.s101.xrea.com/up/file/016.zip

374 :359:2005/03/24(木) 22:54:16 ID:PlnAtin8
>>364 369-372
ありがとうございます!

>>369 せっかく作ってもらってすいませんが 秀丸-サクラマクロマクロがよさげなのでこっち
使ってみます ヒマな時にこれも解読してみます


375 :名無しさん@お腹いっぱい。:2005/03/24(木) 23:03:26 ID:PlnAtin8
>>373
使ってみました
かっことか使えないと不便かと思ったけどこれはこれで実用的
計算結果をもとに続けて入力出来るのが良いです

AHK内だけででここまでやれるとは思わなかった


376 :名無しさん@お腹いっぱい。:2005/03/24(木) 23:47:41 ID:g5osJG3P
autohotkey に lisp インタープリタ内臓して欲しい

377 :名無しさん@お腹いっぱい。:2005/03/24(木) 23:59:19 ID:9ah/0VJm
lispイラネー

378 :名無しさん@お腹いっぱい。:2005/03/25(金) 00:09:41 ID:2fwQhLFn
skk乗っけてAutoHotKeyだけで漢字変換か。

379 :Num0+矢印キーで矢印を入力:2005/03/25(金) 00:54:37 ID:vzJGrVeL
Numpad0 & Up::
{
CLipboard=↑
Send,^v
return
}
Numpad0 & Down::
{
CLipboard=↓
Send,^v
return
}
Numpad0 & Left::
{
CLipboard=←
Send,^v
return
}
Numpad0 & Right::
{
CLipboard=→
Send,^v
return
}


380 :379:2005/03/25(金) 01:00:12 ID:vzJGrVeL
↑のようなものを作ってみたのですが、
これをもっと短縮あるいは効率よく書く方法はありますか?
クリップボードの履歴を監視するソフトを導入しているため、
なるべくクリップボードを介したくないのですが…
ClipboardがCLipboardになってるのは単なるミスです^^

381 :名無しさん@お腹いっぱい。:2005/03/25(金) 01:07:15 ID:G0VsG/1l
send,^Vした後クリップボードの内容を元に戻す。

382 :名無しさん@お腹いっぱい。:2005/03/25(金) 01:24:42 ID:dBIaKFwl
流行らせるページにSendで2バイト文字を入力するサンプルがあったような。
長い文字列にはむかないけど、1文字程度ならいけるんじゃないか。

383 :名無しさん@お腹いっぱい。:2005/03/25(金) 05:57:29 ID:TKg9mzHA
>>379
Cじゃないのでサブルーチンの括りに{ }は不要、書いても間違いじゃないみたいだが
ルーチンの終わりが分かりやすいので漏れは↓みたいなインデントにしてる
label:
  code
   :
return

>>380-382
流行らせるページのサンプルはクリップボード使ってるみたい
使えるのかどうかわからんがUnicode関連のコマンド
とかできたから
そっちチェックしてみたらいいかも
(Transformの見た感じだとそっちもクリップボード経由っぽいが)

384 :名無しさん@お腹いっぱい。:2005/03/25(金) 09:01:49 ID:9HGHpGci
自治する気ないし俺の意見として言うけど
スクリプト自体の投稿は流行らせるページにしてほしい
情報を見に来るのに見づらい
質問に答える>>366みたいなのはいいけど…


385 :名無しさん@お腹いっぱい。:2005/03/25(金) 11:40:50 ID:UAu+Z2MA
>>384
>369-370あたりは漏れもそう思った。あっちのが1レスに貼り付けられる量が多いので
投稿スレかあぷろだに上げてリンク張ったほうがいいと思う。
と、書きつつも貼り付ける漏れ

Numpad0 & Up::
Numpad0 & Down::
Numpad0 & Left::
Numpad0 & Right::
  ifInstring, A_ThisHotkey, Up,   SetEnv,PasteData,↑
  ifInstring, A_ThisHotkey, Down,  SetEnv,PasteData,↓
  ifInstring, A_ThisHotkey, Left,  SetEnv,PasteData,←
  ifInstring, A_ThisHotkey, Right, SetEnv,PasteData,→

  ControlGetFocus, Actrl,A
  Control,EditPaste,%PasteData%,%Actrl%,A
return

Control使えばクリップボードは汚さないけどEditコントロール限定なのでいまいち汎用性無いな
1行だったら大体OKそうだけどマルチラインだと殆どだめぽ
秀丸 W
EmEditor ○
メモ帳 ○
サクラ W
xyzzy W
Becky!2 エディタ部 W

386 :名無しさん@お腹いっぱい。:2005/03/25(金) 11:44:11 ID:UAu+Z2MA
W -> X

職場からは2ch-modeで見てるんだが書き込みで記号が化ける orz


387 :名無しさん@お腹いっぱい。:2005/03/25(金) 12:00:51 ID:D7WX2GIP
笑ってるのかと思った。w←これ

388 :名無しさん@お腹いっぱい。:2005/03/25(金) 17:31:21 ID:dBIaKFwl
>>380
こういうこと?
Numpad0 & Up::Send,{ASC 33194}
Numpad0 & Down::Send,{ASC 33195}
Numpad0 & Left::Send,{ASC 33193}
Numpad0 & Right::Send,{ASC 33192}


389 :名無しさん@お腹いっぱい。:2005/03/25(金) 20:27:12 ID:TKg9mzHA
>>388
NT4だと ェォゥィ ってなる orz
XPだとおkっぽい。

390 :379:2005/03/26(土) 01:19:46 ID:F+IEPJ/l
皆さん色々とありがとうございました。
Alt+Numpad[0-9]で文字コードを送信するという方法があったのを失念していたため、
Sendではできないものだと思い込んでました。
>>388さんの書き方でできました。
>>385さんの方法だと確かに独自のコントロールを使っているエディタでは入力できないため、
残念ながら使えませんでした。
ただ、特にフォーカスを移したり、明示的に指定しなくても、
ウィンドウ内のEdit部に入力してくれるというのは別の用途では使えるかもしれません。

391 :名無しさん@お腹いっぱい。:2005/03/27(日) 09:04:00 ID:c3gPcejd
投稿スレ見たんだが、SendMessageで IME の on/off 取得できることが分かったらしい。
ttp://lukewarm.s101.xrea.com/test/read.cgi/bbs/1092315194/89

392 :名無しさん@お腹いっぱい。:2005/03/27(日) 10:14:32 ID:KYsw2UmA
SendMessage って何か魔法の呪文っぽい感じだな。
IME関連以外にも色々何かできそう。

393 :名無しさん@お腹いっぱい。:2005/03/27(日) 10:18:37 ID:n9jN/MF/
マジッスカ
このソフトを知って4ヶ月、なんとなくromってて
ようやく入れる決心がつきますた(・∀・)

394 :名無しさん@お腹いっぱい。:2005/03/27(日) 12:41:33 ID:Gfq9hDvj
昨日から使い始めました。

質問なんだけど、AutoHotKeyって日本語化パッチある?
探してみたけど見つけられなかったんで。
あ、ないならないで別にいいんだけど、あるかどうかを知りたいな、と。

395 :名無しさん@お腹いっぱい。:2005/03/27(日) 14:47:43 ID:sb/4Ivmu
ない。というか、全く必要ないと思うよ。
どの部分を日本語化したいの?
強いていえばメインウインドウのメニューぐらいしかローカライズ
するところはないと思う。
タスクトレイの右クリックメニューはMenuで自分で日本語のを作れば
いいわけだし。

396 :名無しさん@お腹いっぱい。:2005/03/27(日) 15:05:03 ID:J8XeKnDI
エラーメッセージじゃないか。
394じゃないけどそういうレスがくることは分かってたんだ…

397 :名無しさん@お腹いっぱい。:2005/03/27(日) 15:08:21 ID:dV5t5TmZ
inputoboxは日本語化しといたほうが何かとイイかも
あんま初歩的なんでここの猛者は使わないかもしれんが

398 :名無しさん@お腹いっぱい。:2005/03/27(日) 15:34:48 ID:6NtREb84
>>353
もういないかもしれないけど、修正したー
ttp://lukewarm.s101.xrea.com/up/file/019.zip

> IME/ONの状態の時に変換(無変換)との同時打鍵が正常にできなくなってしまいます。
んでもコレはHotkeyのフックの仕方の問題かもしれない。
親指シフト使ったことないからよくわからんのよ。何と何を同時押しするのかな

399 :名無しさん@お腹いっぱい。:2005/03/27(日) 15:39:21 ID:6NtREb84
>>395
MsgBoxとか日本語でメッセージ出そうとすると化けるダメ文字が結構ある。
漏れは諦めてるけど。
それより 流行らせるページの .chm版ヘルプがほすぃ…

400 :名無しさん@お腹いっぱい。:2005/03/27(日) 15:47:57 ID:Gfq9hDvj
必要性を聞きたいんじゃない、ってことが分かるように質問したつもりだが。
だから、ないならないで別にいい、と書いた。
英語うざいから目につくところだけ日本語化しようかな〜と思ってね。
やっぱりないんだね、サンクス。


401 :名無しさん@お腹いっぱい。:2005/03/27(日) 15:58:57 ID:sb/4Ivmu
だからどこの英語がうざいのよ?
キミの投稿じゃどこの英語がうざいのか分からないから
確認したかったんだけど?
つーか、日本語化したい>どこがしたい?>ここ
という流れにならず
なんでそんないきなりギスギスした
態度になるのかわからんよ。
ちょっとは対話を心がけてくれまいか。

402 :名無しさん@お腹いっぱい。:2005/03/27(日) 16:03:37 ID:J8XeKnDI
いちいち噛み付くなよ、そんなことでよ。

403 :名無しさん@お腹いっぱい。:2005/03/27(日) 23:22:16 ID:c3gPcejd
単純に日本語化したいなら AutoHotkey.exe を UPX 解凍してリソースハッカーでも使えばいいんじゃねーの。

>>399
今まで文字化け経験してないけど、 \(0x5C)が含まれてたりとかってやつかねぇ。
その文字を晒してくれればある程度特定できるかもしれない(出来ないかもしれない)。
.chm欲しいならHelpMachine使えば作れる。インデックス作るのマンドクセーけど。

# 最近またスクリプト熱が出てきた。春だからだろうか…

404 :名無しさん@お腹いっぱい。:2005/03/27(日) 23:41:33 ID:S3wtnfmi
せっかくソースがあるんだから
そっち書き換えたほうがいいよ

405 :名無しさん@お腹いっぱい。:2005/03/28(月) 00:58:56 ID:dyJDqkVp
一瞬荒れたのかと思ったが、>>394の4行目の意図が全く読み取れなかった
ID:sb/4Ivmuが(2レスとも)的外れなこと書いてるだけか。そりゃ怒る罠。
そんな中、ちゃんと礼を言ってるところがなかなか。

俺も最近使い始めたんだけど、これが日本語化できたらやっぱりうれしいな。
今のところ特に困ってないけど、英語普通に苦手だから、使い込んでるうちに
エラーメッセージとかが出てきたらだるくなりそうな予感。

406 :名無しさん@お腹いっぱい。:2005/03/28(月) 01:14:04 ID:4QB7Nt+y
なにをそんなにカリカリされてんのかちっともわからんよ(;´ー`)
つーかぎゃーぎゃー怒られるぐらいなら親切に「どこが必要?」とか
対話せず「ある」とか「ない」だけ書けばよかったよ。
全くその通りだ。

407 :名無しさん@お腹いっぱい。:2005/03/28(月) 01:52:23 ID:sWrAcxx0
>>406

>>394が有るか無いかだけの答えを求めている(4行目で明確)のに対して
>>395が余計な事言ってくるのがウザかったってだけだろ。

おれの職場にもいるよ>>395みたいなタイプ。 そういうやつにものを聞くときは場合を考えるようにしてる。
うざくてかなわん。

408 :名無しさん@お腹いっぱい。:2005/03/28(月) 02:00:37 ID:a5GACU9O
なんか知らないけど
外国のソフトのスレでは
日本語化を求める人と
英語のままで十分と過剰に主張する人の間で
必ずごたごたが起こるね。

409 :名無しさん@お腹いっぱい。:2005/03/28(月) 02:03:16 ID:e/JcWmZ3
>395じゃないけど「ないならないで別にいい」を見て「必要性を聞きたいんじゃない」って思う人はあんまりいないと思うよ。
「ないならないで別によくない」なんて書く馬鹿はいないだろ、というか最初から「必要性を聞きたいんじゃない」って書けばいいのに、というか。

410 :名無しさん@お腹いっぱい。:2005/03/28(月) 02:11:19 ID:dyJDqkVp
>>407
ふむ、それもあるのかもしれんが、それだけでいきなり>>400にはならないのでは?
>>395には明らかにいらん一文(←>>400と合わせるとより明らか)がある。
例の4行目にはそれを書いてほしくない、という意図もあったのだろう。

>>408
よく見るけど、だいたいそれは後者が前者を逆撫でしてるな。

>>409
俺は普通に「必要性を聞きたいんじゃない」と読み取れたよ。
「ないならないで別によくない」人は、わざわざあんな4行目は書かない(=不要)から。
俺には、「必要性を聞きたいんじゃない」って言う、カドのたつ言い方を避けた
気を使った表現に思えた。

411 :名無しさん@お腹いっぱい。:2005/03/28(月) 02:17:21 ID:y4I7LxlP
あんた達いい加減にせい。板違いのことでグダグダ議論してんじゃね。( ゚Д゚)
わざわざこのレスにまでレスつけんじゃねぇぞ。

412 :名無しさん@お腹いっぱい。:2005/03/28(月) 02:51:57 ID:sWrAcxx0
んじゃぁプログラミングのプの字もわからない漏れからの初歩的質問。

たとえばF12を押したときの挙動を複数のアプリで割り当てたいとき、
現時点では

~F12::
IfWinActive, ahk_class abcd
send,!fa

IfWinActive, ahk_class wxyz
send,!daa

return

みたいな感じで書いててとりあえず問題ないんだけど、これって記述的にはおかしい?
何も知らない漏れが言うのも変だけど、「もし」ばっかり何個も続くのっておかしいような気がして。



413 :名無しさん@お腹いっぱい。:2005/03/28(月) 04:02:51 ID:9whGZbWq
大丈夫おかしくないよ
強いて揚げるなら2個目のif以降は Else If使ったほうがいいかも知らんけど

414 :名無しさん@お腹いっぱい。:2005/03/28(月) 08:25:23 ID:XIq2NfMQ
ダメ文字は何回か経験してる
2バイト扱うならUWSCの方が安全か。新しいのも出た。

415 :名無しさん@お腹いっぱい。:2005/03/28(月) 09:00:12 ID:55noSKPL
>>412
んにゃ、たいていどの言語でもそれが常套手段。

ただし、>>412の場合、一つ目の
 IfWinActive 〜
でマッチしたら、他の IfWinActive は評価する必要が無いから2つ目以降は
 Else IfWinActive 〜
としたほうがいい。

言語によっては、case とか on 〜 gosub … みたいに特定の中身によって
飛び先を指定するってやつがあるけど、基本的な考えは上のやつと同じだし。

416 :1行規制引っかかった。改行は”削除”して:2005/03/28(月) 19:24:54 ID:9whGZbWq
>>403
ひらがな、カタカナだと「チ」の字とか。0x5Cではないみたいなんだけど

msgbox,ぁ ぃ ぅ ぇ ぉ っ`nあ い う え お`nか き く け こ`nが ぎ ぐ げ ご`nさ し す せ そ`n
ざ じ ず ぜ ぞ`nた ち つ て と`nだ ぢ づ で ど`nな に ぬ ね の`nは ひ ふ へ ほ`nば び ぶ べ ぼ`n
ぱ ぴ ぷ ぺ ぽ`nま み む め も`nや ゆ よ`nら り る れ ろ`nわ を ん`nァ ィ ゥ ェ ォ ッ`n
ア イ ウ エ オ`nカ キ ク ケ コ`nガ ギ グ ゲ ゴ`nサ シ ス セ ソ`nザ ジ ズ ゼ ゾ`nタ チ ツ テ ト`n
ダ ヂ ヅ デ ド`nナ ニ ヌ ネ ノ`nハ ヒ フ ヘ ホ`nバ ビ ブ ベ ボ`nパ ピ プ ペ ポ`nマ ミ ム メ モ`n
ヤ ユ ヨ`nラ リ ル レ ロ`nワ ヲ ン`nァ ィ ゥ ェ ォ ッ`nア イ ウ エ オ`nカ キ ク ケ コ`nサ シ ス セ ソ`nタ チ ツ テ ト`n
ナ ニ ヌ ネ ノ`nハ ヒ フ ヘ ホ`nマ ミ ム メ モ`nヤ ユ ヨ`nラ リ ル レ ロ`nワ ヲ ン`n゙ ゚

去年の10月位までは自分で .chmに直してたんだけど
どうにも使い勝手が慣れなくて >へるぷましん
差分のインデックス作ったりとか、手作業前提なのがとにかくしんどい
あとからドロップしたhtmlの階層メタメタになるしで
フリー作家の人は偉いなぁと心底思ったよ。

417 :名無しさん@お腹いっぱい。:2005/03/28(月) 19:27:16 ID:9whGZbWq
名前欄に 削除 っていれると ” ”で括られるのか、初めて知った。

418 :名無しさん@お腹いっぱい。:2005/03/28(月) 20:32:15 ID:55noSKPL
>>416
そういや「\」がエスケープ文字じゃなかったわ。「`」だった。
「チ」は0x8360、「`」が0x60。まさか……

419 :412:2005/03/28(月) 22:20:17 ID:zpfXdbTz
dクス。
基本がわかってないからちょっと不安だったのですが、安心しました。
二度目以降のIfの前にはelseをつけるようにします。

420 :名無しさん@お腹いっぱい。:2005/03/28(月) 22:26:00 ID:pkJ1AidZ
「〜」もだめぽ

421 :名無しさん@お腹いっぱい。:2005/03/29(火) 01:13:36 ID:d7T84XNc
やっぱ ` でのエスケープっぽ

MsgBox,チ〜
MsgBox,チ`〜`

422 :名無しさん@お腹いっぱい。:2005/03/29(火) 03:29:46 ID:TQLH2O6o
キター(`〜`)

423 :名無しさん@お腹いっぱい。:2005/03/29(火) 10:55:28 ID:+Zu/56Y7
ホイールクリックで基本的にEnter、AutoCADの場合はそのまま、としたいです。
下の例だとクリックが送られてしまい、押しっぱなしができません。
どうすれば良いでしょうか。
あと、mayuでいうところの&Defaultがあれば教えてください。

~MButton::
IfWinActive, AutoCAD
Send,!{MButton}
else
Send,!{enter}
return


424 :名無しさん@お腹いっぱい。:2005/03/29(火) 12:55:34 ID:1/bQp6ee
>>423
キー押し上げと押し下げに分けて処理すればOK

425 :423:2005/03/29(火) 17:23:55 ID:+Zu/56Y7
>>424
どうも。できました。
GetKeyStateのサンプルそのまんま。

MButton::
IfWinActive, AutoCAD
{
MouseClick, middle, , , 1, 0, D
Loop
{
Sleep, 10
GetKeyState, state, MButton, P
if state = U
break
}
MouseClick, middle, , , 1, 0, U ; ホイール離す
}
else
Send,{enter}
return


426 :名無しさん@お腹いっぱい。:2005/03/29(火) 17:37:05 ID:d7T84XNc
KeyName::
KeyName Up::
って今は出来るんだけどな。動けばいいか。

427 :名無しさん@お腹いっぱい。:2005/03/29(火) 19:15:57 ID:icg0usqm
>>423
ラベルに ~つけるならMButtonの処理を自分でやる必要はないと思われ
~MButton::
IfWinNotActive, AutoCAD
Send,!{enter}
return
でいいんとちゃう?

428 :名無しさん@お腹いっぱい。:2005/03/29(火) 20:29:24 ID:icg0usqm
>>418,421
なるほど `で後ろエスケープすればいいのか、アリガトン

一応参考 2バイト目が0x60な文字↓
〜AチЯ`荏柿義形港餐汁秦疏蛋伝覗描冒輿倭兪啻嫣彖拜杼歔濮畫秡總臍藾訌軈鐐饒鸛||
(S-JIS漢字コード表 ttp://www.ne.jp/asahi/qpon/b/pc/sjis.htm )

あとLoop (files)とかだと普通に \(0x5C)がダメだね。むしろこっちのほうが深刻そうだ

429 :名無しさん@お腹いっぱい。:Lastupdate:2005/04/02(土) 11:20:42 ID:z4/57e82
昨日とか一昨日の日付を得たい。AHK ver 1.0.30.1, W2KSP4。
 dt := A_Now
 dt -= 1,days
 MsgBox,%dt%
これで、現時刻より1日前のものが表示できるかと思いきや
 Error: This date-time string contains at least one invaild component.
と、おっしゃりやがって止まる orz

EnvSub, dt, 1, days でも同様。実行時エラーの文句には -= の形式で出る。
ごり押しスクリプト書けばどうにかなるけど、どうしたもんか……

430 :名無しさん@お腹いっぱい。:Lastupdate:2005/04/02(土) 12:38:02 ID:Q1KXxUvO
EnvSub,Var,Value,days は
引いた値をの日付を返すのはなく、日付同士の計算を日数で出すらしいね。
× 20050401 - 1 = 20050331
○ 20050401 - 20040401 = 365

ちなみにFormatTimeも年/月越しでダメっぽい
dt = 20050401
dt -= 1
dt = %dt%%A_Hour%%A_Min%%A_Sec%
FormatTime,dt,%dt%,yyyyMMddHHmmss
MsgBox,%dt%

%A_YYYY%%A_YDay%→ YYYYMMDD 逆変換とかできりゃいいんだろうけど

431 :名無しさん@お腹いっぱい。:Lastupdate:2005/04/02(土) 14:12:43 ID:z4/57e82
>>430 サンクス
やっぱそうかぁ…。「流行らせるページ」のEnvSubのところに、
> たとえば、Valueを100、TimeUnitsを「Days」とすると、Valueの日付を100日進める。
ってあるからなぁ。コレが違ってるんかな(EnvAddのコピったままの部分は除く)。

ちょっとしたファイル整理の書き捨てスクリプト作ろうと思ったんだがハマってしまったよ。
日付処理のサブルーチン作るの面倒だから他の言語でやるわ…

432 :名無しさん@お腹いっぱい。:Lastupdate:2005年,2005/04/02(土) 15:21:57 ID:JWJwJ6VZ
EnvAddは負の値も使えなくない?

433 :名無しさん@お腹いっぱい。:Lastupdate:2005年,2005/04/02(土) 18:38:27 ID:TCwbXqil
ver1.0.30.04で、""で括って渡しても、また空白でコマンドラインをぶった切るようになってない?

434 :名無しさん@お腹いっぱい。:Lastupdate:2005年,2005/04/02(土) 18:49:27 ID:TCwbXqil
やべ、噛ませてたAutoHotKeyスクリプトの問題だった

435 :名無しさん@お腹いっぱい。:2005/04/02(土) 19:50:12 ID:Q1KXxUvO
>>432
本当だ↓だと上手くいく。年/月越しもOKだね

var1 = %A_Now%
var1 += -1, days
MsgBox, %var1%

EnvAddとEnvSubて単に加算減算の違いなんだと思って見てなかったよ orz
EnvAdd → 足した(引いた)値の日付を返す: 20050401 - 1 = 20050331
EnvSub → 日付同士の計算を日数で出す : 20040401 - 20040401 = 365
てことなのね。

436 :名無しさん@お腹いっぱい。:2005/04/02(土) 21:10:45 ID:A0CyYlzr
にしてもコンパクトな中にいろいろ入ってるねえ、こいつは。
だいぶ依存度が増してきた…

437 :429:2005/04/02(土) 22:10:20 ID:z4/57e82
ナナンダッテー (AAry
そうだったんかぁ。コレで日付でファイル振り分けが楽になるわ。

438 :名無しさん@お腹いっぱい。:2005/04/03(日) 11:12:08 ID:ZfS+Xv1s
質問です。
これをインストールするときは
窓使いの憂鬱はアンインストールしておいた方がいいですか?

439 :名無しさん@お腹いっぱい。:2005/04/03(日) 18:15:31 ID:euGPrUZ3
必要ナス。併用可能。
ただし、キー割り当ては窓使いの憂鬱が優先する。
つまり、窓使いの憂鬱が吐き出すキーコードを受け取ってAHKが動作する。

例)
窓使いの憂鬱で Ctrl + A に Ctrl + B を割り当てる
AHK で Ctrl +B に Enter を割り当てる
→ Ctrl + A を押すと Enter が出力される。

440 :名無しさん@お腹いっぱい。:2005/04/07(木) 10:33:12 ID:aihkwInv
IDが惜しかった…

441 :名無しさん@お腹いっぱい。:2005/04/07(木) 20:29:10 ID:DuNRUFCP
doma

442 :名無しさん@お腹いっぱい。:2005/04/09(土) 17:58:58 ID:cHH8AI+9
関数

443 :名無しさん@お腹いっぱい。:2005/04/09(土) 23:21:41 ID:kUXIkJIx
ChrisたんGJ

444 :名無しさん@お腹いっぱい。:2005/04/09(土) 23:23:40 ID:LrmAhce7
1.0.31 ついに関数とローカル変数きたね。
 ・SetTimer >>312の問題修正
 ・関数サポート: result = Function(palam) みたいのが有効に
 ・ローカル変数: local x, y, z とかで宣言できるっぽい
 ・A_LineNumber、A_LineFileで #Include先ファイルの行番号、ファイル名が取得可能に
 ・他いろいろ


しかし仕様変更だかバグだかよくわからんがエラー出まくりで全然うごかねぇ orz

Menu,TRAY,Add,流行らせるHelp(&C) ,Sub_MenuTray
メニューにアクセラレータキー入れるのに()で括ってたら、そんな関数ないって怒られた

445 :名無しさん@お腹いっぱい。:2005/04/10(日) 07:31:18 ID:OcaV6+sC
今常用してるスクリプトはコンパイルして新しいのにしてみっかな。

446 :名無しさん@お腹いっぱい。:2005/04/11(月) 09:37:00 ID:N1PxD+h2
手軽さがなくなって来た気が…
次スレはプログラム板かな

447 :名無しさん@お腹いっぱい。:2005/04/11(月) 16:36:04 ID:m/uAlqKf
ver2はECMA準拠で

448 :名無しさん@お腹いっぱい。:2005/04/11(月) 17:47:41 ID:rJUnNEN1
いちいちオブジェクト作ってたらメモリとCPU喰いまくりそう…

function と local valuables は歓迎かな。

449 :名無しさん@お腹いっぱい。:2005/04/11(月) 18:08:08 ID:B60TEnfo
mayuのドライバを使ってフックかけられないかな?

450 :名無しさん@お腹いっぱい。:2005/04/11(月) 21:31:15 ID:rJUnNEN1
ローカル変数ってアルファベット1文字だと怒られる…
ループに使う i, j とか、 座標の x, y とか面倒すぎ。

451 :名無しさん@お腹いっぱい。:2005/04/11(月) 22:41:56 ID:rJUnNEN1
>>450は勘違いっぽ。

こっちにも貼っておく、ツッコミ・修正ヨロ
103 名前:unnamed.ahk:05/04/11 22:39 ID:3sWbWrfk
ローカル変数と関数実装のテストをかねて、
文字列に記載された数式を計算する関数を作ってみた。
ttp://lukewarm.s101.xrea.com/up/file/020.zip
数式の評価って結構めんどい。何とか動いてるけど大丈夫かな

452 :451:2005/04/16(土) 08:54:54 ID:J3RVri/i
漏れはスレッドストッパー orz

453 :名無しさん@お腹いっぱい。:2005/04/17(日) 09:49:35 ID:+hE+T1Hh
イ`

454 :451:2005/04/17(日) 12:45:27 ID:9YkLHgvW
クソッ、またネタ投下してやるよ!!
オートスクロールスクリプトつくったよ。
ttp://lukewarm.s101.xrea.com/up/file/021.zip

455 :名無しさん@お腹いっぱい。:2005/04/17(日) 14:23:10 ID:lL7lHI1a
健気でワラタ 乙

456 :名無しさん@お腹いっぱい。:2005/04/20(水) 21:46:44 ID:SMytWmy0
http://pc8.2ch.net/test/read.cgi/software/1112524846/から誘導されてきました。

あるテキストファイルが3行だけになったらあるソフトを終了する。
こんなスクリプトはどう書けばいいでしょうか。

よろしくお願いします。

457 :名無しさん@お腹いっぱい。:2005/04/20(水) 22:18:39 ID:hGAA5JT/
少しは努力の成果を見せろよw

458 :名無しさん@お腹いっぱい。:2005/04/20(水) 22:20:03 ID:k4tAhkBG
よくわからんがこんな感じ?

#SingleInstance FORCE
#Persistent
Autoexecute:
  ;10秒ごとにテキストファイル監視(間隔は適当に変えれ)
  SetTimer, Watch, 10000
return

Watch:
  ;hoge.txt内の改行が 3個未満かチェック
  Loop,READ, c:\hoge\hoge.txt
  {
    MaxLineNo := A_Index
    if A_Index > 3       ;3行以上あるので処理中止
      return
  }
  ;指定のソフトを終了
  WinClose , WinTitle
;  ;タスクトレイ収納型などのWindowがないソフトの場合はプロセス強制終了で。
;  Process, Close, hoge.exe
return

459 :456:2005/04/20(水) 22:22:30 ID:SMytWmy0
>>457
今頑張っています。先に聞くのは失礼だと思ったんですが
何分こういうソフトは初めてなもので・・・。

>>458
ありがとうございます!
これと>>1のサイトの解説で試行錯誤したいと思います。

460 :名無しさん@お腹いっぱい。:2005/04/20(水) 22:23:36 ID:k4tAhkBG
MaxLineNo := A_Index
の行はいらなかったな、何か後で判定しようと思って入れたんだけど

461 :名無しさん@お腹いっぱい。:2005/04/20(水) 22:50:21 ID:k4tAhkBG
あ、漏れ IDがAhkだよ、今気づいた

それはそうと静観してるうちに、1.0.31.05までバージョン上がってるね
>444のバグも直ったっぽい。あと引っかかってたのはバージョンチェックで
If A_AhkVersion < 1.0.25.00
などの比較してたんだけど、数値認識できずエラーになるようになったみたい。
1.0.30まではOKだったんだけど元々イレギュラーな比較の仕方だったのも

462 :名無しさん@お腹いっぱい。:2005/04/20(水) 23:00:15 ID:uUC9cBJl
>>456
こいつny厨じゃん

463 :456:2005/04/20(水) 23:55:03 ID:SMytWmy0
>>462
nyってこの機能使うんでしょうか?

>>459のレスからずっと弄ってるのに未だできません・・・。

464 :名無しさん@お腹いっぱい。:2005/04/21(木) 00:07:24 ID:XjBihYGf
ずっとって…ヲイヲイ
初めて触るスクリプトを2時間かそこらでうまく走らせるようになるなんてあり得んぞ。

つか、にテキストファイルが読み込んで何行あるか読ませるのとか
プロセスや窓を閉じるのとか部品部品を試すもんだろ、最初は。

自分がどうやったとかが全然書いてないし、コマンド一つすらレスにないっつーのはどうよ。

465 :名無しさん@お腹いっぱい。:2005/04/21(木) 00:52:10 ID:ZpOgg+A2
nyのDLリストがクラスタワード3つを残して空になったらnyを終了させたいんだろ

466 :名無しさん@お腹いっぱい。:2005/04/21(木) 01:06:54 ID:uhGUjX+Z
それはまた贅沢な悩みだな

467 :名無しさん@お腹いっぱい。:2005/04/21(木) 07:50:16 ID:RPJr1Pmb
ヒント >332 あとは勝手にガンガレ
nyに詳しい人降臨してるな、漏れは使ったことないから知らんかったよ

468 :名無しさん@お腹いっぱい。:2005/04/21(木) 10:27:58 ID:z+w12zib
>>456
;--------------------------------------------------------------
SetEnv, filename, aaaa
SetEnv, WinTitle, bbbb

#Persistent
SetTimer,watch,500
return

watch:
FileReadLine, dummy, %filename%, 4
if ErrorLevel = 1
WinKill , %WinTitle%
return
;---------------------------------------------------------------

点線内を a.ahk って名前で保存

aaaaを監視したいファイル名→C:\Program Fil…
bbbbを終わらせたいアプリのタイトルバーの文字→文書 1 - Microsoft Word
みたいに変えて実行

>>462
スレ違い


469 :名無しさん@お腹いっぱい。:2005/04/21(木) 11:51:15 ID:z+w12zib
>>456
一応言っとくとファイルが書き換わる瞬間にチェックしてしまったら
終了させてしまうかもしれない
それに対応するのはアプリの特性とかが分からないと無理だし
わかってもめんどくさい

470 :名無しさん@お腹いっぱい。:2005/04/21(木) 12:22:42 ID:PpLuciwL
ahk ってそういう cron 的な使われ方も想定されてるの?

471 :名無しさん@お腹いっぱい。:2005/04/21(木) 12:44:38 ID:32ExG6IA
Menuお手軽に使えていいんだけど垂直セパレータ追加する方法って
今のところない…よね?

職場で使ってる業務用ソフト、ボタンで3階層くらい辿るようになってるんだが
アクセラレータキーもなくでマウス操作するしかないという。
しんどいんで ahkでメニュー化してキー操作できるようにしようとしてるんだが
項目多すぎてもう死にそう


472 :名無しさん@お腹いっぱい。:2005/04/21(木) 12:53:06 ID:FHyJg+E+
ShorterとSendではだめかいね?

------------------
%1 {autohotkeyのパス}
%2 {キー送るだけのスクリプトのパス}

A | %1 | %2 a
=
B | %1 | %2 b
新規作成 | %1 | %2 {ShiftDown}a(…略)
------------------

みたいな

473 :名無しさん@お腹いっぱい。:2005/04/21(木) 13:37:06 ID:XjBihYGf
文字ラベルのボタンならControlSetTextで "更新(&U)" みたいにすれば
Altキー併用のキー設定できるけどな。

474 :名無しさん@お腹いっぱい。:2005/04/21(木) 15:23:29 ID:32ExG6IA
>>472
Shorter NT4だと正常に動かないっぽ orz
あーでも ver. 0.18以前ならかろうじてOKなんで試してみようかな

>>473
うーん、ネットワーク越しの鯖のウィンドウを呼び出してるらしくて
ControlClassもテキストも取得できないんですよ...
WindowTextだけはなんとか取得できるので、かろうじて制御は可能なんだけど
(Ahk_Classは兄弟ウィンドウ全部同じクラス名になってしまいNG)
最初の階層のボタンをMouseClickで叩けばフォーカスが定まるんで
2階層目以降は Send,{Tab n}{Enter}てな感じでいけるんだけど


475 :名無しさん@お腹いっぱい。:2005/04/23(土) 23:09:18 ID:D+CWl25+
_をシフト押さずに入力したいんだけど
_::send,+_
と設定しても出来ませんがどうしてでしょうか?

476 :名無しさん@お腹いっぱい。:2005/04/23(土) 23:15:51 ID:PmzldVYZ
>>475
当然だろ

477 :名無しさん@お腹いっぱい。:2005/04/23(土) 23:30:59 ID:cXKM2D4y
>>475
sc073:: Send,_

詳しくは
ttp://lukewarm.s101.xrea.com/KeyList.htm
の、その他のキーを参照

478 :名無しさん@お腹いっぱい。:2005/04/25(月) 22:52:53 ID:5GoYBG9c
クリップボードにあるパスの親フォルダのパスを参照するって無理ですか?
例えばクリップボードにD:\AAA\BB.txtがあった時のD:\AAAって意味です。

479 :名無しさん@お腹いっぱい。:2005/04/25(月) 22:58:17 ID:AOWWwPcd
SplitPathで余裕じゃないか?

480 :478:2005/04/25(月) 23:06:32 ID:5GoYBG9c
>>479
見落としてました。
これでできました。ありがとうございます。

481 :名無しさん@お腹いっぱい。:2005/04/27(水) 09:09:31 ID:2zCb+BMn
右クリックを押しながらホイール上下でアプリを切り換えに
Alt+Tab の機能を持たせたいんですがどうすれば良いのでしょうか。
あと、右クリック+左クリックを コントロール+左クリックにもしたいです。
教えてエロい人!

482 :名無しさん@お腹いっぱい。:2005/04/27(水) 10:02:37 ID:NTmWoNv7
for NT or higher

~RButton & WheelDown::AltTab
~RButton & WheelUp::ShiftAltTab

483 :名無しさん@お腹いっぱい。:2005/04/28(木) 17:31:48 ID:amNnm4SV
1.0.31.06

484 :名無しさん@お腹いっぱい。:2005/04/28(木) 18:36:42 ID:qAs43z2U
>>482
ありがとう。ところでこの書き方だと切り換え後に切り換え前の
アプリの右クリックメニューが表示されてしまうんだけど
これをキャンセルする方法は無いかな?激しくウザくて。

書式の先頭のチルダを削除したら大丈夫だけど
それだと右クリック自体がキャンセルさせてしまうし。
何か良い方法は無いかな。

485 :名無しさん@お腹いっぱい。:2005/04/28(木) 19:49:34 ID:HpvtWP+K
Send,{Alt}]で右クリメニューはキャンセルできるよ


486 :名無しさん@お腹いっぱい。:2005/04/28(木) 23:32:08 ID:RsB0C757
>>484
~RButton Up::
If(IsTaskChange)
{
Send,{Alt}
IsTaskChange := 0
}
return
WheelDown::
GetKeyState, RB, RButton, P
If(RB = "D")
{
IsTaskChange := 1
Send,{AltDown}
Send,{Tab}
}
Else
Send,{WheelDown}
return
WheelUp::
GetKeyState, RB, RButton, P
If(RB = "D")
{
IsTaskChange := 1
Send,{AltDown}
Send,+{Tab}
}
Else
Send,{WheelUp}
return


487 :名無しさん@お腹いっぱい。:2005/04/29(金) 03:13:39 ID:cMJ1JB0L
ttp://ringonoki.net/tool/rename/oshiname.html
ttp://ringonoki.net/tool/kaizou/smartui.html
ttp://ringonoki.net/tool/kaizou/updone.html

これ再現して

488 :名無しさん@お腹いっぱい。:2005/04/29(金) 03:22:04 ID:TyBRX4CZ
>>487
ClockLauncher使っとけ。全部対応してるから。

489 :名無しさん@お腹いっぱい。:2005/04/29(金) 05:13:37 ID:CStkAXQt
>>487
ttp://lukewarm.s101.xrea.com/test/read.cgi/bbs/1092315194/
リネームは、ここの102
ダブルクリックで上の階層はこんなんでええんかな?

~Lbutton::
ifwinnotactive,ahk_class CabinetWClass
return
tapcount=1
wingetactivetitle,wintitle1
loop,
{
KeyWait,Lbutton
sleep,50
KeyWait,Lbutton,t0.1 d
if ErrorLevel=0
tapcount+=1
else
break
}
if tapcount=2
{
wingetactivetitle,wintitle2
if wintitle1=%wintitle2%
send,{bs}
}
return

490 :名無しさん@お腹いっぱい。:2005/04/29(金) 15:05:05 ID:UQbF8bEi
これ AutoIT やね。
AutoITでPC便利化計画。最強
http://www.autoitscript.com/autoit3/

491 :487:2005/04/29(金) 15:56:37 ID:nR+7qyF1
>>489
なるほどSetTimer使った監視は必要ないんだなぁ、
リネームのと階層移動のを一緒に使うと
~LButtonがダブってると怒られるんだけど、
これはリネームの方の~Lbuttonを切るのが一番だろうか。

作らせて置いて悪いんだけどエクスプローラー自体使ってなくて
なんていうかスクリプト見たいだけなんです、すみません。
>>488もわざわざ代用ソフトすみません

492 :名無しさん@お腹いっぱい。:2005/04/29(金) 18:43:45 ID:jXzDjvJ4
今TTBaseのスレが地味に盛上がってるからなぁ、気持ちはわかる
>>491
>489の~Lbutton::の直下にでもcount=0の行を追加すればええんちゃう?

493 :487:2005/04/29(金) 19:13:41 ID:nR+7qyF1
>>492
なるほど、言われてみればそうでした。しょぼいなぁおれ

494 :名無しさん@お腹いっぱい。:2005/04/29(金) 20:32:34 ID:w6k9J/a8
Autoit で書かれたソフトなん?

495 :名無しさん@お腹いっぱい。:2005/04/30(土) 01:49:03 ID:3oLihpl2
AutoItはCOMのことでそ
使ったこと無いけど

496 :名無しさん@お腹いっぱい。:2005/04/30(土) 10:33:43 ID:iT3G//Ou
窓のプロセスのフルパスって取得できないもんかねぇ。
Winget, OutputVar, ProcessName, A
じゃパス無しファイル名だけだし。

497 :名無しさん@お腹いっぱい。:2005/04/30(土) 10:41:08 ID:c2RiiBbP
QuickDIrを絡ませるのは同かね
INIが一行だけなら即実行するのでフルパス取得スクリプトへ飛ばしたり


498 :名無しさん@お腹いっぱい。:2005/04/30(土) 11:02:14 ID:iT3G//Ou
>>497
フリーのツールかぁ。コマンドかと思ってリファレンス探しちまったよw

キー割り当てて使いたくてね。
繭だと現フォーカスのクラス名が「ファイルパス:クラス名:クラス名…」って感じで
取得できるからそれを引数にwsh起動して2個目の「:」以降を捨てれば
ファイルパス取得できたんよ。
で、wshから「explorer ファイル名」を実行すれば起動窓のディレクトリ開けたわけ。

でも情報サンクス。

499 :名無しさん@お腹いっぱい。:2005/04/30(土) 15:20:23 ID:3oLihpl2
>>471
ttp://www.autohotkey.com/changelog/PendingChanges.htmに
>Menu: support for multi-column menus, in automatic or manual mode 
>(automatic mode adjusts based on screen height to make a multi-column menu to prevent a scrolling menu from appearing).
とあるからそのうちサポートするみたいよ。


500 :名無しさん@お腹いっぱい。:2005/04/30(土) 17:44:56 ID:iT3G//Ou
小ネタ、AHKからオミトロンのバイパス on/off トグル

DetectHiddenWindows, On
IfWinExist, ahk_class PrxTronCls
 PostMessage,0x111,1007,0,,ahk_class PrxTronCls

501 :名無しさん@お腹いっぱい。:2005/05/01(日) 03:20:06 ID:3lmhGmAd
流行らせるページのような辞書的なものとは別に、
逆引きリファレンスみたいなものもあるといいなぁ。
できればwikiで。(人任せ)

502 :名無しさん@お腹いっぱい。:2005/05/02(月) 15:57:41 ID:Kk64zGDO
>>501はやれば出来る子

503 :名無しさん@お腹いっぱい。:2005/05/02(月) 16:17:08 ID:C8rrgpVI
コントロール押したままホイルマウスをくるくるすると
強制的に横スクロールするようにしたいのですが
なかなかうまくいきません
どなたかヒント頂けませんでしょうか

LCtrl & WheelDown::
MouseGetPos,OrgX,OrgY,hwnd,cls
PostMessage, 0x114, 1, %hwnd%
;Send,!{PgUp}これならエクセルだとうまくいきます

よろしくお願いします。


504 :名無しさん@お腹いっぱい。:2005/05/02(月) 19:34:46 ID:sw0gKEu2
~LCtrl & WheelDown::
MouseGetPos,,,hwnd,cls
PostMessage,0x114,1,%hwnd%,%cls%,ahk_id %hwnd%
return

# wParamとlPramを指定しているだけで、PostMessageをどの窓に送るかが指定されていない。
# また、LCtrlが使えなくなってもいいなら別だが、コンビネーションキーで使うなら ~ あったほうがいい。

505 :名無しさん@お腹いっぱい。:2005/05/02(月) 22:20:52 ID:VQZHsZNI
>>503

<^WheelUp::
<^WheelDown::
MouseGetPos,,, hwnd, cls
IfEqual A_ThisHotkey, <^WheelUp, PostMessage, 0x114, 0, %hwnd%, %cls%, ahk_id %hwnd%
Else PostMessage, 0x114, 1, %hwnd%, %cls%, ahk_id %hwnd%
return

こんな感じのほうがLCtl使うより良いと思う。ただ、エクスプローラでしか動作確認できてない。
メッセージの送り先が違うんかな…

506 :503:2005/05/03(火) 08:15:58 ID:ipiKQDcN
>>504 >>505
ありがとうございます。

両者ともエクスプローラ・メモ帳だとうまくいきました。
ExcelとかのMDI形式のものはやはりきつそうですね・・・


507 :名無しさん@お腹いっぱい。:2005/05/03(火) 09:07:38 ID:d3+17j4k
MouseGetPos,,,hwnd,cls

MouseGetPos,,,hwnd,cls,1
でMDIでもマウス下のコントロール正確に拾えるようになる。
ただWM_HSCROLLを投げてもダメなアプリもある、EXCELとか。
あと lpalam(スクロールバーのウィンドウのハンドル) ってのは
よくわからんがウチだと0にしといても動いてる。
指定するのは目的のウィンドウハンドルではないのかしらん。

EXCELは現在アクティブな子ウィンドウ(マウス位置ではなく)に対しての
WM_MOUSEWHELLしか効かないみたい。スクロールは縦も横も全然ダメっぽい。

508 :名無しさん@お腹いっぱい。:2005/05/03(火) 11:23:57 ID:nG4sCflU
アクティブ窓のクラス名でMouseGetPosでAltMethodをとるかどうか
挙動を変えた方がいいみたいだな。

509 :名無しさん@お腹いっぱい。:2005/05/03(火) 19:08:28 ID:qiV6qJiu
タスクトレイに入っているものを復活させたり操作することは無理ですか?
タスクトレイでのそのアプリのアイコンの位置は決まっていません。

510 :名無しさん@お腹いっぱい。:2005/05/03(火) 19:59:15 ID:nG4sCflU
隠し窓操作でなんとかなるやつもあるかも試練。
>>500参照

511 :名無しさん@お腹いっぱい。:2005/05/03(火) 20:02:23 ID:d3+17j4k
スクリーンショット取って任意のアプリのアイコン画像をbmpなどに切出しておいて
ImageSearchで位置をとり、MouseClickとかで制御すればいけると思う
ただ状況によってアイコンが変わるアプリのなんかの場合は
アイコン数ぶんだけの画像をチェックしないといかんかも知れんが。


;タスクトレイアイコン左クリでアプリが復活右クリ
;X1〜Y2:タスクトバー座標
CoordMode,Pixel,Screen
ImageSearch, OutputVarX, OutputVarY, X1, Y1, X2, Y2, c:\hoge\icon.bmp
MouseClick,R,OutputVarX, OutputVarY ;アプリコンテクストメニュー表示
Send,{Down 3}{Enter};メニュー選択


512 :名無しさん@お腹いっぱい。:2005/05/03(火) 20:05:55 ID:d3+17j4k
書きかけで送信してもうた orz

;タスクトレイアイコン左クリでアプリが復活右クリ
の行は消し忘れ、無視してくれ

>510確かにこっちのが手軽だな
今はahk_pidが使えるから、プロセス名(hoge.exe)とかからPID取って
それで制御すると良いかも。

513 :名無しさん@お腹いっぱい。:2005/05/04(水) 00:01:31 ID:qiV6qJiu
PostMessageの0x111って何?
ttp://www.geocities.co.jp/SiliconValley-Cupertino/5872/Message/WM/
この中なんだろうけど見つけられない。

514 :名無しさん@お腹いっぱい。:2005/05/04(水) 00:08:51 ID:agGOSK2h
WM_COMMANDだろうと調べずにレス。

515 :513:2005/05/04(水) 00:09:55 ID:N+nfMXby
>>514
正解みたい。
サンクス。

516 :509:2005/05/04(水) 00:15:17 ID:N+nfMXby
でもまだ>>510の意味がよくわからんです・・・。

517 :名無しさん@お腹いっぱい。:2005/05/04(水) 00:20:15 ID:/j9C8CcH
>>516
結局具体的にはどういうことがしたいのよ。

518 :509:2005/05/04(水) 00:22:55 ID:N+nfMXby
ものすごく具体的に言うと、
kbMediaPlayerで音楽を再生するときにタスクトレイに入れているんですが
その状態で一時停止とかをホットキーに割り当てたいのです。

519 :517:2005/05/04(水) 00:54:54 ID:/j9C8CcH
>>518
んー、AutoHotKeyだとちょっと辛いかも。
てか、kbMediaPlayer自体にあるホットキー機能じゃだめなのか?
ツール(I)→その他の設定(A)→ホットキー有効(H)にチェック入れて、
Ctrl+Shift+Pで再生とか。

520 :名無しさん@お腹いっぱい。:2005/05/04(水) 01:16:17 ID:N+nfMXby
>>519
あ、ホットキーってトレイに入っていても効くんですね。
勘違いしてました。ありがとうございます。

521 :名無しさん@お腹いっぱい。:2005/05/04(水) 01:57:04 ID:EYxLX1DB
なんだこのつまらない落ちは・・

522 :名無しさん@お腹いっぱい。:2005/05/04(水) 02:31:46 ID:99sbZHGv
おっと、ほっとけ

523 :名無しさん@お腹いっぱい。:2005/05/04(水) 21:33:08 ID:rODwuneF
GetKeyStateでマウスのホイールクリック
押し下げ・上げ状態が収得できないのは仕様でしょうか?
常に変数にはDが入ります

524 :523:2005/05/04(水) 21:38:27 ID:rODwuneF
すいません間違えました
変数には常にUが入ります

525 :名無しさん@お腹いっぱい。:2005/05/04(水) 22:36:38 ID:/j9C8CcH
>>524
取得できたけど。(XP SP2, AHK 1.0.31.07)
↓のスクリプト試してみて。つか、環境ぐらい書いてや。

GetKeyState, M, MButton
If M = U
MsgBox, Up
Else If M = D
MsgBox, Down
Else
MsgBox, Null
return


526 :523:2005/05/04(水) 22:57:41 ID:rODwuneF
>>525
ありがとう

でも、なんだか自分の書いたコードでは動きません
環境は WINXP SP2 AHK 1.0.31.07

ホイールクリックしたときに常駐AutoHotKey.iniから以下のコードを書いたファイルをRunで呼び出します。
IfWinActive ahk_class MyApp
{
loop
{
GetKeyState OutputVar, MButton, P
If OutputVar = D
MouseClick left
else
break
}
}
MouseClick MIDDLE
ExitApp

ホイールクリックされたときに任意のアプリがアクティブだったとき
ホイール押してる間は左クリックの連打をしたいのです。。。
よろしくお願いします。

527 :名無しさん@お腹いっぱい。:2005/05/04(水) 23:08:51 ID:/j9C8CcH
>>526
GetKeyStateのところで P をつけてるけど、
ちゃんと#InstallMouseHookしてるの?

528 :523:2005/05/04(水) 23:14:34 ID:rODwuneF
>>527
書いてるけどダメです


529 :525:2005/05/05(木) 00:31:55 ID:iGuOrAOW
>>528
なんとなく原因は分かるんだけど、どうにもうまい解決策が書けない…
とりあえず試したコード置いとく。
RIGHTをMButtonにすると動かんね。
他の人にパス。

;テストコード
;メモ帳で右矢印を押しながらミドルクリックすると、
;右矢印が離されるまでAを出力
;メモ帳以外では右クリック

MButton ::
IfWinActive, ahk_class Notepad
{
Loop
{
GetKeyState, M, RIGHT
If M = D
{
Send, A
Sleep, 100
}
Else Break
}
}
Else Send, {RButton}
return

530 :名無しさん@お腹いっぱい。:2005/05/05(木) 03:19:46 ID:z1l8NrxL
>IfWinActive, ahk_class Notepad
こういうクラスを複数指定したい時はどうしたらいいですか?

531 :名無しさん@お腹いっぱい。:2005/05/05(木) 03:26:49 ID:ZfCnTvWw
WinGetClass,cls,A
If cls contains Notepad,CabinetWClass,#32770,…
 MsgBox,hoge

532 :523:2005/05/05(木) 16:26:59 ID:D9lN4zz2
>>529
ありがとう、ホイールボタンはひとまずあきらめて
キーを絡めてコードを書き直してみます。

533 :名無しさん@お腹いっぱい。:2005/05/05(木) 16:38:15 ID:J9J/cHxU
http://YahooBB219215212135.bbtec.net/
うぇwwwっっうはっwwwうぇwwwwwwwwwwww
うはっwwwwおkwwwうはっwwwうぇwww

っうぇっうぇwおkwww
wwwwwwっうぇ


534 :名無しさん@お腹いっぱい。:2005/05/06(金) 14:40:15 ID:rG/L1kSV
ローカル変数マンセーってことで
既存ルーチンをFunctionに書き直したらメモリ常駐量増えたorz
やっぱ>448ってことなんかな

535 :名無しさん@お腹いっぱい。:2005/05/06(金) 15:31:10 ID:rG/L1kSV
タスクトレイのデフォルトメニュー (Pause Script)を選ぶと
何かエラーメッセージ出る。NT4SP6 1.0.24 , 1.0.30.03 , 1.0.32
(ホットキー or 自分で追加したメニューでのPauseはOK)
以前のバージョンではちゃんと効いてた気がするんだけど、何だろ

SetTimer,test,5000
Menu,TRAY,Add
Menu,TRAY,Add,Pause_2 ,#p
return

#p::
Pause,Toggle
return

test:
cnt++
tooltip,%cnt%
return

536 :名無しさん@お腹いっぱい。:2005/05/06(金) 23:40:36 ID:niNkgHlg
根本的な解決にはならないけど、ラベル列挙はどうよ。

Menu,TRAY,Add,Pause_2 ,hoge
   :
hoge:
#p::
   :

脱繭はかなりうまくいってるけど、脱マウ筋は厳しい・・・

537 :535:2005/05/07(土) 00:52:53 ID:ypW7J0hR
いや、Pause_2のほうはラベル列挙しなくてもちゃんと効くんですが
元々ある StandardMenuの方の 「Pause Script」がエラーになるのです。
いつのバージョンからかアラートが出てPauseしてくれなくなっちゃって。

仕様なのかもしんないけど、これだと標準メニューに入れてある意味がないし、
何かバグっぽいのかなと思って。

タイマー使ったテストスクリプトとかちょっと書く時とか、わざわざコードに
入れ込まなくても使えたんでちと不便。

538 :233:2005/05/09(月) 01:41:23 ID:zU71pxGA
WheelUp::
WheelDown::
 MouseGetPos,x,y,hwnd,cls
 MouseGetPos,,,,cls2,1
 if(cls != cls2)
  cls := cls2
 accel := (A_PriorHotkey == A_ThisHotkey && A_TimeSincePriorHotkey < 80) + (A_PriorHotkey == A_ThisHotkey && A_TimeSincePriorHotkey < 250) + 1
 wParam := 0x780000 * accel * (1 - 2 *(A_ThisHotkey = "WheelDown"))
 lParam := x + y*0x10000
 PostMessage,0x20A, %wParam%,%lParam%, %cls%, ahk_id %hwnd%
 return

ホイールリダイレクト。例によって加速付き。
だいぶ短くなった。今のところMDIを含め殆ど動ようになった。
W2kSP4, AHK1.0.32.00

539 :名無しさん@お腹いっぱい。:2005/05/10(火) 11:12:56 ID:yD/HtF4C
A_TimeIdleって操作するとクリアされないの?
下のスクリプトだと、600秒たつと常に実行されるみたい。
使い方を勘違いしてたら教えて。

#Persistent
SetTimer, test, 600000
return

test:
If A_TimeIdle > 5000
Send, hoge
return



540 :名無しさん@お腹いっぱい。:2005/05/10(火) 11:38:37 ID:6L+Y9uvQ
ttp://95.89.111.219.dy.bbexcite.jp/
wwwwwwwwwwwwwwおkwwwwwwwwwwwwwww
っうはっwうはっwwwwwwwwwwww
wwwwwwwwwwwwうはっうはっwwwおk
wwwwwwwwwwwwwwwwwwwっwwwwwwwwwwww

541 :名無しさん@お腹いっぱい。:2005/05/10(火) 17:10:15 ID:UhnrLUER
A_TimeIdle
最後に何らかの入力があってからの経過時間をミリ秒で格納。(NT系専用)
PCが放置されているときにアクションを起こすのに使える。
何らかのプログラムが生成した入力イベントでもリセットされてしまう。


542 :名無しさん@お腹いっぱい。:2005/05/10(火) 17:21:48 ID:UhnrLUER
って環境のせいだろと思ったら
不等号逆じゃん

543 :名無しさん@お腹いっぱい。:2005/05/10(火) 18:57:14 ID:yD/HtF4C
逆なの?
俺の理解では、A_TimeIdleは入力がないと値が増えて、
何か入力がないと0になる。
下の説明でも、
IfGreater, A_TimeIdle, 600000, MsgBox, The last keyboard or mouse activity was at least 10 minutes ago.
は、
IF A_TimeIdle > 600000, MsgBox, 10分間入力がなかった
ということだと思うんだが。

The number of milliseconds that have elapsed since the system
last received keyboard, mouse, or other input. This is useful
for determining whether the user is away. This variable will
be blank unless the operating system is Windows 2000, XP, or
beyond. Physical input from the user as well as artificial
input generated by any program or script (such as the Send or
MouseMove commands) will reset this value back to zero. Since
this value tends to increase by increments of 10, do not check
whether it is equal to another value. Instead, check whether
it is greater or less than another value. For example:
IfGreater, A_TimeIdle, 600000, MsgBox,
The last keyboard or mouse activity was at least 10 minutes ago.



544 :名無しさん@お腹いっぱい。:2005/05/10(火) 18:57:55 ID:yD/HtF4C
失礼。
何か入力があると0になる。


545 :541:2005/05/10(火) 21:18:40 ID:BRBDtpga
>>539
結局どうなってほしいの?
内容は合ってるから、入力があっても無くても実行されるんなら
やっぱり環境のせい
素直にA_TimeIdlePhysicalを使えばいいと思う
どうしても、原因を知りたければ

SetTimer, test, 1000

test:
ToolTip, %A_TimeIdle%
return

にするとか

546 :名無しさん@お腹いっぱい。:2005/05/10(火) 22:54:03 ID:E4J0e5a2
>539
10分ごとに 5秒間無操作だったら hoge送信する
何がやりたいんだがよくわからんが
5秒間無操作状態なんてちょっと小休止してたらすぐだし。

SetTimer→60秒 TimeIdle > 15秒くらいで
とりあえず動作チェックとかしてみてはどうか

547 :名無しさん@お腹いっぱい。:2005/05/10(火) 23:42:55 ID:LlKGUnGO
指定した時間が経つとPCをロックする。 LockOutTime に分を入れておく。0ならオフとなる。
LockOutTime = 10
SetTimer,LockPC,on
return
LockPC:
OrgFormat := A_FormatFloat
SetFormat,Float,0.0
LockOutRemain := (LockOutTime * 60000 - A_TimeIdlePhysical) / 1000
if (LockOutTime < 1)
SetTimer,LockPC,off
else if (LockOutRemain < 1)
{
SetTimer,LockPC,10000
tooltip,,,,15
Run, rundll32.exe user32.dll LockWorkStation
}
else if (LockOutRemain < 61 )
{
SetTimer,LockPC,1000
x := A_ScreenWidth / 2 - 50
y := A_ScreenHeight / 2
tooltip, あと %LockOutRemain% 秒でロックアウトします,%x%, %y%,15
}
else
{
SetTimer,LockPC,10000
tooltip,,,,15
}
SetFormat,Float,%OrgFormat%
return

548 :539:2005/05/11(水) 13:07:01 ID:wsBZ7SSX

5秒は短すぎたというのもある。
実際はこう書いていて、
test:
If A_TimeIdle > 600000
Send, hoge
MsgBox, 10分間入力がなかった
return

これは、
test:
If A_TimeIdle > 600000
 {
  Send, hoge
 }
MsgBox, 10分間入力がなかった
return
つーことだったのかと気づいた。今は、
test:
If A_TimeIdle > 600000
 {
  Send, hoge
  MsgBox, 10分間入力がなかった
 }
return
こうしている。


549 :541:2005/05/11(水) 14:12:49 ID:hbgHet1s
>>548
分かりにけーよ
結局解決したの?してないの?
あとsettimerが10分のままだったら誤差が10分だっつーの

550 :539:2005/05/11(水) 16:08:15 ID:wsBZ7SSX
解決したよ。
誤差はあるが、要は操作していないときに動いてくれればいいからOK。

んでだな、流行らせるページの
ttp://lukewarm.s101.xrea.com/Tutorial.htm
#Persistent
SetTimer,ExecWWWC,60000
return

ExecWWWC:
If A_TimeIdle < 300000
Run,d:\app\wwwc\WWWC.exe
return
は違うと思うが、どーよ。


551 :名無しさん@お腹いっぱい。:2005/05/11(水) 17:28:21 ID:vZO0XuMg
で?

552 :名無しさん@お腹いっぱい。:2005/05/12(木) 00:30:36 ID:h3izDHmk
急激にスレのレベルが下がったな・・・

553 :名無しさん@お腹いっぱい。:2005/05/12(木) 09:26:43 ID:SGxNRc0t
だな。
何の情報もなく、スレの感想書くやつが現れるまでになったな。

554 :名無しさん@お腹いっぱい。:2005/05/12(木) 09:59:51 ID:dTuPJH23
>>553
それって>>553のことですか?

555 :名無しさん@お腹いっぱい。:2005/05/12(木) 10:22:23 ID:SGxNRc0t
>>552-555の事だよ!
つーかそれも含めて分かった上で書いてるんだから
面白いレスが思いつかないなら書くなよ

556 :名無しさん@お腹いっぱい。:2005/05/12(木) 11:05:31 ID:YxQ/v61u
> 面白いレスが思いつかないなら書くなよ
それってID:SGxNRc0tのことですか?

557 :名無しさん@お腹いっぱい。:2005/05/12(木) 12:01:06 ID:SGxNRc0t
あのさ、お前それ書くとき何秒考えた?
誰でも考え付くってことはわかるよな。それも無理か?
俺を叩くのもスレを荒らすのもとりあえずはどうでもいいんだよ
ちょっとは考えろって言ってるんだ

で、次あたり俺の書いたレスをコピペして適当に変える気だろ?
ってかいたら「ああコピペされたらむかつくから予防線はってるのか」だろ
誰でも考え付くことを得意げにやってるお前の馬鹿さ加減にいらいらしてることに気付づけやカス
とりあえず次は頑張って捻ったことを書けよ

558 :名無しさん@お腹いっぱい。:2005/05/12(木) 12:24:40 ID:Jers735D
風俗行って「なあ、お前の両親はこの仕事してること知ってるのか」って言ってそうなやつだな。

559 :名無しさん@お腹いっぱい。:2005/05/12(木) 13:36:27 ID:SGxNRc0t
そんな奴っているのか
少なくとも俺がとった客には居なかったな

560 :名無しさん@お腹いっぱい。:2005/05/12(木) 14:12:51 ID:Q0/HDweD
マウスの左ボタンを押しながらホイールで
Alt押しながらホイール、にしたいのですが、
どうすればよいでしょうか。
下のだと駄目でした。

LButton & WheelUp::
IfWinActive, Sleipnir
Send,!{MouseClick, WheelUp}
return


561 :名無しさん@お腹いっぱい。:2005/05/12(木) 14:59:12 ID:SGxNRc0t
Send!{WheelUp}
あとは>>481-486参照で多分出来る

562 :名無しさん@お腹いっぱい。:2005/05/12(木) 15:09:03 ID:SGxNRc0t
ミスってるな…一応
Send,!{WheelUp}

563 :560:2005/05/12(木) 15:44:43 ID:Q0/HDweD
>>561
レスどうも。
>>538のホイールリダイレクト(←便利)を切ったら、それでできました。
同時に走らせられないもんですかね。


564 :名無しさん@お腹いっぱい。:2005/05/12(木) 18:40:32 ID:ygbcLxmH
よくわからんが
~LButton & WheelUp::
じゃあかんのか?

565 :560:2005/05/12(木) 19:06:25 ID:Q0/HDweD
あかんです。

566 :名無しさん@お腹いっぱい。:2005/05/12(木) 19:27:10 ID:ygbcLxmH
ほんなら↓はどないだ? 例によって全角スペース→半角2スペで。
WheelUp::
  GetKeyState,key,LButton,P
  if(key = "D")
  {
    IfWinActive, Sleipnir
      Send,!{WheelUp}
  }
  else
    Gosub,WheelRedirect
return
WheelDown:: Gosub,WheelRedirect

WheelRedirect:
  >>538の中身
return

567 :560:2005/05/12(木) 20:55:15 ID:Q0/HDweD
うまくいきました。ども。
ただ、~LButton & WheelDownすると「きた」と入力されるのが謎。
スクリプト見てもそんなのないし。

568 :名無しさん@お腹いっぱい。:2005/05/12(木) 22:34:48 ID:hYeiY7pc
>>547=538=500=486=454=451=373=333= etc. だが(藁

やっぱ住人は少ないのかなぁ。今日も3人(+愉快な仲間たち)で会話っぽいし。

>>500とか>>547みたく思いつきで適当に書いたりしてるけど、反応ないと何かツマンネ。
プギャーくらいは欲しいぜよ。
他スレで工作員をたまにやったりしてるんだが、やっぱ布教が足りんのかな。

569 :名無しさん@お腹いっぱい。:2005/05/12(木) 22:42:31 ID:la7HjKcw
興味の有るネタじゃないとわざわざ書いてやるのマンドクセ

570 :名無しさん@お腹いっぱい。:2005/05/12(木) 22:48:55 ID:ygbcLxmH
質問だと自分のわかる範囲ならレスつけやすいんだがな
投稿系スクリプトは己に必要がないとなかなか試さないからなぁ
使ってないソフトの制御とかだと試しようもないし

ちなみに漏れは、このスレ内の流れと関連のないスクリプトは
なるべく流行らせるページの投稿スレのほうに貼るようにしてる。
どっちに貼ってもレスつかないって点では同じだし。

571 :名無しさん@お腹いっぱい。:2005/05/12(木) 23:54:01 ID:rIUzAmGj
すいません、あるファイルが選択されている状態で、
(たとえば)「Ctrl+Alt+P」が押されたときに、
そのファイルのフルパスを取得するにはどうすればよいのでしょうか?

572 :名無しさん@お腹いっぱい。:2005/05/13(金) 00:38:03 ID:eia7V2By
エクスプローラ (ahk_class CabinetWClass) での話なら、
コピー(^C)してやればファイルパス取得可能。

^!P::
 ifWinActive,ahk_class CabinetWClass
 {
  ControlGetFocus,cls,A
  IfInString,cls,SysListView32
  {
   Backup := ClipboardAll
   clipboard :=
   Send, ^c
   selected_file_path := clipboard
   clipboard := Backup
   Backup =
   tooltip, %selected_file_path%
  }
 }
 return

ちなみに、複数ファイルのパスを改行(`n)区切りで取得されるので、
場合によっては parsing loop で処理する必要がある


573 :名無しさん@お腹いっぱい。:2005/05/13(金) 05:53:34 ID:2VWAiMYh
エクスプローラは←側にフォルダツリー出すとClass名変わるよ(ExploreWClass)
任意のホットキーで意識的に発動したいってことみたいだし
デスクトップや他ファイラなんかでも効いたほうがいいだろうから
WindowやControlはチェックしないほうが良いと思われ
^!P::
   Backup := ClipboardAll
   clipboard =
   selected_file_path =
   Send, ^c
   ClipWait,0.5
   IfNotEqual,ErrorLevel,0,  return  ;コピー失敗
   Loop,Parse,clipboard,`n,`r
   {
     IfExist,%A_LoopField%
     {
       ;some action
       ifEqual selected_file_path, ,SetEnv,selected_file_path,%A_LoopField%
       else             SetEnv,selected_file_path,%selected_file_path%`n%A_LoopField%
     }
   }
   clipboard := Backup
   Backup =
   tooltip, %selected_file_path%
return

574 :名無しさん@お腹いっぱい。:2005/05/13(金) 05:59:25 ID:2VWAiMYh
尚、ショートカット(.lnk)のリンク先のパスを取りたい場合は
FileGetShortcutを使うといい

575 :名無しさん@お腹いっぱい。:2005/05/13(金) 08:45:35 ID:icqCEluF
>>568
>>486に関しては同情するが
基本的に人の作ったのに興味ない人間しか常駐してないだろ
分からない奴は読まないで質問するだろうし

576 :名無しさん@お腹いっぱい。:2005/05/13(金) 22:07:38 ID:2VWAiMYh
>538みたいなのはビギナーがコピペで即動かせる反面
ある程度自力で環境作ってる人間には>563のように干渉したり
組込みが面倒だったりするんだよな。
関数も使えるようになったことだし、汎用モジュール化して>451みたいに
配布したほうが他人からは使ってもらいやすいかも。

>>575
逆に言うと人のソースをあてにせずとも自分で何とかできる人間は
多少は存在しているということなので
(漏れみたいに自分が書いたモン以外理解できないだけなヤシもいるが)
「要望出すと誰かがスクリプトを書いてくれるスレ」とかを立てたら
需要と供給が一致して多少にぎわうかモナー

577 :576:2005/05/13(金) 22:16:30 ID:2VWAiMYh
何かうまく説明できてないな(´・ω・`)

汎用モジュール化云々の下りは別に ホイールリダイレクトに対して
どうこうしろって要求ではなくて
今後自分が投稿する時とかのことを言いたかった。

578 :名無しさん@お腹いっぱい。:2005/05/14(土) 11:43:06 ID:f7nV+UsG
1.0.33
DllCall()実装キタ

579 :名無しさん@お腹いっぱい。:2005/05/14(土) 14:31:34 ID:u1U54PFk
拡張してんなぁ。
いっそのことコンパイルしてDLLも作れるように汁。

580 :名無しさん@お腹いっぱい。:2005/05/15(日) 00:17:32 ID:ao+UXwR7
ArgTypeの指定がようわからん(´・ω・`)
↓の HMODULE* なんつーのはどういうTypeにすればいいんだか…

BOOL EnumProcessModules(
 HANDLE hProcess,
 HMODULE* lphModule,
 DWORD cb,
 LPDWORD lpcbNeeded
);

581 :名無しさん@お腹いっぱい。:2005/05/15(日) 00:56:24 ID:upN1L5KZ
>>580
DllCall("psapi\EnumProcessModules","Int",hProcess,"Int*",hModule,"Int",4,"UInt*",dwNeed,"Int")

582 :名無しさん@お腹いっぱい。:2005/05/15(日) 15:33:20 ID:ao+UXwR7
>>581
サンクスです。EnumProcessModulesまでOKになりました。
Ahkでウィンドウのアプリのフルパスが取れれば…と思ったんだけど
次のGetModuleFileNameExが ErrorLevel = -4になってまう(´・ω・`)

#a::
  WinGet,PID,PID,A
  hProcess := DllCall("OpenProcess", "int","0x410", "int","false", "int",PID)
  Msgbox,Open ErrorLevel=%ErrorLevel% PID=%PID% hProcess=%hProcess%

  if (ErrorLevel = 0) && (hProcess <> -1)
  {
    if(DllCall("PsAPI\EnumProcessModules","Int",hProcess,"Int*",hModule,"Int",4,"UInt*",dwNeed,"Int"))
    {
      Msgbox,Enum ErrorLevel=%ErrorLevel% hModule=%hModule% dwNeed=%dwNeed%

      result := DllCall("PsAPI\GetModuleFileNameEx","Int",hProcess,"Int",hModule, "Char*",PName, "Int",1000,"Int")
      Msgbox,ex ErrorLevel=%ErrorLevel% result=%result% PName=%PName%
    }
  }
  result := DllCall("CloseHandle", "int",hProcess)
  Msgbox,Close ErrorLevel=%ErrorLevel% result=%result%
return

583 :名無しさん@お腹いっぱい。:2005/05/15(日) 15:40:45 ID:C3bhklPB
何かもうここまでやるならCで書いたほうが早い気がしてきた。

584 :名無しさん@お腹いっぱい。:2005/05/15(日) 18:41:42 ID:upN1L5KZ
>>582
ここにもうある
cgi19.plala.or.jp/lukewarm/news/2005_05.html#14

585 :名無しさん@お腹いっぱい。:2005/05/15(日) 22:06:31 ID:ao+UXwR7
あー本当だ…管理人さん仕事早いな、そして考えることは皆同じということか

今まではDelphiで作った外部のEXE通してたんだけど、やっぱahk単体でできるのはいいね。
psapi.dllならAutohotkeyのパッケージに含まれてるし、w2k以前のOSでも使えるのがイイ

586 :名無しさん@お腹いっぱい。:2005/05/16(月) 00:56:55 ID:MZx1OIfL
選択したテキストをクリップボードにコピーするのは↓でいいのですかね?
一応、機能しているようには感じるのですが。。。

~LButton Up::Send,^c

587 :名無しさん@お腹いっぱい。:2005/05/16(月) 01:29:28 ID:e8uZG3Vr
>>586
それだとクリックアップがあるたびにCtrl-C送っちゃうから誤爆も多いかもね。
ある程度クラス名とかで制限したほうが良いと思う。

588 :名無しさん@お腹いっぱい。:2005/05/16(月) 01:35:23 ID:MZx1OIfL
>>587
ホントだ。
Shift押しながらとかにしようと思ったけどうまくいかない。。。

Shift & ~LButton Up::Send,^c

589 :名無しさん@お腹いっぱい。:2005/05/16(月) 01:41:13 ID:e8uZG3Vr
>>588
修飾キーの付け方違う。
ttp://lukewarm.s101.xrea.com/Hotkeys.htm
まあもう少しどうやればいいか(どうしたいか)煮詰めてから書いたほうがいいよ。
でないとチャット状態になる悪寒。

590 :名無しさん@お腹いっぱい。:2005/05/16(月) 01:53:38 ID:MZx1OIfL
>>589
う〜ん、色々試しましたが、ギブアップです。。。

~+LButton Up::Send,^c

591 :名無しさん@お腹いっぱい。:2005/05/16(月) 07:55:11 ID:0kg5V75a
unixみたいに選択即コピーって動作にしたいってことだと思うが
Shift自体が選択開始キーなのでマウスと組み合わせると意図しない部分まで
選択されてしまったりしないか?

^c送信前に選択文字列があるかどうか調べられればいいんだろうけど
Selectedが取れるのは一部のEditコントロールだけだしな。
PixelGetColor or PixelSearch でマウス(キャレット)付近に選択色があるか
チェックするとか…

592 :名無しさん@お腹いっぱい。:2005/05/17(火) 17:11:12 ID:+LNyO5ly
ある条件でマウスポインタのアイコンが変わるようにしたいんだけど
どうすればいいか分かる人いる?
特殊なアプリ上は無視してマウスのプロパティの通常の選択を変更するだけでいいんだけど
ちなみにOSはXP

593 :名無しさん@お腹いっぱい。:2005/05/17(火) 22:02:59 ID:ak4lmF1P
JavaDog みたいなの、あると便利ですよね・・・
誰か作ってくれないかな(汗)
自分が作れないこともないけど、
そもそもJavaDogについて知ったのがつい最近だから、
作ってみても、質の悪いものしか作れなさそうで(汗)


594 :名無しさん@お腹いっぱい。:2005/05/17(火) 22:14:07 ID:aI7rmV96
AuoHotKeyで実現できる機能で、あると便利な機能のアイディアを出し合わない?

↓↓↓たとえばこんなの↓↓↓

「を入力&」を入力&カーソルを「と」の間に移動


595 :名無しさん@お腹いっぱい。:2005/05/17(火) 22:15:51 ID:DXRM2zvu
誰かエニグマ持ってきて

596 :名無しさん@お腹いっぱい。:2005/05/17(火) 22:16:36 ID:qV0Diah2
>>594
Auto



内容も意味不明

597 :名無しさん@お腹いっぱい。:2005/05/17(火) 22:50:43 ID:dePC1TGM
よくわからんがコレか?
ttp://www.javadog.com/

598 :名無しさん@お腹いっぱい。:2005/05/17(火) 22:58:24 ID:0IGl9FJA
整理してみた↓↓↓

カーソル移動の間に「を&を&を」と「入力入力」

599 :名無しさん@お腹いっぱい。:2005/05/17(火) 23:09:46 ID:zk9p1i9k
>>591
サンクス。
難しいので挫折します。

600 :名無しさん@お腹いっぱい。:2005/05/17(火) 23:17:43 ID:DXRM2zvu
ttp://d.hatena.ne.jp/monk_saruhobo/20050517/p1の、
ドラッグを検知して、カーソルがIBeamだったらコピーってのには
一本取られた思いだ。
ダブルクリッコ効かなくなるけど。

601 :名無しさん@お腹いっぱい。:2005/05/17(火) 23:27:16 ID:YdD8dr8S
つまり、先にカギカッコを”「」”と打ちこんじゃうと。
すると”「”と”」”の間にカーソルを戻してくれると。

あまり意味ないんじゃないか?
各種括弧を効率よく入力する方法はいろいろ模索してるけど

602 :名無しさん@お腹いっぱい。:2005/05/17(火) 23:36:59 ID:l7FJqZZM
つまり
1.入力:「 → 「▎
2.入力:」 → 「」▎
3.自動: → 「▎」
こういうことか。( ▎ はキャレット)
ワープロでそういう機能が付いてるものはいくつかあるね。(一太郎とか)
でも有っても使いたいとは思わないな。

603 :名無しさん@お腹いっぱい。:2005/05/17(火) 23:44:16 ID:zk9p1i9k
>>600
サンクス。
このまま使わせてもらいます。

604 :名無しさん@お腹いっぱい。:2005/05/18(水) 00:05:54 ID:8plScv9K
>601-602
解説サンクス、やっと理解できた。
JaneDoeだと見え方違うのかと思ってわざわざIE互換ブラウザで開き直しちゃったYO

「」は個人的にはあんまり必要性は感じないけど
ソース書いてる時の {} () は閉め忘れ防止で、閉じてから
中身に取りかかるようにしてるのであったら便利かも知れぬ。

605 :名無しさん@お腹いっぱい。:2005/05/18(水) 00:22:55 ID:mIDDhW/a
そんなのエディタやIMEにまかせりゃいい

606 :名無しさん@お腹いっぱい。:2005/05/18(水) 00:26:46 ID:Gk4FIjba
このスレは、他のソフトで容易に可能なことを如何にしてAHKのみで可能にするか、というスレじゃないの?
なんかここ最近ずっとそんな感じなんだけど

607 :名無しさん@お腹いっぱい。:2005/05/18(水) 08:39:11 ID:VNZzfIsL
>>606
嫌ならほかの話題書けばいいじゃん

608 :名無しさん@お腹いっぱい。:2005/05/18(水) 08:47:23 ID:w0+qwMtQ
だな、「俺がこう言ってるから、お前らこうしろ」
ってむかつくよな。

609 :名無しさん@お腹いっぱい。:2005/05/18(水) 12:42:32 ID:VNZzfIsL
>>606
あ、>>605に対するレスか

続けたかったら続けたらいいんじゃないの
>>605はやめろって言ってるわけじゃないし

610 :名無しさん@お腹いっぱい。:2005/05/18(水) 15:12:09 ID:c1IR08bU
>他のソフトで容易に可能なことを如何にしてAHKのみで可能にするか
そうやって書かれると何かムダな努力をしているかのような(w
冷静に考えてみると確かにそうかもしれんがー

611 :名無しさん@お腹いっぱい。:2005/05/18(水) 17:01:47 ID:6n1ZXCvy
少しでも無駄な常駐ソフトを減らすためでもあるな

612 :名無しさん@お腹いっぱい。:2005/05/18(水) 18:30:39 ID:vkEQq2V2
win9xの時代なら意味も大きかっただろうけど、今だとそれほど大きな意味は
無いよなあ、常駐減らし。もちろん少ないに越したことはないけど。

613 :名無しさん@お腹いっぱい。:2005/05/18(水) 19:41:29 ID:4zEo/3Si
つうか、AutoHotKeyの可能性を試すスレじゃないのか?
様々なスクリプトを書くことに意義があると思うのだが。

614 :名無しさん@お腹いっぱい。:2005/05/18(水) 23:48:53 ID:w0+qwMtQ
>>613
じゃあ無駄なレスつけてないで、ゴリゴリとスクリプト書けば〜?

615 :名無しさん@お腹いっぱい。:2005/05/19(木) 18:12:35 ID:1njrKNvb
>>614
何イライラしてるの?煽ってる意味がわからん・・

616 :名無しさん@お腹いっぱい。:2005/05/19(木) 20:01:24 ID:uasCWANb
言ってることとやってることが違うって言いたいのだが、
間違ってるかい?

617 :名無しさん@お腹いっぱい。:2005/05/19(木) 20:39:03 ID:W4vpm7Zk
>> 616
広く需要がなさそうだったり、個人的に(゚听)イラネって思ってても
面白そうだと思った誰かがコード書いて貼り付けるかもしれないし
いちいち否定的なレス入れんでもいいよ

ってなことを>606,613あたりは言いたいだけではないか
そう書いたからって、別に要望受けつけの義務が生じるわけではないし
興味ないネタにスルーするのは自由だと思うが。

618 :名無しさん@お腹いっぱい。:2005/05/19(木) 20:46:32 ID:rGN8wQ6O
ソフト自体の有用性は疑うべくもないが、
素直にホットキーにvbsでも割り当てれば?って感じるケースもあったりなかったり

619 :名無しさん@お腹いっぱい。:2005/05/19(木) 22:57:59 ID:uasCWANb
ん、まぁ、なんだ、少しイライラしてた。
すまんかった。

620 :名無しさん@お腹いっぱい。:2005/05/19(木) 23:42:22 ID:W4vpm7Zk
とか何とかやってるうちに v1.0.33.01 出てた。

621 :名無しさん@お腹いっぱい。:2005/05/19(木) 23:46:06 ID:YeOFTzpa
DllCall()が使いやすく(見やすく)なった。

622 :名無しさん@お腹いっぱい。:2005/05/20(金) 02:13:01 ID:HVKe+iMq
同じマウス操作を、異なるアプリに異なるキー操作で割り当てようとしたら、
Duplicate label って出てエラーになるんですが、どうやったら回避できるんでしょうか?

623 :名無しさん@お腹いっぱい。:2005/05/20(金) 07:45:51 ID:IWk2tcfA
ラベルが重複してるって言ってるじゃん

同じラベルにぶち込んでIfWinActiveとかつかって窓判定させて
分岐させて各処理をさせるように汁。

624 :592:2005/05/20(金) 13:55:52 ID:cx7cMcWi
>>592の質問
流行らせるの方で聞くので取り下げます

625 :名無しさん@お腹いっぱい。:2005/05/20(金) 15:07:00 ID:LXsBPIHP
>>622
>同じマウス操作を、異なるアプリに異なるキー操作で割り当てようとしたら
よくわからん説明だが
キー操作でマウスコントロールしたいなら別にエラーにはならんと思うが
#a:: Send,{WheelUp}
#b:: Send,{WheelUp}

マウス操作でキー送信したいなら振分けが必要
WheelUp::
  ifWinActive, hoge
    Send,#a
  Else ifWinActive,hage
    Send,#b
return

>>624
レスつかないのはAutohotkey内の機能では多分無理だからだと思う
DllCallで何とかなるかも知れんのでまぁガンガレ
ttp://www.geocities.jp/winapi_database/Graphics/Cursor/index.html

626 :592:2005/05/20(金) 16:10:55 ID:cx7cMcWi
>>625
質問する前にぐぐった時点でそれは分かったんだけど
もともとdllの呼び出し方を知らない上に
autohotkeyから呼び出すサンプルも少ないんで
類推出来ずお手上げなので質問してみた

627 :625:2005/05/20(金) 23:58:26 ID:jhPL19PD
とりあえずLoadCursorFromFileで直接カーソルファイル指定で
システムのポインタは変えれるぽい
(LoadCursorも試してみたがイマイチ挙動がよくわからん)

#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)
}

628 :名無しさん@お腹いっぱい。:2005/05/21(土) 00:01:00 ID:jhPL19PD
↑ あ、ahkのバージョンは v1.0.33.01 でね。

629 :592:2005/05/22(日) 01:27:55 ID:pD90cfjA
>>627
出来ました
やっぱり俺のDllCallのやり方は全然間違ってました
どうもありがとう

630 :592:2005/05/25(水) 12:53:24 ID:62rl7YBY
IME状態表示用のアイコン作ってみた
ttp://lukewarm.s101.xrea.com/up/file/028.zip

631 :名無しさん@お腹いっぱい。:2005/05/25(水) 12:54:38 ID:62rl7YBY
あ、マウスカーソルに訂正

632 :名無しさん@お腹いっぱい。:2005/05/25(水) 15:14:15 ID:zdbfTCru
627 = 投稿スレ94 だが
IME制御のスクリプトをFunctionで書き直してたので便乗上げ
ttp://lukewarm.s101.xrea.com/up/file/029.zip

ただ なまず氏によるとIMEの常時監視は重くて実用的ではないそうだが

633 :名無しさん@お腹いっぱい。:2005/05/25(水) 20:20:12 ID:UL/StRhm
会社のにはATOK入れられないし言語バー邪魔なんで、
IME状態が切り替わったり、フォーカスが変わったりしたら
キャレット位置に [あ] [A_] のようにATOKナビもどきを表示させようと思い、
投稿スレの>>94を独自にFunction化して状態表示させるのやってみた。

試みとしてはうまくいって便利だったけど、上にもあるように重かった。
ダブルクリックを拾ってくれないし・・・
やっぱ定期的に SendMessage で応答待つのが痛いのかな

IMEヲチャ外しはまだ先になりそう・・・

634 :名無しさん@お腹いっぱい。:2005/05/25(水) 20:36:57 ID:RWhJ54OD
IMEウォッチャー相当のDLLを作ってAPIでAHKのプロセスにスレッドを作って監視とか出来ないかな
敢えてAHK内でやる意味が皆無だが

635 :632:2005/05/25(水) 20:45:39 ID:jjP0j4R+
API使えるようになったんで、IME関係の制御とかググって見たんだが
自アプリ以外のIMEの状態はAPIでは見れないらしい。
…ってことでAutohotkey以外でもSendMassageで問い合わせ
してるんだろうと思ってたんだけど。
IMEウォッチャーはどうやって制御してるんだろか

636 :名無しさん@お腹いっぱい。:2005/05/25(水) 20:57:16 ID:vQU2Nad3
AHKってオープンソースなんじゃなかったっけ? 改造できないの?

637 :名無しさん@お腹いっぱい。:2005/05/25(水) 22:15:21 ID:WiJcTSrW
ImmGetConversionStatus()とか。

638 :名無しさん@お腹いっぱい。:2005/05/25(水) 22:52:24 ID:urkwDMaK
重いって言ってる人はどのくらい重いの?
俺は100msで監視してるけど特に重くないけど

639 :名無しさん@お腹いっぱい。:2005/05/25(水) 23:04:03 ID:jjP0j4R+
>637
他アプリのIMEのハンドルがImmGetContextで取れないので…(´・ω・`)

よく考えたらSendMessageでもシステムメッセージフックして盗み見するのと
毎回自分で投げて問い合わせするのじゃ重さ違って当然だわ。
何いってんだ漏れ orz

こういうのはTTBaseのが得意そうだな
現状のAhkでやるなら高速で常時回すのは諦めて
IME ON/OFFキー押下 と アクティブウィンドウが切替わったタイミングで見る
& EXCELなどセル単位で自動でモードが変わるアプリだけ1秒間隔で見る
とかかな

>>636
開発環境とスキルさえあれば可(漏れには無理ぽ)

640 :名無しさん@お腹いっぱい。:2005/05/25(水) 23:29:34 ID:WiJcTSrW
>>639
NULL

641 :名無しさん@お腹いっぱい。:2005/05/26(木) 08:42:30 ID:eOQHBFQN
>>639
AttachThreadInputで対象プロセスに入り込んでからでもダメですか?


642 :名無しさん@お腹いっぱい。:2005/05/26(木) 10:06:03 ID:HebBcTe6
会社からなんでID変わってますが 639です

>>640
ごめん意図が汲み取れない。hWndとhIMCにあえて0突っ込んでみたけどだめだった。
とりあえず自分はこの辺りまで試して挫折しました。

    WinGet,hWnd,ID,A
    hIMC := DllCall("imm32.dll\ImmGetContext",Uint,hWnd, Uint)
    ret := DllCall("Imm32.dll\ImmGetConversionStatus",Uint,hIMC, Uint*,lpfdwConversion, Uint*,lpfdwSentence, Int)
    
    msgbox, hWnd=%hWnd% hIMC=%hIMC% lpfdwConversion=%lpfdwConversion% lpfdwSentence=%lpfdwSentence% ret=%ret%
    DllCall("imm32.dll\ImmReleaseContext",Uint,hWnd, Uint,hIMC, Uint)

>>641
ググッたらこんなページが。仕事中なんでちゃんと見てないけど
ttp://forums.belution.com/ja/vc/000/190/55.shtml
つか正直もうよくわかりません、誰かパス

643 :名無しさん@お腹いっぱい。:2005/05/26(木) 16:11:27 ID:XFJshJml
1.0.34
組み込み関数が増えた。

644 :名無しさん@お腹いっぱい。:2005/06/01(水) 12:43:29 ID:qIOPObk6
保守

645 :名無しさん@お腹いっぱい。:2005/06/07(火) 16:24:29 ID:ZMpkIRz1
だれもいない・・・・

646 :名無しさん@お腹いっぱい。:2005/06/07(火) 17:23:33 ID:QsSyLn6r
1.0.35.05 - June 6, 2005

647 :名無しさん@お腹いっぱい。:2005/06/10(金) 03:13:53 ID:FA9JzWUy
質問があるのでよろしくお願いします
エクスプローラーで複数ファイルを選択後、右クリックから送るでそのディレクトリにフォルダをつくり
選択したファイルをそのフォルダに入れようとおもってます
GUIを表示してそこにドロップすればファイル名とパスは取得できるのですが
スクリプトを起動してない状態から送るでファイル名を取得するやり方がわかりません
コンパイルしたスクリプトだと送るに登録は出来ました
実際にはさらにそのフォルダを別アプリに送る予定です

648 :名無しさん@お腹いっぱい。:2005/06/10(金) 08:14:43 ID:hqsM7NmR
つか、コマンドラインとかそういうのまず覚えれ。
バッチファイルで同様のもの作れんようじゃAHKは無理だぞ。

649 :名無しさん@お腹いっぱい。:2005/06/10(金) 09:35:27 ID:mGLo1B0/
>>647
その前に日本語勉強して下さい。

650 :名無しさん@お腹いっぱい。:2005/06/10(金) 11:54:42 ID:SZhX6IFT
>>647
ttp://lukewarm.s101.xrea.com/Scripts.htm の
「スクリプトのコマンドライン引数」および
「スクリプトの起動とAuto-executeセクション」の項参照
%1%とかでコマンドライン引数(この場合はドロップしたファイル名)を受け取れるよ
あと、SendToにスクリプトのショートカットを入れてる場合は
そっちもパラメータ送れるようにしないとだめかも

651 :647:2005/06/10(金) 14:44:08 ID:FA9JzWUy
説明が下手で申し訳ありませんでした。
>>650
ありがとうございます。スクリプトのコマンドライン引数の項を見逃しておりました

item1=%1%
SplitPath,item1,OutFileName,OutDir
move1=%OutDir%\file\%OutFileName%
FileCreateDir,%OutDir%\file
FileMove,%item1%,%move1%
return

実際にはloopで30ほどやってます
これをコンパイルして送るに登録したら望みどおりの動作になりました
複数ファイルのドロップに対応していないDVD書き込みソフトでしたので非常に助かりました

652 :名無しさん@お腹いっぱい。:2005/06/17(金) 02:12:24 ID:LvpKm3620
vk1Dsc07B & M::MouseClick, L,,,,,D
vk1Dsc07B & M up::MouseClick, L,,,,,U
vk1Dsc07B & N::MouseClick, R,,,,,D
vk1Dsc07B & N up::MouseClick, R,,,,,U

こんな感じでキーボードにマウスクリックを割り当ててるものの,
キーに一切さわらない状態でも一部のアプリケーションでM,Nが押しっぱなしとして認識されてしまう。
ゲームで起こることが多いのでDirectXとか絡みなのかなぁ…
これとか↓で確認できる。
ttp://www.vector.co.jp/soft/win95/edu/se368955.html
環境はXP SP2,AHK1.0.34.00
原因分かる人います?

653 :名無しさん@お腹いっぱい。:2005/06/17(金) 12:00:00 ID:inU/T7qc0
>>652
AHKに限らずこの手のソフトはDirectXと相性悪いよ。

654 :名無しさん@お腹いっぱい。:2005/06/21(火) 15:11:29 ID:Ey8MptHj0
怒涛のばーじょんうぷage

655 :名無しさん@お腹いっぱい。:2005/06/21(火) 16:56:38 ID:BpI1xQw10
でも日本で使ってるやつは7人だけ

656 :名無しさん@お腹いっぱい。:2005/06/21(火) 18:50:16 ID:n7np6rMc0
まさに七人のオタ…いや、侍!

657 :名無しさん@お腹いっぱい。:2005/06/24(金) 12:57:01 ID:SQYn8nRm0
本家ではマイナーバージョンアップが続いてるようだけど
Show Menu後の動作が微妙に改善されてるね
ESCで抜けた時とか、ちゃんと直前のアクティブウィンドウに戻ってくるようになった。

658 :名無しさん@お腹いっぱい。:2005/06/26(日) 18:57:24 ID:H0kSirzq0
みんなフルパスからファイル名取得するときどうしてる?
SplitPathだと「ソ」とかダメ文字入ってたら変になるよね。
オレDLLつくって、DllCallして取得してるけど、もっと簡単な方法ある?

659 :名無しさん@お腹いっぱい。:2005/06/26(日) 21:10:54 ID:CfSUPU3Y0
「DLLつくって、DllCall」が一番簡単だと思う。
作るのも使うのも。

660 :名無しさん@お腹いっぱい。:2005/06/26(日) 22:49:25 ID:CAOhj3xo0
あれ、パス切り出すAPIがあったような無いような

661 :名無しさん@お腹いっぱい。:2005/06/27(月) 00:41:50 ID:KvSBp0GH0
ダメ元でクリスちんに要望出してみるとか。
本家BBSの常連さんたちは結構攻撃的なので必要性がわからんとか
無駄にメモリ食うだけとかって猛反発されるだろうけど、
サンプルソースの一つも付けてお願いしたらクリスちんは案外対応してくれそうな気もする。

662 :名無しさん@お腹いっぱい。:2005/06/28(火) 15:11:32 ID:KRytUcik0
ver 1.0.36
ClipboardのChangeイベントキタ

663 :名無しさん@お腹いっぱい。:2005/06/29(水) 13:35:14 ID:DlaSLCWs0
1.0.35からのキーマクロの仕様変更にまだ対応できてない俺がいる

664 :名無しさん@お腹いっぱい。:2005/06/30(木) 05:54:39 ID:iGtXyAyT0
とうとうダブルクリック実装された?

665 :名無しさん@お腹いっぱい。:2005/07/06(水) 15:11:22 ID:JZ0WgC+g0
とりあえず保守
現在の最新のバージョンは1.0.36.02 (released July 3, 2005)

666 :名無しさん@お腹いっぱい。:2005/07/08(金) 15:15:12 ID:90AmP/Jj0
そこそこ利用者は多いのにスレが伸びないのは何故

667 :名無しさん@お腹いっぱい。:2005/07/08(金) 15:41:46 ID:eH4qYb+W0
それぞれ自足してんじゃない?

668 :名無しさん@お腹いっぱい。:2005/07/08(金) 17:03:07 ID:+oXXYJc+0
プログラミングを既習でないので、変数が出たり長い行にはついていけません。

669 :名無しさん@お腹いっぱい。:2005/07/09(土) 09:37:05 ID:0jM4IK6+0
>666
点呼スレではまだサッカーができない状態だがナー

670 :名無しさん@お腹いっぱい。:2005/07/09(土) 10:38:32 ID:10GgOrpq0
わかる人にはわかるけど、わからない人には全く手がつけれれないこのソフト。

671 :名無しさん@お腹いっぱい。:2005/07/09(土) 11:02:22 ID:HJ8nvXPt0
行き当たりばったりに機能追加しすぎてるから、
みんな2.0で作り直されるのを待ってるんだよ

672 :名無しさん@お腹いっぱい。:2005/07/09(土) 15:42:06 ID:6L+G1tm70
最近のはエンバグ大杉。

673 :名無しさん@お腹いっぱい。:2005/07/10(日) 16:13:46 ID:dz/Qh5xO0
#\::run, notepad.exe でwinキー+\(右シフトキーの横)でメモ帳が起動するようにしたいんですが起動しません。
これじゃ何でだめなんでしょうか?

674 :名無しさん@お腹いっぱい。:2005/07/10(日) 16:20:13 ID:OKGBA0wn0
#vk74sc03F::run, notepad.exe

675 :名無しさん@お腹いっぱい。:2005/07/10(日) 16:26:07 ID:dz/Qh5xO0
>>674
ありがとうございます。動かなかったですがバーチャルキーを色々試してみます。。。

676 :名無しさん@お腹いっぱい。:2005/07/10(日) 16:28:46 ID:OKGBA0wn0
ホントだオレもうごかねーや('A`)

677 :名無しさん@お腹いっぱい。:2005/07/10(日) 16:32:36 ID:dz/Qh5xO0
#sc073::run, notepad.exe
これでいけました。メニューのview -> Key history and script infoで調べればよかったですorz

678 :名無しさん@お腹いっぱい。:2005/07/10(日) 18:06:48 ID:sXwd0jjA0
特定のファイルとアプリケーションを関連づけて起動することが
できるのですか。
#sc073::run, notepad.exe,c:\hoge\foo\bar.txt
みたいにしてみたのですがリロードエラーになります。

679 :名無しさん@お腹いっぱい。:2005/07/10(日) 18:25:14 ID:zfwbVwK/0
> リロードエラーになります。
当たり前だろw

680 :678:2005/07/10(日) 19:50:06 ID:sXwd0jjA0
#sc073::run, notepad.exe c:\hoge\foo\bar.txt
いじっていたらできました。

681 :名無しさん@お腹いっぱい。:2005/07/14(木) 03:10:20 ID:9ttcyQcE0
これって実行してるスクリプトを停止する方法ってどうやるんでしょ
プログラムミスって無限ループって止めらんなくてちょっとあせった

682 :名無しさん@お腹いっぱい。:2005/07/14(木) 03:47:30 ID:TkHY3qM+0
無限ループになったら割り当てておいたキーでリロードしてる
若しくはループしそうな所に抜け出すキーを置いておく

683 :名無しさん@お腹いっぱい。:2005/07/14(木) 06:46:20 ID:/kYZeYxy0
マウスが効く時はタスクトレイ操作で何とか終わらせてるけど
いざとなったら Ctrl+Alt+Delでタスクマネージャ呼び出してプロセス殺すしかないかも
動作確認中はリロードと終了はホットキー割り当てといたほうが無難だな

684 :名無しさん@お腹いっぱい。:2005/07/17(日) 20:48:28 ID:joMCoDhK0
このソフトで、
非アクティブを自動操作(キー連打など) しながら、アクティブウィンドウで自由操作
するという、状態を作り出すことってできますか?

685 :名無しさん@お腹いっぱい。:2005/07/17(日) 20:53:10 ID:Xujs113t0
出来る。

686 :名無しさん@お腹いっぱい。:2005/07/17(日) 20:57:40 ID:joMCoDhK0
>>685
どうやって設定すればいいですか?
初心者なので、基礎の基礎から教えていただけませんか?
OSはMEです。お願いします

687 :名無しさん@お腹いっぱい。:2005/07/17(日) 21:22:23 ID:OOkaJ72R0
>>686
SendMessageでも送ってやればいいじゃん。
SendMessageの使い方についてはスレ違いなのでここで聞かないように。

688 :名無しさん@お腹いっぱい。:2005/07/17(日) 21:25:08 ID:kpvI7Ywg0
>>686
流行らせるページ見て自分で試行錯誤してから聞けよ…
このソフトは自分である程度調べられないヤツには使えない。

689 :名無しさん@お腹いっぱい。:2005/07/17(日) 22:36:06 ID:joMCoDhK0
ほんとに>>684のことが出来るの? 
できなかったら、だいぶ時間を無駄に使っちゃうけど。

690 :名無しさん@お腹いっぱい。:2005/07/17(日) 22:54:35 ID:alal4cIF0
>>689
間違いなく出来るからがんがれ

691 :名無しさん@お腹いっぱい。:2005/07/18(月) 00:00:03 ID:0hIxkxjT0
>>689
時間を費やす気がないなら諦めれ、自称初心者ならそれこそ腰据えてやる覚悟が必要
あと98系OSは結構機能に制限出るぞ、SendMassageくらいなら変わらんと思うが。

692 :684:2005/07/18(月) 03:31:02 ID:MgOOM9cI0
SendMassageですよね。それってたしか第3引数。
だとすると、直接、そのウィンドウに反映するキー操作ではなく
内部からのもの。ということは、メッセージは打てても、
テンキーなどの操作はできないってことですよね。
じゃあ、私のやりたいことはできないかな。

693 :名無しさん@お腹いっぱい。:2005/07/18(月) 07:08:40 ID:k2y5okJ50
なに、この人。

694 :名無しさん@お腹いっぱい。:2005/07/18(月) 11:46:22 ID:SgPZAgcN0
情報小出しにするなら早く出てけよ…?ビキビキ

695 :名無しさん@お腹いっぱい。:2005/07/18(月) 11:55:33 ID:1NZ9UvMr0
まぁなんだ、夏休みだな

696 :名無しさん@お腹いっぱい。:2005/07/18(月) 19:58:37 ID:GZFqkLAC0
>>692
おめーのやりたいことなんてシラネーヨ。
エスパーじゃねーっつーの。

697 :名無しさん@お腹いっぱい。:2005/07/18(月) 23:35:47 ID:rN9WEzu60
>>684ではないんだが
SendMassageを勉強するのにいいサイトってどこ?

698 :684:2005/07/18(月) 23:53:09 ID:MgOOM9cI0
>>696
キー連打です。

699 :名無しさん@お腹いっぱい。:2005/07/18(月) 23:56:35 ID:d6A2GU/+0
>>697
SendMassageの使い方覚えるのに、
いいサイトも糞もあるかよ。
引数の概要だけわかればそれで充分だろ。

ハンドルの取得方法がわからないとか、仮想キーコードがわからないってなら
SendMassageとは関係ない次元の話だし。

>>698
間違いなく出来るからがんがれ。
がんがる気の無い奴にはこのソフトは使えない。

700 :名無しさん@お腹いっぱい。:2005/07/19(火) 04:04:04 ID:qCXOpUud0
(´-`).。oO(>699 はSendとSendMassageを混同しているような…)

>697
流行らせるページのSendMassageの項にあるリンク切れてるんだよな
ウィンドウメッセージ一覧なら、VBやHSPのページが結構詳しい
ttp://www.winapi-database.com/Message/WM/
ttp://yokohama.cool.ne.jp/chokuto/urawaza/message/index.html

元からプログラミングしないヤシにとってPost/Sendは敷居高い部分だと思うが、まぁガンガレ

701 :名無しさん@お腹いっぱい。:2005/07/19(火) 06:14:14 ID:Fu3OI+PQ0
>>700
ワロタ

702 :684:2005/07/19(火) 08:14:55 ID:Q81VsW9F0
Loop, 5000
ControlSend, WA_INACTIVE , F8, ウィンドウ名
#Hotstring EndChars F2`t 

非アクティブのとき、そのウィンドウでF8ボタンを5000回押す。(できれば無限がいいのですが)
というスクリプトを作ってみましたが。しかし、このスクリプトでは、うまく機能しませんでした。
いろんな説明を読んで作ってみましたが、やはり、ちょっと難しかったのでアドバイスください
お願いします。

703 :名無しさん@お腹いっぱい。:2005/07/19(火) 08:29:16 ID:ZmfLC9hc0
SendMassage なんて隠し API があったのかよ。すげぇな。

704 :名無しさん@お腹いっぱい。:2005/07/19(火) 16:54:39 ID:gmRNDiPm0
>>684
さっさと消え(ry

705 :名無しさん@お腹いっぱい。:2005/07/19(火) 20:18:44 ID:qCXOpUud0
まるごと教えてクンなら放置しようかと思ったが、何やらガンガっている様子

>>702
上にも書いたけど Send(ControlSend)とSend(Post)Massageを混同しちゃいかんよ
前者はAutohotkeyの内部コマンド、後者はWin汎用機能へのバイパス用だ
ControlSendが使えるならその方が手っ取り早い、がこいつは送り先によって
効かなかったりするので、まずはWin+AとかのホットキーでF8送れるか試してみれ

#a:: ControlSend,コントロール名,{F8},ウィンドウ名

コントロール/ウィンドウ名は 付属の Window Spyで調べられる。
その他のヒント: #Persistent、ifWinNotActive、SetTimer

706 :684:2005/07/19(火) 21:45:47 ID:Q81VsW9F0
>>705
回答ありがとうございます。
まず、コントロール名に何を打ち込んだらいいのかわかりません。
ahk_class と ClassNN を試してみました。インスタンス番号はわかりませんでした。
たとえば、ギコナビなら ahk_class TGikoForm なので、 #a:: ControlSend,TGikoForm,{F8},ギコナビ 
という感じでやっていました。
コントロール名が間違っているかもしくは、使いたいウィンドウにはControlSendは使えない、ということがわかりました。
その他のスクリプトも試していこうと思います。


707 :名無しさん@お腹いっぱい。:2005/07/19(火) 21:48:38 ID:PO30XtFS0
>>706
つか、具体的にどのソフトでどういうキーを連打させたいとか書いてみれば?

708 :名無しさん@お腹いっぱい。:2005/07/19(火) 22:03:12 ID:ZmfLC9hc0
http://www.google.co.jp/search?q=SendMassage&sourceid=opera&num=100&ie=utf-8&oe=utf-8&lr=lang_ja
SendMassage の検索結果のうち 日本語のページ 約 19 件中 1 - 8 件目 (0.22 秒)

ちなみに、このスレがトップでした。(゚∀゚)アヒャ

709 :名無しさん@お腹いっぱい。:2005/07/20(水) 00:38:05 ID:DQ///6iD0
…レス抽出8件中3件が漏れでした (ノ∀`)

710 :名無しさん@お腹いっぱい。:2005/07/20(水) 01:38:37 ID:hm4EHrQU0
教えて君、長居する気満々だな

711 :684:2005/07/20(水) 03:54:41 ID:H8DNMD750
なんだか罪悪感に苛まれたので、質問はもう止めます。
回答してくれた方ありがとうございました。

712 :名無しさん@お腹いっぱい。:2005/07/20(水) 04:12:09 ID:R6BNjMLX0
あーあ追い出しちゃった。点呼スレで10人しかいないのにw

713 :名無しさん@お腹いっぱい。:2005/07/20(水) 09:23:07 ID:+T1xRJyJ0
いくら過疎スレでも教えて君はいらないだろ・・・

714 :名無しさん@お腹いっぱい。:2005/07/20(水) 17:44:42 ID:s+ZiLj2D0
目的さえしっかり書いてくれればスクリプト書くのは楽しいからいいんだけど、
教えるのはめど過ぎる

715 :名無しさん@お腹いっぱい。:2005/07/20(水) 18:59:14 ID:DQ///6iD0
非アクティブウィンドウをそのまま操作するのって結構面倒なんだよね。
それはそうとキー連打で何をやりたかったのか気になる…
田代砲もどきとか、2ちゃんビューア上でのオートリロードとかかな。
アイドルディレイ一切なしじゃ遅延キーリピート発生しまくりでどえらいことになりそうだけど

716 :名無しさん@お腹いっぱい。:2005/07/24(日) 16:51:26 ID:QtUgp6RE0
そのときそのときで異なるファイルを暫定的にホットキーに
オートマチックに登録したいのですが、AHKでファイル操作
はできますか。

@ ファイルパスをクリップボードに取得(手動または
他のアプリケーションにまかせる)
A そのパスのファイルをホットキーに登録するには
iniファイルを自動的に書き換える
そのためのファイル操作はどうすればいいですか。
一応ひまわりとの連携でならできるのですが。

717 :名無しさん@お腹いっぱい。:2005/07/24(日) 23:08:07 ID:0d50mSOA0
>>716
流行らせるBBSのほうから誘導要請あったんで貼っとくね
(2chには規制で書けないらしい)
misc
ttp://lukewarm.s101.xrea.com/test/read.cgi/bbs/1092315284/70

718 :716:2005/07/25(月) 12:35:24 ID:SM6uSrdh0
THX
暫定的というよりも当面というべきだったか、とりあえず
別のファイルを登録するまでは有効な設定にしておける
ような使い方なもので。
それにしてもAHKやひまわりはクリップボードの利用が
手軽にできていいね。

719 :名無しさん@お腹いっぱい。:2005/07/25(月) 22:09:06 ID:fRta7dfz0
>>717
お優しい人、ありがトン

>>718
まあ、FileAppendとかINI処理コマンドで行けるんちゃいますか
ファイルパスは別のファイルに書き込んで常駐スクリプトはいじらなくてすむようにするとか

720 :名無しさん@お腹いっぱい。:2005/07/25(月) 22:33:39 ID:GYTcgKoy0
>>718
iniを別ファイルに取らないで自分で自分を書き換えてみるテスト
ホットキーと実行先サブルーチンもコード追加してやれば動的に変えられまふ
(このままじゃわざわざiniReadで読み出してる意味ないけど)


/* ------ 設定部ini (AHK上ではコメント扱い)
[section]
HotKeys=#a
subName=exec_sub
path=C:\Documents and Settings\tama\デスクトップ\DllCallTest.zip
;---------------------------------------------
*/

;AutoexeCute部
IniRead,myhotkey,%A_ScriptFullPath%,section,HotKeys
IniRead,mysub,%A_ScriptFullPath%,section,subName
hotkey,%myhotkey%,%mysub%
return

;実行部
exec_sub:
IniRead,mypath,%A_ScriptFullPath%,section,path
run,%mypath%
return

;書換部
#c:: IniWrite, %Clipboard%, %A_ScriptFullPath%, section, path

721 :名無しさん@お腹いっぱい。:2005/07/25(月) 22:37:45 ID:GYTcgKoy0
しまった path= のとこテストしたままだった。
よりによってデスクトップだし orz

722 :名無しさん@お腹いっぱい。:2005/07/26(火) 01:33:54 ID:D1HzB5xg0
>>721
tamaたん(*´д`*)

723 :名無しさん@お腹いっぱい。:2005/07/26(火) 10:40:50 ID:0zuMmGyX0
>>721
某バンドの元ベースだった人ですか?

724 :716:2005/07/26(火) 12:19:10 ID:tnSi/fCr0
ソース自体を書いてもらって恐縮です。
/*
[section]
path =              ;暫定ファイルのパス
*/

;ラン
#a::
IniRead,mypath,%A_ScriptFullPath%,section,path
run,%mypath%
return

;ini書換え
#c:: IniWrite, %Clipboard%, %A_ScriptFullPath%, section, path

上のようにして意図したとおり動かせました。
当方タイムフォーマットするにも骨がおれたレベルで、
ありがたたく頂戴します(ホットキーは別のキーに
割当てさせてもらいました)。
またiniファイルをリロードしなくてもよいとはAHKのほうも
よくできていると思います。
自分のやり方に比べるとクールなやり方を教えていただき
ありがとう。

725 :名無しさん@お腹いっぱい。:2005/07/26(火) 15:13:37 ID:1qab6mM00
せっかくなんでエラー制御も。

;ini書換え
#c::
IfExist,%Clipboard%
IniWrite, %Clipboard%, %A_ScriptFullPath%, section, path
return

0x5C(\)を含む全角ファイルを扱う場合はこれだと多分だめぽ
Ahkは向こうのソフトなんでファイル操作関係のコマンドは\がダメ文字になってる

726 :名無しさん@お腹いっぱい。:2005/07/26(火) 18:17:35 ID:ojRbqo8H0
誰か他のソフトと連携させて面白いことやってる人いないの
停滞気味だ

727 :名無しさん@お腹いっぱい。:2005/07/26(火) 20:11:45 ID:RuVoRxC20
個人的なスキマを埋めるようなスクリプトが多いので、
ここで書けるようなネタがない。

728 :名無しさん@お腹いっぱい。:2005/07/26(火) 21:19:55 ID:TqZuk1b00
#NoTrayIcon
#SingleInstance
Gui, Add, Edit, vArg X Y W220
Gui, Add, Button, gRef x+6 ys-2, 参照(&B)
Gui, Add, Button, Default gArg x+6 ys-2, &OK
Gui, Show, , 引数の指定
return
Ref:
FileSelectFile, select, , %A_MyDocuments%
IfNotEqual, select
GuiControl, , Arg, "%sel%"
return

Arg:
Gui, Submit
SplitPath, 1, , dir
Run, %1% %Arg%, %dir%
ExitApp

GuiEscape:
GuiClose:
ExitApp


729 :名無しさん@お腹いっぱい。:2005/07/26(火) 21:20:32 ID:TqZuk1b00
#NoTrayIcon
#SingleInstance
Gui, Add, Edit, vArg X Y W220
Gui, Add, Button, gRef x+6 ys-2, 参照(&B)
Gui, Add, Button, Default gArg x+6 ys-2, &OK
Gui, Show, , 引数の指定
return
Ref:
FileSelectFile, select, , %A_MyDocuments%
IfNotEqual, select
GuiControl, , Arg, "%sel%"
return

Arg:
Gui, Submit
SplitPath, 1, , dir
Run, %1% %Arg%, %dir%
ExitApp

GuiEscape:
GuiClose:
ExitApp


730 :名無しさん@お腹いっぱい。:2005/07/26(火) 21:22:28 ID:TqZuk1b00
#NoTrayIcon
#SingleInstance
Gui, Add, Edit, vArg X Y W220
Gui, Add, Button, gRef x+6 ys-2, 参照(&B)
Gui, Add, Button, Default gArg x+6 ys-2, &OK
Gui, Show, , 引数の指定
return
Ref:
FileSelectFile, select, , %A_MyDocuments%
IfNotEqual, select
GuiControl, , Arg, "%sel%"
return

Arg:
Gui, Submit
SplitPath, 1, , dir
Run, %1% %Arg%, %dir%
ExitApp

GuiEscape:
GuiClose:
ExitApp

731 :名無しさん@お腹いっぱい。:2005/07/26(火) 21:24:02 ID:TqZuk1b00
#NoTrayIcon
#SingleInstance
Gui, Add, Edit, vArg X Y W220
Gui, Add, Button, gRef x+6 ys-2, 参照(&B)
Gui, Add, Button, Default gArg x+6 ys-2, &OK
Gui, Show, , 引数の指定
return
Ref:
FileSelectFile, select, , %A_MyDocuments%
IfNotEqual, select
GuiControl, , Arg, "%sel%"
return

Arg:
Gui, Submit
SplitPath, 1, , dir
Run, %1% %Arg%, %dir%
ExitApp

GuiEscape:
GuiClose:
ExitApp

732 :exe起動時に引数を指定するスクリプト:2005/07/26(火) 21:31:23 ID:TqZuk1b00
#NoTrayIcon
#SingleInstance
Gui, Add, Edit, vArg X Y W220
Gui, Add, Button, gRef x+6 ys-2, 参照(&B)
Gui, Add, Button, Default gArg x+6 ys-2, &OK
Gui, Show, , 引数の指定
return
Ref:
FileSelectFile, select, , %A_MyDocuments%
IfNotEqual, select
GuiControl, , Arg, "%sel%"
return

Arg:
Gui, Submit
SplitPath, 1, , dir
Run, %1% %Arg%, %dir%
ExitApp

GuiEscape:
GuiClose:
ExitApp

733 :名無しさん@お腹いっぱい。:2005/07/26(火) 21:43:24 ID:4e1dMLS30
鯖重いからって連投すな(´д`)

734 :名無しさん@お腹いっぱい。:2005/07/26(火) 21:52:55 ID:TqZuk1b00
うは、なんかやけに重いと思ってたけど多重投稿になってる…
マジごめん。15分以上経ってから一気に書き込まれてたよ…

えーと、なんかネタ書けってことなのでexe実行時に引数を渡せるスクリプトです。
fenrirを使ってると、たまに引数を指定して起動したいときがあるんで作りました。
fenrirだったら↓みたいな感じで登録してみてくださいな。
[.exe;
引数をつけて実行(&A)|AutoHotkey.exe D:\ap\AutoHotkey\Scripts\arg.ahk %P
]

ほんとスイマセン。荒らしとかじゃナス。

735 :名無しさん@お腹いっぱい。:2005/07/26(火) 21:53:31 ID:TqZuk1b00
うは、なんかやけに重いと思ってたけど多重投稿になってる…
マジごめん。15分以上経ってから一気に書き込まれてたよ…

えーと、なんかネタ書けってことなのでexe実行時に引数を渡せるスクリプトです。
fenrirを使ってると、たまに引数を指定して起動したいときがあるんで作りました。
fenrirだったら↓みたいな感じで登録してみてくださいな。
[.exe;
引数をつけて実行(&A)|AutoHotkey.exe D:\ap\AutoHotkey\Scripts\arg.ahk %P
]

ほんとスイマセン。荒らしとかじゃナス。

736 :名無しさん@お腹いっぱい。:2005/07/26(火) 22:31:32 ID:RMNKATDf0
学習しる

737 :名無しさん@お腹いっぱい。:2005/07/27(水) 13:25:08 ID:HAiUS1PJ0
(;^ω^)

738 :名無しさん@お腹いっぱい。:2005/07/27(水) 22:57:44 ID:0CvlX/XA0
わろーた(´・ω・`)

739 :名無しさん@お腹いっぱい。:2005/07/27(水) 23:16:40 ID:DMTqsHP90
重い重い重い重い重い重い重い×33@運用情報
http://qb5.2ch.net/test/read.cgi/operate/1122366639/26,29,38,63,74

ブラウザ側で書込みリトライした結果の連投なんかいな。
ID:TqZuk1b00が何のブラウザ使ってんのか気になる。
ちなみに漏れが使ってるJaneDoeViewでは 書込みボタン押した回数分しか
連投にはならんかったけど。
スレ違いスマソ

740 :名無しさん@お腹いっぱい。:2005/07/28(木) 05:13:32 ID:tI1HClDB0
ジョイパッド関係で質問です。
Joy1を押したらキーボードのAを入力みたいなのは出来るんですけど、
その逆はできないのでしょうか?
ジョイパッドを(接続はしている)触らずにジョイパッドでの操作がやりたいのです。

ジョイパッドエミュ見たいなものを探していて、
このソフトに出会ったのですが、
やり方が悪いのか出来ませんでした。
もし出来るのであればスクリプト例を教えてください。

お願いします。

741 :名無しさん@お腹いっぱい。:2005/07/29(金) 12:22:49 ID:wtn5u7eb0
ジョイパット持ってないのでよくわからんが、
レスないみたいだから、試しに書いたスク
リプトを披瀝してみては(できた方とできな
いものを)。

742 :名無しさん@お腹いっぱい。:2005/07/29(金) 18:49:25 ID:nnXSCluQO
>>740
できない希ガス。
出来たとしてもDirectXとの相性問題で使い物にならない可能性大。

743 :名無しさん@お腹いっぱい。:2005/07/29(金) 18:59:46 ID:hhJh2fgd0
こないだやろうとして失敗した。

744 :名無しさん@お腹いっぱい。:2005/07/29(金) 20:12:54 ID:Nz+Nhz5C0
\\PC1\A001
       A001-001.txt
       A001-002.txt        ←全角混じり
       A001-003.txt
    \A002               ←全角混じり
       A002-002.txt
       A002-003.txt       ←全角混じり

サーバーの中の連番フォルダ/ファイルが上みたいな感じになっちゃってるんだけど
文字列の全半変換とかAutohotkeyで扱うのは大変かな?

745 :名無しさん@お腹いっぱい。:2005/07/29(金) 22:06:36 ID:M6mE9OD20
>744
キー入力関連とか操作系のことを考えないなら、あえて AutoHotkey を選ぶ理由はないと思う。
他のもっと汎用的なスクリプト系言語を使う方が楽だと思う。

746 :名無しさん@お腹いっぱい。:2005/07/30(土) 00:42:20 ID:UO4jp5R70
>>744
DMonkeyなら1行で出来るよ

747 :744:2005/07/30(土) 11:22:38 ID:BmwQ4i3R0
>>745-746
うーん、やっぱそうですかね。
自分スクリプトはAutohotkeyと、せいぜいエディタ(秀丸)のマクロくらいなんで
つい何でもahkでできればと考えてしまうんですよね。
WSHとかPerlとかDMonkeyとかはどうにも敷居が高い感じがして。
(VB(A)は仕事で使ってたけどファイル操作系は結構たいへんだったような)

ahkは(流行らせるページ管理人さんによる)リファレンスがしっかりしてるので
とっかかりやすかったんだけど。

748 :名無しさん@お腹いっぱい。:2005/08/10(水) 17:12:26 ID:9uVaFUC10
age

749 :名無しさん@お腹いっぱい。:2005/08/11(木) 17:26:15 ID:I03bQi9T0
DllCallで LPCSTR型(const char*)の戻り値ってどう設定したらいいんだろ
一応↓だと8バイト目までは取れるんだけど、それ以降ぶっちぎれてしまう。
"Str" "Str*" "UStr" "Ustr*" あたり指定するとアプリエラーで落ちてしまうし(´・ω・`)

dengakudll = D:\Ap\_reg\Hidemaru\DengakuDLL.dll
p := DllCall(dengakudll "\TOHANKAKU","str","01234567890","Uint64*")
DllCall("kernel32.dll\lstrcpy", "str",str1, "char*", p)
msgbox, "%str1%"


750 :名無しさん@お腹いっぱい。:2005/08/12(金) 01:31:36 ID:+OM8/o6N0
なんだか変なことになってますねぇ・・

751 :名無しさん@お腹いっぱい。:2005/08/13(土) 12:00:24 ID:lqWw+A/v0
AHKみたいなことのできるPerlモジュールとかってない?

752 :名無しさん@お腹いっぱい。:2005/08/13(土) 14:12:23 ID:liY90JN/0
>751
ttp://search.cpan.org/~teverett/Win32-CtrlGUI-0.30/
ttp://search.cpan.org/~ctrondlp/Win32-GuiTest-1.50.3-ad/
AutoHotkey を知るまでは使ってた。
GuiTest の方はちょこっとだけ修正すれば cygwin perl でもコンパイル可能なはず。

753 :名無しさん@お腹いっぱい。:2005/08/13(土) 14:36:39 ID:lqWw+A/v0
>>752
有り難う
これでわけのわからんAHK文法を覚える必要がなくなったよ
せめて他の言語に似せればいいのにな・・・

754 :名無しさん@お腹いっぱい。:2005/08/13(土) 17:33:12 ID:z75CMJHZ0
確かに今のAHKの文法はdでもない…。

755 :名無しさん@お腹いっぱい。:2005/08/14(日) 13:40:53 ID:Jb3tCN7Z0
下のような感じでスクリプトを書いてみたのですが
>if 文字入力中だったら
というところがime_func.ahkを見てもよく分からないのですがこんな感じのことは出来ますか?
よろしくお願いします。

やりたい事>
"/"から打ち始めたときにIMEがONだったらOFFにする。
入力途中の場合は何もしない(”・”等もそのまま入力)

#include ime_func.ahk

$/::
IfWinActive,ahk_class sample_class
{
if IME_CHECK("A") = 0
{
Send,/
{
else
{
if 文字入力中だったら
{
Send,/
}
else
{
IME_OFF("A")
Send,/
}
}
}
return

756 :名無しさん@お腹いっぱい。:2005/08/14(日) 19:18:26 ID:S6VBj+9e0
>>753-754
Ahk固有の文法に加え、機能追加のために後から既存の言語の
ルールをチャンポンに取り入れてるから
if での等号 = , <> (VB風)  == , != (C風)
:= での代入(Delfhi風) てな感じで
書く時はルーズに書けるからいいんだけど
人のソース見て参考にしようとすると結構キツイかも

>>755
確定前文字列の取得および有無を検知したいってことだよね?
過去ログにあるけどAutohotkeyで他アプリのIME状態をどうにかするのは
APIでは無理っぽくて。ちょっと方法がわかりません

自アプリのIMEに関してはAPI使えば可能みたいだけど
ttp://hpcgi1.nifty.com/MADIA/VBBBS2/wwwlng.cgi?print+200506/05060177.txt

757 :755:2005/08/15(月) 16:51:09 ID:QJns5zAD0
>>756
そっか出来ないのか。残念
情報ありがとでした

758 :名無しさん@お腹いっぱい。:2005/08/15(月) 19:09:49 ID:7QGOtX5L0
左WINでIMEをONOFF
一個目のsendmessageのerrorlevelでIMEの状態を取得
見当違いでしたらごめんなさい

lwin::
winget,hWnd,ID,A
IMEWnd:=dllcall("imm32\ImmGetDefaultIMEWnd", Uint,hWnd, Uint)
detecthiddenwindows,ON
sendmessage 0x283,0x005,,,ahk_id %IMEWnd%
if errorlevel=0
sendmessage 0x283,0x006,1,,ahk_id %IMEWnd%
else
sendmessage 0x283,0x006,0,,ahk_id %IMEWnd%
return

759 :名無しさん@お腹いっぱい。:2005/08/16(火) 11:24:40 ID:pk5OrU2k0
URLDownloadToFileを使うと、実行している間PCが完全に固まります
なんとかならないでしょうか・・・

760 :名無しさん@お腹いっぱい。:2005/08/16(火) 12:48:22 ID:pPxbuxjO0
>>759
ダウンロードするファイルがでかすぎるんじゃない?

761 :名無しさん@お腹いっぱい。:2005/08/16(火) 13:30:06 ID:OP5TbBBa0
cURLかWGet使うとか。

762 :名無しさん@お腹いっぱい。:2005/08/20(土) 13:52:27 ID:FgCdF0jz0
誰かメモスクリプトを作ってください!
・なんかキー押すと起動
・タブ式で、Ctrl+Nでダイアログが出て、名前をつけたタブを追加できる
・内容を書き込んで終了するとかってに保存
・タブ名.txtでどこかにテキストを保存、起動すると読み込み
こんなの!!

763 :名無しさん@お腹いっぱい。:2005/08/20(土) 14:23:56 ID:SP4TPUoF0
素直に紙2001とかその辺使った方がいい気がするけど・・・

764 :名無しさん@お腹いっぱい。:2005/08/20(土) 14:37:55 ID:XZHbHB5M0
あれ作ってほしい
D&Dでアイテム落とすとそこのマスクが解除したりボタンが有効化するやつ。

765 :名無しさん@お腹いっぱい。:2005/08/20(土) 17:31:45 ID:Gpcc4b/u0
アイテムってなんのアイテムや

766 :名無しさん@お腹いっぱい。:2005/08/20(土) 17:56:10 ID:cMdgHVgd0
>・タブ式で、Ctrl+Nでダイアログが出て、名前をつけたタブを追加できる

これのやり方がいまいちよくわかんないんだよなぁ。似たようなメモスクリプトはちょっと前に作ったんだけど。

767 :名無しさん@お腹いっぱい。:2005/08/20(土) 19:07:28 ID:XZHbHB5M0
AutoHoeKeyでパスマスク取る関数は無かったと思う

>>765
p://hai-office.ath.cx/soft/soft.html
Passenger
こういうのだろう

768 :名無しさん@お腹いっぱい。:2005/08/20(土) 19:19:48 ID:E32/QrDp0
AutoHoeKey

769 :160:2005/08/20(土) 20:22:29 ID:CQrJj7Hz0
>>767
(・∀・)人(・∀・)ナカーマ

770 :名無しさん@お腹いっぱい。:2005/08/20(土) 21:36:34 ID:eT45noIW0
QuickMemoが結構近いと思う>>762

771 :名無しさん@お腹いっぱい。:2005/08/20(土) 23:48:15 ID:FgCdF0jz0
>>770
そうです、今QuickmemoをAHKで起動させているんですよ。
それでEscで閉じるとか少し機能つけたんですが、
常駐できないのでAHKで作れたらいいなとおもったんです。

772 :名無しさん@お腹いっぱい。:2005/08/20(土) 23:56:41 ID:CQrJj7Hz0
常駐ソフトでなくてもホットキー一発で呼び出せるのがAHKの良いところだと思うけど。
まぁ使い方は人それぞれか

ESC → WinHide 使って裏で待機
Ctrl+N → WinShow で表示とかにしたら?

773 :名無しさん@お腹いっぱい。:2005/08/21(日) 01:04:01 ID:WwOh0lQY0
やっぱりAHKに限らず発想の転換って大事だよな。

774 :名無しさん@お腹いっぱい。:2005/08/24(水) 04:12:11 ID:ToLgvUfJ0
時間が取れたので、本家のwikiを読んでみた。
自動インストーラやGUIクリエーターみたいな便利な物あったのな。
アドレスバーでDOSコマンドを実行するスクリプトは応用できそうだ。

775 :名無しさん@お腹いっぱい。:2005/08/27(土) 11:53:01 ID:L28OZRmI0
AHK、まだなれてないんですが、
サブメニューつき(できればショートカットキーつき)のランチャ作ろうかな、とおもってます。

が、車輪の再発明はなんなので、もしよろしければどなたか、
同じようなのをつくってたら、ソースみせていただけませんか?

776 :名無しさん@お腹いっぱい。:2005/08/27(土) 13:40:58 ID:B8rfyRfF0
そんな程度ならShorter使えば?

777 :名無しさん@お腹いっぱい。:2005/08/27(土) 15:02:38 ID:kFsjzCwt0
>>775
Menu,hoge,Add,menu1,menu1
Menu,hoge,Add,menu2,menu2
Menu,hoge,Show ,550,300
return

こんな感じに地道に追加してくしかないと思う。
激しくめんどうなので>>776の言うとおりshorter使った方がいいよ。

778 :名無しさん@お腹いっぱい。:2005/08/27(土) 18:18:03 ID:Tt2PDf2R0
iniを読み込んでメニュー化するスクリプトならある。
何となく動くところまでは書いたが途中で興味を取られ放置したので
結局使ってないが。

779 :名無しさん@お腹いっぱい。:2005/08/28(日) 06:47:45 ID:rEbjuY4a0
最近、キーのラベルに~をつけて
Ifの条件にマッチしなかったら何もせずにスクリプトを
終わらせる書き方をよくやってるんだけど、
~を付けないで条件にマッチしなかったら
ラベルのキーをsendして終わりにする方が
本来正しいのかな?
sendでキーを発行すると、たまに正常に動作しないことが
あるんだけど。

780 :名無しさん@お腹いっぱい。:2005/08/31(水) 09:58:49 ID:tMYx+y6G0
「Shiftを押しながらだとキーを二連打する」や
「Aを押せば1が入力され0.5秒後に2が入力される」といような設定はできるのでしょうか。
何分ソフトウェアに無知なので設定がわからないのですが、できるのならガンバテみようと思います。

781 :名無しさん@お腹いっぱい。:2005/08/31(水) 10:33:20 ID:shmbAlYK0
>>780
両方出来るからがんがれ

782 :名無しさん@お腹いっぱい。:2005/08/31(水) 19:31:57 ID:4CeFGDlU0
>>779
システムのキーはなるべくなら奪わない方がいいような気がしてるので
「状況によっては 押下内容をキャンセルする」ような処理をしたい場合以外は
~付きでやってまふ。 好みの問題だけどコードも最低1行は減るしね


上で車輪の再開発とかの話題あったけど
一生懸命書いたルーチンと同機能のものが投稿スレに上がってたよ
つか、それ自分で投稿したやつだった。(書いたことすら忘れてた)
しかも同じところでつまづいて質問スレで教えて貰ってるし orz

242 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.02 2018/11/22 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)