AutoHotkey スレッド ..
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の割合で変化)
の意味が全くわからない
そしてスクリプトで何をしようとしてるのか解説が一切ないので、
なにをやってるのかわからない
結論:いくらチラ裏とはいえ、他人にわかるように書きましょう
637:名無しさん@お腹いっぱい。
08/05/31 16:21:21 nD99XO9q0
>>636
正直それはおまえさんの読解力の問題な気が…
638:名無しさん@お腹いっぱい。
08/05/31 17:51:19 17jzD8JC0
繭からやっと移行できたと思ったら
これSynergy経由じゃ動かないのかorz
639:名無しさん@お腹いっぱい。
08/05/31 19:17:34 nD99XO9q0
>>638
動いたり動かなかったり。
>>4の無変換+ijklの矢印割り当てくらいなら動いたりするけど、
{Blind}の部分が効かなかったりとか。
640:名無しさん@お腹いっぱい。
08/06/01 00:07:10 ErfB/+jr0
プログラムを実行させるとフォーカスを強制的に
フォアグラウンドにしてしまうアプリがあります。
そのアプリをahkからタイマーで呼び出されたのち、呼び出す直前に
作業していた元のウインドウに戻すにはどうしたらいいでしょうか。
その動作を手動で再現させる場合、アプリ呼出し後にALT+TABを押すと
確実に戻れるので、それをAHKで再現できれば解決しそうなのですが。
Run,問題のプログラム.EXE
sleep,2000
send,{ALT DOWN}
sleep,1000
send,!{Tab down}
sleep,1000
send,!{Tab up}
send,{ALT UP}
安全牌で、sleepで余裕を入れてるのですが、タイミングが
合わないことが多く、半分くらいしか成功しません。
641:名無しさん@お腹いっぱい。
08/06/01 00:32:29 f367mMfv0
>>640
SleepのタイミングについてはPCスペックや同時に動いてるアプリとの兼合いもあるので
自力で調整値を探すしかない。
だが、ALT+TAB使うより Activeウィンドウ操作系のコマンド使ったほうが成功率は上がると思われ
WinGet, hwnd,ID,A
Run,問題のプログラム.EXE
WinWaitActive,問題のプログラムのタイトル
Sleep,任意の待ち時間
WinActivate,ahk_id %hwnd%
642:名無しさん@お腹いっぱい。
08/06/02 12:52:34 +6qJMD7A0
質問です。
マウスホイールを下に回した場合batu.bmpを探してそこをクリックしたいのですが、全くできません。
拾い物のスクリプトから考えたのですが・・ご教授お願いします。アプリ名はaaaaに置き換えてます。
Loop {
Sleep,10
IfWinActive,aaaa
{
GetKeyState,mbtn,WheelDown,P
if (mbtn="D") {
Loop {
ImageSearch , OutputVarX, OutputVarY, 0, 0, A_ScreenWidth, A_ScreenHeight, batu.bmp
Sleep,100
Send,{LButton}
GetKeyState,mbtn,WheelDown,P
if (mbtn="U") {
break
}
}
}
}
}
#z::Reload
#x::Pause
#e::ExitApp
#r::return
#u::return
#f::return
#m::return
#IfWinActive aaaa
vk1Dsc07B::Send,@
643:名無しさん@お腹いっぱい。
08/06/02 13:34:40 0QKb9v/r0
探した座標使ってないじゃん
MouseClick使え
644:名無しさん@お腹いっぱい。
08/06/02 13:55:40 Yyr2zU0/0
なにそのLoop
645:名無しさん@お腹いっぱい。
08/06/02 17:51:59 T5SyNYp+0
Loop,fileなどで読んだファイル名にUnicode文字が含まれると、
「A_LoopFileName」などの変数で、ファイル名のUnicode部分が
ハテナに置き換わってしまいます。
結果、ループの中に居るのに対象ファイルが
見つからない事態になってしまいます。
そこで、ループ中にA_LoopFileNameの実体を読んで、エラーなら、
FileMoveで A_LoopFileName → Unicode部分を削除したA_LoopFileName
とリネームを試みたのですが、Renameする時点で元ファイルが
見つからず、できませんでした。よい解決法はないでしょうか。
なお、対象となるファイルは自分で作成したものではないため、
事前にリネームするのは厳しいという状況です。
646:名無しさん@お腹いっぱい。
08/06/02 18:48:58 K9ohG56c0
「IMEが変換中」という状態を取得したいのだけど、できない。。
誰か俺が調べた限りの情報出すから助けて。
1.AHKのSendMessageを使用する
2.使用する(と思われる)API/WM_IME_COMPOSITION
URLリンク(kumei.ne.jp)
URLリンク(www.winapi-database.com)
おまけ.IMEの参考
URLリンク(lukewarm.s101.xrea.com)
つってもこれだけなんだけどね。
もうだめぽ・・・
647:名無しさん@お腹いっぱい。
08/06/02 18:50:10 K9ohG56c0
あ、直リンしちゃった。。ごめんちゃい。
648:名無しさん@お腹いっぱい。
08/06/02 20:33:23 0QKb9v/r0
>>645
TransformのUnicode, String
を使えばどうにかならんかね?
649:名無しさん@お腹いっぱい。
08/06/02 21:06:24 B0W6ZYcf0
>>646
俺もいろいろ調べたんだけど、
AHKからは他プロセスの入力コンテキストハンドラ hIMC を取得できない
(ImmGetContext が NULL しか返さない) ので、うまくいかないみたい。
URLリンク(www.zero.co.jp)
こんな情報があるけど、俺には使いこなせない orz
650:名無しさん@お腹いっぱい。
08/06/02 21:25:10 T5SyNYp+0
>>648
ありがとうございます。
さっそく試してみたところ、transformに渡す対象文字「string」の
内容自体がすでに「?」に変わってしまっているようです。
結果をファイルに書き出して確認したところ、壊れた結果でした。
651:名無しさん@お腹いっぱい。
08/06/02 22:59:30 uDIyl+SM0
>>645
過去ログ>538-550あたりを読むと幸せになれるかも。試してないからわからんけど
652:名無しさん@お腹いっぱい。
08/06/03 00:24:59 8JqjvJlr0
AttachThreadInputしてみたら?
653:646
08/06/03 02:00:34 mB5Ni4140
>>649 のくれたリンクからファイル落としたんだけど、その中に
>各々のアプリケーションのスレッドはスレッドにアタッチされた複数のIME ウィンドウを持つようになった
って書いてあったので、GetWindowThreadProcessIdとSpy++使って調べてみました。
試しにメモ帳では、「メモ帳」と「メモ帳の入力域」は同じプロセスID・スレッドIDなんだけど、
問題はアクティブウィンドウではなく、IMEのプロセスID・スレッドIDが必要ってことなのかな?
うーん、わかりそうでわからん。。もうなんか今日は1日中これやってるよ。。
こんなにはまるつもりなかったのにな・・・
654:名無しさん@お腹いっぱい。
08/06/03 02:36:34 5lSXhWR10
>>653
やっぱり解らないが、
グローバルフックを使うプログラムではDLLを作る必要があるそうな。
URLリンク(hp.vector.co.jp)
655:名無しさん@お腹いっぱい。
08/06/03 04:35:08 gzAwAjm60
タスクトレイに出たアイコンを左シングルクリックしたとき、
特定のルーチンへ飛ばすことは可能ですか?
右クリックの項目はMenuで表示・追加できますが、
そもそも左クリックの設定は、あるのでしょうか。
656:名無しさん@お腹いっぱい。
08/06/03 22:54:44 w/zWe+Un0
AutoHotKeyって標準出力を変数に格納して使う事は出来ないんでしょうか?
コマンドプロンプトに打ち込んだコマンドの標準出力を得るみたいな。
調べてみたところどうにも扱えないっぽいので、仕方なく一時的に作業ファイル・・・
つまり cmd > temp.dat みたいに吐いて、 FileReadLineで一行欲しい部分を読み込んで
対処したのですが、いちいち一時ファイル作るのも大げさかな?と。
その後FileDelete, temp.dat しないといけないし・・・。
657:名無しさん@お腹いっぱい。
08/06/03 23:48:20 Qr7ynoy00
>>656
>>473
658:名無しさん@お腹いっぱい。
08/06/03 23:55:26 DsQzXGtM0
うわ、その時お世話になった467ですが
cmdret.dllもよかったけど、流行らせるページの管理人さんが作ったMy Scriptsにある
「プロセスを起動して標準出力を読み書き」の方が外部dllが要らない分使い易いかも
659:名無しさん@お腹いっぱい。
08/06/05 00:47:46 IKCvfirm0
ボタンを多数置くときの、飛び先について質問です。
下記のコードで、ボタンを10個設置します。
Loop,10
{
button_no=B%A_Index%
Gui, Add, Button,G%button_no%,ボタン%A_INDEX%
}
ボタンが押されたときの飛び先ですが、
B1:
B2:
B3:
B4:
B5:
B6:
B7:
B8:
B9:
B10:
ボタンが押された際に行う処理
↑
10個までならなんとかなりますが、
あまり増えるとソースの可読性が悪くなってしまうので、
この「B1:〜B10:」を1つにまとめて書く方法は無いでしょうか。
参考にしたページ:流行らせるページのGオプション
URLリンク(lukewarm.s101.xrea.com)
660:名無しさん@お腹いっぱい。
08/06/05 08:45:15 de6Gu0Xr0
全部同じラベルに飛ばしといて
押されたボタンの名前で分岐すれば
661:名無しさん@お腹いっぱい。
08/06/05 12:26:20 Vao1bqW80
タブファイラのX-FinderやTTBaseのUpperDirPluginにウィンドウの余白でクリックとかで上階層に移動するのがあるけど
あれこれツール増やすのもあれなのでAutoHotKeyでやろうと思ったのだが
ウィンドウの余白の検出はどうすればいいんでしょう・・?
とりあえずウィンドウの色で切り替えてやってみた・・
; 1/2
;ホイールクリックでウィンドウの余白なら上階層へ移動・アイコンの上ではダブルクリック
#Persistent
SetTimer,BlankClick,100
return
BlankClick:
{
MouseGetPos,posx,posy,WindowClass,ClassNN,1
IfInString,ClassNN,SysListView32 ; ファイルを開く・・すれば大体SysListView321になるような
{
pgx:=(posx-10) ; カーソル直下だと文字の隙間とかでうまくないので
pgy:=(posy-10) ; カーソルから(-10,-10)〜(+10,+10)を斜めにてきとーに走査
BlankState:=0 ; 0のままなら余白
Loop,20
{
PixelGetColor,undercolor,%pgx%,%pgy%
if(undercolor=="0xFFFFFF") ; ウィンドウの色を変えてると変えないと・
{
pgx++
pgy++
}
else
{
BlankState:=1 ; 別の色にかかったとき適当になんか入れる
break
662:名無しさん@お腹いっぱい。
08/06/05 12:27:00 Vao1bqW80
; 2/2
}
}
If(BlankState==0) ; 余白のとき
{
SetMButtonMode:=11 ; Hotkeyの切り替え用 11はBackspace
Hotkey,MButton,On ; ホイールクリックのホットキーを有効に
}
else
{
SetMButtonMode:=1 ; Hotkeyの切り替え用 1はダブルクリック
Hotkey,MButton,On
}
}
else
{
Hotkey,MButton,Off ; ホイールクリックのホットキーを有効に
}
MButton::
{
If(SetMButtonMode==1)
Click,LEFT,,,,2,
else If(SetMButtonMode==11)
Send,{BACKSPACE}
else
return
}
663:名無しさん@お腹いっぱい。
08/06/05 16:58:25 de6Gu0Xr0
#IfWinActiveでやれば?
664:名無しさん@お腹いっぱい。
08/06/05 22:20:16 3BKEexRx0
その座標をクリックしてみれば、余白だったとき選択項目(フォーカスじゃなく)がゼロ個になるのでは
665:661
08/06/05 23:58:37 Vao1bqW80
MButtonの前の } が1個抜けてた・・
>>663
操作対象がClassNNの時に#IfWinActiveをどのように使うのでしょうか?
>>664
なんらかが選択された状態で余白をクリックしたとき、選択数がゼロ個になるのでは?ということでしょうか
ゼロ個になると思いますが・・そういうことではないとか?
666:名無しさん@お腹いっぱい。
08/06/06 00:52:21 lKgCTuVw0
>>665
エクスプローラーの余白ダブルクリックで上階層と理解して最小限でやってみた。
フォルダ選択で1 個のオブジェクトを選択、ファイル選択でファイル情報、余白選択でX個のオブジェクトとステータスバーに表示される。
現状他のホットキー押して左クリックでも発動するけど気になるなら適当に直して下さい。
~LButton::
StatusBarGetText, State,Part1,ahk_class CabinetWClass
If (A_TimeSincePriorHotkey<200 && State<>1 個のオブジェクトを選択)
{
IfInString,State,個のオブジェクト
Send,{BackSpace}
}
Return
667:名無しさん@お腹いっぱい。
08/06/06 01:54:43 UApCHu8G0
AutHotkeyでスクリプトを書き始めました。
デスクトップでダブルクリックした時に、ホットキー(Alt+Numpad1)を実行する
スクリプトを試行錯誤していて、
ahk_class Progman
での条件判定だとうまくいかなかったところ、>>666のスクリプトを元に、こんな
風にしてみた。
~LButton::
MouseGetPos, MouseX, MouseY
PixelGetColor, color, %MouseX%, %MouseY%
If(A_TimeSincePriorHotkey<300 && color=0x984E00){
Send,!{Numpad1}
}
return
ウチのXPのデスクトップは0x984E00でいいみたいなんだけど、
どんな環境でも、デスクトップ上のダブルクリックを判定できる
ロジックってどんなのがありますか?
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4374日前に更新/228 KB
担当:undef