AutoHotkey Thread 2 ..
[2ch|▼Menu]
194:名無しさん@お腹いっぱい。
05/11/19 14:04:50 0di78jxb0
>>182
とりあえず、戻り値ぐらいみれ。

>>189
トレイアイコンの削除するだけならhIconはいらないが、uIDが必要。


まぁ、既存のソフト使ってしまった方がいいようなきもする・・・AHKでやるメリットあまりないような・・

195:名無しさん@お腹いっぱい。
05/11/19 14:32:32 q++McXD/0
TrayExpandが自分には良さそう
これ使うことにします

196:名無しさん@お腹いっぱい。
05/11/19 14:33:46 q++McXD/0
お礼言う前に途中で送信してしまった・・・・

>>192-193
ありがとうございます

197:189
05/11/20 05:00:08 zlspGYDE0
>>194
フォローサンクス ええかげんなレスしてスマンカッタ

198:名無しさん@お腹いっぱい。
05/11/20 06:10:35 i5sKQ9wq0
タスクトレイの項目をメニューで表示させることはできるでしょうか?
フリーソフトでもこういった感じのソフトは自分で探した限り見つからなかったので
知っている方がいたら教えていただきたいのです

199:名無しさん@お腹いっぱい。
05/11/20 10:52:17 u5r0IAMMO
>>198
>>193

200:名無しさん@お腹いっぱい。
05/11/20 17:09:08 9waBFH8F0
SetTimerってAutoHotkey.iniに書いても動かないの?

201:名無しさん@お腹いっぱい。
05/11/20 19:14:54 zlspGYDE0
動くよ

202:名無しさん@お腹いっぱい。
05/11/20 20:09:01 9waBFH8F0
>>201
動くのか・・・

特定のウインドウが表示されたらOKボタンをクリックしたいんだけど
.ahkに書くと動くんだけど、AutoHotkey.iniに書いても動かない
これじゃだめなの?

SetTimer,b,250
return
b:
IfWinActive,Aterm WARPSTAR
{
ControlClick,OK,Aterm WARPSTAR
return
}
return

203:名無しさん@お腹いっぱい。
05/11/20 21:37:35 MfpEbr860
常駐するSetTimerはAutoHotkey.iniの頭に書いて、
サブルーチンをAutoHotkey.iniの終わりに書いてみては
俺はそれで

IfWinActive,リンク先を探す,指定したリンク先は、デスクト
IfWinExist,ahk_class MSBLPopupMsgWClass

などのウインドウを操作できてる

204:名無しさん@お腹いっぱい。
05/11/20 21:41:56 Gk4qhKIS0
多分常駐させてないだけだろ

205:名無しさん@お腹いっぱい。
05/11/20 21:51:08 0DdRRu/u0
SetTimerの上のほうに、Returnかホットキーの設定が書いてある気がする。


206:名無しさん@お腹いっぱい。
05/11/20 22:49:48 zlspGYDE0
ホットキー指定のないスクリプトは #Persistent入れないと常駐しないから

207:名無しさん@お腹いっぱい。
05/11/20 23:56:30 JR1lWgkn0
>>203-206
ありがとう

>常駐するSetTimerはAutoHotkey.iniの頭に書いて、
>SetTimerの上のほうに、Returnかホットキーの設定が書いてある気がする。
これだった。無事に動きました。ありがとう

208:名無しさん@お腹いっぱい。
05/11/21 00:06:01 FWsdNj/u0
iTunesを操作させるにはどうしたらいいですかね?


209:名無しさん@お腹いっぱい。
05/11/21 00:18:49 5v2PJ0mq0
努力したらいいと思うよ

210:名無しさん@お腹いっぱい。
05/11/21 00:39:50 ZVwQTLlG0
>>208
曖昧すぎ。

211:名無しさん@お腹いっぱい。
05/11/21 02:04:10 Nz+dKwd30
>>210
質問がな

212:名無しさん@お腹いっぱい。
05/11/21 21:26:10 OOnUpq930
AutoHotkeyでiTunesを操作させるにはどうしたらいいですかね?

213:名無しさん@お腹いっぱい。
05/11/21 22:37:36 jfEQAnS10
「:」に対してキーを割り当てたいのですが、うまくいきませんでした。
::: ←ここでエラー
ごにょごにょ

何か他に書き方があるのでしょうか?

214:名無しさん@お腹いっぱい。
05/11/21 23:02:40 Y2LksryB0
URLリンク(lukewarm.s101.xrea.com) の下のほう
仮想キーコードやスキャンコードで何とか対応しる


215:名無しさん@お腹いっぱい。
05/11/23 11:44:06 w4Ag56cD0
NetworkStumblerというアプリを最大化で起動して、
その中のウィンドウをさらに最大化しようとしています。
NetworkStumblerが最大化で起動しても、アクティブになるまで
3秒ほどかかります。
起動してから「ALT+w+t」で中のウィンドウが最大化できますが
AutoHotkey.iniで下のように書いてもうまくいきません。

最初の最大化で起動のみが成功し、中のウィンドウは変化がありません。
"Send, {LALT}wt"の部分は個別に動作確認できていますので、
その間の記述の仕方が問題でしょうか?

#0::
run "D:\apli\netstumbler\Network Stumbler\NetStumbler.exe", , max
WinWaitActive, Network Stumbler
if ErrorLevel <> 0
Send, {LALT}wt
else
return

216:名無しさん@お腹いっぱい。
05/11/23 16:33:51 vpU2R36Y0
If の判定が間違ってるのと、Elseが不要(書くならもう一行returnが必要)

子ウィンドウを枠一杯に広げるので満足なら Send,!wt でもいいけど
SendMessage使えば本当の最大化もできるよ

#0::
run "D:\apli\netstumbler\Network Stumbler\NetStumbler.exe", , max
WinWaitActive, Network Stumbler
if ErrorLevel = 0
{
SendMessage, 0x229, 0,0,MdiClient1,A ;WM_MDIGETACTIVE
SendMessage, 0x225, %ErrorLevel%, 0,MdiClient1,A ;WM_MDIMAXIMIZE
}
return

217:215
05/11/23 21:55:25 w4Ag56cD0
>>216
ご丁寧にありがとうございます!
しかし、<>を=に変更してelse消しても現象は変わらず。
Send, !wtの後にreturn付けても同じでした。
SendMessage使ったやつをコピペでもダメでした。。。orz

とりあえず、子ウィンドウを広げられるだけで満足です。
もしかしてErrorLevelが0になってないのでしょうか?




218:名無しさん@お腹いっぱい。
05/11/23 22:40:29 vpU2R36Y0
大分前に入れた奴なんでバージョン古いけど うちでは上手くいってる

XP SP1
Autohotkey Ver 1.0.38.1
NetStumbler ver 0.3.30

とりあえず MsgboxやOutputDebugでErrorLevelの値見たり
if
msgbox,OK
else
msgbox,NG
とかやって試してみたら?

219:215
05/11/23 23:56:41 w4Ag56cD0
>>218
ちなみに私の環境は
2000 SP4
Autohotkey Ver 1.0.40.06
NetStumbler ver 0.4.0

>とりあえず MsgboxやOutputDebugでErrorLevelの値見たり
そういうやり方があるのですね。

if ErrorLevel = 0
{
msgbox,OK
return
}
else
msgbox,NG
return

↑を試したところ、タイトルバーが青くなる前に
「OK」が出ました。なのでSend, !wtが実行される
のが早過ぎるみたいですね。



220:名無しさん@お腹いっぱい。
05/11/24 01:13:43 YIxfmvQf0
Verupしたね

221:名無しさん@お腹いっぱい。
05/11/24 12:40:50 0jaOpLGO0
>>219
MsgBoxに制御が奪われたからアクティブになれなかったってオチじゃないような?
そこまでつきとめたら Sleepでウェイトいれてやればよろし

222:215
05/11/24 22:05:57 3njavchq0
>>218
>>219
おかげさまで望み通りの動作ができました!
感謝します。

;【NwtStumbler起動】
#7::
IfWinExist, Network Stumbler
{
WinMaximize
WinActivate
return
}
else
run "D:\apli\netstumbler\Network Stumbler\NetStumbler.exe", D:\apli\netstumbler\aplog, max
WinWaitActive, Network Stumbler
if ErrorLevel = 0
{
Sleep, 3000
Send, !wt
return
}
else
return


223:名無しさん@お腹いっぱい。
05/11/26 13:41:58 cSvLT2hD0
LastFoundWindowってWinWaitで機能しないんですか?

224:名無しさん@お腹いっぱい。
05/11/26 20:49:42 ekIkW6EI0
%1%や%2%はコマンドライン引数が分解されて格納されていますが、
コマンドライン引数全体を表す変数はないんでしょうか?

225:名無しさん@お腹いっぱい。
05/11/26 21:01:35 TeG9pCZU0
>>224
引数を「"」で囲めばだいたい解決すると思いますが

Loop, %0%
{
Part := %A_Index%
Unite = %Unite%%Part%%A_Space%
}

MsgBox, "%Unite%"

どうしようもない場面では
「0」に引数の数が入るのでこんなのでどうにかしてます。

226:名無しさん@お腹いっぱい。
05/11/26 21:59:47 m0vUMe840
>FileAppend [, Text, Filename]
>ファイル名の代わりに「*」を指定すると、標準出力にテキストを書き出せる。
URLリンク(lukewarm.s101.xrea.com)

--- test.ahk --------
FileAppend,Hello,*
---------------------
コンパイルしてプロンプトで test と打っても文字は何も表示されない。
test > a.txt とリダイレクトさせるとファイルには正常に出力される、何でだろ?

227:名無しさん@お腹いっぱい。
05/11/26 22:33:10 ekIkW6EI0
A_Indexを1度別の変数に入れちゃえばいいのか。
"でくくられていたかどうかが正確には判断出来ないですけど、
実用上は問題ないですね。
ありがとうございました。

228:名無しさん@お腹いっぱい。
05/11/27 12:34:40 R5M1hxQO0
Send,{LWin Down}やSend,{LWindown}
で押し下げ状態にしたWinキーを元に戻すにはどうすればいいでしょうか?
Send,{LWin Up}やSend,{LWin}とやっても戻りませんでした。

229:名無しさん@お腹いっぱい。
05/11/27 15:26:46 GjCd3Btu0
任意のアプリをタスクバーにボタンを表示しないようにしたいんだけど
Gui,+ToolWindowに相当するものってない?
ウィンドウスタイルを見てもそれらしいのがないっぽい

230:名無しさん@お腹いっぱい。
05/11/27 16:30:10 m61GJs8S0
試してないけど
0x00000080 WS_EX_TOOLWINDOW
あたりは?

231:229
05/11/27 17:10:05 GjCd3Btu0
>>230
見落としてた
しかし、小さいタイトルバーになってAltTabメニューにも表示されなくなるけど
何故かタスクバーには表示されたまま
色んなウィンドウで試してみたけど変わらない

WinSet,ExStyle,^0x00000080,A

232:名無しさん@お腹いっぱい。
05/11/27 20:16:28 RGnUnyxH0
ひらがなカタカナキ-にaltを割り当てたいのですが

*vkF2::Send,{alt Down}
*vkF2 up::Send,{alt Up}

とするとaltが押しっぱなしになってしまいます
仮想キー押し上げにコマンドを割り当てることは出来ないのでしょうか?

233:名無しさん@お腹いっぱい。
05/11/28 08:04:43 QtDqyH5O0
TListViewの情報を取得するにはどうしたらいいでしょうか?
ContrloGetのListはSysListVew32のようですし

234:名無しさん@お腹いっぱい。
05/11/28 20:15:46 S9ZDzThA0
コマンドライン引数の取得の仕方がわかったので書いておきます。

GetArgs()
{
args := DllCall("GetCommandLine", str)
StringGetPos, pos, args, %A_ScriptName%
StringLen, length, A_ScriptName
count := pos + length + 1
StringTrimLeft, args, args, count
return args
}

args := GetArgs()
MsgBox, %args%

235:名無しさん@お腹いっぱい。
05/11/28 20:24:26 bOHdUc5Q0
トンクス
いただいた。

236:名無しさん@お腹いっぱい。
05/12/04 00:40:06 Boevp9qL0
解説サイトの説明が糞だな。
窓使いの憂鬱も分かりづらくて導入しにくいところがあったが
こっちはさらダメダメ。アホか。

流行らせる気全然ね〜だろ。ぼけだろ。

237:名無しさん@お腹いっぱい。
05/12/04 00:58:39 vf5AX1eU0
236がアホでぼけで理解力がダメダメなのはわかった

238:名無しさん@お腹いっぱい。
05/12/04 01:06:12 ziZg2yDd0
単に翻訳してるだけだし
その労苦だけでもありがたいと思うけどね

239:233
05/12/04 01:53:09 c5I9hufm0
WinAPIやWindowMessageもできるだけ調べましたが、未だに解決できません

TListViewの情報取得は無理でしょうか?

240:名無しさん@お腹いっぱい。
05/12/04 11:08:29 MlVaVrV10
>239
TListView って SysListView32 のサブクラスっぽいからそのまま使えるんじゃない?

241:233
05/12/04 11:20:41 c5I9hufm0
>>240
もちろん試しました
SysListView32のところでは取得できたので記述が間違っているってことはないと思います

WindowMessageのLVM_xxxxで色々操作できるみたいなんですが、テキストは取得できないみたいで・・・

242:名無しさん@お腹いっぱい。
05/12/04 11:21:34 t+Kdt+4/0
まだ悩んでいたのかよ
ListVewのこたしらんがTEDITもEditコントロールとして認知、制御できるし
ControlGetで取れる名称がSysListVew32だっつうなら
その名を指定してやれば情報は取れるだろ。

243:名無しさん@お腹いっぱい。
05/12/04 11:22:58 t+Kdt+4/0
できないのか、
ならGontrolGetTextでは?

244:233
05/12/04 11:27:01 c5I9hufm0
>>242
Contolの引数のことろにTListViewではなくSysListVew32を指定するってことですか?
もちろんやってみましたが無理のようです

245:233
05/12/04 11:29:30 c5I9hufm0
>>243
それも試しました
いくつかのアプリで試しているので取得したいアプリが特殊という可能性は低いと思います

246:233
05/12/04 19:16:26 c5I9hufm0
VarSetCapacity(LvItem,52,0)
InsertInteger(1,LvItem,0)
InsertInteger(0,LvItem,4)
InsertInteger(0,LvItem,8)
InsertInteger(&pszText,LvItem,20)
InsertInteger(100,LvItem,24)
SendMessage,0x1005,0,&LvItem,TListView1,A
Msgbox,%pszText%

URLリンク(yokohama.cool.ne.jp)
ここを参考にしましたが
これでいけると思ったけど駄目でした
InsertInteger()関数は書いてあります

エラー内容
モジュール 'comctl32.dll' のアドレス 5ABBD830 でアドレス 00D15714 に対する読み込み違反がおきました。

構造体は素人なので見よう見まねで書いてみましたが
どこかおかしいでしょうか?

247:名無しさん@お腹いっぱい。
05/12/04 20:11:58 t+Kdt+4/0
AHKは万能なソフトってわけでもないのでそれだけ努力してダメなら無理なのかもしらんね
とりあえず半端なレスして悪かった。

248:233
05/12/04 20:29:14 c5I9hufm0
>>247
>とりあえず半端なレスして悪かった

いえいえ

>AHKは万能なソフトってわけでもないので

もしどうしても駄目なら他のソフトやスクリプトを通してでも取得したいのですが・・・
どなかたお知恵をお貸しください


249:名無しさん@お腹いっぱい。
05/12/04 20:39:34 LHEUZAAE0
単に別プロセスのメモリー読もうとしてるからエラー出てるのでは?
TListViewはListView用のLVM_〜が使えた気がする

250:233
05/12/04 20:47:32 c5I9hufm0
>>249
>TListViewはListView用のLVM_〜が使えた気がする

そうです、使えるようです。
実際LVM_GETITEMCOUNTでアイテム数は取得できますし。
>>246のリンク先にもありますが、SendMessageの0x1005はLVM_GETITEMのことです

>単に別プロセスのメモリー読もうとしてるからエラー出てるのでは?

これについては自分にはよくわからないです

251:名無しさん@お腹いっぱい。
05/12/04 21:06:52 OzfEcy140
>>250
VirtualAllocEx MapViewOfFile
を駆使すれば取得できるが面倒

252:名無しさん@お腹いっぱい。
05/12/04 21:09:06 LHEUZAAE0
LVM_GETITEMCOUNTはSendMessageの戻り値がそのままアイテム数だから問題ないけど
LVM_GETITEMはLVITEMのポインタをLPARAMで渡してそこに情報を書き込んでもらう奴だから
LVITEM*が指すメモリーを共有メモリにするか、SendMessageする側でフックをかけてプロセスに割り込まないといけない
共有メモリー使う方法は URLリンク(techtips.belution.com) あたりを参考にすれば出来るかな

253:233
05/12/04 21:10:52 c5I9hufm0
>>251-252
ありがとうございます
とりあえず提示されたものを頑張って調べてみます

254:233
05/12/05 12:27:58 pnvrA0j10
色々やってみたんですが、行き詰っています

URLリンク(techtips.belution.com)
これってメモリアドレスから変数を参照できないと無理なのでは?
まだ調べ始めて1日なので何か勘違いしてるだけのような気もしますが

255:名無しさん@お腹いっぱい。
05/12/05 12:48:04 yS+6IGXX0
gui,add,edit,vtitle R1 W300
gui,show
return

こんな感じでエディットボックスを作ってるんですが、日本語入力すると確定するまで表示されません。
普通に変換中に表示されるようには出来ないのでしょうか?何かオプションがあるのかな?

256:名無しさん@お腹いっぱい。
05/12/05 12:55:38 stKSCaAE0
>>255
うちで使ってる簡単なもの。これで試して駄目だったらなんかIMEとかに問題ありそうな。

#NoTrayIcon
#SingleInstance
Gui, Add, Edit, vSrc X Y W210
Gui, Add, Button, Default gSrc x+6 ys-2, &Search
Gui, Show, , Amazon検索
return
Src:
Gui, Submit
Run, URLリンク(www.amazon.co.jp)
ExitApp
GuiEscape:
GuiClose:
ExitApp


257:名無しさん@お腹いっぱい。
05/12/05 13:30:59 fH9XPvqW0
>>255
うちでは普通にでるけどなぁ・・・
win2ksp4 Atok16 MSIME2k どっちもOK

258:名無しさん@お腹いっぱい。
05/12/05 13:33:22 fH9XPvqW0
いちおう追記、AHK v1.0.40.05

259:255
05/12/05 15:14:33 yS+6IGXX0
>>256
>>257
ありがとうございます。早速試しましたが、やはりうまく表示されません。
例えば  わたしは と打つと w しか表示されないです。
Returnを押すと、わたしは と表示されます
Version 1.0.40.10をいれてみましたが、症状はかわらず。
どーもうちのIMEの不具合か、設定の問題かもしれません。
ちなみにAHK以外の日本語入力は不具合ありません。

260:名無しさん@お腹いっぱい。
05/12/05 15:38:36 N0kdWIqG0
>>259
OSの種類とIMEのバージョンや設定(ナチュラルインプットとか詳細サービスとか)書いたら?
解決したかったら人任せじゃだめだよ

261:255
05/12/05 16:21:24 ONVNYKfr0
情報が足らず申し訳ありませんでした。

Windows Xp pro sp1
AHK Version 1.0.40.10
Microsoft IME Standard 2002 ver. 8.1
詳細なテキスト サービスをオフにするにチェック
IME Watcherを使用
英字を常に半角で変換以外は設定をいじってません。

英語圏のソフトなのでこういう仕様なのかと思っていました。
我が家のPCの問題のようですので自力でがんばります。
皆様のお手を煩わせてほんとに申し訳なかったです。すみませんでした。

262:233
05/12/06 00:06:41 zKABzlSJ0
何度もすみません
やっぱり自分には無理のようです・・・

とういうか、>>252のURLの内容とほぼ同じものが
URLリンク(www.yoshibaworks.com)
に載っているんですが、同じサイトの
URLリンク(www.yoshibaworks.com)
をダウンロードして使ってみたところTListViewは取得できませんでした
下のURLのアプリは上のソースコードとは仕組みが違うのかもしれませんが


自分にとってTListViewが取得できることによってAHKはかなり便利になると思います
ずうずうしいようですが、TListViewを取得できるものが誰かの手によって書かれるのを期待します
もちろん自分でもこれからもチャレンジしていきたいと思います


263:名無しさん@お腹いっぱい。
05/12/06 00:11:30 BfjYx7dY0
TlistViewってそもそも何?


264:260
05/12/06 00:20:18 061B1eK40
>>261
俺も>>256を試したら同じ現象が起きた
XP HOME SP2
IME2002でIME Watcherは使ってない

今さらで悪いけど、むかし同じ現象が出て
InputBoxを使って回避した気がする。忘れてた…
その時は、会社のマシンだったから割と起こりやすい現象みたい

265:名無しさん@お腹いっぱい。
05/12/06 00:28:05 +pinJF560
>>262
ぱっとソースを見た感じクラスがListView32じゃないと動作しないように書いてある
これ→if ( strcmp(szClassName, WC_LISTVIEW) == 0 ) {
確かTListViewはクラス名が違ったと思う


266:233
05/12/06 00:30:50 zKABzlSJ0
>>265
ということは>>262のソースを再現すればAHKでも実現できるわけですね
少し希望が湧いてきました

267:255
05/12/06 20:02:45 BjDsaEX90
exeファイルにして、友達のPCで試してもらいました。
買ったままいじってないWinxp home sp2
やはり同じように入力がおかしかったようです。
これは、エディットボックス自体の不具合かな。あきらめてほかの方法をとることにします。

268:名無しさん@お腹いっぱい。
05/12/06 22:19:27 cuFKTqtn0
InsertInteger(pInteger, ByRef pDest, pOffset = 0, pSize = 4)
; To preserve any existing contents in pDest, only pSize number of bytes starting at pOffset
; are altered in it. The caller must ensure that pDest has sufficient capacity.
{
  mask := 0xFF ; This serves to isolate each byte, one by one.
  Loop %pSize% ; Copy each byte in the integer into the structure as raw binary data.
  {
    DllCall("RtlFillMemory", UInt, &pDest + pOffset + A_Index - 1, UInt, 1 ; Write one byte.
      , UChar, (pInteger & mask) >> 8 * (A_Index - 1)) ; This line is auto-merged with above at load-time.
    mask := mask << 8 ; Set it up for isolation of the next byte.
  }
}

ExtractInteger(ByRef pSource, pOffset = 0, pIsSigned = false, pSize = 4)
{
  SourceAddress := &pSource + pOffset ; Get address and apply the caller's offset.
  result := 0 ; Init prior to accumulation in the loop.
  Loop %pSize% ; For each byte in the integer:
  {
    result := result | (*SourceAddress << 8 * (A_Index - 1)) ; Build the integer from its bytes.
    SourceAddress += 1 ; Move on to the next byte.
  }
  if (!pIsSigned OR pSize > 4 OR result < 0x80000000)
    return result ; Signed vs. unsigned doesn't matter in these cases.
  ; Otherwise, convert the value (now known to be 32-bit) to its signed counterpart:
  return -(0xFFFFFFFF - result + 1)
}

269:名無しさん@お腹いっぱい。
05/12/06 22:21:14 cuFKTqtn0

GetListViewText(hListView, iItem, iSubItem, ByRef lpString, nMaxCount)
{
  ;const
  NULL = 0
  PROCESS_ALL_ACCESS = 0x001F0FFF
  INVALID_HANDLE_VALUE = 0xFFFFFFFF
  PAGE_READWRITE = 4
  FILE_MAP_WRITE = 2
  MEM_COMMIT = 0x1000
  MEM_RELEASE = 0x8000
  LV_ITEM_mask = 0
  LV_ITEM_iItem = 4
  LV_ITEM_iSubItem = 8
  LV_ITEM_state = 12
  LV_ITEM_stateMask = 16
  LV_ITEM_pszText = 20
  LV_ITEM_cchTextMax = 24
  LVIF_TEXT = 1
  LVM_GETITEM = 0x1005
  SIZEOF_LV_ITEM = 0x28
  SIZEOF_TEXT_BUF = 0x104
  SIZEOF_BUF = 0x120
  SIZEOF_INT = 4
  SIZEOF_POINTER = 4

  ;var
  result := 0
  hProcess := NULL
  dwProcessId := 0

270:名無しさん@お腹いっぱい。
05/12/06 22:21:36 cuFKTqtn0
  if lpString <> NULL && nMaxCount > 0
  {
    DllCall("lstrcpy", Str,lpString, Str,"")
    DllCall("GetWindowThreadProcessId", UInt,hListView, UIntP,dwProcessId)
    hProcess := DllCall("OpenProcess", UInt,PROCESS_ALL_ACCESS, Int,false, UInt,dwProcessId)
    if hProcess <> NULL
    {
      ;var
      lpProcessBuf := NULL
      hMap := NULL
      hKernel := DllCall("GetModuleHandle", Str,"kernel32.dll", UInt)
      pVirtualAllocEx := DllCall("GetProcAddress", UInt,hKernel, Str,"VirtualAllocEx", UInt)
  
      if pVirtualAllocEx == NULL
      {
        hMap := DllCall("CreateFileMapping", UInt,INVALID_HANDLE_VALUE, Int,NULL, UInt,PAGE_READWRITE, UInt,0, UInt,SIZEOF_BUF, UInt)
        if hMap <> NULL
          lpProcessBuf := DllCall("MapViewOfFile", UInt,hMap, UInt,FILE_MAP_WRITE, UInt,0, UInt,0, UInt,0, UInt)
      }
      else
      {
        lpProcessBuf := DllCall("VirtualAllocEx", UInt,hProcess, UInt,NULL, UInt,SIZEOF_BUF, UInt,MEM_COMMIT, UInt,PAGE_READWRITE)
      }


271:名無しさん@お腹いっぱい。
05/12/06 22:22:07 cuFKTqtn0
      if lpProcessBuf <> NULL
      {
        ;var
        VarSetCapacity(buf, SIZEOF_BUF, 0)

        InsertInteger(LVIF_TEXT, buf, LV_ITEM_mask, SIZEOF_INT)
        InsertInteger(iItem, buf, LV_ITEM_iItem, SIZEOF_INT)
        InsertInteger(iSubItem, buf, LV_ITEM_iSubItem, SIZEOF_INT)
        InsertInteger(lpProcessBuf + SIZEOF_LV_ITEM, buf, LV_ITEM_pszText, SIZEOF_POINTER)
        InsertInteger(SIZEOF_TEXT_BUF, buf, LV_ITEM_cchTextMax, SIZEOF_INT)
        
        if DllCall("WriteProcessMemory", UInt,hProcess, UInt,lpProcessBuf, UInt,&buf, UInt,SIZEOF_BUF, UInt,NULL) <> 0
          if DllCall("SendMessage", UInt,hListView, UInt,LVM_GETITEM, Int,0, Int,lpProcessBuf) <> 0
            if DllCall("ReadProcessMemory", UInt,hProcess, UInt,lpProcessBuf, UInt,&buf, UInt,SIZEOF_BUF, UInt,NULL) <> 0
            {
              DllCall("lstrcpyn", Str,lpString, UInt,&buf + SIZEOF_LV_ITEM, Int,nMaxCount)
              result := DllCall("lstrlen", Str,lpString)
            }
      }

272:名無しさん@お腹いっぱい。
05/12/06 22:22:41 cuFKTqtn0
      if lpProcessBuf <> NULL
        if pVirtualAllocEx <> NULL
          DllCall("VirtualFreeEx", UInt,lpProcessBuf, UInt,0, UInt,MEM_RELEASE)
        else
          DllCall("UnmapViewOfFile", UInt,lpProcessBuf)
      if hMap <> NULL
        DllCall("CloseHandle", UInt,hMap)
  
      DllCall("CloseHandle", UInt,hProcess)
    }
  }
  return result
}


273:名無しさん@お腹いっぱい。
05/12/06 22:23:18 cuFKTqtn0

;const
MAX_TEXT = 260

;var
iItem := 0
iSubItem := 0
x := 0
y := 0

VarSetCapacity(szText, MAX_TEXT, 0)
VarSetCapacity(szClass, MAX_TEXT, 0)
VarSetCapacity(point, 8, 0)
DllCall("GetCursorPos", Str,point)
x := ExtractInteger(point, 0, true, 4)
y := ExtractInteger(point, 4, true, 4)
hListView := DllCall("WindowFromPoint", Int,x, Int,y)
DllCall("GetClassName", UInt,hListView, Str,szClass, Int,MAX_TEXT)
if DllCall("lstrcmpi", Str,szClass, Str,"SysListView32") == 0 || DllCall("lstrcmpi", Str,szClass, Str,"TListView") == 0
{
  GetListViewText(hListView, iItem, iSubItem, szText, MAX_TEXT)
  Msgbox, %szText%
}
return

274:233
05/12/06 22:52:52 oOmblgWA0
すごい!感動しました!
感謝してもしきれないです
本当にありがとうございます

275:名無しさん@お腹いっぱい。
05/12/07 00:24:52 +IISIZwk0
引数が足りなかった
DllCall("VirtualFreeEx", UInt,hProcess, UInt,lpProcessBuf, UInt,0, UInt,MEM_RELEASE)

276:名無しさん@お腹いっぱい。
05/12/07 00:33:06 WQOB4lVi0
>>233
具体的にどういう使い方をするのかちょっと興味あるんだけど、教えてくんない?

277:233
05/12/07 16:47:00 Fl/Gr8/X0
>>275
普通に動いてたので気づきませんでした
どちらにしても感謝です

>>276
ここまでしてもらってなんですが、ご勘弁を


278:名無しさん@お腹いっぱい。
05/12/07 16:57:01 x7hOLdd40
>>277
エロDVDのタイトルの整理か何かですか?

279:名無しさん@お腹いっぱい。
05/12/07 23:01:34 SL+OhssX0
匿名掲示板で詳しく言えないって事は犯罪絡みか

280:名無しさん@お腹いっぱい。
05/12/07 23:29:33 EMbBN43/0
それか業務がらみとか

281:名無しさん@お腹いっぱい。
05/12/08 01:24:26 kFp6FhOt0
変数一覧のところの一番上に

0[1 of 1]: 0

ってのが必ずあるんだけどこれって何?

282:名無しさん@お腹いっぱい。
05/12/08 19:29:26 tAZLc0Al0
コマンドライン引数の奴

283:281
05/12/08 19:30:54 kFp6FhOt0
>>282
あ、なるほど

284:名無しさん@お腹いっぱい。
05/12/10 23:31:57 8fYJs8aX0
質問なのですが、このソフトでIME起動時に全角文字を入力として挿入することは
比較的楽に出来ますでしょうか?

なにがしたいかと言いますと、自分はIMEは「かな入力」の人間でして、
チャット等の、通常会話に近い文を書いてる時は、!や?が、かな文字と
同じくらいの平易さで出現するのですが、かな入力ですと、入力するのが
ちょっと面倒なのです(かな/英数を切り替えてからShift+1で再びかな/英数など)
そこで、IME(ATOK2005)が起動している時は、かな入力状態でも
[Shift]+[1]で“!”を、[Shift]+[/]で“?”を入力出来るようにしたいのですが、
そう言ったことは可能でしょうか?

自分の程度としましては、DOS3からなのでbatは書けますがvbsは読んで修正するのが精一杯、
サイトの引っ越しでUWSCでIEを半自動実行で転記させる50行×8本くらいのサブルーチンを
書いた程度で、最近は正規表現がなんとか使えてきて楽しいというようなレベルです。

外国産みたいなので、IMEの起動を検知できるのかと、起動したIMEに文字を直接送ることが
出来るのかがネックかなと思っているのですが…

よろしくお願いします。

285:名無しさん@お腹いっぱい。
05/12/11 00:22:31 XJ0qF38r0
> そう言ったことは可能でしょうか?
可能

それと、おまえのレベルなんて知ったこっちゃない
このソフトが使えないレベルなら他を当たれ
使えるなら勝手にしろ
といっても、流行らせるページ見ればこの程度バカでも出来るがな

ソフトに限ったことじゃないが、便利なものを使いたければ
それに応じた実力(知識や技術など)を身につけろってこった

286:名無しさん@お腹いっぱい。
05/12/11 00:39:49 apES3Z+g0
まぁ要望を長々と書いたところで、マジメに読んでもらえる訳が無い。

がんばればアンタでもできるんじゃねーの?としか言いようが無い。

287:名無しさん@お腹いっぱい。
05/12/11 00:59:00 78+mCWVm0
つーか俺なら変換キー連打で解決するね

288:名無しさん@お腹いっぱい。
05/12/11 01:23:09 LXjhHQ7b0
辞書登録で1→! 0→?(テンキーを使っているなら)とか
ぬ→! め→? とでも登録した方が分かりやすい上に
てっとり早いんじゃないか?

289:名無しさん@お腹いっぱい。
05/12/11 01:27:32 78+mCWVm0
>>288
>>287

290:284
05/12/11 13:39:45 OA29yvnX0
お返事ありがとうございます。
ソフトによっては、ユーザー側に有る程度の素養が要求されると思いますので、
現実的に見て、自分のレベルで作業するのに問題が無いか、
取り組む前に確認させて貰いたかったのですが、スレの空気を乱す発言になった
ようで、すみませんでした。

お返事を見る限り、無理な要求という感触では無いようですので、
参考にさせていただいて、検討いたします。

291:名無しさん@お腹いっぱい。
05/12/11 13:46:13 n6eRmNGz0
とりあえずお前が人のアドバイスを試す気がないカスなのは分かった

292:名無しさん@お腹いっぱい。
05/12/11 13:48:53 2lWo/Yh80
プッ

293:名無しさん@お腹いっぱい。
05/12/11 20:13:50 /OTbplQs0
しばらく過疎ってる間にえらく空気悪くなってるな
>>290
IME制御に関しては過去何度か話題に上がってるので調べてみれ
なまず氏が自分とこのブログで最近とりあげてたし

294:名無しさん@お腹いっぱい。
05/12/13 00:21:18 sRReWFce0
URLリンク(www.tamanegi.org)
ここのmigemo-isearchってAHKでできます?
dllのことはよくわからないんですが、これに入ってるのをDllCallすれば可能?

295:名無しさん@お腹いっぱい。
05/12/13 03:10:20 UEU0KJ8o0
もうある

296:名無しさん@お腹いっぱい。
05/12/13 13:57:25 sRReWFce0
>>295
本当ですか?
一応「migemo ahk」「migemo autohotkey」などで検索しても見つかりませんでした

297:名無しさん@お腹いっぱい。
05/12/13 14:41:54 DtKvDaaE0
流行らせるページにある奴じゃないのかな。

298:名無しさん@お腹いっぱい。
05/12/13 14:47:52 sRReWFce0
>>297
ありました
これ昔からありましたっけ?

299:294
05/12/13 17:20:20 sRReWFce0
これをブラウザで使うやり方がさっぱりわからない・・・・

そもそもサンプルが上手く動かないです
例えば「a」と打つと「シリアス」だけがマッチ(他にもaはたくさんあるのに)
どんな文字でも2文字目を打つと何も表示されず
意味がよくわからないです

300:294
05/12/13 17:39:57 sRReWFce0
自分でlist=を作ってやってみましたが
アルファベットだけがマッチ
漢字・ひらがな・カタカナ全滅

私が何かをすごく勘違いしてる気がしますが・・・・

301:294
05/12/13 17:52:44 sRReWFce0
ただ単に辞書パスが違っているというアホな間違いでした
すみません

でもブラウザで使うやり方は未だわからず

302:名無しさん@お腹いっぱい。
05/12/13 18:03:09 DtKvDaaE0
いつから日記スレになったんだ

303:294
05/12/13 18:05:03 sRReWFce0
>>302
本当にスレ汚しすみません

304:名無しさん@お腹いっぱい。
05/12/13 18:05:04 JxXQO2OP0
さっさと消えろよ、うざいなぁ。

305:名無しさん@お腹いっぱい。
05/12/13 18:23:00 McRsgk3+0
なんか最近スレの空気悪いなぁ。

っていうかmigemoの存在を初めて知った。
ちょっと感動。

流行らせるページのスクリプト見てみたけど
>>294と同じ機能をAHKからブラウザで使うのは無理じゃね?

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

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

307:名無しさん@お腹いっぱい。
05/12/13 22:44:18 tDGCBqUo0
>>304
お前が消えろよ

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

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

309:名無しさん@お腹いっぱい。
05/12/14 12:55:41 RrhosKDn0
今現在、Win用・繭不要でmigemo対応のブラウザは

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

Bagel
Firefox  ※XUL/Migemo
Sylera2

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

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


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

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

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

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

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

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

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

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

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

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

318:名無しさん@お腹いっぱい。
05/12/15 18:13:10 RHa3zC2W0
Jane作者に要望だせば?

319:名無しさん@お腹いっぱい。
05/12/15 22:56:34 3cBKpG8E0
>>294にあるdll使って

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

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


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

URLリンク(www.vector.co.jp)
これを使って呼び出そうとしましたが、上手くいきません

321:名無しさん@お腹いっぱい。
05/12/19 17:50:39 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
05/12/19 17:53:49 T6Ojlipz0
>>321
自分もほぼ同じ記述です

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

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

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

325:名無しさん@お腹いっぱい。
05/12/20 15:28:39 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
05/12/20 15:35:13 yg2tqewb0
>>325
なるほど、そうやるんですね
勉強になりました

ありがとうございます

327:名無しさん@お腹いっぱい。
05/12/20 15:41:31 6fVVhLVx0
これみてピンとキタ━(゚∀゚)━ヨ。
URLリンク(lukewarm.s101.xrea.com)

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


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

328:320
05/12/20 15:44:01 yg2tqewb0
>>327
そこには目を通していたはずなのに実行してみなかった自分が恥ずかしいです

329:名無しさん@お腹いっぱい。
05/12/20 15:45:24 6fVVhLVx0
>>327
URLリンク(lukewarm.s101.xrea.com)
だった・・

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

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

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

332:名無しさん@お腹いっぱい。
05/12/20 16:59:12 f5Fr+yX00
Ctrl+Alt+Delを無効にしようと思うんだけど

^!Del::return

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

333:332
05/12/20 17:22:32 f5Fr+yX00
もっとよく調べてから質問すればよかった・・・

URLリンク(nienie.com)
コンパイルする環境にないのでコンパイル済を探しているところ
・・・ってこれはスレ違いか

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

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

336:名無しさん@お腹いっぱい。
05/12/22 16:11:43 7k5DRGNJ0
335の言うとおり。どれほど危険かわかっていってんのかね。

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

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

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


340:名無しさん@お腹いっぱい。
05/12/22 22:47:41 1UNMjvMz0
乱数が必要なときどうしてます?

341:名無しさん@お腹いっぱい。
05/12/22 23:14:28 mI5CV1Yi0
Random使ってますが

342:名無しさん@お腹いっぱい。
05/12/22 23:14:55 MS28PmO/0
Random, OutputVar [, Min, Max]

343:340
05/12/22 23:16:16 1UNMjvMz0
関数の方で探してましたorz

344:名無しさん@お腹いっぱい。
05/12/22 23:26:11 1UNMjvMz0
もしかして16進数←→10進数もあったりする?

345:名無しさん@お腹いっぱい。
05/12/23 00:08:10 6+7NW5wO0
>>344
ある。探し方が下手なだけだと思う。

346:名無しさん@お腹いっぱい。
05/12/23 00:24:43 HDLrFyls0
>>345
ありました
SetFormatですね

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

347:名無しさん@お腹いっぱい。
05/12/23 17:22:00 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:名無しさん@お腹いっぱい。
05/12/23 19:43:26 JrNibnEe0
あーなんか昔クリップボード拡張ソフトのスレでそれっぽいの見たような記憶が
今ちと忙しくて過去ログ探してる暇がないが
Charu3起動するとフォーカス関係がおかしくなる奴

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

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

351:名無しさん@お腹いっぱい。
05/12/24 00:50:55 qmuEaf2G0
最強クリップボード拡張ソフトはこれだ!Part5
スレリンク(win板:371-383番)
CharuシリーズサポートBBSの下のほう
XPでフォアグラウンドアクティブできなくなるのですが…
URLリンク(8537.teacup.com)

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

352:名無しさん@お腹いっぱい。
05/12/29 13:16:24 kRbce90V0
age

353:347
06/01/02 13:16:01 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
06/01/02 13:23:01 ECSj1xL10
続き

参考にしたのは↓のサイト
URLリンク(www.sxlist.com)

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

長文スマンね。

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

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

356:名無しさん@お腹いっぱい。
06/01/03 12:14:30 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%


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5366日前に更新/298 KB
担当:undef