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


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

AutoHotkey Thread 2



1 名前:名無しさん@お腹いっぱい。 [2005/10/21(金) 04:31:53 ID:qy14hWPT0]
If You = beginner
 Read, Template, >>2-6

Previous Thread::
AutoHotKey Thread
pc7.2ch.net/test/read.cgi/software/1098531338/

If Res > 950
 Please, Build, NextThread

306 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/13(火) 20:54:54 ID:wLsVmh5S0]
俺も知識不足でサンプルで何をやっているのか全然わからないので
流用できなかった。
任意のファイラ上でmigemoでファイルを選択したかったんだけどね。

マッチングを行わせたい文字列をリストにしてスクリプトに
読ませるんだというのはなんとなくわかるけど
マッチした内容を任意のソフトに対してどうやって反映させたら
いいのかさっぱり。
誰か使っている人いたら具体的なスクリプトを教えてくれないかな。

307 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/13(火) 22:44:18 ID:tDGCBqUo0]
>>304
お前が消えろよ

308 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/13(火) 22:54:36 ID:hY2eSXDW0]
ファイラーはMigemizeExplorer
ブラウザは窓使いの憂鬱
2chブラウザはJaneView
エディタはサクラエディタ

ってな具合にmigemoを使ってる。
ただ、繭で使ってるのはmigemoのみだから繭をなくしたいんだよね。
別に不具合はないけど。
ブラウザ乗り換えも何度も検討した結果、今使ってるものになってるし。

309 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/14(水) 12:55:41 ID:RrhosKDn0]
今現在、Win用・繭不要でmigemo対応のブラウザは

fub.net
ぶら。  ※拡張機能で。

Bagel
Firefox  ※XUL/Migemo
Sylera2

オレはSylera2だけど他にもあるような…

310 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/14(水) 14:43:44 ID:NCzEYHK/0]
Janeのトレース画面を一発で出し入れできるスクリプトって無理かな


311 名前:名無しさん@お腹いっぱい。 [2005/12/15(木) 09:04:11 ID:Oeo3ug/h0]
質問ですけど、スクリプトでMSNメッセンジャーを取り込み中に変えたりオンラインに戻したりするにはどうしたらいいですか?

312 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/15(木) 09:16:32 ID:vmIlAlU20]
>>311
AutoHotkey以外での実現方法を知っているなら、そのとおりに実装すればいいのでは。
手始めに "MSN Messenger" Messenger.UIAutomation.1 で検索するとかして。(英語も読もう)

313 名前:311 mailto:sage [2005/12/15(木) 09:21:36 ID:Oeo3ug/h0]
>>312
レスどうもです!
> AutoHotkey以外での実現方法
はタスクトレイのアイコンを右クリックしてやる方法しか知らないです・・・
ちょっとググってみます!
英語は・・・読める限り・・・

314 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/15(木) 12:34:59 ID:quYc50MH0]
>>310
出し入れというかマウス系のコマンド使って瞬間的に
ドラッグして消しているように見せるだけの奴なら作ってみた。
結構良い感じでうまく動いたよ。

そういう意味では出来ると答えておきます。

他に方法があるかもしれないけど漏れにはわかりません。



315 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/15(木) 15:12:30 ID:Ro4rZY7t0]
>>314
やっぱそれしかないかー
と思ったが、Hideenテキストを取得するスクリプト書いて
MSGBOX出せば、トレース画面出さなくても
デバッグログがみれるかもと思った。

316 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/15(木) 15:21:14 ID:quYc50MH0]
あ、トレース画面を別ウィンドウで浮かせたいってことが言いたかったのか。
勘違いしてスマソ。
うーん。Janeのソースいじってしまった方が速いんでないかい?

まぁ、でもText拾ってGuiで別Window作成して表示させれば、できるだろな。

317 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/15(木) 15:28:31 ID:Ro4rZY7t0]
>>316
あ、いや、その解釈であってるよ。
最初は外部コマンドからトレース画面をある程度の幅で
ウィンドウ内に出せればいいなと思ってたんだけど。
でも、AU3_Spyで見たらトレース画面のテキストが取得できてたんで
別に本体で見なくてもいいかなと思って。

318 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/15(木) 18:13:10 ID:RHa3zC2W0]
Jane作者に要望だせば?

319 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/15(木) 22:56:34 ID:3cBKpG8E0]
>>294にあるdll使って

DllCall("dllのパス\migemo-isearch.dll\ie_isearch_fmRi",Int,0)
としてみたが何も起こらず。
返り値はなし、ErrorLevelは-4(DLLは見つかったが、Functionで指定した関数が無かった)

どこが間違っているでしょうか?
そもそも無理?


320 名前:名無しさん@お腹いっぱい。 [2005/12/19(月) 16:48:21 ID:T6Ojlipz0]
CPU使用率を取得するにはどうすればいいでしょうか?

ttp://www.vector.co.jp/soft/winnt/prog/se361629.html
これを使って呼び出そうとしましたが、上手くいきません

321 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/19(月) 17:50:39 ID:m4JgEdVJ0]
>>320
残念ながら力になれないが (DllCallを今初めて使った)、
どのような記述をして、どのように動かなかったのかの説明は書いておいた方が良いと思うよ。
ちなみに自分が試したのはこんな感じ。

;コード
#O::
Ret := DllCall("getcpust\GetCpuStatus", IntP, rate)
MsgBox, 返値:%Ret%`n使用率:%rate%`nエラーコード:%ErrorLevel%
return

;メッセージボックス
返値:1
使用率:0
エラーコード:A4

引数無しにするとエラーは出なくなるけど、それだと意味ないしなぁ。
以下DLLのReadmeから引用。他の人回答ぷりーず。
>int GetCpuStatus( int *rate )
>をEXPORTします。
>第1引数に引き渡したint型のメモリにCPU使用率が格納されます。
>返値は失敗するとFALSE(0)を、成功した場合はそれ以外を返します。





322 名前:320 mailto:sage [2005/12/19(月) 17:53:49 ID:T6Ojlipz0]
>>321
自分もほぼ同じ記述です

ただ、引数の最後にCdeclを追加するとErrorLevelは0になります(返値1・使用率0は変わらず)

323 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/20(火) 14:08:58 ID:VYjzBC0S0]
>>322
調べてみたらその関数の呼び出し規約はcdeclだった(関数を公開するなら明示すべきだが)。
mp3でも再生しながら再計測してみては?

324 名前:320 mailto:sage [2005/12/20(火) 14:14:45 ID:yg2tqewb0]
>>323
ん?つまり記述はあっているけど私のCPU使用率は0だから0を返してるってことですか?
負荷を上げても0のままです



325 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/20(火) 15:28:39 ID:6fVVhLVx0]
もしかして、とおもってやってみたらドンピシャ。

#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

326 名前:320 mailto:sage [2005/12/20(火) 15:35:13 ID:yg2tqewb0]
>>325
なるほど、そうやるんですね
勉強になりました

ありがとうございます

327 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/20(火) 15:41:31 ID:6fVVhLVx0]
これみてピンとキタ━━(゚∀゚)━━ヨ。
ttp://lukewarm.s101.xrea.com/commands/indexframe.html

>DLL確保/開放の手動化
>DLLの処理によっては、処理の途中でDLLが開放してしまうと正常に動作しない場合がある。
>その場合、上記の例のように手動でLoadLibrary/FreeLibraryを行うことで、本来の動作になることがある。


できるだけ、この方法使った方が正常に動作するのかもしれませんね。

328 名前:320 mailto:sage [2005/12/20(火) 15:44:01 ID:yg2tqewb0]
>>327
そこには目を通していたはずなのに実行してみなかった自分が恥ずかしいです

329 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/20(火) 15:45:24 ID:6fVVhLVx0]
>>327
ttp://lukewarm.s101.xrea.com/commands/DllCall.htm
だった・・

>>328案外見落としてしまうですね^^

330 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/20(火) 16:14:40 ID:e8aKpTDx0]
平日の真昼間にいきなり活性化してんのな
学生ってもう冬休みに入ってるのかなw

331 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/20(火) 16:19:32 ID:e8aKpTDx0]
↑末尾のwは Alt+w(書き込み)の押し間違いだorz

332 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/20(火) 16:59:12 ID:f5Fr+yX00]
Ctrl+Alt+Delを無効にしようと思うんだけど

^!Del::return

としても変化なし
何か特別なことをしなければならない?

333 名前:332 mailto:sage [2005/12/20(火) 17:22:32 ID:f5Fr+yX00]
もっとよく調べてから質問すればよかった・・・

ttp://nienie.com/~masapico/doc_DisableSAS.html
コンパイルする環境にないのでコンパイル済を探しているところ
・・・ってこれはスレ違いか

334 名前:名無しさん@お腹いっぱい。 [2005/12/21(水) 22:00:44 ID:C94x2s+u0]
>>333
俺もそれほしくてコンパイル済みを探したけど見つからんかった。
どなたかお願いします・・



335 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/22(木) 02:31:48 ID:MS28PmO/0]
>>333-334
コンパイルだけなら出来ないこともないが、
さすがにそんなシステムの根幹に関わるファイルは試したくないし、
そのまま上げて、うまく動かなくてシステム復旧できなくなっても責任取れないし。
第一、こんな危険度の高いファイルを匿名掲示板の誰とも知れぬヤツに
頼むのはどうかしてるとしか思えない。

336 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/22(木) 16:11:43 ID:7k5DRGNJ0]
335の言うとおり。どれほど危険かわかっていってんのかね。

337 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/22(木) 17:01:29 ID:V901fh0D0]
何度もいう必要は無いよ
一度言えば分かる
もしやる奴がいれば上げればいいし
自己責任で使えばいい

338 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/22(木) 18:39:00 ID:8FMcnaKn0]
とりあえず自力でコンパイルできる位のスキルがある奴でないと危ないってこった

339 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/22(木) 18:44:59 ID:KsC0+Fth0]
何度もいう必要は無いよ
一度言えば分かる
もしやる奴がいれば上げればいいし
自己責任で使えばいい


340 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/22(木) 22:47:41 ID:1UNMjvMz0]
乱数が必要なときどうしてます?

341 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/22(木) 23:14:28 ID:mI5CV1Yi0]
Random使ってますが

342 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/22(木) 23:14:55 ID:MS28PmO/0]
Random, OutputVar [, Min, Max]

343 名前:340 mailto:sage [2005/12/22(木) 23:16:16 ID:1UNMjvMz0]
関数の方で探してましたorz

344 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/22(木) 23:26:11 ID:1UNMjvMz0]
もしかして16進数←→10進数もあったりする?



345 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/23(金) 00:08:10 ID:6+7NW5wO0]
>>344
ある。探し方が下手なだけだと思う。

346 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/23(金) 00:24:43 ID:HDLrFyls0]
>>345
ありました
SetFormatですね

今度一からリファレンスを見直そうかな・・・・

347 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/23(金) 17:22:00 ID:6+7NW5wO0]
一部のソフトのバグが原因(だと思われる)でフォーカスの横取りがうまくされなくなる問題の解決のために、
フォーカスを奪いたいソフトを実行させる前に以下のコマンドを実行するようにしてみた。

GetFocus:
RegRead, fore, REG_DWORD, HKCU, Control Panel\Desktop, ForegroundLockTimeout
IfNotEqual, fore, 0
{
RegWrite, REG_DWORD, HKCU, Control Panel\Desktop, ForegroundLockTimeout, 0
Sleep, 500;反映待ち
}
return

しかし、実際にレジストリの方は書きかわっているものの、きちんとフォーカスを奪ってくれず、
TweakUIで該当の項目を見てもチェックが付いたまま…もちろんTweakUIでチェックを外せば奪うようになる。
他に何をすればAHKでも反映されるようになるんかな。


348 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/23(金) 19:43:26 ID:JrNibnEe0]
あーなんか昔クリップボード拡張ソフトのスレでそれっぽいの見たような記憶が
今ちと忙しくて過去ログ探してる暇がないが
Charu3起動するとフォーカス関係がおかしくなる奴

349 名前:347 mailto:sage [2005/12/23(金) 21:18:22 ID:6+7NW5wO0]
>>348
そのスレ自体は知っているんだけど、やっぱり原因となってるソフトを特定して、
作者に直してもらうほか無いのかなぁ。

350 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/23(金) 22:08:11 ID:4kg8U7Th0]
>>347
その手の設定はレジストリ変えた後に「再設定したよ」ってOSに知らせないといけないのかも
確かそんなAPIがあったはず

351 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/24(土) 00:50:55 ID:qmuEaf2G0]
最強クリップボード拡張ソフトはこれだ!Part5
pc8.2ch.net/test/read.cgi/win/1085675606/371-383
CharuシリーズサポートBBSの下のほう
XPでフォアグラウンドアクティブできなくなるのですが…
ttp://8537.teacup.com/keiziweb/bbs?OF=120&BD=9&CH=5

自分このときCharuの作者さんに報告したものだけど
問題部のソース晒して貰った上でバグ部分を特定してるので
>347氏のも同じ現象ならソフトの作者さんに報告すれば直して貰える確率は高いと思う
常駐物もいったん全部外して、常用ソフト一個ずつ起動終了ごとにTweakUIで状態確認、で
原因のソフトは特定できると思うよ。ちと手間だけど

352 名前:名無しさん@お腹いっぱい。 [2005/12/29(木) 13:16:24 ID:kRbce90V0]
age

353 名前:347 mailto:sage [2006/01/02(月) 13:16:01 ID:ECSj1xL10]
状況報告
Tweak UIの挙動をSpy++で確認。レジストリ変更後、↓を確認。
WM_SETTINGCHANGE wFlag:2001 pszMetrics:0006F4B4
ということで、スクリプトに↓を追加。
SendMessage, 0x1A, 0x0002001, 0x0006F4B4,, ahk_id 0xFFFF

これで試したところ、以下のような良く分からん状態に。
  Tweak UIでチェックをつけてOKを押す 該当レジストリが200000になる
↓AHK実行 レジストリが0になる
↓フォーカスをきちんと奪うようになる
↓Tweak UI起動して確認するとチェックが付いたまま レジストリの方は0になっている
↓そのままOKを押す
↓AHK実行 レジストリは0のまま
↓フォーカスを奪えない Tweak UIの方もチェックが付いたまま

↓のようにいろいろ変えてみても効果無し。
SendMessage, 0x1A, 2001, 0x0006F4B4,, ahk_id 0xFFFF
SendMessage, 0x1A, 0x0002001, "Control Panel\Desktop",, ahk_id 0xFFFF
SendMessage, 0x1A, 0x0002001, "HKEY_CURRENT_USER\Control Panel\Desktop",, ahk_id 0xFFFF
SendMessage, 0x1A, 0, 0x0006F4B4,, ahk_id 0xFFFF
SendMessage, 0x1A, 0, 0,, ahk_id 0xFFFF

354 名前:347 mailto:sage [2006/01/02(月) 13:23:01 ID:ECSj1xL10]
続き

参考にしたのは↓のサイト
ttp://www.sxlist.com/techref/os/win/api/win32/mess/src/msg27_28.htm

何か根本的に間違っているのかそれとも足りないのか…
ちなみに原因となってるソフトを探してみるものの、問題が起こるときは何度でも起きるし、
起きないときは全然で、再現性が無くて困り中。
何かSyleraが怪しい気もするけど確証が取れず。複数ソフトが原因だったらお手上げっす。

長文スマンね。



355 名前:名無しさん@お腹いっぱい。 [2006/01/03(火) 07:25:06 ID:jyT5EMJg0]
JoeのようなAltTab代替アプリを実現しようと思ったんですが、
アイコンの取得の仕方がわかりません。

インスタンスハンドルを取得できればWinAPIを使ってできそうなんですがうまく取得できず。

356 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/03(火) 12:14:30 ID:Tw0iMMgh0]
HDD漁ったら昔作ったアイコン存在チェックソース出てきた。時間ないので未検証でコピペするお

;WNDCLASSEX 構造体にセットされたアイコン
GCL_HICON := DllCall("GetClassLong", Uint,hWnd, Int,-14) ;GCL_HICON
GCL_HICONSM := DllCall("GetClassLong", Uint,hWnd, Int,-34) ;GCL_HICONSM

;WM_SETICON メッセージによってセットされたアイコンを取得
SendMessage,0x007F,0,0,,ahk_id %hWnd% ;ICON_SMALL
ICON_SMALL := ErrorLevel
SendMessage,0x007F,1,0,,ahk_id %hWnd% ;ICON_BIG
ICON_BIG := ErrorLevel
SendMessage,0x007F,2,0,,ahk_id %hWnd% ;ICON_SMALL2(XP)
ICON_SMALL2 := ErrorLevel
OutputDebug, GCL_HICON=%GCL_HICON% GCL_HICONSM=%GCL_HICONSM% ICON_BIG=%ICON_BIG% ICON_SMALL=%ICON_SMALL% ICON_SMALL2=%ICON_SMALL2%

357 名前:355 mailto:sage [2006/01/03(火) 17:40:06 ID:jyT5EMJg0]
>>356
ありがとうございます。
これでアイコンハンドルは取得できました。

ListViewのGuiのIL_Add()ではアイコンのファイル名が必要なんですが
ハンドルからファイル名は取得できるのでしょうか?

358 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/03(火) 21:17:52 ID:Tw0iMMgh0]
取得したアイコンハンドラを元にGUIへ反映する方法はわからんです。
(自分はウィンドウのタイトルバー左上にアイコンがあるのかどうか調べるためだけに
アイコンハンドル取得してみてるだけなので)
APIでどうにかできそうとのことだったので、むしろフィードバックを期待してたんですが

単純にexeのアイコンが表示できればいいのなら、管理人さんの
プロセスIDを指定して実行ファイルパスを得る関数で .exeフルパス取得して
セットしてやればいいと思われ

cgi19.plala.or.jp/lukewarm/news/2005_05.html#14

359 名前:355 mailto:sage [2006/01/03(火) 21:27:09 ID:jyT5EMJg0]
>>358
その管理人さんの関数で解決できそうです。

ありがとうござました。

360 名前:355 mailto:sage [2006/01/03(火) 21:45:14 ID:jyT5EMJg0]
最後のほうの
DllCall("psapi\CloseProcess","Int",hProcess)
のErrorLevelが-4になってしまうんですが大丈夫なんでしょうか?


361 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/04(水) 15:29:26 ID:SbxpZ6KF0]
ホイールの挙動がなんかおかしいです

SetTimer,tip,1000
return

tip:
GetKeyState,ks,WheelDown,P
ToolTip,%ks%
return

で調べると、一度でもWheelDownをするとそのあとマウスから手を離しても
ずっとksの値はDのままになってしまいます。


362 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/04(水) 15:49:26 ID:x6p42A6B0]
>>360
これはCloseHandle()の間違いらしい。
DllCall("CloseHandle", "Int", hProcess)

363 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/04(水) 16:55:55 ID:95AmdYfp0]
>361
ホイールの回転はホイール押下みたいなUP/DOWNが有るイベントじゃないから
状態を取ること自体間違ってる気がする


364 名前:361 mailto:sage [2006/01/04(水) 17:01:50 ID:SbxpZ6KF0]
>>363
ホイールが回転されるまで待機、ってことがやりたいんですが
無理ですか?



365 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/04(水) 19:47:56 ID:95AmdYfp0]
単にWheelDown::に処理書いてやって,フラグ立てるなり終了するなりすればいいんでは


366 名前:361 mailto:sage [2006/01/04(水) 19:50:45 ID:SbxpZ6KF0]
>>365
& WheelDown::の最中で待機したかったんですが
あきらめて他の仕様にすることにします

367 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/05(木) 01:16:03 ID:YlkDRsZz0]
フォルダのパスを引数として渡し、
「フォルダの参照」ダイアログのツリーを操作して
引数のフォルダを選択させる、ということをしたいのですが、
どのようにすればいいのでしょうか?

DialogSetやDialogHandlerが使えないソフトにも
自前で対応させようとしているのですが、
「フォルダの参照」ダイアログがどうにもできず困っています。
助言をいただきたいです。

368 名前:355 mailto:sage [2006/01/05(木) 01:17:18 ID:n7Jr+2qn0]
>>362
亀レスすみません
エラー出なくなりました。ありがとうございます。

369 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/05(木) 01:40:30 ID:8eGMClaI0]
>>367
「フォルダの参照」の場合、パスをセットする場所がないので
ルート(マイコンピュータ)からインクリメンタルサーチで1階層ごとに
フォルダ選択していくしかないのでは?
DialogHandlerは随分とうまいことやってるけど、多分100%の無理そうな気がする。

370 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/05(木) 01:41:29 ID:8eGMClaI0]
×多分100%の無理そうな気がする。
○多分100%の精度での実現は無理そうな気がする。

371 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/05(木) 10:54:01 ID:mE3SDKUy0]
一応フォルダの参照ダイアログの選択フォルダを指定する
方法はあるが(>>369のような不確かな方法ではない)
AutoHotKeyでは無理っぽい気がする。
とりあえずSHBrowseForFolder SHGetPathFromIDList
あたりでググってみるといい。この方法は環境に問題がなければ
精度はほぼ100%だよ。(完全に100%かもしれないが、
言い切れるほどの確認はしてないので)

372 名前:367 mailto:sage [2006/01/05(木) 15:29:16 ID:YlkDRsZz0]
>>369 >>371
レスありがとうございます。どうも難しいようですね。
「フォルダの参照」の場合はDialogHandlerに丸投げすることにしました。

373 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/07(土) 16:48:04 ID:g9rnGIxl0]
特定のアプリにのみ有効にすることはできますか?
また、マウスジェスチャ(←→ならESCなど)を指定することはできますか?

374 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/07(土) 17:08:20 ID:E/GD5dod0]
そのように書けばできますYO!



375 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/09(月) 15:47:48 ID:OvYu84cO0]
>>347
AutoHotkeyユーザーではありませんが、347さんと同じような現象で困っていてこのスレにたどり着きました。
tuneappスレ(Windows2000/XP チューンナップ専用スレ Part17)にも書き込んでます。
以前はこんな現象は起こらなかったので困ってます。
常駐ソフト切ったり、バージョンを変えたり(上げたり落としたり)しても同じく原因がわからないんですよね・・・
レジストリを書き換えても(tuneappでも可)、TweakUIの「アプリケーションにフォーカスを横取りさせない」のチェックボックスに変化無し。
チェックボックスを外してもいつの間にかチェック状態に戻ってしまう・・・
Windows2000を普段使ってまして、WindowsXPだと起きていないので
Windows2000の何かが原因なんですかね。
ネットで調べたらWin32 APIてのが関係してるかもしれないようですが、お手上げ状態です。

376 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/09(月) 17:38:31 ID:r9CSfa8s0]
>>347
今更だが、Regmon辺りで書き換えてるアプリ探すのが一番かと
ForegroundLockTimeoutでフィルタリングして放置しておけばそのうち引っかかると思うぞ

377 名前:347 mailto:sage [2006/01/09(月) 21:51:22 ID:gCdov2U80]
>>376
残念ながらそれはもう試してた。Regmonでは引っかからなかったよ。
Tweak UI等での正規の方法で変更する場合は関知してくれるけど、このバグの場合は無理らしい。
いっそ、この問題が起こる人用のスレでも立てて、全使用ソフトを書き連ねる→共通するソフトが容疑者
って方法でも取らないと無理かなぁ…ちなみにOSはXP SP2です。

とりあえず原因が除去できないならってことで、>>347で書いたものの代わりにこんな感じで無理矢理対処。
SendMessage等を用いたもっとスマートなやり方を誰か分かれば頼む。

TweakFocus:
Run, TWEAKUI.EXE
WinWait, Tweak UI
ControlSend, SysTreeView321, {Down}{Right 2}, Tweak UI
Sleep, 50
Control, UnCheck, ,Button2, Tweak UI
Sleep, 50
ControlClick, Button6, Tweak UI
return

378 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/09(月) 23:37:50 ID:r9CSfa8s0]
>>377
Regmonでダメだったのか
古典的なwin.iniのCompatibility95セッションに追加する手法は?

379 名前:347 mailto:sage [2006/01/10(火) 00:20:10 ID:YKl99lMm0]
>>378
こんな簡単な解決方法があったとは…
根本的な解決になったわけではないけど、実用上は何の問題もなし。
激サンクス!

380 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/10(火) 12:26:18 ID:edhaETY50]
今更かもしれませんが・・・前スレ749さん

hModule := DllCall("LoadLibrary", str, "DengakuDLL.dll")

p := DllCall("DengakuDLL.dll\TOHANKAKU", "str", "01234567890", "str")
msgbox, %p%
DllCall("lstrcpy", "str",str1, "str", p)
msgbox, %str1%

DllCall("FreeLibrary", UInt, hModule)

で、動きました。処理途中で解放されていたのが問題だったぽいですね。
すでに解決してたらすいません。

381 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/10(火) 21:55:48 ID:h3Yb+cm+0]
DllCall("SetCaretBlinkTime",UInt,100)
とやってもすぐに反映されず、何かアクションを起こさなければ速度はそのままです。
何か足りないんでしょうか?


382 名前:前スレ749 mailto:sage [2006/01/11(水) 01:30:09 ID:95IZTI+k0]
>>380
あ! LoadLibraryで確保すればOKだったのか。
管理人氏がBRegExp.dll でやってたのは知ってたけど再検証はしてなかったです。
(自分でも忘れてた) 秀マクロ用のDLLが使えるようになるのは結構大きいかも。
教えてくれてアリガトン

てことは、AHKでも田楽DLLのSETVER/GETVERでグローバル変数が扱えるのかな
iniとか経由なしでオンメモリ上で秀マクロや他のアプリとデータを共有化できるのか
うはw夢がひろがりんぐwww


383 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/11(水) 04:51:40 ID:tIP7xIJe0]
起動するとそのままタスクトレイに入るソフトがあるんですが、
これをScrollLockで起動・終了したいんですね。
で、こんな風に書いてみたんですが……

~ScrollLock::
Process, Exist, task.exe
if ErrorLevel = 0
Run, task.exe
else
WinClose, ahk_pid %ErrorLevel%
return

これだとそのソフトの終了ができないんです。
ここの「WinClose」が「Process, Close」にすれば「強制終了」はできるんですが、
強制終了でなくふつうの終了がしたいんです……。ソフトの挙動が変わってしまうので。

タスクトレイアイコンを右クリックでxすると終了できるので、
この「WinClose」の行を「Send, #b & AppsKey & x」とかやってみたんですが、
別のアイコンにフォーカスが当たってしまい、、、どうにもうまくいきません。教えてください。

384 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/11(水) 05:02:56 ID:XYQfQQRG0]
トレイメニューの「閉じる」のコマンド番号を調べておいてWM_COMMANDで送ってやればいいような



385 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/11(水) 07:58:09 ID:95IZTI+k0]
挙動の本質とは関係ないかもしれないけど、Locks系の押下情報は
OSが返してくる値がおかしいからホットキーに割り当てるのは控えたほうが良いと思われ

386 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/12(木) 01:07:46 ID:rmvCVckQ0]
なまず日記すげえな。

387 名前:383 mailto:sage [2006/01/12(木) 03:13:12 ID:HWiUEJ9g0]
助言ありがとうございました。

Send, #b{APPSKEY}x
これでいけました。
これ「ソフトがタスクトレイの左端にある」ことを決めてかかっているのでよくないですが、
紹介いただいた「コマンド番号を調べる」方法を知らないので……(^^;
ぐぐって見て、
ResouceHackerでできるという話があったのでやってみたんですが、
それらしいエントリが見つからず……断念。

388 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/12(木) 03:30:15 ID:5XY6ilOR0]
Direct Command
ttp://members.jcom.home.ne.jp/shinonon/dircmd.html

終了命令はこれで調べられる可能性があるよ
SendCmdをRunさせてもいいし、
AHK内でも処理できる。

389 名前:383 mailto:sage [2006/01/12(木) 21:12:12 ID:HWiUEJ9g0]
ありがとうございます。
ただ、流行らせるページで紹介されている方法も含め、ソフトが特殊なのかうまくいきませんでした……。
件のソフトはWorkCheckerという、キーの押下回数をカウントするソフトなんですが(^^;
終了時にCSV形式でファイルを出力するもので、強制終了するとこれをやってくれないんですよ。

「終了」のほうは、とりあえず何とかなっているのでこれでいいとして、
もう一つうまく行かないことがありますので、よろしければお願いします。

Media Player Classicを「フルスクリーン」にしているときに、
383で挙げているスクリプトを走らせると、MPCのフルスクリーン化が解除されてしまうんですね。
これが「ウィンドウの最大化」なら、特に解除されることもないんですが……。

問題の部分はこんな感じになってます。

WinGetActiveTitle, player
Send, #b{APPSKEY}x
WinActivate, %player%

このSendをした際に、
タスクトレイにフォーカスが移ってタスクバーが出たままになるのを何とかしたくて
このような処理をしてみたんですが、先にも書いたとおり、
最大化したウィンドウでは期待どおりに動くものの、全画面化した場合はうまくいきません。
WinGetActiveTitleが、タイトルの取得のためにウィンドウ表示に戻してしまうんでしょうか……。

ちなみに、playerにはMPCの決め打ちができません。

390 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/12(木) 21:23:04 ID:HWiUEJ9g0]
あ、ちなみに、MPC以外でも同じ状態になります。

それと、
WinGet, player, PID

WinActivate, ahk_pid %player%
とか、PIDじゃなくてIDだとかの場合も試しましたが、これもうまくいかず。

391 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/13(金) 01:26:59 ID:+pozkCUx0]
今プログレスバーを半透明にしようとしているのですが、期待した表示になりません。

Progress,cwFFFFFF ,,name,time
winset,TransColor ,FFFFFF 50,time
return

esc::exitapp

ウィンドウを半透明にして文字とバーは透過なしにしたいのですが、出来ないのでしょうか?
これだとウィンドウが完全な透明、文字とバーが半透明になります。
Trans ,で設定するとウィンドウは半透明なのですが文字も半透明に。。トホホ。

392 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/13(金) 12:15:47 ID:5XB+c2x50]
2枚重ね

393 名前:391 mailto:sage [2006/01/13(金) 17:00:20 ID:dZX44Wpz0]
>>392
ありがとう!発想を変えれば良かったんですね。希望の動作になったので報告までにはっときます。
オプションでツールウィンドウを指定してるのは、タスクバーに表示させたくないためです。

gui,add,text
Gui, Color,000000
gui,+ToolWindow +AlwaysOnTop +OwnDialogs -border
gui,show,w300 h200,back
winset,Trans, 50,back

Progress,cwC8D0D4 ctFFFFFF B,,name,time
Progress,50,,,time
winset,ExStyle,+0x00000080,time
winset,TransColor ,C8D0D4 255,time
return

esc::exitapp

394 名前:381 mailto:sage [2006/01/14(土) 21:15:58 ID:6j6GF4sd0]
いまだ解決せず。
キャレットの速度変更した後、Send,{Left}{Right}とか無理やりアクション起こすと
色々不具合がでるソフトもあるし・・・
SmartCaretはどうやってるんだろう。



395 名前:383 mailto:sage [2006/01/17(火) 10:21:04 ID:aCgAJjPo0]
一段落したのでまとめをさせてください。
したかったのは、プログラム全画面化時のキー押下回数のカウントでした。
カウントには>389で挙げているWorkCheckerというソフトを利用することにしていました。

はじめ>383にてScrollLockを使おうとしていたのは、
全画面化時でもキーボードインジケータによって動作中かどうかがわかるためです。
これによって挙動がおかしくなったかどうかはわかりませんが、>385さんの助言を受け、
起動キーを変更して(NumpadSubに)、動作情報はツールチップに表示させるようにしました。

いろいろ調べてみましたが、WorkCheckerのメッセージによる終了のさせ方がわからず、
タスクトレイにフォーカスを当ててキーをSendするというムリヤリな解決法をとりました。
その後WorkCheckerの使用をやめ、AutoHotkeyスクリプト内部の処理でカウントすることに。
これでスクリプト終了の問題は一応決着がつきました。

が、その数値をファイルに書きこむ際、エントリ名を取得しようとInputBoxを出すと、
>389と同じ状況になり、全画面化が解除されてしまいます。
最大化でなく全画面化なので、WinMaximizeでも状態を復帰させることができません。
いろいろやってみたところ、WinGetActiveTitleとかWinActivateには問題がなく、
プログラムの全画面化が解除されるのは、タスクトレイやInputBoxなど
他のウィンドウにフォーカスが移ったときであることを突き止めました。
また、この現象は、プログラムの最大化時や、
IEのキオスクモード(F11を押すとできる一種の全画面化)では発生しないこともわかりました。

以上です。
全画面化の解除問題は解決してないのですが、うまくいきそうにないので諦めることにしました。
プログラムはPerlのワンライナー程度のスクリプト処理をちょっとかじっていただけ、
Windowsプログラミング経験なしのド素人なので、
コメント行やエラー処理も含めて100行を越えるスクリプトを書いただけでいっぱいいっぱいです(^^;
皆さん、助言どうもありがとうございました。

396 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/17(火) 13:41:14 ID:aCgAJjPo0]
まとめてみて、もしや、と思って試してみました。

全画面化中にAlt+Tabをしてみると、AHKスクリプトでの全画面化解除の挙動と一緒でした。
つまり、AHKスクリプト中に全画面化解除されるプログラムは、Alt+Tabでも解除され、
AHKスクリプト中に解除されないプログラムは、Alt+Tabでも解除されませんでした。
(最大化した場合や、IEのキオスクモード)
この問題の発生はAutoHotkeyに直接関係がなかったようです。お騒がせしました。

397 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/17(火) 17:29:06 ID:kObrtqt+0]
全画面化解除されても、復帰させれば問題ないのなら、
全画面化解除されるアプリ毎に全画面化に必要な操作をAHKにさせれば良いんでねーの?
数が多いと嫌になるかもしれんが、大抵全画面化のホットキーは決まってるし。

398 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/22(日) 12:49:22 ID:2qAgcpH90]
時間の計算で難儀してます....
時刻t1〜時刻t2間の時間T[s]を求める際に、
T := t2 - t1
みたいな書き方はできるんですが、
時刻t2と時間T[s]から、
t1 := t2 - T
のような式だとうまくいきません。
たとえば、ここでT=300[s](5分)として計算すると、
t2を時間としてでなく、数値として解釈するようで、T=3:00(3分)として計算されてしまいます。
t1 := t2 - T, Second
とやると、今度は「TがYYYYMMDDHH24MISSのフォーマットではない」とエラーになるし、
EnvSubのマニュアルを見ていてもいまいちやり方がわかりません....

399 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/22(日) 15:46:10 ID:Yqz0MIUn0]
EnvAddで-300秒を足すんじゃなかったけ?

400 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/22(日) 16:19:08 ID:1N3K73ci0]
時間計算はEnvAddとEnvSubの扱いの違いに気がつかないとハマるな
過去スレでも何度か話題になってるから調べてみ

401 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/22(日) 17:01:54 ID:2qAgcpH90]
ほ、ほんとだ...
>399,400 レスありがとうございました。
EnvAddのマニュアルにも、たしかにそれらしい文言がありますね。
でもこんなのわかんないよぅ...

402 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/22(日) 17:12:45 ID:v9Q+2/T40]
タイトルバーで中クリックされたら処理を行うってこと(QuickDirみたいなもの)がやりたいんだけど、
どんな感じでやれば良いんでしょーか。とりあえず↓のようにやってみたけど、
SendMessageの使い方が間違ってるのか、うまくいかないっす。(ErrorLevelがFAILになる)
~MButton::
MouseGetPos, x, y, id
SetFormat, integer, H
x += 0
y += 0
xy := x + y * 0x10000
SendMessage, 0x84, 0, %xy%, ahk_id %id%
If ( ErrorLevel == 2 )
{
;ここに処理を入れる
}
return

403 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/22(日) 17:52:51 ID:69RhDVUi0]
1.0.40.12から1.0.41にバージョンアップしたら、
  RWin up::Return
が効かなくなってしまいました。

AutoHotkeyを常駐させ、右Windowsキーを
  >#i::Send,{Up}
  >#k::Send,{Down}
のように使っているのですが、Windowsキーを押して
そのままはなすとスタートメニューがでるのがいやで
冒頭のものを一緒に書いていました。
ところが1.0.41ではスタートメニューがでてしまいます。

解決する方法があれば教えてください。

404 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/22(日) 17:54:27 ID:1N3K73ci0]
0x84 て何だっけ?
値からメッセージ名探すの大変なんで質問する時はコメントとか入れてクレ




405 名前:402 mailto:sage [2006/01/22(日) 18:30:09 ID:v9Q+2/T40]
>>404
スイマセン。
コメント入れるとこんな感じです。
~MButton::
MouseGetPos, x, y, id ;カーソル下の座標とid取得
SetFormat, integer, H ;座標を16進数に変換
x += 0
y += 0
xy := x + y * 0x10000 ;座標を上位ワードと下位ワードにまとめる
SendMessage, 0x84, 0, %xy%, ahk_id %id% ;カーソル下のウィンドウにWM_NCHITTESTを送る
If ( ErrorLevel == 2 ) ;タイトルバーならば処理を実行
{
;ここに処理を入れる
}
return

メッセージに関してはここを参考にしました。
ttp://www.winapi-database.com/Message/WM/WM_NCHITTEST.html

406 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/01/22(日) 19:02:30 ID:GjGnwmrQ0]
>>403
1.0.41 から流行らせるページの 2 stroke key も動かなくなっちゃいましたね。
本体のバグだと思うんで、本家の更新待ちです。






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

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

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