08/03/28 00:51:14 vippfD4h0
「アクティブウィンドウのアクティブコントロール」だと
実際はどこにフォーカス当たってるのかわからんよ
マウス下のコントロールハンドル送るほうがまだ確実
MouseGetPos,,,,ctrl,3
PostMessage, 0x114, 0, 0, ahk_id %ctrl%
もしこれでもダメなら対象のコントロールがスクロールに対応してない
(見当違いのコントロールをつかんでしまっている)か、
スクロールハンドルも指定してやらないといかんとかだと思う
343:名無しさん@お腹いっぱい。
08/03/28 01:09:11 SNoH02TP0
Mousegesture.ahk使え
344:名無しさん@お腹いっぱい。
08/03/28 08:29:45 1yE4nRrQ0
>>331
使いにくいインターフェースを使いやすくするのには使っている。
URLリンク(upp.sakura.ne.jp)
URLリンク(upp.sakura.ne.jp)
URLリンク(upp.sakura.ne.jp)
345:名無しさん@お腹いっぱい。
08/03/28 20:40:26 lF6janXs0
%00%01%12みたいにエンコードされたURL文字列をデコードしたいのですが、
変数に入っているURLをデコードするには、どのようにすればいいでしょうか。
AutoHotkey本家サイトで、下記のサンプルらしきものをみつけたのですが、
AutoHotkey自体にまだ慣れていない状態で。たとえば %abc% という変数に
入れたURLを変換するには、どのように書けば動いてくれますか?
uriDecode(str) {
Loop
If RegExMatch(str, "i)(?<=%)[\da-f]{1,2}", hex)
StringReplace, str, str, `%%hex%, % Chr("0x" . hex), All
Else Break
Return, str
}
URLリンク(www.autohotkey.com)
346:名無しさん@お腹いっぱい。
08/03/29 16:33:33 VfpQtKeR0
これってクリップボード拡張機能があるの?
あるんだったらいくつまでため込んでおけるの?
347:名無しさん@お腹いっぱい。
08/03/29 17:02:54 G6elPIP40
クリップボードをどうにかできる機能はある。拡張は各自で行う。
己の好きなだけためられるようなコードをかけばOK
348:名無しさん@お腹いっぱい。
08/03/29 17:59:21 VdXqTZUN0
cbhistory%num% = cbhistory%num-1%
とか偽配列に溜め込んでいけばいくらでも
349:名無しさん@お腹いっぱい。
08/03/29 20:14:12 T1+UFJiD0
例えばあるキーを押したら「○」と入力されるようにするには
クリップボードを使わずにできるの?
350:名無しさん@お腹いっぱい。
08/03/29 20:59:51 G6elPIP40
できるけど全角文字はOSや入力先コントロールによっては化けるよ
351:名無しさん@お腹いっぱい。
08/03/30 02:53:04 E4XGHc6a0
アニメ「めぐみ」ダウンロードページ
URLリンク(www.rachi.go.jp)
352:名無しさん@お腹いっぱい。
08/03/30 09:32:11 ltQQNcJf0
他のスレでAHKを勧められたんで使ってみようかと思っています。
iniファイルに設定を書けって言われたんで記述しようかと思ったんだけど
落としたzipにはiniファイルがありません。
これは自分で作れってことですか?
353:名無しさん@お腹いっぱい。
08/03/30 09:55:59 gl83dI/t0
>>352
初回にAHKを起動したときに自動で作られる
URLリンク(d.hatena.ne.jp)
354:名無しさん@お腹いっぱい。
08/03/30 10:23:13 vGXFRISg0
練習ならデスクトップで、右クリックして
[新規作成]→[Autohotkey Script]
と選択して新規ファイル作る。
さらに出来たファイルを右クリックして
[Edit Script]
を選んで編集する。
たぶんメモ帳で編集となる。
何か書いたら*保存して*からダブルクリックして実行。
後はがんばれ。
355:名無しさん@お腹いっぱい。
08/03/30 10:27:04 Ok2aoVwO0
自分も新参なんでそのへんよくわからんですが、
最近のAHKは、ini ファイルあれば読み込むけど、勝手につくったりはしないのでは。
適当な名前(AutoHotkey.ahkとか) を適当なところに置いて起動時に実行させたほうが、
エディタで編集もしやすいし良いような。
356:名無しさん@お腹いっぱい。
08/03/30 10:37:22 UVMk0PgG0
zip版でも.ahk起動でなかったらini作られると思うけど
357:名無しさん@お腹いっぱい。
08/03/30 13:01:06 qN+p1OrA0
AHKでiniファイルを作って使用する場合
その設定はシステム全体に共通するものになってしまうんですか?
ある特定のソフトではその設定を無効にすることってできますか?
358:名無しさん@お腹いっぱい。
08/03/30 15:24:24 Irt6PGPH0
>>357
システム全体に共通のものにすることも
特定のソフトだけに適用させることも
特定のソフトだけを除外することも
皆できます。
359:名無しさん@お腹いっぱい。
08/03/30 16:15:28 WwLdVX2H0
>>358
そのやり方の書いてあるサイトを紹介してくれませんか?
360:名無しさん@お腹いっぱい。
08/03/30 16:47:55 UVMk0PgG0
>1
361:名無しさん@お腹いっぱい。
08/03/30 22:10:05 oszNmWuy0
さすがに春とは言えひどいのがわくなw
362:名無しさん@お腹いっぱい。
08/03/30 22:14:42 mTU/MBw90
いちいちあおんな
363:名無しさん@お腹いっぱい。
08/03/30 22:19:42 JMekhfLu0
>>350
やっぱり化けますか。
クリップボードに文字入れてペーストするしか方法ないのかな。
364:名無しさん@お腹いっぱい。
08/03/30 23:35:22 vGXFRISg0
URLリンク(lukewarm.s101.xrea.com)
の[Sendコマンド用日本語コード変換]
365:名無しさん@お腹いっぱい。
08/03/31 23:53:39 I9uPmNx00
変換キーをシフト+コントロールにしたいんだけど
vk1Csc079::^+
だとうまく動かないんだけどSend使ってもダメだった。
どうやったら出来るの?全然違うことやってるかな…
366:名無しさん@お腹いっぱい。
08/04/01 00:15:47 Bzz1rfhi0
おまえら、AutoHotkeyなんてもう腐りきった言語をいつまでも使ってるんじゃない!
これからはJHotkeyの時代だぞ!!
URLリンク(lukewarm.me.land.to)
367:名無しさん@お腹いっぱい。
08/04/01 00:28:52 o19x/qgO0
>>開発途中のため、構想されている機能のうち極一部しか実装されていません。
意気込みはいいが、これじゃな…
368:名無しさん@お腹いっぱい。
08/04/01 00:31:29 VxtyJ8oc0
今日は・・
369:名無しさん@お腹いっぱい。
08/04/01 00:32:21 taqmYof10
ぬるたん、何やってんのw
370:名無しさん@お腹いっぱい。
08/04/01 01:05:47 +YiplxOD0
エイプリルフール?
じゃないのね・・・
さすがスクリプトオタク
371:名無しさん@お腹いっぱい。
08/04/01 01:49:23 Bzz1rfhi0
;# MobileSOS.ahk
Gui, 1:+ToolWindow -Disabled -SysMenu -Caption
Gui, 1:Color, FF0000
Gui, 1:Show, X0 Y0 W%A_ScreenWidth% H%A_ScreenHeight%
Gui, 2:+ToolWindow -Disabled -SysMenu -Caption
Gui, 2:Color, 000000
Gui, 2:Show, X0 Y0 W%A_ScreenWidth% H%A_ScreenHeight%
Loop
{
Gui, 1:SHOW
Sleep, 200
Gui, 2:SHOW
Sleep, 200
Gui, 1:SHOW
Sleep, 200
Gui, 2:SHOW
Sleep, 200
Gui, 1:SHOW
Sleep, 800
Gui, 2:SHOW
Sleep, 200
}
Return
Esc::ExitApp
URLリンク(www.forest.impress.co.jp)
372:名無しさん@お腹いっぱい。
08/04/01 02:04:47 rprG/suh0
>>365
AHK勉強中です、正しい書き方でないだろうし
もっとよい記述があると思うんだけど一応書いてみました。
vk1Csc079::
Send,{Shift Down}{Ctrl Down}
loop
{
sleep, 10
GetKeyState, vkstate, vk1Csc079, P
if vkstate=U
{
Send, {Shift Up}{Ctrl Up}
break
}
}
return
373:名無しさん@お腹いっぱい。
08/04/01 02:25:34 +YiplxOD0
>>371
すばやいな
でも、SOSは・・・ーーー・・・だとおもうんだ
374:名無しさん@お腹いっぱい。
08/04/01 03:41:28 xJn9jWDG0
画面の特定の場所(たとえば右上)にマウスオーバーしたら、
特定のアプリを最前面表示、みたいにやりたいんですが、
どこかにそういうスクリプト公開されてますか?
375:名無しさん@お腹いっぱい。
08/04/01 03:48:29 Bx9nGxi10
画面端だけならMouseGesture.ahkにある
376:名無しさん@お腹いっぱい。
08/04/01 03:51:02 xJn9jWDG0
なるほど。ちょっと見てみます。
377:名無しさん@お腹いっぱい。
08/04/01 03:52:36 Bx9nGxi10
* *
* + うそです
n ∧_∧ n
+ (ヨ(* ´∀`)E)
Y Y *
378:名無しさん@お腹いっぱい。
08/04/01 04:02:39 xJn9jWDG0
ナ ゝ ナ ゝ / 十_" ー;=‐ |! |!
cト cト /^、_ノ | 、.__ つ (.__  ̄ ̄ ̄ ̄ ・ ・
ミミ:::;,! u `゙"~´ ヾ彡::l/VvVw、 ,yvヾNヽ ゞヾ ,. ,. ,. 、、ヾゝヽr=ヾ
ミ::::;/  ゙̄`ー-.、 u ;,,; j ヾk'! ' l / 'レ ^ヽヘ\ ,r゙ゞ゙-"、ノ / l! !ヽ 、、 |
ミ/ J ゙`ー、 " ;, ;;; ,;; ゙ u ヾi ,,./ , ,、ヾヾ | '-- 、..,,ヽ j ! | Nヾ|
'" _,,.. -─ゝ.、 ;, " ;; _,,..._ゞイ__//〃 i.! ilヾゞヽ | 、 .r. ヾ-、;;ノ,.:-一'"i
j / ,.- 、 ヾヽ、 ;; ;; _,-< //_,,\' "' !| :l ゙i !_,,ヽ.l `ー─-- エィ' (. 7 /
: ' ・丿  ̄≠Ξイ´,-、 ヽ /イ´ r. `ー-'メ ,.-´、 i u ヾ``ー' イ
\_ _,,......:: ´゙i、 `¨ / i ヽ.__,,... ' u ゙l´.i・j.冫,イ゙l / ``-、..- ノ :u l
u  ̄ ̄ 彡" 、ヾ ̄``ミ::.l u j i、`ー' .i / /、._ `'y /
u `ヽ ゙:l ,.::- 、,, ,. ノ ゙ u ! /_  ̄ ー/ u /
_,,..,,_ ,.ィ、 / | /__ ``- 、_ l l ``ーt、_ / /
゙ u ,./´ " ``- 、_J r'´ u 丿 .l,... `ー一''/ ノ ト 、,,_____ ゙/ /
./__ ー7 /、 l '゙ ヽ/ ,. '" \`ー--- ",.::く、
/;;;''"  ̄ ̄ ──/ ゙ ,::' \ヾニ==='"/ `- 、 ゙ー┬ '´ / \..,,__
、 .i:⌒`─-、_,.... l / `ー┬一' ヽ :l / , ' `ソヽ
ヾヽ l ` `ヽ、 l ./ ヽ l ) ,; / ,' '^i
379:名無しさん@お腹いっぱい。
08/04/01 15:34:48 PbhXdZno0
SubMakeTxt:
(処理)
FileAppend,%Text%,hoge.txt
Return
このようなサブルーチンで、処理の最中に再び同じサブルーチンが呼び出された場合、
最初に呼び出された方を打ち切って新しく最初からやり直すというのはどう書けばいいんでしょうか。
やりたいのは「さっきのやめて新しい条件でhoge.txt作って」という感じのことです。
380:名無しさん@お腹いっぱい。
08/04/01 21:45:56 taqmYof10
そいつをコンパイルEXE化しといて
呼出し毎にまずプロセスを落としてから処理に入るとか
381:名無しさん@お腹いっぱい。
08/04/01 22:27:43 TzLRdUHG0
偉い先生、教えてください。
スクリプト起動中に Hotstring の設定を書き換えられますか?
たとえば
#Hotstring C
↑
↓
#Hotstring C0
などとトグルしたいんですが。
382:名無しさん@お腹いっぱい。
08/04/01 23:35:42 iDdNVKh40
>>364
ありがとう!
383:名無しさん@お腹いっぱい。
08/04/02 17:23:33 WduZd3PH0
AHKでマウスのスクロールボタンを押した
動作を設定したいんですがそれってできます?
テンプレにある流行ページ見たんですが
ボタン押しのキーリストがありませんでした。
やりたいことはスクロールボタンを押したまま
スクロールさせてアプリを切り替えたんです。
384:名無しさん@お腹いっぱい。
08/04/02 17:24:05 WduZd3PH0
× 切り替えたんです。
○ 切り替えたいんです。
385:名無しさん@お腹いっぱい。
08/04/02 19:30:07 wPtPDyuj0
下の二行で頭がくらっと来た。
386:名無しさん@お腹いっぱい。
08/04/02 20:57:10 XEaurMqJ0
エディタや入力部分等で選択している範囲の文字列中の一番右側の数値を1増やすのってどうやればいいんですか?
file-01.txt
を選択して実行すると
file-02.txt
になるような感じです
387:名無しさん@お腹いっぱい。
08/04/02 21:08:44 2iojmLuY0
>>386
正規表現で数字部分だけ引っこ抜いたらどうでしょう
388:名無しさん@お腹いっぱい。
08/04/02 22:43:10 d+HQvHP20
Alt や Ctrl や Shift を素早く二回押しして
クリップボードとかを立ち上げようと思っているのですが、
こういう「連続押し」はどうすれば良いのでしょうか?
(窓使いの憂鬱スレで聞いたら「AHKが得意だよ」と言われてやって来ました)
389:名無しさん@お腹いっぱい。
08/04/03 00:02:45 nVgIA2Ke0
URLリンク(lukewarm.s101.xrea.com)
その他
390:名無しさん@お腹いっぱい。
08/04/03 01:29:40 k0tD4Xy50
>>389
どうもありがとうございます。
これに何か書き加えれば
連続押しでアプリを呼び出したりできるんですね。
ちょっと勉強してみます。
詰まったらまた質問させて頂きますので
その時はお願いします。
391:名無しさん@お腹いっぱい。
08/04/03 23:44:41 2gOsBbkj0
リファレンス見てて
Exp() ネピア数eのべき乗を返す関数
を見たときに自分の限界を感じた
商業科卒でろくな数学教わってこなかったから
単語調べても説明文から理解できないという詰みっぷり
例題とかどういう時に使うのかないから
プログラミングできなくてもこれ使えばなんとかなるかなフフンって思ってた自信が崩れた
理系の学校に行っとけばよかったと思ったよ後の祭り
392:名無しさん@お腹いっぱい。
08/04/04 00:45:32 7zeiblG+0
>>389のURLで紹介されていた
~CTRL::
if A_PriorHotkey <> %A_ThisHotkey%, return
if A_TimeSincePriorHotkey > 400, return
;some action
return
に、現在クリップボードを呼び出すショートカットである
Ctrl+D を試しに割り当てて呼び出したいのですが、
どうすれば良いでしょうか?
(高校中退の僕にはプログラミングは難し過ぎでした)
393:名無しさん@お腹いっぱい。
08/04/04 11:01:00 pBB/Zv3r0
リファレンスの Send の項を見て来い
わからないんならお前には無理、あきらめろ
394:名無しさん@お腹いっぱい。
08/04/04 17:41:26 1bP2SCxJ0
>>391
eなんて理系でも使わないとこじゃまったく使わねぇよw
ってか何でそんなもんを調べてるんだ?
「米の炊き方が知りたいのですが鉄の熱伝導率を調べても私には意味がわかりませんでした」って言ってるようなものだぞ
395:名無しさん@お腹いっぱい。
08/04/04 18:04:46 G2g11yCV0
"e"をネピア数っていうんだ。知らんかった。一応理系の大学でたけど。
てか、数学をコテコテいじるようなところじゃなかったしな。
自然対数の"底"って書いてあれば、高校数学程度って分かるんだが。
数Ⅱくらいか?(ってか今、数Ⅱってあんのか・・・?)
396:名無しさん@お腹いっぱい。
08/04/04 20:35:03 bHsVIBeM0
>>394
ちゃうだろ
米の炊き方なら目的がはっきりしてるから鉄の熱伝導率なんて知識が
米を炊く時に必要かそうでないか判断できる
知らないものを調べることになんか疑問あるかね
何か思い立ったときそれが必要だったとして知らなかったら不可能として諦めて損になる
397:名無しさん@お腹いっぱい。
08/04/04 20:45:23 bcgYhMW50
日本語でおk
398:名無しさん@お腹いっぱい。
08/04/04 22:48:35 5/uiSusF0
何か不幸な生い立ちでも?
399:名無しさん@お腹いっぱい。
08/04/05 08:23:27 AZM4ch+j0
Cを始めるときにC言語辞典読破してからハローワールドするみたいな
400:名無しさん@お腹いっぱい。
08/04/05 10:04:21 8a6N5frDO
>>396
お前にとってeが必要になる可能性が高いかどうかくらいは今でも判断つくだろ?
おおよそ不必要なら、さっさと基本的な事をマスターして、その後で覚えたらいいやん。
401:名無しさん@お腹いっぱい。
08/04/05 16:47:46 IvDj1tasP
覚えたらeやん
402:名無しさん@お腹いっぱい。
08/04/05 17:49:22 IwMCZKAQ0
つくしが引っ込んだぞ、おい
403:名無しさん@お腹いっぱい。
08/04/05 19:31:49 zWjQS3cI0
ゴメン
404:名無しさん@お腹いっぱい。
08/04/06 21:06:22 FTx5YlaY0
神様
あるウィンドウがクリックされた時に、
そのウィンドウにあるメニューバーの特定のメニュー項目がdisabledならば、
クリックされなかったことにしてreturnしたいのですが、
どこかにサンプルなどないでしょうか。
たとえばIEがクリックされた時、IEのメニューバー->編集(E)->コピー(C)が
disabledならクリックイベントが発生しないようにしたいです。
エロかっこいい神様、どうかおながいします。
405:名無しさん@お腹いっぱい。
08/04/06 21:25:26 nrvmy2DX0
コピー限定だけど、Disableかどうかにかかわらずとりあえず実行して
クリップボードが変更されたなら実行、そうでないなら放置、でいいのでは。
406:名無しさん@お腹いっぱい。
08/04/06 21:34:22 FTx5YlaY0
例は、分かりやすく書いただけなので、「コピー」とは別物です。
フックとかしないとだめなんでしょうか。
エロカッコいい神様、どうかおながいします。
407:名無しさん@お腹いっぱい。
08/04/06 21:47:07 JhcN1jbX0
>>404
サブクラス化
408:名無しさん@お腹いっぱい。
08/04/06 23:24:36 FTx5YlaY0
サンプル見つけました。
URLリンク(www.autohotkey.com)
エロスさまどうもあらがとうごあいまさた。
409:名無しさん@お腹いっぱい。
08/04/07 23:41:05 TGYHX9Tn0
$^f::Send {Right}
として、MS Word 上で ^f のキースクロールをくりかえすと、
たまに (数百回に一回ぐらい) Ctrl-F が入力されてしまうんだけど、
こんなもんなのだろうか?
^v::Send {PgDn}
でも Ctrl-V が入っちゃう。Sleep を入れるともっと悪くなるよ orz
410:名無しさん@お腹いっぱい。
08/04/08 01:04:03 IhpfBzS20
AutoHotkeyでも、こういうソースコードっぽいソースを書く人もいるんだな
411:名無しさん@お腹いっぱい。
08/04/08 07:59:06 BaKIsNaN0
素人質問ですが、教えてください。
① ;右クリック+ホイール↓ = タスク切り替え
~MButton & WheelDown:: AltTab
;右クリック+ホイール↑ = タスク切り替え(逆順)
~MButton & WheelUp:: ShiftAltTab
② ~MButton & WheelDown:: AltTab
~MButton & WheelUp:: ShiftAltTab
①の方法で記述すると、ダイアログにアイコンが表示されるんですが
②だと表示されず、中央ボタンを押したらアプリが切り替わります。
ですのでホイールの意味がまったくないんです。
どこが違うんでしょうか?②でも①のような操作がしたいんですが。
412:名無しさん@お腹いっぱい。
08/04/08 08:00:03 BaKIsNaN0
①のMButton→RButtonに置き換えてください。
413:名無しさん@お腹いっぱい。
08/04/08 14:24:21 AbWtGmV70
IMEが入力中かどうかを判別する方法はありますか?
変換や確定のSpace,Enterとそれ以外を分けたいんです。
414:名無しさん@お腹いっぱい。
08/04/08 16:01:49 /9Ax63ok0
IME状態を得るのなら探せば幾つか・・と即レスするところだった。
MS-IMEやATOKがはたらいているかどうか、見るスクリプトは見たことないなぁ。
415:名無しさん@お腹いっぱい。
08/04/08 16:52:37 225eMm8v0
OnかOffかという状態をみるだけならなんとでもなるんですけどね…
416:414考え中
08/04/08 18:36:01 /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:名無しさん@お腹いっぱい。
08/04/09 00:48:40 8oDip4ta0
>>413に書いてある内容だけ実現したいなら、
"窓使いの憂鬱が"の方が向いている
だが、Vistaだと厳しいな
418:名無しさん@お腹いっぱい。
08/04/09 02:52:04 CYoGSIzg0
AutoHotkey から Text Services Framework (TSF) は使えないのだろうか?
419:名無しさん@お腹いっぱい。
08/04/09 21:39:19 Y/Kzcbh10
最近いじり始めたばかりだが
マウスジェスチャの動作書くのって
素人じゃ難しいかな?
どっかに詳しく書いてあるといいんだが。
420:名無しさん@お腹いっぱい。
08/04/09 22:30:24 j0FC8OmH0
>>419
マウスジェスチャならはやらせるページの作者がかなり高性能なものを作ってくれてる
それをいじるなり参考にするなりすべし
421:419
08/04/09 23:30:39 Y/Kzcbh10
一応それ入れて中見てみたけど
もう自分にはチンプンカンプンでした。
a::bみたいな簡単には行かないんですね。
422:名無しさん@お腹いっぱい。
08/04/10 22:18:00 R9AZZFcs0
RButton →←::~
みたいな書式なら楽だな
ってか、マウ筋みたいだ
423:名無しさん@お腹いっぱい。
08/04/10 22:35:21 Z+zxLkTQ0
マウ筋をAHKに移行したいのだがマウ筋でつくった設定が膨大すぎてやる気が起きんw
424:名無しさん@お腹いっぱい。
08/04/10 22:39:41 Ys36v7eM0
URLリンク(www.ms.u-tokyo.ac.jp)
こんなんあるな
はやらせるページに比べたらはるかに低機能だが
425:419
08/04/10 23:29:26 zeB47hBY0
>>424
これは具体的にどうすればいいんでしょう?
ラベルで振り分けるようにしてみました.
マウ筋 に近い挙動にしたつもり.これをincludeして,
設定ファイルにはMG_****(****にはジェスチャの動作を入れる)なるラベルを書けばいいです.
プログラム名とかも指定できて,次のような感じ.
426:419
08/04/10 23:30:29 zeB47hBY0
include?
設定ファイル?
ahkに上の文章を書き込むだけじゃダメ?
427:名無しさん@お腹いっぱい。
08/04/11 03:08:21 uA7AvC520
自分で試行錯誤できないなら止めとけよ。
428:名無しさん@お腹いっぱい。
08/04/11 18:19:46 Pc4g0Pb20
::無変換+E
~vk1Dsc07B & e::Edit
こんなんやってるんだけどIMEオン時にひらがな、カタカナ、半角カタカナと切り替わるんだけど
この切り替わるのを無効に出来ないですか?
429:名無しさん@お腹いっぱい。
08/04/11 22:53:50 JQHzlaNh0
>>428
IME側の設定を変えるのが良いかと思う
430:名無しさん@お腹いっぱい。
08/04/11 23:30:02 1LAD2LgE0
~消して、IMEがOnかOffかを調べてOnだったら無変換送らないようにするとか
431:名無しさん@お腹いっぱい。
08/04/11 23:57:14 8JtpLxde0
>>429
あーそこ忘れた。
ありがとう
430もありがとう
432:名無しさん@お腹いっぱい。
08/04/16 13:59:42 QOZL0eII0
メインスクリプトAとサブスクリプトBがあって、それぞれ共通の変数cを使いたいんだが
いわゆる戻り値という形で変数を使いたい場合はどのようにすればいいかな?
今はその方法がわからないので、iniに読み書きすることでどうにか対応してるけど
もっとスマートな方法があったら教えてくれないか
一応スクリプト晒す
A
;回数入力-確認
;c ループ回数
runwait B.ahk
iniread,lc,ahk.ini,変数,c
msgbox,ループ回数 %c%
433:名無しさん@お腹いっぱい。
08/04/16 14:02:29 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:名無しさん@お腹いっぱい。
08/04/16 17:55:30 KChtUcd/0
Bを関数化して汎用ライブラリにすりゃいいんじゃないの?
AなりCなり好きなメインスクリプトから Includeして使えばいい
435:名無しさん@お腹いっぱい。
08/04/16 23:07:32 dzf8gFoh0
>>434
(・∀・)デキター
どうもありがとう
436:名無しさん@お腹いっぱい。
08/04/16 23:34:07 fqJFcYl60
このスクリプト(URLリンク(tryhost.net))
動いている人いますか?
こちらでは
Error at line 94.
Line Text: List %FAV_DIR%
Error: This line does not contain a recognized action.
The program will exit.
というエラーになってしまうんですが。
437:名無しさん@お腹いっぱい。
08/04/16 23:44:44 nEMDvuYT0
そんな行はないぞ。手を入れてないか?
438:名無しさん@お腹いっぱい。
08/04/16 23:46:22 xXoSaRM/0
変数内の文字列で条件分岐したいのですが、
Tabってどうやって検索すればよいのでしょうか。
\tでも`tでもないんですね。
439:名無しさん@お腹いっぱい。
08/04/16 23:54:27 fqJFcYl60
>>437
FavoriteFinder.ahk の94行目を global List, FAV_DIR に変更したら一応動いたんですが
リストが取得できていないようです。
手を加えたのは12行目のMigemoOpenのところだけです。
440:名無しさん@お腹いっぱい。
08/04/17 01:01:28 tiSAGbZG0
>>438
%A_Tab%
441:名無しさん@お腹いっぱい。
08/04/17 07:48:16 pTaNcO/h0
;; EBWinで辞書検索
#s::
clipboard=
Send,^c
ClipWait
SetEnv,word,%clipboard%
run,C:\applications\EBWin\EBWin.exe /C=1 /S=%word%
return
442:名無しさん@お腹いっぱい。
08/04/17 08:27:20 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:名無しさん@お腹いっぱい。
08/04/17 08:48:06 BPEkA5hT0
訂正:
ret = %ret%%FAV_DIR%%item%.url`n
の方は修正しなくても大丈夫みたい
444:名無しさん@お腹いっぱい。
08/04/17 15:59:55 pTaNcO/h0
>>442-443
ありがとうございます。
まだ使い始めたばかりなんですが色々できて面白そうですね。
445:名無しさん@お腹いっぱい。
08/04/18 01:51:41 4Mol9YLc0
Send系で、^や+等の特殊キーやアルファベットの大文字等のShiftを押しながら入力する文字が化けることってない?
^vで貼り付けをしたはずが単にvだけだったり、括弧()を入力したはずが89になったりとか…
Delayの値を増やしても時々発生するしバグなのかな
446:名無しさん@お腹いっぱい。
08/04/18 09:22:21 Tx6njfDx0
>>440
助かりました。ありがとうございます。
447:名無しさん@お腹いっぱい。
08/04/18 18:10:02 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:名無しさん@お腹いっぱい。
08/04/19 01:18:50 BmW3iOlc0
~WheelUp::以下の
GetKeyState, Wheelstate, WheelDown
を消し忘れてた・・・それ以前の問題だろうけど・・
449:名無しさん@お腹いっぱい。
08/04/19 02:31:09 iBWV1p7A0
1) スクロール速度用の変数をグローバル変数でもつ
2) ホットキー設定では、スクロール速度の変数だけを操作して、何も送信しない("~"はつける)
3) タイマで一定のサブルーチンがコールされるようにする
4) 3)で呼ばれるルーチン内で指定の速度分のスクロールをPostMessageで利用して送る
ex) PostMessage,522,%wParam%,%lParam%,%cls%,ahk_id %hwnd%
って感じかなぁ。
トラックポイント派なので検証できず。
450:名無しさん@お腹いっぱい。
08/04/19 15:49:36 7DcoF6RP0
zを押したら
jとvをタイプしてくれるようにするには
どう書けばいいのか教えてください
451:名無しさん@お腹いっぱい。
08/04/19 16:07:29 7DcoF6RP0
::send,jv
452:名無しさん@お腹いっぱい。
08/04/19 19:35:50 kQy+E4pv0
なまず日記が復活して、楽しみにさかのぼって読んでたら・・・
もう面白いスクリプトは書いてくれなさそうで残念だ。
453:名無しさん@お腹いっぱい。
08/04/20 06:21:20 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:名無しさん@お腹いっぱい。
08/04/20 06:21:52 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:名無しさん@お腹いっぱい。
08/04/20 06:22:17 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:名無しさん@お腹いっぱい。
08/04/20 06:23:08 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
08/04/23 22:41:57 FJVhdogM0
$^f::
BlockInput On
Send {Right}
BlockInput Off
return
としたら >>409 の問題現象が出なくなった。こんなもんで良いのだろうか…
AHK Version 1.0.47.06
>>445
同じ問題のように思えるので、BlockInput を追加して試してみてくれるとうれしいな。
458:名無しさん@お腹いっぱい。
08/04/27 01:39:30 TGEhJA8Z0
エクセルの永遠のテーマである
「入力」モードから、「編集」モードに行く時、
F2押さないと、移行しないっていう面倒な仕様。。
ぐぐるとみんなあの仕様にイライラしてて
でも解決策ないみたいで。
autohotkeyなら、
入力開始したら、左下ステータスの文字を判定して、すぐ編集モードに移るのができそうな気がして。
もし「超々々々々」気が向いたら、誰かあの仕様を回避するスクリプト書いてくれませんか
459:名無しさん@お腹いっぱい。
08/04/27 14:50:06 6JZuf2bE0
F1ヘルプさえヌッコロしとけばF2編集は別に苦痛じゃない。
Windows標準ショートカットなので慣れれば忘れることもそうないし。
460:名無しさん@お腹いっぱい。
08/04/27 16:31:27 LWYvIa7f0
F2の何が面倒なんだ?
選択項目編集としては標準キーバインドじゃん
せいぜいF2から他のキーに変えたいなら分かるが
モード移行は自覚的に行いたいし自動的に
編集モードとかのほうが糞仕様だと思うが
461:名無しさん@お腹いっぱい。
08/04/27 16:51:19 4OSW5I0L0
Vimのノーマルモードくらい非編集時に英数字キーに機能が割り当てられているわけではないし、
こういった直接入力の要望が出てくるのはそんなに不自然なことではないと思うけど…
作ってやれよと言うつもりは毛頭ないけど、なんでも頭ごなしに否定するのはどうなのさ。
462:名無しさん@お腹いっぱい。
08/04/27 18:02:31 GNgnzel70
Ctrl+何かにF2を割り当てるような定義じゃ駄目なのか、それほどせっかちさんなのか
463:名無しさん@お腹いっぱい。
08/04/27 18:07:54 fR4TStBp0
セルを上書きしたい場合は、一度内容を消すのかな?
464:名無しさん@お腹いっぱい。
08/04/27 18:13:59 4hZaxx9B0
AHKで、エクセル中は無変換キーあたりをF2に割り当てたらどうよ?
465:名無しさん@お腹いっぱい。
08/04/28 05:57:30 reBjcHgv0
>>458 うちの会社はこうだが、何をぐぐったんだ?みんなってお前一人だろ。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
SendKeys "{F2}"
End Sub
466:名無しさん@お腹いっぱい。
08/04/28 12:08:52 SAJE0Db70
Vistaに導入する際に、UACは特に気にせずインスコしても動きますか?
導入時の注意事項があれば教えてください。
又、mousegesture.ahkをVistaで使ってる人、問題点などないでしょうか?
467:名無しさん@お腹いっぱい。
08/04/28 12:24:34 UjhgWZ4K0
CUIのツールが標準出力に吐き出した値を拾って
ahkのGUIでその数値を加工して表示し隊のですが
どうすれば標準出力から拾ってこれますか?
468:名無しさん@お腹いっぱい。
08/04/28 14:28:05 KqItUE2c0
スレチだけど、Windows Script HostとかPowerShellを使うほうがいいような
469:名無しさん@お腹いっぱい。
08/04/28 15:46:22 Bwb7i5Fk0
>>467
そのCUIのツールは、リダイレクトで結果をファイルにはき出させて、
AHKからそのファイルの中を見る
とか・・・
470:名無しさん@お腹いっぱい。
08/04/28 16:51:32 ARGm8jsa0
>>466
基本、あまり問題は起きない。
マウスジェスチャもつかえる。
でもこれまで遭遇した問題は、
ホットキーをランチャーがわりにして、
メッセンジャーを立ち上げようとしたときにものすごいディレイがあるとかだったかな・・・・
とりあえずオフにしてる。
471:466
08/04/28 17:56:50 mttKTXzzO
>>470
ありがと。勢いインスコしてみたがmousegesture.ahkは問題ないみたい。
会社のXPマシンと、ウチの旧XPマシンで2ヵ月ほど前にmousegesture.ahkを導入したらマウスジェスチャ無しで操作するのが厳しくなっちゃって…。
1年程前に買ったVistaマシンはフリーソフトで汚さないwって決めてたんだけど、マウスジェスチャできないから旧マシンを使う頻度の方が高くなっちゃってたんですよ。
これで快適にVistaが使えます。
472:名無しさん@お腹いっぱい。
08/04/28 19:26:29 UjhgWZ4K0
>>468,469
ありがとうございます
こういう用途にはahkは向いてないみたいですね
おとなしく標準出力以外の出力方法があるソフトを探すか
他のスクリプト言語に切替えます λ..........トボトボ
473:名無しさん@お腹いっぱい。
08/04/28 21:32:35 w8H8giGfO
規制中なので携帯から簡単に。
cmdret.dllを使うと楽。
474:467
08/04/29 00:23:17 TKo6PHKn0
>>473
おお、こういうのがあるんですね
Forumのサンプルコード見ながら頑張ってみます
ありがとうございました
475:名無しさん@お腹いっぱい。
08/04/30 23:31:11 ZElAylVP0
AHKでコンパイルした実行ファイルを2つ起動していると、
片方で#IfWinActiveが効いた瞬間にもう片方が動作
しなくなってしまうのですが、なぜでしょうか。
Reloadすると動作するようになるのですが、いちいち面倒です。
476:名無しさん@お腹いっぱい。
08/05/01 19:30:50 Fgucx+QS0
Menu, Showで表示させたメニューなんですが、
キーボードでEscapeキーを押すと消えてくれますが、
Send,{Escape}で消えてくれません。解決策はあるでしょうか?
477:名無しさん@お腹いっぱい。
08/05/01 20:13:18 agwV3sli0
>>476
別のAHKスクリプトからじゃないと消せないんじゃないだろか。
478:名無しさん@お腹いっぱい。
08/05/01 20:59:51 /6hzVxqK0
{ESC}
でいいんじゃまいか
479:名無しさん@お腹いっぱい。
08/05/02 00:25:36 Q776ljbS0
>>465
そのVBAは矢印キーでセル移動するだけで必ず編集modeになるな
酷すぎるw
480:名無しさん@お腹いっぱい。
08/05/02 05:19:12 34mNTVls0
AHKスレらしくエクセルのdll呼び出してずばっと解決してくれる神はおらんのか?
481:名無しさん@お腹いっぱい。
08/05/03 09:23:38 4YTov+QA0
>>458
URLリンク(www11.axfc.net) DLKey=ahk
あまり試してない。
古いExcel使って試したから新しいExcelだとだめかも。(Excel 2000使用)
編集状態のままセル移動のオマケ付き。
Excelって、テキストデータの切り貼りとか整形ぐらいで たまにしか使ってなかったから
編集状態維持したままセル移動出来ないの知らんかった。
設定はエディタで編集して。
482:481
08/05/03 10:39:01 4YTov+QA0
バグってた
URLリンク(www11.axfc.net) DLKey=ahk
483:名無しさん@お腹いっぱい。
08/05/03 15:49:27 cnmVYKra0
ウィンドウを垂直方向・水平方向それぞれに
最大化・リストアのトグルをするには
どうすればいいでしょうか?
窓使いの憂鬱でいうところのWindowVMaximize,
WindowHMaximizeを実現したいのですが・・・
484:名無しさん@お腹いっぱい。
08/05/03 20:16:23 8H08QxQU0
WinGetPosで直近のサイズを取得してクラスやタイトルと一緒に保存、
WinMoveで縦なり横なりを最大化したサイズに変更
戻す時は直近のサイズをまた取得してどちらかがマックスだったら
保存してあるサイズに戻す、とか
485:名無しさん@お腹いっぱい。
08/05/03 21:30:24 g1xl/KBL0
>>458 出てこい。つか、>>482でも動かない希ガス。
486:481
08/05/03 21:45:23 4YTov+QA0
思い付きで機能追加しまくったんで使いもんにならなくなってた。
URLリンク(www11.axfc.net) DLKey=ahk
・日本語入力確定の為に[Enter]押しても次のセルに移ってしまう。
・「編集開始1発目のキーが [BS]か[Del]でセルクリア」が不完全。
・[F2]自動モードOff時は「[BS]か[Del]でセルクリア」もOffにした。
・[F2]自動モードをOffにした時、[F2]のホットキーまでOffにしていたので、[F2]で
編集モードに入った時、「自動でカーソル位置の変更」が機能しなかった。
Excel2000しか試せないからExcelのバージョンによって挙動が違う場合は正直お手上げ。
>>485
全く機能が働かないならバージョン違いによる可能性大。
487:481
08/05/03 22:15:29 4YTov+QA0
Excelのバージョン違いによるタイトル違いの可能性を忘れてた。
125:SwitchMode:
126: Hotkey,IfWinActive,Microsoft Excel - <-ここが違うと全部だめ
127: SetHotKeys(Excel_Label,Excel_HotKeys)
あと、設定にあるクラス名が一致してれば ある程度は動くはず。
488:名無しさん@お腹いっぱい。
08/05/04 00:13:11 dJtYYrWj0
斜め黄泉のおっさんですがDLLを1つ作成して
WH_KEYBOARDをグローバルフックをしたらいいとおもうよ
URLリンク(www.kumei.ne.jp)
URLリンク(www.autohotkey.com)
489:名無しさん@お腹いっぱい。
08/05/04 00:18:30 Jy+nA7+u0
>>486
458じゃないですが、いただきました。
Excel2000と2003で今のところ問題なし。というほど色々弄くってはいないけど・・・
便利ですねー。今まで無変換キーにF2を割り当てていたのだが、これ使おうかなぁ。
ただ、AHKのスクリプト3つ(内1つはMousegesture.ahk)走らす事になるからちと悩みどころ。
とりあえず様子見てみます~。
490:481
08/05/04 00:47:24 35cVLblb0
>>488
それ作りはじめに思った。
全文字キー1個1個打ちながら、こんなのタイマー回してExcel見つけたらスレッドフック
かけちった方がはえーなって。処理する必要ないときはスルーすれば済むし。
>>489
2003はOKと。報告㌧。
#Includeで他のスクリプトのケツに読み込んで、このスクリプトの1番上に適当なラベル名を
付けて、他のスクリプトの起動時にGosubで呼び出せば多分問題なく使えるとおも。
491:名無しさん@お腹いっぱい。
08/05/04 18:44:02 jcnqkmNH0
Shift+テンキーの「.」でカンマ「,」を出そうとしていますが
+NumpadDot::,
と記述してもDelete(デフォルトの動作)になってしまいます。
どうすればよろしいでしょうか、お知恵を拝借したいです。
492:名無しさん@お腹いっぱい。
08/05/04 18:44:52 cGN/EYVF0
NumLockオフったら
493:名無しさん@お腹いっぱい。
08/05/04 22:34:17 ydz3yyO/0
Spaceと数字のコンビネーションでプログラムを実行しようと
下のように書いたのですが、単にSpaceを入力するとき
キーリピートが利きません。
キーリピートが利くようにはできないでしょうか?
Space & 1:: Run, "c:\path\to\exe"
~Space:: Send, {Space}
~*Space:: return
494:名無しさん@お腹いっぱい。
08/05/04 23:44:10 KBkpDPw80
~Space & 1:: Run, "c:\path\to\exe"
だけでいいだろ
495:名無しさん@お腹いっぱい。
08/05/05 00:34:26 tOYYOoT+0
>>494
ありがとうございます。できました。
が、当たり前かもしれませんがSpaceを押して1を押す前の間に
Spaceが入力されてしまうんですね。
Spaceを押して直後に1が入力されればSpaceはモディファイアのように働き、
何も入力されなかったときだけSpaceを入力するようにはできますでしょうか?
496:名無しさん@お腹いっぱい。
08/05/05 01:10:00 Tkv85+Ez0
なんでSpaceなんて一番使用頻度の高いKeyを修飾keyとして使うという発想が沸くのかが疑問だ…。
497:名無しさん@お腹いっぱい。
08/05/05 02:14:41 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)
ウィンドウタイトルは本体のデフラグと全く同じタイトルなのでいきなり判定されてしまうし、
ウィンドウテキストでチェックかけても取得できず。 URLリンク(lukewarm.s101.xrea.com) を
見てみるとWinTitleとWinTextぐらいでしか指定できないみたいで、打つ手なしと言う感じです。
いくら試行錯誤しても解決できません・・・。ご教示よろしくお願い致します・・・。
498:名無しさん@お腹いっぱい。
08/05/05 02:38:52 tOYYOoT+0
>>494
一番使用頻度が高いので大きくて押しやすくなっているからです。
AHK自体いじり始めたばかりなのですが、
すばやく操作するのに便利かと思いやってみよう思いました。
やはり何らかのモディファイアとのコンビネーションに
するしかないでしょうか?
499:名無しさん@お腹いっぱい。
08/05/05 02:59:29 3X2C+hLq0
スペースと1では、間違えて意図しないときそれが作動してしまいそうだなあとすごく思いますよ
500:名無しさん@お腹いっぱい。
08/05/05 03:05:06 3X2C+hLq0
>>497
Diskeeper+uwscで似たようなことをやった例
URLリンク(blogs.yahoo.co.jp)
501:名無しさん@お腹いっぱい。
08/05/05 03:09:03 M3ocFwX1O
>>498
つスペースの隣の無変換キー
502:名無しさん@お腹いっぱい。
08/05/05 03:39:50 M3ocFwX1O
>>491
たぶん…
左側はShift & NumpadDotにせなアカン。右側は,ってエスケープ必要じゃなかつたっけ?
503:名無しさん@お腹いっぱい。
08/05/05 07:37:21 7ihOQ5bQ0
>>497
defrag.exeじゃダメなのかな
自分は JkDefrag 使ってる。これだと JkDefrag.exe -q C: D: だけで期待した動作になる。
Windowsのデフラグよりも速いし、最適化も優れてる。スクリーンセーバ中の動作も可。
URLリンク(www.kessels.com)
スレリンク(software板)
504:名無しさん@お腹いっぱい。
08/05/05 10:06:33 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:名無しさん@お腹いっぱい。
08/05/05 10:10:04 igWkcxAk0
>>504
何かのコントロール(ボタン)が押せるようになってるかどうかで判断したら?
そういう変化があるボタンがこのケースであるかどうかは分からんけど
506:名無しさん@お腹いっぱい。
08/05/05 10:11:29 9F1eIESU0
>>503
書いてみた。なんという簡単なコード・・・
@echo off
defrag c: -f -v
defrag d: -f -v
pause
たったこれだけです。こういう用途だとAHK使うよりBatの方がいいですね・・・。
507:名無しさん@お腹いっぱい。
08/05/05 17:10:54 rXDxE/Vg0
ファイルのプロパティ-概要の項目を変更したいんだけど
「エクスプローラ起動→ファイル選択が完了している」という前提でしか
ファイルのプロパティを開けなくて困ってます。
理想としては、ファイル名を渡すだけでエクスプローラなどを経由せずに
直接変更したいんだ・・・AHKでそういうことは実現可能?
もし何かしら方法があるのならご教示お願いします。
508:名無しさん@お腹いっぱい。
08/05/05 17:41:03 igWkcxAk0
すぐ上に出てるだろ、と思ったらここじゃなくてフェンリルのスレだった
509:名無しさん@お腹いっぱい。
08/05/06 23:33:50 o0k8LHCA0
>>481
ExcelAutoF2.ahkの不具合?報告。
オートシェイプに文字を入れようとすると、「参照が正しくありません」になります。
理屈はわかりませんが、とにかくExcelAutoF2.ahkを走らせた状態でオートシェイプに文字を入れようと
するとそうなり、ExcelAutoF2.ahkを落とせば問題ありません。
おそらく関係無いと思いますが、設定は以下の通りです。
Excel_AddMode = 1
Excel_EnterTab = 0
Excel_Space = 1
Excel_HomeOrEnd = 0
Excel_BSDel = 1
510:名無しさん@お腹いっぱい。
08/05/06 23:36:10 nXY1j0ks0
PERSONAL.XLSがおかしいとか?
511:名無しさん@お腹いっぱい。
08/05/07 00:01:06 o0k8LHCA0
>>510
うーん、良くわからないけどデフォのままだからなぁ。
会社のPC(Excel2000)と、家のPC(Excel2003)の両方で確認。
今気づいたけど、オートシェイプに文字入力しようとする時にF2を押して入力すると「参照が正しくありません。」
になるんだわ。
だから、ExcelAutoF2.ahkを走らせてるとそうなるってのは当たり前な訳だが、オートシェイプに入力する時はF2
しない様に組めますか~作者様・・・
512:名無しさん@お腹いっぱい。
08/05/07 21:02:36 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 がそのまま出力されてしまい、うまく動きませんでした。
参考にしたページ
URLリンク(lukewarm.s101.xrea.com)
513:名無しさん@お腹いっぱい。
08/05/07 22:03:32 9paZiFl90
NewStr := RegExReplace(A_LoopFileName, "(\s)(\d)([^\d])", "$10$2$3", ReplacementCount)
でどう?
[スペース][数字][数字以外]の組み合わせにマッチ
514:名無しさん@お腹いっぱい。
08/05/07 22:32:32 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:名無しさん@お腹いっぱい。
08/05/07 23:43:59 9paZiFl90
それはもうフォルダまるごとループかけるんでなく、変更したいファイルだけ選択してやった方がいいんじゃ?
選択してるファイルはCtrl+Cで取得できるんで、それに対してループさせるとか。
516:名無しさん@お腹いっぱい。
08/05/07 23:49:52 9paZiFl90
ちなみに、こういったファイルに対する作業をやるために、単機能のahkファイルを作っておいて
XButton1,2にその時々において割り振りを切り替えられるようにしてる。
いまだけXbutton2に 「選択ファイルの更新日時をすべてそろえる.ahk」を割り振ろう、とか
517:名無しさん@お腹いっぱい。
08/05/07 23:51:17 PU1RHSIV0
URLの数字を増やしたり減らしたりするAHKで昔苦労したっけ
アレもいろいろ条件が複雑でな
518:481
08/05/08 02:14:20 J+Y8vwYQ0
>>511
遅くなってごめん。
試しにやってみた。[F2]押すとスクリプトに関係なく上の横長のエディットボックスにフォーカスが
移って、その状態で文字入力すると「参照が正しくありません。」と出るんね。
で、左上のセル番号を表示しているコンボボックスの文字列を取得して分岐しようと思ったら、
実際に画面上に表示されている値と、コンボボックス内部の値が一致してなくて苦戦。という状態。
一度コンボボックスにフォーカス当てれば内部の値も更新されるんだけど。
519:名無しさん@お腹いっぱい。
08/05/08 09:27:37 x5ytqvPG0
>>517
それやりたかったやつなのですが、できませんでした。
よかったらソースいただけますか?
520:名無しさん@お腹いっぱい。
08/05/08 19:43:44 J+Y8vwYQ0
>>511
URLリンク(www11.axfc.net) DLKey=ahk
標準ツールバー(「上書き」とか「開く」ボタンがあるやつ)の状態を確認してるから、標準ツールバー
が表示されてないとオートシェイプ使用時の不具合は回避出来ない。他は今までどおり。
無駄省き等でちょこちょこいじったからバグあるかも。
521:名無しさん@お腹いっぱい。
08/05/08 22:38:38 +1iNoZSC0
てか、コードじゃなくて正規表現だけのような・・・
1個のパターンだけで表現しようとするから難しい(ってか面倒)かと。
「検索パターン」と「置換文字列」をセットにして、
複数のパターンを順次かければいいんじゃないかと。
INIファイルとかにパターンを外だしすると、メンテ性も良さげ。
多重フィルタみたいな感じ。
522:名無しさん@お腹いっぱい。
08/05/09 01:56:30 oLj4i3l00
既出だと思うけど、
AHKでコンパイルするとマカフィがウィルスですと
ご認識して、勝手に削除しちゃうんだけど、
AHKで作ったものを安全と認識させるにはどうすればいいのですか?
※マカフィを無効にはしたくないです。
523:名無しさん@お腹いっぱい。
08/05/09 02:37:57 XMewj1P/0
UPX圧縮あたりかねぇ
524:名無しさん@お腹いっぱい。
08/05/09 02:45:37 XMewj1P/0
よくあるっぽい
URLリンク(slashdot.jp)
525:名無しさん@お腹いっぱい。
08/05/09 05:03:40 QY922Rg80
まあ実際ウィルスだしな。
キーロガーなんかも簡単に作れちゃうし。
526:名無しさん@お腹いっぱい。
08/05/09 16:08:49 jBwpf+lE0
>>525
その論理はおかしい
527:名無しさん@お腹いっぱい。
08/05/09 16:55:30 idNAx07N0
ccとかも駄目だな。
528:名無しさん@お腹いっぱい。
08/05/09 17:34:25 GpewcdJF0
マカフィーに報告して、埋め込まれたAHKエンジン部分だけで判定しないようにしてもらうとか、
どっか一箇所のフォルダに入れておいて、そこだけスキャンの除外設定すればいいんじゃないかと
529:名無しさん@お腹いっぱい。
08/05/10 16:01:08 cI06fFxv0
UPX圧縮じゃなくて、
AHKのエンジンがウィルスチェックに引っかかっている模様。
マカフィーだけでなく、そこいらのウィルスチェックソフトも同様のご認知をしているみたい。
みんなはどうしてるの?
530:名無しさん@お腹いっぱい。
08/05/10 16:08:02 oHi2W79S0
圧縮すりゃ回避できるかもね
って>>523は言ってると思うんだが
531:名無しさん@お腹いっぱい。
08/05/10 16:28:31 wYoClkp80
>>519
どうせスケベなページ連続で開きたいんだろ?
皆考えることは同じだな
俺はこんなんしか思いつかなかったが、もっと画期的なやつあるなら知りたい
cnt = 0
Loop
{
cnt := cnt + 1
run URLリンク(www.hogehoge.com)
sleep 1000
if cnt = 100
break
}
532:名無しさん@お腹いっぱい。
08/05/10 16:51:27 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:名無しさん@お腹いっぱい。
08/05/10 17:26:46 WSeKGJ880
「おしっぱなし」のときの動作を別に作ればいいんじゃね?
534:名無しさん@お腹いっぱい。
08/05/10 18:08:35 bkFh+con0
キーボードの設定でキーリピートを速くする
もしくは
GetKeyStateでキーを監視しつつLoopで回す
SetWinDelayも忘れずに
535:名無しさん@お腹いっぱい。
08/05/10 22:14:46 pMlcH0Uj0
>>533>>534
キーボードのリピート設定はMaxです。
WinDelayがデフォルトで100になってるんですね。
これを2くらいにすることで満足できるレベルになりました。
せっかくなので「おしっぱなし」のときを考慮して書いてみようと思い、
WinMoveをLoopで囲み、下のようにBreakさせようとしたのですが、
無限ループにキーを放してもループからぬけません。
なぜなんでしょうか?
GetKeyState, s, Left
If s = "U"
{
Break
}
536:名無しさん@お腹いっぱい。
08/05/10 22:18:14 TEwDHYzo0
>>531
HTTPでヘッダ取得して200だったらrunするようにすれば?
537:名無しさん@お腹いっぱい。
08/05/10 22:20:01 wYoClkp80
>>536
言ってる意味がわからない・・・
538:名無しさん@お腹いっぱい。
08/05/10 22:26:14 mttGHkLM0
Loopで日本語ファイル名を取得すると、ファイル名が化けますね。
;AutoHotkeyで取り扱えないダメ文字ファイルの場合は、処理を飛ばす
IfNotExist %A_LoopFileName%
continue
こんな感じで、あるはずのファイルを読んで見つからなかったら処理を飛ばす
という逃げを作りましたが、できればフルに動かしたいです。
日本語を扱えるパッチか、なにか対策はないでしょうか。
539:名無しさん@お腹いっぱい。
08/05/10 22:30:40 TEwDHYzo0
>>537
サーバーにページが存在するかどうか問い合わせて存在したらrunするということ。
URLリンク(www.studyinghttp.net)を読めば出来ると思う。
540:名無しさん@お腹いっぱい。
08/05/10 22:43:26 wYoClkp80
>>539
そういうことしたいわけじゃないよ。
エロページはだいたいパスの最後が連番になってるページが多いので
1~100までページがあるのがわかってる時、片っ端から開いてくのに使ったりする。
Irvineでダウンするにしてもページ内のjpg数がページによってまちまちだしなw
>>517や>>519もそういう事がしたいんだろう?
541:名無しさん@お腹いっぱい。
08/05/10 23:29:14 cI06fFxv0
エロを必死に確認したいID:wYoClkp80であった・・・www
542:名無しさん@お腹いっぱい。
08/05/10 23:30:58 iuOrHl4L0
なんで一般的なスクリプトで済むことを
AHKでがんばりたがるのかがわからない。
543:名無しさん@お腹いっぱい。
08/05/11 00:00:09 k8/9xXte0
>>538
>2の なまず日記 を漁ってみ
544:名無しさん@お腹いっぱい。
08/05/11 00:23:08 x2ZUK6I60
>>535
if var = value
なので、その場合は
if s = U
が正しい
あと好みによるけど GetKeyState() って関数も
545:名無しさん@お腹いっぱい。
08/05/11 02:30:35 2QK3XTeB0
>>540
そうそう、連番のエロページを自動でめくってムヒヒwって
ちがわい!
>>536
みたいなことってできるんだ。thx!
546:名無しさん@お腹いっぱい。
08/05/11 02:32:46 v6FefRTW0
>>538
なまずさんのとこの関数は処理が激烈に遅いので、速度を求めるもの(ファイル検索とか)だと目的にあわせて多少技がいると思う。
>>540
1,Alt+DなりでURL拾う
2,そのURLを右から読んで最初に出てきた数字を+1
じゃだめかい?
547:名無しさん@お腹いっぱい。
08/05/11 02:50:33 rCs0tb0O0
文字が化けて困ることをするのなら他のスクリプト言語を選ぶのもひとつの選択ではないか。煽りじゃなく。
548:名無しさん@お腹いっぱい。
08/05/11 09:21:15 3yDLllki0
URLリンク(lukewarm.s101.xrea.com)
マウスジェスチャスクリプトで、中央ボタン(MB)のダブルクリックを検知するには
どう書けばいいのでしょうか。
MB _ _ MB _ か、MB _ MB _ か試したけれど動かない…。
549:名無しさん@お腹いっぱい。
08/05/11 09:22:35 QLi8tEuC0
漏れはファイルパスだけダメ文字修正されたヴァージョン使ってるよ
どこで拾ったかは忘れたが
550:名無しさん@お腹いっぱい。
08/05/11 09:24:00 QLi8tEuC0
駄目文字微対策版
URLリンク(yak.myhome.cx)
これだ
551:名無しさん@お腹いっぱい。
08/05/11 13:22:44 2QK3XTeB0
>>539
>サーバーにページが存在するかどうか問い合わせて
これってAHKでできるんですか?
URLDownloadToFileは違う気がするし。
552:名無しさん@お腹いっぱい。
08/05/11 15:12:15 APYiR8av0
>>544
ありがとうございます。
「"」をはずしてGetKeyStateにPをつけることでうまくいきました。
最初はGetKeyState()を使っていたのですが、
どういうわけかキーを放してもループを抜けないのことがあるので
引数3つ版を使いました。
553:名無しさん@お腹いっぱい。
08/05/11 16:48:25 UwM9OJqU0
>>549-550
みごとに動きました!ありがとうございます!結婚してください!
1つ問題を言うなら、AutoHotkeyのトレイアイコンを変更するコマンドで
>Menu,Tray,Icon, .\AutoHotkey.exe,1
という指定をしてるのですが、この行で「アイコンがない」という意味の
エラーが出るようになりました。
しかし、外部のアイコンを指定して回避できました。
554:名無しさん@お腹いっぱい。
08/05/11 17:53:33 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:名無しさん@お腹いっぱい。
08/05/12 19:22:23 1+Yqvhql0
AutoHotkeyの「Iniwrite」コマンドで書いたiniファイルは、
keyがない項目は最下部に追加される仕様で、
長く使っているうちに、順番が汚くなってしまいます。
これを、セクションまたはキーの名前でソートさせる方法はないでしょうか。
[セクション1]
abc=0
ghi=0
def=0
↓
[セクション1]
abc=0
def=0
ghi=0
みたいな感じにできるとすっきりするのですが
556:名無しさん@お腹いっぱい。
08/05/12 19:43:04 D8UjqaFx0
>>555
Sort使えばいいんじゃね?一回iniファイルを削除して、ソートしてからIniWrite
557:名無しさん@お腹いっぱい。
08/05/12 23:53:58 9MCe40FX0
vk1Csc079 & i:: Send, {Up} などとして、変換キー Down → 「I」キー Down
→ 変換キー Up → 「I」キー Up すると、「i」が勝手に連続で入力され始め
てしまいます。(何か入力すると止まる)
回避方法は無いでしょうか?
558:557
08/05/14 01:07:26 /+0yaezS0
上の質問取り下げます。
キーリピートの補助ツールの影響でした orz
559:名無しさん@お腹いっぱい。
08/05/14 04:58:57 ZOd/0zb80
dllcallのつかいかたについて質問です。
流行らせるページのCPU負荷率取得ライブラリがWindows2000で動かないようなので、
このDLLをつかって取得を試みています。
getcpust.dll(WindowsNT/2000/XP/Vista / プログラミング)
>CPUの使用率を取得 (利用例ソースコードつき)
URLリンク(www.vector.co.jp)
それで、下記のように入れてみましたが、
cpu:=DllCall("getcpust.dll\GetCpuStatus") ; get CPU usage
帰ってくる値は常に「1」になってしまい、取得できません。
なお、dllのファイル名を変えたり「GetCpuStatus」を変えると、
1じゃなくてヌルが帰ってくるので、dll自体は認識できているとみて
いいのでしょうか。
DllCallの使い方になれていないのですが、今回の場合は
どのように書けばよいのか、アドバイスをお願いできれば幸いです。
560:名無しさん@お腹いっぱい。
08/05/14 10:39:48 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:名無しさん@お腹いっぱい。
08/05/14 10:52:50 ZOd/0zb80
>>560
どうもありがとうございます!正常に動きました。
562:名無しさん@お腹いっぱい。
08/05/14 21:53:23 qEVMeKsk0
Sendでクリップボードの中身を書き出そうとした時に
2バイト文字が含まれてると正常に書き出せなくない?
563:名無しさん@お腹いっぱい。
08/05/14 23:10:25 P1pe7NoV0
つ Send,^v
564:名無しさん@お腹いっぱい。
08/05/16 10:48:47 PH/VxX9w0
ClassNNの指定方法について質問です。
AutoHotkey付属のAU3_Spy.exeをつかって、
ClassNNを取得するところまでは理解できました。
たとえば下記の例はブラウザのSleipnirですが、マウスカーソルが
FenrirEmbeddedToolBar1の上にあるときのみ、カッコ内のスクリプトを
実行する場合、どのように記載すればよいでしょうか。
>>>>>>>>>>( Window Title & Class )<<<<<<<<<<<
Sleipnir - [WinGet]
>>>>>>>>>( Now Under Mouse Cursor )<<<<<<<<
ClassNN: FenrirEmbeddedToolBar1
#IfWinActive ,***** ←たぶんここに何かを記載する
~実行したいコマンド~
#IfWinActive
565:名無しさん@お腹いっぱい。
08/05/16 14:47:34 c9i3EJxT0
#IfWinActive, Sleipnirのクラス
***::
MouseGetPos, , , , OutputVarControl ,
If Outputvarcontrol = FenrirEmbeddedToolBar1
{実行コマンド}
こうかな、わかりません><
566:名無しさん@お腹いっぱい。
08/05/17 12:51:31 cUZz5sdV0
特定のウィンドウではキー変更せず
それ以外ではキーを変更するにはどうすればよいでしょうか?
下のようにしてみましたが、NotepadでCtrl+Aすると
#MaxHotkeysPerInterval に達してしまいます。
「~」をつけると逆にNotepad以外でもCtrl+Aが入ってしまいます。
^a::
IfWinActive, ahk_class Notepad
Send, ^a
Else
Send, b
Return
567:564
08/05/17 13:02:38 l+1Pu63/0
>>565
ありがとうございます。おかげさまでヒントになり、解決しました。
MouseGetPos, , , , OutputVarControl ,
If Outputvarcontrol<>【指定したいClassNN】
return ;違うなら無効ということで、戻る
~以下やりたいこと
これで認識できました。
568:名無しさん@お腹いっぱい。
08/05/17 14:13:34 hJizOrmY0
>>566
#IfWinNotActiveじゃだめかい
569:名無しさん@お腹いっぱい。
08/05/17 15:41:23 cUZz5sdV0
>>568
ありがとうございます。それでできましたが、
除外したいウィンドウが複数ある場合はどうしたらいいのでしょうか?
単純に #IfWinNotActive を複数書くと
どちらも無効になってしまうようなのですが・・・
570:名無しさん@お腹いっぱい。
08/05/17 18:26:03 L03/NFhv0
>単純に #IfWinNotActive を複数書くと
これがよくわからんが
#IfWinNotActive window1
{
#IfWinNotActive window2
{
#IfWinNotActive window3
{
なんとか
}}}
論理条件だとこうなりそうだがこれだとダメなのか?
571:名無しさん@お腹いっぱい。
08/05/17 20:32:11 /leBUyky0
つウィンドウグループ
572:名無しさん@お腹いっぱい。
08/05/17 22:51:18 cUZz5sdV0
>>570
入れ子にせずに独立に2つ書いてたんですが、
入れ子にしてみるとあとに書いたものしか有効になってないようです。
>>571
こういうのがあるんですね。
ちょっとやってみます。
573:名無しさん@お腹いっぱい。
08/05/18 01:15:23 jn7VlSlu0
ショートカットキーで特定のアプリ(Firefoxとか)に対して
タスクトレイに最小化/最大化をトグルするということはできますか?
よろしくお願いします。
574:名無しさん@お腹いっぱい。
08/05/18 03:25:19 1OtJdJTx0
Access97のモジュールウィンドウでマウスホイールによるスクロールはできないでしょうか?
Visual Basic 6.0 IDE でマウス ホイール イベントが機能しない
URLリンク(support.microsoft.com)
を試してみたのですがAccess2000以降でないと動かないようなので、とりあえずキーを送るだけのものを書いてみたのですが
どうもいまいちな気がしますので。
#IfWinActive ahk_class OMain
*WheelDown::
Send,{DOWN 2}
return
*WheelUp::
Send,{UP 2}
return
#IfWinActive
575:名無しさん@お腹いっぱい。
08/05/18 03:29:23 1OtJdJTx0
ちなみにWheel Redirectorやかざぐるマウスでは動きませんでした。
576:名無しさん@お腹いっぱい。
08/05/18 04:36:47 87P/lABM0
>>574
別にその解決法でいいと思うけど、どうしても気になるなら
WM_SCROLLかWM_VSCROLLメッセージをコントロールに送れば良いんじゃね?
「どこでもホイール」がそんなことやってたような。
Access97は触ったことないので上手くいくか分からないけども。
577:名無しさん@お腹いっぱい。
08/05/18 09:29:46 1OtJdJTx0
>>576
ありがとうございます。
しかしどこでもホイールも試してみましたが動きませんでした。
Access2000以降でないとWM_MOUSEWHEELでホイールメッセージを検出できないようです。(よくわかっていませんが)
このあたり
URLリンク(www.asahi-net.or.jp)
を参考にすればできそうな気もしますが、AHKはまだ使い始めなのでどう書けばいいのかさっぱりな状態です。
578:名無しさん@お腹いっぱい。
08/05/18 11:25:55 HJA6d0Re0
>>573
タスクトレイにFirefoxがあるなら最大化、無ければ最小化でいいんじゃないか?
タスクトレイのものを操作するサンプルは流行らせるページにあったはず
579:名無しさん@お腹いっぱい。
08/05/18 12:00:49 ab0+UOCY0
>>577
多分 WM_VSCROLLでスクロールコマンド投げる時にスクロールバーのハンドルを
指定してやらんといかんのじゃないかな。
検証してやりたいけどAccess97はもう持ってないので、この辺り使って自分で試行錯誤してくれ
表示ペインとスクロールバーのクラス名や関係性は Winspectorとかで調べると分かりやすいと思う
URLリンク(lukewarm.s101.xrea.com)
580:名無しさん@お腹いっぱい。
08/05/18 12:28:21 q+GwzdQJ0
>>572
Regular Expressions を使うといいんじゃないかな?
SetTitleMatchMode RegEx
#IfWinNotActive ahk_class (window1|window2|window3)
581:名無しさん@お腹いっぱい。
08/05/18 13:50:53 7i8b10K90
1つのPCで、複数のAHKスクリプトを動かす際、
ホットキーの優先順位を決めることは可能でしょうか。
PCを起動している間、必ず常駐させるスクリプトが1つある状況で、
たまに使いたいスクリプトをあとから実行して2つ存在させると、
同じ定義下にあるホットキーを入れた際、発動するスクリプトが
不定期に入れ替わるようです。
2つ目のスクリプトが起動している間は、1つ目のホットキーを
無効にさせたいのですが、ネットワークでいう「メトリック」みたいな
動きは、どのように作るのがベストベストでしょうか。
582:名無しさん@お腹いっぱい。
08/05/18 14:08:37 1OtJdJTx0
>>579
ありがとうございます。
ちょっと今Accessの勉強をしないとまずいので暇を見てやってみることにします。
ハンドルやクラス名の取得はClsinfoというのを使っていたんですがWinspectorは細かく調べられていいですね。
かざぐるマウスとかで簡単にいけると思ったんですが甘かった..
583:574
08/05/19 19:51:51 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
08/05/19 21:58:09 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:名無しさん@お腹いっぱい。
08/05/20 00:01:32 z9u7+QjX0
>>583
>WheelScrool.ahkは93行辺りで変数を初期化しているよう
>なので38行辺りの設定が無効になっているような感じです。
そこは関数内でglobal変数を直に使えるよう再宣言してるだけで初期化はされない筈…
一応うちではちゃんと動いてるんだけど、値引き継がれない?
XP SP2 / AHK Version 1.0.47.06
586:585
08/05/20 02:08:31 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
URLリンク(lukewarm.s101.xrea.com)
HDD漁ったらロジクールのチルトでの横スクロールのテストとかした時に作った新しいのがあったんで
上げ直しときます。互換リストにOModule追加してみたんで良かったらコメント外して使って見て下さい。
(ちなみに >583 scmode = null は 0でなく "null"という文字列が代入されてる模様)
587:名無しさん@お腹いっぱい。
08/05/20 20:13:17 zd0pXxS10
AutoHotkeyで取り扱いたいファイルのハッシュ値を計算するための、簡単な方法はないでしょうか。
@IT:Windows TIPS -- Tips:ハッシュ値を利用してファイルの同一性をチェックする
URLリンク(www.atmarkit.co.jp)
上記で解説しているマイクロソフト製の「fciv.exe」をRunで渡してみました。
cmd=fciv.exe "%hashfile%" -xml hash.txt
runwait %cmd%,,Hide,pid
が、fciv.exe側が日本語のファイル名に対応していないようで、
ほとんどのファイルが、見つからない旨のエラーになってしまいます。
(コマンドラインで渡してもダメだったのでAHkのダメ文字ではないようです)
日本ではfasthash.dllというのが有名のようですが、
dllを使うには、どのように記述すればよいでしょうか。
FastHash.dll
URLリンク(hp.vector.co.jp)
588:名無しさん@お腹いっぱい。
08/05/20 21:11:57 +6tZiYR+0
>>587
日本語のファイル名に対応していないなら、一時的にAHKでリネームすればいいじゃない。
589:名無しさん@お腹いっぱい。
08/05/20 22:00:36 jzwbJ8Aa0
>>586
わざわざありがとうございます。
かざぐるマウスと併用できるようなのと加速が意外と便利なのでAccess以外にも適用させて使おうと思います。
というかマウスジェスチャーや音量の調節も出来るようだし、AHKがあればかざぐるマウスはいらなそうです。
AHKになさそうなのは設定ダイアログをだしていてもメインウィンドウを動かせる機能ぐらいじゃないかと思います。
590:名無しさん@お腹いっぱい。
08/05/21 18:01:23 +Xi75qRh0
PCのビープ音を鳴らす「Soundbeep」って、状況把握に便利なんですが、
鳴らしている間はスクリプトが完全に止まってしまいますよね。
ビープは鳴らすけど、スクリプト自体は止まらせない方法ってありますか?
591:名無しさん@お腹いっぱい。
08/05/21 18:02:57 P1fIW2PZ0
別のスクリプトに書いてRun
592:名無しさん@お腹いっぱい。
08/05/21 19:29:17 08CXmI6t0
>>590
SetTimer,Beep,10
Return
Beep:
soundbeep
Settimer,beep,off
return
593:名無しさん@お腹いっぱい。
08/05/21 21:46:37 +Xi75qRh0
>>591-592
ありがとうございます。うまくいきました。
594:名無しさん@お腹いっぱい。
08/05/22 02:08:12 Bhfqc5ef0
WinXPのエクスプローラーでアドレスバーを非表示にしているとき
ツリービューとフォルダビューの間をTabで行き来しようとすると
ツリービュー→フォルダビューはTab1回でいけますが
フォルダビュー→ツリービューはツリービューを閉じるための×印に
一旦フォーカスがあたるため2回Tabを押さないといけません。
これを1回で行うためにフォルダビューにフォーカスがあるときは
Tabが2回送られるように下のようにしたのですが、
なぜか×印がフォーカスされてしまいます。
どうすればよいでしょうか?
#IfWinActive, ahk_class ExploreWClass
~Tab::
ControlGetFocus, ClassNN
if ErrorLevel = 0
if ClassNN = SysListView321
Send, {Tab}
595:名無しさん@お腹いっぱい。
08/05/22 14:35:58 UGRCaXb90
tab送りじゃなくてControlにFocusを合わせるようにすれば?
596:名無しさん@お腹いっぱい。
08/05/22 23:25:56 Bhfqc5ef0
>>595
なるほど
↓でいけました。ありがとうございます。
#IfWinActive, ahk_class ExploreWClass
Tab::
ControlGetFocus, ClassNN
If ClassNN = SysListView321
ControlFocus, SysTreeView321
If ClassNN = SysTreeView321
ControlFocus, SysListView321
597:名無しさん@お腹いっぱい。
08/05/23 10:45:11 NPhBXbgz0
デバッグをするため、ウインドウのClassNNが特定の値になっているときに、
ToolTipメッセージをマウスカーソル付近に連続で表示させる動作をさせています。
しかし、マウスカーソルがToolTip自身に乗っかってしまうと、
ClassNNが「特定の値」ではなく、空白になってしまいます。
ClassNNが空白のエリアを除外させたところ、
ToolTip以外の、本当にClassNNが空白の場所との区別ができなくなりました。
ToolTipを表示させる際、ToolTipのClassNNを指定することは可能でしょうか。
598:名無しさん@お腹いっぱい。
08/05/23 23:56:26 /hthvnSA0
互換シェル使っててLWinをモディファイアに
いろんなソフト起動させてるんだけど
LWinをちょんと押すだけのときにシェルメニュー
表示とか割り当てたい
でもLWinをモディファイアにしてるバインドと
ぶつかっちゃうんだけどどうしたら解決できるか
わかる人いますか?
599:名無しさん@お腹いっぱい。
08/05/24 00:14:55 jR+OEghm0
LoopでGetKeyState取得して
キーが離されるまでのループ回数で分岐とか
KeyWaitで時間指定して
それを越えたときのKeyStateで分岐とか
600:名無しさん@お腹いっぱい。
08/05/24 01:51:22 kkBoRCJr0
GUI画面にテキストを表示させた際、操作者がGUIの内容を更新する操作をしたとき、
表示したテキストを別のテキストに置き換えて再描画したいです。
普通に同じ座標にAddで追加すると、前のテキストと重なって表示されてしまいます。
GUI画面を破棄するDestroyを入れるとできますが、画面の全部を作り直すため、
かなりチラついてしまいます。
症状確認用テストスクリプト
Test:
loop
{
Gui, Destroy
Gui, Add, Text,,■■■TESTです■■■→%A_Index%
Gui, Show,,GUIテスト
sleep,100
}
これだと、ものすごくチラついてしまいます。
また、Gui, Destroyをはずすと、最初に表示された内容から変わってくれません。
おそらく、何かやり方があるとは思うのですが、GUI画面の一部の項目を
書き換えて再描画するには、どのように書けばいいのでしょうか。
601:名無しさん@お腹いっぱい。
08/05/24 02:35:35 kLdoO1vi0
Gui, Add, Text, vMyText
でテキストを変数MyTextに指定
GuiControl,, MyText, 実際に表示する内容
で書き換える
流行らせるページリファレンスのGUI
OSDサンプルとか見れ
602:名無しさん@お腹いっぱい。
08/05/24 14:17:41 kkBoRCJr0
>>601
ありがとうございます。うまくいきました。
100倍くらい速くなりました。
603:名無しさん@お腹いっぱい。
08/05/25 07:38:54 7/PfvJsA0
初心者で申し訳ないんですが、
右Alt+jでテンキー1にしたいんですが、
>!j::Numpad1
だと効きません。
j::Numpad1だと問題なく動くんですが、修飾キーをつけたとたん動かなくなります。
Winキー以外のShiftやCtrlでも効きません。何が間違ってるんでしょうか?
604:名無しさん@お腹いっぱい。
08/05/25 08:14:16 k6NKzcvt0
98とかME使ってんじゃね
605:名無しさん@お腹いっぱい。
08/05/25 15:56:56 7/PfvJsA0
>>604
流石にそれはないですw俺の環境だけかな?
ノートでNumLockしたくないから、右Altや右Ctrl押してるときだけ有効っぽくしたいんだけど。
あふとかフォトショ使うときに楽になるかなと思ったんだけど。
なぜこんなに難しいんだろ。
606:名無しさん@お腹いっぱい。
08/05/25 16:43:04 pwVrvVFl0
>>603
なぜ動かないかはわからんが、
!j::
Send,{Numpad1}
return
で動く。たぶん「仕様」ってやつでは?
607:名無しさん@お腹いっぱい。
08/05/25 17:01:33 DsBFwt0y0
すいません。WheelScroll.ahkですが
Vieasというイメージビューアソフトのマウスホイールでの画像の拡大・縮小が無効になってしまうので
#IfWinNotActive ahk_class Vieas_vwin_class
WheelDown:: WheelRedirect()
WheelUp:: WheelRedirect()
;Shiftホイールで横スクロール
+WheelDown:: WheelRedirect(1)
+WheelUp:: WheelRedirect(1)
#IfWinActive
と書き換えてみたのですが、これだとVieasのウィンドウがアクティブになっているときに下のウィンドウが
マウスホイールでスクロールできません。
マウスホイールが通常動作するクラスを指定するというようなことはできないでしょうか?
608:名無しさん@お腹いっぱい。
08/05/25 17:03:41 7/PfvJsA0
>>606
おおっ
>!j::Send,{Numpad1}と
>^/::Send,{NumpadEnter}
で右Altや右Crtlでいけました。有難うございます。
仕様と思います。AHKさいこー。
609:603
08/05/25 18:20:04 7/PfvJsA0
モバイルノートに右Altが無かったし、右Ctrlじゃキーが押しにくいので結局、無変換+でやることにした。
言語の設定で無変換を無効化して無問題。
以下、簡単だし別に使う人もいないだろうけど報告まで。
~vk1Dsc07B & j::Send,{Numpad1}
vk1Dsc07B & k::Send,{Numpad2}
vk1Dsc07B & l::Send,{Numpad3}
vk1Dsc07B & u::Send,{Numpad4}
vk1Dsc07B & i::Send,{Numpad5}
vk1Dsc07B & o::Send,{Numpad6}
vk1Dsc07B & 7::Send,{Numpad7}
vk1Dsc07B & 8::Send,{Numpad8}
vk1Dsc07B & 9::Send,{Numpad9}
vk1Dsc07B & m::Send,{Numpad0}
vk1Dsc07B & .::Send,{NumpadDot}
vk1Dsc07B & @::Send,{NumpadEnter}
vk1Dsc07B & /::Send,{NumpadDiv}
vk1Dsc07B & sc028::Send,{NumpadMult}
vk1Dsc07B & `;::Send,{NumpadAdd}
vk1Dsc07B & -::Send,{NumpadSub}
右Altや無変換でいろいろホットキーを追加してみよっと。
610:名無しさん@お腹いっぱい。
08/05/25 21:29:11 PNVW0ixZ0
>>607
VieasのメインウィンドウだとControlが存在せずハンドルが取れてなかったみたい。
コントロールが取れない時はウィンドウハンドルを指定してWHEEL投げるように修正かけました。
URLリンク(lukewarm.s101.xrea.com)
611:名無しさん@お腹いっぱい。
08/05/25 23:50:21 DsBFwt0y0
>>610
ありがとうございます。動作確認しました。
やっぱりAHKいいですね。アプリケーションを問わずに操作できるのがいい。
自分もいろいろ書けるようになるといいんですけどね。
612:名無しさん@お腹いっぱい。
08/05/26 23:03:49 xhUv6vGn0
Guiの質問です。
例
Gui, Add, Picture,Section,***
で作成すると、ClassNNに「Static**」という名称が割り当てられますが、
作成したGuiのClassNNを、特定の文字列で指定することは可能でしょうか。
613:名無しさん@お腹いっぱい。
08/05/27 01:11:05 0qIAl9sc0
Excelで平成20年1月1日を ^#Dとホットキーを使った場合に
2008/01/01 とするにはどうしたらいいでしょうか?
#IfWinActive ahk_class XLMAIN
^#D:: このあとどのように記載したらいいか教えてください.
よろしくお願いいたします.
614:名無しさん@お腹いっぱい。
08/05/27 01:33:15 10H1JCGL0
2chで使われているような「1201502896」の形式の日付を、
YYYYMMDD形式に変換するには、どのような解決方法が
ありますでしょうか。
615:名無しさん@お腹いっぱい。
08/05/27 01:44:23 mvWayqr00
>>613
Ctrl+CをSendしてStringReplaceしてから
はっつければいいんでは?
>>614
19700101000000 にその数値を秒数で足せば良いんじゃないかな?
616:名無しさん@お腹いっぱい。
08/05/27 03:35:18 4BLlhUiO0
窓キーと3を押すのをトリガーにしようとして
# & 3::hogehoge
と書いたらキーボードの3が効かなくなりました。
そこで、
#3::hogehogeと書き直したら直りました。
これは既知の現象ですか?
617:名無しさん@お腹いっぱい。
08/05/27 03:40:10 4BLlhUiO0
>>616
間違えた。
窓キーと2をトリガーにしようとして
# & 2と書いたら3のキーが効かなくなった、というのが正しいです。
618:名無しさん@お腹いっぱい。
08/05/27 03:46:50 Ci2ft8P00
>>616
一つ目のキー自体のもともとの機能は無効化される。
一つ目のキーにチルダ(~)をつければ、そのキーは無効化されず、普通に入力される。
一つにつけておけば、一つ目のキーが同じほかのホットキーでは指定されていなくても、そのキーは無効化されなくなる。
#はShift+3の#と勘違いされただけ。使い方が間違っている。Win & 3て書かないと。
619:名無しさん@お腹いっぱい。
08/05/27 04:03:06 4BLlhUiO0
>>617
連投済まん。
Hotkeys (Mouse, Joystick and Keyboard Shortcuts)のヘルプにあったこれが答えかも。
lose its original/native function when it is pressed by itself
#がある3のキーが効かなくなることが説明できますね。
人騒がせで済みませんでした。夜中にパニックに陥っていたもので。。。(汗
620:名無しさん@お腹いっぱい。
08/05/27 04:04:31 4BLlhUiO0
>>618
おっ!書き込んでから発見しました。
こんな夜中にありがとうございます。
621:名無しさん@お腹いっぱい。
08/05/27 12:14:58 10H1JCGL0
>>615
ありがとうございます。変換できました。
622:名無しさん@お腹いっぱい。
08/05/27 13:47:20 3gCvGmfE0
>>613
^#D:: Send,^1!c{End}!tyyyy/mm/dd{Enter}
んでも IME ONだと失敗するし、素直にExcelマクロで
Selection.NumberFormatLocal = "yyyy/mm/dd"
したほうがスマートだと思うが。
623:名無しさん@お腹いっぱい。
08/05/27 13:53:59 3gCvGmfE0
↑はExcel2002の場合ね、他のバージョンだとアクセラレータキー違うかもしれんし上手く動くかわからん。
Winキー発動はできんけどやっぱマクロ作ってでショートカットキー割り当てたほうがいいと思う。
624:名無しさん@お腹いっぱい。
08/05/27 19:03:51 10H1JCGL0
・文字列 string を1行ずつループで回す
・取り出した1行にタブが含まれていたら、タブを別の文字「%okikaemoji%」に置き換える
・結果をstringに戻す
・ループをbreakで終了する
という動作を下記の4通りで試しましたが、どれもタブが置き換わってくれません。
1案
value=`t
StringReplace, string, A_LoopField,%value%,%okikaemoji%,all
2案
value=%A_Tab%
StringReplace, string, A_LoopField,%value%,%okikaemoji%,all
3案
StringReplace, string, A_LoopField,%A_Tab%,%okikaemoji%,all
4案
StringReplace, string, A_LoopField,`t,%okikaemoji%,all
どのように書いたら動いてくれるでしょうか。
625:名無しさん@お腹いっぱい。
08/05/27 20:49:16 mvWayqr00
AutoTrimをOffにする
626:613
08/05/28 05:54:16 vTCC4uvQ0
皆さん お返事遅くてごめんなさい
>>615
ありがとうございます
>>622
>>623
マクロは考えてなかったです.
AHKにこだわりすぎました
EXCELマクロでやらせていただきます.
ありがとうございます.
627:名無しさん@お腹いっぱい。
08/05/29 14:00:51 b2k6dMVD0
CTRLのダブルタップを
URLリンク(lukewarm.s101.xrea.com)
を参考にしてやってみたんですが、CTRLを少し押し続けた場合も
起動してしまいます。キーリピートのせいだと思うんですが。
>>389も同様でした。
回避策はありますか?
628:627
08/05/29 15:45:51 b2k6dMVD0
キーリピートの設定を遅くしたらましになったんですが、
他のキーは普通にリピートして欲しいです。
CTRLだけリピートを殺すといった事ができるといいんですが。
629:名無しさん@お腹いっぱい。
08/05/29 16:59:33 SXLiQ+Fi0
そもそもCtrlキーにリピートがあるのか?
630:名無しさん@お腹いっぱい。
08/05/29 17:39:08 lv3ZoJSv0
>>628
URLリンク(lukewarm.s101.xrea.com)
ここにサンプルある。2カ所KeyWait入ってるけど上は要らんようなキガス
~CTRL::
if(A_PriorHotkey <> A_ThisHotkey){
return
}
if(A_TimeSincePriorHotkey > 400){
KeyWait, Ctrl
return
}
tooltip, double tap!
return
631:627
08/05/29 17:55:57 b2k6dMVD0
>>630
ありがとうございます。
書いてくださった方法でばっちりダブルタップでき、長押しも回避できました。
632:名無しさん@お腹いっぱい。
08/05/30 20:08:14 yj8hQgNw0
DllCallでLCMapStringを使って文字列を操作したいのですが
引数の型がまったくわからず、どうやってもErrorLevelが-2になってしまいます
どう書けばよいのかお教え願えないでしょうか?
633:名無しさん@お腹いっぱい。
08/05/30 20:47:51 QxYMGk4z0
非アクティブのiTunesの停止、再生をしたくて↓のようにしてみたんですが
動きません。
#i::
DetectHiddenWindows,On
ControlSend,WinTitle,{Space},iTunes
return
下のようにクラス指定しても無理でした。
ControlSend,,{Space},ahk_class iTunes
試してみたら、そもそもアクティブにしてもだめだったんですが、打開策はありますか?
634:名無しさん@お腹いっぱい。
08/05/31 08:25:01 KE70yWJA0
ホットキー以外で初めて書いてみて動作はきちんとするけど、
もっとスマートに書けるんでしょうか?
メモリが2,000か6,000K(1:4の割合で変化)
CPUが0~4パー
で動いてるんだけど、低スペックってのもあるw(P3-1G)。
プログラミングしたことないんで不安です。
;EBWinが非アクティブになったら終了。
#Persistent
SetTimer , EBWC , 250
return
EBWC:
WinWait , ahk_class EB_POCKET
if ErrorLevel = 0
{
WinWaitNotActive , ahk_class EB_POCKET
if ErrorLevel = 0
{
Process, Close, EBWin.exe
}
}
else
return
635:634
08/05/31 09:24:36 KE70yWJA0
自己解決しました、これでAHKの常時起動しなくて済みます。
スレ汚しごめんなさい。
それとも、まだやりようがあるのかな?・・・わからん。
;EBWinミニウインドー起動が非アクティブになったら終了。
#NoTrayIcon
Run, EBWin.exe -m , C:\Program Files\EBWin
WinWaitActive , ahk_class EB_POCKET
WinWaitNotActive , ahk_class EB_POCKET
if ErrorLevel = 0
Process, Close, EBWin.exe
else
return
636:名無しさん@お腹いっぱい。
08/05/31 16:10:10 ErfB/+jr0
>>634
>メモリが2,000か6,000K(1:4の割合で変化)
の意味が全くわからない
そしてスクリプトで何をしようとしてるのか解説が一切ないので、
なにをやってるのかわからない
結論:いくらチラ裏とはいえ、他人にわかるように書きましょう