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


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

AutoHotkey スレッド part4



1 名前:ぬるぽ mailto:sage [2007/07/16(月) 12:30:27 ID:cd0T6xfs0]
(テンプレ>>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/

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


652 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/07(水) 19:02:13 ID:tZM8oTgz0]
OnClipboardChange:
clipboard := RegExReplace(clipboard, "[A-z]", "_")
return
をコピーしたら
_________________:
_________ := ____________(_________, "__-__", "_")
______
になった。

653 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/07(水) 19:20:20 ID:xcF2JGlk0]
>>652
すいません。
ありがとうございます。
できました。

ちなみに、これを実行するととんでもないことに
clipboard := RegExReplace(clipboard, "\\", "\\\\")

C:\
 ↓
C:\\\\\\・・・・・・

654 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/08(木) 10:34:56 ID:VpjEbYEG0]
GUIの入力項目で、よく検索ソフトとかで入力履歴がドロップで出て選択できるって機能がありますが
そんな部品ってありますか?または作れますか?

655 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/08(木) 11:37:39 ID:LkNXR2gq0]
>>654
ComboBoxかDropDownList

656 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/08(木) 12:19:25 ID:QotMhKmE0]
>>653
かっこ()の中は変数、それ以外は文字列って覚えとけ。
かっこの中の変数は、%%で展開する必要はない。逆に文字列は""で囲う必要がある。
 If(A_LoopField=str)   ;str=hoge
 If A_LoopField=%str%
 If(A_LoopField="hoge")
 If A_LoopField=hoge
どれも同じ

ちなみにC:\\\\\\・・・・・・にはならないぞ。
1つの\を4つの\に置換する表現だから、C:\\\\になるはずだし、試したら実際そうなったが。

657 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/08(木) 15:23:42 ID:XkPSzQlp0]
きっとループに陥ってるだけなんだろうな
もう少しこなれてからまたおいでって感じだな

658 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/08(木) 15:53:46 ID:VpjEbYEG0]
Gui, Add, ComboBox ,vCom Simple Sort, aaa|bbb|ccc|aab|aba

これで「a」を打つと下のリストボックスが、aaa,aab,abaに勝手に絞り込ます部品や方法ってありますか?
インクリメンタルサーチのリストボックス絞込み再表示みたいなイメージです。

659 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/08(木) 17:26:35 ID:MaxO5Kjc0]
流行らせるページのコマンドラインランチャがそんな感じ

660 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/08(木) 19:41:54 ID:VpjEbYEG0]
変数にリストがないのは痛いな。

配列を使っているけど、追加、削除、検索をjavaのクラスみたいに簡単に使いたい。



661 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/09(金) 13:36:05 ID:sCn2a4fh0]
VistaHomeBasicですが、
左Shiftキー二回押しでdeleteが入力されるようにしたいです。
そこで、以下のところまでは書いたのですが、この続きはどうしたらいいですか?
それともこの方向性は間違ってますか。
アドバイスお願いします。

; keybind to the delete key

flag:=0
SetTimer, checkShiftkey, 500
LShift::【flag==1にする】

checkShiftkey:
if(flag==1)
{
【deleteキーを押す】
}
flag:=0
return


662 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/09(金) 13:43:29 ID:FxAaRY1v0]
~LShift up:: DoubleKey("{Delete}", 400)

DoubleKey(Command, timeout){
if(A_PriorHotKey = A_ThisHotKey and A_TimeSincePriorHotkey < timeout)
Send, %Command%
}

663 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/09(金) 14:06:19 ID:sCn2a4fh0]
>>662
正常に動作しました。
今やっと理解できました。

ありがとうございます。

664 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/09(金) 19:46:13 ID:8en6gcJl0]
質問させていただきます

マウスの下のウィンドウのプログラムの実行ファイル(.exe)のパスを取得するにはどうすればよいのでしょうか?

MouseGetPosでウインドウ名、コントロール、などを取得した後
ウインドウ名やコントロールからどのようにしてファイルのパスを取得すればいいのかがわかりません

よろしくお願いします

665 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/09(金) 19:57:53 ID:cfB1EDup0]
>>664
俺には難しくてよくわからんw

2005-08-26 - eamatの日記
ttp://d.hatena.ne.jp/eamat/20050826
旧雑記サルベージ
ttp://lukewarm.s101.xrea.com/test/read.cgi/bbs/1157529465/70


666 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/09(金) 20:11:38 ID:PmoIudtT0]
hwnd から pid に変換は、EnumWindows と GetWindowThreadProcessId を使えばいいよ。
コールバック書けるならね。

667 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/09(金) 20:15:08 ID:mXY51MyH0]
>>666
WinGet?

668 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/10(土) 18:03:38 ID:/aFkmSrv0]
設定したホットキーの解除(一部のキー)ってできます?

669 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/10(土) 18:20:53 ID:77vfAw8E0]
Hotkey, OFF

670 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/12(月) 03:10:52 ID:BemSIh+W0]
#IfWinActive を使って Foxit Reader という PDFビューアをフックしたいのですが、うまくいきません。
AU3_Spy.exe で 見てみると、ahk_class Afx:400000:8:10011:0:xxxxxxx となって、最後の7桁が
起動毎に変ってしまいます。
SetTitleMatchMode, 2 として #IfWinActive ahk_class Afx にて中間一致を試みましたが
全くに認識されません。
このような場合にはどのようにしたらよいでしょう?



671 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/12(月) 05:08:05 ID:BFVOzu/J0]
ahk classには中間一致はないでソ
タイトルじゃないんだから

672 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/12(月) 08:08:30 ID:CUI4dA1N0]
>>670
> AU3_Spy.exe で 見てみると、ahk_class Afx:400000:8:10011:0:xxxxxxx となって、最後の7桁が
> 起動毎に変ってしまいます。
Afx:400000:8:10011:0:0000000〜Afx:400000:8:10011:0:9999999
まで書いとけばいいんじゃね?

673 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/12(月) 10:19:12 ID:z6SmkfAk0]
Sleipnirが最前面のときのみ
Sleipnirのみホットキーを有効にしたいのですが、うまくいきません。
ご教授ください。

Sleipnirをホットキーなしで使用したい場合もあるので、
ホットキーを有効にするかの条件を加えています。

;有効トグル用フラグ
flg = 0

;ホットキー
2::
;最善面のウィンドウがSleipnirで、フラグがONのとき
IfWinActive, ahk_class SleipnirMainWindow && flg = 1
{
Send {F2}
}
return

;フラグ切り替え
^1::
if (flg = 1) {
flg = 0
} else {
flg = 1
}
return


674 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/12(月) 10:20:31 ID:WsuDC3uN0]
>>671
なるほど、そういうことでしたか。
ヘルプを参照してタイトル部分一致を試みたのですが、ちょっとできませんでした。
また別の機会にやってみます。

>>672
いいアイディアをありがとうございます。

675 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/12(月) 11:28:10 ID:CUI4dA1N0]
>>673
> ;最善面のウィンドウがSleipnirで、フラグがONのとき
> IfWinActive, ahk_class SleipnirMainWindow && flg = 1
IfWinActive は If とは違うので中に式は掛けないと思うよ。
flag をトグルした場合に hotkey を登録したり、解除したりしないとダメだよ。

>>674
冗談だから本気にしないでね。

676 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/12(月) 11:31:04 ID:CUI4dA1N0]
>>673
;; と思ったけど、F2 送るだけならこれでいいんじゃ?
IfWinActive, ahk_class SleipnirMainWindow
2::
;; 最善面のウィンドウがSleipnirで、フラグがONのとき
if (flag == 1)
{
Send,{F2}
}
else
{
Send,2
}
return


677 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/12(月) 11:34:51 ID:VVUThdm/0]
>>672は想像してみて、ちょっと面白いなと思っていました。
アイディア自体も思いつかなかったので、また何かの力技系のときに応用してみます。
ありがとうございました。

678 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/12(月) 11:39:23 ID:z6SmkfAk0]
>>676
あっ
ごもっともです。
ありがとうございます。

679 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/12(月) 15:00:51 ID:z6SmkfAk0]
無変換キーにウィンドウ最小化を与えたいのですが、

vk1Dsc07B:: WinMinimize

ではうまくいきません。

どうすればよいでしょうか。

680 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/12(月) 15:07:35 ID:BFVOzu/J0]
さすがに付き合いきれんよ



681 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/12(月) 15:17:03 ID:VVUThdm/0]
>>679
自分も最初これで悩んだ。
WinMinimize, A

682 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/12(月) 15:29:49 ID:z6SmkfAk0]
>>681
あざーす

サンプルの一番下だけ見てなかったっす。

683 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/12(月) 15:32:37 ID:3EV62vgO0]
あざーすって何だよ。

アザトースか?

684 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/12(月) 15:37:13 ID:CUI4dA1N0]
>>683
ラブクラフトの読みすぎです

685 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/12(月) 15:49:32 ID:BFVOzu/J0]
今日は優しい風が吹いてるな

686 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/12(月) 17:56:25 ID:z6SmkfAk0]
「^c::Send,^c」という定義をした場合、
Ctrl+Cが押されるとCtrl+Cを送信するサブルーチンが実行され、そのCtrl+Cに反応して再度サブリーチンが実行され、無限ループに陥ってしまう。

とありますが、Send ^cの「^c」をホットキーでない通常のペーストにしたい場合はどのようにすればよろしいでしょうか?


687 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/12(月) 18:02:00 ID:CUI4dA1N0]
>>686
> とありますが、Send ^cの「^c」をホットキーでない通常のペーストにしたい場合はどのようにすればよろしいでしょうか?
何も割り当てなければ C-c は C-c のままですよ?

688 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/12(月) 18:02:39 ID:CUI4dA1N0]
ごめん激しく釣られた。
ペーストは C-v ですた。

689 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/12(月) 19:57:39 ID:LxbWc6NN0]
ホットキーでマスタ音量を上げ下げしたくて作ったのですが二点ほど質問があります

TIPOFF:
tooltip
settimer, TIPOFF, off
return

^up::
settimer, TIPOFF, 500
soundset, +1, MASTER
soundget, MASTERVOL, MASTER
tooltip, %MASTERVOL%
return

^down::
settimer, TIPOFF, 500
soundset, -1, MASTER
soundget, MASTERVOL, MASTER
tooltip, %MASTERVOL%
return


1.ツールチップは透明にしたりできないのでしょうか?

2.なぜか+1しているのに0.999466ずつ足されていくのですがなぜでしょうか?



690 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/12(月) 20:18:50 ID:BFVOzu/J0]
0〜65536を百分割してるから誤差が出るんじゃないの



691 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/12(月) 22:34:22 ID:vc5RlPA+0]
便乗質問。ツールチップのフォントの大きさ変えることできない?

692 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/13(火) 00:02:17 ID:6r0yPWm20]
流行らせるページの「タスクトレイに最小化」スクリプトで
最小化したウィンドウを取り出すとき、
タスクトレイのアイコンをクリックするのではなく、
ショートカットキーで取り出す事ってできますか?

一応、特定のアプリだけで使いたいんですが、やり方がよく分かりません・・・

693 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/13(火) 13:10:29 ID:bRWzStWe0]
Altキー2回押しで起動するアプリがあってそれをAHKを使って、Ctl+右クリックで呼びたいんですけど
下のいずれでもダメでした。
何か良い方法がありましたら教えてください。

^RButton:: SendEvent {ALT}{ALT}

^RButton:: SendInput {ALT}{ALT}

^RButton:: Send {ALT}{ALT}

^RButton::
SendInput {ALT} down
SendInput {ALT} up
SendInput {ALT} down
SendInput {ALT} up


694 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/13(火) 13:45:41 ID:3KwfawNn0]
CLCLで試したけど

KeyWait, CTRL, U

はさんだら出来た。でも、キーを放すまでは動作しないので
ちょっと違和感ある

695 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/13(火) 19:55:57 ID:ax2MIHQd0]
「起動する」のであれば、Runで呼び出すのではいかんのかい?

696 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/13(火) 21:00:20 ID:ax2MIHQd0]
マウスカーソルを動かさずに、指定した座標にマウスのクリックを発生させることは不可能でしょうか?

697 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/13(火) 21:55:57 ID:LRbMYgHY0]
PostMessage,SendMessage + WM_LBUTTONCLICK 辺り

698 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/13(火) 21:57:34 ID:YS/tTYSd0]
右ダブルクリックにホットキーを割り当てたいのですが、
RButtonRButton:: ではだめでした。やり方が悪いのでしょうか?


699 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/13(火) 22:15:44 ID:nAoiLpYR0]
>>698
その発想はないわw
629を少し変えれば良いと思うよ

700 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/13(火) 22:25:35 ID:3KwfawNn0]
ワロスw



701 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/13(火) 23:37:30 ID:Zt52tcWK0]
マウスジェスチャ2ならRB__RB__なんだがな

702 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/14(水) 13:09:46 ID:rIfeXugq0]
マウスカーソルをデスクトップの右上に1秒置いたとき
関数を実行させることってできますか?

703 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/14(水) 13:32:41 ID:KNpdLpyT0]
できるよ

704 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/14(水) 14:13:46 ID:Pr/9nclm0]
~Lbutton & ctrl::send,{enter}
が暴走します。
字面通り左ボタンを押しながらCtrl押すとEnterになるのはいいんですが、
何故か家ではCtrl押しながら左ボタン押すと定義外のことが起きます。

何も定義してないのに、左ボタンを押してる間Enterが連打されてしまいます。

~b & ctrl::send,{enter}
だとCtrl押しながらbで(当然のことながら)何も起きないのに。

705 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/14(水) 22:54:05 ID:Pr/9nclm0]
おかしいな家だけ?Lbuttonが壊れているわけでもないのに。

706 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/14(水) 23:04:50 ID:NYeH+lm70]
>>697
ありがとう。調べてやってみましたが、
たとえばアクティブウィンドの(256,256)の座標に、マウスの左ボタンをクリック→離すを送るのに

SendMessage, 0x201,0,0xFF00FF,,A
SendMessage, 0x202,0,0xFF00FF,,A


を試してみました。
が、どうもうまくいきません。書き方間違っているのでしょうか。
右クリックにしてみると(0x204,0x205)、アクティブウィンドの種類によってはメニューは出ることがあるのですが、
意図した座標で右クリックしていないようで…

よろしければ知恵をお貸しください。

707 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/14(水) 23:30:25 ID:KNpdLpyT0]
>>706
> SendMessage, 0x201,0,0xFF00FF,,A
wParam は 1 じゃないと不味いような。
昔書いた奴をやろう。

LClk(x, y, id=0)
{
lParam := x | (y << 16)
if id = 0
{
PostMessage, 0x0201, 1, %lParam%
PostMessage, 0x0202, 0, %lParam%
}
else
{
PostMessage, 0x0201, 1, %lParam%,,ahk_id %id%
PostMessage, 0x0202, 0, %lParam%,,ahk_id %id%
}
Return
}


708 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/15(木) 21:05:47 ID:1P+tCkQs0]
現在文字入力中であるかどうか
を判断する方法はありませんか?

A_CursorXで判断できるかと思ったのですが入力中でないにも関わらず値が存在しますし
現在のコントロールだとwebページの入力フォームが判断できませんし

709 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/15(木) 21:35:09 ID:zw/4nkes0]
キーを押しているかどうかなら GetAsyncKeyState
厳密に入力中かどうかは判定するなら、メッセージを hook しないといけない希ガス

710 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/15(木) 22:15:14 ID:1P+tCkQs0]
間違えた上に言い方が悪かったです
A_CursorX ではなく A_CuretX でした
文字入力中かどうか ではなく キーを叩くと文字が入力される状態かどうか でした

何がやりたいかというと、文字を打ち込みたいとき以外は
修飾キーなし、英数字キー単体でキーボードショートカットを実現したいのです



711 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/15(木) 23:25:24 ID:rH+toGPZ0]
COntrolGetFOcus
で文字打ち込み系のコントロールだったら除外するとか

712 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/16(金) 09:04:41 ID:MSHvKwcF0]
よいお知恵を教えてください。
英語版WindowsXP Pro SP2上にてAutoHotKeyを使っています。

AHKで、メモ帳トラッパーやNotepadBranchのような働きをさせられたら、と思っています。
考えている仕組みは、上記のものと異なり、notepad.exeが開いたら対象ファイルのパスを取得し、
任意のエディタで開き、同時にnotepad.exeを閉じる、というものです。

しかしながらアクティブなnotepad.exeが開いているファイルパスの取得方法がわかりません。
どなたかご教授いただけないでしょうか。

713 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/16(金) 09:55:58 ID:TrZF8PzZ0]
>>712
おまいさんの notepad.exe と俺の使ってる奴の version が同じかどうかはわからないが、
notepad.exe のメモリの 0x0100A900 を読めばいいとじっちゃんが言ってた。
ちなみに Unicode だから、ahk でそのまま表示しても文字化けするから注意してくれ。

714 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/16(金) 10:34:20 ID:Pk94Qr060]
>>699
ありがとうございます。

RButton:: DoubleKey("cmd.exe", 400) でできましたが、
普通の右クリックが聞かなくなりました。
考えてみたら当たり前ですが・・・

やりたいことはartipsというソフトがあり、
artipsのの右ダブルクリック見たいに、ホットキーアクションをさせたいです。

artipsは、初回の右クリックで、通常の右クリックアクションが即効発動して
次の右クリックをすると、artipsのポップアップが出る動きです。

どうしてもAutoHotKeyで実装したいのですが、
すいません、ヒントをお願いします。

715 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/16(金) 11:39:51 ID:ESF4RUBf0]
(右ダブルクリックだけなら、)わざわざ関数持ち出さなくともよくね?

~Rbutton::
If(A_PriorHotKey = A_ThisHotKey and A_TimeSincePriorHotkey < 200)
{
Send,{Esc}
;出現したコンテキストメニューを念のため消す
Send,Atoha yaritai koto
;後はご自由に
}
return

716 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/16(金) 14:09:11 ID:MSHvKwcF0]
>>713
情報ありがとうございます。じっちゃんにもお伝え下さい。
しかしメモリの読みかたが全くわからないので、もしよろしければ
メモリの参照方法をじっちゃんに聞いていただけないでしょうか?

717 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/16(金) 14:34:48 ID:jVKwkL+A0]
ググレカス

718 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/16(金) 15:21:15 ID:q18ihBcn0]
WinMain を使えば出来そうな気配なんだけど
もうこれ以上は分からん┐( ´ー`)┌

719 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/16(金) 15:33:11 ID:0alUhCR10]
流行らせるページ管理人氏のMyScriptにメモリをどうにかして読むサンプルがあったような気が

720 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/16(金) 16:36:49 ID:TrZF8PzZ0]
>>716
ググれない奴は覚えないってじっちゃんが言ってた。

#include mbstring.ahk
ReadMemString(pid, ByRef res, addr, size)
{
local hproc, suc
hProc := DllCall("OpenProcess",UInt,0x001F0FFF,UInt,0,UInt,pid,UInt)
VarSetCapacity(res, size)
suc := DllCall("kernel32\ReadProcessMemory",Int,hProc,Int,addr,Str,res,Int,size,Int,0,Int)
DllCall("psapi\CloseProcess",Int,hProc)
return suc
}

#ifwinactive ahk_class Notepad
1::
WinGet, pid, PID
ReadMemString(pid, ures, 0x0100A900, 256)
MBS_WideCharToMultiByte(res, ures)
msgbox, %res%
return




721 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/16(金) 17:08:59 ID:Pk94Qr060]
>>715
ありがとうございます。
下でできました。
1回だけの右クリックも聞くようにしました。

Rbutton::
If(A_PriorHotKey = A_ThisHotKey and A_TimeSincePriorHotkey < 1000) {
Send,{Esc}
処理・・・
} else {
MouseClick, RIGHT
}
return

上記では、右クリック押下だけで、MouseClick, RIGHTが反応してしまいます。

他アプリのマウスジェスチャを有効にしたいのですが、
右クリックを放した後にMouseClick, RIGHTを実行させることは可能でしょうか。


722 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/16(金) 19:32:06 ID:Dt0CPw7PP]
>>721
チルダつければいいだけじゃないの?
つか、715はチルダつけてるじゃん。消したの?なんで?

723 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/16(金) 20:10:43 ID:vH69+YYy0]
フルパスからそれが「フォルダ」なのか「ファイル」なのかを判別するのに
一番手っ取り早い方法ってありますでしょうか?



D:\hoge\hogehoge

hogehogeがフォルダなのか拡張子無しのファイルなのかを調べたいのです

724 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/16(金) 20:22:52 ID:zFQKjHEJ0]
>>723
FileExist()

725 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/16(金) 20:35:09 ID:vH69+YYy0]
どうも有り難うございます

リファレンスに普通にありましたね・・・

スレ汚しすみませんでした

726 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/16(金) 20:53:58 ID:Pk94Qr060]
>>722
あっ、すいません。
どうもありがとうございます。

ところで、どっかのサイトにIMEの辞書登録で
上から2番目の項目に値をセットするとき

ControlSetText,RICHEDIT50W2, %Clipboard%, 単語/用例の登録

っとやっていましたが、「RICHEDIT50W2」ってどうやって調べるのでしょうか。
「単語/用例の登録」画面を立ち上げ、Spyで見ましたが
そんな項目はなかったです。

727 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/16(金) 21:33:30 ID:q18ihBcn0]
自分の環境に合わせれ
ウチの2003だとふつうにEdit2

728 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/16(金) 22:07:47 ID:Pk94Qr060]
>>727
え〜できないです。
Edit1って、ウィンドウの上から2番目の入力ボックスってことですか?

729 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/17(土) 00:50:38 ID:epCPBx2R0]
マウスのX1ボタン+右クリックでコピーするようにしたいのですが
XButton1 RButton :: ^c
としてもエラーが出てできませんでした。
リマップでは無理なんでしょうか?






730 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/17(土) 01:17:03 ID:CkIfa/570]
質問してる奴等
まずは>>1の日本語解説ページのリファレンスを読んでこい。
話はそれからだ。



731 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/17(土) 09:24:38 ID:GvfwM5TX0]
タスクマネージャーでは存在するのにwingetでpidが取得できません。
WinGet,v,Listでリストを書き出してみたところ該当するプロセスがありませんでした。

試したスクリプトは
DetectHiddenWindows,On
WinGet,w,List,,,joijpouhpoijjjjjjj
Loop, %w%
{
tempid := w%A_index%
WinGet, PName, ProcessName, ahk_id %tempid%
WinGet, Pid, PID, ahk_id %tempid%
FileAppend, %A_index%%A_Tab%%Pid%%A_Tab%%PName%`n, %A_ScriptDir%\%A_ScriptName%.txt
}
return

です。
タスクマネージャを起動してpidを手打ちしているのですが、
スクリプトで取得する方法がありましたら教えていただけませんでしょうか。

732 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/17(土) 09:37:32 ID:MV1rI88j0]
>>731
detecthiddenwindows

733 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/17(土) 11:59:47 ID:tWWYI8If0]
VBなどでカレンダーのコントロール(部品?)がでて、選択するとその日にちが
横のテキストにセットされるなんてのがありますが、
そんなことって、autohotkeyでできますか?

734 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/17(土) 14:27:22 ID:36qedEkq0]
>>733
>>730

735 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/17(土) 16:07:50 ID:V77SupSP0]
>>720
すすす、すげぇ!!! ばっちりです。
質問の前に自分でも調べてみたのですが、当分できなかった気がします。
また勉強してきます。本当にありがとうございました。

736 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/17(土) 17:10:19 ID:GvfwM5TX0]
>>732 さんありがとうございます。
DetectHiddenWindows,Onは試してるんですがどうにもうまくいきません。

タスクマネージャーでPidを表示できるようにして確認したところ、pidは最大でも4000までだったのでloopで総当りしてみました。
その時点で50プロセス程存在していました。

DetectHiddenWindows,On
Loop,4000
{
tpid := A_Index
WinGet, PName, ProcessName, ahk_pid %tpid%
if (PName == "")
continue
FileAppend, %tpid%%A_Tab%%PName%`n, %A_ScriptDir%\%A_ScriptName%.txt
}
return

結果は32プロセスしか取得できなかったようです。
System Idle Process,System,Spoolsv.exe等のユーザー名がSYSTEMなものがほとんどなんですが
それ以外にも散見されます。
取得したいプロセスは自ユーザーです。
PCに詳しくない人に使ってもらうためなので、できればスクリプトの中で取得したいと思っています。
どなたかお知恵を拝借願えませんでしょうか。

737 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/17(土) 17:16:41 ID:MV1rI88j0]
>>736
ソフトとかも何も提示されていないから、エスパーするしかないが、
もしかしてウィンドウが存在しない物のpidを取得したいってことか?

738 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/17(土) 18:51:29 ID:tWWYI8If0]
サンプルコード類のCtrl key double tapで
コピーするときにCtrl押してからcを押すまでがとろいと ;some actionが走ります。

何か方法はあるでしょうか。

そもそもCtrlキー長押しは連打になるのでしょうか?

739 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/17(土) 19:45:03 ID:tWWYI8If0]
2つのウィンドウを作って呼び出そうとしているのですが、
2つ目の画面が出ません。なぜでしょうか。

MyRadio = 1
w1:=1
Gui,%w1%:Default
Gui, add, radio, vMyRadio, 何もしない
Gui, add, button, default xm, OK ; xm puts it at the bottom left corner.

+^b::
Gui,%w1%:Default
Gui, show
return
ButtonOK:
GuiClose:
GuiEscape:
Gui, submit
return

MyRadio1 = 0
w2:=2
Gui,2:Default
Gui, add, radio, vMyRadio1, 何もしない
Gui, add, button, default xm, OK1 ; xm puts it at the bottom left corner.

+^v::
Gui,2:Default
Gui, 2:show
return
ButtonOK1:
Gui, 2:submit
return

740 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/17(土) 20:56:41 ID:X1W5C5Ju0]
賑やかだがややカオス



741 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/18(日) 10:09:47 ID:DxQltXMf0]
A:: Send,{B}
A:: Send,{C}

でエラーを出さずに後の定義を有効にするようには出来ないものか。

742 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/18(日) 10:44:26 ID:pEScAPz30]
割り込みというもの

743 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/18(日) 19:08:11 ID:k9r02pTe0]
>>741
その定義をすることで
何をしたいんだ?

ていうか、BとC両方を押す処理を送りたいなら
Send,BC
だけじゃね?

744 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/18(日) 23:14:31 ID:AHiS+Z1P0]
>>737
> ウィンドウが存在しない物
そうだと思います。
アプリケーションの通信部分を担当してるような名前です。

タスクマネージャに出てるならなんとか操作できるんじゃないかってのが事の発端でした。
今はタスクマネージャを起動してpidを目視→入力って手順で使ってもらってるんですが
そこ手順を省略できないかなぁと思いまして書き込んでみました。

リストビュー操作の方向でもうちょっと勉強してみます。

745 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/18(日) 23:35:05 ID:ellkomLo0]
>>744
psapi.dll

746 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/19(月) 03:16:43 ID:eArk+a4z0]
>>745 さま
/*
psapi.dllを使ってプロセス名からpidを取得するサンプルは発見できたんですが
DllCallに書き直すのに挫折しました。
流行らせるページからProcessMem.ahkというスクリプトを拝領して
先のloopスクリプトで検索することでうまくいきました。
ヒントを与えてくださった皆様ありがとうございました。
*/
hModule := DllCall("LoadLibrary", str, "psapi.dll") ;ロードする
#Include %A_ScriptDir%\ProcessMem.ahk
limits = 4000
Loop, %limits%
{
tpid := A_Index
PName := getPEName(tpid)
if (PName == "")
continue
else if PName Not contains hogehoge.exe ;プロセス名
continue
else
break
}
msgbox, % tpid = limits ? 0 : tpid
DllCall("FreeLibrary", UInt, hModule) ;開放する

return


747 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/19(月) 19:23:07 ID:H4+iClNx0]
↑解決されたようなので次の質問です

コンテキストメニューが表示されたことを判断したいのですが
どうすれば良いでしょうか?

ひと通り「流行らせるページ」は読んできました

748 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/19(月) 22:26:14 ID:PuiTrZ3r0]
既出かもしれないけど貼っておく
ttp://www.donationcoder.com/Software/Skrommel/index.html

色々勉強になる。

749 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/19(月) 22:32:24 ID:xgu4LjI+0]
>>748
既出かもしれないと思うなら、さすがに>>2くらい見てからのほうが…

750 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/20(火) 19:27:35 ID:IdA+GMNY0]
質問です。
直前のアクティブウィンドウのハンドルを取得することはどうすればいいですか
DllCallのGetWindowでいけそうなんですが、うまくいきません
よろしくお願いします。



751 名前:初心者だが mailto:sage [2007/11/20(火) 19:44:17 ID:+H6sk/kC0]
これちょっと惑わされたぜ

誤)ライブラリスクリプトは「%A_MyDocuments%\AutoHotkey\Lib\」か、AutoHotkey.exeのあるフォルダ内に格納する。

正)ライブラリスクリプトは「%A_MyDocuments%\AutoHotkey\Lib\」か、AutoHotkey.exeのあるフォルダ内の「Lib\」に格納する。


それともこれって常識なのか?

752 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/20(火) 19:47:12 ID:0O21fTkm0]
>>751
ソース本体と同じディレクトリにいれておいた方が便利だよ。
どうせたいしたライブラリもないし。






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

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

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