AutoHotkey Thread 2
..
440:名無しさん@お腹いっぱい。
06/01/30 22:16:04 llgn8y2u0
RunWait は試した?
441:439@携帯
06/01/30 22:46:29 Spq+eLJkO
>>440
YES
そもそもtest.exeに正しい値が渡っていないのであんまり関係ない感じ。
cmd.exeを経由しなくてもダメでした。
普通にコンソールで、
test.exe 引数 > test.dat
とやる分にはうまく行くんだけど…
442:名無しさん@お腹いっぱい。
06/01/30 23:57:09 LkEIKve40
うちでもうまく行くのと行かないのがあった気が。
上手く行かないの早々にあきらめて捨てちゃったんでもう憶えてないけど。
443:名無しさん@お腹いっぱい。
06/01/31 02:44:23 cbKaLT0a0
なんかダブルクォートをAHKで処理してる感じ
パラメータに日本語とか使ってない?
444:439
06/01/31 03:38:14 iIRAafqH0
>>443
g_calcっていう引数として式を与えると、Google電卓を使った結果を出力するソフトで、
引数としては、1+2*4とか、sin(3.14)のような1バイト文字しか使ってないっす。
URLリンク(www.vector.co.jp)
…結局面倒なんで、このソフトと同等の機能を持つAHKスクリプトを作って対処してしまいました。
簡単なエラー処理入れても5行程度で済むのね。
なので、自己解決したと言えばしたんだけど、せっかくだから、AHKで標準出力を確実に取得する方法を
後学のためにも知っておきたい。
445:名無しさん@お腹いっぱい。
06/01/31 11:20:44 333EyHKl0
てst
446:名無しさん@お腹いっぱい。
06/01/31 18:20:05 61oRgPKa0
ニーツオルグ見た?
447:名無しさん@お腹いっぱい。
06/01/31 18:28:13 R4U/vQRD0
あそこトップがでかいんだもん。
448:391
06/02/01 01:02:52 lbQsX6480
URLリンク(www.vector.co.jp)
コマンドライン型のメール送信ソフトなんだがAHKと組み合わせるとおもしろいな。
携帯にメール送るのに便利だわ。
449:名無しさん@お腹いっぱい。
06/02/01 01:04:48 lbQsX6480
名前消し忘れてた。はずかし。。。。
450:名無しさん@お腹いっぱい。
06/02/01 01:10:05 mATxrmSJ0
>>448
詳しく
451:名無しさん@お腹いっぱい。
06/02/01 01:15:27 Ll9eZFNT0
POP Out
URLリンク(www.vector.co.jp)
これでメールチェックも出来るお(多分)
452:名無しさん@お腹いっぱい。
06/02/01 07:17:12 CHFM6H+R0
>>439
URLリンク(cgi19.plala.or.jp)
453:名無しさん@お腹いっぱい。
06/02/01 13:09:29 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:名無しさん@お腹いっぱい。
06/02/01 15:19:14 qvxzsIy40
コロンはパスの一部なので削ったらダメ
タイトルが「パス - まめFile4」ってなってるのが原因なら、
パスじゃない部分「 - まめFile4」を削る。
ファイル名に日本語使ってないならダメ文字は関係ないよ
455:名無しさん@お腹いっぱい。
06/02/01 15:25:04 7xayIcgw0
あれだ、たぶん、
たとえば、WorkingDirがC\AHKだったとすると
C\AHKC\ほにゃらら.txtってことになるってことだろ。
456:名無しさん@お腹いっぱい。
06/02/01 15:51:43 7xayIcgw0
あ、ちょっと、的ずれてた・・
タダ単に、相対パス指定では\以外で始まる指定は出来ないってだけだた・・
ごめん<>
457:名無しさん@お腹いっぱい。
06/02/01 15:54:39 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:名無しさん@お腹いっぱい。
06/02/01 16:01:53 5DqBaWvy0
119 名前:unnamed.ahk[sage] 投稿日:06/02/01(水) 05:06 ID:???
そんなの聞く必要あるの?
この程度の簡単なものなら、見ればどういう動作するかはすぐにわかるんだから
自分にとって益があるなら使えばいいし、不要なら構わなければいいじゃん。
>>116を誰が何の用途に使おうとどうでもいいだろ。
↑こいつ何様?
459:名無しさん@お腹いっぱい。
06/02/01 16:03:04 vBsLlalo0
もう少し補足。
タイトルにパスが入って悪さをしさえしなければ問題がないんです。
で、ウィンドウのタイトルを拾うため、どうしてもファイル名に日本語が入ることは避けられません。
たとえば今このスレはJane Doe Styleで見てるんですが、これで同じ操作をすると、
タイトルが「Jane Doe Style 【ソフトウェア】 - AutoHotkey Theread 2」となっているので、
これ+.txtという名前にしたいわけなんです。
やっぱり難しいんですかね……
460:名無しさん@お腹いっぱい。
06/02/01 16:39:10 7xayIcgw0
いや、別に平気でしょ。ただ日本語入るとダメ文字に引っかかる可能性あるのでそこは考慮する必要があるかもしれない。
ただ、さっきの問題とは別だよ。
^r::
WinGetActiveTitle, title
StringReplace, title, title, `:,:
StringReplace, title, title, \,\ , All
msgbox, %title%
FileAppend, , %title%.txt
基本はこんな感じになる。タイトルのファイルがダメ文字無ければ
ワーキングディレクトリにちゃんとファイル出来るよ。
ダメ文字関連はここ参照
URLリンク(www.tierra.ne.jp)
461:名無しさん@お腹いっぱい。
06/02/01 16:44:07 7xayIcgw0
>タイトルのファイルがダメ文字無ければ
>ワーキングディレクトリにちゃんとファイル出来るよ。
文章めちゃくちゃだな・・(;´Д`)
タイトルにダメ文字含まれてなければ、ちゃんと
ワーキングディレクトリに狙ったとおりの名前のファイル出来るよ。
と言いたかった・・スレ汚れまくりごめん<>
462:名無しさん@お腹いっぱい。
06/02/01 17:22:32 qvxzsIy40
>>458
えー、そのスレの 118=120 だけど、ここに持ち込まんでも…
ちなみに大元の書込み人からは補足が入った模様です
463:名無しさん@お腹いっぱい。
06/02/01 17:37:40 vBsLlalo0
およよ…? 何かうまくいきますね。
すみません、レスいただいてありがとうございました。
464:名無しさん@お腹いっぱい。
06/02/01 17:49:47 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:名無しさん@お腹いっぱい。
06/02/01 21:08:57 vBsLlalo0
うを、すばらしい!
そのまま組み込んでみます。重ね重ねありがとうでした<O>ペコリ
466:448
06/02/01 21:37:49 +NEdY0Ev0
;メールサーバー
host=mail.xxx.xxx.jp
;表示するメアド
mine=xxx@xxx.xx.jp
;送り先のメアド
address=xxx@xxx.xx.jp
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
06/02/02 17:06:47 T+u93vk30
>>452
何かDllCallだらけで、どういう仕組みになってるか良く理解できてないけど、
とりあえずうまく標準出力を取り込めたよ。サンクス。
468:名無しさん@お腹いっぱい。
06/02/02 17:09:23 RzOqQmwX0
出てるスクリプトまとめたいんだが 本人はスクリプト理解してないんだよなぁ。
やっぱある程度分かってる人がまとめた方がいいよね。
469:名無しさん@お腹いっぱい。
06/02/04 13:22:47 vcsivbfp0
Autohotkeyでは上手くテキストを取得できない
リストヴューのテキストを取得したいんだけど
(Clipyでは取れた。具体的にはnPOPのメール一覧)
コマンドラインでWINDOWとかクラスとかを指定してテキストをコピーしてくれるような
ツール知りませんか。
470:名無しさん@お腹いっぱい。
06/02/05 18:35:24 Uooh/wVt0
ネットの一時ファイルのうち、jpgファイルだけ削除したいのですが、
FileDelete, C:\Documents and Settings\ユーザー名\Local Settings\Temporary Internet Files\*jpg
とやっても消えてくれません。
Temporary Internet Filesって、普通じゃ消せないのでしょうか。
471:名無しさん@お腹いっぱい。
06/02/05 19:37:58 dd1IDrgA0
実際はその二階層下のフォルダに入っている
その書き方だと直下のJPGしか消さないかも
Temporary Internet Filesを Loopして拡張子が
JPGだったら消すようにしたらいいのではまいか。
472:名無しさん@お腹いっぱい。
06/02/05 21:13:30 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:名無しさん@お腹いっぱい。
06/02/06 09:47:34 XthrTebI0
なまず日記さんがすげーことをやってるぞ
474:名無しさん@お腹いっぱい。
06/02/06 10:45:51 wtWU+HDQ0
あそこはすごすぎてワシャついていけんw
475:名無しさん@お腹いっぱい。
06/02/06 11:52:47 +ZyBL9kh0
よかった、ついて行けないのは俺だけじゃないんだw
すごすぎて感嘆のため息しか出ません
476:名無しさん@お腹いっぱい。
06/02/06 14:24:28 3MY6UK/h0
>>473
IMEの状態表示っていうの試したけど
iniが初期状態だと何も起きないね
iniの仕様調べてまで試す気起きないな
477:名無しさん@お腹いっぱい。
06/02/07 15:24:32 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:名無しさん@お腹いっぱい。
06/02/07 16:56:51 I1jBElpS0
Home::
IfWinActive, xyzzy
send, ^a
else
send, {home}
return
479:名無しさん@お腹いっぱい。
06/02/07 16:58:56 I1jBElpS0
あ。勘違いしてたすまん・・・なかったことに・・・
480:名無しさん@お腹いっぱい。
06/02/07 18:50:22 I1jBElpS0
Home::
IfWinExist, xyzzy
SendMessage, 0x102, 0x1, 0x1E0001 ;lParamは指定しなくても動くみたいだが・・。
return
よくわからん。。これで一応逝けるけど。非アクティブだと反応が鈍い。
識者頼む。
481:名無しさん@お腹いっぱい。
06/02/07 18:56:46 I1jBElpS0
書き忘れ0x102はWM_CHARです。
482:名無しさん@お腹いっぱい。
06/02/07 19:00:10 fWzsdUXL0
出来ないなxyzzy
クラスの取得出来ないし、何か特殊なんじゃないか?
483:名無しさん@お腹いっぱい。
06/02/07 22:59:45 I1jBElpS0
>>480修正
Sendしちゃだめだったみたい。ポストしたらちゃんと動いた。
Home::
IfWinExist, xyzzy
PostMessage, 0x102, 0x1, 0x01E0001
;0x102はWM_CHAR 01E部分はスキャンコード、環境によると思うので適当に修正してくれ。つか、もしかしたらlParamは要らないかも。
return
484:名無しさん@お腹いっぱい。
06/02/08 02:59:44 ENi2eeYG0
xyzzyのクラス名は確か " "(スペース)かなんかだったと思う
テキスト描画部は "1" とかそんなん。
485:名無しさん@お腹いっぱい。
06/02/08 15:48:29 h/owdFIx0
>483
どうもいろいろ確かめていただいてありがとうございました。
ほとんどスレ違いになっちゃうのでこの書きこみだけにとどめますが、
どうもxyzzyの入力の受け付けはかなり特殊なようです。
他に試した限りでは、
場所に応じてIMEのON/OFFを自動切替する「Dさんの日本語じゃなきゃイヤン」というソフトも、
キーマップを入れ替える「姫踊子草」というソフトも、xyzzy上でだけは挙動不審になりました。
その都度メモ帳でも確かめましたが、こちらでは正常動作してました。
どちらも捨てがたいソフトながら、xyzzyでまともに動かないという一点で泣く泣く使用を諦めました。
ドライバレベルで動作する「窓使いの憂鬱」でもない限り、
入力関係ソフトにとってxyzzyは鬼門のようです。
486:名無しさん@お腹いっぱい。
06/02/11 21:24:33 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:名無しさん@お腹いっぱい。
06/02/12 02:36:41 L6cRhp4J0
すいません、本家のサイトで調べて自己解決しました。
しかし、こんなやり方ほとんど裏技っぽい……。
param = %%A_Index%% はダメだけど、
param := %A_Index% ならOK、とのこと。
488:名無しさん@お腹いっぱい。
06/02/12 02:40:14 2QBETCrR0
ネットゲームなんかで割り当てたホットキーが使えなくなるのはなんとかできないものでしょうか?
窓使いの憂鬱でも使うしかないのでしょうか・・・
489:名無しさん@お腹いっぱい。
06/02/12 02:46:26 gYCfWe6P0
>>487
外出。
490:sage
06/02/13 00:13:32 xfk4rPhl0
質問です
お試しに使い出したらすごいはまったんですけど
皆さん割り当てるキーってなんかうまいことやってますか?
できるだけ他のアプリのショートカットとは競合しないように
設定したいのですが,何が安全なのかわかりません
コツがあったらお願いします!
491:名無しさん@お腹いっぱい。
06/02/13 00:17:29 C1wU8uUC0
sageはメール欄にどうぞ
492:490
06/02/13 00:34:08 xfk4rPhl0
だな・・・
多分生まれて初めてのミスだけど自然と心地良い
493:名無しさん@お腹いっぱい。
06/02/13 01:06:49 DnCFW1yt0
>>490
Ctrl+Win+○
をAutoHotKey用のショートカットにしてる。これならほとんど被らないし。
^#G ;選択文字列をググる
^#W ;壁紙変更
^#P ;スクリーンショットを時刻.pngで保存
みたいな感じ。実際はこのショートカットをマウスジェスチャーに割り振ってたりする。
AutoHotKeyのマウスジェスチャーに統合したいんだが、めんどいw
494:名無しさん@お腹いっぱい。
06/02/13 06:24:46 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:名無しさん@お腹いっぱい。
06/02/13 07:46:35 VjRV7iIc0
そりゃ文字列と数字を比較演算した場合の当然の結果だと思うが。
比較演算で数値と文字列扱えるどの言語だって同じ仕様でしょ。
MsgBoxに i と書いて文字列の"i"が展開されてるのを見れば気付きそうなものだが。
496:名無しさん@お腹いっぱい。
06/02/13 08:17:16 RLYX7csf0
そりゃ文字列と数字を比較演算した場合の当然の結果だと思うけど、
URLリンク(lukewarm.s101.xrea.com)
条件分岐
If文で条件分岐が行える。
else文で条件に一致しなかったときの処理も記述できる。
比較条件は、if var = valueという形で記述できる。
比較演算子は、「=」、「<>」(not equal)、「>」「<」「>=」「<=」が使用できる。
左辺には変数名が来るが、右辺には値がこなければならないので、「%」で挟んで変数の内容を展開するようにする必要がある。
↑
この最後の行に書いてあるでしょ。
( )でくくるのがよくないのか。
497:名無しさん@お腹いっぱい。
06/02/13 08:29:14 RLYX7csf0
URLリンク(www.autohotkey.com)
( )でくくると文法が変わるわけね。この場合は
if (i > j)
と書かなければいけなかった、ということで。
……なんだか仕様が混乱してるなあ。
498:名無しさん@お腹いっぱい。
06/02/13 14:16:14 HZjUhtGG0
たしかに、まぎらわしい仕様ではあるな
499:名無しさん@お腹いっぱい。
06/02/14 15:34:05 RVF5Wq5S0
WinSet, TransColorで透明色を指定できるけど、
この色だけ半透明にするって指定はできない?
例えば、WinSet, TransColor, AABBCC 127, WinTitleと書くと
AABBCCは完全に透明になり、それ以外の部分が半透明になってしまう。
500:名無しさん@お腹いっぱい。
06/02/14 16:09:25 kdmpCnCA0
>>499
できないんだよそれ。出来たらいいなとは思う。
501:名無しさん@お腹いっぱい。
06/02/14 17:59:57 5RpU6d3N0
>>499
以前それがやりたくてここで質問したものです
AUTHOTKEYのウィンドウならこれで出来ました
>>391-393
通常のウィンドウは。。無理なんだろな。。
502:499
06/02/14 20:23:21 RVF5Wq5S0
>>500-501
なるほど…
AutoHotkeyの仕様なのかOSの仕様なのか知らないけど、ちと残念。
透明になっても良いんだけど、クリックが素通りしてしまうと不便なんだよなぁ。
503:名無しさん@お腹いっぱい。
06/02/15 00:05:58 9Es2AScX0
もっとメニュー作成機能を強化して欲しいかも。
・アイコン表示
・1行だけならサブルーチン化しなくてもMenuコマンドにそのまま記述可
・メニューの複数列表示
・オーナードローメニュー
オーナードローメニューは面倒だと思うけど上3つはできると良いな。
504:名無しさん@お腹いっぱい。
06/02/15 08:41:57 SX93VEbb0
Win起動したときにAutoHotkey.iniが勝手に開くようになったんだけどなんでだろう?
505:名無しさん@お腹いっぱい。
06/02/15 14:42:20 4hb2BCE90
>>504
スタートアップにショートカットじゃなくて実体を入れた罠?
506:名無しさん@お腹いっぱい。
06/02/15 14:45:57 l6zgqL1t0
いや、INI本体のショートカットを入れたんだろう
INIだからメモ調かなんかで開くわな。
507:名無しさん@お腹いっぱい。
06/02/15 17:24:49 ve0MRSui0
Winnyで広がるahkウィルスとか書いたら楽しそうだな。
インストールベースが少ないからあんま広がらないか。
508:名無しさん@お腹いっぱい。
06/02/15 20:06:31 JUqdYKTh0
ahkより素直にjsやvbsで書いた方が広まるジャマイカ
509:名無しさん@お腹いっぱい。
06/02/15 20:18:50 SX93VEbb0
>>506
正解。
なぜかスタートアップにiniのショートカットが入ってた。
入れた覚えないのにってかしばらくAHKいじってないのに。
不気味。
510:名無しさん@お腹いっぱい。
06/02/16 13:26:06 h5aXoB5n0
同一キー定義をアクティブ窓ごとに別々で書けるようになったみたいね(まだ試してない)
URLリンク(www.autohotkey.com)
これでいちいちキー定義のほうで条件分岐しなくてもよくなるかな
今まではアクティブ窓を追いかけ続ける無限loop回してやりくりしてたけど
511:名無しさん@お腹いっぱい。
06/02/16 13:58:21 EqR0wQoB0
登録も管理も面倒だったけど、これでだいぶよくなった
512:名無しさん@お腹いっぱい。
06/02/16 14:24:10 nqNAQta60
便利になったとは思うけどホットキーなら
ループで監視しなくても押された瞬間だけ判定すればいのでは
513:名無しさん@お腹いっぱい。
06/02/16 14:37:33 RHJx/nzR0
>>510
>無限loop
アクティブウィンドウ監視して変わるたびに
Hotkeyコマンド使って切り替えみたいな感じ?
514:名無しさん@お腹いっぱい。
06/02/16 14:39:38 JGq1Z4Yk0
ほっとけい
515:名無しさん@お腹いっぱい。
06/02/18 10:17:30 WrtMVw3N0
覚えらんない人のためのオンラインソフト備忘録 でこのソフトの
事が取り上げられてて興味が沸いたので、勢いこちらのスレに来てみたら。。。
>>1はいったい何なんですか!?さっぱりわかりません!
それともスレ立て主は外人ですか?誰か僕にわかるように説明してくさい!
516:名無しさん@お腹いっぱい。
06/02/18 11:14:12 KVqPeB680
(´・ω・`)知らんがな
517:名無しさん@お腹いっぱい。
06/02/18 21:53:53 JQ9unHlx0
なまずの人ってここも見てるよね
2バイト文字対策の使わせてもらいました
どうもです
518:名無しさん@お腹いっぱい。
06/02/18 22:01:48 wweffrMN0
アレの使い方がまだ分かんにゃい…
519:名無しさん@お腹いっぱい。
06/02/18 22:01:56 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:名無しさん@お腹いっぱい。
06/02/18 22:04:14 JQ9unHlx0
>>518
俺もIMEのは謎だ
521:名無しさん@お腹いっぱい。
06/02/18 23:17:16 Iuqt5cXz0
全角→半角関数使わせてもらってます。
ヤフオクなんかで、全角で書かれた口座番号をコピペするのが格段に楽になりました。
522:名無しさん@お腹いっぱい。
06/02/20 15:30:05 bHvHlGfQ0
単純な#define部分だけで良いから、自動でWINUSER.H等をインクルードして欲しいなぁ。
一々メッセージを使うときにコメントでメモ書きするのめんどい。
523:名無しさん@お腹いっぱい。
06/02/22 00:15:57 JEPVrHVd0
あるAppのウインドウをWindowSpyで調べたところ、どのウインドウでもWindow Title & Classが
すべて同じ値を返す場合、他の方法でウインドウをマッチさせる方法はありますか?
524:名無しさん@お腹いっぱい。
06/02/22 00:19:51 gmGHCXSw0
はい
525:名無しさん@お腹いっぱい。
06/02/23 02:28:24 b2eEMwCj0
質問です。
AutoHotKeyはイベントに対して処理をするということは可能でしょうか。
具体的には
「あるウインドウが閉じられようとしたら、閉じる代わりに非表示にする」
という動作をするようにしたいのですが。
526:名無しさん@お腹いっぱい。
06/02/23 11:31:49 jHCXuL6/0
ポチエスに複数ファイルを送るとショートファイルネームで処理されちゃうんだけど
これをAHK内でロングファイルネームに戻したいと思ったんだが、
なんかそれっぽい記述がリファレンスに見当たらない
なんかいい方法ない???
527:名無しさん@お腹いっぱい。
06/02/23 12:43:38 Mi3jCVds0
>>526
%A_LoopFileName%
528:名無しさん@お腹いっぱい。
06/02/23 15:24:00 OafhHQu10
>>527
引数でやってきたものを処理したいんだけどできるかな。
しばらく考えたが思いつかない
(1)ぽちエスからショートファイルネームが複数やってくる
(2)それをロングに変換してファイルに書き出す
みたいな感じなんだけど。
529:名無しさん@お腹いっぱい。
06/02/23 15:36:32 Mi3jCVds0
>>528
Loop, %0%
{
i := %A_Index%
Loop, %i%
{
MsgBox, %i%`n%A_LoopFileName%`n%A_LoopFileFullPath%`n%A_LoopFileLongPath%`n%A_LoopFileDir%
}
}
530:名無しさん@お腹いっぱい。
06/02/23 15:40:51 OafhHQu10
すげ、できた!!
ファイル名でLoopなんて出来るのか。
サンクス!!!!!
531:名無しさん@お腹いっぱい。
06/02/24 14:00:22 PyEBwfs70
流行らせるページの管理人の日記がすごい
TrayCommandもどきに感動
ついでにTrayExpandもどきも作ってくれないかとずうずうしい要望をしてみる
532:名無しさん@お腹いっぱい。
06/02/24 18:39:48 LMN2OTD20
Alt+Tab代価するようなスクリプトつくってほしいな
533:名無しさん@お腹いっぱい。
06/02/24 21:52:20 7qRRIOKj0
AltTabコマンドじゃだめなの?
534:名無しさん@お腹いっぱい。
06/02/25 00:57:19 HuCPqrC00
流行らせるページに一つあった
535:名無しさん@お腹いっぱい。
06/02/25 02:19:14 TlCaEqJP0
#IfWinActive, AutoHotkey.ini ahk_class Hidemaru32Class
^s::
Send, ^s
sleep, 1000
Reload
return
リロードが面倒くさいのでAutoHotkey.ini編集中に上書き保存したらリロードするってのを考えた
一応sleep入れてみたんだけどこのsleepっているのかな?
536:名無しさん@お腹いっぱい。
06/02/25 06:04:04 WlTtzrS/0
すみません、こちらの皆さんには初歩的すぎるかもしれませんが、
マウスのボタンを押している間、
100mm秒間隔でクリックを連打
させるスクリプトはどう書けばいいのでしょうか?
537:名無しさん@お腹いっぱい。
06/02/25 08:53:08 6LCnKr020
>>535
入れといたほうがよろし
538:名無しさん@お腹いっぱい。
06/02/25 08:57:33 9NjRh94x0
>>535
1000msが妥当かは環境によるので何とも言えんが、ディレイは入れるべきだろうね
好きずきだけど、エディタ側にマクロ機能があるならそっちでやったほうが
無駄な待ち時間も発生しないし安全ではあるな。
自分は秀丸側のマクロでやらせてる
539:名無しさん@お腹いっぱい。
06/02/25 10:02:04 6LCnKr020
>>535
使ってるエディタが秀丸だったのか。
んじゃ、マクロの方がいいね。
540:名無しさん@お腹いっぱい。
06/02/25 10:30:39 HuCPqrC00
更新日時見れば
541:名無しさん@お腹いっぱい。
06/02/25 12:44:23 WlTtzrS/0
loopを使えばいいの?どうやって止めるの?
542:531
06/02/25 12:53:27 Rs6mXlji0
すごい!
たとえ私の要望から作ったのではないとしても本当にありがとうございます!
543:名無しさん@お腹いっぱい。
06/02/25 13:02:37 CnEGJgUv0
あんまりクリックしすぎると
モニターに穴があくからやめたほうがいいよ。
漏れのディスプレイ、内部配線見えまくりだし
544:名無しさん@お腹いっぱい。
06/02/25 13:06:05 9NjRh94x0
break
>マウスのボタンを押している間、100mm秒間隔でクリックを連打
トリガはホイールクリックに割り当てるとか、別のキーでやるつもりなら大丈夫だが
左ボタン押下中に、左クリ連打とかって割り当ててしまうとどえらいことになるぞ
あんまり分かってなさそうなので一応忠告しとく
545:名無しさん@お腹いっぱい。
06/02/25 17:06:34 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:名無しさん@お腹いっぱい。
06/02/25 17:11:40 HuCPqrC00
:*:fx::f
:*:fs::s
:*:ff::k
Hotstringでこうやれば?
547:名無しさん@お腹いっぱい。
06/02/25 18:15:37 veunGidG0
>>546
レスありがとうございます。
試してみます。
548:名無しさん@お腹いっぱい。
06/02/25 18:26:07 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:名無しさん@お腹いっぱい。
06/02/25 22:58:36 9NjRh94x0
MouseClick
または
send, {Lbutton Down}
send, {Lbutton Up}
550:名無しさん@お腹いっぱい。
06/02/25 23:08:33 Rs6mXlji0
MButton::
Loop
{
GetKeyState,keyState,MButton,P
If(keyState="D")
{
Send,{LButton}
Sleep,100
}
Else Break
}
return
これでできると思う
551:名無しさん@お腹いっぱい。
06/02/26 10:51:10 oMn9Wnsa0
あんまりよそで迷惑かけちゃダメ!
552:名無しさん@お腹いっぱい。
06/02/26 12:43:40 pNeAqWnD0
TClockの「タスクスイッチにアイコンのみ表示」「平らなトレイ」「平らなタスクスイッチ」「スタートボタンを隠す」
の機能をAHKで実現したいと考えています。
URLリンク(homepage1.nifty.com)
ここを読んで「フックを使ってサブクラス化する」ということはわかったんですが、
AHKで可能なのでしょうか?
553:名無しさん@お腹いっぱい。
06/02/27 00:03:04 l9PFBXTs0
サブクラス化は時計に描画するときの奴じゃない?
TB_SETSTYLEメッセージでTBSTYLE_FLATとかをセットすれば行けるような気がする
554:552
06/02/27 00:49:18 tOahKDvK0
>>553
SendMessage,0x438,0,0x800,ToolbarWindow322,ahk_class Shell_TrayWnd
;0x438:TB_SETSTYLE 0x800:TBSTYLE_FLAT
こんな感じでしょうか?
OSはXPです。やってもらえるとわかるんですが、フラットに一応なりますがちょっとおかしいです。
あくまでTClockのようなものを目指しています。
それと、>>552にの中では「タスクスイッチにアイコンのみ表示」が自分には一番重要なんですが
これもメッセージだけでいけるんでしょうか?
555:名無しさん@お腹いっぱい。
06/02/27 02:23:25 A+gy7pJs0
とりあえずGETした値に|や&~でスタイルを足したり引いたりしないと駄目かと
556:名無しさん@お腹いっぱい。
06/02/27 10:22:33 NeNYGSjC0
AutoHotkeyでfenrir風スゴス
557:名無しさん@お腹いっぱい。
06/02/27 10:28:09 j85wo7Eo0
神
558:名無しさん@お腹いっぱい。
06/02/27 11:44:42 oF4YUTyr0
>>556
どこ?
559:名無しさん@お腹いっぱい。
06/02/27 11:59:01 TYvekXx40
ぬるど
560:552
06/02/27 14:03:58 tOahKDvK0
>>555
うっかりしてました。
SendMessage,0x438,0,0x52009B45,ToolbarWindow322,ahk_class Shell_TrayWnd
これで「平らなタスクスイッチ」は実現できました。
ただ、同じように
SendMessage,0x438,0,0x56008B4D,ToolbarWindow321,ahk_class Shell_TrayWnd
とやっても何故か「平らなトレイ」はできません。
561:名無しさん@お腹いっぱい。
06/02/27 15:59:24 rTfpn8m/0
デスクトップ上やエクスプローラーで、マウスが掴んでいたり、選択状態にあるファイルの収得って出来ます?
選択されてるファイルを移動したり、エディタで開いたりといった、一括処理をしたいんです。
562:名無しさん@お腹いっぱい。
06/02/27 16:36:23 8205XDO60
流行らせるページや、なまず日記さんのところにある修飾キーの複数回押しに機能を割り当てる
スクリプトを使用したいのですが、キーを長押ししたときに連続入力されて複数回実行されてしま
います。
これを回避するために修飾キーの長押し時の連続入力?を無効にして、長押し時は1回の入力と
する方法があれば教えていただけないでしょうか。
563:名無しさん@お腹いっぱい。
06/02/27 18:13:11 tOahKDvK0
>>561
ファイラー、スクリプト、ソフトなどでパスを一度クリップボードに送ればできますよ。
>>562
KeyWaitを使えばできます。おそらく。
流行らせるページの例を拝借しますが、
~Ctrl::
if A_TickCount < %ctrldouble%
{
;some action
ctrldouble=0
}
else
{
KeyWait,Ctrl ;これを追加
ctrldouble=%A_TickCount%
ctrldouble+=400
}
return
564:562
06/02/27 18:29:23 8205XDO60
>>563
ありがとうございます。
思っていたとおりの動作をしてくれました。
コピーをしようとして、設定していたアプリが多重起動したときは焦りました。
565:名無しさん@お腹いっぱい。
06/02/27 21:49:57 A+gy7pJs0
>>560
立体的になってるのは枠の部分だから
WinSetでWS_EX_CLIENTEDGEとかを消してやればいいんじゃない?
566:552
06/02/27 22:38:27 tOahKDvK0
>>565
関係ありそうな、Shell_TrayWnd・TrayNotifyWnd1・SysPager1
の3つのウィンドウでExStyleを取得してみましたが
どれにもWS_EX_CLIENTEDGEはありませんでした。
567:552
06/02/27 23:42:36 tOahKDvK0
TrayNotifyWnd1からWS_EX_STATICEDGEを外すことで解決しました。
Control,ExStyle,0x0,TrayNotifyWnd1,ahk_class Shell_TrayWnd
あとは「タスクスイッチにアイコンのみ表示」「スタートボタンを隠す」の2つ。
スタートボタンはControl,Hideで隠すことはできるんですが、
隠した場所が空白になってしまいます。
空白を埋めるようにウィンドウやコントロールを左に移動してもうまくいきませんでした。
568:名無しさん@お腹いっぱい。
06/03/01 02:50:36 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:名無しさん@お腹いっぱい。
06/03/01 05:39:49 ssfeeMo60
やべぇ、虫眼鏡気に入った。
半透明化するとカコイイし使いやすい。
旗+ホイール回転で拡大縮小にしたらこれまた良い感じだ。
Ctrl+旗+ホイール回転でサイズだけ変えるようにしたらまたこれが良い感じだ。
管理人さんコレ結構使えるよありがとう。
570:名無しさん@お腹いっぱい。
06/03/06 15:39:50 15ZX1WmO0
マルチモニタで使用しています。
WinMoveでウインドウを反対側のモニターに移動させようとしたら、ウインドウが最大化の状態では
移動できないんですね。なんか対策方法ってありますか?
571:名無しさん@お腹いっぱい。
06/03/06 22:08:11 dAP1bHHq0
起動中のスレッドの数を取得する方法ってありますか?
一応 ListHotkeys の Running で調べることはできるんですけど、
スクリプト内でスレッドの数を取得することができないで悩んでます。
572:名無しさん@お腹いっぱい。
06/03/07 19:31:53 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:名無しさん@お腹いっぱい。
06/03/08 01:17:49 vfUm781w0
A:: Send,{F1}
B:: Send,[F2}
...
とやってすべてのキーに対して
IfWinActive,TargetWindowTitle
{
Send, {???}
return
}
したいと思ったら個別に全部書かないといけないの?
574:名無しさん@お腹いっぱい。
06/03/08 01:33:04 4eMMzOAe0
今ならこれで行ける
A::
#IfWinActive nanntoka
A::
#IfWinActive kantoka
A::
575:名無しさん@お腹いっぱい。
06/03/08 06:52:36 +kxWwRRD0
格ゲーのコマンドを空いたボタンにマクロ化しようと思ったんだけど
十字キーをどうsend,{}に書けばいいのかわからない…
教えてください、お願いします
576:名無しさん@お腹いっぱい。
06/03/08 10:37:30 h+DqYquz0
Send,{Right}
Send,{Down}
Send,{Right}
じゃだめなの?(昇龍拳)
577:名無しさん@お腹いっぱい。
06/03/08 11:54:15 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:名無しさん@お腹いっぱい。
06/03/08 14:27:59 +kxWwRRD0
>576
言葉が足りなくてすまん、
えーと、
joypadからの入力としてはどう書くのかなーと。
ボタンは1joy5とかでなんとかなるんだけど
方向キーのjoyXとかの書き方が良く解らなくて。
579:名無しさん@お腹いっぱい。
06/03/08 16:20:21 rhy9UwrA0
>>578
URLリンク(lukewarm.s101.xrea.com)
580:名無しさん@お腹いっぱい。
06/03/08 22:08:54 +kxWwRRD0
>579
いや、そりゃそこも見てるんですよ?
ただ十時キーの場合右、中、左を
0〜100とかの数値で表さなきゃいかんじゃないですか?
それをどういう書き方で書けばいいのかと思いまして。
状態はわかってもsendは出来ないのかな…
581:名無しさん@お腹いっぱい。
06/03/08 23:49:20 gQ7VQesu0
>>580
デジタル十字キーは、ボタンのどれかにマッピングされてるはずだが
アナログなら書いてある通りだ
582:名無しさん@お腹いっぱい。
06/03/09 11:08:17 jj4ahRjB0
>>577
ぬるタソって誰?
583:名無しさん@お腹いっぱい。
06/03/09 14:40:31 Pszy413S0
ぬる様を知らないとは・・・。
584:名無しさん@お腹いっぱい。
06/03/10 04:18:48 w2FftydU0
自分のスクリプトの設定ウィンドウを作りたいんだが
ボタンとか部品を値で指定するのが面倒です
GUIを設計するのに便利なツールってありませんか?
AHK用でなくても
部品の位置(X,Y座標)、width,heightなどが分かればいいんです
私はプログラムを組んだのは
CUIベースのやつをちょこっと触ったくらいなので
GUIを作るのに便利なツールとかホントよく分からないのです。
どなたかお願いします
585:名無しさん@お腹いっぱい。
06/03/10 04:31:56 ze2+cAQ/0
>>584
便利かどうかは知らんけど、こんなのはある。
URLリンク(www.autohotkey.com)
586:名無しさん@お腹いっぱい。
06/03/10 04:54:34 FWnM8tqy0
必要最小限の記述だけでとりあえず入力できるウィンドウが出せるだろ
Delphiのフォームエディタなんかでペタペタ並べていくより楽だと思うが
587:名無しさん@お腹いっぱい。
06/03/10 10:18:45 w2FftydU0
>585
AHK用のやつをAHKで作ってた人いるんですね。
少し触ってみたんですがなかなか良さそうなので
シコシコぺたぺた作ってみます。
ありがとうございました
>586
自己満足ながらそれなりの見栄えがほしいのですわ
身内にまわすつもりのスクリプトなんで
588:名無しさん@お腹いっぱい。
06/03/10 16:54:00 DvP0u0ni0
本来1行に書かなければいけないものを
複数行に渡って書くことはできないでしょうか?
589:名無しさん@お腹いっぱい。
06/03/10 18:04:06 ovxrZJOi0
例えば?
590:名無しさん@お腹いっぱい。
06/03/10 19:00:52 3lX6WYxo0
If 1 Contains あいうえお,かきくけこ,(…)
って時に分けたいなあって時はある。
591:588
06/03/10 20:41:18 DvP0u0ni0
>>589
If(WinActive(........) || WinActive(..........) || WinActive(..........) || ..)
などの時です
592:名無しさん@お腹いっぱい。
06/03/11 01:39:11 +FW9TX3p0
IME on/off トグルはどのようにすればできますか。
探してみたのですが見つかりませんでした。
593:名無しさん@お腹いっぱい。
06/03/11 02:03:00 4Dr+/V140
原始的な方法は
IME ON/OFFを IMEプロパティから適当なキーに設定して
それをSend。
594:名無しさん@お腹いっぱい。
06/03/11 02:08:22 91GIDUrj0
>>592
具体的にどういう用途に使うの?
AutoHotkeyを流行らせるアップローダの029.zip使えば解決するとは思うけど。
595:592
06/03/11 11:16:04 +FW9TX3p0
>>593
ありがとうございます。
英語キーボード なので、Alt+`がデフォルトのIME On/Offなので
これをやったのですがうまくいかなくて。
RAlt:: Send,!`
とやってみたのですが、何が間違っているのでしょうか?
>>594
上に書いたとおり、英語キーボードだとIME起動がちょっと面倒なのです。
今は窓使いの憂鬱で右AltをIME On/Offにしていますが、
まずAHKでも同じことができれば、AHKの他の機能も試用してみたいと思いました。
596:名無しさん@お腹いっぱい。
06/03/11 12:52:01 aZXYdYak0
Send, {ALTDOWN}`{ALTUP}
こう書くんじゃないの?
597:592
06/03/11 13:01:55 mSorvu8J0
>>596
試してみましたが、フォーカスがメニューに移る、通常のAltキーの動作しかしませんでした。
AHKのOpenメニューで見てみましたが、{ALTUP}{ALTDOWN}となっていて、
やはり右Altとしては認識されていないようです。
598:名無しさん@お腹いっぱい。
06/03/11 17:28:31 /NprAL2G0
`は``とエスケープしないと
599:yy
06/03/12 00:16:48 gfXzHMTR0
マウスのホイールup、downをタブ切り替え(ctrl+up、down)に割り当てたいんですが
どうやるの?
600:yy
06/03/12 00:18:28 gfXzHMTR0
書き忘れましたが、エクセルでの話です。
601:yy
06/03/12 00:20:21 gfXzHMTR0
またまた書き忘れましたがマウス+ホイールup、downの動作のことを言いたいのです。
602:592
06/03/12 01:48:47 flSoepXq0
>>598
できました!!
RAlt:: Send, {ALTDOWN}``{ALTUP}
これで右AltでIME On/Offができるようになりました。
窓使いの憂鬱では、押しただけのときはIME On/Off、
押しっぱなしにしてほかのキーと同時に押したときはAltの役割ができたのですが
これをさせるにはどうしたらいいでしょう。
RAlt up:: Send, {ALTDOWN}``{ALTUP}
とやると、右Altを離した瞬間にIMEが切り替わってしまいます。
603:名無しさん@お腹いっぱい。
06/03/12 12:01:42 7/ujbqoZ0
そういうのはマウ筋使った方が早いな>yy
604:592
06/03/12 12:11:54 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
06/03/12 13:37:35 MzJzCq0O0
>>604
+CapsLock::
GetKeyState, state, CapsLock, T
MsgBox, %state%
Return
とやってサブルーチンが実行されているかを試しましたが
期待したメッセージボックスも出ず、どうも+CapsLock::の記述がダメそうです。
+{CapsLock}::もうまくいきません。
606:名無しさん@お腹いっぱい。
06/03/13 13:28:27 +eLuhcrb0
コントロールの座標を取得する方法は載ってるけど
Guiで生成したウィンドウの絶対座標(スクリーン座標?)を取得する方法が分かりません。
WindowsMessageを送ればできるような気もしますけど
そんな事したことないのでどうやるのかさっぱりです。
どうすればウィンドウの座標を取得することができるんでしょうか?
607:名無しさん@お腹いっぱい。
06/03/13 14:00:56 HyKmrYHA0
WinGetPosじゃ駄目なん?
608:名無しさん@お腹いっぱい。
06/03/13 18:33:26 +eLuhcrb0
Guiの方ばっかり見てて
Windows関係の命令見てませんでした。
WinGetPosでいけますね、失礼しました。
609:名無しさん@お腹いっぱい。
06/03/15 22:02:26 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:名無しさん@お腹いっぱい。
06/03/15 23:01:58 4MPDWD0K0
>if (length = 0) ,continue
611:名無しさん@お腹いっぱい。
06/03/15 23:05:41 4MPDWD0K0
途中送信してもうた
continueはLoopの中でしか使えないんジャマイカ
どっちにしてもカンマで区切って一行に納めるのはNGだったと思う
最近バージョンアップチェックしてないので、記述ルール改定されてたらスマソ
612:名無しさん@お腹いっぱい。
06/03/16 00:18:25 +vsjFQ220
;_____________________________________
StringLen, length, strings
ifEqual, length, 0, continue
ifEqual, i, 1, FileCreateDir, %dir%\%name_no_ext%\
;_____________________________________
613:名無しさん@お腹いっぱい。
06/03/16 00:24:01 n0WmmFt40
>>611
すみません、これLoopの中です。
で、ご指摘の通り
if (length = 0)
{
continue
}
にしたらちゃんと動きました。
流行らせるページのIfInStringの説明にカンマで区切ってOKとあったので、このifでも気にせずカンマで区切ってました
if単体だとカンマ区切りは動作がおかしくなることあるのかな…?
614:名無しさん@お腹いっぱい。
06/03/16 00:26:15 n0WmmFt40
>>612
すごいスマートです。
ifEqualを使えばよかったんですね。
ありがとうございます。
615:名無しさん@お腹いっぱい。
06/03/16 00:28:52 n0WmmFt40
流行らせるページを再読したら
>IfEqualのようなコマンド名の形式の場合、更にカンマで区切って条件に一致した場合に実行するコマンドを記述できる。
しっかり書いてありました。お騒がせしました。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5366日前に更新/298 KB
担当:undef