みみずん製作 高速道路展望ビデオ

完全走破!日本縦断2168.5km 青森〜鹿児島 高速道路の旅完全走破!日本縦断2168.5km 青森〜鹿児島 高速道路の旅
完全走破!日本縦断2168.5km 青森〜鹿児島 高速道路の旅

デル株式会社

 

AutoHotkey Thread 2

1 :名無しさん@お腹いっぱい。:2005/10/21(金) 04:31:53 ID:qy14hWPT0
If You = beginner
 Read, Template, >>2-6

Previous Thread::
AutoHotKey Thread
http://pc7.2ch.net/test/read.cgi/software/1098531338/

If Res > 950
 Please, Build, NextThread

2 :名無しさん@お腹いっぱい。:2005/10/21(金) 04:35:50 ID:qy14hWPT0
■AutoHotkey公式
ttp://www.autohotkey.com/

■解説サイト
AutoHotkeyを流行らせるページ
ttp://lukewarm.s101.xrea.com/

猫歩き - AutoHotKey
ttp://tryhost.net/~catwalk/?cmd=read&page=AutoHotKey

TOKKY.COM
ttp://www.h3.dion.ne.jp/~tokky/

eamatの日記
ttp://d.hatena.ne.jp/eamat/

AutoHotkey メモ - Principia
ttp://principia.s54.xrea.com/index.php?AutoHotkey%20%A5%E1%A5%E2

3 :名無しさん@お腹いっぱい。:2005/10/21(金) 05:56:58 ID:pFmEOL420
SendMessage,0x10,0,0,,ahk_id >>1

4 :名無しさん@お腹いっぱい。:2005/10/21(金) 06:02:30 ID:UHzgbYwX0
#SetThreadMood, Mataari

5 :名無しさん@お腹いっぱい。:2005/10/21(金) 06:03:04 ID:hmcphRZM0
2つのテキストファイルを比較して、違う箇所を変数に代入するって無理ですよね?

6 :名無しさん@お腹いっぱい。:2005/10/21(金) 07:11:20 ID:U6Eoic8d0
おいおい、マジで1の説明スクリプトネタにしたんかよ。
miscにテンプレ案まとめてくれた人いたのに無視してるし。

しかし解説くらい入れてくれ、始めてきた人が何のソフトかわからんだろ

/*

AutoHotKeyはキーボードやマウスなどに様々な機能を割り当てる常駐ユーティリティです。
スクリプトで自由に動作を設定できます。
ポップアップメニューや入力ボックスなどのGUIを表示することができ、
応用次第で使い方は無限に広がります。

*/


7 :補足:2005/10/21(金) 07:32:49 ID:U6Eoic8d0
■BBS(2ちゃん形式)
http://lukewarm.s101.xrea.com/bbs/

■アップローダー
ttp://lukewarm.s101.xrea.com/up/

■関連記事のあるサイト 追加

流行らせるページの中の人の雑記
ttp://cgi19.plala.or.jp/lukewarm/

なまず日記
ttp://www.tierra.ne.jp/~aki/diary/

おばけ日記
ttp://d.hatena.ne.jp/obake/

スクリプトのページ for 信長の野望 革新
ttp://www2.pf-x.net/~kakushin/

1 Hour Software by skrommel
ttp://www.donationcoders.com/skrommel/

8 :名無しさん@お腹いっぱい。:2005/10/21(金) 14:34:59 ID:BHfWk1Gq0
これってLANで繋がってる別のPCにキー操作を送ることは出来ますか?

9 :名無しさん@お腹いっぱい。:2005/10/21(金) 14:39:07 ID:gNwVAaQx0
>>8
バカスwwwwwwwwwwwww

10 :名無しさん@お腹いっぱい。:2005/10/21(金) 18:54:16 ID:BHfWk1Gq0
(・3・) ?

11 :名無しさん@お腹いっぱい。:2005/10/21(金) 21:13:52 ID:U6Eoic8d0
>>8
確か本家のほうでそういうのなかったっけ?
英語わかんないんでちゃんと読んでないが、向こう製の有名なソフトと組み合わせると
クライアントPCをどうにかできたのあった気がする

12 :5:2005/10/22(土) 17:01:31 ID:0mEJt8xM0
やっぱ無理ですか?

13 :名無しさん@お腹いっぱい。:2005/10/22(土) 17:21:52 ID:PJPwE6IS0
がんばりゃ出来るだろ

14 :名無しさん@お腹いっぱい。:2005/10/22(土) 17:22:49 ID:T09muY/00
>>12
ロジックが難しいよ
どんな仕様にするか自分で考えてみた?
この難しさは言語関係ないよ

15 :名無しさん@お腹いっぱい。:2005/10/22(土) 17:51:27 ID:bbxBVyHG0
>>12
Windows付属のFCや、GNUのdiffを呼び出して、
結果を標準出力でもらうのがいいと思います。

16 :5:2005/10/22(土) 17:56:58 ID:0mEJt8xM0
スクリプト初心者の自分には無理っぽいですね・・・

17 :名無しさん@お腹いっぱい。:2005/10/22(土) 18:42:36 ID:bbxBVyHG0
>>16
私も初心者ですが、ttp://www.autohotkey.com/docs/ 首っ引きで落書きして遊んでますよ。
今は試しもせずにここに落書きしますが
file1=C:\data\1.txt
file2=C:\data\2.txt
tmpfile:=%TEMP%\A_NowUTC%
RunWait, FC /n %FILE1% %FILE2% > %tmpfile%
FileRead, fc, %tmpfile%
何がしたいか分からないですが、最初はこんな雰囲気じゃないですか?
(上記だとFCの不要な出力まで入るので、FileReadLineで除外しながら読むべき)

18 :名無しさん@お腹いっぱい。:2005/10/23(日) 00:30:53 ID:GKt8y+QZ0
>>17
>RunWait, FC /n %FILE1% %FILE2% > %tmpfile%

ここがうまくできないです。

File1 = D:\a.txt
File2 = D:\b.txt
File3 = D:\c.txt
RunWait, FC %File1% %File2% > %File3%
Return

とやっても出力されず。

19 :名無しさん@お腹いっぱい。:2005/10/23(日) 01:02:53 ID:F0F64ea40
>>18
コンソールで標準出力取り込みたい場合は
RunWait, %COMSPEC% /C FC /n %FILE1% %FILE2% > %tmpfile%,,hide

詳しい説明知りたかったら、DOS窓開いて cmd.exe /? (9x系は command.com /?)してみれ

20 :18:2005/10/23(日) 01:06:30 ID:GKt8y+QZ0
>>19
ありがとうございます

21 :名無しさん@お腹いっぱい。:2005/10/24(月) 04:09:18 ID:a7aA78Tt0
正規表現使うのって無理?
なんか通すなら何がいいかな

22 :名無しさん@お腹いっぱい。:2005/10/24(月) 06:13:52 ID:EXVZlPHc0
Refoとか http://www.vector.co.jp/soft/win95/util/se337110.html

23 :名無しさん@お腹いっぱい。:2005/10/24(月) 20:01:21 ID:tAwpBQuA0
やっぱクリップボード使うしか手段はないのか・・・。

24 :名無しさん@お腹いっぱい。:2005/10/24(月) 20:24:06 ID:2CoEqoGk0
標準出力か直接ファイル書き出しできるツールで出力結果テンポラリに書き出して
FileReadで読み込んだらどうだろう

ツールはperlでもDMonkeyでもWSHでもエディタマクロでも好きなの使いたまい

25 :名無しさん@お腹いっぱい。:2005/10/24(月) 20:54:53 ID:uNfVf2Yw0
RegExp扱えるDLL(各種)をDllCallで利用するのは無しですか。

26 :名無しさん@お腹いっぱい。:2005/10/24(月) 21:33:17 ID:PCi80khV0
ttp://lukewarm.s101.xrea.com/myscripts/index.html#bregexp
ためしに作ってみた。

27 :名無しさん@お腹いっぱい。:2005/10/24(月) 21:35:54 ID:tAwpBQuA0
oioi!

28 :21:2005/10/24(月) 21:37:42 ID:a7aA78Tt0
>>22>>26
レス遅れてしまって申し訳ないがサンクス !!


29 :名無しさん@お腹いっぱい。:2005/10/24(月) 22:31:46 ID:a7aA78Tt0
SpilitPathって「ソ」が入ってるとうまく働かないみたいなんですが・・・・
他にダメ文字ってあります?

30 :29:2005/10/24(月) 22:35:41 ID:a7aA78Tt0
よく調べずにすみません。
一般的に言われてる通り、2バイト目に \ を含むとダメなようですね。

31 :名無しさん@お腹いっぱい。:2005/10/24(月) 23:17:32 ID:xz8pIzwD0
窓使いの憂鬱の &EditNextModifier のような機能を持たせる記述はありますかね。

以下,窓使いの憂鬱の Manual から &EditNextModifier の説明です。
----------------------------------------------------------------------------
次にユーザーがキーを入力した時に、モディファイヤ が押されていることにします。例えば、
key ESC = &EditNextModifier(M-)
とすると、Alt + X などを ESCAPE X などで代用することが可能になります。
-----------------------------------------------------------------------------

32 :名無しさん@お腹いっぱい。:2005/10/25(火) 01:18:37 ID:C2fzdx1p0
ダメ文字回避することって公式で頼まないと無理?

33 :名無しさん@お腹いっぱい。:2005/10/25(火) 02:25:47 ID:8o+XQN/n0
多分むかし誰かが頼んだと思う
でも英語圏だと全然無意味だし
日本人とかがソース提供しないと無理じゃないかな

34 :名無しさん@お腹いっぱい。:2005/10/25(火) 05:46:49 ID:zWdEJo5k0
ここや流行らせるBBSで話題に上がってるのは何度も見たけど
実際に本家に特攻した人いたんだっけ?
(IME云々のあたりはサンプル送ろうかって話も出たけどSendMessageでカタが付いたので
結局フィードバックはしなかった筈)


35 :名無しさん@お腹いっぱい。:2005/10/26(水) 22:27:19 ID:nd14Kelo0
ゲームオプションを開こうと↓のように記述したのですが、上手く開けません。
Run,c:\windows\rundll32.exe shell32.dll,Control_RunDLL C:\WINDOWS\SYSTEM\JOY.CPL
どこか足りない部分でもあるのでしょうか?

36 :名無しさん@お腹いっぱい。:2005/10/26(水) 22:29:53 ID:MJ0XX+Ib0
,

`,
でエスケープすれば?

37 :名無しさん@お腹いっぱい。:2005/10/26(水) 22:33:41 ID:nd14Kelo0
無事開くことができました。
即レスありがとうございました。

38 :名無しさん@お腹いっぱい。:2005/10/27(木) 11:52:21 ID:R8o0MbA00
--- test.ini ------
[test]
testpath = %A_MyDocuments%\Script
-----------------

IniRead, testpath, c:\test.ini, test, testpath ,

変数testpath中の %〜%部分を展開させる方法ってありますか

StringReplace,testpath,testpath,`%A_MyDocuments`%,%A_MyDocuments%
内容が固定で予測できるものなら↑で置換えられるけど
環境変数とかもフレキシブルに参照できたらなぁと

39 :名無しさん@お腹いっぱい。:2005/10/27(木) 13:32:18 ID:u/F9vgSO0
質問です。

http://www.autohotkey.com/docs/commands/KeyWait.htm
のKeyWaitのコマンドリファレンスのサンプル3

*NumpadAdd::
MouseClick, left,,, 1, 0, D ; Hold down the left mouse button.
KeyWait, NumpadAdd ; Wait for the key to be released.
MouseClick, left,,, 1, 0, U ; Release the mouse button.
return

をNumpadAddからShiftやらCtrlやらAltやらに変えると
うまく動かないのですが(どうもキーがリリースされた時点でスクリプトが走る感じになってしまう
修飾キーでも動く、なにかいい方法はありませんか?

Shift::
MouseClick, left,,, 1, 0, D
KeyWait, Shift
MouseClick, left,,, 1, 0, U
return

40 :名無しさん@お腹いっぱい。:2005/10/27(木) 17:54:25 ID:rPavX0hw0
Shift::

+Shift::
で一応出来た。これが正しいのかは知らんけど。

ペイント:押してる間ちゃんと描画可能であることを確認。
エクスプローラ:押してアイコンのドラッグ可能であることを確認。
Spy++で一応メッセージもみてみたけど多分大丈夫だと思う。

41 :名無しさん@お腹いっぱい。:2005/10/27(木) 18:14:57 ID:Z0Jib14Q0
>>38
Transform,Derefでできる気がする

42 :38:2005/10/27(木) 21:26:36 ID:BJupbOTH0
>>41
thx ! ↓で試してみたら上手くいったよ!

/*
[test]
testpath = %A_MyDocuments%\Script
[dmy]
*/
IniRead, testpath, %A_ScriptFullPath%, test, testpath ,
Transform,pathdata,Deref,%testpath%
MsgBox,%pathdata%
return

ついでに Transform,val,HTML も試してみたけどこっちは2バイト文字(日本語)がだめぽ

43 :名無しさん@お腹いっぱい。:2005/10/27(木) 21:45:02 ID:wCR+8YoN0
いつのまにか1.0.40.03 になってる

44 :名無しさん@お腹いっぱい。:2005/10/28(金) 09:33:32 ID:A/rBIdCZ0
>>43
でもZIPファイルは落とせないね!

45 :名無しさん@お腹いっぱい。:2005/10/29(土) 00:58:05 ID:XDFu3HNG0
Set Win = WScript.CreateObject("Shell.Application")
'Win.MinimizeAll '全ウィンドウを最小化
'Win.UndoMinimizeALL 'ウィンドウ操作を元にもどす
'Win.TileVertically 'ウィンドウを左右に並べて表示
'Win.TileHorizontally 'ウィンドウを上下に並べて表示
Win.CascadeWindows ' ウィンドウを重ねて表示
こんなvbsをAHKで賢くやるほうほうはないですかね。
(vbsはコンパル時間がうざい)

46 :名無しさん@お腹いっぱい。:2005/10/29(土) 01:13:06 ID:Yt1MOkGO0
なにを言ってるのか解らんのだが・・・

47 :名無しさん@お腹いっぱい。:2005/10/29(土) 11:28:39 ID:DzqBi16s0
解像度を取得して
WinSetで並べる

48 :名無しさん@お腹いっぱい。:2005/10/29(土) 12:27:47 ID:6hUgk4ep0
vbsで何でコンパイルが必要なのかわからん、あれもスクリプトやろ
全最小化と元に戻すのはまんまのがある、コマンド調べろ
並べて表示、重ねて表示はタスクバーのコンテクストメニューから選べるので
その辺をエミュレートするとか。

49 :名無しさん@お腹いっぱい。:2005/10/29(土) 12:48:18 ID:HP8QDb5t0
LButtonを押した、離したをキーで代替したいのですが

w:: ;
    Send,{LButton Down}
    return
まではできたのですが、wキーを離したというイベントは取得できないのでしょうか?
???:: ;
    Send,{LButton Up}
    return

50 :名無しさん@お腹いっぱい。:2005/10/29(土) 12:56:44 ID:e8EHHc6U0
インタープリタ言語って実行するたびコンパイルしてるみたいな感じなんでしょ?
そんときのウェイトがダルいっつってんだと思うけど、俺も>>48に同意
VBSが必要な理由がわからない

51 :名無しさん@お腹いっぱい。:2005/10/29(土) 13:02:30 ID:e8EHHc6U0
>>49
流行らせるページにそのものズバリで解説されてるよ
NT系限定みたいだけど

52 :名無しさん@お腹いっぱい。:2005/10/29(土) 13:31:01 ID:HP8QDb5t0
>>51
目を通してみたつもりだったんですが見落としてました。
NTで検索したら見つかってこれでできました。
ありがとうございます。

w:: ;
    Send,{LButton Down}
    return
w up:: ;
    Send,{LButton Up}
    return


53 :名無しさん@お腹いっぱい。:2005/10/29(土) 16:44:12 ID:+/XWPeiP0
>>40ありがとうできますた。

+Sift::
とか、なんか裏技っぽいですねぇ

54 :名無しさん@お腹いっぱい。:2005/10/29(土) 17:10:19 ID:6hUgk4ep0
>>50
>45は vbs → ahkに移行したいって内容だし、漏れはvbsが不要とは言ってない

>実行するたびコンパイルしてるみたいな感じ
言いたいことは大体わかるが、コンパイルって「実行前に行う構文チェック」とは違うから。

コンパイルとはソースをオブジェクトコードに翻訳する作業のこと、
スクリプト(インタプリタ)言語は実行時に逐次処理するのでオブジェクト変換は行われない。

と思ったら、wikipediaに↓の記述があった
>インタプリタの中には、実行直前に一度ソースコードを中間的なコード(中間言語)に変換し、
>それを逐次解釈するものもある
http://ja.wikipedia.org/wiki/ã‚¤ãƒ³ã‚¿ãƒ―ãƒªã‚¿

vbsがどうなのかは知らん

55 :名無しさん@お腹いっぱい。:2005/10/30(日) 04:22:18 ID:/Ikc9y6N0
クリップボード拡張を作ってみようと思ったんだけど
クリップボード内に指定した文字列が入らずに
元からあった内容が貼り付けられたり
メニュー操作が無視されたりします(何も起こらない)
書いたのは以下のような内容なのですが、何かいい方法はありませんか?

Backup := ClipboardAll

Menu,clip_select,Add,line,clip
Menu,clip_select,Add,text,clip
Menu,clip_select,Show,%A_CaretX%,%A_CaretY%
exit

clip:
if A_ThisMenuItemPos=1
{
Clipboard = ――――――――
send,^v
Clipboard := Backup
Backup :=
return
}

if A_ThisMenuItemPos=2
{
FileRead,Clipboard,C:\text.txt
send,^v
Clipboard := Backup
Backup :=
return
}

56 :名無しさん@お腹いっぱい。:2005/10/30(日) 05:09:41 ID:TyhuAUFb0
音量をCtrl+UpとCtrl+Downで操作し、そのボリュームをGUIで表示して1秒後に消える
というものを作ろうとしています。(ようはMasterVCみたいなもの)

Gui, +AlwaysOnTop -Caption
Gui, Color, 245DDB
Gui, Add, Text, vVolume cWhite, ***
Return

^Up::
 SoundSet, +5, Master
 Gosub, Sound
 Return

^Down::
 SoundSet, -5, Master
 Gosub, Sound
 Return

Sound:
 SoundGet, Vol, Master
 Transform, Vol, Round, %Vol%
 GuiControl,, Volume, %Vol%
 Gui, Show, x624 y998 NA
 Sleep, 1000
 Gui, Hide
 Return

しかし、これだと音量を例えば20上げたくてCtrl+Upを4回押しても
1回押すごとに1秒待たなくてはいけず、反映されません。

どなたかお力をお貸しください。


57 :名無しさん@お腹いっぱい。:2005/10/30(日) 05:58:30 ID:CU8CuHjq0
>>56
タイマーでGui,Hideを1秒後に1回だけ実行させるように取り計らう

58 :名無しさん@お腹いっぱい。:2005/10/30(日) 06:00:59 ID:CU8CuHjq0
>>55
適当に間空けてみたら?

59 :56:2005/10/30(日) 06:04:03 ID:TyhuAUFb0
>>57
なるほど、こんな方法があったんですね。
ありがとうございます。

ところで、これのGUIウィンドウがタスクバーに表示されないようにできないでしょうか?

60 :55:2005/10/30(日) 06:53:42 ID:/Ikc9y6N0
>>58
Clipwaitを入れたりはしてたんですが
そういえばSleepはやってませんでした。
ClipWait
Sleep, 250
ぐらいを挟んだらたまにコケますがうまくいくようになったようです。
とりあえずこれで微調節してみようと思います。
ありがとうございました。

61 :名無しさん@お腹いっぱい。:2005/10/30(日) 08:44:09 ID:mpnujeVB0
>>59
Gui,+/-Option

>>60
ClipWaitはクリップボードを空にしてからじゃないと意味がないよ
内容が書き換わったか、ではなくクリップボードに何か入っているかを見てるから

62 :56:2005/10/30(日) 14:09:58 ID:TyhuAUFb0
>>61
見あたらないんですが・・・。
どのオプションでしょうか?

63 :56:2005/10/30(日) 14:23:56 ID:TyhuAUFb0
見つかりました。
+ToolWindowですね。すみませんでした。

64 :56:2005/10/30(日) 14:33:52 ID:TyhuAUFb0
もう1つすみません。
+E0x00000020を入れても透過ウィンドウにならないです。

65 :名無しさん@お腹いっぱい。:2005/10/31(月) 13:05:42 ID:auv8fr6b0
つWinSet

66 :名無しさん@お腹いっぱい。:2005/11/01(火) 18:03:24 ID:ozgXNR060
>>56

完成したらUPしてくれませんか?

67 :名無しさん@お腹いっぱい。:2005/11/01(火) 18:40:57 ID:JPnPn5j40
>>56
>>66
ttp://www.autohotkey.com/forum/viewtopic.php?t=2216
これのHotkey部分を書き換えれば望みの動作になるかと。

68 :56:2005/11/01(火) 22:04:36 ID:hYFbhs5k0
>>66
>>56のSoud:の部分を

Sound:
 SetTimer, GuiHide, off
 SoundGet, Vol, Master
 Transform, Vol, Round, %Vol%
 GuiControl,, Volume, %Vol%
 Gui, Show, x624 y998 NA
 SetTimer, GuiHide, 1000
 Return

GuiHide:
 SetTimer, GuiHide, off
 Gui, Hide
 Return


>>67
>>56の時点でできた上のスクリプトで動作は満足していましたが、リンクのスクリプトも参考になりました。


ところで、視覚スタイルをOFFにする以外にタスクバーのグラデーションって切れないんでしょうか?
上のスクリプトの色設定だとタスクバー上でしっかり隠れてくれない。
透過も上手くいかないし・・・・

69 :56:2005/11/01(火) 22:05:59 ID:hYFbhs5k0
> >>56の時点でできた上のスクリプト
>>59の時点でできた上のスクリプト

間違いです

70 :名無しさん@お腹いっぱい。:2005/11/01(火) 22:29:37 ID:so0ECgfj0
>>68

下のようなエラーになります。

http://matsuya.dyndns.tv/2ch/img-box/img20051101222853.jpg

71 :70:2005/11/01(火) 22:30:27 ID:so0ECgfj0
70のエラーになるやつです。

Gui, +AlwaysOnTop -Caption
Gui, Color, 245DDB
Gui, Add, Text, vVolume cWhite, ***
Return

^Up::
 SoundSet, +5, Master
 Gosub, Sound
 Return

^Down::
 SoundSet, -5, Master
 Gosub, Sound
 Return

Sound:
 SetTimer, GuiHide, off
 SoundGet, Vol, Master
 Transform, Vol, Round, %Vol%
 GuiControl,, Volume, %Vol%
 Gui, Show, x624 y998 NA
 SetTimer, GuiHide, 1000
 Return

GuiHide:
 SetTimer, GuiHide, off
 Gui, Hide
 Return

72 :名無しさん@お腹いっぱい。:2005/11/01(火) 23:10:10 ID:B9WSZONo0
>>71
7行目(以降)のどこか(ていうか行頭)に不正な文字がある。
2ちゃんに貼ってて整形が崩れずインデントが保たれている段階で気付こうな

73 :70:2005/11/01(火) 23:36:01 ID:so0ECgfj0
>>72
thx。全角スペースが入ってた。

74 :名無しさん@お腹いっぱい。:2005/11/02(水) 00:05:41 ID:k4q1X8S+0
全角スペースいれるのやめない?
ちょっと見にくいだけじゃん。コピペめんどくせ。

75 :名無しさん@お腹いっぱい。:2005/11/02(水) 00:17:11 ID:Pn1A6Moc0
>>74
どっちにしろ、コピペしたのをそのまま使わず
後で自分好みにタブ入れたり改良したり変数変えたりするから
掲示板上での見やすさを優先してほしい。

76 :名無しさん@お腹いっぱい。:2005/11/02(水) 01:04:10 ID:1s79aisd0
なんか裏技的にうまくインデントを表現できないかね

77 :名無しさん@お腹いっぱい。:2005/11/02(水) 01:04:59 ID:Oarl5uV80
漏れは自分が質問するときは除去してるけど、人にレス付ける時は
敢えて全角スペースでインデント入れる場合が多いな。
特にそのままAutoHotkey.iniにコピペして使いそうな相手なら尚更

あぷろだに上がってる投稿モノの中に、全然インデントされてないスクリプトが
いくつかある。多分元々プログラミングしない人で掲示板でしか
人のソース見てないとインデントの概念自体がないんだと思う。

コーディングルールは個人の好き好きではあるけど、AHKの場合は
人から貰ったソースを手を入れずにそのまま使えるケースは少ないし
他人が見てもわかりやすい記述は知ってて欲しいと思うので

78 :名無しさん@お腹いっぱい。:2005/11/02(水) 02:11:33 ID:L1tQPzXC0
スペース0
スペース1
スペース2
スペース3
スペース4


79 :名無しさん@お腹いっぱい。:2005/11/02(水) 02:13:48 ID:L1tQPzXC0
>>78

80 :名無しさん@お腹いっぱい。:2005/11/02(水) 02:15:47 ID:L1tQPzXC0
スペース0
 スペース1
  スペース2
   スペース3
    スペース4

81 :名無しさん@お腹いっぱい。:2005/11/02(水) 02:23:32 ID:L1tQPzXC0
スペース0
スペース1
スペース2
スペース3
スペース4

>>78はコピペミス。

 または と書くと、半角スペースに変換される。
半角スペースが連続しても1個に変更されてしまうことがないみたい。


82 :名無しさん@お腹いっぱい。:2005/11/02(水) 03:25:15 ID:yA1z2EuC0
ギコナビで特殊文字変換してる

83 :名無しさん@お腹いっぱい。:2005/11/02(水) 17:33:22 ID:y7CD98+Z0
>>77
世の中にはインデントがないほうが見やすい人も存在する

84 :名無しさん@お腹いっぱい。:2005/11/02(水) 18:48:13 ID:Oarl5uV80
>>83
>コーディングルールは個人の好き好きではあるけど、AHKの場合は
>人から貰ったソースを手を入れずにそのまま使えるケースは少ないし
>他人が見てもわかりやすい記述は知ってて欲しいと思うので


85 :名無しさん@お腹いっぱい。:2005/11/02(水) 20:23:36 ID:5+koFFKw0
>>84
>>83

86 :名無しさん@お腹いっぱい。:2005/11/02(水) 21:00:58 ID:mmYbLWLG0
>>84-85
#SetThreadMood, Mataari



87 :名無しさん@お腹いっぱい。:2005/11/03(木) 04:45:03 ID:CGo3fQX00
キャプションを非表示にすることってできますか?
たぶんSendMessageを使うんだろうけど、見つかりません。

88 :87:2005/11/03(木) 05:08:44 ID:CGo3fQX00
みつかりました。
SendMassageではなくてWinSetだけれど。

WinSet, Style, ^0x00C00000

89 :名無しさん@お腹いっぱい。:2005/11/03(木) 16:00:33 ID:aDGTml8d0
あるアプリAを起動すると、別のアプリBも自動的に起動するようにするには、どのようにすればよいのでしょうか?

90 :名無しさん@お腹いっぱい。:2005/11/03(木) 16:16:15 ID:RQBG0Gu80
条件をもっと絞ってくれないとな。
単純な方法から高い連動性を求めるものまでいろいろあるから

91 :名無しさん@お腹いっぱい。:2005/11/03(木) 16:53:28 ID:aDGTml8d0
アプリAが何らかの方法で起動されると、プロセスを監視していたAutoHotKeyがそれを察知してアプリBも自動的に開くようにしたいのです。
何秒後に開く、とかの指定は必要なく、アプリAを終了したらアプリBも終了する、などの機能も必要ありません。
AutoHotKeyの監視はできれば5分ごとに監視するようにしたいのですが、常に監視するのでもかまいません。

方法をご存じの方がいましたら、お願いします。

92 :名無しさん@お腹いっぱい。:2005/11/03(木) 17:47:09 ID:GMRToEkf0
#Persistent
Settimer,kansi,5000
kansi:
IfWinExist,A
If hoge = 0
{
{
IfWinExist,B
{
hoge = 1
}
else
{
Run,B
}
}
return
}
else
{
hoge = 0
return
}

こんな感じでいいんでしょうか?

93 :名無しさん@お腹いっぱい。:2005/11/03(木) 17:49:07 ID:GMRToEkf0
スレの流れからして俺、最低だな・・・。

94 :名無しさん@お腹いっぱい。:2005/11/03(木) 18:42:44 ID:CgkRLY9O0
あー、Ifがネストしちゃうと漏れは完全アウトだな。
パッと見ではもちろんじっくり考えても全然理解できない。

で、エディタに貼っつけてインデントしてから考えてみたんだけど
一番上位のIfWinExist,A の{ }抜けてるけどいいのんかい?
あと 7,16行の { } に意味なくないか、これ


95 :名無しさん@お腹いっぱい。:2005/11/03(木) 18:47:37 ID:6IkeUy0z0
>>91
つProcess

96 :名無しさん@お腹いっぱい。:2005/11/03(木) 20:16:45 ID:IdqDMTZK0
ThumbSenseのように、タッチパッドに触れているかどうかを判定できるようになるといいなあ。

97 :名無しさん@お腹いっぱい。:2005/11/03(木) 21:22:00 ID:myFIFexE0
TAB使えばいいじゃん

98 :名無しさん@お腹いっぱい。:2005/11/03(木) 22:56:37 ID:ZNzLxnpo0
もしどなたかソースコード解凍できる人いましたら
ソースからShellExecuteというAPI検索して6個目(=最後)の引数何になってるか
確認していただけませんか?

99 :98:2005/11/03(木) 23:06:30 ID:ZNzLxnpo0
ごめんやっぱりいいです。
でもやっぱりなんかおかしい。

100 :名無しさん@お腹いっぱい。:2005/11/04(金) 22:35:21 ID:GuCt95u60
マウスカーソルを変更したり消去するコマンドは無かったorz
ノーマウスカーソルの機能をぱくれると思ったが残念

101 :名無しさん@お腹いっぱい。:2005/11/05(土) 00:12:48 ID:1+JQ8ek+0
>>100
前スレより。 DAT落ちしてるみたいなんでコピペ

> 627 名前:625[sage] 投稿日: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)
> }
>
> 630 名前:592[sage] 投稿日:2005/05/25(水) 12:53:24 ID:62rl7YBY
> IME状態表示用のアイコン作ってみた
> ttp://lukewarm.s101.xrea.com/up/file/028.zip
>
> 631 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2005/05/25(水) 12:54:38 ID:62rl7YBY
> あ、マウスカーソルに訂正

102 :名無しさん@お腹いっぱい。:2005/11/05(土) 03:27:14 ID:kQuWg8rN0
dllcallでShowCursorを使えばいけそうだけど

#y::DllCall("User32\ShowCursor", "int", 0)
テストで作ってみても反応無かったorz 助けて

103 :名無しさん@お腹いっぱい。:2005/11/05(土) 04:50:06 ID:/8hJVayJ0
>>102
それ自分のプロセスのウィンドウにしか利かない

104 :名無しさん@お腹いっぱい。:2005/11/05(土) 15:21:11 ID:q4T/nF7a0
ttp://www.autohotkey.com/docs/misc/Clipboard.htm
の OnClipboardChange の例にある%A_EventInfo%ですが
誰か解説してほしい・・・

とりあえず、文字やファイルだと1
bmpだと2になるんだが、

文字とファイルの区別はつかないのかな

105 :名無しさん@お腹いっぱい。:2005/11/05(土) 16:06:10 ID:1+JQ8ek+0
>>104
http://lukewarm.s101.xrea.com/commands/indexframe.html

106 :名無しさん@お腹いっぱい。:2005/11/05(土) 16:07:29 ID:1+JQ8ek+0
違った。こっちの下のほう
http://lukewarm.s101.xrea.com/misc/Clipboard.htm

107 :名無しさん@お腹いっぱい。:2005/11/05(土) 16:12:49 ID:1+JQ8ek+0
何度もスマソ、ちなみにクリップボード内のフォーマットはDllCallでAPI使えば取得できる
サンプル http://d.hatena.ne.jp/eamat/20050920/p1

108 :名無しさん@お腹いっぱい。:2005/11/05(土) 19:25:38 ID:q4T/nF7a0
>>106
ありがとう。
日本語のヘルプ(chm)しか見てなかった・・・すまん

>>107
こっちも参考にしてみる。ありがと

 今週初めにAutoHotkey知ったんだがおもしろい。
これでCaps入れ替えができれば完璧なんだが・・・


109 :名無しさん@お腹いっぱい。:2005/11/05(土) 20:23:00 ID:YtsoQGy80
やっとサッカーチームが!

110 :名無しさん@お腹いっぱい。:2005/11/05(土) 20:24:40 ID:rpDKFDGY0
戦う相手がいません!

111 :名無しさん@お腹いっぱい。:2005/11/06(日) 16:38:36 ID:7Hz8Kh6P0
こんなスクリプト書いてくださいってのは、ここ的にアリですか?

112 :名無しさん@お腹いっぱい。:2005/11/06(日) 17:44:40 ID:PoGd2lip0
(ω・ )ゝ なんだって?

113 :名無しさん@お腹いっぱい。:2005/11/06(日) 19:45:09 ID:7Hz8Kh6P0
>>112
こんなスクリプト書いてくださいってのは、ここ的にアリですか!!!

114 :名無しさん@お腹いっぱい。:2005/11/06(日) 19:55:01 ID:FAFXojQr0
   /.──┬  /⌒ヽ ┌─┴─┐ .  |  ヽヽヽ       ―┼―         .|  ヽ  | \
 /| ┌─┐|    ノ     ̄フ   .  ̄| ̄ヽ |    , |      |   |   \   ̄| ̄ヽ | . |
   | └─┘|    |    ─┼─    ,ノ  │   ノ . | \ |  ゝ   |     |  ノ  │   |/ ̄ヽ
   |     J   ○      J  .   ノ  ヽノ  .   J   \_   レ     ノ  ヽノ     _ノ
  _____
 ____ー┼ー     |   /   _/_
  --  二二_   /~| ̄/ヽ    /   ヽ  |   \
   ̄ ヽ | | ノ  .|  ∨   |  /  _|   |     |
  | ̄|  ノ l____,  \ノ   ノ    (_ノヽ  レ
    ̄

115 :名無しさん@お腹いっぱい。:2005/11/06(日) 19:56:57 ID:0hkV63L40
>>111
いちいちそんな無駄レスせずにさっさと本題書けよ。印象悪いぞ。
過去スレからの流れを見てるとこのスレは自分である程度試行錯誤する人間には
手助けするけど、丸投げは(・A・)イクナイ!って感じだからそれを踏まえた上でヨロシク。

116 :名無しさん@お腹いっぱい。:2005/11/06(日) 21:48:46 ID:A0mk0Y990
横やりですいません。>>102のヒントお願いします。。。

117 :名無しさん@お腹いっぱい。:2005/11/06(日) 23:40:35 ID:z+zoLLJT0
>>111
無し

ヒントを教えてくれとかならまだしも、丸投げはダメだろ

118 :名無しさん@お腹いっぱい。:2005/11/07(月) 00:15:52 ID:Lx44qPKh0
>>116
>103で答えは出ていると思うのだが

119 :名無しさん@お腹いっぱい。:2005/11/07(月) 04:00:09 ID:S2Pl78Ca0
>>111
とりあえず、なにがしたいんだ?怒らないから言ってみなさい

120 :名無しさん@お腹いっぱい。:2005/11/07(月) 18:35:53 ID:7cDsa3uM0
>>111
やっぱり怒る

121 :名無しさん@お腹いっぱい。:2005/11/07(月) 20:21:01 ID:rV/rS1+v0
^p::
IfWinActive, ahk_class Notepad
Send, ^o
else
Send, ^p
return

こんな感じのスクリプトを書いているんですが、指定ウィンドウ以外で無限ループしちゃいます。
こういう時どうしたらいいんでしょうか?


122 :名無しさん@お腹いっぱい。:2005/11/07(月) 20:39:04 ID:PUaC//G70
>>121
一行目に
#UseHook
を追加

123 :名無しさん@お腹いっぱい。:2005/11/07(月) 21:58:01 ID:Lx44qPKh0
$^p::

124 :名無しさん@お腹いっぱい。:2005/11/07(月) 23:09:43 ID:rV/rS1+v0
>>122-123
無限ループしないようになりました。
ありがとうございます。


125 :名無しさん@お腹いっぱい。:2005/11/07(月) 23:58:04 ID:d1b3VXPA0
>>117
では、ヒントをお願いします。

>>119
優しいお言葉どうもです。書いてみます。
起動していたらアプリをアクティブ、起動していなかったらアプリを起動。
これは出来ました。これにさらに、Ctrlを押していたらアプリを終了。
Altを押していたら、アプリを最前面にをトグルということをやりたいです。
Win + H >秀丸を起動、起動していたらアクティブ。
Win + Ctrl + H>秀丸を終了、起動していなかったら何もしない。
Win + Alt + H>秀丸を最前面に、起動していなかったら起動して、最前面に。
これ単純にすべてのホットキーを設定しちゃえばいいのですが、
いろいろなアプリに対応させたいので、関数っていうんですか?
処理をうまいことまとめられたらいいなぁとおもいまして。

>>120
ひぃ…そこをなんとか。ヒントだけでも。

126 :名無しさん@お腹いっぱい。:2005/11/08(火) 01:56:56 ID:BqfIoljv0
どのへんを関数化したいのかわからんのだが
取り零しとかあるしトリガは素直にホットキー使ったほうがよい
モデファイヤキーの押下状態で内部分岐もできるが
これだとhが入力できなくなるので ~ つけるか中でSendするとかの処理が必要

*h::
dsp=
if (GetKeyState("CTRL"))
dsp = ctrl
if (GetKeyState("SHIFT"))
dsp = %dsp% sift
if (GetKeyState("ALT"))
dsp = %dsp% alt
if (GetKeyState("LWIN") || GetKeyState("RWIN"))
dsp = %dsp% win

ToolTip,%dsp%
return


127 :名無しさん@お腹いっぱい。:2005/11/08(火) 07:16:19 ID:OmlMtwX30
SetHotkey("n" , "notepad.exe", "C:\WINNT\System32", "max")
SetHotkey("c", "calc.exe", "C:\WINNT\System32", "")
return

SetHotkey(key, appPath, appWorkDir, appWinState)
{
global
appPath%key%:=appPath
appWorkDir%key%:=appWorkDir
appWinState%key%:=appWinState
Hotkey, #%key%, launchApp
;Hotkey, ^#%key%, quitApp
;Hotkey, !#%key%, toggleWindow
Return
}

launchApp:
StringRight, key, A_ThisHotkey, 1
appPath:=appPath%key%
appWorkDir:=appWorkDir%key%
appWinState:=appWinState%key%
Run, %appPath%, %appWorkDir%, %appWinState%
Return

hotkeyが関数に対応してないからめんどくさかった・・
とりあえずこれで動的に割り当てられるはず。

ヤレヤレダゼ( ゚д゚)y─┛~~

128 :名無しさん@お腹いっぱい。:2005/11/08(火) 08:00:45 ID:AQU/ZuaD0
「=」と「:=」ってどう使い分けるんですか?

129 :名無しさん@お腹いっぱい。:2005/11/08(火) 10:08:44 ID:U5/qb0is0
>>128
一緒

130 :128:2005/11/08(火) 10:19:07 ID:AQU/ZuaD0
>>129
そうなんですか?
あとIfの時()で囲むか囲まないかってのもいまいちよくわかりません。

131 :名無しさん@お腹いっぱい。:2005/11/08(火) 10:32:21 ID:w31TiB9U0
>>128
a:=A_AhkVersion

a=%A_AhkVersion%
だとaが同じ内容になる。
d=%abc%xyz%%
ってやりたくても出来ないので、こんなときは
b:=adc%xyz%
これで似たような意味になる。こう解釈してんだけど間違ってたらごめん。

132 :131:2005/11/08(火) 10:34:58 ID:w31TiB9U0
ごめん。
d=%abc%xyz%%→b=%abc%xyz%%
間違えました。

133 :名無しさん@お腹いっぱい。:2005/11/08(火) 13:01:31 ID:x8v+5Rvv0
>>126
>>127
ずばり答えまで書いてくださって、ありがとうございます。
内容を解釈しながら、改良してみます。

134 :名無しさん@お腹いっぱい。:2005/11/08(火) 13:16:32 ID:OmlMtwX30
>>127
あー、寝ぼけてるな・・・
hotkeyが関数に対応してたとしても別段コード変わらんよな・・

>>133たしかに、ヒントじゃないなw
がんばってね

135 :名無しさん@お腹いっぱい。:2005/11/08(火) 15:15:11 ID:ZVndp7Og0
>>129
おいおい。。。
違うやろ、ifの = と == は文字列比較以外はほぼ一緒だけど
>131の解釈でだいたい合ってる

136 :128:2005/11/08(火) 19:12:51 ID:AQU/ZuaD0
「=」と「:=」の使い分けはわかりました。

「If」と「If()」は?

137 :名無しさん@お腹いっぱい。:2005/11/08(火) 19:27:52 ID:BqfIoljv0
If var = value
 → 従来仕様、1行に1判定文しかかけない

If (var1 = var2) and (var1 = "value")
 → 後から追加された形式、AND や OR で複数の判定を連結できる

AHKは 1.0.25と1.0.34あたり(うろ覚え)で大幅な仕様追加があった。
 := や if () 、Functionは従来の記述ルールでできない部分を拡張する形で導入された記述形式
従来仕様とチャンポンになってるので後から入ってきた人には分かりにくいかもしれないな

138 :128:2005/11/08(火) 19:32:07 ID:AQU/ZuaD0
>>137
なるほど。
ありがとうございました。

139 :名無しさん@お腹いっぱい。:2005/11/08(火) 22:48:46 ID:x8v+5Rvv0
>>134
続きを改良しつつ、作ってみました。
SetHotkey(key, appPath, appTitle, appWorkDir="", appOpt="")
{
global
appPath%key%:=appPath
appTitle%key%:=appTitle
appWorkDir%key%:=appWorkDir
appOpt%key%:=appOpt
Hotkey, #%key%, launchApp
Hotkey, ^#%key%, quitApp
Hotkey, !#%key%, toggleWindow
Return
}

launchApp:
StringRight, key, A_ThisHotkey, 1
appPath:=appPath%key%
appTitle:=appTitle%key%
appWorkDir:=appWorkDir%key%
appOpt:=appOpt%key%
ifWinNotExist, %appTitle%
Run, %appPath%, %appWorkDir%, %appOpt%
else
WinActivate, %appTitle%
return
Return

140 :名無しさん@お腹いっぱい。:2005/11/08(火) 22:50:31 ID:x8v+5Rvv0

quitApp:
StringRight, key, A_ThisHotkey, 1
appTitle:=appTitle%key%
ifWinNotExist, %appTitle%
Exit
else
WinClose, %appTitle%
return
Return

toggleWindow:
StringRight, key, A_ThisHotkey, 1
appPath:=appPath%key%
appTitle:=appTitle%key%
appWorkDir:=appWorkDir%key%
appOpt:=appOpt%key%
ifWinNotExist, %appTitle%
Exit
else
WinSet, Topmost, TOGGLE, %appTitle%
return
Return

んー >>126さんの言うとおり、取りこぼしがあるし、
Topmostのトグルが出来てないような。
折角作ってもらったのに、ホットキーの方が確かってことなんですかねぇ。

141 :名無しさん@お腹いっぱい。:2005/11/08(火) 23:08:59 ID:BqfIoljv0
いや、取りこぼしが発生するのは LoopやSettimerで自力監視する場合の話
Hotkeyコマンドは動的に割り当ててるだけでトリガはAHKまかせだし
問題ない筈だが

142 :名無しさん@お腹いっぱい。:2005/11/08(火) 23:28:51 ID:BqfIoljv0
Returnを2回重ねてるところと Exit使ってるのの意味がわからんのだが

toggleWindow:
 StringRight, key, A_ThisHotkey, 1
 appTitle := appTitle%key%
 ifWinExist, %appTitle%
   WinSet, Topmost, TOGGLE, %appTitle%
Return

でいいんじゃね? (If あるんで全角インデントした)

143 :名無しさん@お腹いっぱい。:2005/11/08(火) 23:38:44 ID:x8v+5Rvv0
>>141
なんか反応が鈍い時があるんですよね。

>>142
メタメタだ…。

144 :名無しさん@お腹いっぱい。:2005/11/09(水) 07:51:17 ID:HqHg5smR0
ていうかappTitleにどんな値指定してんだか知らんけど
秀丸みたいに多重起動できるアプリだとウィンドウを限定できねんじゃね?
判定は ifWinExist じゃなくて ifWinActiveにして
任意のウィンドウがアクティブなときに動作させないと誤爆するな

あと秀のようにアプリ自体がTopmostの機能をもってる場合はSendで
ショートカットキー投げるとかしてそっち使ったほうが話は簡単かもしれんよ

145 :名無しさん@お腹いっぱい。:2005/11/09(水) 15:43:04 ID:+AeGgYao0
>>143秀丸落として試してみたが、うちでは問題なくトグル出来るが・・・
それと>>141が言うようにhotkeyコマンド使って設定した場合、ホットキーラベルで設定したのと同じ動作になるはずで、
反応鈍いって事はないだろう。ホントにそうならAHK自身のバグとしか考えられん。



>>144
ifWinExistでもちゃんとできるみたい。

同タイトルのウィンドウが存在した場合、まず最前面ウィンドウが優先され、
最前面がない場合と複数最前面がある場合、アクティブの時にはそのウィンドウに、
非アクティブの場合、最後にアクティブだったウィンドウに適用されるっぽいな。
違ったらごめん。


気になったのが、非アクティブの最前面ウィンドウを非最前面にしたときに
一度そのウィンドウをクリックしてやらないと、
他のウィンドウクリックしても後ろに行ってくれないが、
ここらへんはOSの仕様のような気がする。
topmostトグルするまえにWinActivateつかってアクティブにしてやれば一応解決するが。

146 :名無しさん@お腹いっぱい。:2005/11/10(木) 21:56:38 ID:RwGjNG9H0
ウィンドウ指定の条件をandじゃなくてorにすることはできないでしょうか。
IfWinActiveとかを何度も書かなきゃだめですか

147 :名無しさん@お腹いっぱい。:2005/11/10(木) 22:01:45 ID:We9gQrEX0
>>146
ttp://lukewarm.s101.xrea.com/commands/IfIn.htm

148 :名無しさん@お腹いっぱい。:2005/11/10(木) 22:25:50 ID:RwGjNG9H0
>>147
なるほど。ウィンドウのタイトルを変数に入れてIf var inでマッチリストと
比較するわけですね。
or条件を使うときはIfWinActiveではなくこれを使ってみることにします。
ありがとうございました。

149 :名無しさん@お腹いっぱい。:2005/11/11(金) 03:42:19 ID:khVemMEi0
タイマー作るのって無理?
InputBoxで入力した時間Sleepしてアクションを起こすってことはできるけど
残り時間の表示をどうやればいいのかわからない。

150 :名無しさん@お腹いっぱい。:2005/11/11(金) 04:01:08 ID:xFnBvB+A0
>>149
time=%A_Sec%
settimer,count,1000
count:
rest:=time-A_Sec+30
tooltip,%rest%
return

esc::exitapp

こんなんでええのだろうか

151 :149:2005/11/11(金) 04:05:08 ID:khVemMEi0
>>150
なるほど!
これはは思い浮かばなかった。
迅速なレスありがとうございます。

152 :149:2005/11/11(金) 04:10:33 ID:khVemMEi0
あ、いやちょっと待って。
よく考えたら全然ダメじゃん。

数秒確認しただけでレスしちゃった。

153 :名無しさん@お腹いっぱい。:2005/11/11(金) 04:24:46 ID:xFnBvB+A0
returnの前にこれ追加しといて
if rest=0
exitapp

的外れだったらすまん。つーか何がダメなんかわからん、とりあえずカウントダウン表示してみただけだし。

154 :129:2005/11/11(金) 04:31:30 ID:khVemMEi0
たとえば、今、○時○分55秒だったとします。

55-55+30=30
55-56+30=29
55-57+30=28
55-58+30=27
55-59+30=26
55-00+30=85
55-01+30=84

こういう計算だと思うんですが・・・・。
私の方が間違っているのかな。

155 :名無しさん@お腹いっぱい。:2005/11/11(金) 05:53:00 ID:FTok57/z0
A_TickCountつかえ

156 :名無しさん@お腹いっぱい。:2005/11/11(金) 07:51:44 ID:A6pk7vW20
時間関係の計算はよくわからんルールになってるぞ
一人で脳使ってないでヘルプ熟読してきなされ

157 :名無しさん@お腹いっぱい。:2005/11/11(金) 18:08:09 ID:KIS/mZVoO
ちょっとくらいヒントをくれてもいいじゃないですか。

158 :名無しさん@お腹いっぱい。:2005/11/11(金) 18:52:34 ID:A6pk7vW20
とりあえず149はA_Sec参照して何がやりたいんだ?
単純に残り秒数カウントダウンしたいだけなら

dwncnt := 30 ;残り秒数
settimer,count,1000

count:
dwncnt--
tooltip,%dwncnt%
return

きちっと精度上げたいならSetTimerの値を小さくして>155が言うようにA_TickCount使う

159 :149:2005/11/11(金) 20:12:02 ID:khVemMEi0
○時間○分○秒というタイマーも使えるようにしたかったので
A_TickCountではなく、YYYYMMDDHH24MISSで記述した物からEnvAddでSecondsを指定して
1秒ごとに-1加算するようにしたら上手くできました。

160 :名無しさん@お腹いっぱい。:2005/11/13(日) 18:02:11 ID:A/9NzbIG0
あるSetTimerがonの時とoffの時で条件分岐って無理?

161 :名無しさん@お腹いっぱい。:2005/11/13(日) 19:35:11 ID:N8ylNJMv0
タイマーが動いてるかどうかを調べる方法はなかったはず
自分でフラグ変数用意して現在の状態覚えとくようにすればOKだけど

162 :160:2005/11/13(日) 19:37:47 ID:A/9NzbIG0
>>161
どういうことですか?

163 :名無しさん@お腹いっぱい。:2005/11/13(日) 19:41:43 ID:5IyRr/ha0
自分で変数を用意する。

164 :160:2005/11/13(日) 19:53:57 ID:A/9NzbIG0
こんな感じ?

SetTimer, ABC, 3000
ST_Flag = on

#A::
If(ST_Flag = "on")
{
SetTimer, ABC, off
ST_Flag = off
}
Else If(ST_Flag = "off")
{
SetTimer, ABC, on
ST_Flag = on
}
return


165 :名無しさん@お腹いっぱい。:2005/11/13(日) 21:50:43 ID:N8ylNJMv0
そう、それか↓みたいにしてもいいし

#A::
If (interval > 0)
{
interval = 0
}
else
{
interval = 3000
}
SetTimer,ABC,%interval%
return

166 :名無しさん@お腹いっぱい。:2005/11/13(日) 21:52:52 ID:N8ylNJMv0
0だとOFFにならんのか

#A::
If (interval > 0)
{
SetTimer,ABC,OFF
interval = 0
}
else
{
interval = 3000
SetTimer,ABC,%interval%
}
return

167 :160:2005/11/13(日) 22:19:27 ID:A/9NzbIG0
>>166
なるほど
ありがとうございます

168 :名無しさん@お腹いっぱい。:2005/11/14(月) 03:42:28 ID:tpTqEc+p0
>+Up::send,{PgUp}
>+Down::send,{PgDn}
>+Left::send,{Home}
>+Right::send,{End}
こんな風に割り当てますよね。
これをあるウィンドウだけは適用したくないのですが、
そういった場合はどう書けばいいんでしょうか?

169 :名無しさん@お腹いっぱい。:2005/11/14(月) 05:14:00 ID:h9uxRFHg0
>>168
+Up::
WinGetActiveTitle, ActTitle
If(ActTitle <> "割り当てたくないウィンドウタイトル")
send,{PgUp}
return

タイトルで上手くいかなかったらウィンドウハンドル取得して分岐

170 :名無しさん@お腹いっぱい。:2005/11/15(火) 13:59:54 ID:3R61f5fz0
>>169
どうもです。
169さんの方法だと、一キーずつ割り当てるしかないんですよね。
一気にやる方法があったら、便利だな。

171 :名無しさん@お腹いっぱい。:2005/11/15(火) 15:34:14 ID:Qg1alPao0
一気にやるってどういう意味だよ。

172 :名無しさん@お腹いっぱい。:2005/11/15(火) 16:41:57 ID:g/ADYEbp0
+Up::
+Down::
+Left::
+Right::

WinGetActiveTitle, ActTitle
If(ActTitle <> "割り当てたくないウィンドウタイトル")
{

send,{PgUp}
}
return


173 :名無しさん@お腹いっぱい。:2005/11/15(火) 16:44:53 ID:g/ADYEbp0
すまん途中で書きこんでもうた。関数にしてパラメータ指定するようにしたほうがよりスマート

+Up::
+Down::
+Left::
+Right::
WinGetActiveTitle, ActTitle
If(ActTitle <> "割り当てたくないウィンドウタイトル")
{
if A_ThisHotkey = +Up
send,{PgUp}
else if A_ThisHotkey = Down
send,{PgDn}

}
return

174 :名無しさん@お腹いっぱい。:2005/11/15(火) 18:16:51 ID:Qg1alPao0
ヒドスwwwww

175 :名無しさん@お腹いっぱい。:2005/11/15(火) 18:34:11 ID:Fr3rXntL0
+Up::
Ifwinnotactive,XXXX
Send,{Pgup}
return

これで全部書いたほうが短かくてわかりやすい気がするのだが

176 :名無しさん@お腹いっぱい。:2005/11/16(水) 01:46:01 ID:EX3GaO8n0
任意のアプリのタスクトレイアイコンを非表示にすることってできないでしょうか?
わからないなりに調べてみたらShell_NotifyIconというAPIがあるようなので
これをDllCallで呼びせさばできそうな気が。

DLLについてはまったくの初心者なので今奮闘しています。

177 :名無しさん@お腹いっぱい。:2005/11/16(水) 02:17:34 ID:ExozuSiy0
これって構造体扱えるんだっけ?
構造体扱えなかったらShell_NotifyIconも使えないだろ

178 :176:2005/11/16(水) 13:41:19 ID:EX3GaO8n0
>>177
ttp://lukewarm.s101.xrea.com/commands/DllCall.htm
ここの「構造体と配列の扱い」によればできるようなのですが、
いかんせんまだ勉強中なので難しくて

179 :名無しさん@お腹いっぱい。:2005/11/16(水) 14:43:39 ID:YfyIAE/u0
>>178
うまいこと考えたな〜

180 :名無しさん@お腹いっぱい。:2005/11/16(水) 16:26:24 ID:ExozuSiy0
構造体は扱えないけど、逃げ道はあるってことか
面倒そうなので漏れはパス

181 :名無しさん@お腹いっぱい。:2005/11/16(水) 17:08:15 ID:YfyIAE/u0
>>178
べつに難しく考えること無いよ。外部にあるからDllCall使ってロードしてやらなきゃならないだけで、
考え方は普通の関数扱うのと変わらない

とりあえず、そこにある関数コピペすれば構造体に値をセットしたり読み出したりは出来る。
関数の中身は知らなくていい。
一番下のサンプルみれば使い方はわかるはず。

182 :176:2005/11/16(水) 23:23:04 ID:EX3GaO8n0
WinGet, whd, ID, A

VarSetCapacity(NotifyIconDate, 24, 0)
InsertInteger(whd, NotifyIconDate, 4)
DllCall("Shell_NotifyIcon", Int, 0x00000002, Str, NotifyIconDate)
Return

InsertInteger(pInteger, ByRef pDest, pOffset = 0, pSize = 4)
{
mask := 0xFF
Loop %pSize%
{
DllCall("RtlFillMemory", UInt, &pDest + pOffset + A_Index - 1, UInt, 1, UChar, (pInteger & mask) >> 8 * (A_Index - 1))
mask := mask << 8
}
}

わからないなりに作ってみましたが、うまくいかないです。
たぶん色々勘違いしてると思うのですが。

183 :名無しさん@お腹いっぱい。:2005/11/18(金) 03:16:50 ID:/PztpgYi0
テキスト入力欄かどうかを取得するにはどうすればいいでしょうか?
If(A_CaretX <> "")だと入力欄でないところでも反応してしまいます

184 :名無しさん@お腹いっぱい。:2005/11/18(金) 22:11:48 ID:KVZUSxn10
たしかA_CaretXとA_CaretYはエディット以外の場合は
コントロールの左上の座標になるから
そんな感じで弾けばいいと思うよ

185 :183:2005/11/18(金) 22:16:55 ID:/PztpgYi0
>>184
例えばSleipnirとかJaneとかでテキストを選択してコピーしたら
その位置にキャレットがあると見なしてしまいまして

186 :名無しさん@お腹いっぱい。:2005/11/19(土) 01:56:22 ID:adRLoPdI0
EDITコントロールか否かの判定はControlGetでLine数を取得してチェックしてる。
非EDIT コントロールの場合 0が返るので

ControlGet,line_cont,LineCount,,%ctl%,ahk_id %hwnd%
if line_cont > 0
{
 ;テキスト入力欄の処理
}

あとSendMessageで EM_xxx あたりの情報を調べるとか。
http://www.winapi-database.com/Message/EM/

編集不可だがコントロールはEDIT使ってる場合(AU3_Spy.exeとか)もあるので
そういう場合はどうにかしてLoked状態を確認しないといかんかも知れん

187 :183:2005/11/19(土) 02:20:34 ID:EUr5m4mr0
>>186
ありがとうございます

ですがライン数取得では上手くいかないものが多くて諦めていましたが、
殆どのクラス名に「Edit」が入っていたのでクラス名取得して分岐するようにしました。

188 :名無しさん@お腹いっぱい。:2005/11/19(土) 10:46:19 ID:q++McXD/0
>>176
> 任意のアプリのタスクトレイアイコンを非表示にすることってできないでしょうか?

これぜひ俺も知りたい。
自分が使ってる常駐ソフトはほとんどアイコン非表示にできるが、1つ2つできないのがある。
XP付属の「アクティブでないインジケータを隠す」はあまり好きではないし。

189 :名無しさん@お腹いっぱい。:2005/11/19(土) 12:11:21 ID:adRLoPdI0
>>182
試してないしちょっとググって調べて見ただけだが、とりあえずhIconをどうにかして
取得して構造体にセットしてやらんといかんのとちゃうか?

NOTIFYICONDATA構造体
Type NOTIFYICONDATA
  cbSize As Long         構造体のバイト数
  hWnd As Long         対象のウィンドウハンドル
  uID As Long           タスクバーアイコンのユーザー定義のID
                    (つまり、アイコンを複数使うときのアイコンの番号のこと)
  uFlag As Long          有効なメンバを示す定数の組み合わせ
  uCallbackMessage As Long  ユーザー定義のメッセージ
                    (アイコンの上でマウスイベント(クリックなど)が発生すると
                    ウィンドウに送られてくるメッセ―ジ)
  hIcon As Long         追加・削除・変更するアイコンのハンドル
  szTip As String * 64      チップヘルプのテキスト
                    (アイコンの上にマウスを1秒くらい置いた時に表示される文字列)
End Type

190 :名無しさん@お腹いっぱい。:2005/11/19(土) 12:23:12 ID:iPF8NBAy0
一応聞くけどautohotkeyでやりたいって趣旨なんだよね
フリーソフトを使ったら出来るけど

191 :名無しさん@お腹いっぱい。:2005/11/19(土) 12:24:18 ID:q++McXD/0
>>190
ちなみにそのソフトとは?

192 :名無しさん@お腹いっぱい。:2005/11/19(土) 13:04:10 ID:z99JDpKz0
使ったことないけどニュースサイトとかで何種類か見た
とりあえず今ぐぐったらコレがあった
常駐しないのがあるかは知らん
ttp://www.vector.co.jp/soft/win95/util/se293688.html

193 :名無しさん@お腹いっぱい。:2005/11/19(土) 13:51:07 ID:adRLoPdI0
タスクトレイ アイコン 整理 でググると TrayManager とか Tray Wizard とかTrayExpand とか出てくる。
TrayExpandはソースも公開してるみたいだし、AHKでやりたいなら参考にしてみては?

194 :名無しさん@お腹いっぱい。:2005/11/19(土) 14:04:50 ID:0di78jxb0
>>182
とりあえず、戻り値ぐらいみれ。

>>189
トレイアイコンの削除するだけならhIconはいらないが、uIDが必要。


まぁ、既存のソフト使ってしまった方がいいようなきもする・・・AHKでやるメリットあまりないような・・

195 :名無しさん@お腹いっぱい。:2005/11/19(土) 14:32:32 ID:q++McXD/0
TrayExpandが自分には良さそう
これ使うことにします

196 :名無しさん@お腹いっぱい。:2005/11/19(土) 14:33:46 ID:q++McXD/0
お礼言う前に途中で送信してしまった・・・・

>>192-193
ありがとうございます

197 :189:2005/11/20(日) 05:00:08 ID:zlspGYDE0
>>194
フォローサンクス ええかげんなレスしてスマンカッタ

198 :名無しさん@お腹いっぱい。:2005/11/20(日) 06:10:35 ID:i5sKQ9wq0
タスクトレイの項目をメニューで表示させることはできるでしょうか?
フリーソフトでもこういった感じのソフトは自分で探した限り見つからなかったので
知っている方がいたら教えていただきたいのです

199 :名無しさん@お腹いっぱい。:2005/11/20(日) 10:52:17 ID:u5r0IAMMO
>>198
>>193

200 :名無しさん@お腹いっぱい。:2005/11/20(日) 17:09:08 ID:9waBFH8F0
SetTimerってAutoHotkey.iniに書いても動かないの?

201 :名無しさん@お腹いっぱい。:2005/11/20(日) 19:14:54 ID:zlspGYDE0
動くよ

202 :名無しさん@お腹いっぱい。:2005/11/20(日) 20:09:01 ID:9waBFH8F0
>>201
動くのか・・・

特定のウインドウが表示されたらOKボタンをクリックしたいんだけど
.ahkに書くと動くんだけど、AutoHotkey.iniに書いても動かない
これじゃだめなの?

SetTimer,b,250
return
b:
IfWinActive,Aterm WARPSTAR
{
ControlClick,OK,Aterm WARPSTAR
return
}
return

203 :名無しさん@お腹いっぱい。:2005/11/20(日) 21:37:35 ID:MfpEbr860
常駐するSetTimerはAutoHotkey.iniの頭に書いて、
サブルーチンをAutoHotkey.iniの終わりに書いてみては
俺はそれで

IfWinActive,リンク先を探す,指定したリンク先は、デスクト
IfWinExist,ahk_class MSBLPopupMsgWClass

などのウインドウを操作できてる

204 :名無しさん@お腹いっぱい。:2005/11/20(日) 21:41:56 ID:Gk4qhKIS0
多分常駐させてないだけだろ

205 :名無しさん@お腹いっぱい。:2005/11/20(日) 21:51:08 ID:0DdRRu/u0
SetTimerの上のほうに、Returnかホットキーの設定が書いてある気がする。


206 :名無しさん@お腹いっぱい。:2005/11/20(日) 22:49:48 ID:zlspGYDE0
ホットキー指定のないスクリプトは #Persistent入れないと常駐しないから

207 :名無しさん@お腹いっぱい。:2005/11/20(日) 23:56:30 ID:JR1lWgkn0
>>203-206
ありがとう

>常駐するSetTimerはAutoHotkey.iniの頭に書いて、
>SetTimerの上のほうに、Returnかホットキーの設定が書いてある気がする。
これだった。無事に動きました。ありがとう

208 :名無しさん@お腹いっぱい。:2005/11/21(月) 00:06:01 ID:FWsdNj/u0
iTunesを操作させるにはどうしたらいいですかね?


209 :名無しさん@お腹いっぱい。:2005/11/21(月) 00:18:49 ID:5v2PJ0mq0
努力したらいいと思うよ

210 :名無しさん@お腹いっぱい。:2005/11/21(月) 00:39:50 ID:ZVwQTLlG0
>>208
曖昧すぎ。

211 :名無しさん@お腹いっぱい。:2005/11/21(月) 02:04:10 ID:Nz+dKwd30
>>210
質問がな

212 :名無しさん@お腹いっぱい。:2005/11/21(月) 21:26:10 ID:OOnUpq930
AutoHotkeyでiTunesを操作させるにはどうしたらいいですかね?

213 :名無しさん@お腹いっぱい。:2005/11/21(月) 22:37:36 ID:jfEQAnS10
「:」に対してキーを割り当てたいのですが、うまくいきませんでした。
::: ←ここでエラー
ごにょごにょ

何か他に書き方があるのでしょうか?

214 :名無しさん@お腹いっぱい。:2005/11/21(月) 23:02:40 ID:Y2LksryB0
http://lukewarm.s101.xrea.com/KeyList.htm の下のほう
仮想キーコードやスキャンコードで何とか対応しる


215 :名無しさん@お腹いっぱい。:2005/11/23(水) 11:44:06 ID:w4Ag56cD0
NetworkStumblerというアプリを最大化で起動して、
その中のウィンドウをさらに最大化しようとしています。
NetworkStumblerが最大化で起動しても、アクティブになるまで
3秒ほどかかります。
起動してから「ALT+w+t」で中のウィンドウが最大化できますが
AutoHotkey.iniで下のように書いてもうまくいきません。

最初の最大化で起動のみが成功し、中のウィンドウは変化がありません。
"Send, {LALT}wt"の部分は個別に動作確認できていますので、
その間の記述の仕方が問題でしょうか?

#0::
run "D:\apli\netstumbler\Network Stumbler\NetStumbler.exe", , max
WinWaitActive, Network Stumbler
if ErrorLevel <> 0
Send, {LALT}wt
else
return

216 :名無しさん@お腹いっぱい。:2005/11/23(水) 16:33:51 ID:vpU2R36Y0
If の判定が間違ってるのと、Elseが不要(書くならもう一行returnが必要)

子ウィンドウを枠一杯に広げるので満足なら Send,!wt でもいいけど
SendMessage使えば本当の最大化もできるよ

#0::
run "D:\apli\netstumbler\Network Stumbler\NetStumbler.exe", , max
WinWaitActive, Network Stumbler
if ErrorLevel = 0
{
SendMessage, 0x229, 0,0,MdiClient1,A ;WM_MDIGETACTIVE
SendMessage, 0x225, %ErrorLevel%, 0,MdiClient1,A ;WM_MDIMAXIMIZE
}
return

217 :215:2005/11/23(水) 21:55:25 ID:w4Ag56cD0
>>216
ご丁寧にありがとうございます!
しかし、<>を=に変更してelse消しても現象は変わらず。
Send, !wtの後にreturn付けても同じでした。
SendMessage使ったやつをコピペでもダメでした。。。orz

とりあえず、子ウィンドウを広げられるだけで満足です。
もしかしてErrorLevelが0になってないのでしょうか?




218 :名無しさん@お腹いっぱい。:2005/11/23(水) 22:40:29 ID:vpU2R36Y0
大分前に入れた奴なんでバージョン古いけど うちでは上手くいってる

XP SP1
Autohotkey Ver 1.0.38.1
NetStumbler ver 0.3.30

とりあえず MsgboxやOutputDebugでErrorLevelの値見たり
if
msgbox,OK
else
msgbox,NG
とかやって試してみたら?

219 :215:2005/11/23(水) 23:56:41 ID:w4Ag56cD0
>>218
ちなみに私の環境は
2000 SP4
Autohotkey Ver 1.0.40.06
NetStumbler ver 0.4.0

>とりあえず MsgboxやOutputDebugでErrorLevelの値見たり
そういうやり方があるのですね。

if ErrorLevel = 0
{
msgbox,OK
return
}
else
msgbox,NG
return

↑を試したところ、タイトルバーが青くなる前に
「OK」が出ました。なのでSend, !wtが実行される
のが早過ぎるみたいですね。



220 :名無しさん@お腹いっぱい。:2005/11/24(木) 01:13:43 ID:YIxfmvQf0
Verupしたね

221 :名無しさん@お腹いっぱい。:2005/11/24(木) 12:40:50 ID:0jaOpLGO0
>>219
MsgBoxに制御が奪われたからアクティブになれなかったってオチじゃないような?
そこまでつきとめたら Sleepでウェイトいれてやればよろし

222 :215:2005/11/24(木) 22:05:57 ID:3njavchq0
>>218
>>219
おかげさまで望み通りの動作ができました!
感謝します。

;【NwtStumbler起動】
#7::
IfWinExist, Network Stumbler
{
WinMaximize
WinActivate
return
}
else
run "D:\apli\netstumbler\Network Stumbler\NetStumbler.exe", D:\apli\netstumbler\aplog, max
WinWaitActive, Network Stumbler
if ErrorLevel = 0
{
Sleep, 3000
Send, !wt
return
}
else
return


223 :名無しさん@お腹いっぱい。:2005/11/26(土) 13:41:58 ID:cSvLT2hD0
LastFoundWindowってWinWaitで機能しないんですか?

224 :名無しさん@お腹いっぱい。:2005/11/26(土) 20:49:42 ID:ekIkW6EI0
%1%や%2%はコマンドライン引数が分解されて格納されていますが、
コマンドライン引数全体を表す変数はないんでしょうか?

225 :名無しさん@お腹いっぱい。:2005/11/26(土) 21:01:35 ID:TeG9pCZU0
>>224
引数を「"」で囲めばだいたい解決すると思いますが

Loop, %0%
{
Part := %A_Index%
Unite = %Unite%%Part%%A_Space%
}

MsgBox, "%Unite%"

どうしようもない場面では
「0」に引数の数が入るのでこんなのでどうにかしてます。

226 :名無しさん@お腹いっぱい。:2005/11/26(土) 21:59:47 ID:m0vUMe840
>FileAppend [, Text, Filename]
>ファイル名の代わりに「*」を指定すると、標準出力にテキストを書き出せる。
http://lukewarm.s101.xrea.com/commands/FileAppend.htm

--- test.ahk --------
FileAppend,Hello,*
---------------------
コンパイルしてプロンプトで test と打っても文字は何も表示されない。
test > a.txt とリダイレクトさせるとファイルには正常に出力される、何でだろ?

227 :名無しさん@お腹いっぱい。:2005/11/26(土) 22:33:10 ID:ekIkW6EI0
A_Indexを1度別の変数に入れちゃえばいいのか。
"でくくられていたかどうかが正確には判断出来ないですけど、
実用上は問題ないですね。
ありがとうございました。

228 :名無しさん@お腹いっぱい。:2005/11/27(日) 12:34:40 ID:R5M1hxQO0
Send,{LWin Down}やSend,{LWindown}
で押し下げ状態にしたWinキーを元に戻すにはどうすればいいでしょうか?
Send,{LWin Up}やSend,{LWin}とやっても戻りませんでした。

229 :名無しさん@お腹いっぱい。:2005/11/27(日) 15:26:46 ID:GjCd3Btu0
任意のアプリをタスクバーにボタンを表示しないようにしたいんだけど
Gui,+ToolWindowに相当するものってない?
ウィンドウスタイルを見てもそれらしいのがないっぽい

230 :名無しさん@お腹いっぱい。:2005/11/27(日) 16:30:10 ID:m61GJs8S0
試してないけど
0x00000080 WS_EX_TOOLWINDOW
あたりは?

231 :229:2005/11/27(日) 17:10:05 ID:GjCd3Btu0
>>230
見落としてた
しかし、小さいタイトルバーになってAltTabメニューにも表示されなくなるけど
何故かタスクバーには表示されたまま
色んなウィンドウで試してみたけど変わらない

WinSet,ExStyle,^0x00000080,A

232 :名無しさん@お腹いっぱい。:2005/11/27(日) 20:16:28 ID:RGnUnyxH0
ひらがなカタカナキ-にaltを割り当てたいのですが

*vkF2::Send,{alt Down}
*vkF2 up::Send,{alt Up}

とするとaltが押しっぱなしになってしまいます
仮想キー押し上げにコマンドを割り当てることは出来ないのでしょうか?

233 :名無しさん@お腹いっぱい。:2005/11/28(月) 08:04:43 ID:QtDqyH5O0
TListViewの情報を取得するにはどうしたらいいでしょうか?
ContrloGetのListはSysListVew32のようですし

234 :名無しさん@お腹いっぱい。:2005/11/28(月) 20:15:46 ID:S9ZDzThA0
コマンドライン引数の取得の仕方がわかったので書いておきます。

GetArgs()
{
args := DllCall("GetCommandLine", str)
StringGetPos, pos, args, %A_ScriptName%
StringLen, length, A_ScriptName
count := pos + length + 1
StringTrimLeft, args, args, count
return args
}

args := GetArgs()
MsgBox, %args%

235 :名無しさん@お腹いっぱい。:2005/11/28(月) 20:24:26 ID:bOHdUc5Q0
トンクス
いただいた。

236 :名無しさん@お腹いっぱい。:2005/12/04(日) 00:40:06 ID:Boevp9qL0
解説サイトの説明が糞だな。
窓使いの憂鬱も分かりづらくて導入しにくいところがあったが
こっちはさらダメダメ。アホか。

流行らせる気全然ね〜だろ。ぼけだろ。

237 :名無しさん@お腹いっぱい。:2005/12/04(日) 00:58:39 ID:vf5AX1eU0
236がアホでぼけで理解力がダメダメなのはわかった

238 :名無しさん@お腹いっぱい。:2005/12/04(日) 01:06:12 ID:ziZg2yDd0
単に翻訳してるだけだし
その労苦だけでもありがたいと思うけどね

239 :233:2005/12/04(日) 01:53:09 ID:c5I9hufm0
WinAPIやWindowMessageもできるだけ調べましたが、未だに解決できません

TListViewの情報取得は無理でしょうか?

240 :名無しさん@お腹いっぱい。:2005/12/04(日) 11:08:29 ID:MlVaVrV10
>239
TListView って SysListView32 のサブクラスっぽいからそのまま使えるんじゃない?

241 :233:2005/12/04(日) 11:20:41 ID:c5I9hufm0
>>240
もちろん試しました
SysListView32のところでは取得できたので記述が間違っているってことはないと思います

WindowMessageのLVM_xxxxで色々操作できるみたいなんですが、テキストは取得できないみたいで・・・

242 :名無しさん@お腹いっぱい。:2005/12/04(日) 11:21:34 ID:t+Kdt+4/0
まだ悩んでいたのかよ
ListVewのこたしらんがTEDITもEditコントロールとして認知、制御できるし
ControlGetで取れる名称がSysListVew32だっつうなら
その名を指定してやれば情報は取れるだろ。

243 :名無しさん@お腹いっぱい。:2005/12/04(日) 11:22:58 ID:t+Kdt+4/0
できないのか、
ならGontrolGetTextでは?

244 :233:2005/12/04(日) 11:27:01 ID:c5I9hufm0
>>242
Contolの引数のことろにTListViewではなくSysListVew32を指定するってことですか?
もちろんやってみましたが無理のようです

245 :233:2005/12/04(日) 11:29:30 ID:c5I9hufm0
>>243
それも試しました
いくつかのアプリで試しているので取得したいアプリが特殊という可能性は低いと思います

246 :233:2005/12/04(日) 19:16:26 ID:c5I9hufm0
VarSetCapacity(LvItem,52,0)
InsertInteger(1,LvItem,0)
InsertInteger(0,LvItem,4)
InsertInteger(0,LvItem,8)
InsertInteger(&pszText,LvItem,20)
InsertInteger(100,LvItem,24)
SendMessage,0x1005,0,&LvItem,TListView1,A
Msgbox,%pszText%

ttp://yokohama.cool.ne.jp/chokuto/urawaza/listview2.html
ここを参考にしましたが
これでいけると思ったけど駄目でした
InsertInteger()関数は書いてあります

エラー内容
モジュール 'comctl32.dll' のアドレス 5ABBD830 でアドレス 00D15714 に対する読み込み違反がおきました。

構造体は素人なので見よう見まねで書いてみましたが
どこかおかしいでしょうか?

247 :名無しさん@お腹いっぱい。:2005/12/04(日) 20:11:58 ID:t+Kdt+4/0
AHKは万能なソフトってわけでもないのでそれだけ努力してダメなら無理なのかもしらんね
とりあえず半端なレスして悪かった。

248 :233:2005/12/04(日) 20:29:14 ID:c5I9hufm0
>>247
>とりあえず半端なレスして悪かった

いえいえ

>AHKは万能なソフトってわけでもないので

もしどうしても駄目なら他のソフトやスクリプトを通してでも取得したいのですが・・・
どなかたお知恵をお貸しください


249 :名無しさん@お腹いっぱい。:2005/12/04(日) 20:39:34 ID:LHEUZAAE0
単に別プロセスのメモリー読もうとしてるからエラー出てるのでは?
TListViewはListView用のLVM_〜が使えた気がする

250 :233:2005/12/04(日) 20:47:32 ID:c5I9hufm0
>>249
>TListViewはListView用のLVM_〜が使えた気がする

そうです、使えるようです。
実際LVM_GETITEMCOUNTでアイテム数は取得できますし。
>>246のリンク先にもありますが、SendMessageの0x1005はLVM_GETITEMのことです

>単に別プロセスのメモリー読もうとしてるからエラー出てるのでは?

これについては自分にはよくわからないです

251 :名無しさん@お腹いっぱい。:2005/12/04(日) 21:06:52 ID:OzfEcy140
>>250
VirtualAllocEx MapViewOfFile
を駆使すれば取得できるが面倒

252 :名無しさん@お腹いっぱい。:2005/12/04(日) 21:09:06 ID:LHEUZAAE0
LVM_GETITEMCOUNTはSendMessageの戻り値がそのままアイテム数だから問題ないけど
LVM_GETITEMはLVITEMのポインタをLPARAMで渡してそこに情報を書き込んでもらう奴だから
LVITEM*が指すメモリーを共有メモリにするか、SendMessageする側でフックをかけてプロセスに割り込まないといけない
共有メモリー使う方法は ttp://techtips.belution.com/ja/vc/0001/ あたりを参考にすれば出来るかな

253 :233:2005/12/04(日) 21:10:52 ID:c5I9hufm0
>>251-252
ありがとうございます
とりあえず提示されたものを頑張って調べてみます

254 :233:2005/12/05(月) 12:27:58 ID:pnvrA0j10
色々やってみたんですが、行き詰っています

ttp://techtips.belution.com/ja/vc/0001/
これってメモリアドレスから変数を参照できないと無理なのでは?
まだ調べ始めて1日なので何か勘違いしてるだけのような気もしますが

255 :名無しさん@お腹いっぱい。:2005/12/05(月) 12:48:04 ID:yS+6IGXX0
gui,add,edit,vtitle R1 W300
gui,show
return

こんな感じでエディットボックスを作ってるんですが、日本語入力すると確定するまで表示されません。
普通に変換中に表示されるようには出来ないのでしょうか?何かオプションがあるのかな?

256 :名無しさん@お腹いっぱい。:2005/12/05(月) 12:55:38 ID:stKSCaAE0
>>255
うちで使ってる簡単なもの。これで試して駄目だったらなんかIMEとかに問題ありそうな。

#NoTrayIcon
#SingleInstance
Gui, Add, Edit, vSrc X Y W210
Gui, Add, Button, Default gSrc x+6 ys-2, &Search
Gui, Show, , Amazon検索
return
Src:
Gui, Submit
Run, http://www.amazon.co.jp/exec/obidos/search-handle-url/index=blended&field-keywords=%Src
ExitApp
GuiEscape:
GuiClose:
ExitApp


257 :名無しさん@お腹いっぱい。:2005/12/05(月) 13:30:59 ID:fH9XPvqW0
>>255
うちでは普通にでるけどなぁ・・・
win2ksp4 Atok16 MSIME2k どっちもOK

258 :名無しさん@お腹いっぱい。:2005/12/05(月) 13:33:22 ID:fH9XPvqW0
いちおう追記、AHK v1.0.40.05

259 :255:2005/12/05(月) 15:14:33 ID:yS+6IGXX0
>>256
>>257
ありがとうございます。早速試しましたが、やはりうまく表示されません。
例えば  わたしは と打つと w しか表示されないです。
Returnを押すと、わたしは と表示されます
Version 1.0.40.10をいれてみましたが、症状はかわらず。
どーもうちのIMEの不具合か、設定の問題かもしれません。
ちなみにAHK以外の日本語入力は不具合ありません。

260 :名無しさん@お腹いっぱい。:2005/12/05(月) 15:38:36 ID:N0kdWIqG0
>>259
OSの種類とIMEのバージョンや設定(ナチュラルインプットとか詳細サービスとか)書いたら?
解決したかったら人任せじゃだめだよ

261 :255:2005/12/05(月) 16:21:24 ID:ONVNYKfr0
情報が足らず申し訳ありませんでした。

Windows Xp pro sp1
AHK Version 1.0.40.10
Microsoft IME Standard 2002 ver. 8.1
詳細なテキスト サービスをオフにするにチェック
IME Watcherを使用
英字を常に半角で変換以外は設定をいじってません。

英語圏のソフトなのでこういう仕様なのかと思っていました。
我が家のPCの問題のようですので自力でがんばります。
皆様のお手を煩わせてほんとに申し訳なかったです。すみませんでした。

262 :233:2005/12/06(火) 00:06:41 ID:zKABzlSJ0
何度もすみません
やっぱり自分には無理のようです・・・

とういうか、>>252のURLの内容とほぼ同じものが
ttp://www.yoshibaworks.com/ayacy/inasoft/lv2csv/lvcsvcom/chapter3.html
に載っているんですが、同じサイトの
ttp://www.yoshibaworks.com/ayacy/inasoft/lv2csv/index.html
をダウンロードして使ってみたところTListViewは取得できませんでした
下のURLのアプリは上のソースコードとは仕組みが違うのかもしれませんが


自分にとってTListViewが取得できることによってAHKはかなり便利になると思います
ずうずうしいようですが、TListViewを取得できるものが誰かの手によって書かれるのを期待します
もちろん自分でもこれからもチャレンジしていきたいと思います


263 :名無しさん@お腹いっぱい。:2005/12/06(火) 00:11:30 ID:BfjYx7dY0
TlistViewってそもそも何?


264 :260:2005/12/06(火) 00:20:18 ID:061B1eK40
>>261
俺も>>256を試したら同じ現象が起きた
XP HOME SP2
IME2002でIME Watcherは使ってない

今さらで悪いけど、むかし同じ現象が出て
InputBoxを使って回避した気がする。忘れてた…
その時は、会社のマシンだったから割と起こりやすい現象みたい

265 :名無しさん@お腹いっぱい。:2005/12/06(火) 00:28:05 ID:+pinJF560
>>262
ぱっとソースを見た感じクラスがListView32じゃないと動作しないように書いてある
これ→if ( strcmp(szClassName, WC_LISTVIEW) == 0 ) {
確かTListViewはクラス名が違ったと思う


266 :233:2005/12/06(火) 00:30:50 ID:zKABzlSJ0
>>265
ということは>>262のソースを再現すればAHKでも実現できるわけですね
少し希望が湧いてきました

267 :255:2005/12/06(火) 20:02:45 ID:BjDsaEX90
exeファイルにして、友達のPCで試してもらいました。
買ったままいじってないWinxp home sp2
やはり同じように入力がおかしかったようです。
これは、エディットボックス自体の不具合かな。あきらめてほかの方法をとることにします。

268 :名無しさん@お腹いっぱい。:2005/12/06(火) 22:19:27 ID:cuFKTqtn0
InsertInteger(pInteger, ByRef pDest, pOffset = 0, pSize = 4)
; To preserve any existing contents in pDest, only pSize number of bytes starting at pOffset
; are altered in it. The caller must ensure that pDest has sufficient capacity.
{
  mask := 0xFF ; This serves to isolate each byte, one by one.
  Loop %pSize% ; Copy each byte in the integer into the structure as raw binary data.
  {
    DllCall("RtlFillMemory", UInt, &pDest + pOffset + A_Index - 1, UInt, 1 ; Write one byte.
      , UChar, (pInteger & mask) >> 8 * (A_Index - 1)) ; This line is auto-merged with above at load-time.
    mask := mask << 8 ; Set it up for isolation of the next byte.
  }
}

ExtractInteger(ByRef pSource, pOffset = 0, pIsSigned = false, pSize = 4)
{
  SourceAddress := &pSource + pOffset ; Get address and apply the caller's offset.
  result := 0 ; Init prior to accumulation in the loop.
  Loop %pSize% ; For each byte in the integer:
  {
    result := result | (*SourceAddress << 8 * (A_Index - 1)) ; Build the integer from its bytes.
    SourceAddress += 1 ; Move on to the next byte.
  }
  if (!pIsSigned OR pSize > 4 OR result < 0x80000000)
    return result ; Signed vs. unsigned doesn't matter in these cases.
  ; Otherwise, convert the value (now known to be 32-bit) to its signed counterpart:
  return -(0xFFFFFFFF - result + 1)
}

269 :名無しさん@お腹いっぱい。:2005/12/06(火) 22:21:14 ID:cuFKTqtn0

GetListViewText(hListView, iItem, iSubItem, ByRef lpString, nMaxCount)
{
  ;const
  NULL = 0
  PROCESS_ALL_ACCESS = 0x001F0FFF
  INVALID_HANDLE_VALUE = 0xFFFFFFFF
  PAGE_READWRITE = 4
  FILE_MAP_WRITE = 2
  MEM_COMMIT = 0x1000
  MEM_RELEASE = 0x8000
  LV_ITEM_mask = 0
  LV_ITEM_iItem = 4
  LV_ITEM_iSubItem = 8
  LV_ITEM_state = 12
  LV_ITEM_stateMask = 16
  LV_ITEM_pszText = 20
  LV_ITEM_cchTextMax = 24
  LVIF_TEXT = 1
  LVM_GETITEM = 0x1005
  SIZEOF_LV_ITEM = 0x28
  SIZEOF_TEXT_BUF = 0x104
  SIZEOF_BUF = 0x120
  SIZEOF_INT = 4
  SIZEOF_POINTER = 4

  ;var
  result := 0
  hProcess := NULL
  dwProcessId := 0

270 :名無しさん@お腹いっぱい。:2005/12/06(火) 22:21:36 ID:cuFKTqtn0
  if lpString <> NULL && nMaxCount > 0
  {
    DllCall("lstrcpy", Str,lpString, Str,"")
    DllCall("GetWindowThreadProcessId", UInt,hListView, UIntP,dwProcessId)
    hProcess := DllCall("OpenProcess", UInt,PROCESS_ALL_ACCESS, Int,false, UInt,dwProcessId)
    if hProcess <> NULL
    {
      ;var
      lpProcessBuf := NULL
      hMap := NULL
      hKernel := DllCall("GetModuleHandle", Str,"kernel32.dll", UInt)
      pVirtualAllocEx := DllCall("GetProcAddress", UInt,hKernel, Str,"VirtualAllocEx", UInt)
  
      if pVirtualAllocEx == NULL
      {
        hMap := DllCall("CreateFileMapping", UInt,INVALID_HANDLE_VALUE, Int,NULL, UInt,PAGE_READWRITE, UInt,0, UInt,SIZEOF_BUF, UInt)
        if hMap <> NULL
          lpProcessBuf := DllCall("MapViewOfFile", UInt,hMap, UInt,FILE_MAP_WRITE, UInt,0, UInt,0, UInt,0, UInt)
      }
      else
      {
        lpProcessBuf := DllCall("VirtualAllocEx", UInt,hProcess, UInt,NULL, UInt,SIZEOF_BUF, UInt,MEM_COMMIT, UInt,PAGE_READWRITE)
      }


271 :名無しさん@お腹いっぱい。:2005/12/06(火) 22:22:07 ID:cuFKTqtn0
      if lpProcessBuf <> NULL
      {
        ;var
        VarSetCapacity(buf, SIZEOF_BUF, 0)

        InsertInteger(LVIF_TEXT, buf, LV_ITEM_mask, SIZEOF_INT)
        InsertInteger(iItem, buf, LV_ITEM_iItem, SIZEOF_INT)
        InsertInteger(iSubItem, buf, LV_ITEM_iSubItem, SIZEOF_INT)
        InsertInteger(lpProcessBuf + SIZEOF_LV_ITEM, buf, LV_ITEM_pszText, SIZEOF_POINTER)
        InsertInteger(SIZEOF_TEXT_BUF, buf, LV_ITEM_cchTextMax, SIZEOF_INT)
        
        if DllCall("WriteProcessMemory", UInt,hProcess, UInt,lpProcessBuf, UInt,&buf, UInt,SIZEOF_BUF, UInt,NULL) <> 0
          if DllCall("SendMessage", UInt,hListView, UInt,LVM_GETITEM, Int,0, Int,lpProcessBuf) <> 0
            if DllCall("ReadProcessMemory", UInt,hProcess, UInt,lpProcessBuf, UInt,&buf, UInt,SIZEOF_BUF, UInt,NULL) <> 0
            {
              DllCall("lstrcpyn", Str,lpString, UInt,&buf + SIZEOF_LV_ITEM, Int,nMaxCount)
              result := DllCall("lstrlen", Str,lpString)
            }
      }

272 :名無しさん@お腹いっぱい。:2005/12/06(火) 22:22:41 ID:cuFKTqtn0
      if lpProcessBuf <> NULL
        if pVirtualAllocEx <> NULL
          DllCall("VirtualFreeEx", UInt,lpProcessBuf, UInt,0, UInt,MEM_RELEASE)
        else
          DllCall("UnmapViewOfFile", UInt,lpProcessBuf)
      if hMap <> NULL
        DllCall("CloseHandle", UInt,hMap)
  
      DllCall("CloseHandle", UInt,hProcess)
    }
  }
  return result
}


273 :名無しさん@お腹いっぱい。:2005/12/06(火) 22:23:18 ID:cuFKTqtn0

;const
MAX_TEXT = 260

;var
iItem := 0
iSubItem := 0
x := 0
y := 0

VarSetCapacity(szText, MAX_TEXT, 0)
VarSetCapacity(szClass, MAX_TEXT, 0)
VarSetCapacity(point, 8, 0)
DllCall("GetCursorPos", Str,point)
x := ExtractInteger(point, 0, true, 4)
y := ExtractInteger(point, 4, true, 4)
hListView := DllCall("WindowFromPoint", Int,x, Int,y)
DllCall("GetClassName", UInt,hListView, Str,szClass, Int,MAX_TEXT)
if DllCall("lstrcmpi", Str,szClass, Str,"SysListView32") == 0 || DllCall("lstrcmpi", Str,szClass, Str,"TListView") == 0
{
  GetListViewText(hListView, iItem, iSubItem, szText, MAX_TEXT)
  Msgbox, %szText%
}
return

274 :233:2005/12/06(火) 22:52:52 ID:oOmblgWA0
すごい!感動しました!
感謝してもしきれないです
本当にありがとうございます

275 :名無しさん@お腹いっぱい。:2005/12/07(水) 00:24:52 ID:+IISIZwk0
引数が足りなかった
DllCall("VirtualFreeEx", UInt,hProcess, UInt,lpProcessBuf, UInt,0, UInt,MEM_RELEASE)

276 :名無しさん@お腹いっぱい。:2005/12/07(水) 00:33:06 ID:WQOB4lVi0
>>233
具体的にどういう使い方をするのかちょっと興味あるんだけど、教えてくんない?

277 :233:2005/12/07(水) 16:47:00 ID:Fl/Gr8/X0
>>275
普通に動いてたので気づきませんでした
どちらにしても感謝です

>>276
ここまでしてもらってなんですが、ご勘弁を


278 :名無しさん@お腹いっぱい。:2005/12/07(水) 16:57:01 ID:x7hOLdd40
>>277
エロDVDのタイトルの整理か何かですか?

279 :名無しさん@お腹いっぱい。:2005/12/07(水) 23:01:34 ID:SL+OhssX0
匿名掲示板で詳しく言えないって事は犯罪絡みか

280 :名無しさん@お腹いっぱい。:2005/12/07(水) 23:29:33 ID:EMbBN43/0
それか業務がらみとか

281 :名無しさん@お腹いっぱい。:2005/12/08(木) 01:24:26 ID:kFp6FhOt0
変数一覧のところの一番上に

0[1 of 1]: 0

ってのが必ずあるんだけどこれって何?

282 :名無しさん@お腹いっぱい。:2005/12/08(木) 19:29:26 ID:tAZLc0Al0
コマンドライン引数の奴

283 :281:2005/12/08(木) 19:30:54 ID:kFp6FhOt0
>>282
あ、なるほど

284 :名無しさん@お腹いっぱい。:2005/12/10(土) 23:31:57 ID:8fYJs8aX0
質問なのですが、このソフトでIME起動時に全角文字を入力として挿入することは
比較的楽に出来ますでしょうか?

なにがしたいかと言いますと、自分はIMEは「かな入力」の人間でして、
チャット等の、通常会話に近い文を書いてる時は、!や?が、かな文字と
同じくらいの平易さで出現するのですが、かな入力ですと、入力するのが
ちょっと面倒なのです(かな/英数を切り替えてからShift+1で再びかな/英数など)
そこで、IME(ATOK2005)が起動している時は、かな入力状態でも
[Shift]+[1]で“!”を、[Shift]+[/]で“?”を入力出来るようにしたいのですが、
そう言ったことは可能でしょうか?

自分の程度としましては、DOS3からなのでbatは書けますがvbsは読んで修正するのが精一杯、
サイトの引っ越しでUWSCでIEを半自動実行で転記させる50行×8本くらいのサブルーチンを
書いた程度で、最近は正規表現がなんとか使えてきて楽しいというようなレベルです。

外国産みたいなので、IMEの起動を検知できるのかと、起動したIMEに文字を直接送ることが
出来るのかがネックかなと思っているのですが…

よろしくお願いします。

285 :名無しさん@お腹いっぱい。:2005/12/11(日) 00:22:31 ID:XJ0qF38r0
> そう言ったことは可能でしょうか?
可能

それと、おまえのレベルなんて知ったこっちゃない
このソフトが使えないレベルなら他を当たれ
使えるなら勝手にしろ
といっても、流行らせるページ見ればこの程度バカでも出来るがな

ソフトに限ったことじゃないが、便利なものを使いたければ
それに応じた実力(知識や技術など)を身につけろってこった

286 :名無しさん@お腹いっぱい。:2005/12/11(日) 00:39:49 ID:apES3Z+g0
まぁ要望を長々と書いたところで、マジメに読んでもらえる訳が無い。

がんばればアンタでもできるんじゃねーの?としか言いようが無い。

287 :名無しさん@お腹いっぱい。:2005/12/11(日) 00:59:00 ID:78+mCWVm0
つーか俺なら変換キー連打で解決するね

288 :名無しさん@お腹いっぱい。:2005/12/11(日) 01:23:09 ID:LXjhHQ7b0
辞書登録で1→! 0→?(テンキーを使っているなら)とか
ぬ→! め→? とでも登録した方が分かりやすい上に
てっとり早いんじゃないか?

289 :名無しさん@お腹いっぱい。:2005/12/11(日) 01:27:32 ID:78+mCWVm0
>>288
>>287

290 :284:2005/12/11(日) 13:39:45 ID:OA29yvnX0
お返事ありがとうございます。
ソフトによっては、ユーザー側に有る程度の素養が要求されると思いますので、
現実的に見て、自分のレベルで作業するのに問題が無いか、
取り組む前に確認させて貰いたかったのですが、スレの空気を乱す発言になった
ようで、すみませんでした。

お返事を見る限り、無理な要求という感触では無いようですので、
参考にさせていただいて、検討いたします。

291 :名無しさん@お腹いっぱい。:2005/12/11(日) 13:46:13 ID:n6eRmNGz0
とりあえずお前が人のアドバイスを試す気がないカスなのは分かった

292 :名無しさん@お腹いっぱい。:2005/12/11(日) 13:48:53 ID:2lWo/Yh80
プッ

293 :名無しさん@お腹いっぱい。:2005/12/11(日) 20:13:50 ID:/OTbplQs0
しばらく過疎ってる間にえらく空気悪くなってるな
>>290
IME制御に関しては過去何度か話題に上がってるので調べてみれ
なまず氏が自分とこのブログで最近とりあげてたし

294 :名無しさん@お腹いっぱい。:2005/12/13(火) 00:21:18 ID:sRReWFce0
ttp://www.tamanegi.org/prog/mayu-plugins/
ここのmigemo-isearchってAHKでできます?
dllのことはよくわからないんですが、これに入ってるのをDllCallすれば可能?

295 :名無しさん@お腹いっぱい。:2005/12/13(火) 03:10:20 ID:UEU0KJ8o0
もうある

296 :名無しさん@お腹いっぱい。:2005/12/13(火) 13:57:25 ID:sRReWFce0
>>295
本当ですか?
一応「migemo ahk」「migemo autohotkey」などで検索しても見つかりませんでした

297 :名無しさん@お腹いっぱい。:2005/12/13(火) 14:41:54 ID:DtKvDaaE0
流行らせるページにある奴じゃないのかな。

298 :名無しさん@お腹いっぱい。:2005/12/13(火) 14:47:52 ID:sRReWFce0
>>297
ありました
これ昔からありましたっけ?

299 :294:2005/12/13(火) 17:20:20 ID:sRReWFce0
これをブラウザで使うやり方がさっぱりわからない・・・・

そもそもサンプルが上手く動かないです
例えば「a」と打つと「シリアス」だけがマッチ(他にもaはたくさんあるのに)
どんな文字でも2文字目を打つと何も表示されず
意味がよくわからないです

300 :294:2005/12/13(火) 17:39:57 ID:sRReWFce0
自分でlist=を作ってやってみましたが
アルファベットだけがマッチ
漢字・ひらがな・カタカナ全滅

私が何かをすごく勘違いしてる気がしますが・・・・

301 :294:2005/12/13(火) 17:52:44 ID:sRReWFce0
ただ単に辞書パスが違っているというアホな間違いでした
すみません

でもブラウザで使うやり方は未だわからず

302 :名無しさん@お腹いっぱい。:2005/12/13(火) 18:03:09 ID:DtKvDaaE0
いつから日記スレになったんだ

303 :294:2005/12/13(火) 18:05:03 ID:sRReWFce0
>>302
本当にスレ汚しすみません

304 :名無しさん@お腹いっぱい。:2005/12/13(火) 18:05:04 ID:JxXQO2OP0
さっさと消えろよ、うざいなぁ。

305 :名無しさん@お腹いっぱい。:2005/12/13(火) 18:23:00 ID:McRsgk3+0
なんか最近スレの空気悪いなぁ。

っていうかmigemoの存在を初めて知った。
ちょっと感動。

流行らせるページのスクリプト見てみたけど
>>294と同じ機能をAHKからブラウザで使うのは無理じゃね?

306 :名無しさん@お腹いっぱい。:2005/12/13(火) 20:54:54 ID:wLsVmh5S0
俺も知識不足でサンプルで何をやっているのか全然わからないので
流用できなかった。
任意のファイラ上でmigemoでファイルを選択したかったんだけどね。

マッチングを行わせたい文字列をリストにしてスクリプトに
読ませるんだというのはなんとなくわかるけど
マッチした内容を任意のソフトに対してどうやって反映させたら
いいのかさっぱり。
誰か使っている人いたら具体的なスクリプトを教えてくれないかな。

307 :名無しさん@お腹いっぱい。:2005/12/13(火) 22:44:18 ID:tDGCBqUo0
>>304
お前が消えろよ

308 :名無しさん@お腹いっぱい。:2005/12/13(火) 22:54:36 ID:hY2eSXDW0
ファイラーはMigemizeExplorer
ブラウザは窓使いの憂鬱
2chブラウザはJaneView
エディタはサクラエディタ

ってな具合にmigemoを使ってる。
ただ、繭で使ってるのはmigemoのみだから繭をなくしたいんだよね。
別に不具合はないけど。
ブラウザ乗り換えも何度も検討した結果、今使ってるものになってるし。

309 :名無しさん@お腹いっぱい。:2005/12/14(水) 12:55:41 ID:RrhosKDn0
今現在、Win用・繭不要でmigemo対応のブラウザは

fub.net
ぶら。  ※拡張機能で。

Bagel
Firefox  ※XUL/Migemo
Sylera2

オレはSylera2だけど他にもあるような…

310 :名無しさん@お腹いっぱい。:2005/12/14(水) 14:43:44 ID:NCzEYHK/0
Janeのトレース画面を一発で出し入れできるスクリプトって無理かな


311 :名無しさん@お腹いっぱい。:2005/12/15(木) 09:04:11 ID:Oeo3ug/h0
質問ですけど、スクリプトでMSNメッセンジャーを取り込み中に変えたりオンラインに戻したりするにはどうしたらいいですか?

312 :名無しさん@お腹いっぱい。:2005/12/15(木) 09:16:32 ID:vmIlAlU20
>>311
AutoHotkey以外での実現方法を知っているなら、そのとおりに実装すればいいのでは。
手始めに "MSN Messenger" Messenger.UIAutomation.1 で検索するとかして。(英語も読もう)

313 :311:2005/12/15(木) 09:21:36 ID:Oeo3ug/h0
>>312
レスどうもです!
> AutoHotkey以外での実現方法
はタスクトレイのアイコンを右クリックしてやる方法しか知らないです・・・
ちょっとググってみます!
英語は・・・読める限り・・・

314 :名無しさん@お腹いっぱい。:2005/12/15(木) 12:34:59 ID:quYc50MH0
>>310
出し入れというかマウス系のコマンド使って瞬間的に
ドラッグして消しているように見せるだけの奴なら作ってみた。
結構良い感じでうまく動いたよ。

そういう意味では出来ると答えておきます。

他に方法があるかもしれないけど漏れにはわかりません。

315 :名無しさん@お腹いっぱい。:2005/12/15(木) 15:12:30 ID:Ro4rZY7t0
>>314
やっぱそれしかないかー
と思ったが、Hideenテキストを取得するスクリプト書いて
MSGBOX出せば、トレース画面出さなくても
デバッグログがみれるかもと思った。

316 :名無しさん@お腹いっぱい。:2005/12/15(木) 15:21:14 ID:quYc50MH0
あ、トレース画面を別ウィンドウで浮かせたいってことが言いたかったのか。
勘違いしてスマソ。
うーん。Janeのソースいじってしまった方が速いんでないかい?

まぁ、でもText拾ってGuiで別Window作成して表示させれば、できるだろな。

317 :名無しさん@お腹いっぱい。:2005/12/15(木) 15:28:31 ID:Ro4rZY7t0
>>316
あ、いや、その解釈であってるよ。
最初は外部コマンドからトレース画面をある程度の幅で
ウィンドウ内に出せればいいなと思ってたんだけど。
でも、AU3_Spyで見たらトレース画面のテキストが取得できてたんで
別に本体で見なくてもいいかなと思って。

318 :名無しさん@お腹いっぱい。:2005/12/15(木) 18:13:10 ID:RHa3zC2W0
Jane作者に要望だせば?

319 :名無しさん@お腹いっぱい。:2005/12/15(木) 22:56:34 ID:3cBKpG8E0
>>294にあるdll使って

DllCall("dllのパス\migemo-isearch.dll\ie_isearch_fmRi",Int,0)
としてみたが何も起こらず。
返り値はなし、ErrorLevelは-4(DLLは見つかったが、Functionで指定した関数が無かった)

どこが間違っているでしょうか?
そもそも無理?


320 :名無しさん@お腹いっぱい。:2005/12/19(月) 16:48:21 ID:T6Ojlipz0
CPU使用率を取得するにはどうすればいいでしょうか?

ttp://www.vector.co.jp/soft/winnt/prog/se361629.html
これを使って呼び出そうとしましたが、上手くいきません

321 :名無しさん@お腹いっぱい。:2005/12/19(月) 17:50:39 ID:m4JgEdVJ0
>>320
残念ながら力になれないが (DllCallを今初めて使った)、
どのような記述をして、どのように動かなかったのかの説明は書いておいた方が良いと思うよ。
ちなみに自分が試したのはこんな感じ。

;コード
#O::
Ret := DllCall("getcpust\GetCpuStatus", IntP, rate)
MsgBox, 返値:%Ret%`n使用率:%rate%`nエラーコード:%ErrorLevel%
return

;メッセージボックス
返値:1
使用率:0
エラーコード:A4

引数無しにするとエラーは出なくなるけど、それだと意味ないしなぁ。
以下DLLのReadmeから引用。他の人回答ぷりーず。
>int GetCpuStatus( int *rate )
>をEXPORTします。
>第1引数に引き渡したint型のメモリにCPU使用率が格納されます。
>返値は失敗するとFALSE(0)を、成功した場合はそれ以外を返します。





322 :320:2005/12/19(月) 17:53:49 ID:T6Ojlipz0
>>321
自分もほぼ同じ記述です

ただ、引数の最後にCdeclを追加するとErrorLevelは0になります(返値1・使用率0は変わらず)

323 :名無しさん@お腹いっぱい。:2005/12/20(火) 14:08:58 ID:VYjzBC0S0
>>322
調べてみたらその関数の呼び出し規約はcdeclだった(関数を公開するなら明示すべきだが)。
mp3でも再生しながら再計測してみては?

324 :320:2005/12/20(火) 14:14:45 ID:yg2tqewb0
>>323
ん?つまり記述はあっているけど私のCPU使用率は0だから0を返してるってことですか?
負荷を上げても0のままです

325 :名無しさん@お腹いっぱい。:2005/12/20(火) 15:28:39 ID:6fVVhLVx0
もしかして、とおもってやってみたらドンピシャ。

#Persistent
OnExit, ExitSub
hModule := DllCall("LoadLibrary", str, "getcpust.dll")
if hModule=0
{
ExitApp
}
SetTimer, GetCpust, 500
return

GetCpust:
Ret:=DllCall("getcpust\GetCpuStatus", "Int*", cpust, "cdeclInt")
ToolTip, 返値 %Ret%`ncpust %cpust%`nErrorLevel %ErrorLevel%
return

ExitSub:
DllCall("FreeLibrary", UInt, hModule)
ExitApp

326 :320:2005/12/20(火) 15:35:13 ID:yg2tqewb0
>>325
なるほど、そうやるんですね
勉強になりました

ありがとうございます

327 :名無しさん@お腹いっぱい。:2005/12/20(火) 15:41:31 ID:6fVVhLVx0
これみてピンとキタ━━(゚∀゚)━━ヨ。
ttp://lukewarm.s101.xrea.com/commands/indexframe.html

>DLL確保/開放の手動化
>DLLの処理によっては、処理の途中でDLLが開放してしまうと正常に動作しない場合がある。
>その場合、上記の例のように手動でLoadLibrary/FreeLibraryを行うことで、本来の動作になることがある。


できるだけ、この方法使った方が正常に動作するのかもしれませんね。

328 :320:2005/12/20(火) 15:44:01 ID:yg2tqewb0
>>327
そこには目を通していたはずなのに実行してみなかった自分が恥ずかしいです

329 :名無しさん@お腹いっぱい。:2005/12/20(火) 15:45:24 ID:6fVVhLVx0
>>327
ttp://lukewarm.s101.xrea.com/commands/DllCall.htm
だった・・

>>328案外見落としてしまうですね^^

330 :名無しさん@お腹いっぱい。:2005/12/20(火) 16:14:40 ID:e8aKpTDx0
平日の真昼間にいきなり活性化してんのな
学生ってもう冬休みに入ってるのかなw

331 :名無しさん@お腹いっぱい。:2005/12/20(火) 16:19:32 ID:e8aKpTDx0
↑末尾のwは Alt+w(書き込み)の押し間違いだorz

332 :名無しさん@お腹いっぱい。:2005/12/20(火) 16:59:12 ID:f5Fr+yX00
Ctrl+Alt+Delを無効にしようと思うんだけど

^!Del::return

としても変化なし
何か特別なことをしなければならない?

333 :332:2005/12/20(火) 17:22:32 ID:f5Fr+yX00
もっとよく調べてから質問すればよかった・・・

ttp://nienie.com/~masapico/doc_DisableSAS.html
コンパイルする環境にないのでコンパイル済を探しているところ
・・・ってこれはスレ違いか

334 :名無しさん@お腹いっぱい。:2005/12/21(水) 22:00:44 ID:C94x2s+u0
>>333
俺もそれほしくてコンパイル済みを探したけど見つからんかった。
どなたかお願いします・・

335 :名無しさん@お腹いっぱい。:2005/12/22(木) 02:31:48 ID:MS28PmO/0
>>333-334
コンパイルだけなら出来ないこともないが、
さすがにそんなシステムの根幹に関わるファイルは試したくないし、
そのまま上げて、うまく動かなくてシステム復旧できなくなっても責任取れないし。
第一、こんな危険度の高いファイルを匿名掲示板の誰とも知れぬヤツに
頼むのはどうかしてるとしか思えない。

336 :名無しさん@お腹いっぱい。:2005/12/22(木) 16:11:43 ID:7k5DRGNJ0
335の言うとおり。どれほど危険かわかっていってんのかね。

337 :名無しさん@お腹いっぱい。:2005/12/22(木) 17:01:29 ID:V901fh0D0
何度もいう必要は無いよ
一度言えば分かる
もしやる奴がいれば上げればいいし
自己責任で使えばいい

338 :名無しさん@お腹いっぱい。:2005/12/22(木) 18:39:00 ID:8FMcnaKn0
とりあえず自力でコンパイルできる位のスキルがある奴でないと危ないってこった

339 :名無しさん@お腹いっぱい。:2005/12/22(木) 18:44:59 ID:KsC0+Fth0
何度もいう必要は無いよ
一度言えば分かる
もしやる奴がいれば上げればいいし
自己責任で使えばいい


340 :名無しさん@お腹いっぱい。:2005/12/22(木) 22:47:41 ID:1UNMjvMz0
乱数が必要なときどうしてます?

341 :名無しさん@お腹いっぱい。:2005/12/22(木) 23:14:28 ID:mI5CV1Yi0
Random使ってますが

342 :名無しさん@お腹いっぱい。:2005/12/22(木) 23:14:55 ID:MS28PmO/0
Random, OutputVar [, Min, Max]

343 :340:2005/12/22(木) 23:16:16 ID:1UNMjvMz0
関数の方で探してましたorz

344 :名無しさん@お腹いっぱい。:2005/12/22(木) 23:26:11 ID:1UNMjvMz0
もしかして16進数←→10進数もあったりする?

345 :名無しさん@お腹いっぱい。:2005/12/23(金) 00:08:10 ID:6+7NW5wO0
>>344
ある。探し方が下手なだけだと思う。

346 :名無しさん@お腹いっぱい。:2005/12/23(金) 00:24:43 ID:HDLrFyls0
>>345
ありました
SetFormatですね

今度一からリファレンスを見直そうかな・・・・

347 :名無しさん@お腹いっぱい。:2005/12/23(金) 17:22:00 ID:6+7NW5wO0
一部のソフトのバグが原因(だと思われる)でフォーカスの横取りがうまくされなくなる問題の解決のために、
フォーカスを奪いたいソフトを実行させる前に以下のコマンドを実行するようにしてみた。

GetFocus:
RegRead, fore, REG_DWORD, HKCU, Control Panel\Desktop, ForegroundLockTimeout
IfNotEqual, fore, 0
{
RegWrite, REG_DWORD, HKCU, Control Panel\Desktop, ForegroundLockTimeout, 0
Sleep, 500;反映待ち
}
return

しかし、実際にレジストリの方は書きかわっているものの、きちんとフォーカスを奪ってくれず、
TweakUIで該当の項目を見てもチェックが付いたまま…もちろんTweakUIでチェックを外せば奪うようになる。
他に何をすればAHKでも反映されるようになるんかな。


348 :名無しさん@お腹いっぱい。:2005/12/23(金) 19:43:26 ID:JrNibnEe0
あーなんか昔クリップボード拡張ソフトのスレでそれっぽいの見たような記憶が
今ちと忙しくて過去ログ探してる暇がないが
Charu3起動するとフォーカス関係がおかしくなる奴

349 :347:2005/12/23(金) 21:18:22 ID:6+7NW5wO0
>>348
そのスレ自体は知っているんだけど、やっぱり原因となってるソフトを特定して、
作者に直してもらうほか無いのかなぁ。

350 :名無しさん@お腹いっぱい。:2005/12/23(金) 22:08:11 ID:4kg8U7Th0
>>347
その手の設定はレジストリ変えた後に「再設定したよ」ってOSに知らせないといけないのかも
確かそんなAPIがあったはず

351 :名無しさん@お腹いっぱい。:2005/12/24(土) 00:50:55 ID:qmuEaf2G0
最強クリップボード拡張ソフトはこれだ!Part5
http://pc8.2ch.net/test/read.cgi/win/1085675606/371-383
CharuシリーズサポートBBSの下のほう
XPでフォアグラウンドアクティブできなくなるのですが…
ttp://8537.teacup.com/keiziweb/bbs?OF=120&BD=9&CH=5

自分このときCharuの作者さんに報告したものだけど
問題部のソース晒して貰った上でバグ部分を特定してるので
>347氏のも同じ現象ならソフトの作者さんに報告すれば直して貰える確率は高いと思う
常駐物もいったん全部外して、常用ソフト一個ずつ起動終了ごとにTweakUIで状態確認、で
原因のソフトは特定できると思うよ。ちと手間だけど

352 :名無しさん@お腹いっぱい。:2005/12/29(木) 13:16:24 ID:kRbce90V0
age

353 :347:2006/01/02(月) 13:16:01 ID:ECSj1xL10
状況報告
Tweak UIの挙動をSpy++で確認。レジストリ変更後、↓を確認。
WM_SETTINGCHANGE wFlag:2001 pszMetrics:0006F4B4
ということで、スクリプトに↓を追加。
SendMessage, 0x1A, 0x0002001, 0x0006F4B4,, ahk_id 0xFFFF

これで試したところ、以下のような良く分からん状態に。
  Tweak UIでチェックをつけてOKを押す 該当レジストリが200000になる
↓AHK実行 レジストリが0になる
↓フォーカスをきちんと奪うようになる
↓Tweak UI起動して確認するとチェックが付いたまま レジストリの方は0になっている
↓そのままOKを押す
↓AHK実行 レジストリは0のまま
↓フォーカスを奪えない Tweak UIの方もチェックが付いたまま

↓のようにいろいろ変えてみても効果無し。
SendMessage, 0x1A, 2001, 0x0006F4B4,, ahk_id 0xFFFF
SendMessage, 0x1A, 0x0002001, "Control Panel\Desktop",, ahk_id 0xFFFF
SendMessage, 0x1A, 0x0002001, "HKEY_CURRENT_USER\Control Panel\Desktop",, ahk_id 0xFFFF
SendMessage, 0x1A, 0, 0x0006F4B4,, ahk_id 0xFFFF
SendMessage, 0x1A, 0, 0,, ahk_id 0xFFFF

354 :347:2006/01/02(月) 13:23:01 ID:ECSj1xL10
続き

参考にしたのは↓のサイト
ttp://www.sxlist.com/techref/os/win/api/win32/mess/src/msg27_28.htm

何か根本的に間違っているのかそれとも足りないのか…
ちなみに原因となってるソフトを探してみるものの、問題が起こるときは何度でも起きるし、
起きないときは全然で、再現性が無くて困り中。
何かSyleraが怪しい気もするけど確証が取れず。複数ソフトが原因だったらお手上げっす。

長文スマンね。

355 :名無しさん@お腹いっぱい。:2006/01/03(火) 07:25:06 ID:jyT5EMJg0
JoeのようなAltTab代替アプリを実現しようと思ったんですが、
アイコンの取得の仕方がわかりません。

インスタンスハンドルを取得できればWinAPIを使ってできそうなんですがうまく取得できず。

356 :名無しさん@お腹いっぱい。:2006/01/03(火) 12:14:30 ID:Tw0iMMgh0
HDD漁ったら昔作ったアイコン存在チェックソース出てきた。時間ないので未検証でコピペするお

;WNDCLASSEX 構造体にセットされたアイコン
GCL_HICON := DllCall("GetClassLong", Uint,hWnd, Int,-14) ;GCL_HICON
GCL_HICONSM := DllCall("GetClassLong", Uint,hWnd, Int,-34) ;GCL_HICONSM

;WM_SETICON メッセージによってセットされたアイコンを取得
SendMessage,0x007F,0,0,,ahk_id %hWnd% ;ICON_SMALL
ICON_SMALL := ErrorLevel
SendMessage,0x007F,1,0,,ahk_id %hWnd% ;ICON_BIG
ICON_BIG := ErrorLevel
SendMessage,0x007F,2,0,,ahk_id %hWnd% ;ICON_SMALL2(XP)
ICON_SMALL2 := ErrorLevel
OutputDebug, GCL_HICON=%GCL_HICON% GCL_HICONSM=%GCL_HICONSM% ICON_BIG=%ICON_BIG% ICON_SMALL=%ICON_SMALL% ICON_SMALL2=%ICON_SMALL2%

357 :355:2006/01/03(火) 17:40:06 ID:jyT5EMJg0
>>356
ありがとうございます。
これでアイコンハンドルは取得できました。

ListViewのGuiのIL_Add()ではアイコンのファイル名が必要なんですが
ハンドルからファイル名は取得できるのでしょうか?

358 :名無しさん@お腹いっぱい。:2006/01/03(火) 21:17:52 ID:Tw0iMMgh0
取得したアイコンハンドラを元にGUIへ反映する方法はわからんです。
(自分はウィンドウのタイトルバー左上にアイコンがあるのかどうか調べるためだけに
アイコンハンドル取得してみてるだけなので)
APIでどうにかできそうとのことだったので、むしろフィードバックを期待してたんですが

単純にexeのアイコンが表示できればいいのなら、管理人さんの
プロセスIDを指定して実行ファイルパスを得る関数で .exeフルパス取得して
セットしてやればいいと思われ

http://cgi19.plala.or.jp/lukewarm/news/2005_05.html#14

359 :355:2006/01/03(火) 21:27:09 ID:jyT5EMJg0
>>358
その管理人さんの関数で解決できそうです。

ありがとうござました。

360 :355:2006/01/03(火) 21:45:14 ID:jyT5EMJg0
最後のほうの
DllCall("psapi\CloseProcess","Int",hProcess)
のErrorLevelが-4になってしまうんですが大丈夫なんでしょうか?


361 :名無しさん@お腹いっぱい。:2006/01/04(水) 15:29:26 ID:SbxpZ6KF0
ホイールの挙動がなんかおかしいです

SetTimer,tip,1000
return

tip:
GetKeyState,ks,WheelDown,P
ToolTip,%ks%
return

で調べると、一度でもWheelDownをするとそのあとマウスから手を離しても
ずっとksの値はDのままになってしまいます。


362 :名無しさん@お腹いっぱい。:2006/01/04(水) 15:49:26 ID:x6p42A6B0
>>360
これはCloseHandle()の間違いらしい。
DllCall("CloseHandle", "Int", hProcess)

363 :名無しさん@お腹いっぱい。:2006/01/04(水) 16:55:55 ID:95AmdYfp0
>361
ホイールの回転はホイール押下みたいなUP/DOWNが有るイベントじゃないから
状態を取ること自体間違ってる気がする


364 :361:2006/01/04(水) 17:01:50 ID:SbxpZ6KF0
>>363
ホイールが回転されるまで待機、ってことがやりたいんですが
無理ですか?

365 :名無しさん@お腹いっぱい。:2006/01/04(水) 19:47:56 ID:95AmdYfp0
単にWheelDown::に処理書いてやって,フラグ立てるなり終了するなりすればいいんでは


366 :361:2006/01/04(水) 19:50:45 ID:SbxpZ6KF0
>>365
& WheelDown::の最中で待機したかったんですが
あきらめて他の仕様にすることにします

367 :名無しさん@お腹いっぱい。:2006/01/05(木) 01:16:03 ID:YlkDRsZz0
フォルダのパスを引数として渡し、
「フォルダの参照」ダイアログのツリーを操作して
引数のフォルダを選択させる、ということをしたいのですが、
どのようにすればいいのでしょうか?

DialogSetやDialogHandlerが使えないソフトにも
自前で対応させようとしているのですが、
「フォルダの参照」ダイアログがどうにもできず困っています。
助言をいただきたいです。

368 :355:2006/01/05(木) 01:17:18 ID:n7Jr+2qn0
>>362
亀レスすみません
エラー出なくなりました。ありがとうございます。

369 :名無しさん@お腹いっぱい。:2006/01/05(木) 01:40:30 ID:8eGMClaI0
>>367
「フォルダの参照」の場合、パスをセットする場所がないので
ルート(マイコンピュータ)からインクリメンタルサーチで1階層ごとに
フォルダ選択していくしかないのでは?
DialogHandlerは随分とうまいことやってるけど、多分100%の無理そうな気がする。

370 :名無しさん@お腹いっぱい。:2006/01/05(木) 01:41:29 ID:8eGMClaI0
×多分100%の無理そうな気がする。
○多分100%の精度での実現は無理そうな気がする。

371 :名無しさん@お腹いっぱい。:2006/01/05(木) 10:54:01 ID:mE3SDKUy0
一応フォルダの参照ダイアログの選択フォルダを指定する
方法はあるが(>>369のような不確かな方法ではない)
AutoHotKeyでは無理っぽい気がする。
とりあえずSHBrowseForFolder SHGetPathFromIDList
あたりでググってみるといい。この方法は環境に問題がなければ
精度はほぼ100%だよ。(完全に100%かもしれないが、
言い切れるほどの確認はしてないので)

372 :367:2006/01/05(木) 15:29:16 ID:YlkDRsZz0
>>369 >>371
レスありがとうございます。どうも難しいようですね。
「フォルダの参照」の場合はDialogHandlerに丸投げすることにしました。

373 :名無しさん@お腹いっぱい。:2006/01/07(土) 16:48:04 ID:g9rnGIxl0
特定のアプリにのみ有効にすることはできますか?
また、マウスジェスチャ(←→ならESCなど)を指定することはできますか?

374 :名無しさん@お腹いっぱい。:2006/01/07(土) 17:08:20 ID:E/GD5dod0
そのように書けばできますYO!

375 :名無しさん@お腹いっぱい。:2006/01/09(月) 15:47:48 ID:OvYu84cO0
>>347
AutoHotkeyユーザーではありませんが、347さんと同じような現象で困っていてこのスレにたどり着きました。
tuneappスレ(Windows2000/XP チューンナップ専用スレ Part17)にも書き込んでます。
以前はこんな現象は起こらなかったので困ってます。
常駐ソフト切ったり、バージョンを変えたり(上げたり落としたり)しても同じく原因がわからないんですよね・・・
レジストリを書き換えても(tuneappでも可)、TweakUIの「アプリケーションにフォーカスを横取りさせない」のチェックボックスに変化無し。
チェックボックスを外してもいつの間にかチェック状態に戻ってしまう・・・
Windows2000を普段使ってまして、WindowsXPだと起きていないので
Windows2000の何かが原因なんですかね。
ネットで調べたらWin32 APIてのが関係してるかもしれないようですが、お手上げ状態です。

376 :名無しさん@お腹いっぱい。:2006/01/09(月) 17:38:31 ID:r9CSfa8s0
>>347
今更だが、Regmon辺りで書き換えてるアプリ探すのが一番かと
ForegroundLockTimeoutでフィルタリングして放置しておけばそのうち引っかかると思うぞ

377 :347:2006/01/09(月) 21:51:22 ID:gCdov2U80
>>376
残念ながらそれはもう試してた。Regmonでは引っかからなかったよ。
Tweak UI等での正規の方法で変更する場合は関知してくれるけど、このバグの場合は無理らしい。
いっそ、この問題が起こる人用のスレでも立てて、全使用ソフトを書き連ねる→共通するソフトが容疑者
って方法でも取らないと無理かなぁ…ちなみにOSはXP SP2です。

とりあえず原因が除去できないならってことで、>>347で書いたものの代わりにこんな感じで無理矢理対処。
SendMessage等を用いたもっとスマートなやり方を誰か分かれば頼む。

TweakFocus:
Run, TWEAKUI.EXE
WinWait, Tweak UI
ControlSend, SysTreeView321, {Down}{Right 2}, Tweak UI
Sleep, 50
Control, UnCheck, ,Button2, Tweak UI
Sleep, 50
ControlClick, Button6, Tweak UI
return

378 :名無しさん@お腹いっぱい。:2006/01/09(月) 23:37:50 ID:r9CSfa8s0
>>377
Regmonでダメだったのか
古典的なwin.iniのCompatibility95セッションに追加する手法は?

379 :347:2006/01/10(火) 00:20:10 ID:YKl99lMm0
>>378
こんな簡単な解決方法があったとは…
根本的な解決になったわけではないけど、実用上は何の問題もなし。
激サンクス!

380 :名無しさん@お腹いっぱい。:2006/01/10(火) 12:26:18 ID:edhaETY50
今更かもしれませんが・・・前スレ749さん

hModule := DllCall("LoadLibrary", str, "DengakuDLL.dll")

p := DllCall("DengakuDLL.dll\TOHANKAKU", "str", "01234567890", "str")
msgbox, %p%
DllCall("lstrcpy", "str",str1, "str", p)
msgbox, %str1%

DllCall("FreeLibrary", UInt, hModule)

で、動きました。処理途中で解放されていたのが問題だったぽいですね。
すでに解決してたらすいません。

381 :名無しさん@お腹いっぱい。:2006/01/10(火) 21:55:48 ID:h3Yb+cm+0
DllCall("SetCaretBlinkTime",UInt,100)
とやってもすぐに反映されず、何かアクションを起こさなければ速度はそのままです。
何か足りないんでしょうか?


382 :前スレ749:2006/01/11(水) 01:30:09 ID:95IZTI+k0
>>380
あ! LoadLibraryで確保すればOKだったのか。
管理人氏がBRegExp.dll でやってたのは知ってたけど再検証はしてなかったです。
(自分でも忘れてた) 秀マクロ用のDLLが使えるようになるのは結構大きいかも。
教えてくれてアリガトン

てことは、AHKでも田楽DLLのSETVER/GETVERでグローバル変数が扱えるのかな
iniとか経由なしでオンメモリ上で秀マクロや他のアプリとデータを共有化できるのか
うはw夢がひろがりんぐwww


383 :名無しさん@お腹いっぱい。:2006/01/11(水) 04:51:40 ID:tIP7xIJe0
起動するとそのままタスクトレイに入るソフトがあるんですが、
これをScrollLockで起動・終了したいんですね。
で、こんな風に書いてみたんですが……

~ScrollLock::
Process, Exist, task.exe
if ErrorLevel = 0
Run, task.exe
else
WinClose, ahk_pid %ErrorLevel%
return

これだとそのソフトの終了ができないんです。
ここの「WinClose」が「Process, Close」にすれば「強制終了」はできるんですが、
強制終了でなくふつうの終了がしたいんです……。ソフトの挙動が変わってしまうので。

タスクトレイアイコンを右クリックでxすると終了できるので、
この「WinClose」の行を「Send, #b & AppsKey & x」とかやってみたんですが、
別のアイコンにフォーカスが当たってしまい、、、どうにもうまくいきません。教えてください。

384 :名無しさん@お腹いっぱい。:2006/01/11(水) 05:02:56 ID:XYQfQQRG0
トレイメニューの「閉じる」のコマンド番号を調べておいてWM_COMMANDで送ってやればいいような

385 :名無しさん@お腹いっぱい。:2006/01/11(水) 07:58:09 ID:95IZTI+k0
挙動の本質とは関係ないかもしれないけど、Locks系の押下情報は
OSが返してくる値がおかしいからホットキーに割り当てるのは控えたほうが良いと思われ

386 :名無しさん@お腹いっぱい。:2006/01/12(木) 01:07:46 ID:rmvCVckQ0
なまず日記すげえな。

387 :383:2006/01/12(木) 03:13:12 ID:HWiUEJ9g0
助言ありがとうございました。

Send, #b{APPSKEY}x
これでいけました。
これ「ソフトがタスクトレイの左端にある」ことを決めてかかっているのでよくないですが、
紹介いただいた「コマンド番号を調べる」方法を知らないので……(^^;
ぐぐって見て、
ResouceHackerでできるという話があったのでやってみたんですが、
それらしいエントリが見つからず……断念。

388 :名無しさん@お腹いっぱい。:2006/01/12(木) 03:30:15 ID:5XY6ilOR0
Direct Command
ttp://members.jcom.home.ne.jp/shinonon/dircmd.html

終了命令はこれで調べられる可能性があるよ
SendCmdをRunさせてもいいし、
AHK内でも処理できる。

389 :383:2006/01/12(木) 21:12:12 ID:HWiUEJ9g0
ありがとうございます。
ただ、流行らせるページで紹介されている方法も含め、ソフトが特殊なのかうまくいきませんでした……。
件のソフトはWorkCheckerという、キーの押下回数をカウントするソフトなんですが(^^;
終了時にCSV形式でファイルを出力するもので、強制終了するとこれをやってくれないんですよ。

「終了」のほうは、とりあえず何とかなっているのでこれでいいとして、
もう一つうまく行かないことがありますので、よろしければお願いします。

Media Player Classicを「フルスクリーン」にしているときに、
383で挙げているスクリプトを走らせると、MPCのフルスクリーン化が解除されてしまうんですね。
これが「ウィンドウの最大化」なら、特に解除されることもないんですが……。

問題の部分はこんな感じになってます。

WinGetActiveTitle, player
Send, #b{APPSKEY}x
WinActivate, %player%

このSendをした際に、
タスクトレイにフォーカスが移ってタスクバーが出たままになるのを何とかしたくて
このような処理をしてみたんですが、先にも書いたとおり、
最大化したウィンドウでは期待どおりに動くものの、全画面化した場合はうまくいきません。
WinGetActiveTitleが、タイトルの取得のためにウィンドウ表示に戻してしまうんでしょうか……。

ちなみに、playerにはMPCの決め打ちができません。

390 :名無しさん@お腹いっぱい。:2006/01/12(木) 21:23:04 ID:HWiUEJ9g0
あ、ちなみに、MPC以外でも同じ状態になります。

それと、
WinGet, player, PID

WinActivate, ahk_pid %player%
とか、PIDじゃなくてIDだとかの場合も試しましたが、これもうまくいかず。

391 :名無しさん@お腹いっぱい。:2006/01/13(金) 01:26:59 ID:+pozkCUx0
今プログレスバーを半透明にしようとしているのですが、期待した表示になりません。

Progress,cwFFFFFF ,,name,time
winset,TransColor ,FFFFFF 50,time
return

esc::exitapp

ウィンドウを半透明にして文字とバーは透過なしにしたいのですが、出来ないのでしょうか?
これだとウィンドウが完全な透明、文字とバーが半透明になります。
Trans ,で設定するとウィンドウは半透明なのですが文字も半透明に。。トホホ。

392 :名無しさん@お腹いっぱい。:2006/01/13(金) 12:15:47 ID:5XB+c2x50
2枚重ね

393 :391:2006/01/13(金) 17:00:20 ID:dZX44Wpz0
>>392
ありがとう!発想を変えれば良かったんですね。希望の動作になったので報告までにはっときます。
オプションでツールウィンドウを指定してるのは、タスクバーに表示させたくないためです。

gui,add,text
Gui, Color,000000
gui,+ToolWindow +AlwaysOnTop +OwnDialogs -border
gui,show,w300 h200,back
winset,Trans, 50,back

Progress,cwC8D0D4 ctFFFFFF B,,name,time
Progress,50,,,time
winset,ExStyle,+0x00000080,time
winset,TransColor ,C8D0D4 255,time
return

esc::exitapp

394 :381:2006/01/14(土) 21:15:58 ID:6j6GF4sd0
いまだ解決せず。
キャレットの速度変更した後、Send,{Left}{Right}とか無理やりアクション起こすと
色々不具合がでるソフトもあるし・・・
SmartCaretはどうやってるんだろう。

395 :383:2006/01/17(火) 10:21:04 ID:aCgAJjPo0
一段落したのでまとめをさせてください。
したかったのは、プログラム全画面化時のキー押下回数のカウントでした。
カウントには>389で挙げているWorkCheckerというソフトを利用することにしていました。

はじめ>383にてScrollLockを使おうとしていたのは、
全画面化時でもキーボードインジケータによって動作中かどうかがわかるためです。
これによって挙動がおかしくなったかどうかはわかりませんが、>385さんの助言を受け、
起動キーを変更して(NumpadSubに)、動作情報はツールチップに表示させるようにしました。

いろいろ調べてみましたが、WorkCheckerのメッセージによる終了のさせ方がわからず、
タスクトレイにフォーカスを当ててキーをSendするというムリヤリな解決法をとりました。
その後WorkCheckerの使用をやめ、AutoHotkeyスクリプト内部の処理でカウントすることに。
これでスクリプト終了の問題は一応決着がつきました。

が、その数値をファイルに書きこむ際、エントリ名を取得しようとInputBoxを出すと、
>389と同じ状況になり、全画面化が解除されてしまいます。
最大化でなく全画面化なので、WinMaximizeでも状態を復帰させることができません。
いろいろやってみたところ、WinGetActiveTitleとかWinActivateには問題がなく、
プログラムの全画面化が解除されるのは、タスクトレイやInputBoxなど
他のウィンドウにフォーカスが移ったときであることを突き止めました。
また、この現象は、プログラムの最大化時や、
IEのキオスクモード(F11を押すとできる一種の全画面化)では発生しないこともわかりました。

以上です。
全画面化の解除問題は解決してないのですが、うまくいきそうにないので諦めることにしました。
プログラムはPerlのワンライナー程度のスクリプト処理をちょっとかじっていただけ、
Windowsプログラミング経験なしのド素人なので、
コメント行やエラー処理も含めて100行を越えるスクリプトを書いただけでいっぱいいっぱいです(^^;
皆さん、助言どうもありがとうございました。

396 :名無しさん@お腹いっぱい。:2006/01/17(火) 13:41:14 ID:aCgAJjPo0
まとめてみて、もしや、と思って試してみました。

全画面化中にAlt+Tabをしてみると、AHKスクリプトでの全画面化解除の挙動と一緒でした。
つまり、AHKスクリプト中に全画面化解除されるプログラムは、Alt+Tabでも解除され、
AHKスクリプト中に解除されないプログラムは、Alt+Tabでも解除されませんでした。
(最大化した場合や、IEのキオスクモード)
この問題の発生はAutoHotkeyに直接関係がなかったようです。お騒がせしました。

397 :名無しさん@お腹いっぱい。:2006/01/17(火) 17:29:06 ID:kObrtqt+0
全画面化解除されても、復帰させれば問題ないのなら、
全画面化解除されるアプリ毎に全画面化に必要な操作をAHKにさせれば良いんでねーの?
数が多いと嫌になるかもしれんが、大抵全画面化のホットキーは決まってるし。

398 :名無しさん@お腹いっぱい。:2006/01/22(日) 12:49:22 ID:2qAgcpH90
時間の計算で難儀してます....
時刻t1〜時刻t2間の時間T[s]を求める際に、
T := t2 - t1
みたいな書き方はできるんですが、
時刻t2と時間T[s]から、
t1 := t2 - T
のような式だとうまくいきません。
たとえば、ここでT=300[s](5分)として計算すると、
t2を時間としてでなく、数値として解釈するようで、T=3:00(3分)として計算されてしまいます。
t1 := t2 - T, Second
とやると、今度は「TがYYYYMMDDHH24MISSのフォーマットではない」とエラーになるし、
EnvSubのマニュアルを見ていてもいまいちやり方がわかりません....

399 :名無しさん@お腹いっぱい。:2006/01/22(日) 15:46:10 ID:Yqz0MIUn0
EnvAddで-300秒を足すんじゃなかったけ?

400 :名無しさん@お腹いっぱい。:2006/01/22(日) 16:19:08 ID:1N3K73ci0
時間計算はEnvAddとEnvSubの扱いの違いに気がつかないとハマるな
過去スレでも何度か話題になってるから調べてみ

401 :名無しさん@お腹いっぱい。:2006/01/22(日) 17:01:54 ID:2qAgcpH90
ほ、ほんとだ...
>399,400 レスありがとうございました。
EnvAddのマニュアルにも、たしかにそれらしい文言がありますね。
でもこんなのわかんないよぅ...

402 :名無しさん@お腹いっぱい。:2006/01/22(日) 17:12:45 ID:v9Q+2/T40
タイトルバーで中クリックされたら処理を行うってこと(QuickDirみたいなもの)がやりたいんだけど、
どんな感じでやれば良いんでしょーか。とりあえず↓のようにやってみたけど、
SendMessageの使い方が間違ってるのか、うまくいかないっす。(ErrorLevelがFAILになる)
~MButton::
MouseGetPos, x, y, id
SetFormat, integer, H
x += 0
y += 0
xy := x + y * 0x10000
SendMessage, 0x84, 0, %xy%, ahk_id %id%
If ( ErrorLevel == 2 )
{
;ここに処理を入れる
}
return

403 :名無しさん@お腹いっぱい。:2006/01/22(日) 17:52:51 ID:69RhDVUi0
1.0.40.12から1.0.41にバージョンアップしたら、
  RWin up::Return
が効かなくなってしまいました。

AutoHotkeyを常駐させ、右Windowsキーを
  >#i::Send,{Up}
  >#k::Send,{Down}
のように使っているのですが、Windowsキーを押して
そのままはなすとスタートメニューがでるのがいやで
冒頭のものを一緒に書いていました。
ところが1.0.41ではスタートメニューがでてしまいます。

解決する方法があれば教えてください。

404 :名無しさん@お腹いっぱい。:2006/01/22(日) 17:54:27 ID:1N3K73ci0
0x84 て何だっけ?
値からメッセージ名探すの大変なんで質問する時はコメントとか入れてクレ


405 :402:2006/01/22(日) 18:30:09 ID:v9Q+2/T40
>>404
スイマセン。
コメント入れるとこんな感じです。
~MButton::
MouseGetPos, x, y, id ;カーソル下の座標とid取得
SetFormat, integer, H ;座標を16進数に変換
x += 0
y += 0
xy := x + y * 0x10000 ;座標を上位ワードと下位ワードにまとめる
SendMessage, 0x84, 0, %xy%, ahk_id %id% ;カーソル下のウィンドウにWM_NCHITTESTを送る
If ( ErrorLevel == 2 ) ;タイトルバーならば処理を実行
{
;ここに処理を入れる
}
return

メッセージに関してはここを参考にしました。
ttp://www.winapi-database.com/Message/WM/WM_NCHITTEST.html

406 :名無しさん@お腹いっぱい。:2006/01/22(日) 19:02:30 ID:GjGnwmrQ0
>>403
1.0.41 から流行らせるページの 2 stroke key も動かなくなっちゃいましたね。
本体のバグだと思うんで、本家の更新待ちです。

407 :406:2006/01/22(日) 20:00:46 ID:GjGnwmrQ0
すいません。 Ctrl key double tap の方でした…。

408 :名無しさん@お腹いっぱい。:2006/01/22(日) 21:39:01 ID:1N3K73ci0
>>405
とりあえず2つほど気がついた点。ただこれでも期待通りの値は取れてないが。

・SendMessage はウィンドウ指定より先にControlを指定する。(FAILの原因)
・MouseGetPosのX,Y座標はアクティブウィンドウの左上からの相対座標で取得される。
 (CoordMode,Mouse,Screenを実行してない場合)
 つかこのWM_NCHITTESTって「非クライアント領域のどの部分でマウスが操作されたか調べる」って
 なってるんだけど、いいのだろうか

~MButton::
MouseGetPos, x, y, id,ctl ;カーソル下の座標とid取得
xy := x + y * 0x10000 ;座標を上位ワードと下位ワードにまとめる
SendMessage, 0x84, 0, %xy%, ,A
MsgBox, ErrorLevel=%ErrorLevel%
return

自分もキャプション位置を取得するのにかなり面倒な関数組んでるので
こんな簡単にまとめられるならその方が有り難いんだがね


409 :402:2006/01/22(日) 23:52:19 ID:v9Q+2/T40
>>408
座標自体は16進変換しなくても良かったんですね。
自分もその座標の原点をどこにすればよいのか分からなかったので、とりあえずそのままやってみた次第です。
どうやら、Delphi製もしくはWTLを用いて作られたソフトではうまくいくようです。

>自分もキャプション位置を取得するのにかなり面倒な関数組んでるので
どのようなロジックで実装されているんでしょうか。

410 :名無しさん@お腹いっぱい。:2006/01/23(月) 03:04:13 ID:zfPva1iV0
>>409
ちと長いんで自ブログのほうに上げますた。無駄に助長だが一応コピペで当座は動くと思う
ttp://d.hatena.ne.jp/eamat/20060123


411 :403:2006/01/23(月) 22:02:12 ID:mqTpMs440
>>406
そうなんですか。
では次のバージョンでの改善を望むことにします。

412 :402:2006/01/24(火) 01:16:40 ID:JUUu5mZd0
>>410
ありがとうございます。期待通りの動きとなりました。
ご苦労の程お察しします。
自分はSendMessageの挙動はいまいち理解できていなく、
根本的な解決法を考えられそうにないので、誰か識者の方ヘルプ^^

413 :名無しさん@お腹いっぱい。:2006/01/24(火) 11:29:31 ID:hmUrV7Tv0
winキーを単体で押したときだけ無効にするにはどう設定すればいいんでしょうか
win+Dとかの操作は有効にしたいんですけど

LWIN::Return

とすると全部無効になってしまいます。

414 :名無しさん@お腹いっぱい。:2006/01/24(火) 12:41:36 ID:ArnUgYQ30
質問前にせめて10レス前ぐらいは読みたまえよ

415 :413:2006/01/24(火) 16:50:53 ID:hmUrV7Tv0
1.0.40.12 で

LWIN up::Return

としても全部無効になってしまいます
どうしたらいいんでしょうか



416 :名無しさん@お腹いっぱい。:2006/01/24(火) 23:18:38 ID:Kbo1n5/E0
>>412
ttp://cgi19.plala.or.jp/lukewarm/news/2006_01.html#23

417 :名無しさん@お腹いっぱい。:2006/01/24(火) 23:30:27 ID:duKuEjYk0
>>413
LWIN::Return
LWIN & LWIN::Return;二つ目のLWIN部分は何でも良い。


裏技的だが・・v1.0.40.05ではこれで動いた。他verではどうなるか知らん。

418 :名無しさん@お腹いっぱい。:2006/01/24(火) 23:35:41 ID:duKuEjYk0
>>416
あぁ、なるほど、SendMessage自体を直に呼べばいいのか。目から鱗。
そうだよなぁ・・・気が付かなかったなぁ・・

419 :名無しさん@お腹いっぱい。:2006/01/25(水) 00:09:26 ID:1ITNklYD0
>>416
ぬおお、コンパクトだ。さすが

420 :名無しさん@お腹いっぱい。:2006/01/25(水) 00:37:47 ID:whVXuEi20
ぬるたん

                  ∩
                  ( ⌒)      ∩_ _ グッジョブ!!
                 /,. ノ      i .,,E)
             / /"      / /"
  _n  グッジョブ!!   / /_∧  ,/ノ'
 ( l    ∧_∧ / /*´∀`)//∧_∧   グッジョブ!!
  \ \ (*´∀`)(      / (*´∀`)     n
   ヽ___ ̄ ̄ ノ ヽ      |  ̄    \    ( E)
     /    /   \    ヽ フ    /ヽ ヽ_//


421 :402:2006/01/25(水) 02:38:42 ID:XjlFS14L0
>>416
(n‘∀‘)ηキテルワー!!
確かにDllCallから使った方が確実ですね。
さり気なくビットシフトなどを使っている辺り、自分との経験?の差を感じます…
改めてお二人に感謝。

422 :名無しさん@お腹いっぱい。:2006/01/25(水) 04:04:49 ID:8YZ6hNpP0
あら・・スクリーン座標にするだけで、AHKのSendMessageでも出来たよ・・・
問題はそこだったか・・

423 :413:2006/01/25(水) 19:22:45 ID:sklEJtBz0
>>417
1.0.41.00 で動きました!
ありがとう

424 :名無しさん@お腹いっぱい。:2006/01/26(木) 00:09:38 ID:NczzL1RK0
RButton & WheelDownにAltTabを割り振りました
特定のアプリだけ、この機能を無効にしたいのですがそれは可能でしょうか
Sendにするとすぐキーを離してしまうし、かといってifで条件分岐したあとにAltTabを置いても機能しません

425 :名無しさん@お腹いっぱい。:2006/01/26(木) 03:33:13 ID:AxRUycRL0
#IfWinActive

426 :名無しさん@お腹いっぱい。:2006/01/27(金) 18:46:53 ID:khUBsNcY0
点呼スレがピンポイントで狙われてるな、何でだろ

427 :名無しさん@お腹いっぱい。:2006/01/27(金) 18:52:03 ID:MkK/HyNo0
NP2のウィンドウに対してだけ急にahkが効かなくなっちゃったんですが
どうすればまた有効になるんでしょうか?

428 :403:2006/01/27(金) 23:27:57 ID:/9813JvU0
>>417
遅ればせながらありがとうございます。
それでうまくいきました。

429 :名無しさん@お腹いっぱい。:2006/01/28(土) 14:18:33 ID:+ZZFrik00
AHKだと、こういうコメントの書き方できませんね。

/*******************************************************************************
* これは、ahkのコメントを確認するためのサンプルです
*******************************************************************************/

これもダメ。

/*******************************************************************************
* これは、ahkのコメントを確認するためのサンプルです
****************************************************************************** */

これならOK。

/*******************************************************************************
* これは、ahkのコメントを確認するためのサンプルです
******************************************************************************
*/

430 :名無しさん@お腹いっぱい。:2006/01/28(土) 14:37:46 ID:9fE5ExNP0
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;       これでいいじゃん          ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

431 :名無しさん@お腹いっぱい。:2006/01/28(土) 15:18:26 ID:M2n6ETLA0
/*
 行頭に無いとコメント終始認識されないよん
*/


432 :名無しさん@お腹いっぱい。:2006/01/28(土) 16:09:27 ID:QgFgpb9I0
ちょこちょこ弄ってたら常駐スクリプトが16KB突破…
Runコマンドで呼び出してるのも含めたら40KB超えてたよ。

AutoHotkeyって自由度高い分、各人がどんな使い方してるか気になる。
自分は無変換、変換、カナ/かなキーを修飾キーとしてキーやコマンド割り当てをするのがメイン。
各ウィンドウ位置の保存とかも簡単だし。
トリプルクリック、クワドロプルクリックでも自由に設定できるのも良いね。
あとは、エディットボックスならどんなソフト上にあるものでも
電卓・検索・辞書・コマンドランチャとして使えるようにしたりとか。

433 :名無しさん@お腹いっぱい。:2006/01/29(日) 22:55:37 ID:g1nyLRt50
各スクリプトの共通項を切り出してインクルードするのって無理だよね?


434 :名無しさん@お腹いっぱい。:2006/01/29(日) 23:08:49 ID:sQBDNXPy0
>>433
具体的に。

435 :名無しさん@お腹いっぱい。:2006/01/29(日) 23:10:30 ID:g1nyLRt50
AHKがインクルードファイルをサポートしてるか否か。
またそれに類する代替機能があるか。

436 :名無しさん@お腹いっぱい。:2006/01/29(日) 23:18:01 ID:sQBDNXPy0
>>435
ttp://lukewarm.s101.xrea.com/commands/_Include.htm

437 :名無しさん@お腹いっぱい。:2006/01/30(月) 00:25:20 ID:jpKlrbYu0
gdiplus.dllで描画出来ないYO!!
GIFとかICONをPictureコントロールで透明色部分を背景透過して表示したいんだが、
うまくいかない・・

Gui, Add, Picture, AltSubmit BackgroundTrans, AAA.ico
Gui, Show

とかやっても透明部分が透過されないYO!!!
ちゃんとgdiplus.dllはAutoHotkey.exeのフォルダに入れてあるのに・・

へるぷみー><;
Win2Ksp4 Ahk1.0.41.00

438 :名無しさん@お腹いっぱい。:2006/01/30(月) 01:41:27 ID:uhBVy+7t0
>>437
dllが認識されてないとかかな。
system32ディレクトリに置いてみるとか、regsvr32で登録してみるとか、パス通すとかやっても駄目だった?

439 :名無しさん@お腹いっぱい。:2006/01/30(月) 15:20:34 ID:uhBVy+7t0
Run/RunWaitコマンドでコンソールアプリケーションに引数を与えて実行し、
標準出力を得たいんだけど、とりあえず直接標準出力を得るのは無理っぽいので、
ファイルにリダイレクトし、FileReadLineで読み込む方法をとることにした。

Run, %comspec% /c test.exe "引数" > %A_ScriptDir%\test.dat

んで、↑のようにやっても、「 > %A_ScriptDir%\test.dat」部分まで
test.exeの引数として認識されてしまうらしく、うまくいかない。
多分AHKは関係ないと思うんだけど、解決策求む。

440 :名無しさん@お腹いっぱい。:2006/01/30(月) 22:16:04 ID:llgn8y2u0
RunWait は試した?

441 :439@携帯:2006/01/30(月) 22:46:29 ID:Spq+eLJkO
>>440
YES
そもそもtest.exeに正しい値が渡っていないのであんまり関係ない感じ。
cmd.exeを経由しなくてもダメでした。
普通にコンソールで、
test.exe 引数 > test.dat
とやる分にはうまく行くんだけど…

442 :名無しさん@お腹いっぱい。:2006/01/30(月) 23:57:09 ID:LkEIKve40
うちでもうまく行くのと行かないのがあった気が。
上手く行かないの早々にあきらめて捨てちゃったんでもう憶えてないけど。

443 :名無しさん@お腹いっぱい。:2006/01/31(火) 02:44:23 ID:cbKaLT0a0
なんかダブルクォートをAHKで処理してる感じ
パラメータに日本語とか使ってない?


444 :439:2006/01/31(火) 03:38:14 ID:iIRAafqH0
>>443
g_calcっていう引数として式を与えると、Google電卓を使った結果を出力するソフトで、
引数としては、1+2*4とか、sin(3.14)のような1バイト文字しか使ってないっす。
ttp://www.vector.co.jp/soft/win95/net/se337404.html

…結局面倒なんで、このソフトと同等の機能を持つAHKスクリプトを作って対処してしまいました。
簡単なエラー処理入れても5行程度で済むのね。
なので、自己解決したと言えばしたんだけど、せっかくだから、AHKで標準出力を確実に取得する方法を
後学のためにも知っておきたい。

445 :名無しさん@お腹いっぱい。:2006/01/31(火) 11:20:44 ID:333EyHKl0
てst

446 :名無しさん@お腹いっぱい。:2006/01/31(火) 18:20:05 ID:61oRgPKa0
ニーツオルグ見た?

447 :名無しさん@お腹いっぱい。:2006/01/31(火) 18:28:13 ID:R4U/vQRD0
あそこトップがでかいんだもん。

448 :391:2006/02/01(水) 01:02:52 ID:lbQsX6480
ttp://www.vector.co.jp/soft/win95/net/se269471.html
コマンドライン型のメール送信ソフトなんだがAHKと組み合わせるとおもしろいな。
携帯にメール送るのに便利だわ。

449 :名無しさん@お腹いっぱい。:2006/02/01(水) 01:04:48 ID:lbQsX6480
名前消し忘れてた。はずかし。。。。

450 :名無しさん@お腹いっぱい。:2006/02/01(水) 01:10:05 ID:mATxrmSJ0
>>448
詳しく

451 :名無しさん@お腹いっぱい。:2006/02/01(水) 01:15:27 ID:Ll9eZFNT0
POP Out
ttp://www.vector.co.jp/soft/dl/win95/net/se367561.html
これでメールチェックも出来るお(多分)

452 :名無しさん@お腹いっぱい。:2006/02/01(水) 07:17:12 ID:CHFM6H+R0
>>439
ttp://cgi19.plala.or.jp/lukewarm/news/2006_01.html#30

453 :名無しさん@お腹いっぱい。:2006/02/01(水) 13:09:29 ID:vBsLlalo0
ファイルの名前を、現在アクティブになってるウィンドウのタイトルにつけかえる、
というスクリプトを書いてみたんですが……

#SingleInstance IGNORE
^r::
  f0 = test.txt
  FileAppend, test, %f0%
  WinGetActiveTitle, title
  StringReplace, title, title, `:,
  f1 = %title%.txt
  MsgBox, %f1%
  FileCopy, %f0%, %f1%
  MsgBox, %f0%
  return

まめFileのように、タイトルに「パス - まめFile4」のようになっていると、
ファイルがA_WorkingDirにできてくれないので、
「C:\ほにゃらら」となっている部分のコロンを落とすようにしてみたんですね。
その後のMsgBoxでちゃんと落ちているのは確認できたんですが、FileCopyは失敗してしまいます。
どうしたらよいでしょうか。これがダメ文字というやつですか?

454 :名無しさん@お腹いっぱい。:2006/02/01(水) 15:19:14 ID:qvxzsIy40
コロンはパスの一部なので削ったらダメ
タイトルが「パス - まめFile4」ってなってるのが原因なら、
パスじゃない部分「 - まめFile4」を削る。

ファイル名に日本語使ってないならダメ文字は関係ないよ

455 :名無しさん@お腹いっぱい。:2006/02/01(水) 15:25:04 ID:7xayIcgw0
あれだ、たぶん、

たとえば、WorkingDirがC\AHKだったとすると

C\AHKC\ほにゃらら.txtってことになるってことだろ。

456 :名無しさん@お腹いっぱい。:2006/02/01(水) 15:51:43 ID:7xayIcgw0
あ、ちょっと、的ずれてた・・
タダ単に、相対パス指定では\以外で始まる指定は出来ないってだけだた・・
ごめん<>

457 :名無しさん@お腹いっぱい。:2006/02/01(水) 15:54:39 ID:vBsLlalo0
えーと、こんな感じです。
C:\ahk  ←これがWorkingDirで、
C:\home   ←たとえばまめFile4でここを開いているとします。
「C:\ahk\"C:\home\ - まめFile4".txt」みたいな感じにしたいのですが、
;;ほんとはこんな名前のファイルはつくりたくないのです。
;;タイトルにパスが入るソフトの対策のためのテストというわけで。
「C:\home\ - まめFile4.txt」という名前で保存されることになるため、
実際にはC:\homeの下に「- まめFile4.txt」がつくられてしまうんですね。
で、これを回避したい、ということで。
それで、とりあえずコロンを落とすことにしてみたんですが……
あと、「\」も問題だと思ったので、「¥」に変えるとかしてみましたが、うまく行かず。
コロンを残しているとこんな感じになります。
「C:¥home¥ - まめFile4.txt」つまり、「C:」に「¥home¥ - まめFile4.txt」ができちゃう。

458 :名無しさん@お腹いっぱい。:2006/02/01(水) 16:01:53 ID:5DqBaWvy0
119 名前:unnamed.ahk[sage] 投稿日:06/02/01(水) 05:06 ID:???
そんなの聞く必要あるの?
この程度の簡単なものなら、見ればどういう動作するかはすぐにわかるんだから
自分にとって益があるなら使えばいいし、不要なら構わなければいいじゃん。
>>116を誰が何の用途に使おうとどうでもいいだろ。

↑こいつ何様?

459 :名無しさん@お腹いっぱい。:2006/02/01(水) 16:03:04 ID:vBsLlalo0
もう少し補足。
タイトルにパスが入って悪さをしさえしなければ問題がないんです。
で、ウィンドウのタイトルを拾うため、どうしてもファイル名に日本語が入ることは避けられません。
たとえば今このスレはJane Doe Styleで見てるんですが、これで同じ操作をすると、
タイトルが「Jane Doe Style 【ソフトウェア】 - AutoHotkey Theread 2」となっているので、
これ+.txtという名前にしたいわけなんです。
やっぱり難しいんですかね……

460 :名無しさん@お腹いっぱい。:2006/02/01(水) 16:39:10 ID:7xayIcgw0
いや、別に平気でしょ。ただ日本語入るとダメ文字に引っかかる可能性あるのでそこは考慮する必要があるかもしれない。
ただ、さっきの問題とは別だよ。

^r::
WinGetActiveTitle, title
StringReplace, title, title, `:,:
StringReplace, title, title, \,\ , All
msgbox, %title%
FileAppend, , %title%.txt

基本はこんな感じになる。タイトルのファイルがダメ文字無ければ
ワーキングディレクトリにちゃんとファイル出来るよ。

ダメ文字関連はここ参照
ttp://www.tierra.ne.jp/~aki/diary/?date=20060111

461 :名無しさん@お腹いっぱい。:2006/02/01(水) 16:44:07 ID:7xayIcgw0
>タイトルのファイルがダメ文字無ければ
>ワーキングディレクトリにちゃんとファイル出来るよ。
文章めちゃくちゃだな・・(;´Д`)

タイトルにダメ文字含まれてなければ、ちゃんと
ワーキングディレクトリに狙ったとおりの名前のファイル出来るよ。

と言いたかった・・スレ汚れまくりごめん<>

462 :名無しさん@お腹いっぱい。:2006/02/01(水) 17:22:32 ID:qvxzsIy40
>>458
えー、そのスレの 118=120 だけど、ここに持ち込まんでも…
ちなみに大元の書込み人からは補足が入った模様です

463 :名無しさん@お腹いっぱい。:2006/02/01(水) 17:37:40 ID:vBsLlalo0
およよ…? 何かうまくいきますね。
すみません、レスいただいてありがとうございました。

464 :名無しさん@お腹いっぱい。:2006/02/01(水) 17:49:47 ID:7xayIcgw0
SerchStr=\/:,;*?"<>|
ReplaceStr=\/:,;*?”<>|
^r::
WinGetActiveTitle, title
c=0
Loop{
StringMid, s, SerchStr, c+1, 1
if !s
break
StringMid, r, ReplaceStr, c*2+1, 2
StringReplace, title, title, %s%, %r%, All
c++
}
msgbox, %title%
FileAppend, , %title%.txt


>>463
これでファイル名に使えない文字はOKかな・・

465 :名無しさん@お腹いっぱい。:2006/02/01(水) 21:08:57 ID:vBsLlalo0
うを、すばらしい!
そのまま組み込んでみます。重ね重ねありがとうでした<O>ペコリ

466 :448:2006/02/01(水) 21:37:49 ID:+NEdY0Ev0
;メールサーバー
host=mail.xxx.xxx.jp
;表示するメアド
[email protected]
;送り先のメアド
[email protected]

filedelete,temp.txt
fileappend,,temp.txt
sleep,100
run,temp.txt
sleep,1000
winwaitclose,temp.txt
run,smail.exe -h%host% -f%mine% -Ftemp.txt %address%
return

こいつをsmailのフォルダにいれてAHKを起動。ノートパッド開くから本文書いて閉じる。これでメール送信完了です。
自分はiniでアドレス帳作って、メニューで選択、確認ボタン、終了後に送信ログ残すようにしてる。
表示メアドに携帯メアド設定しとけば、携帯料金浮いてなかなかおいしいです。
いちいちメールソフト立ち上げてヘッダ変えてっつーのがめんどくさいもんで。

467 :439:2006/02/02(木) 17:06:47 ID:T+u93vk30
>>452
何かDllCallだらけで、どういう仕組みになってるか良く理解できてないけど、
とりあえずうまく標準出力を取り込めたよ。サンクス。

468 :名無しさん@お腹いっぱい。:2006/02/02(木) 17:09:23 ID:RzOqQmwX0
出てるスクリプトまとめたいんだが 本人はスクリプト理解してないんだよなぁ。
やっぱある程度分かってる人がまとめた方がいいよね。

469 :名無しさん@お腹いっぱい。:2006/02/04(土) 13:22:47 ID:vcsivbfp0
Autohotkeyでは上手くテキストを取得できない
リストヴューのテキストを取得したいんだけど
(Clipyでは取れた。具体的にはnPOPのメール一覧)
コマンドラインでWINDOWとかクラスとかを指定してテキストをコピーしてくれるような
ツール知りませんか。

470 :名無しさん@お腹いっぱい。:2006/02/05(日) 18:35:24 ID:Uooh/wVt0
ネットの一時ファイルのうち、jpgファイルだけ削除したいのですが、

FileDelete, C:\Documents and Settings\ユーザー名\Local Settings\Temporary Internet Files\*jpg

とやっても消えてくれません。
Temporary Internet Filesって、普通じゃ消せないのでしょうか。

471 :名無しさん@お腹いっぱい。:2006/02/05(日) 19:37:58 ID:dd1IDrgA0
実際はその二階層下のフォルダに入っている
その書き方だと直下のJPGしか消さないかも
Temporary Internet Filesを Loopして拡張子が
JPGだったら消すようにしたらいいのではまいか。

472 :名無しさん@お腹いっぱい。:2006/02/05(日) 21:13:30 ID:Uooh/wVt0
>>471
content.ie5以下のフォルダにあるんですね。はじめて知りました。
以下のもので出来ました。感謝。

^#D::
path = C:\Documents and Settings\Admin\Local Settings\Temporary Internet Files\Content.IE5\
Loop, %path%*.jpg , 1 , 1
{
FileDelete, %A_LoopFileFullPath%
}
return

473 :名無しさん@お腹いっぱい。:2006/02/06(月) 09:47:34 ID:XthrTebI0
なまず日記さんがすげーことをやってるぞ

474 :名無しさん@お腹いっぱい。:2006/02/06(月) 10:45:51 ID:wtWU+HDQ0
あそこはすごすぎてワシャついていけんw

475 :名無しさん@お腹いっぱい。:2006/02/06(月) 11:52:47 ID:+ZyBL9kh0
よかった、ついて行けないのは俺だけじゃないんだw

すごすぎて感嘆のため息しか出ません

476 :名無しさん@お腹いっぱい。:2006/02/06(月) 14:24:28 ID:3MY6UK/h0
>>473
IMEの状態表示っていうの試したけど
iniが初期状態だと何も起きないね
iniの仕様調べてまで試す気起きないな

477 :名無しさん@お腹いっぱい。:2006/02/07(火) 15:24:32 ID:cd4qYKRv0
このスクリプトがうまくいかないのはなぜでしょうか。

Home::
SetTitleMatchMode, 2
/*
IfWinExist, メモ帳
{
ControlSend,, ^s
Send, a
}
*/
IfWinExist, xyzzy
{
ControlSend,, ^a
;Send, ^a
MsgBox, %ErrorLevel%
}
return

Homeキーを押したらxyzzyにCtrl+Aを送る、というテスト用に書いたスクリプトなんですが、
アクティブなxyzzyにSendするのはできても、ControlSendはアクティブかどうかに関わらず動いてくれません。
でもErrorLevelは「0」です。
試しにメモ帳で似たようなことをやってみたんですが(上のコメントアウト部分)、こちらはすんなり通りました。

478 :名無しさん@お腹いっぱい。:2006/02/07(火) 16:56:51 ID:I1jBElpS0
Home::
IfWinActive, xyzzy
send, ^a
else
send, {home}
return

479 :名無しさん@お腹いっぱい。:2006/02/07(火) 16:58:56 ID:I1jBElpS0
あ。勘違いしてたすまん・・・なかったことに・・・

480 :名無しさん@お腹いっぱい。:2006/02/07(火) 18:50:22 ID:I1jBElpS0
Home::
IfWinExist, xyzzy
SendMessage, 0x102, 0x1, 0x1E0001 ;lParamは指定しなくても動くみたいだが・・。
return


よくわからん。。これで一応逝けるけど。非アクティブだと反応が鈍い。
識者頼む。

481 :名無しさん@お腹いっぱい。:2006/02/07(火) 18:56:46 ID:I1jBElpS0
書き忘れ0x102はWM_CHARです。

482 :名無しさん@お腹いっぱい。:2006/02/07(火) 19:00:10 ID:fWzsdUXL0
出来ないなxyzzy
クラスの取得出来ないし、何か特殊なんじゃないか?

483 :名無しさん@お腹いっぱい。:2006/02/07(火) 22:59:45 ID:I1jBElpS0
>>480修正
Sendしちゃだめだったみたい。ポストしたらちゃんと動いた。

Home::
IfWinExist, xyzzy
PostMessage, 0x102, 0x1, 0x01E0001
;0x102はWM_CHAR  01E部分はスキャンコード、環境によると思うので適当に修正してくれ。つか、もしかしたらlParamは要らないかも。
return


484 :名無しさん@お腹いっぱい。:2006/02/08(水) 02:59:44 ID:ENi2eeYG0
xyzzyのクラス名は確か " "(スペース)かなんかだったと思う
テキスト描画部は "1" とかそんなん。

485 :名無しさん@お腹いっぱい。:2006/02/08(水) 15:48:29 ID:h/owdFIx0
>483
どうもいろいろ確かめていただいてありがとうございました。

ほとんどスレ違いになっちゃうのでこの書きこみだけにとどめますが、
どうもxyzzyの入力の受け付けはかなり特殊なようです。
他に試した限りでは、
場所に応じてIMEのON/OFFを自動切替する「Dさんの日本語じゃなきゃイヤン」というソフトも、
キーマップを入れ替える「姫踊子草」というソフトも、xyzzy上でだけは挙動不審になりました。
その都度メモ帳でも確かめましたが、こちらでは正常動作してました。
どちらも捨てがたいソフトながら、xyzzyでまともに動かないという一点で泣く泣く使用を諦めました。
ドライバレベルで動作する「窓使いの憂鬱」でもない限り、
入力関係ソフトにとってxyzzyは鬼門のようです。

486 :名無しさん@お腹いっぱい。:2006/02/11(土) 21:24:33 ID:ylI57ddE0
スクリプトのコマンドラインオプションの出現位置を可変にしたいのですが、うまくいきません。

^o::
Loop, %0%
{
;if (%1% = aaa)
if (%A_Index% = aaa)
MsgBox, hit!
}
return

Ctrl+Oで引数表示というサンプルを書いてみました。
はじめ引数に「aaa」だけ指定して、
このコメントアウトしている部分の条件で行なうと、きちんとhitしました。
そこで今度は「bbb aaa」を引数に指定してみて、上記のように書いてみたんですが×。
「%A_Index%」を「%%A_Index%%」としてみたら案の定怒られました……。
引数の出現位置って決まってないとダメなんでしょうか???

487 :名無しさん@お腹いっぱい。:2006/02/12(日) 02:36:41 ID:L6cRhp4J0
すいません、本家のサイトで調べて自己解決しました。
しかし、こんなやり方ほとんど裏技っぽい……。

param = %%A_Index%% はダメだけど、
param := %A_Index% ならOK、とのこと。

488 :名無しさん@お腹いっぱい。:2006/02/12(日) 02:40:14 ID:2QBETCrR0
ネットゲームなんかで割り当てたホットキーが使えなくなるのはなんとかできないものでしょうか?
窓使いの憂鬱でも使うしかないのでしょうか・・・

489 :名無しさん@お腹いっぱい。:2006/02/12(日) 02:46:26 ID:gYCfWe6P0
>>487
外出。

490 :sage:2006/02/13(月) 00:13:32 ID:xfk4rPhl0
質問です
お試しに使い出したらすごいはまったんですけど
皆さん割り当てるキーってなんかうまいことやってますか?
できるだけ他のアプリのショートカットとは競合しないように
設定したいのですが,何が安全なのかわかりません
コツがあったらお願いします!

491 :名無しさん@お腹いっぱい。:2006/02/13(月) 00:17:29 ID:C1wU8uUC0
sageはメール欄にどうぞ

492 :490:2006/02/13(月) 00:34:08 ID:xfk4rPhl0
だな・・・

多分生まれて初めてのミスだけど自然と心地良い

493 :名無しさん@お腹いっぱい。:2006/02/13(月) 01:06:49 ID:DnCFW1yt0
>>490
Ctrl+Win+○
をAutoHotKey用のショートカットにしてる。これならほとんど被らないし。

^#G ;選択文字列をググる
^#W ;壁紙変更
^#P ;スクリーンショットを時刻.pngで保存

みたいな感じ。実際はこのショートカットをマウスジェスチャーに割り振ってたりする。
AutoHotKeyのマウスジェスチャーに統合したいんだが、めんどいw

494 :名無しさん@お腹いっぱい。:2006/02/13(月) 06:24:46 ID:RLYX7csf0
これはバグ?
j < %i% で比較すると i < j が表示され、
i > %j% で比較すると i > j が表示される。
両方%で囲むと i < j になる。

^i::
i = 1
j = 2

;if (j < %i%)
if (i > %j%)
;if (%j% < %i%)
;if (%i% > %j%)
MsgBox, i > j
else
MsgBox, i < j
return

495 :名無しさん@お腹いっぱい。:2006/02/13(月) 07:46:35 ID:VjRV7iIc0
そりゃ文字列と数字を比較演算した場合の当然の結果だと思うが。
比較演算で数値と文字列扱えるどの言語だって同じ仕様でしょ。

MsgBoxに i と書いて文字列の"i"が展開されてるのを見れば気付きそうなものだが。

496 :名無しさん@お腹いっぱい。:2006/02/13(月) 08:17:16 ID:RLYX7csf0
そりゃ文字列と数字を比較演算した場合の当然の結果だと思うけど、

ttp://lukewarm.s101.xrea.com/Scripts.htm
条件分岐
If文で条件分岐が行える。
else文で条件に一致しなかったときの処理も記述できる。
比較条件は、if var = valueという形で記述できる。
比較演算子は、「=」、「<>」(not equal)、「>」「<」「>=」「<=」が使用できる。
左辺には変数名が来るが、右辺には値がこなければならないので、「%」で挟んで変数の内容を展開するようにする必要がある。


この最後の行に書いてあるでしょ。
( )でくくるのがよくないのか。

497 :名無しさん@お腹いっぱい。:2006/02/13(月) 08:29:14 ID:RLYX7csf0
ttp://www.autohotkey.com/docs/commands/IfExpression.htm
( )でくくると文法が変わるわけね。この場合は
if (i > j)
と書かなければいけなかった、ということで。
……なんだか仕様が混乱してるなあ。

498 :名無しさん@お腹いっぱい。:2006/02/13(月) 14:16:14 ID:HZjUhtGG0
たしかに、まぎらわしい仕様ではあるな

499 :名無しさん@お腹いっぱい。:2006/02/14(火) 15:34:05 ID:RVF5Wq5S0
WinSet, TransColorで透明色を指定できるけど、
この色だけ半透明にするって指定はできない?
例えば、WinSet, TransColor, AABBCC 127, WinTitleと書くと
AABBCCは完全に透明になり、それ以外の部分が半透明になってしまう。

500 :名無しさん@お腹いっぱい。:2006/02/14(火) 16:09:25 ID:kdmpCnCA0
>>499
できないんだよそれ。出来たらいいなとは思う。

501 :名無しさん@お腹いっぱい。:2006/02/14(火) 17:59:57 ID:5RpU6d3N0
>>499
以前それがやりたくてここで質問したものです
AUTHOTKEYのウィンドウならこれで出来ました
>>391-393
通常のウィンドウは。。無理なんだろな。。

502 :499:2006/02/14(火) 20:23:21 ID:RVF5Wq5S0
>>500-501
なるほど…
AutoHotkeyの仕様なのかOSの仕様なのか知らないけど、ちと残念。
透明になっても良いんだけど、クリックが素通りしてしまうと不便なんだよなぁ。

503 :名無しさん@お腹いっぱい。:2006/02/15(水) 00:05:58 ID:9Es2AScX0
もっとメニュー作成機能を強化して欲しいかも。
・アイコン表示
・1行だけならサブルーチン化しなくてもMenuコマンドにそのまま記述可
・メニューの複数列表示
・オーナードローメニュー

オーナードローメニューは面倒だと思うけど上3つはできると良いな。

504 :名無しさん@お腹いっぱい。:2006/02/15(水) 08:41:57 ID:SX93VEbb0
Win起動したときにAutoHotkey.iniが勝手に開くようになったんだけどなんでだろう?

505 :名無しさん@お腹いっぱい。:2006/02/15(水) 14:42:20 ID:4hb2BCE90
>>504
スタートアップにショートカットじゃなくて実体を入れた罠?

506 :名無しさん@お腹いっぱい。:2006/02/15(水) 14:45:57 ID:l6zgqL1t0
いや、INI本体のショートカットを入れたんだろう
INIだからメモ調かなんかで開くわな。

507 :名無しさん@お腹いっぱい。:2006/02/15(水) 17:24:49 ID:ve0MRSui0
Winnyで広がるahkウィルスとか書いたら楽しそうだな。
インストールベースが少ないからあんま広がらないか。

508 :名無しさん@お腹いっぱい。:2006/02/15(水) 20:06:31 ID:JUqdYKTh0
ahkより素直にjsやvbsで書いた方が広まるジャマイカ

509 :名無しさん@お腹いっぱい。:2006/02/15(水) 20:18:50 ID:SX93VEbb0
>>506
正解。
なぜかスタートアップにiniのショートカットが入ってた。
入れた覚えないのにってかしばらくAHKいじってないのに。
不気味。

510 :名無しさん@お腹いっぱい。:2006/02/16(木) 13:26:06 ID:h5aXoB5n0
同一キー定義をアクティブ窓ごとに別々で書けるようになったみたいね(まだ試してない)
http://www.autohotkey.com/docs/commands/_IfWinActive.htm#variant
これでいちいちキー定義のほうで条件分岐しなくてもよくなるかな
今まではアクティブ窓を追いかけ続ける無限loop回してやりくりしてたけど


511 :名無しさん@お腹いっぱい。:2006/02/16(木) 13:58:21 ID:EqR0wQoB0
登録も管理も面倒だったけど、これでだいぶよくなった

512 :名無しさん@お腹いっぱい。:2006/02/16(木) 14:24:10 ID:nqNAQta60
便利になったとは思うけどホットキーなら
ループで監視しなくても押された瞬間だけ判定すればいのでは

513 :名無しさん@お腹いっぱい。:2006/02/16(木) 14:37:33 ID:RHJx/nzR0
>>510
>無限loop
アクティブウィンドウ監視して変わるたびに
Hotkeyコマンド使って切り替えみたいな感じ?

514 :名無しさん@お腹いっぱい。:2006/02/16(木) 14:39:38 ID:JGq1Z4Yk0
ほっとけい

515 :名無しさん@お腹いっぱい。:2006/02/18(土) 10:17:30 ID:WrtMVw3N0
覚えらんない人のためのオンラインソフト備忘録 でこのソフトの
事が取り上げられてて興味が沸いたので、勢いこちらのスレに来てみたら。。。

>>1はいったい何なんですか!?さっぱりわかりません!
それともスレ立て主は外人ですか?誰か僕にわかるように説明してくさい!

516 :名無しさん@お腹いっぱい。:2006/02/18(土) 11:14:12 ID:KVqPeB680
(´・ω・`)知らんがな

517 :名無しさん@お腹いっぱい。:2006/02/18(土) 21:53:53 ID:JQ9unHlx0
なまずの人ってここも見てるよね
2バイト文字対策の使わせてもらいました
どうもです

518 :名無しさん@お腹いっぱい。:2006/02/18(土) 22:01:48 ID:wweffrMN0
アレの使い方がまだ分かんにゃい…

519 :名無しさん@お腹いっぱい。:2006/02/18(土) 22:01:56 ID:JQ9unHlx0
あとせっかく作ったから晒しとく。動けばいいって感じで作ってるから美しくないけど。
ディレクトリをドロップしたら中のファイルを一つ上の階層にコピーしてディレクトリを消すスクリプト
if 1 =
{
msgbox,ディレクトリをドロップしたら中のファイルを一つ上の階層にコピーしてディレクトリを消します`n何か残ったらディレクトリを消しません
exitapp
}
MsgBox , 4355,,移動するファイルに同名のファイルが存在した場合上書きしますか?
IfMsgBox, Cancel, exitapp
IfMsgBox, yes, SetEnv, oflg , 1
IfMsgBox, no, SetEnv, oflg , 0
Loop , %0%
{
src:=%A_Index%
FileGetAttrib, att , %src%
if att<>D
Continue
MBS_SplitPath( src , outFileName1, outDir1, outExtension1, outNameNoExt1, outDrive1 )
FileDelete, %src%\Thumbs.db
if outDir1 = %OutDrive1%
FileMove, %src%, %outDir1%\ , %oflg%
else
FileMove, %src%, %outDir1% , %oflg%
Loop, %src%\* , 2
{
MBS_SplitPath( A_LoopFileFullPath , outFileName2, outDir2, outExtension2, outNameNoExt2, outDrive2 )
FileMoveDir,%A_LoopFileFullPath% ,%outDir1%\%outFileName2% ,%oflg%
FileRemoveDir, %A_LoopFileFullPath%
}
FileRemoveDir, %src%
}
exitapp

520 :名無しさん@お腹いっぱい。:2006/02/18(土) 22:04:14 ID:JQ9unHlx0
>>518
俺もIMEのは謎だ

521 :名無しさん@お腹いっぱい。:2006/02/18(土) 23:17:16 ID:Iuqt5cXz0
全角→半角関数使わせてもらってます。
ヤフオクなんかで、全角で書かれた口座番号をコピペするのが格段に楽になりました。

522 :名無しさん@お腹いっぱい。:2006/02/20(月) 15:30:05 ID:bHvHlGfQ0
単純な#define部分だけで良いから、自動でWINUSER.H等をインクルードして欲しいなぁ。
一々メッセージを使うときにコメントでメモ書きするのめんどい。

523 :名無しさん@お腹いっぱい。:2006/02/22(水) 00:15:57 ID:JEPVrHVd0
あるAppのウインドウをWindowSpyで調べたところ、どのウインドウでもWindow Title & Classが
すべて同じ値を返す場合、他の方法でウインドウをマッチさせる方法はありますか?

524 :名無しさん@お腹いっぱい。:2006/02/22(水) 00:19:51 ID:gmGHCXSw0
はい

525 :名無しさん@お腹いっぱい。:2006/02/23(木) 02:28:24 ID:b2eEMwCj0
質問です。
AutoHotKeyはイベントに対して処理をするということは可能でしょうか。
具体的には
「あるウインドウが閉じられようとしたら、閉じる代わりに非表示にする」
という動作をするようにしたいのですが。


526 :名無しさん@お腹いっぱい。:2006/02/23(木) 11:31:49 ID:jHCXuL6/0
ポチエスに複数ファイルを送るとショートファイルネームで処理されちゃうんだけど
これをAHK内でロングファイルネームに戻したいと思ったんだが、
なんかそれっぽい記述がリファレンスに見当たらない

なんかいい方法ない???

527 :名無しさん@お腹いっぱい。:2006/02/23(木) 12:43:38 ID:Mi3jCVds0
>>526
%A_LoopFileName%

528 :名無しさん@お腹いっぱい。:2006/02/23(木) 15:24:00 ID:OafhHQu10
>>527
引数でやってきたものを処理したいんだけどできるかな。
しばらく考えたが思いつかない
(1)ぽちエスからショートファイルネームが複数やってくる
(2)それをロングに変換してファイルに書き出す
みたいな感じなんだけど。

529 :名無しさん@お腹いっぱい。:2006/02/23(木) 15:36:32 ID:Mi3jCVds0
>>528
Loop, %0%
{
i := %A_Index%
Loop, %i%
{
MsgBox, %i%`n%A_LoopFileName%`n%A_LoopFileFullPath%`n%A_LoopFileLongPath%`n%A_LoopFileDir%
}
}


530 :名無しさん@お腹いっぱい。:2006/02/23(木) 15:40:51 ID:OafhHQu10
すげ、できた!!
ファイル名でLoopなんて出来るのか。
サンクス!!!!!

531 :名無しさん@お腹いっぱい。:2006/02/24(金) 14:00:22 ID:PyEBwfs70
流行らせるページの管理人の日記がすごい
TrayCommandもどきに感動
ついでにTrayExpandもどきも作ってくれないかとずうずうしい要望をしてみる

532 :名無しさん@お腹いっぱい。:2006/02/24(金) 18:39:48 ID:LMN2OTD20
Alt+Tab代価するようなスクリプトつくってほしいな

533 :名無しさん@お腹いっぱい。:2006/02/24(金) 21:52:20 ID:7qRRIOKj0
AltTabコマンドじゃだめなの?

534 :名無しさん@お腹いっぱい。:2006/02/25(土) 00:57:19 ID:HuCPqrC00
流行らせるページに一つあった

535 :名無しさん@お腹いっぱい。:2006/02/25(土) 02:19:14 ID:TlCaEqJP0
#IfWinActive, AutoHotkey.ini ahk_class Hidemaru32Class
^s::
Send, ^s
sleep, 1000
Reload
return

リロードが面倒くさいのでAutoHotkey.ini編集中に上書き保存したらリロードするってのを考えた
一応sleep入れてみたんだけどこのsleepっているのかな?

536 :名無しさん@お腹いっぱい。:2006/02/25(土) 06:04:04 ID:WlTtzrS/0
すみません、こちらの皆さんには初歩的すぎるかもしれませんが、
  マウスのボタンを押している間、
  100mm秒間隔でクリックを連打
させるスクリプトはどう書けばいいのでしょうか?

537 :名無しさん@お腹いっぱい。:2006/02/25(土) 08:53:08 ID:6LCnKr020
>>535
入れといたほうがよろし

538 :名無しさん@お腹いっぱい。:2006/02/25(土) 08:57:33 ID:9NjRh94x0
>>535
1000msが妥当かは環境によるので何とも言えんが、ディレイは入れるべきだろうね

好きずきだけど、エディタ側にマクロ機能があるならそっちでやったほうが
無駄な待ち時間も発生しないし安全ではあるな。
自分は秀丸側のマクロでやらせてる

539 :名無しさん@お腹いっぱい。:2006/02/25(土) 10:02:04 ID:6LCnKr020
>>535
使ってるエディタが秀丸だったのか。
んじゃ、マクロの方がいいね。

540 :名無しさん@お腹いっぱい。:2006/02/25(土) 10:30:39 ID:HuCPqrC00
更新日時見れば

541 :名無しさん@お腹いっぱい。:2006/02/25(土) 12:44:23 ID:WlTtzrS/0
loopを使えばいいの?どうやって止めるの?

542 :531:2006/02/25(土) 12:53:27 ID:Rs6mXlji0
すごい!
たとえ私の要望から作ったのではないとしても本当にありがとうございます!

543 :名無しさん@お腹いっぱい。:2006/02/25(土) 13:02:37 ID:CnEGJgUv0
あんまりクリックしすぎると
モニターに穴があくからやめたほうがいいよ。
漏れのディスプレイ、内部配線見えまくりだし

544 :名無しさん@お腹いっぱい。:2006/02/25(土) 13:06:05 ID:9NjRh94x0
break

>マウスのボタンを押している間、100mm秒間隔でクリックを連打
トリガはホイールクリックに割り当てるとか、別のキーでやるつもりなら大丈夫だが
左ボタン押下中に、左クリ連打とかって割り当ててしまうとどえらいことになるぞ
あんまり分かってなさそうなので一応忠告しとく

545 :名無しさん@お腹いっぱい。:2006/02/25(土) 17:06:34 ID:veunGidG0
2段階キーマップをやりたくてテストコードを書いてみたのですが
わからないことがあるので教えてください。
fx -> f
fs -> s
ff -> k
を意図して書いたのですが
ff -> k
が上手くいかないんです。
新しいスレッドが生成されるせいかと思うのですが
上手くやる方法ありますか?
ちなみにコードはこれです。厨房質問ですいません。
f::
{
Input,InputChar,C I L1 ,{Esc},x,s,f
if ErrorLevel=Match
{
if InputChar=x
send, f
if InputChar=s
Send, s
if inputchar=f
send, k
}
return
}

546 :名無しさん@お腹いっぱい。:2006/02/25(土) 17:11:40 ID:HuCPqrC00
:*:fx::f
:*:fs::s
:*:ff::k

Hotstringでこうやれば?

547 :名無しさん@お腹いっぱい。:2006/02/25(土) 18:15:37 ID:veunGidG0
>>546
レスありがとうございます。
試してみます。

548 :名無しさん@お腹いっぱい。:2006/02/25(土) 18:26:07 ID:WlTtzrS/0
さっぱりわかりません。
Mbutton::
Count = 1
loop
{
if Count > 20
break
if Count < 19
sleep,50
send {Lbutton}
Count = %Count% + 1
}
return
Lbutton up::
Count = 20
return

549 :名無しさん@お腹いっぱい。:2006/02/25(土) 22:58:36 ID:9NjRh94x0
MouseClick
または
send, {Lbutton Down}
send, {Lbutton Up}


550 :名無しさん@お腹いっぱい。:2006/02/25(土) 23:08:33 ID:Rs6mXlji0
MButton::
Loop
{
GetKeyState,keyState,MButton,P
If(keyState="D")
{
Send,{LButton}
Sleep,100
}
Else Break
}
return

これでできると思う

551 :名無しさん@お腹いっぱい。:2006/02/26(日) 10:51:10 ID:oMn9Wnsa0
あんまりよそで迷惑かけちゃダメ!

552 :名無しさん@お腹いっぱい。:2006/02/26(日) 12:43:40 ID:pNeAqWnD0
TClockの「タスクスイッチにアイコンのみ表示」「平らなトレイ」「平らなタスクスイッチ」「スタートボタンを隠す」
の機能をAHKで実現したいと考えています。

ttp://homepage1.nifty.com/kazubon/progdoc/tclock/index.html
ここを読んで「フックを使ってサブクラス化する」ということはわかったんですが、
AHKで可能なのでしょうか?

553 :名無しさん@お腹いっぱい。:2006/02/27(月) 00:03:04 ID:l9PFBXTs0
サブクラス化は時計に描画するときの奴じゃない?
TB_SETSTYLEメッセージでTBSTYLE_FLATとかをセットすれば行けるような気がする

554 :552:2006/02/27(月) 00:49:18 ID:tOahKDvK0
>>553
SendMessage,0x438,0,0x800,ToolbarWindow322,ahk_class Shell_TrayWnd
;0x438:TB_SETSTYLE 0x800:TBSTYLE_FLAT

こんな感じでしょうか?
OSはXPです。やってもらえるとわかるんですが、フラットに一応なりますがちょっとおかしいです。
あくまでTClockのようなものを目指しています。

それと、>>552にの中では「タスクスイッチにアイコンのみ表示」が自分には一番重要なんですが
これもメッセージだけでいけるんでしょうか?

555 :名無しさん@お腹いっぱい。:2006/02/27(月) 02:23:25 ID:A+gy7pJs0
とりあえずGETした値に|や&~でスタイルを足したり引いたりしないと駄目かと

556 :名無しさん@お腹いっぱい。:2006/02/27(月) 10:22:33 ID:NeNYGSjC0
AutoHotkeyでfenrir風スゴス

557 :名無しさん@お腹いっぱい。:2006/02/27(月) 10:28:09 ID:j85wo7Eo0


558 :名無しさん@お腹いっぱい。:2006/02/27(月) 11:44:42 ID:oF4YUTyr0
>>556
どこ?

559 :名無しさん@お腹いっぱい。:2006/02/27(月) 11:59:01 ID:TYvekXx40
ぬるど

560 :552:2006/02/27(月) 14:03:58 ID:tOahKDvK0
>>555
うっかりしてました。
SendMessage,0x438,0,0x52009B45,ToolbarWindow322,ahk_class Shell_TrayWnd
これで「平らなタスクスイッチ」は実現できました。

ただ、同じように
SendMessage,0x438,0,0x56008B4D,ToolbarWindow321,ahk_class Shell_TrayWnd
とやっても何故か「平らなトレイ」はできません。


561 :名無しさん@お腹いっぱい。:2006/02/27(月) 15:59:24 ID:rTfpn8m/0
デスクトップ上やエクスプローラーで、マウスが掴んでいたり、選択状態にあるファイルの収得って出来ます?
選択されてるファイルを移動したり、エディタで開いたりといった、一括処理をしたいんです。

562 :名無しさん@お腹いっぱい。:2006/02/27(月) 16:36:23 ID:8205XDO60
流行らせるページや、なまず日記さんのところにある修飾キーの複数回押しに機能を割り当てる
スクリプトを使用したいのですが、キーを長押ししたときに連続入力されて複数回実行されてしま
います。
これを回避するために修飾キーの長押し時の連続入力?を無効にして、長押し時は1回の入力と
する方法があれば教えていただけないでしょうか。

563 :名無しさん@お腹いっぱい。:2006/02/27(月) 18:13:11 ID:tOahKDvK0
>>561
ファイラー、スクリプト、ソフトなどでパスを一度クリップボードに送ればできますよ。

>>562
KeyWaitを使えばできます。おそらく。
流行らせるページの例を拝借しますが、

~Ctrl::
if A_TickCount < %ctrldouble%
{
;some action
ctrldouble=0
}
else
{
KeyWait,Ctrl ;これを追加
ctrldouble=%A_TickCount%
ctrldouble+=400
}
return


564 :562:2006/02/27(月) 18:29:23 ID:8205XDO60
>>563
ありがとうございます。
思っていたとおりの動作をしてくれました。
コピーをしようとして、設定していたアプリが多重起動したときは焦りました。

565 :名無しさん@お腹いっぱい。:2006/02/27(月) 21:49:57 ID:A+gy7pJs0
>>560
立体的になってるのは枠の部分だから
WinSetでWS_EX_CLIENTEDGEとかを消してやればいいんじゃない?

566 :552:2006/02/27(月) 22:38:27 ID:tOahKDvK0
>>565
関係ありそうな、Shell_TrayWnd・TrayNotifyWnd1・SysPager1
の3つのウィンドウでExStyleを取得してみましたが
どれにもWS_EX_CLIENTEDGEはありませんでした。

567 :552:2006/02/27(月) 23:42:36 ID:tOahKDvK0
TrayNotifyWnd1からWS_EX_STATICEDGEを外すことで解決しました。

Control,ExStyle,0x0,TrayNotifyWnd1,ahk_class Shell_TrayWnd

あとは「タスクスイッチにアイコンのみ表示」「スタートボタンを隠す」の2つ。
スタートボタンはControl,Hideで隠すことはできるんですが、
隠した場所が空白になってしまいます。
空白を埋めるようにウィンドウやコントロールを左に移動してもうまくいきませんでした。


568 :名無しさん@お腹いっぱい。:2006/03/01(水) 02:50:36 ID:ssfeeMo60
流行らせるページの虫眼鏡、どうも挙動不審で使ってると拡大された画像が更新されなくなるんで、
なんでかなぁっておもってたんだけど、もしやDC絡みかなと思って、Draw()呼ばれる度に
取得と解放するようにしたら、タイマー小さくしてもぬるぬる動くようになったーよ。
カクカクしちゃうのはAHKの限界だと思ってたのでびっくりした。
以下修正した部分。
;省略
Gui,+E0x00080020
;myhdc:=DllCall("GetDC",UInt,myhwnd,UInt) ;コレ削除
dthwnd:=DllCall("GetDesktopWindow",UInt)
;dthdc:=DllCall("GetWindowDC",UInt,dthwnd,UInt) ;コレ削除

SetTimer,Timer,100;ここ小さくしてもスムーズに更新されるようになったです。
Timer:
Draw()
return

Draw(){
global Size,Magnification,myhwnd, dthwnd ;ここ変更
myhdc:=DllCall("GetDC",UInt,myhwnd,UInt) ;コレ追加
dthdc:=DllCall("GetWindowDC",UInt,dthwnd,UInt) ;コレ追加
CoordMode,Mouse,Screen
;省略
DllCall("StretchBlt",UInt,myhdc,Int,0,Int,0,Int,s,Int,s, UInt,dthdc,Int,left,Int,top,Int,Size,Int,Size,UInt,0x00CC0020)
DllCall("ReleaseDC", UInt, myhwnd, UInt, myhdc) ;コレ追加
DllCall("ReleaseDC", UInt, dthwnd, UInt, dthdc) ;コレ追加

WinSet,Top,,ahk_id %myhwnd%
}

569 :名無しさん@お腹いっぱい。:2006/03/01(水) 05:39:49 ID:ssfeeMo60
やべぇ、虫眼鏡気に入った。
半透明化するとカコイイし使いやすい。
旗+ホイール回転で拡大縮小にしたらこれまた良い感じだ。
Ctrl+旗+ホイール回転でサイズだけ変えるようにしたらまたこれが良い感じだ。
管理人さんコレ結構使えるよありがとう。

570 :名無しさん@お腹いっぱい。:2006/03/06(月) 15:39:50 ID:15ZX1WmO0
マルチモニタで使用しています。
WinMoveでウインドウを反対側のモニターに移動させようとしたら、ウインドウが最大化の状態では
移動できないんですね。なんか対策方法ってありますか?

571 :名無しさん@お腹いっぱい。:2006/03/06(月) 22:08:11 ID:dAP1bHHq0
起動中のスレッドの数を取得する方法ってありますか?
一応 ListHotkeys の Running で調べることはできるんですけど、
スクリプト内でスレッドの数を取得することができないで悩んでます。

572 :名無しさん@お腹いっぱい。:2006/03/07(火) 19:31:53 ID:6lI/W0at0
1.0.42.05 - March 6, 2006
This is functionally identical to the previous release, whose EXE and BIN were about 1% larger than they should have been due to a compiler quirk.

1.0.42.04 - March 6, 2006
Fixed ClipboardAll when used with apps such as Word and Excel (broken by previous version). [thanks Roussi Nikolov]

Fixed ClipboardAll to prevent appearance of bookmarks in MS Word. [thanks Laszlo & 02clams]

Fixed A_TimeIdlePhysical being disrupted by simulated AltGr keystrokes. [thanks skrommel]

Fixed Send{Blind} causing sticking Win/Ctrl/Alt/Shift when the user released such a key in the middle of a Send.

Improved the Send command not to press and release the shift key after each uppercase letter (e.g. Send ABC).

Improved SoundSet/Get to support ComponentType "Headphones". [thanks Tobias Winkler]

573 :名無しさん@お腹いっぱい。:2006/03/08(水) 01:17:49 ID:vfUm781w0
A:: Send,{F1}
B:: Send,[F2}
...

とやってすべてのキーに対して
IfWinActive,TargetWindowTitle
{
Send, {???}
return
}
したいと思ったら個別に全部書かないといけないの?

574 :名無しさん@お腹いっぱい。:2006/03/08(水) 01:33:04 ID:4eMMzOAe0
今ならこれで行ける
A::
#IfWinActive nanntoka
A::
#IfWinActive kantoka
A::

575 :名無しさん@お腹いっぱい。:2006/03/08(水) 06:52:36 ID:+kxWwRRD0
格ゲーのコマンドを空いたボタンにマクロ化しようと思ったんだけど
十字キーをどうsend,{}に書けばいいのかわからない…

教えてください、お願いします

576 :名無しさん@お腹いっぱい。:2006/03/08(水) 10:37:30 ID:h+DqYquz0
Send,{Right}
Send,{Down}
Send,{Right}

じゃだめなの?(昇龍拳)

577 :名無しさん@お腹いっぱい。:2006/03/08(水) 11:54:15 ID:p4FMmfTv0
1.0.42.06 - March 7, 2006
Fixed crash of A_ScriptDir (broken by 1.0.42.01).←これがぬるタソがバグレポートしたヤツかな?

Fixed Run/RunWait's passing of an extra space character at the end of the parameter list when launching shortcuts. [thanks arbe]



AutoHotkey.comなんかもの凄く重い・・・
なにわともわれ、ぬるたんGJ!!

578 :名無しさん@お腹いっぱい。:2006/03/08(水) 14:27:59 ID:+kxWwRRD0
>576
言葉が足りなくてすまん、
えーと、
joypadからの入力としてはどう書くのかなーと。
ボタンは1joy5とかでなんとかなるんだけど
方向キーのjoyXとかの書き方が良く解らなくて。

579 :名無しさん@お腹いっぱい。:2006/03/08(水) 16:20:21 ID:rhy9UwrA0
>>578
http://lukewarm.s101.xrea.com/KeyList.htm

580 :名無しさん@お腹いっぱい。:2006/03/08(水) 22:08:54 ID:+kxWwRRD0
>579
いや、そりゃそこも見てるんですよ?
ただ十時キーの場合右、中、左を
0〜100とかの数値で表さなきゃいかんじゃないですか?
それをどういう書き方で書けばいいのかと思いまして。

状態はわかってもsendは出来ないのかな…

581 :名無しさん@お腹いっぱい。:2006/03/08(水) 23:49:20 ID:gQ7VQesu0
>>580
デジタル十字キーは、ボタンのどれかにマッピングされてるはずだが
アナログなら書いてある通りだ

582 :名無しさん@お腹いっぱい。:2006/03/09(木) 11:08:17 ID:jj4ahRjB0
>>577
ぬるタソって誰?

583 :名無しさん@お腹いっぱい。:2006/03/09(木) 14:40:31 ID:Pszy413S0
ぬる様を知らないとは・・・。

584 :名無しさん@お腹いっぱい。:2006/03/10(金) 04:18:48 ID:w2FftydU0
自分のスクリプトの設定ウィンドウを作りたいんだが
ボタンとか部品を値で指定するのが面倒です

GUIを設計するのに便利なツールってありませんか?
AHK用でなくても
部品の位置(X,Y座標)、width,heightなどが分かればいいんです

私はプログラムを組んだのは
CUIベースのやつをちょこっと触ったくらいなので
GUIを作るのに便利なツールとかホントよく分からないのです。

どなたかお願いします

585 :名無しさん@お腹いっぱい。:2006/03/10(金) 04:31:56 ID:ze2+cAQ/0
>>584
便利かどうかは知らんけど、こんなのはある。
ttp://www.autohotkey.com/docs/SmartGUI/

586 :名無しさん@お腹いっぱい。:2006/03/10(金) 04:54:34 ID:FWnM8tqy0
必要最小限の記述だけでとりあえず入力できるウィンドウが出せるだろ
Delphiのフォームエディタなんかでペタペタ並べていくより楽だと思うが

587 :名無しさん@お腹いっぱい。:2006/03/10(金) 10:18:45 ID:w2FftydU0
>585
AHK用のやつをAHKで作ってた人いるんですね。
少し触ってみたんですがなかなか良さそうなので
シコシコぺたぺた作ってみます。
ありがとうございました

>586
自己満足ながらそれなりの見栄えがほしいのですわ
身内にまわすつもりのスクリプトなんで


588 :名無しさん@お腹いっぱい。:2006/03/10(金) 16:54:00 ID:DvP0u0ni0
本来1行に書かなければいけないものを
複数行に渡って書くことはできないでしょうか?

589 :名無しさん@お腹いっぱい。:2006/03/10(金) 18:04:06 ID:ovxrZJOi0
例えば?

590 :名無しさん@お腹いっぱい。:2006/03/10(金) 19:00:52 ID:3lX6WYxo0
If 1 Contains あいうえお,かきくけこ,(…)

って時に分けたいなあって時はある。

591 :588:2006/03/10(金) 20:41:18 ID:DvP0u0ni0
>>589
If(WinActive(........) || WinActive(..........) || WinActive(..........) || ..)
などの時です

592 :名無しさん@お腹いっぱい。:2006/03/11(土) 01:39:11 ID:+FW9TX3p0
IME on/off トグルはどのようにすればできますか。
探してみたのですが見つかりませんでした。

593 :名無しさん@お腹いっぱい。:2006/03/11(土) 02:03:00 ID:4Dr+/V140
原始的な方法は
IME ON/OFFを IMEプロパティから適当なキーに設定して
それをSend。

594 :名無しさん@お腹いっぱい。:2006/03/11(土) 02:08:22 ID:91GIDUrj0
>>592
具体的にどういう用途に使うの?
AutoHotkeyを流行らせるアップローダの029.zip使えば解決するとは思うけど。

595 :592:2006/03/11(土) 11:16:04 ID:+FW9TX3p0
>>593
ありがとうございます。
英語キーボード なので、Alt+`がデフォルトのIME On/Offなので
これをやったのですがうまくいかなくて。
RAlt:: Send,!`
とやってみたのですが、何が間違っているのでしょうか?

>>594
上に書いたとおり、英語キーボードだとIME起動がちょっと面倒なのです。
今は窓使いの憂鬱で右AltをIME On/Offにしていますが、
まずAHKでも同じことができれば、AHKの他の機能も試用してみたいと思いました。

596 :名無しさん@お腹いっぱい。:2006/03/11(土) 12:52:01 ID:aZXYdYak0
Send, {ALTDOWN}`{ALTUP}
こう書くんじゃないの?

597 :592:2006/03/11(土) 13:01:55 ID:mSorvu8J0
>>596
試してみましたが、フォーカスがメニューに移る、通常のAltキーの動作しかしませんでした。
AHKのOpenメニューで見てみましたが、{ALTUP}{ALTDOWN}となっていて、
やはり右Altとしては認識されていないようです。

598 :名無しさん@お腹いっぱい。:2006/03/11(土) 17:28:31 ID:/NprAL2G0
`は``とエスケープしないと

599 :yy:2006/03/12(日) 00:16:48 ID:gfXzHMTR0
マウスのホイールup、downをタブ切り替え(ctrl+up、down)に割り当てたいんですが
どうやるの?

600 :yy:2006/03/12(日) 00:18:28 ID:gfXzHMTR0
書き忘れましたが、エクセルでの話です。

601 :yy:2006/03/12(日) 00:20:21 ID:gfXzHMTR0
またまた書き忘れましたがマウス+ホイールup、downの動作のことを言いたいのです。

602 :592:2006/03/12(日) 01:48:47 ID:flSoepXq0
>>598
できました!!
RAlt:: Send, {ALTDOWN}``{ALTUP}
これで右AltでIME On/Offができるようになりました。

窓使いの憂鬱では、押しただけのときはIME On/Off、
押しっぱなしにしてほかのキーと同時に押したときはAltの役割ができたのですが
これをさせるにはどうしたらいいでしょう。

RAlt up:: Send, {ALTDOWN}``{ALTUP}
とやると、右Altを離した瞬間にIMEが切り替わってしまいます。

603 :名無しさん@お腹いっぱい。:2006/03/12(日) 12:01:42 ID:7/ujbqoZ0
そういうのはマウ筋使った方が早いな>yy

604 :592:2006/03/12(日) 12:11:54 ID:MzJzCq0O0
>>601はまだ自己解決していないのですが、ほかにも問題が生じてきました。
英語102キーボードなので、デフォルト設定ではCapsLock単押しでCapsLock On/Offになりますが、
これを某アプリケーションのホットキーにし、もとのCapsLockをShift+CapsLockに割り当てようと思っています。
(日本語キーボードと同じCapsLockにしたい)

そこで、
CapsLock:: Run, "application_path"
+CapsLock:: Send, {CapsLock}
としたところ、アプリケーション起動はうまく行きましたがShift+CapsLockが動きません。
SetCapsLockStateを使いたいのですが、On/Offの切り替え方法が具体的にわかりません。

探してみるとAHKではCtrlとCapsLockの交換が難しいとかそんな情報は見かけたのですが、
結局方法が記載されたページが見つけられませんでした。またここの過去ログも参照できませんでした。
基本的な質問が続き申し訳ありませんが、よろしくお願いします。

605 :592:2006/03/12(日) 13:37:35 ID:MzJzCq0O0
>>604
+CapsLock::
GetKeyState, state, CapsLock, T
MsgBox, %state%
Return

とやってサブルーチンが実行されているかを試しましたが
期待したメッセージボックスも出ず、どうも+CapsLock::の記述がダメそうです。
+{CapsLock}::もうまくいきません。

606 :名無しさん@お腹いっぱい。:2006/03/13(月) 13:28:27 ID:+eLuhcrb0
コントロールの座標を取得する方法は載ってるけど
Guiで生成したウィンドウの絶対座標(スクリーン座標?)を取得する方法が分かりません。

WindowsMessageを送ればできるような気もしますけど
そんな事したことないのでどうやるのかさっぱりです。

どうすればウィンドウの座標を取得することができるんでしょうか?

607 :名無しさん@お腹いっぱい。:2006/03/13(月) 14:00:56 ID:HyKmrYHA0
WinGetPosじゃ駄目なん?

608 :名無しさん@お腹いっぱい。:2006/03/13(月) 18:33:26 ID:+eLuhcrb0
Guiの方ばっかり見てて
Windows関係の命令見てませんでした。

WinGetPosでいけますね、失礼しました。

609 :名無しさん@お腹いっぱい。:2006/03/15(水) 22:02:26 ID:mmGkRpsk0
質問です。
以下のような書き方をした場合、5行目に何か(この場合はsleep)を入れないと次のifがすっ飛ばされるのですが、この書き方はだめなんでしょうか。
sleepじゃなくても、msgboxでもa=1でも、何か1行入っていれば思った通りに動作します。
が、この行を消したりセミコロンでコメントにすると次のifがとばされるようなので。
;_____________________________________
StringLen, length, strings
if (length = 0) ,continue
sleep,1
if (i=1)
FileCreateDir, %dir%\%name_no_ext%\
;_____________________________________

610 :名無しさん@お腹いっぱい。:2006/03/15(水) 23:01:58 ID:4MPDWD0K0
>if (length = 0) ,continue


611 :名無しさん@お腹いっぱい。:2006/03/15(水) 23:05:41 ID:4MPDWD0K0
途中送信してもうた

continueはLoopの中でしか使えないんジャマイカ
どっちにしてもカンマで区切って一行に納めるのはNGだったと思う

最近バージョンアップチェックしてないので、記述ルール改定されてたらスマソ

612 :名無しさん@お腹いっぱい。:2006/03/16(木) 00:18:25 ID:+vsjFQ220
;_____________________________________
StringLen, length, strings
ifEqual, length, 0, continue
ifEqual, i, 1, FileCreateDir, %dir%\%name_no_ext%\
;_____________________________________


613 :名無しさん@お腹いっぱい。:2006/03/16(木) 00:24:01 ID:n0WmmFt40
>>611
すみません、これLoopの中です。

で、ご指摘の通り
if (length = 0)
{
continue
}
にしたらちゃんと動きました。

流行らせるページのIfInStringの説明にカンマで区切ってOKとあったので、このifでも気にせずカンマで区切ってました

if単体だとカンマ区切りは動作がおかしくなることあるのかな…?

614 :名無しさん@お腹いっぱい。:2006/03/16(木) 00:26:15 ID:n0WmmFt40
>>612
すごいスマートです。
ifEqualを使えばよかったんですね。
ありがとうございます。

615 :名無しさん@お腹いっぱい。:2006/03/16(木) 00:28:52 ID:n0WmmFt40
流行らせるページを再読したら
>IfEqualのようなコマンド名の形式の場合、更にカンマで区切って条件に一致した場合に実行するコマンドを記述できる。
しっかり書いてありました。お騒がせしました。

616 :名無しさん@お腹いっぱい。:2006/03/16(木) 00:49:17 ID:+vsjFQ220
ただし、コマンドしか使えないみたいなので気を付けて。

Another command can only appear on the same line as the IF statement if you use the command-name style. In other words, these are valid:
IfEqual, x, 1, Sleep, 1
IfGreater, x, 1, EnvAdd, x, 2 ←EnvAddはコマンドなのでこれは正しい記述。

But these are not valid:
if x = 1 Sleep 1
IfGreater, x, 1, x += 2 ←これは式なのでNGらしい。

if文まわりはややこしい・・・

617 :名無しさん@お腹いっぱい。:2006/03/16(木) 03:28:29 ID:+IJnHcux0
ややこしくなるから
if(式){
}
その他のIFコマンド
{
}
以外は使わない方がいいよ

618 :名無しさん@お腹いっぱい。:2006/03/16(木) 08:32:10 ID:xM7XPfwl0
システム以外のマウスカーソルの情報を取得する方法ってありますか?
A_CursorでUnknownになってしまうようなカーソルを知りたいのです

619 :名無しさん@お腹いっぱい。:2006/03/17(金) 17:44:33 ID:FiSk8Qjk0
Hotkey sでループをスタートさせて、無限ループになってしまった場合に
Hotkey hで止めたいのだけれど、どうすれば良いのでしょうか?助言おねがい。

s::
Loop
{
〜処理〜

if abc = 1
break
}
return

h::ExitApp

620 :名無しさん@お腹いっぱい。:2006/03/17(金) 17:47:47 ID:wtxnAtBP0
>>619
何故その記述では駄目なのか、ってことを書かなきゃ助言しようがない

621 :名無しさん@お腹いっぱい。:2006/03/17(金) 18:12:51 ID:zTH699bB0
それで動くかどうか検証めんどいからしないけど
無理だっていうならループ内でsが押されてる状態かを毎回判断すればいい

622 :619:2006/03/17(金) 18:38:40 ID:FiSk8Qjk0
Sleepいれてみたら止めることができました。
くだらないことでスレ消費してごめんなさい。
レスありでした>620、621

s::
Loop
{
〜処理〜
Sleep, 0      <-ここ
if abc = 1
break
}
return

h::ExitApp


623 :名無しさん@お腹いっぱい。:2006/03/17(金) 18:49:03 ID:FiSk8Qjk0
またきました。sとhでスクリプトを終了させないままスタート/ストップを繰り返すために
以下のようにしたんですが、もっと上手いやり方とかありますか?添削おねがいします。

s::
loopflg = 1
Loop
{
〜処理〜
Sleep, 0
if abc = 1
break
}
abc =
loopflg =
return


h::
if loopflg = 1
abc = 1
return


624 :名無しさん@お腹いっぱい。:2006/03/17(金) 19:03:44 ID:LwsXg2Qc0
一時的なデバッグで永久ループから脱出したいって話じゃなかったのか?
一旦リセットしたいなら
h::Reload

625 :名無しさん@お腹いっぱい。:2006/03/17(金) 19:08:49 ID:qaI2qrDX0
>623
GetKeyStateじゃだめなの?

626 :名無しさん@お腹いっぱい。:2006/03/17(金) 20:28:40 ID:68vIds2k0
KeyWait
ってのもあるでよ

627 :623:2006/03/17(金) 21:47:02 ID:hFQNB0xp0
>624
最高。今回の目的にバッチリ適合です。
デバッグが楽になったのも思わぬ収穫^^
s::
Loop
{
〜処理〜
Sleep, 0
if abc = 1
break
}
return

h::reload

628 :名無しさん@お腹いっぱい。:2006/03/17(金) 21:47:42 ID:hFQNB0xp0
>625のもやってみた。

s::
Loop
{
〜処理〜
Sleep, 0
if abc = 1
break
GetKeyState, state, h, P
if state = D
break
}
return

これも目的の動作はしたけど、今回は>624案を採用。
>626のはLoopを抜ける時どう使うのか分からず・・・orz
皆様レスありでした。


629 :名無しさん@お腹いっぱい。:2006/03/17(金) 22:09:21 ID:Op8Q/jkU0
DonationCOdeでなんかおもしろそうなんが出てた

630 :名無しさん@お腹いっぱい。:2006/03/17(金) 23:10:59 ID:SD1TlI3h0
>>628
便利! ワンキーでできないかな?

s::
cnt++
Loop
{
Sleep, 0
If cnt > 1
{
Exit
}
}
cnt--
Return

これは駄目みたい…。

631 :名無しさん@お腹いっぱい。:2006/03/17(金) 23:41:10 ID:qaI2qrDX0
>>630
これでいけるっぽい。

#MaxThreadsPerHotkey 1
s up::
if state = D
 state =
else
 Loop
 {
  〜処理〜
  Sleep, 0
  if abc = 1
   break
  GetKeyState, state, s, P
  if state = D
   break
 }
return



ところでデバックってなんだ?

632 :630:2006/03/18(土) 02:14:02 ID:C4FDHepp0
>>631
おおお、素晴らしい。感謝です。
答えを出してもらいながら申し訳ないが、例えば、
Gui, Add, Edit, Gtest ←これ
みたいなサブルーチンの中に、今までのサンプルみたく無限ループがあったとして、
同じサブルーチンをもう一回呼び出したときにループを終了させたいときには、
GetKeyStateだと煩雑になる予感。
こういう場合にも、ビシッとループを終了できないかな?

633 :名無しさん@お腹いっぱい。:2006/03/18(土) 06:53:17 ID:tezGoIoS0
>630
英語HelpのFAQにある
How can a repeating action be stopped without exiting the script?
って項にあるサンプル使うとワンキーでLoopのスタート/ストップできた。
多重ループで使ってみたいのだけども、もっとエレガントになるかな?

#MaxThreadsPerHotkey 3
s::
#MaxThreadsPerHotkey 1
if KeepLoopRunning = y
{
  KeepLoopRunning =
  return
}
KeepLoopRunning = y
Loop
{
  〜処理〜
  Sleep, 0
  Loop
  {
    〜処理〜
    Sleep, 0
    if KeepLoopRunning =
      break
  }
  if KeepLoopRunning =
    break
}KeepLoopRunning =
return

・・・全角スペースいれてます

634 :名無しさん@お腹いっぱい。:2006/03/18(土) 15:20:28 ID:Yl3U5BIi0
スレッド優先度ってマイナスの値入れちゃっても大丈夫ですか?

635 :名無しさん@お腹いっぱい。:2006/03/18(土) 16:25:48 ID:TCBHEo+A0
つhelp

636 :名無しさん@お腹いっぱい。:2006/03/18(土) 17:51:05 ID:Yl3U5BIi0
>>635
ありがとう、もう一度読み直してみたら書いてありました。

637 :630:2006/03/19(日) 00:46:48 ID:5zHaODEE0
>>633
サンクス! レス遅くなって申し訳ない。
英語Helpにそれらしいのがあったとは…。読み足りてなかったです。
ホットキー(今回の場合 s::)だと凄いいい感じに動いてるんだけど、
それを Gui, Add, Edit, Gtest とかのサブルーチン(ここでは test:)に置き換ると、
3回目のキー押下時にどうもミスります。
…よく分からないんで、ちょっと考えてみます。

638 :名無しさん@お腹いっぱい。:2006/03/19(日) 02:23:42 ID:4wBY8TSi0
>>637
そういうのはTimer使った方が楽じゃない?
用途間違えてるかもしれないけど。


Gui, Add, Edit, Gtest
GUI, Show
return

test:
 if TimerOn = 1
 {
  SetTimer, Timertest, Off
  TimerOn =
 }
 else
 {
  SetTimer, Timertest, 55
  TimerOn = 1
 }
return

Timertest:
 count++
 if count > 100
  count =0
 tooltip, てすと %count%
return

639 :名無しさん@お腹いっぱい。:2006/03/19(日) 11:12:31 ID:5zHaODEE0
>>638
ありがとう! まさに求めてたものです。
具体的には、スレッド実行中に新しいスレッドが呼び出されたとき、
後のスレッドは前のスレッドが終了するまで後回しにされるか無視される仕様からか、
スレッドの処理がスルーされるのが少し困ってたんです。
これで、前のスレッドを途中で停止して後のスレッドを実行する、
みたいなことができるぽいです。他にも色々と効用ありますし。
感謝感激、みんなありがとう〜!

640 :名無しさん@お腹いっぱい。:2006/03/21(火) 04:23:15 ID:y745q5bd0
カナロックONの時は
Joy1::Send, 3 ; ジョイパット1キーで"あ" を入力
Joy2::Send, e ; "い" を入力 …
カナロックOFFの時は
Joy1::Send, a ; "A" を入力
Joy2::Send, b ; "B" を入力 …

となるようにしたいのですがカナロック状態の取得の仕方が分かりません
GetKeyState, OutputVar, vk15, T
は試してみたのですが常に OutputVar = D となってしまうようです。
流行らせるページのアップローダにあったIME_Func.ahkも試しましたが
IME OFFの時などいくつかの条件ではうまく判別することが出来ませんでした。

外部ツールやDLLを利用する方法でもよいので、もしあれば教えてください。


641 :名無しさん@お腹いっぱい。:2006/03/21(火) 19:01:49 ID:7BWRBHrs0
文字列をURLで使える
%E5とかに変換する方法ありまっか?
Yahooの検索で日本語がうまくいきまへん
Proxomitronでも頑張ったんだがなんか無限ループとかで挫折。

642 :名無しさん@お腹いっぱい。:2006/03/23(木) 07:02:24 ID:8KPbtYSZ0
1バイトずつチェックして変換するしかないんじゃない?
日本語で検索できないのは、リクエストの文字コード指定が悪い所為のような気がするけど。

643 :名無しさん@お腹いっぱい。:2006/03/23(木) 11:56:27 ID:37jAp6/q0
>>641
おみとろん使えるなら$ESCでダメか?
とスレ違いレスをしてみる

644 :名無しさん@お腹いっぱい。:2006/03/23(木) 13:58:33 ID:Jwp33SJ00
>>642
うん、基本そうなんだろうけど
Proxomitronでがちがちにフィルターしてるから何が何だかわからなくて
そちらでやるのをあきらめて最初からあの文字列でINPUTから
リクエストできればいいかなあとか思ってしもうた。
>>643
どうもフィルターの相性なのか思ったとおりにならなくてお手上げ中。
も少しがんがってみる。

645 :名無しさん@お腹いっぱい。:2006/03/23(木) 22:28:27 ID:ZyneQEvmP
このソフトでパスワード入力ソフトの代わりはできますか?

646 :名無しさん@お腹いっぱい。:2006/03/23(木) 22:35:45 ID:oGkLYudX0
>>645
出来るとは思うけど、素直に既存のソフトを使った方が良いよ。

647 :名無しさん@お腹いっぱい。:2006/03/24(金) 03:15:07 ID:Se2Qk5Yk0
CapslockにCtrlを割り当てたくて
Capslock::Ctrl ; Make Capslock become a Control key.
を試してみたのですが,
Capslockを離した後もCtrlを押したまんまの状態になります
どうすればよいでしょうか?

648 :名無しさん@お腹いっぱい。:2006/03/24(金) 07:17:30 ID:yvNeSmEP0
キーの履歴を開いてみたらCapslockは押し下げだけ感知して離すのは無視されてるみたい。
どうしてもAHKでCapslockが使いたいのなら押されてから数秒たったらCtrl Upを送信するようにするとか
InputでCapslockの次に押されたキーを読んでみるとか方法が無いことも無いんだろうけど
とりあえず他のソフトで出来るかどうか試してみては?

649 :647:2006/03/24(金) 08:37:38 ID:Se2Qk5Yk0
CapsLockにCtrlを割り当てるとCapsLock Upが返ってこないですね
exeにしてどこでもすぐ使えるようにしたかったのですが……
とりあえずレジストリをいじって解決しました

650 :名無しさん@お腹いっぱい。:2006/03/24(金) 12:30:27 ID:PCVDLk5L0
流行らせるページのどっかに記述あったと思うけど
Locks系は日本語環境だと正しく取得できない。
OSがドライバレベルでなんかやってる。(ダブルバイト環境共通なのかどうかは知らん)

過去ログでも何度も話題になってる。次スレではテンプレに入れたほうがいいかもね。


651 :名無しさん@お腹いっぱい。:2006/03/24(金) 12:57:57 ID:TXwdyAWL0
うちだとCapslockで
CTRL+C,Vが送られるお。なんだこれって感じ。

652 :名無しさん@お腹いっぱい。:2006/03/24(金) 12:58:20 ID:vTkQnhytP
>>646
これでできれば、常駐ソフトを減らせるなーと思いまして

653 :名無しさん@お腹いっぱい。:2006/03/24(金) 20:28:16 ID:zPGcV7l50
人の作ったahkファイルを、自分のAutohotkey.iniにIncludeで組み込もうとするとき、
モノによってはAutohotkey.iniの#Persistent内にあるSet timerが無効になるんですが、これはどの辺が原因なんでしょう。

流行らせるページにあるのだと、mbstring.ahkはOKだけどInlineCalc.ahkはだめです。

654 :名無しさん@お腹いっぱい。:2006/03/26(日) 00:23:53 ID:b3Nu7QpN0
>653
もしかしてAuto-executeセクション中にIncludeしてないですか?

655 :名無しさん@お腹いっぱい。:2006/03/26(日) 00:59:36 ID:pjcfpT8Y0
>>654
思いっきりしてました。

AHKのルールあまりよくわかってないんですが、こういう使い方ってNG?
AHK2つ常駐させるのがいやで一つにまとめたいっていう場合、Autohotokey.ini内にIncludeで組み込むって言うのは間違った使い方なんでしょうか。

656 :名無しさん@お腹いっぱい。:2006/03/26(日) 01:53:48 ID:b3Nu7QpN0
>655
とりあえずInlineCalc.ahkに関しては引数が重複してなければAuto-executeセクション外に
インクルードすれば使えるかもしれないけど、インクルードした後の動作を予測することなしに
よそから拾ってきたスクリプトを次々とインクルードして使うのはおすすめしません。

657 :名無しさん@お腹いっぱい。:2006/03/26(日) 02:04:38 ID:pjcfpT8Y0
>>656
そうですか。わかりました。
拾ってきたスクリプト解析して、自力で組み込めるよう努力します。

658 :名無しさん@お腹いっぱい。:2006/03/28(火) 18:01:18 ID:p3mE1UoC0
*z::f
でzをfキーへ入れ替えが出来る事がわかったけど
これを瞬時に元に戻したり又入れ替えた状態にするには?
ALT+1でデフォルトのキー配列、ALT+2でキー入れ替えた配列にしたいです

659 :名無しさん@お腹いっぱい。:2006/03/28(火) 19:15:37 ID:aI6rP75+0
HotkeyコマンドでONとOFFを切り替えらられるよ

660 :名無しさん@お腹いっぱい。:2006/03/28(火) 19:44:21 ID:n+gx7BbI0
読み出したスクリプトに!1::ExitAppを加える事で解決出来ました。また質問ですが
MButton::3でホイールボタンを3、SHIFT押しながらホイールボタンを4に割り当てたいのですが
SHIT押しながらホイールボタン押すとSHIT+3となり#が入力されてしまいます
どの様な記述になるのでしょうか

661 :名無しさん@お腹いっぱい。:2006/03/28(火) 22:03:17 ID:5UHM2kOF0
>>660
もうちょい本家ヘルプなり流行らせるページなりを読んだ方が良いと思う。

662 :名無しさん@お腹いっぱい。:2006/03/28(火) 22:09:38 ID:2DzjvSSI0
一部vbsを使い、Autohotkeyで以下のようなサウンドプレイヤーの作成に挑戦してみました。

1.選択ファイルのパスをコピーして
2.そのパスをvbsに渡して、GetDetailsOfで曲の長さを取得
3.テキストファイルにファイルのパスと曲の長さを書きだして、プレイリスト作成
4.AHKでプレイリスト読み込んで、「SetTimer,再生実行サブ,曲の長さ」でリストのファイルを連続再生
5.変数に演奏中のトラックナンバーを保存し、ホットキーで曲の移動も可

という感じで作りましたが、見てわかるとおりソースがスマートじゃありません(動作は期待通りのモノですが)。
AHKでやるのが間違っているというのは十分わかっているんですが、そこにこだわりたいんです。
軽いし。

何かスマートになるアドバイス合ったらお願いします。
2,3がvbsなので、このへんをAHKでできればいいんですが。

663 :名無しさん@お腹いっぱい。:2006/03/30(木) 11:37:20 ID:+DAoRlgo0
>>661
色々試したんだけど結局できません
とりあえずkeylay21で凌いでますがkeylay入れてあるとマウスドライバが書き換えられる
みたいでなんかいまいち 4000円も出すんじゃなかったと

LCtrl::LShift
LShift::LCtrl
MButton::3
^MButton::4

SHITとCTRLを入れ替えてある状態で、CTRL(指はシフトキー)押しながらホイールボタンで4を
入力させたいのですがAHKじゃ無理なのでしょうか?
出来るか出来ないかだけでも教えてくださいorz
出来るのであればもう少しカンバッテみます

664 :名無しさん@お腹いっぱい。:2006/03/30(木) 13:24:47 ID:MvBpnK9rP
終了時にウィルススキャンしてから終わるってできますか?

665 :名無しさん@お腹いっぱい。:2006/03/30(木) 15:46:07 ID:DTOCa6Mj0
>>664
http://lukewarm.s101.xrea.com/commands/OnExit.htm


666 :名無しさん@お腹いっぱい。:2006/03/30(木) 17:11:11 ID:MvBpnK9rP
これでシャットダウン時にウィルススキャンをしてから終了ってできるのですか?

667 :名無しさん@お腹いっぱい。:2006/03/30(木) 18:23:58 ID:F2a/hdHF0
自分で努力しないと出来ません

668 :名無しさん@お腹いっぱい。:2006/03/30(木) 22:12:23 ID:MvBpnK9rP
なるほど。
足りなかったのは努力なんですね。
ありがとうございますた。

669 :名無しさん@お腹いっぱい。:2006/03/31(金) 02:40:28 ID:/UqiJYW50
子ウィンドのハンドルがうまく取得できないのは仕様?
MouseGetPosでマウス下の領域のウィンドハンドル取得しようとしても、ウィンド全体のが帰ってくる

670 :名無しさん@お腹いっぱい。:2006/03/31(金) 10:32:28 ID:3DbFmw7g0
MDIの子ウィンドウはウィンドウハンドルとしては取れない。
MouseGetPos, X, Y, Win, Control ,1
で、コントロールとしては取得可能

あくまでハンドルとして取りたい場合は↓の getMousePosWindowEx() あたりを参照
http://d.hatena.ne.jp/eamat/20050827/1125092895

671 :名無しさん@お腹いっぱい。:2006/03/31(金) 17:46:40 ID:GXqhKwVq0
>>660
MButton::Send, 3
+MButton::Send, 4

>>663
;****** Script01.ahk ******
OnExit, ExitSub
Run, C:\Program Files\AutoHotkey\Autohotkey Script02.ahk,,,PID

esc::exitapp
LCtrl::LShift
LShift::LCtrl

ExitSub:
DetectHiddenWindows On
PostMessage, 0x5555,,,,ahk_pid %pid%
Exitapp

;****** Script02.ahk ******
OnMessage(0x5555, "MsgMonitor")

MButton::Send, 3
^MButton::Send, 4

MsgMonitor(){
Exitapp
}
同一プロセスだとうまく動かないので2つのスクリプトに分けた。
Script01を実行すればScript02が立ち上がって、Script01が終了すればScript02も終了する。
うちでは一応それなりに動作しているように見えるけど、うまくいかなかったらごめん。
(ところで、秀丸エディタって修飾キー絡むとうまくうごかないのね・・・
秀丸上で試してたからうまく動かないので悩んだ。)

672 :名無しさん@お腹いっぱい。:2006/04/03(月) 21:26:55 ID:Am8bhY3i0
>>671様ありがとうございます!
何がなにややらな状態ですがとりあえず動いてます
こんなきっかけが欲しかった所です
このスクリプト一行一行勉強してみます

673 :名無しさん@お腹いっぱい。:2006/04/05(水) 18:18:18 ID:+pF9h+il0
>>662そういうこだわり好きだぜ。

FileSelectFile, SelectedFiles, M3, ,Open, Media Files (*.mp3;*.wav)
Loop, parse, SelectedFiles, `n
{
if(A_Index = 1){
CurrentDir=%A_LoopField%.
}else{
SoundPlay, %CurrentDir%\%A_LoopField%, wait
}
}
exitapp
#down::SoundPlay, NULL ;存在しないファイルを指定。(たったこれだけのことを思いつくのにどれだけ掛かったことか・・)


win+↓キーで次の曲に飛ぶ。応用すれば自由に移動可能ではないかと。
色々試して無理だコリャとか思っていたら、あっけないほど簡単な解決策だったりする罠。
頭が固くなってきてるなぁ・・orz
しっかし、たったこれだけで簡易メディアプレイヤーが出来てしまうなんてスゴス。

674 :名無しさん@お腹いっぱい。:2006/04/05(水) 22:18:22 ID:plvj6RC00
ぬる℃家さんのHPの移転先どこ?

675 :名無しさん@お腹いっぱい。:2006/04/06(木) 04:56:20 ID:F1AUl6YU0
避難所じゃない?

676 :名無しさん@お腹いっぱい。:2006/04/06(木) 12:14:18 ID:GSZU7GaA0
>>673
662です。すばらしい。非常に参考になります。
プレイリストをGui表示したりすれば、かなりまともなメディアプレーヤーになりそうですね。

にしても、言われてみれば簡単だ。俺も頭固いな…。

677 :名無しさん@お腹いっぱい。:2006/04/06(木) 12:29:38 ID:V0dMBBJV0
単純にファイル渡しでもファイラーから
フォーカスを奪わずに試聴できるね

678 :674:2006/04/06(木) 21:38:00 ID:7OM6hwZV0
>>675
thx

679 :673:2006/04/07(金) 16:28:37 ID:oc5/fhnE0
SoundPlayで長い曲再生すると戻ってこなくなる?

>>673のスクリプトでアルバムを聞いてて気付いたんだけど、
なぜか、最後まで再生し終わってスクリプトが固まった。
よく考えてみたら最後の曲だけ長くて8分あるので
試しに別の7分ちょいの曲と6分ぐらいの曲を連続で再生してみたら、7分の曲再生し終わった時点で固まって
次の曲再生されなかった。
うちだけ?

680 :名無しさん@お腹いっぱい。:2006/04/07(金) 16:46:09 ID:rSUBoxot0
試してみようと長めの曲投げてみたら再生しなかったな
VBRとかもあんのかな。

681 :名無しさん@お腹いっぱい。:2006/04/07(金) 23:26:51 ID:EWcuZxfA0
30分のネトラジ(wma)投げたけど、問題なかったな
とりあえず最初に依頼したので、完成品を貼っておきます

#p:: ;選択したファイルでプレイリスト作成&再生
OverWrite = True ;上書き
StopFlag = Flase
Gosub,MakePlaylist
TrackNumber=1
GoSub,Player
Return

!#p:: ;選択したファイルをプレイリストに追加&再生
OverWrite = False ;追加
StopFlag = False
Gosub,MakePlaylist
GoSub,Player
Return

#PgDn:: ;次の曲再生
SoundPlay, NULL
Return

#PgUp:: ;前の曲再生
TrackNumber--
TrackNumber--
SoundPlay, NULL
Return

#End:: ;再生を停止
StopFlag = True
SoundPlay, NULL
return

682 :続き2/3:2006/04/07(金) 23:27:54 ID:EWcuZxfA0
MakePlaylist:
ClipSaved := ClipboardAll ;クリップボードの中身を一時待避
Clipboard = ;とりあえずクリップボードを空にして
Send, ^c ;Ctrl+C
ClipWait,1 ;クリップボードが読み取れるようになるのを待つ(最大1秒)

i = 1
Loop, Parse, Clipboard , `n, `r ;クリップボード内のものを改行区切りに分解して
{
SplitPath, A_LoopField , FileName , Dir , Extension ,, Drive ;パスかどうか判定

StringLen, length, drive ;ドライブ文字の長さを見て
ifEqual, length, 0, continue ;パスっぽくなかったらやめる

if ( Extension != "mp3" && Extension != "wav" && Extension != "wma" && Extension != "ogg" ) ;拡張子が音楽ファイルじゃないならやめる
continue

if i = 1 ;テキストファイルにファイルのパスを書き込み
OutputText = %A_LoopField%
else
OutputText = %OutputText%`n%A_LoopField%
i++
}

If OverWrite = True
FileDelete , %CurrentDir%\Playlist.txt

FileAppend , %OutputText%, %CurrentDir%\Playlist.txt

Clipboard = %ClipSaved%
Return

683 :最後3/3:2006/04/07(金) 23:28:46 ID:EWcuZxfA0
Player:
Loop
{
FileReadLine, OutputVar, %CurrentDir%\playlist.txt, %TrackNumber%
If ErrorLevel = 1 ;リストの最後まで行ったら
{
TrackNumber = 1 ;最初に戻る
FileReadLine, OutputVar, %CurrentDir%\playlist.txt, %TrackNumber%
}

SplitPath, OutputVar , FileName

ToolTip, %TrackNumber% - %FileName% ;再生するファイルをツールチップ表示
SetTimer, RemoveToolTip, 1000

Soundplay,%OutputVar% , wait

IfEqual,StopFlag,True,Break ;ループ抜ける

TrackNumber++

}

return

RemoveToolTip: ;ツールチップ削除
SetTimer, RemoveToolTip, Off
ToolTip
return

684 :673:2006/04/08(土) 05:37:18 ID:EzpMT1rj0
>>681
気軽に再生出来てなかなかいいっすねこれ。なんつっても軽いし。

ところで、長い曲(が原因か判らないけど)で固まる問題ですけど、>>681-683のスクリプトでもやっぱり再現した・・・
MCI内部で呼んでるみたいなんで試しにMCI直で呼んでみたけど、やっぱり同じ状態になったので、
MCI自体の問題なのかも。

>>680
VBRって言われてみれば確かにVBRのファイルなんですよねこれ。
VBRで長いmp3だとおかしくなるのかな?


検証するのに何度も同じ曲聞かなきゃなんないから疲れるょ・・
AHKが悪い訳じゃないことが解っただけでも良かったけど・・

685 :名無しさん@お腹いっぱい。:2006/04/08(土) 12:30:36 ID:Co4Tuedv0
WでRClick, AでCtrl+RClick, DでAlt+RClickをやりたいんですが
下のコードだとDを押してDを離してもRClickは解除されるもののAltが押しっぱなしの状態になってしまいます。
どうすればいいんでしょうか?
w::
   Send,{RButton Down}
   return

w up::
   Send,{RButton Up}
   return

a::
   Send,{Ctrl Down}
   Send,{RButton Down}
   return

a up::
   Send,{RButton Up}
   Send,{Ctrl Up}
   return

d::
   Send,{Alt Down}
   Send,{RButton Down}
   return

d up::
   Send,{RButton Up}
   Send,{Alt Up}
   return



686 :名無しさん@お腹いっぱい。:2006/04/08(土) 20:49:49 ID:1SgxTDCT0
流行らせるページにある「システムモニタ用関数群」を有難く使わせてもらっています。
これでだいたい取得したい情報は得られたのですが、
CPUの周波数だけまだ解決せず。

非常に厚かましいのですが
どなたか作っていただけないでしょうか?

687 :名無しさん@お腹いっぱい。:2006/04/09(日) 15:27:27 ID:vc/jqxTR0
流行らせるページが見られない

688 :名無しさん@お腹いっぱい。:2006/04/09(日) 16:14:16 ID:fCMts/FM0
ほんとだwww.xrea.comじたいが見れなくなってる。

689 :673:2006/04/10(月) 04:43:55 ID:kIM2G0lg0
MCI使用したプレイヤー(HSP製)DLして問題のあるファイルを再生してみたら、
時間表示はおかしいけど、固まることなくちゃんと連続再生された。
試しにVC++でMCI使って再生するコード書いてみたら
やっぱり固まることなく連続再生できたし・・。

AHKでmciSendString直に呼んで色々試したところでは、
どうも再生は正常に終わっているけど、デバイスが閉じられくなるみたい、
問題のファイル再生終了後にclose投げるとそのまま制御が戻ってこなくなることが解った。
SoundPlayでも同じようなことが起きてるのかも。

とりあえず、AHKでSoundPlayコマンド(MCI関連)を扱うと
VBRのmp3で問題が起きる可能性があるということでFA。
マンドクセシ モーイイヤ・・('A`)

690 :名無しさん@お腹いっぱい。:2006/04/10(月) 06:02:52 ID:WS1IiKh80


madとか123とかをHideで使っちゃうというほうがいいのかね
DLLならBassとか

691 :名無しさん@お腹いっぱい。:2006/04/10(月) 06:32:16 ID:gsoxib5w0
>>687-688
ttp://www.value-domain.com/info.php?action=press&no=20060408-1


692 :名無しさん@お腹いっぱい。:2006/04/14(金) 00:58:50 ID:Ud8vzZeZ0
クリップボードの内容を一時的にする場合に、

TempClipboard:=ClipboardAll
Clipboard=
;適当に処理して
Clipboard:=TempClipboard ;元に戻す

としたとき、元々クリップボードの中にテキストや画像データが入ってる分には問題ないのですが、
パスやURLがショートカット形式(ファイルをコピーしたときや、ネットのリンクを右クリ→ショートカットのコピーしたとき)
になぜかクリップボードが復元されません。

この辺は仕様でしょうか。

693 :名無しさん@お腹いっぱい。:2006/04/14(金) 00:59:53 ID:Ud8vzZeZ0
一行目
一時的にする→一時的に退避する

失礼


694 :名無しさん@お腹いっぱい。:2006/04/14(金) 01:25:59 ID:94xmBBMO0
MsgBox, %ClipBoard%
をいろんな個所に挟んで中身を確かめながら実験すると良いかも。

695 :名無しさん@お腹いっぱい。:2006/04/14(金) 09:14:35 ID:UFI/YkYK0
>>692
FileAppendでファイルに落としてバイナリみると解るけど、復元出来ないんじゃなくて、
ClipboardAllコマンドでクリップボードを正常に参照出来てないと観た方が良さそう。
つまり、変数やファイルにクリップボード内のデータを待避する時点でデータがすでにおかくなっている。
でもClipboardコマンドだととれているから仕様と言うよりもClipboardAllコマンドのバグじゃないかなぁ?
仕様だったら普通最低でもClipboardコマンドと同じテキストデータがとれるようにすると思うんだよね。

696 :名無しさん@お腹いっぱい。:2006/04/16(日) 09:51:06 ID:Kql6t2Dr0
初歩的な質問していいですか。
EDITコマンドで*.ahkスクリプを好きなエディタで開けません。(notepadで開く)
*.iniだとちゃんと秀丸で開くのに・・・
*.ahkも*.iniもシェル関連付けはされています
どうすれば*.ahkも秀丸で開けますか?

697 :名無しさん@お腹いっぱい。:2006/04/16(日) 10:24:38 ID:AQ9bKtsX0
ダブルクオーテーションを外して試してみて
漏れはそれで上手く行ったことがある。
何故か
c:\hogehoge\hoge.ahkをエディットしようとすると
c:\hogehoge\hoge.ah っていうパスが送られちゃって悩んでたんだが。

698 :名無しさん@お腹いっぱい。:2006/04/16(日) 10:54:34 ID:Kql6t2Dr0
>>697
ありがとうございます。でもダメですOTZ
スクリプト自体はうまく動作しているようですが・・・。
インストーラなしのzipファイルでインストールしたのがまずいのかな。
ヘルプの
”関連付けで「Edit」コマンドが設定されていれば、そのコマンドで開く。なければ、notepad.exeで開く。”
というのがイマイチ分かりません。AHKで開くエディタを指定できるんでしょうか。

699 :名無しさん@お腹いっぱい。:2006/04/16(日) 11:18:46 ID:87jJ7KHW0
俺の場合は「Edit Script」に設定したらできた。

700 :名無しさん@お腹いっぱい。:2006/04/16(日) 11:42:05 ID:Kql6t2Dr0
>>699レスサンクスです
皆さんは問題なく出来てるようですね。やっぱり俺だけですね・・
とりあえず・・・Run,〜\Hidemaru.exe 〜\AutoHotkey.ahk
で開いてます。全然スマートじゃないなw

701 :名無しさん@お腹いっぱい。:2006/04/16(日) 17:45:25 ID:IfQvUwVz0
>>700
AHKファイルの関連付けを、ちゃんとしてる?

 フォルダオプション > ファイルタイプ > AHK を選択

 "拡張子AHKの詳細"項目内の詳細設定ボタンを押す。

 アクションのEditを選択して編集ボタンを押す。

 そこで自分の好きなエディタを指定する。

"関連付けで「Edit」コマンドが設定されていれば、そのコマンドで開く"というのはこの設定のことを言ってる。

702 :名無しさん@お腹いっぱい。:2006/04/16(日) 17:48:41 ID:4CFKB+jz0
デフォルト項目じゃなくてコンテクストメニューの「Edit」項目を変えてやらないといかんよ
レジストリの↓の値ね
HKEY_CLASSES_ROOT\AutoHotkeyScript\Shell\Edit\Command

たぶん前スレでも貼ったような気がするが、UIで対話的にエディタ変更してみるahk。

RegRead, OldData, HKCR, AutoHotkeyScript\Shell\Edit\Command
MsgBox,36,AutoHotkey Scriot Editor Changer,現在ahkのEditに設定されている値`n`n %OldData% `n`n別のエディタを指定しますか?
IfMsgBox,No, ExitApp
SplitPath,OldData,,EditorDir
FileSelectFile,MyEditor,3,%EditorDir%,ahkを編集するエディタを選択,*.exe
IfNotExist, %MyEditor%, ExitApp
RegWrite, REG_SZ, HKCR, AutoHotkeyScript\Shell\Edit\Command,,%MyEditor% `%1
RegRead, NewData, HKCR, AutoHotkeyScript\Shell\Edit\Command
MsgBox,64,AutoHotkey Scriot Editor Changer, %OldData% を`n`n%NewData% `n`n へ変更しました。


703 :名無しさん@お腹いっぱい。:2006/04/16(日) 20:15:21 ID:Kql6t2Dr0
>>701>>702
丁寧にホントにありがとう!遂にできましたよ。
Helpの意味がようやく分かりました

704 :名無しさん@お腹いっぱい。:2006/04/21(金) 18:58:48 ID:6cXk1jHT0
Ctrl+Vでペーストできないソフトにクリップボードの内容を送るにはどうしたらよいのでしょうか?
試したのは↓なんですが、当然できませんでしたw
Send, clipboard

クリップボードと同じ内容のテキストのキーストロークを発生させればいいと思うんですが・・
どなたかご教授下さい

705 :名無しさん@お腹いっぱい。:2006/04/21(金) 19:38:49 ID:IoLpMntm0
一生そこで止まっててください。

706 :名無しさん@お腹いっぱい。:2006/04/21(金) 21:55:03 ID:6cXk1jHT0
残念ながら出来ましたよwスマソw

707 :名無しさん@お腹いっぱい。:2006/04/22(土) 21:15:53 ID:EvYvrKQ80
AutoHotkeyでネットワークプログラムを作るにはどうすればいいですか?
DLLの関数を呼び出すんであろうということは分かるのですが具体的なやり方が分かりません。

708 :名無しさん@お腹いっぱい。:2006/04/22(土) 21:39:51 ID:KJrxOsM90
何がしたいのよ

709 :名無しさん@お腹いっぱい。:2006/04/24(月) 22:48:18 ID:+AskqZAV0
mayuから乗り換えたいのですが、

Space押しながら別のキーを押すとShift扱い
Spaceをすぐに離したらSpace
で、できればSpaceを押して一定時間経過後に離すときは無効
みたいなことってできますか?

710 :名無しさん@お腹いっぱい。:2006/04/24(月) 23:06:32 ID:gA3K0rDg0
>>709
AutoHotkeyを流行らせるアップローダの029.zip
一定時間経過後に〜の方も少し弄ればできる。

711 :名無しさん@お腹いっぱい。:2006/04/24(月) 23:19:44 ID:+AskqZAV0
>>710
ありがとうございます!
SandSって言うんですね!
ちょっと弄ってみます!


712 :名無しさん@お腹いっぱい。:2006/04/29(土) 18:55:41 ID:58FQTls70
zキーを押してる間zキーを10秒毎に2秒間押す、といったコマンドがやりたいのですが
どなたかご存知ありませんか?

713 :名無しさん@お腹いっぱい。:2006/04/29(土) 19:57:56 ID:1hoqMcVM0
タイマ、スリープ
どんな方法でも実現できるじゃん

714 :名無しさん@お腹いっぱい。:2006/04/29(土) 22:47:12 ID:ujA9YEAp0
キーボードでボリュームを操作する方法を探していて
>>71に書かれて内容を試してみましたが
タスクバーにAutoHotkey.iniと表示されるだけで、GUIが表示されません
助言お願いします


715 :名無しさん@お腹いっぱい。:2006/04/29(土) 22:53:23 ID:8YehHyKS0
なまず日記(>>7)行って完成品拾ってきたら?

716 :名無しさん@お腹いっぱい。:2006/04/30(日) 11:04:10 ID:ritjdH350
>>715
ありがとうございます
勉強になりました

調べた末
SoundGet,volume,MASTER
SetFormat, float, 5.2
volume += 0
ToolTip,%volume%,800,700,
を使うことにしました


717 :名無しさん@お腹いっぱい。:2006/04/30(日) 11:11:44 ID:ritjdH350
試作中のやつ貼ってしまった orz
volume += 0要らないです

718 :名無しさん@お腹いっぱい。:2006/05/03(水) 10:42:28 ID:SO1f2yaW0
1.0.43.11 - May 1, 2006

Fixed %A_WorkingDir% on Windows 9x, which was sometimes blank. [thanks Points]

Improved BlockInput with a new mode that blocks only physical movement of the mouse, not keystrokes or mouse clicks.

719 :名無しさん@お腹いっぱい。:2006/05/12(金) 21:25:33 ID:aSuNSZC/0
BREGEXP.ahk、便利なんだけども、良く分からないことがいくつかあります。

list = aaaaxxxxaaaa|bbbxxx|xxxxcccc
Loop, Parse, list, |
{
test := RegExpReplace(A_LoopField, "x*", "", "")
MsgBox, %test%
}

とかやると、前回のデータが残ってしまうんですが…。
皆様どうやって対処してるんでしょうか?

720 :719:2006/05/12(金) 21:32:58 ID:aSuNSZC/0
連稿すみません。途中で投稿してしまいました。 orz

test := RegExpReplace(tmp, "[ \t]*`;[ \t]*$", "", "")

みたいな正規表現もうまく行かなかったり。
$が効かない(?)感じがします。
解決案もってましたらどなたかご教授ください。

721 :719:2006/05/15(月) 14:14:36 ID:I+/Q9YXe0
自己解決しました。
前回のデータが残ってしまうのは、
BREGEXP.AHKの

return result

の部分を、

test:=result
VarSetCapacity(result,64)
return test

のように変更することで解決しました。

$が効かないのはオプションにgを入れてないからでした。

722 :名無しさん@お腹いっぱい。:2006/05/17(水) 10:12:27 ID:A1Pap8lZ0
Guiにツリービューとステータスバーが追加されたね。
とても使いこなす余裕ないけど。

今月号のPCJapanで特集記事が載ってるけど
あれ読んで入門しようと思う人どんくらい居るかなあ…
ttp://www.sbcr.jp/pcjapan/download/art.asp?newsid=126

723 :名無しさん@お腹いっぱい。:2006/05/18(木) 16:34:36 ID:CPxUZBn80
AutoHotKeyのスレあったんですか。
前スレ>>848さんを参考にスクリプトを書いてみたのですが
右ダブルクリック時処理が実行された後に右シングルクリック時処理も実行されてしまいます。
これを回避するにはどうしたらいいのでしょう?例えば・・・

848 :名無しさん@お腹いっぱい。:2005/09/26(月) 20:54:01 ID:Owez+5cA0
>>847
Rbutton Up::
 ;システムのダブルクリック時間取得
 WClickTime := DllCall("User32.dll\GetDoubleClickTime",Int)
 if (A_PriorHotkey = A_ThisHotkey) && (A_TimeSincePriorHotkey < WClickTime)
 {
   ;ダブルクリック時処理(例:Run explorer.exe)
 }
 else
 {
   ;シングルクリック時処理(例:Run notepad.exe)
 }
return

とすると
シングルクリック→notepad.exeは正しいのですが
ダブルクリック→explorer.exeだけでなくnotepad.exeも実行されてしまうのを回避したいのです
どなたかお願いします

724 :名無しさん@お腹いっぱい。:2006/05/18(木) 16:57:39 ID:LJaz32dZ0
>>723
自分だったらこんな感じでやってる。これだとトリプルクリック、クワドロプルクリックへの対応も大した手間無くできるし。
一々システムからダブルクリック時間を取得するのもあれなので決め打ちで書いてる。
RButton::
KeyWait, %A_ThisHotkey%, T0.2
If ErrorLevel = 0
{
KeyWait, %A_ThisHotkey%, D T0.2
If ErrorLevel = 0
{
KeyWait, %A_ThisHotkey%
Run, explorer.exe
return
}
Run, notepad.exe
return
}
return

725 :名無しさん@お腹いっぱい。:2006/05/18(木) 17:35:59 ID:CPxUZBn80
>>724
ありがとうございます。いろんなアプローチがあるんだなぁ・・すごいですね。
なんだかもうチンプンカンプンです><

726 :名無しさん@お腹いっぱい。:2006/05/18(木) 18:15:07 ID:CPxUZBn80
>>724
ちなみにトリプルクリックの場合どうやるんでしょうか?(自分が試した奴ですが・・↓)
本当に馬鹿で・・・すみませんw

RButton::
KeyWait, %A_ThisHotkey%, T0.2
If ErrorLevel = 0
{
KeyWait, %A_ThisHotkey%, D T0.2
If ErrorLevel = 0
{
KeyWait, %A_ThisHotkey%, D T0.2
If ErrorLevel = 0
{
KeyWait, %A_ThisHotkey%
Run, explorer.exe
return
}
Run, notepad.exe
return
}
Run, calc.exe
return
}
return

727 :名無しさん@お腹いっぱい。:2006/05/18(木) 18:24:34 ID:LJaz32dZ0
>>726
RButton:: ;1回目の押し下げ
KeyWait, %A_ThisHotkey%, T0.2 ;1回目の押し上げ待ち
If ErrorLevel = 0
{
KeyWait, %A_ThisHotkey%, D T0.2 ;2回目の押し下げ待ち
If ErrorLevel = 0
{
KeyWait, %A_ThisHotkey%, T0.2 ;2回目の押し上げ待ち
If ErrorLevel = 0
{
KeyWait, %A_ThisHotkey%, D T0.2 ;3回目の押し下げ待ち
If ErrorLevel = 0
{
KeyWait, %A_ThisHotkey% ;3回目の押し上げ待ち
Run, calc.exe ;トリプルクリック処理
return
}
}
Run, explorer.exe ;ダブルクリック処理
return
}
Run, notepad.exe ;シングルクリック処理
return
}
return

728 :名無しさん@お腹いっぱい。:2006/05/18(木) 18:30:36 ID:CPxUZBn80
>>727
なんとお礼を言っていいのやら…。本当にありがとうございます(´Д⊂グスン

729 :名無しさん@お腹いっぱい。:2006/05/19(金) 02:40:46 ID:8luIfCKj0
特定のボタンを押している間だけ、Dを押しつつキーマップの変更(q→a, a→z, etc)を行いたいのですが、
Hotstringを使ってやる場合、どのように記述すればいいんでしょうか
どなたか教えていただけませんか

730 :名無しさん@お腹いっぱい。:2006/05/19(金) 07:48:57 ID:T9QwDw3o0
キーマップという言い方からすると繭使いか?

冗長になるけど、コンビネーションキーでいいんじゃねーの?

[特定のボタン] & q::a
[特定のボタン] & a::z



731 :名無しさん@お腹いっぱい。:2006/05/19(金) 23:10:55 ID:NLL2TGQ40
意味不明で大変場違いな事かもしれませんが・・・
たとえばゲームなどで必殺技のコマンドをマクロ化するスクリプトってどういう感じでしょう?
例としてはジョイスティックのボタンAを押すと昇竜拳が出るというような。。
先月からいじっているのですが、まったく突破法を発見できません(汗
どなたかお知恵を拝借していただけませんでしょうか?

732 :名無しさん@お腹いっぱい。:2006/05/19(金) 23:20:58 ID:K6ZDm6rW0
>731
ジョイスティック系のスレ行って
それ用のソフト探した方が早そう。

733 :名無しさん@お腹いっぱい。:2006/05/20(土) 00:17:17 ID:th5H/M1p0
JoyToKeyかJoyAdapterだな。

734 :名無しさん@お腹いっぱい。:2006/05/20(土) 00:42:13 ID:L7AtsktK0
JoyToKeyは使ってるけど必殺技コマンドのマクロ化は無理っぽい。

735 :名無しさん@お腹いっぱい。:2006/05/21(日) 18:35:02 ID:UkQcXTMP0
Perl厨なのでPERLAHKで楽しく書かせてもらってます。
AHKのお手軽さとPerlのモジュール+正規表現が
合わさってちょっとすごい感じです。

736 :名無しさん@お腹いっぱい。:2006/05/21(日) 21:56:54 ID:hpntYaGp0
mayu でマウスいじれないので、
ahk でそのうちやろうやろうと思いつつも
やり方がよくわからないんで放置してたんだけど、
昨日一晩調べてやっと使えるようになった。
サイドボタン+ホイールとか
右クリック+ホイールとか
サイドボタン+右クリックとか、
いろんな組み合わせが使えるようになって
かなりブラウザが使いやすくなったよ。

737 :名無しさん@お腹いっぱい。:2006/05/21(日) 22:37:38 ID:Uqwos4GY0
>>735
PERLAHKってなんですか?
検索してもいっこもヒットしません・・・

738 :名無しさん@お腹いっぱい。:2006/05/23(火) 00:47:31 ID:k9ZThJgs0
複数のahkをひとまとめにコンパイルとか出来ちゃったり出来ないですか?

739 :名無しさん@お腹いっぱい。:2006/05/23(火) 22:08:10 ID:H/9gJ7En0
関数の中でラベルを作ることは出来ないのでしょうか?
ホットキー定義の中で SetTimer とかを使って
サブルーチンを監視するような処理を、

;;キー定義
F1::DoHoge()

;;関数
DoHoge(){
SetTimer,Hoge
return
Hoge:
なんたら
return
}

みたいにキー定義部分と関数定義で分割して書いて、
コードを読みやすくしたいのですが、うまくいきません。

740 :名無しさん@お腹いっぱい。:2006/05/23(火) 23:59:29 ID:HxMam4eq0
おいおい…なんつー強引なコード書いてんだよ
そんなん全然読みやすくも何ともないから、素直にサブルーチン使え

741 :名無しさん@お腹いっぱい。:2006/05/24(水) 00:21:33 ID:4stag/k10
読みやすくない、、、、つーか、そういうのバグの温床になるよ。

742 :名無しさん@お腹いっぱい。:2006/05/24(水) 04:09:11 ID:vGs8zZxc0
ホットカーペット?
オンドル?

743 :739:2006/05/24(水) 05:08:37 ID:UOl7EfWn0
なぜキー定義と関数を分割したいかというと、
#IfWindowActive でウインドウごとにキー割り当てを変えているときに、
同じ処理を何度も書くよりは一箇所にまとめたかったのです。
autohotkey の関数の意義がよくわかってなかったので
おかしなことを書いてしまいました。すみません。
Gosub を使えばできそうです。

744 :名無しさん@お腹いっぱい。:2006/06/05(月) 20:29:13 ID:LsgHsIWT0
alt+WheelUp/Downでボリューム操作したいんですがどうやればいいですか?
SendKey,{Volume_up/down}で一応できるんですが
MSのユーティリティの機能で画面にメーターが出てきてしまうので
直接操作したいんですが。

745 :名無しさん@お腹いっぱい。:2006/06/05(月) 20:40:12 ID:LeRAOcxJ0
SoundGet
SoundSet

746 :名無しさん@お腹いっぱい。:2006/06/06(火) 17:00:48 ID:bF08BH0f0
F6::
   LoopFlag = 0
   return

F5::
   if LoopFlag = 0
       LoopFlag = 1
   else
       LoopFlag = 0
   
   loop
   {
       if LoopFlag = 0
           break
       Send,{v}
       Sleep,1000
   }
   return

このスクリプトでF5を押すと一秒ごとにSend,{v}し、F6を押すと止まります。
ここまではいいんですが、ループ中に再度F5を押すと止めるようにしたつもりがうまくいきません。
F5を処理中に再度F5を実行する事は出来ないんでしょうか?

747 :名無しさん@お腹いっぱい。:2006/06/06(火) 17:40:38 ID:0igiZf6q0
F6::
LoopFlag = 0
return

F5::
if (LoopFlag) {
LoopFlag = 0
} else {
LoopFlag = 1
}

SetTimer, Sendkeys, 1000
return

Sendkeys:
if (LoopFlag) {
Send, v
}
return

とりあえずこれで動いてるもよん

748 :名無しさん@お腹いっぱい。:2006/06/06(火) 20:33:46 ID:m6+f/8Lj0
>>746
returnまで行ってないスレッドを呼び出すことはできないはず。たとえば、

a::
gosub,b
return

b::
loop{なんたらかんたら}
return

bをLoopしてる間は、Returnまで行ってないa,bともに機能しない
俺も>>747みたく、Settimerでいったんreturnまで行くことで回避してる

749 :名無しさん@お腹いっぱい。:2006/06/06(火) 20:54:45 ID:FXxjK0vn0
FAQ@ヘルプファイルの"How can a repeating action be stopped without exiting the script?"でいいんでね?

750 :名無しさん@お腹いっぱい。:2006/06/07(水) 11:45:55 ID:tTFbfh7+0
CTRL+ALT+DELは送れない?
ランチャーから「プログラムの強制終了」出したいと思ったんだけど

751 :名無しさん@お腹いっぱい。:2006/06/07(水) 12:52:40 ID:nmnaUx310
>>750
Run, taskmgr.exe
で良いんじゃないの?

752 :名無しさん@お腹いっぱい。:2006/06/07(水) 13:35:33 ID:Jepk75LG0
98なんでないのよ

753 :名無しさん@お腹いっぱい。:2006/06/07(水) 15:33:07 ID:zIezkPbs0
Clipboard変数について質問させて下さい<(_ _)>
クリップボードの中身から最初のn文字(例えば5文字分)だけを抽出する方法はありますでしょうか?


754 :名無しさん@お腹いっぱい。:2006/06/07(水) 15:37:12 ID:zBVvY4Eq0
>>753
StringLeft
せっかく日本語のコマンドリファレンスがあるんだから
ちゃんと見た方がいいよ

755 :名無しさん@お腹いっぱい。:2006/06/07(水) 15:44:06 ID:zIezkPbs0
>>754
早速ありがとうございます〜!基本的な事でスマソ
リファレンスよく勉強させて頂きます

756 :名無しさん@お腹いっぱい。:2006/06/21(水) 21:43:40 ID:Y5hBJ6O70
思い出したように保守

日本語リファレンス更新されてるね。管理人さん乙です

757 :名無しさん@お腹いっぱい。:2006/06/22(木) 02:22:24 ID:cHFnTHSC0
日本語版とか無いみたいだけど日本語の処理問題ないの?

758 :名無しさん@お腹いっぱい。:2006/06/22(木) 03:00:35 ID:uSeun5XX0
ある。

759 :名無しさん@お腹いっぱい。:2006/06/22(木) 11:07:49 ID:0P+3tIeu0
FileInstall, Source, Dest, Flag
について質問です。

・・・と書き込もうとしてたんだけど自己解決

FileInstallを使用した際、スクリプトファイルまでのパスに日本語が使われていると
スクリプトファイルをexe化するときにエラーを吐いて上手く変換されないぽい
全部1byteに変えたら上手く変換された

Convert .ahk to .exe
で変換するときだけの問題ぽいので

実際のスクリプトファイルや実行ファイルがあるパスに日本語が含まれていても大丈夫みたい

一応そういうことがあったと報告、重複してたらゴメ

760 :名無しさん@お腹いっぱい。:2006/06/22(木) 15:42:33 ID:POdpE2ro0
>757
IMEの状態管理用プラグインは日本人が作ってる。

761 :名無しさん@お腹いっぱい。:2006/06/22(木) 18:18:32 ID:nKnriN960
そういう事じゃないと思うんだ

762 :名無しさん@お腹いっぱい。:2006/06/22(木) 19:23:51 ID:0qpHhUW90
>>757
とりあえず文字化けとかはしない。
ただ、ダメ文字(文字の2バイト目に0x7C等)が含まれてたりすると、
文字列処理(StringReplaceとかSplitPath等)がうまくいかないこともある。
そのへんはなまずさんのところの文字列処理ライブラリを使えば対処可能。

763 :名無しさん@お腹いっぱい。:2006/06/22(木) 20:37:27 ID:0P+3tIeu0
初歩的な質問ですいません

例えば
ary1〜ary3
と言う名の変数があり
それぞれの中身を参照したい場合に

ary1=変数1
ary2=変数2
ary3=変数3

loop,3
{
msgbox,%ary%A_Index%%
}
return

と言うスクリプトを考えたのですが、エラーを吐き動作しません。



764 :名無しさん@お腹いっぱい。:2006/06/22(木) 20:38:00 ID:0P+3tIeu0
そこで暫定的に

ary1=変数1
ary2=変数2
ary3=変数3

loop,3
{

test( ary%A_Index% )
}
return

test( tmp )
{
msgbox,%tmp%
return
}

このような処理方法にしたのですがもっとスマートな方法はありませんか?

765 :名無しさん@お腹いっぱい。:2006/06/22(木) 21:02:30 ID:YZ8pBvMe0
temp := ary%A_Index%
msgbox,%temp%

これでいける

766 :名無しさん@お腹いっぱい。:2006/06/22(木) 23:27:57 ID:0P+3tIeu0
俺は
=

:=
の使い分け方が理解できてませんね

これならスマートにできそうです。
ありがとうございました。

767 :名無しさん@お腹いっぱい。:2006/06/23(金) 21:34:38 ID:8JS9LCGx0
右コントロールをAltにしたいんですが、
RCtrl::Send,{Alt}だとCtrlがAltにかわるだけで、
Alt+別のキーを認識してくれないんですが、
どう設定すればいいのでしょうか。

768 :名無しさん@お腹いっぱい。:2006/06/23(金) 21:48:57 ID:FfdqmuQi0
>>767
RCtrl::Alt

詳しくは↓参照
ttp://lukewarm.s101.xrea.com/remap.htm

769 :名無しさん@お腹いっぱい。:2006/06/23(金) 22:01:48 ID:FNCmH44Z0
http://lukewarm.s101.xrea.com/remap.htm
controlとaltが交換できるかどうかは知らない。

770 :名無しさん@お腹いっぱい。:2006/06/23(金) 22:03:13 ID:FNCmH44Z0
かぶった

771 :名無しさん@お腹いっぱい。:2006/06/23(金) 22:47:38 ID:8xgDybgz0
むけばいいさ

772 :名無しさん@お腹いっぱい。:2006/06/24(土) 02:25:25 ID:qEZk/pQ+0
文字列サンクス。
国際化きぼんしといたほうがよさそうだな。

773 :名無しさん@お腹いっぱい。:2006/06/25(日) 07:19:11 ID:2OPiWT000
Shift+Space で IME のトグルを行いたいのですが,
Meadow では除外するために以下の設定をしました.

$+Space::
IfWinActive, ahk_class MEADOW
{
Send, +{Space}
return
}
Else
{
Send, {vkF3sc029}
return
}

しかし Firefox で Scroll with IME を有効にしているとき,
Shift+Space を押すと IME がトグルしかつ,
Space の入力による下方向スクロールが行われてしまいます.
これを回避するにはどうすればよいでしょうか?

774 :名無しさん@お腹いっぱい。:2006/06/25(日) 21:42:04 ID:4MUoUZSq0
#IfWinActive
じゃないの?

775 :773:2006/06/25(日) 23:46:38 ID:2OPiWT000
>>774
なるほど #つきのコマンドでできるのですね.
以下のようにして実現できました.

#IfWinNotActive, ahk_class MEADOW
+Space::Send, {vkF3sc029}
#IfWinNotActive


776 :名無しさん@お腹いっぱい。:2006/06/27(火) 19:35:19 ID:Fgs5cyTC0
UWSCとどっちが強い?

777 :名無しさん@お腹いっぱい。:2006/06/28(水) 01:16:03 ID:1Uw7Us+E0
>>776
[AutoHotkey] 攻撃:87 素早さ:59 防御:39 命中:18 運:48 HP:277
[UWSC] 攻撃:41 素早さ:95 防御:98 命中:18 運:88 HP:288

AutoHotkey vs UWSC 戦闘開始!!
[UWSC]の攻撃 MISS [AutoHotkey]は攻撃を回避した。
[AutoHotkey]の攻撃 HIT [UWSC]は74のダメージを受けた。
[UWSC]の攻撃 HIT [AutoHotkey]は113のダメージを受けた。
[AutoHotkey]の攻撃 MISS [UWSC]は攻撃を回避した。
[UWSC]の攻撃 MISS [AutoHotkey]は攻撃を回避した。
[AutoHotkey]の攻撃 MISS [UWSC]は攻撃を回避した。
[UWSC]の攻撃 HIT [AutoHotkey]は94のダメージを受けた。
[AutoHotkey]の攻撃 MISS [UWSC]は攻撃を回避した。
[UWSC]の攻撃 HIT [AutoHotkey]は79のダメージを受けた。
[UWSC]が[AutoHotkey]を倒しました(ラウンド数:5)。

orz

778 :名無しさん@お腹いっぱい。:2006/06/28(水) 03:26:29 ID:1HU1H9N90
マルチャン

779 :名無しさん@お腹いっぱい。:2006/06/28(水) 15:13:01 ID:P/5ViBO60
>>776
ぬるさんとこの旧サイト過去ログが参照できないんでうろ覚えだけど
uwscとDMonkeyか何かと演算速度比較してぶっちぎりトップだったような


780 :名無しさん@お腹いっぱい。:2006/06/28(水) 21:25:25 ID:RTMBh9ap0
AHKだとCapsLockをControlにできないそうですが
では皆さんは何を使っていますか?

781 :名無しさん@お腹いっぱい。:2006/06/28(水) 22:13:43 ID:gxLI0N320
WinMinimizeで最小化するとデスクトップの左下にタイトルバーのみの状態になるソフト(たとえばJane)を、
最小化ボタンを押したときのように完全に最小化するにはどうすれば良いんでしょう。

782 :名無しさん@お腹いっぱい。:2006/06/28(水) 22:31:20 ID:p4FtCeYm0
>>780
http://www.losttechnology.jp/Tips/keyscancodemap.html

783 :名無しさん@お腹いっぱい。:2006/06/29(木) 00:12:50 ID:KazRnh6f0
>>781
ttp://lukewarm.s101.xrea.com/commands/WinMinimize.htm


784 :名無しさん@お腹いっぱい。:2006/06/29(木) 02:56:57 ID:YMIL19fZ0
>>783
できました。ありがとう。

785 :名無しさん@お腹いっぱい。:2006/06/29(木) 12:55:57 ID:mOUKYabn0
ファイルのドラッグ&ドロップに対応してないアプリに
AutoHotKeyを使って対応させたいとか思ってます.

1.LButton Upで該当アプリにフックかける
2.今つかんでいるファイル名を手に入れる
3.ファイル名つかってアプリになんかする

...という手順で実装しようと思っていますが,
2.をahkでどうやったらいいものか困っています.
なにかいい方法ないでしょうか?

786 :名無しさん@お腹いっぱい。:2006/06/29(木) 14:09:16 ID:2lcTgBXF0
Ctrl+Cでクリップボードにファイル名を入れて、吸い出す

787 :名無しさん@お腹いっぱい。:2006/06/29(木) 14:38:33 ID:gyii8ANd0
ExplorerならF2押してリネームモードにしてからCtrl+Cか。
誤動作したら嫌なことになりそうだがw

788 :名無しさん@お腹いっぱい。:2006/06/29(木) 14:47:28 ID:OjEa1TAf0
どういうことがしたいのかよくわかってないけど
ファイル名が欲しいならF2押さなくてもctrl+cだけで
フルパスで取得できない?

789 :名無しさん@お腹いっぱい。:2006/06/29(木) 16:30:38 ID:2lcTgBXF0
できるよ、しかもフルパスで取れる

790 :名無しさん@お腹いっぱい。:2006/06/29(木) 16:36:16 ID:oU3zY0Gn0
ドロップ先にGuiウィンドウを挟んでGuiDropFiles:で知る

791 :名無しさん@お腹いっぱい。:2006/06/29(木) 17:27:49 ID:mOZeA58w0
>>782
えっとじゃあ CapsLock をコントロールにするだけなら
↓でいいんでしょうか?

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,3a,00,1d,00,00,00,00,00


792 :785:2006/06/29(木) 17:49:04 ID:mOUKYabn0
>>786-789
言葉足らずで申し訳ありません.
「ExplorerでCtrl+cをおしてファイル名を取得」
→「該当アプリにファイル名使ってなにかする」
というのをやりたいわけではなく
「該当アプリにファイルをDropしたときにファイル名を使ってなにかする」
を実現したいのです.

>>790
LButton Upしたときに
MouseGetPosしてその位置に透明なGUI窓を即座に作って
GuiDropFiles: でファイル名をゲットするということでしょうか.
ちょっと考えてみます.

793 :名無しさん@お腹いっぱい。:2006/06/29(木) 18:49:05 ID:n43RwllZP
あほには何言っても無駄か

794 :名無しさん@お腹いっぱい。:2006/06/29(木) 18:55:00 ID:OjEa1TAf0
ドラッグ&ドロップするアイコンはその「該当アプリ」のものじゃなくちゃ
絶対だめなの?
そうじゃなくていいなら
run,c:\program files\hoge.exe %1%
みたいなスクリプトを書いてexeにコンパイルしたファイルに
ドラッグ&ドロップという方法でも
いいような気がするんだけど、だめかな

コンパイルしたファイルにドラッグ&ドロップで%1%が使えるかは
わからなかったので今試した

msgbox,%1%
;終わり
exit

こんなスクリプトを書いてコンパイルしたものにファイルを
ドラッグ&ドロップしたら投げたファイルのフルパスがメッセージ
ボックスで出たから大丈夫じゃないかな

795 :名無しさん@お腹いっぱい。:2006/06/29(木) 19:03:37 ID:2lcTgBXF0
やりたいことは理解できるが何で説明し直してるのかがわからん
ファイル名取れたらその後は自力でなんとかするって話じゃないの?
785でも「何か」のしかたついては聞いてきてないようだが。

796 :名無しさん@お腹いっぱい。:2006/06/29(木) 19:15:36 ID:2lcTgBXF0
ごめん今理解した。掴んだ時じゃなくて話した時にファイル名取りたいのか
んでショートカットアイコンじゃなくて起動中の該当アプリに
ファイルをドロップさせたいんだよね?

790のは該当アプリに直接ドロップするのではなく、
マウス監視してドラッグしたら最前面の小窓出してそこにドロップてことでは?
irvineみたいな感じで。
ウィンドウを透明化したら制御権取れないような希ガス

797 :名無しさん@お腹いっぱい。:2006/06/29(木) 19:19:42 ID:OjEa1TAf0
>>796
あーそうなのか
オレはファイルへのドラッグ&ドロップだと思ってたごめん

798 :名無しさん@お腹いっぱい。:2006/06/29(木) 20:44:53 ID:YMIL19fZ0
面倒なので検証してないが、

1,#Ifwinexistで該当アプリがあるときのみ以下を実行
2.左ボタンを押し下げた時点で、Ctrl+C
3.左ボタンを押し上げた時点で、
 a、もしマウスの下のウィンドが該当アプリならば→2のファイル名を使って処理
 b、違うなら放置

ではいかんのか?

799 :785:2006/06/29(木) 22:08:24 ID:mOUKYabn0
>>794-797
「離した時にファイル名取りたい」まさにそれです.
たしかに「別ショートカット作ってそこにドロップ」「別GUIにドロップ」
に逃げればなんにも問題ないんですが...

>>798
電卓で試してみました.

#IfWinExist ahk_class SciCalc
$LButton::
ClipSaved := ClipboardAll
Clipboard =
Send, ^c
ClipWait, 0.1
SelText := Clipboard
Clipboard := ClipSaved
ClipSaved =
Send, {LButton Down}
Return
#IfWinExist

800 :785:2006/06/29(木) 22:09:59 ID:mOUKYabn0
#IfWinExist ahk_class SciCalc
$LButton Up::
Send, {LButton Up}
MouseGetPos, mX, mY, mID, mCtrl
WinGetClass, mClass, ahk_id %mID%
if (InStr(mClass, "SciCalc") > 0)
{
MsgBox %SelText%
}
Return
#IfWinExist
$LButton Up::
Send, {LButton Up}
Return

なんとか目的の動作は実現できそうです.ありがとうござしました.
ただ...LButton Down/Up奪っちゃうと他の動作が怪しくなりますね...

801 :名無しさん@お腹いっぱい。:2006/06/29(木) 22:52:55 ID:YMIL19fZ0
>>800
最後の3行いらないだろ
他の動作でUp/Downを奪わないための#IfWinExistなんだから

802 :名無しさん@お腹いっぱい。:2006/07/01(土) 12:37:26 ID:kCidEIr20
バックグラウンドにあるウィンドウを指定して
キーをSendするにはどうすればいいですか?
WinActivate するとフォーカスが切り替わってもとに戻せないし
できればフォーカスを切り替えたくありません

803 :名無しさん@お腹いっぱい。:2006/07/01(土) 12:47:27 ID:0Hi33u+L0
WinexistとかMouseGetPosで目的のウインド取得してSendMessageは?

804 :名無しさん@お腹いっぱい。:2006/07/01(土) 14:30:17 ID:ejLYm2Hs0
>>802
ControlSend

805 :名無しさん@お腹いっぱい。:2006/07/01(土) 18:47:47 ID:kCidEIr20
>>804
ControlSend, , i, ahk_class Notepad
なら希望の動作になりましたが
実は送りたいアプリは mAgicTV という TV 視聴ソフトで
ControlSend, , i, ahk_class mAgicTVWindow
とすると mAgicTV がアクティブになってしまいました。

WinGet, id, ID, A

WinActivate, %id%
ではさんでみてもダメでした。

なんとかフォーカスを変えない方法ないでしょうか?

806 :名無しさん@お腹いっぱい。:2006/07/01(土) 21:43:19 ID:9gtYySno0
キーのリピート入力ってよくやると思うんですが、
loop と sleep でぐるぐる回すしか方法ないんですか?

807 :名無しさん@お腹いっぱい。:2006/07/01(土) 23:47:50 ID:DmCRCPtK0
キーダウン キーアップで間に間隔入れたら勝手にキーリピートになるんじゃないの

808 :806:2006/07/02(日) 00:09:52 ID:Ab02y6aS0
>>807
実際今そういう風にやってるんですが、
なんか無理やりなやり方のように思えるので、
こんなやり方でいいのかと思って。
ちなみに今使ってるのはこんな感じです。

F1::MyKeyRepeat("^{Right}",200}
F1 Up::MyKeyRepeatStop()

;;
MyKeyRepeat(key,sleep=80){
global MyKeyRepeatLoop
MyKeyRepeatLoop = 1
loop {
if MyKeyRepeatLoop != 1
break
Send,%key%
sleep,%sleep%
}}

MyKeyRepeatStop(){
global MyKeyRepeatLoop
MyKeyRepeatLoop=0
}


809 :名無しさん@お腹いっぱい。:2006/07/02(日) 02:02:42 ID:Q+Ta5ezk0
イベントじゃなくて SendコマンドのほうをUp/Downで指定したらどうよ
勝手にリピートしてくれないのか? 試してないけど

F1:: Send,{Right Down}
F1 Up:: Send, {Right Up}


810 :名無しさん@お腹いっぱい。:2006/07/04(火) 18:26:50 ID:cof1Hegt0
#p::SendMessage, 0x111 , 1007, 273, , ahk_class PrxTronCls
で、Proxomitronのバイパスの切り替えをしたいですが、ウインドウが無い限りできません。
どうしたらいいでしょうか?

811 :名無しさん@お腹いっぱい。:2006/07/04(火) 19:43:46 ID:AkaYH3FC0
POstMessageでは?

812 :名無しさん@お腹いっぱい。:2006/07/04(火) 21:54:04 ID:rHd9XQGV0
>>810
俺もやってみようとしたができないな。
AHK使わないでWPara1007 LPara273をSend/Postしたら、タスクトレイにあるときでもちゃんとできたんだが。
ウインドの指定のやり方かな。

813 :806:2006/07/04(火) 21:59:05 ID:G6/vCvv+0
>>809
返事が遅れてすみません。
いままでその方法ではリピートできないと勝手に思っていたのですが、
普通のキーでならそれでできますね。

実はマウスボタンで使うのが目的だったので、
マウスボタンでしか実験していなかったのですが、
マウスでは同様の方法でリピートしてくれなかったため、
勘違いしてました。

814 :名無しさん@お腹いっぱい。:2006/07/04(火) 22:13:53 ID:WJt1gwBr0
もれは
Comandiux
ttp://www.scot.sk/comandiux/index.htm
でポストしてるけどウィンドウなくてもバイパス出来る。

815 :名無しさん@お腹いっぱい。:2006/07/04(火) 22:38:44 ID:ZOjlKI+I0
>>810

DetectHiddenWindows, On
SendMessage, 273, 1007, 0,, ahk_class PrxTronCls
DetectHiddenWindows, Off
return

ではダメですか?

816 :名無しさん@お腹いっぱい。:2006/07/04(火) 22:41:01 ID:iCn4YQLM0
>>813
マウスだったら Sendより MouseClickのがいいんじゃまいか
D|Uで押し下げ/押し上げ状態もキープできる。

あとホイールでスクロールをどうにかしたいって話だったら過去レスに漁れば出て来ると思う

817 :名無しさん@お腹いっぱい。:2006/07/04(火) 22:48:33 ID:rHd9XQGV0
>>815
810じゃないけど、これで動きますね
DetectHiddenWindowsなんてコマンドあったのか

不具合でまくりそうだけど、
SendMessage, 0x111 , 1007, 273, , ahk_id 0xFFFF
でもいけました。
存在するすべてのウィンドにSendMessageですw

818 :名無しさん@お腹いっぱい。:2006/07/05(水) 01:01:48 ID:4vOv08xf0
>>811-817
ありがとうございます。DetectHiddenWindowsを使えばいけそうですが、誤爆が怖いんでWinShow使ってやってみます。
ttp://lukewarm.s101.xrea.com/commands/WinShow.htm
(送ったあとはWinHide使えばいいのかな。個人的にはDetectHiddenWindowsが楽そうなんですが)
HoeKeyの時は問答無用で送れたんでちょっと困ってたところ、ありがとうございました。
>>817
それは誤爆が怖いと思うが、いかがなもなか('Д`;) 最初はそれでやってたけど・・・

819 :名無しさん@お腹いっぱい。:2006/07/05(水) 01:45:01 ID:4vOv08xf0
別にクラスをちゃんと指定すればおkでしたね。ごめんなさい。
需要無いかもしれませんが、foobar2000でsendmessageを使う方法と、疑似Open/Hideコマンドです。Winキーを多用する人はうはうはかもしれません。0.8.3
(もしくはすでに知ってるかもしれませんが。)
#q::
DetectHiddenWindows, On
SendMessage, 273, 40010, 0,, ahk_class {DA7CD0DE-1602-45e6-89A1-C2CA151E008E}
DetectHiddenWindows, Off
return

#o:: ;最小化時、トレイに格納する場合だけ動作確認
IfWinExist, ahk_class {DA7CD0DE-1602-45e6-89A1-C2CA151E008E}
{
WinMinimize, ahk_class {DA7CD0DE-1602-45e6-89A1-C2CA151E008E}
return
}
else
{
DetectHiddenWindows, On
WinActivate, ahk_class {DA7CD0DE-1602-45e6-89A1-C2CA151E008E}
DetectHiddenWindows, Off
return
}

820 :名無しさん@お腹いっぱい。:2006/07/08(土) 07:42:17 ID:qGKJnijM0
AHKから録音ソース(マイクやライン入力)を切り替えたいのですがどうすれば良いのでしょうか?

SoundSetで色々試してみたつもりですが録音ソースを切り替える機能は見つけられませんでした...

821 :名無しさん@お腹いっぱい。:2006/07/08(土) 10:50:35 ID:HLRnu2ow0
漏れも前やったな〜
見当たらないんだよね

822 :名無しさん@お腹いっぱい。:2006/07/08(土) 11:39:03 ID:qe11Eg9V0
DllCall("winmm.dll\mixerGetNumDevs")
みたいな感じで、MixerのAPI呼び出していけば行けるんじゃないか

APIはさっぱりわからんのであとはまかせるw

823 :名無しさん@お腹いっぱい。:2006/07/08(土) 13:24:39 ID:ALwXZ4jD0
いざとなったらプロパティ表示してソース選び直して[OK]押下、をエミュレートするとか
見た目はあまり美しくはないが

824 :名無しさん@お腹いっぱい。:2006/07/08(土) 21:06:55 ID:z5OGIaz00
>>821-823
簡単には行かないみたいですね
API呼ぶのはちょっと敷居が高すぎる気がするので
sndvol32.exe /r にMessage投げてごまかすことにします
ありがとうございました。

825 :名無しさん@お腹いっぱい。:2006/07/11(火) 13:55:28 ID:EvY29YJw0
Guiのタブがえらく使いにくい
3つのタブをGui,Addで作成すると、

1  2  3
○ ▲ ◆
↑こうなるんだけど(上段:タブ番号、下段:それぞれのタブに配置したコントロール)、
そこからさらに2つタブを追加しようとすると

5  4  1 2 3
○ ▲ ◆
↑このように追加される


1  2  3 4 5
○ ▲ ◆
か、

5 4 1  2  3
    ○ ▲ ◆
せめてこうして欲しいんだが、何とかなりませんか

826 :名無しさん@お腹いっぱい。:2006/07/13(木) 03:36:51 ID:eLwJZVSR0
ソースを弄る

827 :名無しさん@お腹いっぱい。:2006/07/13(木) 07:24:10 ID:0SzuAgk/0
autoitはどうなの?

828 :名無しさん@お腹いっぱい。:2006/07/14(金) 00:46:44 ID:Fp8tR7J00
http://ex16.2ch.net/test/read.cgi/news4vip/1152458597/

829 :名無しさん@お腹いっぱい。:2006/07/16(日) 04:02:55 ID:xOvCEZJX0
ホットキーで
Ctrl-マウスクリック
の組み合わせのキーを書いているのですが、
時々コントロールが抜けて出力されることがあります。

例えば firefox では
拡大縮小が Ctrl-WheelUp, Ctrl-WheelDown に割り当てられてるのですが、
a:: Send,^{WheelDown}
こういうようにキー割り当てして a をリピートすると、
なぜか時々純粋な WheelDown が送られ、画面がスクロールしていってしまいます。

他にも、エクスプローラではCtrl-ダブルクリックで
フォルダを新しいウインドウで開けるのですが、
MButton:: Send,^{LButton 2}
こう記述しても新しいウインドウが開く時と開かないときがあります。

原因がよくわからないのですが、
確実にCtrl-マウスクリックの組み合わせが出力できる方法はないでしょうか。

830 :名無しさん@お腹いっぱい。:2006/07/16(日) 10:48:40 ID:JXnX7QJM0
SendMode
Sleep
色々ある

831 :名無しさん@お腹いっぱい。:2006/07/16(日) 15:20:28 ID:xOvCEZJX0
どうもありがとうございます。

MButton:: Send,^{LButton 2}
こちらについては、sleep を間に入れて時間を置くことで
きちんとダブルクリックと認識させることができました。

a:: Send,^{WheelDown}
こっちは、いままで firefox でしか検証していなかったのですが、
先ほど OpenOffice で試したところ、
なんとそのままでまったく問題なく動いていました。
firefox でのみ、どうしてずれるのかよくわかりませんが、
a::
Send,{Ctrl Down}
Send,^{WheelDown}
sleep 300
Send,{Ctrl Up}
return
このようにしてみたところ、とりあえずうまくいくようになりました。

832 :名無しさん@お腹いっぱい。:2006/07/20(木) 03:18:26 ID:aCwM17AQ0
ウインドウの操作を行いたいと思うのですが,思うようにいかないので質問させてください.
目標としては,ウィンドウをhoekeyのようになめらかに移動させること,
トグルでの水平方向,垂直方向への最大化です.

色々なスクリプトを参考に以下のように書いてみました.
ディレイを小さくしたのですが,移動がカクカクしてしまうこと,
水平方向,垂直方向の最大化は同時に複数最大化するとサイズが上書きされてしまう問題があります.
ご意見を頂けないでしょうか.

833 :名無しさん@お腹いっぱい。:2006/07/20(木) 03:24:33 ID:aCwM17AQ0
;●ディレイの調節
SetWinDelay, 0

;● ウインドウ位置移動
#Left:: ;[Win] 移動 (←)
#Right:: ; (→)
^!h:: ;Ctrl+Alt+Hで水平方向の最大化
^!v:: ;Ctrl+Alt+Vで垂直方向の最大化
WinGetPos,x,y,w,h,A
if A_ThisHotkey = #Left ;
x -= 5
else if A_ThisHotkey = #Right ;
x += 5
else if A_ThisHotkey = ^!h{
if(w = A_ScreenWidth and x = 0){
w := w_h_old
x := x_h_old
}

834 :名無しさん@お腹いっぱい。:2006/07/20(木) 03:25:39 ID:aCwM17AQ0
else{
w_h_old := w
x_h_old := x
w := A_ScreenWidth
x := 0
}
else if A_ThisHotkey = ^!v
if(h = A_ScreenWidth and y = 0){
h := h_v_old
y := y_v_old
}
else{
h_v_old := h
y_v_old := y
h := A_ScreenWidth
y := 0
}

WinMove,A,,%x%,%y%,%w%,%h%
return

835 :名無しさん@お腹いっぱい。:2006/07/24(月) 01:39:51 ID:DNeHp1KC0
タスクトレイにある特定のアプリのアイコン(例hoge.exe)1個だけを
左クリックするだけのスクリプトを作ろうとして挫折してます。
このアプリは、コマンドラインの引数を指定できず、
とにかくタスクトレイのアイコンをクリックする以外にどうしようもないやつで。
いい方法はないですかね。



836 :名無しさん@お腹いっぱい。:2006/07/24(月) 02:53:57 ID:9I40KnIj0
TrayCommand
ttp://hp.vector.co.jp/authors/VA026310/soft2.htm

837 :835:2006/07/24(月) 03:41:24 ID:DNeHp1KC0
>>836
おーこんな便利なのがあったんですか。
さっそく引数をつけて、適当なキーでiniファイルに登録しました。ありがとう。

838 :名無しさん@お腹いっぱい。:2006/07/24(月) 03:53:26 ID:7uh8bAg30
どういたしまして

839 :名無しさん@お腹いっぱい。:2006/07/24(月) 03:56:34 ID:Pbf/E+DV0
流行らせるページにある

840 :名無しさん@お腹いっぱい。:2006/07/24(月) 04:26:24 ID:l/qgUJwX0
前スレのjaneのdatもらえませんか?

841 :名無しさん@お腹いっぱい。:2006/07/24(月) 09:06:31 ID:EJoF76QI0
>>840
ttp://makimo.to/cgi-bin/html2dat/html2dat.cgi?pc7_software/1098/1098531338.html

842 :名無しさん@お腹いっぱい。:2006/07/24(月) 15:37:02 ID:6Dn/b3UJ0
プロセスの「ユーザー名」(Windowsタスクマネージャ→プロセスタブで見られる) を取得する方法はありますか?
よろしくお願いします!

843 :名無しさん@お腹いっぱい。:2006/07/24(月) 16:00:38 ID:ozVjeoNVO
こちらこそよろしく!
俺は雅也。まー坊って呼んでくれ!

844 :名無しさん@お腹いっぱい。:2006/07/24(月) 16:02:37 ID:6Dn/b3UJ0
( ^ー゚)

845 :名無しさん@お腹いっぱい。:2006/07/24(月) 18:06:13 ID:ozVjeoNVO
まー坊って呼べっつってんだろ。日本語通じないんか?

846 :名無しさん@お腹いっぱい。:2006/07/24(月) 18:27:05 ID:NC3ES9PEP
やん某

847 :名無しさん@お腹いっぱい。:2006/07/24(月) 18:54:27 ID:7uh8bAg30
”マー坊“くん

”!?“

848 :名無しさん@お腹いっぱい。:2006/07/25(火) 00:11:34 ID:DKWTwnVd0
>>841
ありがとうございます
亀レスごめんなさい
これで勉強できます

849 :名無しさん@お腹いっぱい。:2006/07/26(水) 18:57:00 ID:ZZJ5BPcR0
マウスカーソルを右端に寄せてホイールスクロールするとボリューム操作
みたいな事って出来ますか?

850 :名無しさん@お腹いっぱい。:2006/07/26(水) 19:01:43 ID:8mmomP4l0
頑張れば多分できる

851 :名無しさん@お腹いっぱい。:2006/07/26(水) 19:05:14 ID:Jv4bTjlL0
>>849
MouseGetPos…マウスの座標等を取得
SoundSetWaveVolume…音量を変更する
WheelDown/WheelUp…ホイールを回転させたとき

852 :名無しさん@お腹いっぱい。:2006/07/26(水) 19:50:19 ID:7nemhq5U0


853 :名無しさん@お腹いっぱい。:2006/07/26(水) 20:25:01 ID:4OoZiY1v0
>>851
まれに見る良レスだな。

854 :名無しさん@お腹いっぱい。:2006/07/31(月) 18:22:20 ID:bPE7OiBX0
Logicoolのマウスドライバ、SetPointがよく落ちてプロセスだけ残ってしまいます
SetPoint.exeを殺して再起動するスクリプトを書いてくださいませ

855 :名無しさん@お腹いっぱい。:2006/07/31(月) 18:48:20 ID:0t/+ddRa0
Process Close, SetPoint.exe
Process, WaitClose, SetPoint.exe

Run, **ふるぱす**\SetPoint.exe

落ちてからならこれでもいいだろうけど
監視したいならちょっとややこしいかも


856 :名無しさん@お腹いっぱい。:2006/07/31(月) 18:55:52 ID:oc5sAuQK0
MX1000 使ってるけど setpoint 落ちたことないよ?
マウスによって安定度が違うのかもしれないが、
バージョンあげてみたら?

857 :名無しさん@お腹いっぱい。:2006/07/31(月) 19:00:04 ID:bPE7OiBX0
USB接続のKVMスイッチ使ってて切り替えたときによく落ちるのです
各種バージョンは試してみました

858 :名無しさん@お腹いっぱい。:2006/07/31(月) 20:31:27 ID:zq3T1Gna0
夏だなぁ

859 :名無しさん@お腹いっぱい。:2006/08/01(火) 05:10:23 ID:riT7Kvih0
8月でもクリスマス島か

860 :名無しさん@お腹いっぱい。:2006/08/05(土) 06:25:55 ID:WcqHgm+Q0
特定ブラウザを起動しているときだけ、insert、break、capsLockキーあたりのあまり使わないキーに
「ワンクリックで画像保存」を割り当てたいのですがうまくいきません。

Break::
IfWinActive,ahk_class IEFrame
{
Send,{RButton}
Send,s
Send,!s
}

else
{
Exit
}


上うまくいかない例、Sendのあたりをいろいろいじってみてもどうもうまくいきません。
どうかアドバイスをお願いします。

861 :名無しさん@お腹いっぱい。:2006/08/05(土) 09:51:50 ID:4KEWoUh00
とりあえずコマンドの合間にsleep入れないとだめそうではある

862 :名無しさん@お腹いっぱい。:2006/08/05(土) 10:15:42 ID:UFh/CFsn0
>>861
適当にsleep,250いれて、
キーをcapslock::から、Ins::にしたらうまくいった。

日本語環境だとcapslockはうまく利用できないみたいですね。
os、imeあたりの制御が優先されるためかも。


863 :名無しさん@お腹いっぱい。:2006/08/05(土) 10:28:45 ID:qCpTWQJA0
>>862
日本語版だとCAPSのKeyUpが取得できないらしい。

864 :名無しさん@お腹いっぱい。:2006/08/07(月) 18:35:57 ID:wlefqxTe0
UWSCとAHKの比較

AHKの長所 --- AU3_SPY
これがいちじるしく使える。クラス名取得が便利すぎ。

AHKの短所 --- ヘルプ、解説
海外ツールゆえの弱点。
日本語化されてないとこもある。
その他文法解説が弱い。

UWSCの長所 --- ヘルプ、国産、解説本

865 :名無しさん@お腹いっぱい。:2006/08/08(火) 17:00:56 ID:xAuF67xb0
やる気さえあれば、言葉の壁なんてたいしたことないと思うけど。

866 :名無しさん@お腹いっぱい。:2006/08/08(火) 21:43:28 ID:10WWq08h0
スクリプト系のツール使おうって奴が英語読めない方がおかしいんだから
日本語(2byte文字)が全く扱えないとかならまだしも日本語化されてないとか、
解説が英語だとかなんて短所にならん。それにAHKは文法解説もきちんとしてる。
弱いと感じるなら、それは君の英語読解力が弱いからだ。

つまりAHKに海外ツールゆえの弱点があるのではなく、
君自身に英語力が低いという弱点があるってことだなw

867 :名無しさん@お腹いっぱい。:2006/08/08(火) 22:13:51 ID:xAuF67xb0
まるで留学先で日本語が通じないことにキレてるようなもんだよな。
コンピュータがどこで発明されたか知らんのか。

868 :名無しさん@お腹いっぱい。:2006/08/08(火) 22:37:30 ID:68cnhmau0
おれは英語そこそこ出来るからそこそこ使えて問題は感じないぜ、
英語できない奴はかわいそう、
なんて考えてる奴こそ、いつまでたってもそこそこしか使えないんだよ。

869 :名無しさん@お腹いっぱい。:2006/08/08(火) 22:56:26 ID:RC9dTpIq0
完璧に使えないと駄目だったらあれだな。

UWSCのドキュメントも見てみたけど、文法解説はいまひとつだと思った。実用には十分だと思うけど。
AHKは流行らせるページの文法解説ってそんなに弱いか?

個人的には、AHKの最大の長所は「過去の資産が膨大にある」点だと思うんだが。

870 :名無しさん@お腹いっぱい。:2006/08/08(火) 22:56:38 ID:wARQiyMe0
>>866
まず一行目を論理的に説明して

871 :名無しさん@お腹いっぱい。:2006/08/09(水) 01:27:51 ID:upMtDTV/0
ここ耐性低いな

872 :名無しさん@お腹いっぱい。:2006/08/09(水) 01:28:39 ID:lyPkatCS0
入れ食いだな。

873 :名無しさん@お腹いっぱい。:2006/08/09(水) 01:50:17 ID:+c+/K6Sh0
フレーミングは参加した時点で(何を言おうが)負け。
見かけたら、通り過ぎるまでじっと待つのが最善の策。

よって、俺も負け。

874 :名無しさん@お腹いっぱい。:2006/08/09(水) 01:53:27 ID:9toRUw2f0
俺も負け

875 :名無しさん@お腹いっぱい。:2006/08/09(水) 02:07:24 ID:AXyISart0
耐性とかどうでもいいんだけど
そもそも俺は荒れても構わないし
反応したやつに反論できないなら普通にそいつの負け

876 :名無しさん@お腹いっぱい。:2006/08/09(水) 10:12:49 ID:PuK1jjIl0
ネット上での言い争いの事をフレームというのだな
>873のおかげでひとつ賢くなった

877 :名無しさん@お腹いっぱい。:2006/08/09(水) 11:23:35 ID:4XOMBbI70
というか AHK と UWSC って比べるようなソフトだっけ?
用途が違うような気もするが。

878 :名無しさん@お腹いっぱい。:2006/08/09(水) 11:29:02 ID:q+f9pvSC0
要は、必死で煽り文書いてみたけど、
反論に答える力がないから、すぐに釣り宣言して逃走ってことでいいの?

879 :名無しさん@お腹いっぱい。:2006/08/09(水) 11:59:39 ID:cLFR+lkB0
>>878
正解

880 :名無しさん@お腹いっぱい。:2006/08/09(水) 23:15:43 ID:NC9fRfuw0
>>232と(たぶん)同じだから環境特有の問題じゃないと思うんだけど、
vkF2 & up::SoundSet,+2.5
vkF2 & down::SoundSet,-2.5
ってスクリプト動かすと、ひらがなキーを一度でも押すとずっとvkF2押しっぱなしな状態になってしまう。
以降はもうupかdown入力するだけでSoundSet実行。
mayuでひらがなキーをmod0にして使ってたのを乗り換えたいんだけど解決方法無いかな?

881 :名無しさん@お腹いっぱい。:2006/08/12(土) 05:57:56 ID:dKEaHFEv0
>>878
しかし、まともに反論しても、
フレーミングに参加するやつは負け組みといわれるのが2チャンネル。

もしくは、「ねたにマジレスすんな、お前は釣られているのだが……」

882 :名無しさん@お腹いっぱい。:2006/08/12(土) 08:42:18 ID:YN3EaHF80
蒸し返すなYO

883 :名無しさん@お腹いっぱい。:2006/08/12(土) 15:54:25 ID:H0uY3V2H0
>>881
だからこっちは常駐してるスレが荒れてもいいって言ってんだよボケ
釣りなら釣りでやり遂げろよ
あと自演するなら文体変えろド素人が

884 :名無しさん@お腹いっぱい。:2006/08/12(土) 17:10:39 ID:nKacSO160
フレーミングは参加した時点で(何を言おうが)負け。
見かけたら、通り過ぎるまでじっと待つのが最善の策。

よって、俺も負け。

885 :名無しさん@お腹いっぱい。:2006/08/12(土) 19:52:23 ID:EmbbAg0I0
アジャパーヽ(´ー`)ノ

886 :名無しさん@お腹いっぱい。:2006/08/12(土) 20:11:11 ID:dUP2033C0
flaming 覚えたてで使いたかっただけちゃうんかと

887 :名無しさん@お腹いっぱい。:2006/08/12(土) 20:39:07 ID:/DuFVmL/0
コピペ

888 :名無しさん@お腹いっぱい。:2006/08/14(月) 15:30:20 ID:DtFvPCvr0
AAAというソフトがアクティブな時
マウスカーソルがソフトAAAのクラスBBBとクラスCCC上にある場合
マウスの拡張ボタン XButton1を押すとXButton1がそのまま送られ、
クラスBBB、CCC上以外の場所にカーソルがある場合は XButton1を押したらEnterキーが送られる。

という物を作りたいのですが、どうすればいいでしょうか?

889 :名無しさん@お腹いっぱい。:2006/08/14(月) 15:54:17 ID:NTc2eNg20
>>888
MouseGetPosでいいんじゃない

890 :名無しさん@お腹いっぱい。:2006/08/14(月) 15:59:46 ID:U+odDKWZ0
IfWinActive…該当ウィンドウがアクティブか
MouseGetPos…マウスカーソルの位置、マウスの下のウィンドウやコントロールを取得
Send…キーストロークを発生させる


851に倣って必要なコマンドあげてみたが、わざわざ解説するまでもなく基本機能だったな
まぁせっかくの夏休みなんだし、頑張ってみれ

891 :名無しさん@お腹いっぱい。:2006/08/14(月) 16:34:20 ID:DtFvPCvr0
変数名とキー名は流行らせるページに一覧が乗っていたので分かるのですが、
構文が分からないんです。

892 :名無しさん@お腹いっぱい。:2006/08/14(月) 16:40:23 ID:U6j7VEhq0
> どうすればいいでしょうか?
勉強

893 :名無しさん@お腹いっぱい。:2006/08/14(月) 17:16:18 ID:mrhengen0
>>891
まず、最初から丸投げしないで、自分なりに書いてみる。
それで動かなかった場合、何故動かないかをここで聞いてみれ。
さすがにそれをスルーする程にはここの人達も冷たくなかろう。

894 :名無しさん@お腹いっぱい。:2006/08/16(水) 00:12:28 ID:uW+77TpF0
すみません、ちょっとお伺いします
これってコンパイルするときに、例えば画像や音声ファイルを
一緒にパックしてexe化することって可能ですか?

895 :894:2006/08/16(水) 00:22:57 ID:uW+77TpF0
すみません、見つかりました。自己解決です。

896 :名無しさん@お腹いっぱい。:2006/08/16(水) 00:25:14 ID:1qUWJw7B0
>>894
アイコンは含められるけど、その他のファイルは(実用的には)無理だと思う。

897 :名無しさん@お腹いっぱい。:2006/08/16(水) 00:41:55 ID:uW+77TpF0
そうみたいですね
マニュアルで FileInstall っての見つけて、これでパックしてみたんですが
何故だかいざ実行してみるとファイルが見つかりませんってなりますね
なにか使い方を根本的に間違っているなかな?
ともかく、お返事ありがとうございます。

898 :896:2006/08/16(水) 01:09:20 ID:1qUWJw7B0
>>897
あ、ごめん。FileInstallの存在忘れてレスしてた。
FileInstall使えばできるよ。
できないとしたらスクリプトの先頭の方に書いてないとか。

899 :名無しさん@お腹いっぱい。:2006/08/17(木) 00:47:26 ID:2PVlAupL0
カーソルが画面隅にあるときホイールを無効化するスクリプトを組んだのですが
WheelUp::
IfWinActive, Sleipnir
{
Send, {F1}
}

else
{
Send, {WheelUp}
}

return

IEなのでページをスクロールするときのホイール動作がもっさりしている気がします。
else文で WheelUp::WheelUp こうなってるのが原因な気もしますが・・・ 
なにかいいアイデアは無いですか?

900 :名無しさん@お腹いっぱい。:2006/08/17(木) 00:52:35 ID:2PVlAupL0
誤:IEなので
正:IEなどで

901 :名無しさん@お腹いっぱい。:2006/08/17(木) 01:10:07 ID:In5F2pPh0
PostMessageでWM_MOUSEWHELLを投げる
それか,加速処理を入れ込んでみたら?
前スレにサンプルあった筈

902 :名無しさん@お腹いっぱい。:2006/08/17(木) 01:20:46 ID:In5F2pPh0
つか,ぬるさんがホイールリダイレクト作ってたんだっけ
この辺落としてきて中身参考に汁
ttp://lukewarm.s101.xrea.com/myscripts/index.html

903 :名無しさん@お腹いっぱい。:2006/08/17(木) 01:51:04 ID:2PVlAupL0
>>902
ホイールリダイレクトも試しに使ってみたのですが、やはりもっさりしてしまいました。
加速度はマウスドライバで細かく弄ってあるので、できれば加速処理等はしたくないです。

あとWheelUp::WheelUp この処理が原因かと思って↓こんなのも試したのですが
IfWinActive, Sleipnir
{
WheelUp::F1
}

else
{
;何も無し。うまくいけばホイール回転をスルーしてそのままの加速度でいけるかも?
}
return

これだと、どの場所でホイールしてもホイールが全てF1に変換されてしまい失敗でした。
ちなみにマウスはMicrosoft IntelliMouseOpticalです。ドライバは純正でVer5.2です。

904 :名無しさん@お腹いっぱい。:2006/08/19(土) 16:48:04 ID:cQubjpuu0
小ネタ

; irfanViewのexe を指定
iview32 := "C:\Program Files\irfanview\i_view32.exe"
; 画像の拡張子を指定
screenShotExt := "png"
; 保存先のディレクトリを指定
screenShotDir := userprofile "\デスクトップ"

任意のキーバインド::
; yyyyMMdd-hhmmss 形式を生成
file := A_YYYY A_MM A_DD "-" A_Hour A_Min A_Sec
; capture=0 なら 画面全部、 1ならアクティブウィンドウ
Run, "%iview32%" /capture=1 /convert=%screenShotDir%\%file%.%screenShotExt%


905 :名無しさん@お腹いっぱい。:2006/08/19(土) 17:09:38 ID:nR6kdIAC0
irfanviewでも出来たのか・・・
俺もちょうど昨日winshot非常駐化した
常駐ソフトがどんどん減って面白いわ

906 :名無しさん@お腹いっぱい。:2006/08/22(火) 11:29:47 ID:UMefObLg0
流行らせるページ落ちてる?
ようやく始めようと思って開いたら無かった。
復旧町か。

907 :名無しさん@お腹いっぱい。:2006/08/23(水) 04:15:23 ID:52TsQxrC0
「;」キーを「a」にするのってどう書けばいいんですか?
;;;aだと.ahk実行しても出来ません
多分「;」をなにかで囲んだりするんだろうけど、どうやるか分かりません
どなたか教えてください

908 :名無しさん@お腹いっぱい。:2006/08/23(水) 05:07:11 ID:hfHkq/U60
つ キーコード

909 :名無しさん@お腹いっぱい。:2006/08/23(水) 10:21:32 ID:Y+tDCBhY0
>>907
ttp://lukewarm.s101.xrea.com/KeyList.htm
今後は↑の一番下を見ること。↓の3つの内のどれでも指定できるはず。
vkBB::a ;「;」の仮想キーコードBBを指定
sc027::a ;「;」のスキャンコード027を指定
vkBBsc027::a ;仮想キーコードとスキャンコードの両方を指定

910 :907:2006/08/23(水) 14:50:08 ID:52TsQxrC0
>>908-909
出来ました
ありがとうございました

911 :名無しさん@お腹いっぱい。:2006/08/23(水) 20:36:48 ID:52TsQxrC0
>>575-576みたいに
格ゲーのコマンドをボタン一発で出したい時ってどう書けばいいんですか?

d→d+f同時押し→f+j同時押し(ちなみにd=下、f=前、j=弱パンチ。波動拳コマンドです!)

とやりたいんですけど、

a::
Send,{d}
Send,{f}
Send,{j}

と書いて.ahkで保存したんですけど、まったく機能してません
どなたか教えてください

912 :名無しさん@お腹いっぱい。:2006/08/23(水) 20:42:00 ID:hfHkq/U60
ゲームだと、ツールでの不正防止(格ゲーでは必要ないだろうけど)とか、
入力制御の都合とかで、通常のキーコードを拾わないものが腐るほどある。
とりあえず複数キーではなく、単発キーで試して、それすら拾わないならAHKでの対応は諦めよう。

913 :911:2006/08/23(水) 20:54:32 ID:52TsQxrC0
>>912
レスありがとうございます
f::dとして入れ替えてみたんですが、ちゃんと入れ替えできました

.ahkに書く内容って
a::
Send,{d}
Send,{f}
Send,{j}
だけでいいんですか?
なんかこれだとD(十字キー↓)、F(十字キー→)で、J(ボタンA)って割り当ててるんで
斜め押しがないような気がするんですけど。

914 :名無しさん@お腹いっぱい。:2006/08/23(水) 21:33:10 ID:zLZrXw5L0
Send, afj
これだけでいいんじゃまいか


915 :911:2006/08/23(水) 21:39:23 ID:52TsQxrC0
>>914
a::Send, dfj
をsenddfj.ahkで保存してやって見ましたがダメでした_| ̄|○

書き方間違ってますか?

916 :名無しさん@お腹いっぱい。:2006/08/23(水) 21:52:13 ID:el4zMw010
send,{d down}{f down}{d up}j{f up}
あとSetKeyDelayの値とか。

917 :911:2006/08/23(水) 22:22:39 ID:52TsQxrC0
>>916
これってaボタンにこのコマンドを登録するには
a::send,{d down}{f down}{d up}j{f up}って
a::はいらないんですか?

918 :911:2006/08/23(水) 23:40:00 ID:52TsQxrC0
どなたか!

919 :名無しさん@お腹いっぱい。:2006/08/23(水) 23:42:40 ID:Y+tDCBhY0
>>918
試せば分かるでしょ。

920 :911:2006/08/24(木) 00:02:41 ID:52TsQxrC0
a::
send,{d down}{f down}{j down}{d up}{f up}{j up}

でやったらなんとか出るんですけど、時々パンチだけ打ったりします
どこがわるいんでしょうか?

921 :391:2006/08/24(木) 00:05:02 ID:N+GjQWMF0
>>920
1時間くらい試行錯誤してみろよ

922 :911:2006/08/24(木) 00:07:29 ID:52TsQxrC0
>>921
了解! く(`・ω・´)行って参ります

923 :名無しさん@お腹いっぱい。:2006/08/24(木) 00:22:50 ID:KH7bvAbO0
てめーSendコマンドの説明読んでないな

924 :名無しさん@お腹いっぱい。:2006/08/24(木) 00:38:31 ID:WnBC1VuP0
どうでもいいけど 2行以上にするなら return入れなさいよ

925 :名無しさん@お腹いっぱい。:2006/08/24(木) 01:27:15 ID:9ANH7vkE0
どうでもいい

926 :911:2006/08/24(木) 01:50:07 ID:TebRODsR0
全然出来ない・・・
何回か連打してると確実にパンチとか出る

>>923
すみません
読んだけど全然出来ません

>>924
ありがとうございます
入れなくても動くけど入れた方がいいんですね

もうひとつ聞きたいんですが、aキー押したら、Jキー1秒間に20連打とかって出来ますか?
a::{j 20}
で1秒間に20連打いきますか?

927 :名無しさん@お腹いっぱい。:2006/08/24(木) 03:58:18 ID:KH7bvAbO0
ディレイの設定次第ではそうなる

928 :名無しさん@お腹いっぱい。:2006/08/24(木) 06:41:08 ID:e+RPRV6N0
毎度のことだけど合間にpauseが無い性じゃないかと

929 :連続で申し訳:2006/08/24(木) 06:41:53 ID:e+RPRV6N0
sleepでした。すみません

930 :911:2006/08/24(木) 16:40:26 ID:TebRODsR0
>>929
ヘルプ見たけどこれをどう組み込むかが全然分からない
どうやるんですか?
Sleep, 1000 ; 1 second
SetKeyDelay, 0

931 :911:2006/08/24(木) 16:40:56 ID:TebRODsR0
>>927
出来るんですか、良かった

932 :名無しさん@お腹いっぱい。:2006/08/24(木) 19:13:28 ID:WmELH/U20
とりあえず一回ごとに聞きに来ないで、流行らせるページをきちんと熟読しろ
こないだ落ちてたけど今はもう復旧してるから

933 :911:2006/08/24(木) 23:17:24 ID:TebRODsR0
>>932
見たけど、何がなんだかさっぱり・・・
なんというかもっと書式の具体例が多く載ってるサイトってありませんか?

というか、誰か書いてよ。・゚・(ノД`)・゚・。

934 :名無しさん@お腹いっぱい。:2006/08/24(木) 23:25:42 ID:6uORQeeG0
いい加減自重しろ。only1の存在だか何だか知らんが無知である事ぐらいは恥じてくれ。

935 :名無しさん@お腹いっぱい。:2006/08/25(金) 00:10:48 ID:thm//g2H0
以後放置かレスするなら丁寧に教えるかどっちかにしてもらえるかな
キリがないから

936 :名無しさん@お腹いっぱい。:2006/08/25(金) 00:17:13 ID:1crmFTa/0
どんどん質問してくれ、ここの人は親切だから答えてくれるよ

937 :名無しさん@お腹いっぱい。:2006/08/25(金) 00:30:24 ID:Vi3Seppi0
正直、流行らせるのとこのサンプルどんな挙動するのか書いてないから
全然参考にできない。キー置換くらいしかできない人だから・・・

938 :名無しさん@お腹いっぱい。:2006/08/25(金) 00:39:39 ID:4nigyMat0
>>937
書いてないなら試せばいいじゃない。
ちょっとした挙動確認にこのスクリプトマジおすすめ。
ttp://www.autohotkey.com/forum/topic7831.html

939 :391:2006/08/25(金) 00:46:09 ID:PBih+xe80
>>938
このスクリプトいいすね
保存とかしなくても動作確認出来るのか!サンクス

940 :名無しさん@お腹いっぱい。:2006/08/25(金) 00:49:13 ID:PBih+xe80
また名前が残ってたよ。。orz

941 :名無しさん@お腹いっぱい。:2006/08/25(金) 08:22:44 ID:XRAU8LtZ0
もうちょっとモジュール管理とかしやすくならないかな。
自分のコードをそれなりに育ててると他人のコードを導入しにくい。

942 :名無しさん@お腹いっぱい。:2006/08/25(金) 09:26:22 ID:CVIA2L5H0
月曜日に使い始めて初めて作ったスクリプdがどうにか想定どおりに動いたので記念カキコ


943 :名無しさん@お腹いっぱい。:2006/08/25(金) 15:34:19 ID:B5FGjtB30
AHK使いこなせてる人がうらやましい。
俺が知らないちょー便利なスクリプトがあるかと思うと腹が立つ!

944 :名無しさん@お腹いっぱい。:2006/08/25(金) 17:58:08 ID:jUefnTnu0
>>943
あんなことやこんなことにちょー便利なスクリプト
作って運用してるよ〜 ムフフフ
羨ましかったらがんばりな〜

945 :名無しさん@お腹いっぱい。:2006/08/25(金) 19:17:42 ID:zpsuwIMd0
マウスに機能振付ける程度しかしてねえ。
みんなAHKでなにやってんの?

946 :名無しさん@お腹いっぱい。:2006/08/25(金) 19:28:21 ID:PlFbS7d10
よく使うソフトが存在して非アクティブならアクティブに、アクティブなら非アクティブに。存在しないなら起動する、ってのが一番使ってるのかな?

947 :名無しさん@お腹いっぱい。:2006/08/25(金) 19:42:10 ID:i2UrWwt80
一番使ってるのは、Alt+英字キーでそれぞれ特定窓のアクティブ化かな
あとはAlt+↑で窓最全面固定、Alt+↓で解除

948 :名無しさん@お腹いっぱい。:2006/08/25(金) 19:51:56 ID:hvqw5/0V0
俺もウインドウ操作が多いかな。Win+中クリックでアクティブウインドウをシェードが一番お気に入り。

949 :名無しさん@お腹いっぱい。:2006/08/25(金) 20:09:30 ID:R2YBf9ek0
X1,X2にマウスジェスチャ

950 :名無しさん@お腹いっぱい。:2006/08/25(金) 20:22:15 ID:wwLtwdLn0
Winシェード、助けっててば〜もどき、キーボードでのウィンドウ操作(移動、大きさ変更等)、
ホイールリダイレクトとか 後は普通にキーボードランチャとか
一時期 TTBaseをやたらとパクってた

951 :名無しさん@お腹いっぱい。:2006/08/25(金) 20:37:43 ID:jUefnTnu0
漏れは、DVという動画再生ソフトをコントロールするのに使っている。
DVは動画の特定場面を(始点終点を指定して)ブックマークできるので、
これをAHKを使って外部からコントロールしている。
これで何が出来るかというと、いきなり動画を立ち上げたら
特定場面を繰り返し再生するようなことができる。

用途は

952 :名無しさん@お腹いっぱい。:2006/08/25(金) 21:15:26 ID:IrUfF2vB0
アプリ起動時に何か作業させたいときとか
キーカスタマイズできないアプリ使うときに重宝してる
スクリプトごとにAHKファイルを作って使う事が多いかな
フリーソフトはカスタマイズして好みの動作に出来るのにさ
パッケージソフトって融通効かないのが多いよね

953 :名無しさん@お腹いっぱい。:2006/08/25(金) 22:20:34 ID:B5FGjtB30
俺がよくつかうスクリプトは画面のガンマを明るくしたり暗くしたりするスクリプトかなぁ。
フルスクリーンのゲームとかやるときに重宝する

954 :名無しさん@お腹いっぱい。:2006/08/25(金) 23:14:52 ID:wwLtwdLn0
毎回決まった操作するソフトのバッチ化とか便利だよな
マウス操作しか受けつけないソフトとかでもエミュレートできるし、ゲーム系は知らんけど

955 :名無しさん@お腹いっぱい。:2006/08/25(金) 23:17:29 ID:MlWlsT/U0
みんないろいろな使い方してるんだね。
自分で作ってこれがないとイヤって気分になったのは

・タスクトレイの不要なアイコンを消す。消したアイコンはGUIで作ったメニューで操作
・コモンダイアログ操作(新規フォルダ作成や上のフォルダへ移動をキーで行える、よく使うフォルダをGUIメニューで選べるなど)
・自作コマンドラインランチャ
・クリップボード拡張に似た定型文貼り付けツール
・ファイルを開くときに起動ソフトを選べるポチエスもどき
・非アクティブ状態の音声プレイヤーをキー操作
・音声ボリュームをキー操作
・壁紙を10分ごとに変える
・メッセンジャーのアラートをすぐ閉じさせる

こんなとこかな。

956 :名無しさん@お腹いっぱい。:2006/08/26(土) 00:02:07 ID:YnG/1Q9h0
結構人いるじゃん。普段どこにいるのよw

957 :名無しさん@お腹いっぱい。:2006/08/26(土) 00:07:35 ID:+klA55Wk0
自慢大会

958 :名無しさん@お腹いっぱい。:2006/08/26(土) 00:28:44 ID:JO8noLou0
いろんなスレで宣伝されてるから結構ひとは増えてるな

959 :名無しさん@お腹いっぱい。:2006/08/26(土) 01:04:49 ID:8DCBYvtZ0
キーロガ(ry として・・・

960 :名無しさん@お腹いっぱい。:2006/08/26(土) 02:36:43 ID:X/Ib7Ykp0
ひでえw

961 :名無しさん@お腹いっぱい。:2006/08/26(土) 08:45:01 ID:m3e78oi50
スレのまとめサイトを作るときの省力化に使ってる
スレの書き込みをコピーすると、自動でまとめの形式に整形してペーストできるようにしたりとか

962 :名無しさん@お腹いっぱい。:2006/08/26(土) 15:17:13 ID:wHPKaZ6r0
>>955
>>タスクトレイの不要なアイコンを消す
これ便利そうですね
どんな感じで実装したか教えていただけませんか?
#NoTrayIconがそれ系の設定かと思ったんですが
自身のアイコンしか設定できないみたいですね

963 :名無しさん@お腹いっぱい。:2006/08/26(土) 16:29:27 ID:JCJaH2650
流行らせるページに置いてあるっしょ

964 :名無しさん@お腹いっぱい。:2006/08/27(日) 00:32:45 ID:ZEntdSAc0
>>963
見落としました、ありがとうございます。

965 :911,913,920:2006/08/27(日) 01:33:14 ID:HA7NngEi0
もうなんか全然出来ません_| ̄|○

どなたかキー設定はこれとしてどのように書くか教えてください
上=E
左=S
下=D
右=F
パンチ=J

波動拳コマンド(下→右下→右+J)←最後の右と同時にJ押す
ため技(左2秒間押しっぱなし→右+J)
連射(Jボタン1秒間に20連射)

966 :名無しさん@お腹いっぱい。:2006/08/27(日) 03:04:25 ID:Avw5cK+C0
>>965
教えてあげたいけどもうなんか全然出来ません_| ̄|○

967 :名無しさん@お腹いっぱい。:2006/08/27(日) 03:13:42 ID:hasAzi8a0
>>965
UWSCでその操作を記録する

再生する


968 :名無しさん@お腹いっぱい。:2006/08/27(日) 05:01:24 ID:m+fbBZjP0
>>967
> >>965
> UWSCでその操作を記録する
> ↓
> 再生する
> ↓

じゃあまずJボタン1秒間に20連射することからはじめなきゃな


969 :名無しさん@お腹いっぱい。:2006/08/27(日) 09:50:26 ID:pdM9eWxw0
> Jボタン
ボタンかよwww


970 :名無しさん@お腹いっぱい。:2006/08/27(日) 16:24:32 ID:nyrLHg0T0
悩むよりパッド買ったほうが早いんじゃねえ?

971 :名無しさん@お腹いっぱい。:2006/08/27(日) 23:46:40 ID:HXc/5fNb0
>>970
正論だな
1000円以下で買えるんだし、
あれこれ悩む時間と比較したらやすいもんだ

というか、レスの流れみてると一生スクリプト組めそうもないし

972 :名無しさん@お腹いっぱい。:2006/08/27(日) 23:57:30 ID:hasAzi8a0
家庭用ゲーム機の格闘ゲームを買う

PCのことは忘れる

973 :942と961:2006/08/28(月) 08:50:44 ID:Is6v/MF40
>>942
のように言っておきながら、いざ実際に使ってみるとまったく動かなかったり…

〜1
ToolTip, *加工中*
Sleep, 200
BlockInput, On
send, {Lbutton Down}
send, {Lbutton Up}
Sleep, 50
Send, w
Sleep, 50
Send, a
Sleep, 50
〜2
ClipSaved := ClipboardAll
Run,E:\softwares\refo\refo.exe E:\softwares\refo\recipe\■■■■_resban.rrf
Sleep, 200
FileAppend, %Clipboard%, E:\■■■■_temp.rrf
〜3
Sleep, 200
Clipboard := ClipSaved
Run,E:\softwares\refo\refo.exe E:\softwares\refo\recipe\■■■■.rrf
Sleep, 200
Run,E:\softwares\refo\refo.exe E:\■■■■_temp.rrf
Sleep, 200
FileDelete, E:\■■■■_temp.rrf
ToolTip,
BlockInput, Off

974 :942と961:2006/08/28(月) 08:51:44 ID:Is6v/MF40
Janeでレスの全文を自動でコピー(〜1まで)、それをセーブしてから
クリップボードの書き込みからrefoで2次加工をするためのマクロを作成してファイル化(〜2)。
〜1でセーブしておいた全文を復活させrefoで1次加工したあと〜2で作ったマクロで2次加工。
〜2のマクロを消して完了

正規表現ではちょっとやりにくいことをさせてるんで
その場でマクロを作成してテキストを加工するという流れ。
USBメモリにexe化して使ってるが、
家のw2kでは問題なく動くんだが出先のxpの入ったpcだとロクに動かない…

975 :942と961:2006/08/28(月) 09:52:32 ID:Is6v/MF40
>家のw2kでは問題なく動くんだが出先のxpの入ったpcだとロクに動かない…

と思ってたが、実際使うのと同じような環境で使ってみると
家のPCでもやはりうまく動かないことが多い…

どうすればいいのじゃ

976 :名無しさん@お腹いっぱい。:2006/08/28(月) 10:09:50 ID:qnqCJlGT0
昔のヴァージョンだとFileAppendで
存在しないパスを指定してもファイルが新規作成されなかったけど
XpでのAHKヴァージョンはどう?

あとRunWAitでREFOを終了を待ってみるとか

>Run,E:\softwares\refo\refo.exe E:\■■■■_temp.rrf
>Sleep, 200
>FileDelete, E:\■■■■_temp.rrf

ここで間に合わないと削除の方が早くなるかも

977 :名無しさん@お腹いっぱい。:2006/08/28(月) 23:13:58 ID:bfA0G0oq0
http://la.ma.la/blog/diary_200608281736.htm
まらたん万歳

978 :名無しさん@お腹いっぱい。:2006/08/29(火) 00:49:37 ID:sj53R3ZL0
マウスの中ボタンでアプリの切り替えをおこなおうとおもい、
いろいろ試したのですがうまく操作を受け付けてくれません。

MButton::AltTabMenu

↑を起点にして、sendとかいろいろしてみたのですがうまくいきません。
どうか知恵をおかしください。


979 :942と961:2006/08/29(火) 08:55:42 ID:4kzVANcN0
>>976

>XpでのAHKヴァージョンはどう?

最新版の入った家のPCで作ったexeをUSBメモリに入れて使っていますので
そっちの問題ではないと思われ


refo使用後に必ずRunwait、それからSleepを全動作の間に狂ったようにはさみまくってどうにか成功率が上がりました
…といっても10%以下だったものが50%くらいにですが。

微調整すれば期待通りに動くと信じていじってみます

980 :名無しさん@お腹いっぱい。:2006/08/29(火) 10:00:48 ID:vaG1joB40
何か別のクリップボード監視系ソフトが入ってるとか

981 :942と961:2006/08/29(火) 12:32:46 ID:1byQz9JE0
tomoclipというソフトは使ってますが、
使用を止めてみても変化がありませんでした。

982 :名無しさん@お腹いっぱい。:2006/08/29(火) 12:52:58 ID:vaG1joB40
あとはFileAppendで時間がかかってるという線かな
これもWait出来ればいいんだけど。

FileGEttimeとかIfExistとかで
書き込みが終了してファイルが解放されたことを調べられないかな?


983 :名無しさん@お腹いっぱい。:2006/08/29(火) 17:23:41 ID:eGhPSUa50
MsgBoxデバッグ

984 :名無しさん@お腹いっぱい。:2006/08/30(水) 10:10:31 ID:ZRSPoaox0
>>978
中央ボタンがマウスドライバかなんかで
別なのにのっとられてるんじゃないの。
logitech の setpoint なんかだとそうだよ。
設定で直せる。

985 :名無しさん@お腹いっぱい。:2006/08/30(水) 19:23:03 ID:2Q5vZD5n0
>>984
レスありがとうございます。

サンワのマウスつかってます。
ドライバがくそです。ハードは軽くて、ボタンとかも押しやすいんだが……

やっぱりMSのマウスかな。

986 :911,913,920,965:2006/08/30(水) 20:11:37 ID:YWVqs1GT0
誰か〜。・゚・(ノД`)・゚・。

987 :名無しさん@お腹いっぱい。:2006/08/31(木) 12:04:34 ID:RRrBfgN00
まだいたのか・・・

988 :名無しさん@お腹いっぱい。:2006/08/31(木) 13:10:44 ID:ho1dZPPmO
>波動拳
920じゃdキーを押したまま(downのまま)jキーを押してる。dを離してからjだろ?

>ため技
sを押してから2000ミリ秒sleepしてsを離してfとjを押せ。

>連射
SetKeyDelayを適当に設定して{j 20}。

989 :名無しさん@お腹いっぱい。:2006/08/31(木) 13:19:57 ID:zsrklxdL0
send,{した down}{みぎ down}{した up}{パンチ down}{みぎ up}{パンチ up}
こうじゃないの。
あとは必要なら間にスリープ入れてタイミング取る。

990 :名無しさん@お腹いっぱい。:2006/08/31(木) 13:20:20 ID:J2AR2qUd0
MButton::
RButton::
  Hotkey,LButton,MRtoLButton

  If 条件
    ジェスチャー発動
  Else
    キャンセル処理

  Hotkey,LButton,Off
Return

MRtoLButton:
  Lジェスチャープラス
Return

こんな感じで、普段 LButton は拾わず、MButton か RButton が押された時だけ
LButton を Hotkeyコマンドで登録して MButton or RButton 始動のジェスチャーに LButton を
からめたいんだが、LButton が登録されず どうしても上手くいかない。
(MR , MM , RMMM , R→M↑ 等のジェスチャーは上手くいっている)

なぜだろう?

991 :990:2006/08/31(木) 13:52:02 ID:J2AR2qUd0
自己解決・・・・・・たぶん。

992 :名無しさん@お腹いっぱい。:2006/08/31(木) 15:04:24 ID:skD9nj7X0
BuildWait, NextThread

993 :911,913,920,965:2006/08/31(木) 20:58:47 ID:zM1AWgyN0
>>988
>>989
ありがとうございます!
>>965の波動拳コマンドはなんとか安定して出るようになってきました
波動拳コマンド
a::
send,{d down}{f down}{d up}{f up}{j down}{j up}

が、ため技が全然出ません。。。
h::
send,{s down}Sleep, 2000{s up}{f down}{u down}{f up}{u up}
こう書いてみたのですが、なんかまったく違う動きをします。

どこが違うのでしょうか?

994 :名無しさん@お腹いっぱい。:2006/08/31(木) 21:14:55 ID:VxkuwdTM0
>>993 このスレも残りわずかだし、乗りかかった船だ。
オマエのミスその1:1行に命令文はひとつしか書けないことがわかってない。
オマエのミスその2:複数行にわたる場合は最後にreturnが必要。
オマエのミスその3:jキーを押すだけならdownとかupとかは不要。
オマエのミスその4:そもそも人生の大切な時期をゲームに費やしている時点で負け組。

以上を踏まえて。

>波動拳⇒自分が書いたものとjキーの扱い方を比べてみろ。
a::
send,{d down}{f down}{d up}j{f up}
return

>ため技⇒命令はsend、sleep、sendと3つあるので3行にならなくてはいけない。
h::
sキーを押下
2秒スリープ
sキーを離してfとjを押下
return


995 :名無しさん@お腹いっぱい。:2006/08/31(木) 22:30:44 ID:0kJl8rFb0
繭スレの奴に比べればかわいいもんだわ。

996 :911,913,920,965:2006/08/31(木) 22:56:03 ID:zM1AWgyN0
>>994
おお、ありがとうございます
なんかすごく安定しました
波動拳は、ほとんど余計な動作が入らなくなりました
ため技は完璧です

あとは、いくつかのゲームで試したのですが、相性みたいのがあるみたいなので
Sleep入れたりしてこれから試して生きたいと思います。

また、分からなくなったら聞きにきますのでよろしくお願いします。

997 :名無しさん@お腹いっぱい。:2006/08/31(木) 22:59:55 ID:LVFk+1qM0
どういたしまして
またいつでもどうぞ^^

998 :名無しさん@お腹いっぱい。:2006/08/31(木) 23:24:22 ID:QM2YH2fS0
こうしてまた役立たずの低脳が1匹居付いたのであった。

999 :名無しさん@お腹いっぱい。:2006/08/31(木) 23:48:21 ID:Ft3Xb2Oa0
999

1000 :名無しさん@お腹いっぱい。:2006/08/31(木) 23:51:07 ID:UYcjre3V0
1000

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

ioPLAZA【アイ・オー・データ直販サイト】