[表示 : 全て 最新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以降も参照

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

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

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

440 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/17(木) 01:01:28 ID:tiSAGbZG0]
>>438
%A_Tab%

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

442 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/17(木) 08:27:20 ID:BPEkA5hT0]
>>439
気になったので調べてみたよ。

Files = %Files%%fn%`n

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



Files := Files . fn . "`n"

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

に変える。

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

443 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/17(木) 08:48:06 ID:BPEkA5hT0]
訂正:

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

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

444 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/17(木) 15:59:55 ID:pTaNcO/h0]
>>442-443
ありがとうございます。

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

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

446 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/18(金) 09:22:21 ID:Tx6njfDx0]
>>440
助かりました。ありがとうございます。



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

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

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

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

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

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

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

451 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/19(土) 16:07:29 ID:7DcoF6RP0]
::send,jv

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

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

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

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

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

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



457 名前:409 mailto:sage [2008/04/23(水) 22:41:57 ID:FJVhdogM0]
$^f::
BlockInput On
Send {Right}
BlockInput Off
return

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

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

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

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

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

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

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

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

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

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

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

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

463 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/27(日) 18:07:54 ID:fR4TStBp0]
セルを上書きしたい場合は、一度内容を消すのかな?



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

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

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

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



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

468 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/28(月) 14:28:05 ID:KqItUE2c0]
スレチだけど、Windows Script HostとかPowerShellを使うほうがいいような

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

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

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

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

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

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


473 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/28(月) 21:32:35 ID:w8H8giGfO]
規制中なので携帯から簡単に。
cmdret.dllを使うと楽。

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

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

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



477 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/01(木) 20:13:18 ID:agwV3sli0]
>>476
別のAHKスクリプトからじゃないと消せないんじゃないだろか。

478 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/01(木) 20:59:51 ID:/6hzVxqK0]
{ESC}
でいいんじゃまいか

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

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

481 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/03(土) 09:23:38 ID:4YTov+QA0]
>>458
ttp://www11.axfc.net/uploader/20/so/He_97006.zip DLKey=ahk
あまり試してない。
古いExcel使って試したから新しいExcelだとだめかも。(Excel 2000使用)

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

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

482 名前:481 mailto:sage [2008/05/03(土) 10:39:01 ID:4YTov+QA0]
バグってた
ttp://www11.axfc.net/uploader/20/so/He_97019.zip DLKey=ahk

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

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

485 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/03(土) 21:30:24 ID:g1xl/KBL0]
>>458 出てこい。つか、>>482でも動かない希ガス。

486 名前:481 mailto:sage [2008/05/03(土) 21:45:23 ID:4YTov+QA0]
思い付きで機能追加しまくったんで使いもんにならなくなってた。
ttp://www11.axfc.net/uploader/20/so/He_97128.zip DLKey=ahk

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

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

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



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

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

488 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/05/04(日) 00:13:11 ID:dJtYYrWj0]
斜め黄泉のおっさんですがDLLを1つ作成して
WH_KEYBOARDをグローバルフックをしたらいいとおもうよ
www.kumei.ne.jp/c_lang/sdk2/sdk_161.htm
www.autohotkey.com/forum/topic19367.html

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

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

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






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

前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