[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 02/12 04:32 / Filesize : 228 KB / Number-of Response : 702
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

AutoHotkey スレッド part5



1 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/01/28(月) 15:48:16 ID:LAzeYh1N0]
(テンプレ>>1)
■公式
www.autohotkey.com/

■解説
AutoHotkeyを流行らせるページ
lukewarm.s101.xrea.com/

■過去スレ
1 pc7.2ch.net/test/read.cgi/software/1098531338/
2 pc7.2ch.net/test/read.cgi/software/1129836713/
3 pc11.2ch.net/test/read.cgi/software/1157043396/
4 pc11.2ch.net/test/read.cgi/software/1184556627/

関連リンク>>2以降も参照

489 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/04(日) 00:18:30 ID:Jy+nA7+u0]
>>486

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

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




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

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

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

492 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/04(日) 18:44:52 ID:cGN/EYVF0]
NumLockオフったら

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

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

494 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/04(日) 23:44:10 ID:KBkpDPw80]
~Space & 1:: Run, "c:\path\to\exe"
だけでいいだろ

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

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

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



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

499 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/05(月) 02:59:29 ID:3X2C+hLq0]
スペースと1では、間違えて意図しないときそれが作動してしまいそうだなあとすごく思いますよ

500 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/05(月) 03:05:06 ID:3X2C+hLq0]
>>497
Diskeeper+uwscで似たようなことをやった例
ttp://blogs.yahoo.co.jp/uwsc_script/31027984.html

501 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/05(月) 03:09:03 ID:M3ocFwX1O]
>>498
つスペースの隣の無変換キー

502 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/05(月) 03:39:50 ID:M3ocFwX1O]
>>491
たぶん…
左側はShift & NumpadDotにせなアカン。右側は,ってエスケープ必要じゃなかつたっけ?

503 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/05(月) 07:37:21 ID:7ihOQ5bQ0]
>>497
defrag.exeじゃダメなのかな

自分は JkDefrag 使ってる。これだと JkDefrag.exe -q C: D: だけで期待した動作になる。
Windowsのデフラグよりも速いし、最適化も優れてる。スクリーンセーバ中の動作も可。
ttp://www.kessels.com/JkDefrag/
ttp://pc11.2ch.net/test/read.cgi/software/1169559049/

504 名前:名無しさん@お腹いっぱい。 mailto:age [2008/05/05(月) 10:06:33 ID:9F1eIESU0]
>>500
おお、ちょっと参考になりました。
UWSCのコードは全く知らないのですが、やはりここでも
>Defrid=GetID("Defragmentation Completed","#32770")
のように、ahk_class #32770が動いてますね。Windows標準のデフラグツールだから無理なのかな・・・。

>>503
defrag.exeがありましたねぇ〜、そういえば。すっかり忘れてました。
これだとAHKで書くよりBatで書いた方が早いかな?w

JkDefragですかぁ・・・・ 私はPerfect Disk7.0を今まで使ってましたが、今回このスクリプトを
書いている理由は、Perfect Disk7.0がない環境においてもWindows標準ツールのみで
2つのドライブをデフラグ出来るようにしたかったという経緯があります。
色々教えて頂きありがとうございました。

505 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/05(月) 10:10:04 ID:igWkcxAk0]
>>504
何かのコントロール(ボタン)が押せるようになってるかどうかで判断したら?
そういう変化があるボタンがこのケースであるかどうかは分からんけど

506 名前:名無しさん@お腹いっぱい。 mailto:age [2008/05/05(月) 10:11:29 ID:9F1eIESU0]
>>503
書いてみた。なんという簡単なコード・・・


@echo off
defrag c: -f -v
defrag d: -f -v
pause

たったこれだけです。こういう用途だとAHK使うよりBatの方がいいですね・・・。

507 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/05(月) 17:10:54 ID:rXDxE/Vg0]
ファイルのプロパティ-概要の項目を変更したいんだけど
「エクスプローラ起動→ファイル選択が完了している」という前提でしか
ファイルのプロパティを開けなくて困ってます。
理想としては、ファイル名を渡すだけでエクスプローラなどを経由せずに
直接変更したいんだ・・・AHKでそういうことは実現可能?
もし何かしら方法があるのならご教示お願いします。



508 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/05(月) 17:41:03 ID:igWkcxAk0]
すぐ上に出てるだろ、と思ったらここじゃなくてフェンリルのスレだった

509 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/06(火) 23:33:50 ID:o0k8LHCA0]
>>481
ExcelAutoF2.ahkの不具合?報告。
オートシェイプに文字を入れようとすると、「参照が正しくありません」になります。
理屈はわかりませんが、とにかくExcelAutoF2.ahkを走らせた状態でオートシェイプに文字を入れようと
するとそうなり、ExcelAutoF2.ahkを落とせば問題ありません。
おそらく関係無いと思いますが、設定は以下の通りです。
Excel_AddMode = 1
Excel_EnterTab = 0
Excel_Space = 1
Excel_HomeOrEnd = 0
Excel_BSDel = 1


510 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/06(火) 23:36:10 ID:nXY1j0ks0]
PERSONAL.XLSがおかしいとか?

511 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 00:01:06 ID:o0k8LHCA0]
>>510
うーん、良くわからないけどデフォのままだからなぁ。
会社のPC(Excel2000)と、家のPC(Excel2003)の両方で確認。

今気づいたけど、オートシェイプに文字入力しようとする時にF2を押して入力すると「参照が正しくありません。」
になるんだわ。
だから、ExcelAutoF2.ahkを走らせてるとそうなるってのは当たり前な訳だが、オートシェイプに入力する時はF2
しない様に組めますか〜作者様・・・


512 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 21:02:36 ID:Yjv7RteR0]
FileLoopでディレクトリ内のファイル数でループさせ、ファイル名を変更したいのですが、
正規表現の書き方が理解できていないので、アドバイスいただけるとうれしいです。

やりたいこと

|あいうえお 1話
|あいうえお 2話
|あいうえお 3話
|あいうえお 10話
|
|↓
|
|あいうえお 01話 ←0を追加
|あいうえお 02話 ←0を追加
|あいうえお 03話 ←0を追加
|あいうえお 10話 ←そのまま

条件
 半角または全角スペースの後に半角数字がきて、かつ1桁だったら、
 最初の数字の前に0を挟む

> ;ファイル名変更
> Loop, *.flv,0,0
> {
> NewStr := RegExReplace(A_LoopFileName, "\s\d", "\s0\d", ReplacementCount)
> }

これだと、置換後のデータに \s0\d がそのまま出力されてしまい、うまく動きませんでした。

参考にしたページ
lukewarm.s101.xrea.com/RegEx.html

513 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 22:03:32 ID:9paZiFl90]
NewStr := RegExReplace(A_LoopFileName, "(\s)(\d)([^\d])", "$10$2$3", ReplacementCount)
でどう?
[スペース][数字][数字以外]の組み合わせにマッチ

514 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 22:32:32 ID:Yjv7RteR0]
>>513
ありがとうございます。なるほど、こう指定するんですね。
おかげさまで、見通しがつきましたので、これをベースに仕上げていきます。

完璧に成功
 >MIAU 第1回ダビング10シンポジウム 1(sm2097191).flv
 >MIAU 第1回ダビング10シンポジウム 01(sm2097191).flv
 >
 >MIAU 第1回ダビング10シンポジウム 2(sm2097287).flv
 >MIAU 第1回ダビング10シンポジウム 02(sm2097287).flv
 
要検討
 >AC版 ドルアーガの塔 ALLクリア+ZAP 1ゲーム20円(sm2057056).flv
 >AC版 ドルアーガの塔 ALLクリア+ZAP 01ゲーム20円(sm2057056).flv
 >
 >MSX ガルフォース 高画質版 1of2(sm1325845).flv
 >MSX ガルフォース 高画質版 01of2(sm1325845).flv
 >
 >カダッシュ (タイトー・1990.03) 1/3(sm2294905).flv
 >カダッシュ (タイトー・1990.03) 01/3(sm2294905).flv
 
スラッシュがあったら発動しないとか、法則を見つけて例外パラメータで潰す感じですかね

515 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 23:43:59 ID:9paZiFl90]
それはもうフォルダまるごとループかけるんでなく、変更したいファイルだけ選択してやった方がいいんじゃ?
選択してるファイルはCtrl+Cで取得できるんで、それに対してループさせるとか。

516 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 23:49:52 ID:9paZiFl90]
ちなみに、こういったファイルに対する作業をやるために、単機能のahkファイルを作っておいて
XButton1,2にその時々において割り振りを切り替えられるようにしてる。

いまだけXbutton2に 「選択ファイルの更新日時をすべてそろえる.ahk」を割り振ろう、とか

517 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/07(水) 23:51:17 ID:PU1RHSIV0]
URLの数字を増やしたり減らしたりするAHKで昔苦労したっけ
アレもいろいろ条件が複雑でな



518 名前:481 mailto:sage [2008/05/08(木) 02:14:20 ID:J+Y8vwYQ0]
>>511
遅くなってごめん。
試しにやってみた。[F2]押すとスクリプトに関係なく上の横長のエディットボックスにフォーカスが
移って、その状態で文字入力すると「参照が正しくありません。」と出るんね。

で、左上のセル番号を表示しているコンボボックスの文字列を取得して分岐しようと思ったら、
実際に画面上に表示されている値と、コンボボックス内部の値が一致してなくて苦戦。という状態。
一度コンボボックスにフォーカス当てれば内部の値も更新されるんだけど。

519 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/08(木) 09:27:37 ID:x5ytqvPG0]
>>517
それやりたかったやつなのですが、できませんでした。
よかったらソースいただけますか?

520 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/08(木) 19:43:44 ID:J+Y8vwYQ0]
>>511
ttp://www11.axfc.net/uploader/20/so/He_98575.zip DLKey=ahk

標準ツールバー(「上書き」とか「開く」ボタンがあるやつ)の状態を確認してるから、標準ツールバー
が表示されてないとオートシェイプ使用時の不具合は回避出来ない。他は今までどおり。

無駄省き等でちょこちょこいじったからバグあるかも。

521 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/08(木) 22:38:38 ID:+1iNoZSC0]
てか、コードじゃなくて正規表現だけのような・・・

1個のパターンだけで表現しようとするから難しい(ってか面倒)かと。

「検索パターン」と「置換文字列」をセットにして、
複数のパターンを順次かければいいんじゃないかと。

INIファイルとかにパターンを外だしすると、メンテ性も良さげ。

多重フィルタみたいな感じ。


522 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/09(金) 01:56:30 ID:oLj4i3l00]
既出だと思うけど、
AHKでコンパイルするとマカフィがウィルスですと
ご認識して、勝手に削除しちゃうんだけど、
AHKで作ったものを安全と認識させるにはどうすればいいのですか?

※マカフィを無効にはしたくないです。

523 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/09(金) 02:37:57 ID:XMewj1P/0]
UPX圧縮あたりかねぇ

524 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/09(金) 02:45:37 ID:XMewj1P/0]
よくあるっぽい
ttp://slashdot.jp/security/article.pl?sid=08/03/21/0915246

525 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/09(金) 05:03:40 ID:QY922Rg80]
まあ実際ウィルスだしな。
キーロガーなんかも簡単に作れちゃうし。

526 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/09(金) 16:08:49 ID:jBwpf+lE0]
>>525
その論理はおかしい

527 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/09(金) 16:55:30 ID:idNAx07N0]
ccとかも駄目だな。



528 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/09(金) 17:34:25 ID:GpewcdJF0]
マカフィーに報告して、埋め込まれたAHKエンジン部分だけで判定しないようにしてもらうとか、
どっか一箇所のフォルダに入れておいて、そこだけスキャンの除外設定すればいいんじゃないかと

529 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/10(土) 16:01:08 ID:cI06fFxv0]
UPX圧縮じゃなくて、
AHKのエンジンがウィルスチェックに引っかかっている模様。
マカフィーだけでなく、そこいらのウィルスチェックソフトも同様のご認知をしているみたい。
みんなはどうしてるの?

530 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/10(土) 16:08:02 ID:oHi2W79S0]
圧縮すりゃ回避できるかもね
って>>523は言ってると思うんだが

531 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/10(土) 16:28:31 ID:wYoClkp80]
>>519
どうせスケベなページ連続で開きたいんだろ?
皆考えることは同じだな
俺はこんなんしか思いつかなかったが、もっと画期的なやつあるなら知りたい

cnt = 0
Loop
{
cnt := cnt + 1
run www.hogehoge.com/sukebe/ero/%cnt%/
sleep 1000
if cnt = 100
break
}

532 名前:名無しさん@お腹いっぱい。 [2008/05/10(土) 16:51:27 ID:pMlcH0Uj0]
ウィンドウを相対的に移動するために下のように書いたのですが、
Win+矢印を押しっぱなしにしたときの動きが遅いです。
1回呼び出されるたびに一瞬ひっかかる感じです。
AHKではこんなものと諦めるしかないでしょうか?

WinMove2(dx, dy)
{
WinGetPos, X, Y, Width, Height, A
WinMove, A, , X + dx, Y + dy
}

#Up:: WinMove2(0, -16)
#Down:: WinMove2(0, 16)
#Left:: WinMove2(-16, 0)
#Right:: WinMove2(16, 0)

533 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/10(土) 17:26:46 ID:WSeKGJ880]
「おしっぱなし」のときの動作を別に作ればいいんじゃね?

534 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/10(土) 18:08:35 ID:bkFh+con0]
キーボードの設定でキーリピートを速くする
もしくは
GetKeyStateでキーを監視しつつLoopで回す
SetWinDelayも忘れずに

535 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/10(土) 22:14:46 ID:pMlcH0Uj0]
>>533>>534
キーボードのリピート設定はMaxです。
WinDelayがデフォルトで100になってるんですね。
これを2くらいにすることで満足できるレベルになりました。
せっかくなので「おしっぱなし」のときを考慮して書いてみようと思い、
WinMoveをLoopで囲み、下のようにBreakさせようとしたのですが、
無限ループにキーを放してもループからぬけません。
なぜなんでしょうか?

GetKeyState, s, Left
If s = "U"
{
Break
}

536 名前:名無しさん@お腹いっぱい。 [2008/05/10(土) 22:18:14 ID:TEwDHYzo0]
>>531
HTTPでヘッダ取得して200だったらrunするようにすれば?

537 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/10(土) 22:20:01 ID:wYoClkp80]
>>536
言ってる意味がわからない・・・



538 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/10(土) 22:26:14 ID:mttGHkLM0]
Loopで日本語ファイル名を取得すると、ファイル名が化けますね。

 ;AutoHotkeyで取り扱えないダメ文字ファイルの場合は、処理を飛ばす
 IfNotExist %A_LoopFileName%
 continue

こんな感じで、あるはずのファイルを読んで見つからなかったら処理を飛ばす
という逃げを作りましたが、できればフルに動かしたいです。

日本語を扱えるパッチか、なにか対策はないでしょうか。

539 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/10(土) 22:30:40 ID:TEwDHYzo0]
>>537
サーバーにページが存在するかどうか問い合わせて存在したらrunするということ。
www.studyinghttp.net/を読めば出来ると思う。

540 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/10(土) 22:43:26 ID:wYoClkp80]
>>539
そういうことしたいわけじゃないよ。

エロページはだいたいパスの最後が連番になってるページが多いので
1〜100までページがあるのがわかってる時、片っ端から開いてくのに使ったりする。
Irvineでダウンするにしてもページ内のjpg数がページによってまちまちだしなw

>>517>>519もそういう事がしたいんだろう?

541 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/10(土) 23:29:14 ID:cI06fFxv0]
エロを必死に確認したいID:wYoClkp80であった・・・www

542 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/10(土) 23:30:58 ID:iuOrHl4L0]
なんで一般的なスクリプトで済むことを
AHKでがんばりたがるのかがわからない。

543 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/11(日) 00:00:09 ID:k8/9xXte0]
>>538
>2の なまず日記 を漁ってみ

544 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/11(日) 00:23:08 ID:x2ZUK6I60]
>>535
if var = value
なので、その場合は
if s = U
が正しい
あと好みによるけど GetKeyState() って関数も

545 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/11(日) 02:30:35 ID:2QK3XTeB0]
>>540
そうそう、連番のエロページを自動でめくってムヒヒwって
ちがわい!

>>536
みたいなことってできるんだ。thx!


546 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/11(日) 02:32:46 ID:v6FefRTW0]
>>538
なまずさんのとこの関数は処理が激烈に遅いので、速度を求めるもの(ファイル検索とか)だと目的にあわせて多少技がいると思う。

>>540
1,Alt+DなりでURL拾う
2,そのURLを右から読んで最初に出てきた数字を+1
じゃだめかい?

547 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/11(日) 02:50:33 ID:rCs0tb0O0]
文字が化けて困ることをするのなら他のスクリプト言語を選ぶのもひとつの選択ではないか。煽りじゃなく。



548 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/11(日) 09:21:15 ID:3yDLllki0]
ttp://lukewarm.s101.xrea.com/myscripts/MouseGesture.html
マウスジェスチャスクリプトで、中央ボタン(MB)のダブルクリックを検知するには
どう書けばいいのでしょうか。
MB _ _ MB _ か、MB _ MB _ か試したけれど動かない…。


549 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/11(日) 09:22:35 ID:QLi8tEuC0]
漏れはファイルパスだけダメ文字修正されたヴァージョン使ってるよ
どこで拾ったかは忘れたが

550 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/11(日) 09:24:00 ID:QLi8tEuC0]
駄目文字微対策版
ttp://yak.myhome.cx/junks/index.html#ahk.cp932

これだ

551 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/11(日) 13:22:44 ID:2QK3XTeB0]
>>539
>サーバーにページが存在するかどうか問い合わせて
これってAHKでできるんですか?
URLDownloadToFileは違う気がするし。

552 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/11(日) 15:12:15 ID:APYiR8av0]
>>544
ありがとうございます。
「"」をはずしてGetKeyStateにPをつけることでうまくいきました。
最初はGetKeyState()を使っていたのですが、
どういうわけかキーを放してもループを抜けないのことがあるので
引数3つ版を使いました。

553 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/11(日) 16:48:25 ID:UwM9OJqU0]
>>549-550
みごとに動きました!ありがとうございます!結婚してください!

1つ問題を言うなら、AutoHotkeyのトレイアイコンを変更するコマンドで

>Menu,Tray,Icon, .\AutoHotkey.exe,1

という指定をしてるのですが、この行で「アイコンがない」という意味の
エラーが出るようになりました。
しかし、外部のアイコンを指定して回避できました。

554 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/11(日) 17:53:33 ID:FcY1c5ey0]
エロ画像のURLを連番でムヒヒって、
AHKじゃなくてブラウザ用の拡張ツールとかダウンローダ用つーるのようなきがする、
ってかそうしないとアクション数が多すぎて面倒。
つか、DOM解析したりとか、マウス直下のエレメントから直に実行した方が効率いいし。

そうえいば、Irvineなら
 http://boo.foo.woo.com/hoge/fuga[00-99].jpg
なんてのを、
 http://boo.foo.woo.com/hoge/fuga00jpg
  :
 http://boo.foo.woo.com/hoge/fuga99jpg
って感じに展開してダウンロードキュー作ってくれたはず。

まぁ、Janeとかから間接的に起動させたいならコマンドラインでAHK経由ってものあるが。



555 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/12(月) 19:22:23 ID:1+Yqvhql0]
AutoHotkeyの「Iniwrite」コマンドで書いたiniファイルは、
keyがない項目は最下部に追加される仕様で、
長く使っているうちに、順番が汚くなってしまいます。

これを、セクションまたはキーの名前でソートさせる方法はないでしょうか。

[セクション1]
abc=0
ghi=0
def=0



[セクション1]
abc=0
def=0
ghi=0

みたいな感じにできるとすっきりするのですが

556 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/12(月) 19:43:04 ID:D8UjqaFx0]
>>555
Sort使えばいいんじゃね?一回iniファイルを削除して、ソートしてからIniWrite

557 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/12(月) 23:53:58 ID:9MCe40FX0]
vk1Csc079 & i:: Send, {Up} などとして、変換キー Down → 「I」キー Down
→ 変換キー Up → 「I」キー Up すると、「i」が勝手に連続で入力され始め
てしまいます。(何か入力すると止まる)
回避方法は無いでしょうか?




558 名前:557 mailto:sage [2008/05/14(水) 01:07:26 ID:/+0yaezS0]
上の質問取り下げます。
キーリピートの補助ツールの影響でした orz


559 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/14(水) 04:58:57 ID:ZOd/0zb80]
dllcallのつかいかたについて質問です。

流行らせるページのCPU負荷率取得ライブラリがWindows2000で動かないようなので、
このDLLをつかって取得を試みています。

getcpust.dll(WindowsNT/2000/XP/Vista / プログラミング)
>CPUの使用率を取得 (利用例ソースコードつき)
www.vector.co.jp/soft/winnt/prog/se361629.html

それで、下記のように入れてみましたが、

cpu:=DllCall("getcpust.dll\GetCpuStatus") ; get CPU usage

帰ってくる値は常に「1」になってしまい、取得できません。

なお、dllのファイル名を変えたり「GetCpuStatus」を変えると、
1じゃなくてヌルが帰ってくるので、dll自体は認識できているとみて
いいのでしょうか。

DllCallの使い方になれていないのですが、今回の場合は
どのように書けばよいのか、アドバイスをお願いできれば幸いです。

560 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/14(水) 10:39:48 ID:VPcXWzWx0]
>>559
昔まったく同じ質問があったらしい。
うまくいかない時とかもそうだけど、何度も呼び出すならLoadLibraryしたほうがいいよ

#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

561 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/14(水) 10:52:50 ID:ZOd/0zb80]
>>560
どうもありがとうございます!正常に動きました。

562 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/14(水) 21:53:23 ID:qEVMeKsk0]
Sendでクリップボードの中身を書き出そうとした時に
2バイト文字が含まれてると正常に書き出せなくない?

563 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/14(水) 23:10:25 ID:P1pe7NoV0]
つ Send,^v

564 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/16(金) 10:48:47 ID:PH/VxX9w0]
ClassNNの指定方法について質問です。

AutoHotkey付属のAU3_Spy.exeをつかって、
ClassNNを取得するところまでは理解できました。

たとえば下記の例はブラウザのSleipnirですが、マウスカーソルが
FenrirEmbeddedToolBar1の上にあるときのみ、カッコ内のスクリプトを
実行する場合、どのように記載すればよいでしょうか。

>>>>>>>>>>( Window Title & Class )<<<<<<<<<<<
Sleipnir - [WinGet]

>>>>>>>>>( Now Under Mouse Cursor )<<<<<<<<
ClassNN: FenrirEmbeddedToolBar1

#IfWinActive ,***** ←たぶんここに何かを記載する
 〜実行したいコマンド〜
#IfWinActive

565 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/16(金) 14:47:34 ID:c9i3EJxT0]
#IfWinActive, Sleipnirのクラス
***::
MouseGetPos, , , , OutputVarControl ,
If Outputvarcontrol = FenrirEmbeddedToolBar1
{実行コマンド}

こうかな、わかりません><

566 名前:名無しさん@お腹いっぱい。 [2008/05/17(土) 12:51:31 ID:cUZz5sdV0]
特定のウィンドウではキー変更せず
それ以外ではキーを変更するにはどうすればよいでしょうか?
下のようにしてみましたが、NotepadでCtrl+Aすると
#MaxHotkeysPerInterval に達してしまいます。
「~」をつけると逆にNotepad以外でもCtrl+Aが入ってしまいます。

^a::
IfWinActive, ahk_class Notepad
Send, ^a
Else
Send, b
Return

567 名前:564 mailto:sage [2008/05/17(土) 13:02:38 ID:l+1Pu63/0]
>>565
ありがとうございます。おかげさまでヒントになり、解決しました。

 MouseGetPos, , , , OutputVarControl ,
 If Outputvarcontrol<>【指定したいClassNN】
  return ;違うなら無効ということで、戻る

 〜以下やりたいこと

これで認識できました。



568 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/17(土) 14:13:34 ID:hJizOrmY0]
>>566
#IfWinNotActiveじゃだめかい

569 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/17(土) 15:41:23 ID:cUZz5sdV0]
>>568
ありがとうございます。それでできましたが、
除外したいウィンドウが複数ある場合はどうしたらいいのでしょうか?
単純に #IfWinNotActive を複数書くと
どちらも無効になってしまうようなのですが・・・

570 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/17(土) 18:26:03 ID:L03/NFhv0]
>単純に #IfWinNotActive を複数書くと
これがよくわからんが

#IfWinNotActive window1
{
#IfWinNotActive window2
{
#IfWinNotActive window3
{
なんとか
}}}

論理条件だとこうなりそうだがこれだとダメなのか?

571 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/17(土) 20:32:11 ID:/leBUyky0]
つウィンドウグループ

572 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/17(土) 22:51:18 ID:cUZz5sdV0]
>>570
入れ子にせずに独立に2つ書いてたんですが、
入れ子にしてみるとあとに書いたものしか有効になってないようです。

>>571
こういうのがあるんですね。
ちょっとやってみます。

573 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/18(日) 01:15:23 ID:jn7VlSlu0]
ショートカットキーで特定のアプリ(Firefoxとか)に対して
タスクトレイに最小化/最大化をトグルするということはできますか?
よろしくお願いします。

574 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/18(日) 03:25:19 ID:1OtJdJTx0]
Access97のモジュールウィンドウでマウスホイールによるスクロールはできないでしょうか?

Visual Basic 6.0 IDE でマウス ホイール イベントが機能しない
ttp://support.microsoft.com/kb/837910/ja

を試してみたのですがAccess2000以降でないと動かないようなので、とりあえずキーを送るだけのものを書いてみたのですが
どうもいまいちな気がしますので。

#IfWinActive ahk_class OMain
*WheelDown::
Send,{DOWN 2}
return

*WheelUp::
Send,{UP 2}
return
#IfWinActive

575 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/18(日) 03:29:23 ID:1OtJdJTx0]
ちなみにWheel Redirectorやかざぐるマウスでは動きませんでした。

576 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/18(日) 04:36:47 ID:87P/lABM0]
>>574
別にその解決法でいいと思うけど、どうしても気になるなら
WM_SCROLLかWM_VSCROLLメッセージをコントロールに送れば良いんじゃね?
「どこでもホイール」がそんなことやってたような。
Access97は触ったことないので上手くいくか分からないけども。

577 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/18(日) 09:29:46 ID:1OtJdJTx0]
>>576
ありがとうございます。

しかしどこでもホイールも試してみましたが動きませんでした。
Access2000以降でないとWM_MOUSEWHEELでホイールメッセージを検出できないようです。(よくわかっていませんが)
このあたり
ttp://www.asahi-net.or.jp/~uk8t-ktu/wincode/global/0010.htm
を参考にすればできそうな気もしますが、AHKはまだ使い始めなのでどう書けばいいのかさっぱりな状態です。



578 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/18(日) 11:25:55 ID:HJA6d0Re0]
>>573
タスクトレイにFirefoxがあるなら最大化、無ければ最小化でいいんじゃないか?
タスクトレイのものを操作するサンプルは流行らせるページにあったはず

579 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/18(日) 12:00:49 ID:ab0+UOCY0]
>>577
多分 WM_VSCROLLでスクロールコマンド投げる時にスクロールバーのハンドルを
指定してやらんといかんのじゃないかな。

検証してやりたいけどAccess97はもう持ってないので、この辺り使って自分で試行錯誤してくれ
表示ペインとスクロールバーのクラス名や関係性は Winspectorとかで調べると分かりやすいと思う
ttp://lukewarm.s101.xrea.com/up/file/085.zip

580 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/18(日) 12:28:21 ID:q+GwzdQJ0]
>>572
Regular Expressions を使うといいんじゃないかな?

SetTitleMatchMode RegEx
#IfWinNotActive ahk_class (window1|window2|window3)

581 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/18(日) 13:50:53 ID:7i8b10K90]
1つのPCで、複数のAHKスクリプトを動かす際、
ホットキーの優先順位を決めることは可能でしょうか。

PCを起動している間、必ず常駐させるスクリプトが1つある状況で、
たまに使いたいスクリプトをあとから実行して2つ存在させると、
同じ定義下にあるホットキーを入れた際、発動するスクリプトが
不定期に入れ替わるようです。

2つ目のスクリプトが起動している間は、1つ目のホットキーを
無効にさせたいのですが、ネットワークでいう「メトリック」みたいな
動きは、どのように作るのがベストベストでしょうか。

582 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/18(日) 14:08:37 ID:1OtJdJTx0]
>>579
ありがとうございます。

ちょっと今Accessの勉強をしないとまずいので暇を見てやってみることにします。
ハンドルやクラス名の取得はClsinfoというのを使っていたんですがWinspectorは細かく調べられていいですね。
かざぐるマウスとかで簡単にいけると思ったんですが甘かった..

583 名前:574 mailto:sage [2008/05/19(月) 19:51:51 ID:xrRjgNKk0]
579でいただいたスクリプトを適当に書き換えてAccess97でもマウスホイールによるスクロールができるようになったので
一応報告しておきます。場当たり的修正なので汎用性は0です。WheelScrool.ahkは93行辺りで変数を初期化しているよう
なので38行辺りの設定が無効になっているような感じです。
--- WheelScrool.ahk~ Sat Nov 03 00:14:08 2007
+++ WheelScrool.ahk Mon May 19 00:41:40 2008
@@ -137,6 +137,11 @@
scmode = 0
}

+ if (ccls = "OModule") ; 追加
+ {
+ scmode = null
+ }
+
if (!scmode)
MOUSEWHELL(ctrl,mx,my,"",AcclSpeed,AcclTOut)
Else SCROLL(ctrl,mode,shwnd,"",ScrlCount,AcclSpeed,AcclTOut)
@@ -283,6 +288,8 @@
ACount := ScrlCnt
Else
ACount += ScrlCnt * ASpeed
+
+ ACount = 3 ; 追加

;wParam: 方向
if (dir = "")

AutoHotkey.iniには以下で
#IfWinActive ahk_class OMain
#Include, %A_ScriptDir%\Extras\Scripts\WheelScrool.ahk
Gosub,WheelInit
#IfWinActive

584 名前:574 mailto:sage [2008/05/19(月) 21:58:09 ID:xrRjgNKk0]
失礼。これだけでいいみたいです。これなら汎用性もありそうです。
--- WheelScrool.ahk~ Sat Nov 03 00:14:08 2007
+++ WheelScrool.ahk Mon May 19 21:53:35 2008
@@ -94,6 +94,7 @@
,VDisavledList, VScroolList, MdiActivateList
,BypassCtlList, NullShwndTabooList, HDisavledList

+ Gosub,WheelInit
CoordMode,Mouse,Screen
MouseGetPos,mx,my,hwnd,ctrl,3
WinGetClass,wcls, ahk_id %hwnd%

585 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/20(火) 00:01:32 ID:z9u7+QjX0]
>>583
>WheelScrool.ahkは93行辺りで変数を初期化しているよう
>なので38行辺りの設定が無効になっているような感じです。

そこは関数内でglobal変数を直に使えるよう再宣言してるだけで初期化はされない筈…
一応うちではちゃんと動いてるんだけど、値引き継がれない?
XP SP2 / AHK Version 1.0.47.06

586 名前:585 mailto:sage [2008/05/20(火) 02:08:31 ID:z9u7+QjX0]
ああ解った、AutoHotkey.ini側の記述の問題だわ
AHK常駐時に初期化する前提だから AutoExecute部(ファイル先頭)に書かないとダメ
;--- AutoHotkey.ini ---
#Include, %A_ScriptDir%\Extras\Scripts\WheelScrool.ahk
Gosub,WheelInit

あくまで#IfWinActiveでAccessにのみ適用したいなら WheelScrool.ahkの Hotkeyの前後に入れる
;--- WheelScrool.ahk : Line 77 ---
#IfWinActive ahk_class OMain
+WheelDown:: WheelRedirect(1)
+WheelUp:: WheelRedirect(1)

WheelDown:: WheelRedirect()
WheelUp:: WheelRedirect()
#IfWinActive

ttp://lukewarm.s101.xrea.com/up/file/085.zip
HDD漁ったらロジクールのチルトでの横スクロールのテストとかした時に作った新しいのがあったんで
上げ直しときます。互換リストにOModule追加してみたんで良かったらコメント外して使って見て下さい。
(ちなみに >583 scmode = null は 0でなく "null"という文字列が代入されてる模様)

587 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/20(火) 20:13:17 ID:zd0pXxS10]
AutoHotkeyで取り扱いたいファイルのハッシュ値を計算するための、簡単な方法はないでしょうか。

@IT:Windows TIPS -- Tips:ハッシュ値を利用してファイルの同一性をチェックする
www.atmarkit.co.jp/fwin2k/win2ktips/597fciv/fciv.html

上記で解説しているマイクロソフト製の「fciv.exe」をRunで渡してみました。

 cmd=fciv.exe "%hashfile%" -xml hash.txt
 runwait %cmd%,,Hide,pid

が、fciv.exe側が日本語のファイル名に対応していないようで、
ほとんどのファイルが、見つからない旨のエラーになってしまいます。
(コマンドラインで渡してもダメだったのでAHkのダメ文字ではないようです)

日本ではfasthash.dllというのが有名のようですが、
dllを使うには、どのように記述すればよいでしょうか。

FastHash.dll
hp.vector.co.jp/authors/VA033110/fasthashdll.htm



588 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/20(火) 21:11:57 ID:+6tZiYR+0]
>>587
日本語のファイル名に対応していないなら、一時的にAHKでリネームすればいいじゃない。

589 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/20(火) 22:00:36 ID:jzwbJ8Aa0]
>>586
わざわざありがとうございます。

かざぐるマウスと併用できるようなのと加速が意外と便利なのでAccess以外にも適用させて使おうと思います。
というかマウスジェスチャーや音量の調節も出来るようだし、AHKがあればかざぐるマウスはいらなそうです。
AHKになさそうなのは設定ダイアログをだしていてもメインウィンドウを動かせる機能ぐらいじゃないかと思います。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<228KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef