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

384 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/02(水) 17:24:05 ID:WduZd3PH0]
× 切り替えたんです。
○ 切り替えたいんです。

385 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/02(水) 19:30:07 ID:wPtPDyuj0]
下の二行で頭がくらっと来た。

386 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/02(水) 20:57:10 ID:XEaurMqJ0]
エディタや入力部分等で選択している範囲の文字列中の一番右側の数値を1増やすのってどうやればいいんですか?

file-01.txt

を選択して実行すると

file-02.txt

になるような感じです

387 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/02(水) 21:08:44 ID:2iojmLuY0]
>>386
正規表現で数字部分だけ引っこ抜いたらどうでしょう

388 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/02(水) 22:43:10 ID:d+HQvHP20]
Alt や Ctrl や Shift を素早く二回押しして
クリップボードとかを立ち上げようと思っているのですが、
こういう「連続押し」はどうすれば良いのでしょうか?

(窓使いの憂鬱スレで聞いたら「AHKが得意だよ」と言われてやって来ました)

389 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/03(木) 00:02:45 ID:nVgIA2Ke0]
ttp://lukewarm.s101.xrea.com/test/read.cgi/bbs/1092315194/16
その他

390 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/03(木) 01:29:40 ID:k0tD4Xy50]
>>389
どうもありがとうございます。
これに何か書き加えれば
連続押しでアプリを呼び出したりできるんですね。
ちょっと勉強してみます。
詰まったらまた質問させて頂きますので
その時はお願いします。

391 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/03(木) 23:44:41 ID:2gOsBbkj0]
リファレンス見てて
Exp() ネピア数eのべき乗を返す関数
を見たときに自分の限界を感じた
商業科卒でろくな数学教わってこなかったから
単語調べても説明文から理解できないという詰みっぷり
例題とかどういう時に使うのかないから
プログラミングできなくてもこれ使えばなんとかなるかなフフンって思ってた自信が崩れた
理系の学校に行っとけばよかったと思ったよ後の祭り

392 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/04(金) 00:45:32 ID:7zeiblG+0]
>>389のURLで紹介されていた

~CTRL::
if A_PriorHotkey <> %A_ThisHotkey%, return
if A_TimeSincePriorHotkey > 400, return
;some action


return

に、現在クリップボードを呼び出すショートカットである
Ctrl+D を試しに割り当てて呼び出したいのですが、
どうすれば良いでしょうか?
(高校中退の僕にはプログラミングは難し過ぎでした)



393 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/04(金) 11:01:00 ID:pBB/Zv3r0]
リファレンスの Send の項を見て来い
わからないんならお前には無理、あきらめろ

394 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/04(金) 17:41:26 ID:1bP2SCxJ0]
>>391
eなんて理系でも使わないとこじゃまったく使わねぇよw

ってか何でそんなもんを調べてるんだ?
「米の炊き方が知りたいのですが鉄の熱伝導率を調べても私には意味がわかりませんでした」って言ってるようなものだぞ

395 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/04(金) 18:04:46 ID:G2g11yCV0]
"e"をネピア数っていうんだ。知らんかった。一応理系の大学でたけど。
てか、数学をコテコテいじるようなところじゃなかったしな。

自然対数の"底"って書いてあれば、高校数学程度って分かるんだが。
数Uくらいか?(ってか今、数Uってあんのか・・・?)

396 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/04(金) 20:35:03 ID:bHsVIBeM0]
>>394
ちゃうだろ
米の炊き方なら目的がはっきりしてるから鉄の熱伝導率なんて知識が
米を炊く時に必要かそうでないか判断できる
知らないものを調べることになんか疑問あるかね
何か思い立ったときそれが必要だったとして知らなかったら不可能として諦めて損になる

397 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/04(金) 20:45:23 ID:bcgYhMW50]
日本語でおk

398 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/04(金) 22:48:35 ID:5/uiSusF0]
何か不幸な生い立ちでも?

399 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/05(土) 08:23:27 ID:AZM4ch+j0]
Cを始めるときにC言語辞典読破してからハローワールドするみたいな

400 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/05(土) 10:04:21 ID:8a6N5frDO]
>>396
お前にとってeが必要になる可能性が高いかどうかくらいは今でも判断つくだろ?
おおよそ不必要なら、さっさと基本的な事をマスターして、その後で覚えたらいいやん。

401 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/05(土) 16:47:46 ID:IvDj1tasP]
覚えたらeやん

402 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/05(土) 17:49:22 ID:IwMCZKAQ0]
つくしが引っ込んだぞ、おい



403 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/05(土) 19:31:49 ID:zWjQS3cI0]
ゴメン

404 名前:名無しさん@お腹いっぱい。 [2008/04/06(日) 21:06:22 ID:FTx5YlaY0]
神様
あるウィンドウがクリックされた時に、
そのウィンドウにあるメニューバーの特定のメニュー項目がdisabledならば、
クリックされなかったことにしてreturnしたいのですが、
どこかにサンプルなどないでしょうか。

たとえばIEがクリックされた時、IEのメニューバー->編集(E)->コピー(C)が
disabledならクリックイベントが発生しないようにしたいです。

エロかっこいい神様、どうかおながいします。

405 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/06(日) 21:25:26 ID:nrvmy2DX0]
コピー限定だけど、Disableかどうかにかかわらずとりあえず実行して
クリップボードが変更されたなら実行、そうでないなら放置、でいいのでは。

406 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/06(日) 21:34:22 ID:FTx5YlaY0]
例は、分かりやすく書いただけなので、「コピー」とは別物です。
フックとかしないとだめなんでしょうか。

エロカッコいい神様、どうかおながいします。

407 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/06(日) 21:47:07 ID:JhcN1jbX0]
>>404
サブクラス化

408 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/06(日) 23:24:36 ID:FTx5YlaY0]
サンプル見つけました。
www.autohotkey.com/forum/topic21451.html
エロスさまどうもあらがとうごあいまさた。

409 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/07(月) 23:41:05 ID:TGYHX9Tn0]
$^f::Send {Right}
として、MS Word 上で ^f のキースクロールをくりかえすと、
たまに (数百回に一回ぐらい) Ctrl-F が入力されてしまうんだけど、
こんなもんなのだろうか?

^v::Send {PgDn}
でも Ctrl-V が入っちゃう。Sleep を入れるともっと悪くなるよ orz



410 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/08(火) 01:04:03 ID:IhpfBzS20]
AutoHotkeyでも、こういうソースコードっぽいソースを書く人もいるんだな

411 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/08(火) 07:59:06 ID:BaKIsNaN0]
素人質問ですが、教えてください。

@ ;右クリック+ホイール↓ = タスク切り替え
  ~MButton & WheelDown:: AltTab

  ;右クリック+ホイール↑ = タスク切り替え(逆順)
  ~MButton & WheelUp:: ShiftAltTab

A ~MButton & WheelDown:: AltTab

   ~MButton & WheelUp:: ShiftAltTab

@の方法で記述すると、ダイアログにアイコンが表示されるんですが
Aだと表示されず、中央ボタンを押したらアプリが切り替わります。
ですのでホイールの意味がまったくないんです。
どこが違うんでしょうか?Aでも@のような操作がしたいんですが。

412 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/08(火) 08:00:03 ID:BaKIsNaN0]
@のMButton→RButtonに置き換えてください。



413 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/08(火) 14:24:21 ID:AbWtGmV70]
IMEが入力中かどうかを判別する方法はありますか?
変換や確定のSpace,Enterとそれ以外を分けたいんです。

414 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/08(火) 16:01:49 ID:/9Ax63ok0]
IME状態を得るのなら探せば幾つか・・と即レスするところだった。
MS-IMEやATOKがはたらいているかどうか、見るスクリプトは見たことないなぁ。

415 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/08(火) 16:52:37 ID:225eMm8v0]
OnかOffかという状態をみるだけならなんとでもなるんですけどね…

416 名前:414考え中 mailto:sage [2008/04/08(火) 18:36:01 ID:/9Ax63ok0]
AutoHotKey Threadの>>591で言われているPixelSearchを
実際に使ってみた。やれないことはなさそう。>>413

;0XC56A31 ←ATOK変換時の色(青) 0XFFFFFF ←未確定時の色(真っ白)
X2:=A_CaretX + 5
Y2:=A_CaretY + 1
PixelSearch, Px, Py, A_CaretX, A_CaretY, X2, Y2, 0X0F0400 ,0
if ErrorLevel = 0
IMEFlag=1
Msgbox, %IMEFlag%

417 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/09(水) 00:48:40 ID:8oDip4ta0]
>>413に書いてある内容だけ実現したいなら、
"窓使いの憂鬱が"の方が向いている
だが、Vistaだと厳しいな

418 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/09(水) 02:52:04 ID:CYoGSIzg0]
AutoHotkey から Text Services Framework (TSF) は使えないのだろうか?

419 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/09(水) 21:39:19 ID:Y/Kzcbh10]
最近いじり始めたばかりだが
マウスジェスチャの動作書くのって
素人じゃ難しいかな?
どっかに詳しく書いてあるといいんだが。

420 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/09(水) 22:30:24 ID:j0FC8OmH0]
>>419
マウスジェスチャならはやらせるページの作者がかなり高性能なものを作ってくれてる
それをいじるなり参考にするなりすべし

421 名前:419 mailto:sage [2008/04/09(水) 23:30:39 ID:Y/Kzcbh10]
一応それ入れて中見てみたけど
もう自分にはチンプンカンプンでした。
a::bみたいな簡単には行かないんですね。

422 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/10(木) 22:18:00 ID:R9AZZFcs0]
RButton →←::〜
みたいな書式なら楽だな

ってか、マウ筋みたいだ



423 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/10(木) 22:35:21 ID:Z+zxLkTQ0]
マウ筋をAHKに移行したいのだがマウ筋でつくった設定が膨大すぎてやる気が起きんw

424 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/10(木) 22:39:41 ID:Ys36v7eM0]
ttp://www.ms.u-tokyo.ac.jp/~abenori/diary_old/200707.html#200707180
こんなんあるな

はやらせるページに比べたらはるかに低機能だが

425 名前:419 mailto:sage [2008/04/10(木) 23:29:26 ID:zeB47hBY0]
>>424

これは具体的にどうすればいいんでしょう?

ラベルで振り分けるようにしてみました.
マウ筋 に近い挙動にしたつもり.これをincludeして,
設定ファイルにはMG_****(****にはジェスチャの動作を入れる)なるラベルを書けばいいです.
プログラム名とかも指定できて,次のような感じ.

426 名前:419 mailto:sage [2008/04/10(木) 23:30:29 ID:zeB47hBY0]
include?
設定ファイル?
ahkに上の文章を書き込むだけじゃダメ?

427 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/11(金) 03:08:21 ID:uA7AvC520]
自分で試行錯誤できないなら止めとけよ。


428 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/11(金) 18:19:46 ID:Pc4g0Pb20]
::無変換+E
~vk1Dsc07B & e::Edit
こんなんやってるんだけどIMEオン時にひらがな、カタカナ、半角カタカナと切り替わるんだけど
この切り替わるのを無効に出来ないですか?


429 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/11(金) 22:53:50 ID:JQHzlaNh0]
>>428
IME側の設定を変えるのが良いかと思う

430 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/11(金) 23:30:02 ID:1LAD2LgE0]
~消して、IMEがOnかOffかを調べてOnだったら無変換送らないようにするとか

431 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/11(金) 23:57:14 ID:8JtpLxde0]
>>429
あーそこ忘れた。
ありがとう

430もありがとう


432 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/16(水) 13:59:42 ID:QOZL0eII0]
メインスクリプトAとサブスクリプトBがあって、それぞれ共通の変数cを使いたいんだが
いわゆる戻り値という形で変数を使いたい場合はどのようにすればいいかな?
今はその方法がわからないので、iniに読み書きすることでどうにか対応してるけど
もっとスマートな方法があったら教えてくれないか
一応スクリプト晒す

A
;回数入力-確認
;c ループ回数
runwait B.ahk
iniread,lc,ahk.ini,変数,c
msgbox,ループ回数 %c%



433 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/16(水) 14:02:29 ID:QOZL0eII0]
つづき

B
;回数入力
;d ループ回数
loop
{
inputbox,d,回数入力,繰り返す回数を入力(1-999)
;Cancelを押した場合
;iniに0を書き出してmsgbox出してループ脱出終了
if errorlevel<>0
{
iniwrite,0,ahk.ini,変数,c
msgbox,終了します
return
}
;1〜999の数字を入力した場合
;iniにdを書き出してループ脱出終了
if d between 1 and 999
{
iniwrite,%a%,ahk.ini,変数,c
return
}
;1〜999以外の数字を入力した場合
;msgbox出してループ戻り
else
msgbox,回数は1-999の間で入力
}

Bはいろいろなスクリプトで使いまわしたいので
それぞれ独立した形でどうにか実現したいんだ・・・

434 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/16(水) 17:55:30 ID:KChtUcd/0]
Bを関数化して汎用ライブラリにすりゃいいんじゃないの?
AなりCなり好きなメインスクリプトから Includeして使えばいい

435 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/16(水) 23:07:32 ID:dzf8gFoh0]
>>434
(・∀・)デキター
どうもありがとう

436 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/16(水) 23:34:07 ID:fqJFcYl60]
このスクリプト(ttp://tryhost.net/~catwalk/?AutoHotKey%2FScript%2FFavoriteFinder#k2e37617)
動いている人いますか?

こちらでは

Error at line 94.

Line Text: List %FAV_DIR%
Error: This line does not contain a recognized action.

The program will exit.

というエラーになってしまうんですが。

437 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/04/16(水) 23:44:44 ID:nEMDvuYT0]
そんな行はないぞ。手を入れてないか?

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で縦なり横なりを最大化したサイズに変更
戻す時は直近のサイズをまた取得してどちらかがマックスだったら
保存してあるサイズに戻す、とか






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

前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