[表示 : 全て 最新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

258 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/05(月) 13:33:22 ID:fH9XPvqW0]
いちおう追記、AHK v1.0.40.05

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

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

261 名前:255 mailto:sage [2005/12/05(月) 16:21:24 ID:ONVNYKfr0]
情報が足らず申し訳ありませんでした。

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

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

262 名前:233 mailto:sage [2005/12/06(火) 00:06:41 ID:zKABzlSJ0]
何度もすみません
やっぱり自分には無理のようです・・・

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


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


263 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/06(火) 00:11:30 ID:BfjYx7dY0]
TlistViewってそもそも何?


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

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

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


266 名前:233 mailto:sage [2005/12/06(火) 00:30:50 ID:zKABzlSJ0]
>>265
ということは>>262のソースを再現すればAHKでも実現できるわけですね
少し希望が湧いてきました



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

268 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/06(火) 22:19:27 ID: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 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/06(火) 22:21:14 ID: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 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/06(火) 22:21:36 ID: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 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/06(火) 22:22:07 ID: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 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/06(火) 22:22:41 ID: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 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/06(火) 22:23:18 ID: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 mailto:sage [2005/12/06(火) 22:52:52 ID:oOmblgWA0]
すごい!感動しました!
感謝してもしきれないです
本当にありがとうございます

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

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



277 名前:233 mailto:sage [2005/12/07(水) 16:47:00 ID:Fl/Gr8/X0]
>>275
普通に動いてたので気づきませんでした
どちらにしても感謝です

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


278 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/07(水) 16:57:01 ID:x7hOLdd40]
>>277
エロDVDのタイトルの整理か何かですか?

279 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/07(水) 23:01:34 ID:SL+OhssX0]
匿名掲示板で詳しく言えないって事は犯罪絡みか

280 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/07(水) 23:29:33 ID:EMbBN43/0]
それか業務がらみとか

281 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/08(木) 01:24:26 ID:kFp6FhOt0]
変数一覧のところの一番上に

0[1 of 1]: 0

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

282 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/08(木) 19:29:26 ID:tAZLc0Al0]
コマンドライン引数の奴

283 名前:281 mailto:sage [2005/12/08(木) 19:30:54 ID:kFp6FhOt0]
>>282
あ、なるほど

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

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

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

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

よろしくお願いします。

285 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/11(日) 00:22:31 ID:XJ0qF38r0]
> そう言ったことは可能でしょうか?
可能

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

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

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

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



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

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

289 名前:名無しさん@お腹いっぱい。 [2005/12/11(日) 01:27:32 ID:78+mCWVm0]
>>288
>>287

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

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

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

292 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/11(日) 13:48:53 ID:2lWo/Yh80]
プッ

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

294 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/13(火) 00:21:18 ID:sRReWFce0]
ttp://www.tamanegi.org/prog/mayu-plugins/
ここのmigemo-isearchってAHKでできます?
dllのことはよくわからないんですが、これに入ってるのをDllCallすれば可能?

295 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/13(火) 03:10:20 ID:UEU0KJ8o0]
もうある

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



297 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/13(火) 14:41:54 ID:DtKvDaaE0]
流行らせるページにある奴じゃないのかな。

298 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/13(火) 14:47:52 ID:sRReWFce0]
>>297
ありました
これ昔からありましたっけ?

299 名前:294 mailto:sage [2005/12/13(火) 17:20:20 ID:sRReWFce0]
これをブラウザで使うやり方がさっぱりわからない・・・・

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

300 名前:294 mailto:sage [2005/12/13(火) 17:39:57 ID:sRReWFce0]
自分でlist=を作ってやってみましたが
アルファベットだけがマッチ
漢字・ひらがな・カタカナ全滅

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

301 名前:294 mailto:sage [2005/12/13(火) 17:52:44 ID:sRReWFce0]
ただ単に辞書パスが違っているというアホな間違いでした
すみません

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

302 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/13(火) 18:03:09 ID:DtKvDaaE0]
いつから日記スレになったんだ

303 名前:294 mailto:sage [2005/12/13(火) 18:05:03 ID:sRReWFce0]
>>302
本当にスレ汚しすみません

304 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/13(火) 18:05:04 ID:JxXQO2OP0]
さっさと消えろよ、うざいなぁ。

305 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/12/13(火) 18:23:00 ID:McRsgk3+0]
なんか最近スレの空気悪いなぁ。

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

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

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






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

前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