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


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

Win32API質問箱 Build54



1 名前:デフォルトの名無しさん [2007/06/12(火) 19:59:25 ]
スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんやお姉さんたちが答えてくれるかも。

過去スレ、関連リンクは>>2-5くらい。

■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。英語版(msdn.microsoft.com/library/)の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで

477 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 11:38:45 ]
ぎゃくりんで変換されないんですけど本当はなんて読むんですか

478 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 11:39:16 ]
ぎゃくうろこ

479 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 11:44:47 ]
>>477
「逆鱗」で検索すれば判ると思いますよ。

480 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 11:54:18 ]
>>477
メモ帳にコピペして「変換」キーを押せば分かる。

481 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 12:12:12 ]
C#をつかってます。
ユーザーさんからあるAPIでEntryPointNotFoundExceptionがでるって報告があがりました。
まあぶっちゃけILCreateFromPath なわけなんですが
MSDNには

Minimum operating systems Windows 2000

とあって、そのユーザーさんはスクショからみるにXPなんです。
うちのXPでは動いてるんですが、ありえるんでしょうかこんなこと。
私がしでかした間抜けで不可解な未知のバグの可能性と、
その人のshell32.dllがぶっこわれてる可能性と
どっちが高いでしょうか?

482 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 12:17:01 ]
ジャンクション(フォルダへのシンボリックリンク)内にあるファイルの実体のpathを
取得する方法を教えてください。

483 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 12:24:47 ]
僕ハッカー

484 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 13:08:03 ]
Win98でもXPに見せることはできる

485 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 13:24:48 ]
>>482
DeviceIoControl使えば取得できる。




486 名前:デフォルトの名無しさん [2007/06/30(土) 15:06:27 ]
PROCESS_INFORMATIONの、dwProcessIdか、dwThreadIdからウィンドウハンドルを求めたいんですが、
方法ありますでしょうか、情報ありましたらよろしくお願いします。

487 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 15:14:18 ]
ものすごくありふれた情報だけどググったの?

488 名前:デフォルトの名無しさん [2007/06/30(土) 15:55:36 ]
スレも検索してないだろ。昨日か一昨日見たぞ

489 名前:486 [2007/06/30(土) 17:59:00 ]
コメントありがとう御座います。
ひととおり検索はしてみたのですが情報が多く期待した情報が見つけることが出来ませんでした。
できましたら、検索キーワードだけでも教えていただけないでしょうか。
よろしくお願いします。


490 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 18:03:09 ]
具体的に何で何を検索したのか言ってみろよ

491 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 18:13:23 ]
>>489
えぇ〜!?どんだけ〜(ry

492 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 19:04:48 ]
>>489
>>223

493 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 19:47:12 ]
385じゃね

494 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 20:07:09 ]
>>489
なんでお前の代わりに俺がスレを読み直さないといけないんだ?
やることはわかってんのに、なんで自分でやらないの?

495 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 20:25:57 ]
無知の無知に愛の鞭



496 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 20:28:45 ]
>>485
どうもありがとうございます。これから調べてみます。


497 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 21:22:24 ]
>>481
エントリポイント名を ILCreateFromPathW に変えてみる、とか。
家のXP SP2のshell32.dllはA、W、無し(=W)と3つエクスポートされてるけどなあ。

498 名前:486 [2007/06/30(土) 21:29:04 ]
さくっと、検索キーワード教えて頂けませんでしょうか。


499 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 21:32:29 ]
PID2HWND これでぐぐればおkじゃん?

500 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 05:29:22 ]
うぜーから放置で

501 名前:デフォルトの名無しさん [2007/07/01(日) 09:39:03 ]
DllMain の DLL_PROCESS_ATTACH でLoadLibraryしたら×
DllMain の DLL_PROCESS_DETACH でFreeLibraryしたら×
とMSDNにあります。
Dllの利用元に処理をしてもらうわけでなく、何かの関数を呼んでもらうわけでなく、
DllのATTACH時に別のDllを動的にLoadLibrary〜初期処理、DETACH時にそのLoadしたDllを終了処理〜FreeLibrary
する実装の代替案ってどういうふうに書いたらいいですか?
設定ファイルにかかれたDllファイル名からを動的にDllから読み込んで、
前処理しておいて、設定毎に処理を変更する動作をつくりたいんです。
いまのところATTACH時にLoadLibraryして、DETACH時にFreeLibraryするのを作ったんですが
問題がでてないんですけど、MSDNにすんなってかいてあるんで・・・。
初めてDLLのなにかの関数が呼ばれたときにLoadLibrary〜前処理するってのは無しで。

502 名前:デフォルトの名無しさん [2007/07/01(日) 09:55:13 ]
やっぱ初めてDLLのなにかの関数が呼ばれたときにLoadLibrary〜前処理するってのは有りで。

503 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 09:56:56 ]
確か他のDLLが初期化途中だとループする可能性があるから駄目なんだったかな

A初期化中にBをロード→B初期化中にCをロード→C初期化中にAをロード→・・・

みたいな
DLL_PROCCESS_ATTACHが処理を返してからなら参照カウンタが増える
(カウンタが1以上ならDLL_PROCCESS_ATTACHは投げられない)からループしない

504 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 10:44:44 ]
質問なんですけどダイアログで使えるコントロール(タブとかシークバー)を自前のWindowで使いたい場合はどうすればいいのでしょうか?
CreateWindowで作れるコントロールの中には無いっぽいのでどうすればいいか困ってます。

505 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 10:53:35 ]
commctrl.h



506 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 11:33:25 ]
>>501
CoInitialize/CoUninitializeみたいに別途初期化・終了処理の関数を用意したり、
暗黙的リンク(必要に応じて遅延読み込み)したり。

507 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 11:57:39 ]
Microsoft Platform SDKとはなんですか?
これだけでほかの開発環境なくてもプログラミングできるのでしょうか

508 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 12:10:29 ]
>>507
Windowsアプリを作るうえで必要になるライブラリ群。
ライブラリなので、当然これだけでは何も作れない。

509 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 12:15:58 ]
ここは既にプログラミングの環境が構築できてる、
あるいはできるという条件の元でWin32APIについて質問するスレです。

環境の構築ができてないレベルだと、>507の質問に回答が出ても理解できないかもしれないが
そこまで面倒見れない

510 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 12:23:08 ]
そうですか
WIN32APIとはまた違ったものなんですね

511 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 12:26:28 ]
まあでもWin32 APIを使うためのヘッダやインポートライブラリと、
ドキュメント・サンプル・ツールなんかが入っているセットと言えばいいかな。

でも、今はWindows SDKになったが。

512 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 13:19:04 ]
>>507
百聞は一見に如かず

無償でダウンロードできる代物なのだから、
とりあえずインストールしてみて、
HDDにコピーされたファイル群を眺めてみれ。

必要かどうか分からないなら、とりあえず、
潰してもいい環境にインストールすりゃいい。

潰してもいい環境を用意できないようなら、
HDDに十分な空き容量とVirtualPCを。

513 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 13:20:18 ]
Windows SDKはコンパイラ・リンカが付いてくるよ。

514 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 14:07:20 ]
Windows SDKのコンパイラは /analyze が付いてるよ。

515 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 16:04:39 ]
ファイルをドラッグ&ドロップして起動した時に、
そのドロップされたファイルを読み込ませたいのですが、
lpCmdLineを引数にfopenしてもオープンできません。
どうすれば読み込ませられますか?



516 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 16:08:34 ]
それでできないことはないはず。
まずは試しにlpCmdLineを表示させてみな。

517 名前:515 mailto:sage [2007/07/01(日) 16:23:37 ]
表示してみました。
"C:\Documents and Settings\〜中略〜\aa.mp3"
正しいパスが表示されてるっぽいです。

518 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 16:31:49 ]
「"」を取り除け

519 名前:501 [2007/07/01(日) 16:42:33 ]
IDないと502にみたいな偽者がでてくるのか・・・

>>503
そうなんですよ。でも別の代替の処理を考えつかないんです。
>>506
暗黙的に行うと、DLLのパスが設定ファイルから渡して動的ロードできないので使ってないです。
CoInitialize/CoUninitializeはなんで制約がないのか調べて見ます。

520 名前:515 mailto:sage [2007/07/01(日) 16:57:26 ]
いけました。本当にありがとう。

521 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 16:59:45 ]
>>519
すみません、代替処理見つからないなんて釣りだと思いました。

522 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 20:40:22 ]
>>514
マジですか。お得ですね。
VSのコンパイラをSDKのものに差し替えたくなりますな。

523 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 20:45:14 ]
>>519
CoInitialize/CoUninitializeの話は、

DLL_PROCESS_ATTACHでLoadLibraryするのではなく、
そのDLL特有の、LoadLibraryなどの初期化処理を行う関数をExportして、
それをDLLを使う側に呼んでもらうことにする

ってことかと。

524 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 20:48:38 ]
>>517
CommandLineToArgvW
とか使ってパースしる!

525 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 21:00:45 ]
ANSI考慮するなら__argc,__argv。
標準ライブラリが必要だけど



526 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 21:38:43 ]
>>519
プログラム側でロードが終わった時点で初期処理すればいいだけのような気がするんだけど
CreateでロードしてんならLoadLibraryが処理返してから初期処理とやらをすれば良いじゃん

527 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 21:52:59 ]
>>514
まじで?!
70万だして買っちまったよ・・・

528 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 22:00:15 ]
まじだよ。/? すると
                         -CODE ANALYSIS-
/analyze[:WX-] enable code analysis
    WX- - code analysis warnings should not be treated as errors even if /WX is invoked

って出る。バージョンとかは同じだけど、付属のバイナリ群はdiffとるとどれもちがうっぽい。
まあ使い方わかんないし、最近Cやってないから必死こいて調べないし、スレ違いだけど

529 名前:デフォルトの名無しさん [2007/07/01(日) 22:19:48 ]
>>523
>>526
そのやりかただとフックとかしかけたときにそのDLLの
アタッチ時に別のDLLを呼べない。
というわけで初めてCALLBACKされたときに初期化するしかなくなる。

530 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 22:32:41 ]
>>529
>というわけで初めてCALLBACKされたときに初期化するしかなくなる。

これが正しいんだと思うが
適当にメッセージ投げろよ

>そのやりかただとフックとかしかけたときにそのDLLの
>アタッチ時に別のDLLを呼べない。

グローバルにフック仕掛けてたら必要ないプロセスに無駄なDLLロードすることになるじゃん

531 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 23:26:12 ]
お前ら。

DLL作るときは、ロードアドレス、ちゃんと設定しとけよな。
VCとかのデフォルト値のままだと、リロケートすることになるし、仮想メモリ空間をぶった切ることになるぞ。

532 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 23:31:02 ]
どっちにしろ、デフォルト1000:0000でグローバルフックする
ような連中もいるんだから無駄
仮想メモリがぶった切られるったって、MS純正のDLLとしてが
4000:0000とかに存在する現状では寂しい限り。

533 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 23:36:45 ]
64bitいや128bitの時代はまだか

534 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 23:37:46 ]
128bitになるころは画面はホログラムになってますか?

535 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 23:50:29 ]
>>532
行儀が悪い輩がいるからといって、自分まで行儀悪くしてどうするよ。

人様が作った行儀が悪いDLLはReBaseでベースアドレスを変更しちまえ。




536 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 00:41:53 ]
どのへんに置いとくのが適切なのかわからん

537 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 00:46:11 ]
>>536
MSDNライブラリ等で
ReBaseImage
のところに説明がある。

538 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 00:59:03 ]
Comboboxのedit controlを取得するのってGetWindow(コンボのハンドル, GW_CHILD)しかない?
ComboboxexならCBEM_GETEDITCONTROLがあるんだけど、、
Comboboxで安全にeditを取得する方法があるのなら、知ってる人いませんか?

539 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 01:27:39 ]
CB_GETCOMBOBOXINFO

540 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 02:02:06 ]
>>539
ずばりのもの、ありがとう。解決しました。
MSDNをみるとCB_GETCOMBOBOXINFOはXp、
windows2000では、GetComboBoxInfoが使えますね。

541 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 02:46:42 ]
>>528
Windows2000環境にインストールしようとして断られた・・・orz

ちなみに、どのバージョンのWindowsSDKなのか教えてもらえると助かります。

542 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 11:14:35 ]
>>541
因みに、私は教えてあげません。

543 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 11:46:53 ]
/analyzeというか、PREfastには2種類ある。

先にDDKで提供されていたドライバ開発者向けと、
後からVCの上位版に提供されたアプリ開発者向けが。

Windows SDK付属のコンパイラで使えるのは前者だけだったりしてね。

544 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 14:05:50 ]
>>543
ちょっと試してみたけど、VSTS付属のものと同じ出力だった。
Windows SDKの方はコマンドラインからしか試してないけどVS連携はまあきつそうか。

以下テストコード。タブを全角に変換してるので注意ね。

#include <CodeAnalysis/SourceAnnotations.h>
#include <windows.h>
[returnvalue:SA_Post(MustCheck=SA_Yes)]
double CalcSum ([SA_Pre( Null=SA_No )] double* source,unsigned int size);
double CalcSum (double* source, unsigned int size)
{
  double sum = 0;
  for( int i = 0; i < size; ++i ) sum += *source;
  return sum;
}
int f()
{
  double buf[100];
  for (int i = 100; i >= 0; i++) buf[i] = i;
  CalcSum(buf, 99);
  return (int) 1;
}
int main()
{
  wchar_t buf[255];
  GetEnvironmentVariableW(L"PATH", buf, 256);
  return f();
}

545 名前:544 mailto:sage [2007/07/02(月) 14:10:04 ]
続き。

上のコードのコンパイル結果。

c:\test>cl test.cpp /analyze
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.762 for 80x86
Copyright (C) Microsoft Corporation. All rights reserved.

test.cpp
c:\test\test.cpp(14) : warning C6292: Ill-defined for-loop: counts up from maximum
c:\test\test.cpp(14) : warning C6201: Index '100' is out of valid index range '0' to '99' for possibly stack allocated buffer 'buf'
c:\test\test.cpp(15) : warning C6031: Return value ignored: 'CalcSum'
c:\test\test.cpp(14) : warning C6386: Buffer overrun: accessing 'buf', the writable size is '800' bytes, but '808' bytes might be written: Lines: 13, 14
c:\test\test.cpp(21) : warning C6202: Buffer overrun for 'buf', which is possibly stack allocated, in call to 'GetEnvironmentVariableW': length '512' exceeds buffer size '510'
c:\test\test.cpp(21) : warning C6386: Buffer overrun: accessing 'argument 2', the writable size is '510' bytes, but '512' bytes might be written: Lines: 20, 21
Microsoft (R) Incremental Linker Version 8.00.50727.762
Copyright (C) Microsoft Corporation. All rights reserved.

/out:test.exe
test.obj



546 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 14:58:39 ]
?

547 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 15:29:42 ]
>>545
これって、VCProのcl.exe関連を差し替えて、SDK付属のCodeAnalysis関連ヘッダもコピーしてやればIDE上で使えるんだろか

548 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 15:37:33 ]
ファイル差し替えなくてもディレクトリ設定変えてやればいんじゃね?
IDE上での設定UIは無いだろうから手動でclのパラメータ追加しないとだめだろうが。

549 名前:544 mailto:sage [2007/07/02(月) 16:12:09 ]
>>547
すまんがVC++Proはすぐに使えるところにないのでその辺の検証は誰かやってちょ。

あとはまあコード分析とかそんなにしょっちゅう使わなくても
たまにとかリポジトリにコミット前にとか自動テスト前とかでもいいんじゃね? とか。
vcbuild.exeをうまいこと使うと自動化できるんじゃなかろかと。

550 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 17:38:37 ]
VC++Proの場合。

VC++ディレクトリの「実行ファイル」に
C:\Program Files\Microsoft SDKs\Windows\v6.0\VC\Bin
を追加し、これを優先度一番上に。
(x64なら...\v6.0\VC\Bin\x86_x64)
同じく「インクルードファイル」に
C:\Program Files\Microsoft SDKs\Windows\v6.0\VC\INCLUDE
を追加し一番上に。

あとはプロジェクトオプションで「構成プロパティ」-「C/C++」-「コマンドライン」で
「追加のオプション」に「/analyze」を記述してやればいい。
本格的なアノテーションまではチェックしてないが、簡単なバッファオーバーラン検出
程度は動作しているのを確認。

ちなみにこれDebugビルドでは使えるがReleaseビルドでは使えないという認識でOK?
厳密にはAPIの話題ではないが、Win32 APIの引数や戻り値チェックもしてくれるのでとりあえず。

551 名前:501 [2007/07/02(月) 19:35:00 ]
DLLロード後に初期化処理関数をDLLロード側から呼んでもらうようにします。
>>503
>>506
>>521
>>523
>>526
>>529
>>530

レスポンスありがとうございました。

552 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 22:49:54 ]
Analysisってそんなにすごいものなの?
70万もだしたというひとがいたが

553 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 23:00:05 ]
>>552
Analysisだけに70万ではないし、
プロ用の開発ツールが高価なのは普通のことだから。

RationalのPurifyとか、
CompuwareのDevPartnerStudioとか、
かなりの金額するでしょ。

554 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 23:20:11 ]
たとえ趣味でもつぎ込む人はつぎ込むしね

555 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 23:43:15 ]
現在開いてるページのURLとタイトルを取得したいのですが、
そのような関数がございましたらご教授下さい。

たとえばここでしたら、
タイトル→Win32API質問箱 Build54
URL→pc11.2ch.net/test/read.cgi/tech/1181645965/
と、獲得したいです。



556 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 23:46:56 ]
脱力

557 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 23:57:42 ]
>>555
FindWindowEx使って力業で探せ

558 名前:デフォルトの名無しさん mailto:sage [2007/07/03(火) 00:06:31 ]
何でもAPI一つで出来ると思うな

559 名前:デフォルトの名無しさん mailto:sage [2007/07/03(火) 00:11:19 ]
普通IWebBrowser2使うだろ

560 名前:デフォルトの名無しさん mailto:sage [2007/07/03(火) 00:13:48 ]
>>559
IEとは言ってない。

意地悪な解釈ではあるがな。

561 名前:デフォルトの名無しさん mailto:sage [2007/07/03(火) 00:18:57 ]
つーか
>現在開いてるページのURLとタイトルを取得したいのですが、
>そのような関数がございましたらご教授下さい。

この質問通りに答えるなら「無い」が正解

562 名前:デフォルトの名無しさん mailto:sage [2007/07/03(火) 00:33:13 ]
>>560
「現在開いてる」というのを詳しく。

何が、誰が、
そういう情報がゴッソリ欠落しているぞ。




563 名前:デフォルトの名無しさん mailto:sage [2007/07/03(火) 00:37:27 ]
>>560
どういうわけか、
インタフェースとしてではなく、クラスを指してIWebBrowser2という人達が多いのです。

IEそのものや、既存のIEコンポーネントを使ったプログラムに対してではなく、
タイトルを取得するためだけに、新たにIEコンポーネントを使い、
URLのドキュメントを取ってこさせ、タイトルを取得するという手もなくはないです。


564 名前:デフォルトの名無しさん mailto:sage [2007/07/03(火) 06:50:32 ]
ダイアログベースのアプリで、キーリピートのときに鳴り続ける警告音を消したいのですが
どうしたらよいのでしょうか。


565 名前:デフォルトの名無しさん mailto:sage [2007/07/03(火) 08:47:12 ]
もっと詳しく書かないと。



566 名前:デフォルトの名無しさん mailto:sage [2007/07/03(火) 10:00:17 ]
WM_KEYDOWNのLPARAM見てリピートが1より大きかったらメッセージ潰せばいいんじゃね

567 名前:デフォルトの名無しさん mailto:sage [2007/07/03(火) 10:58:12 ]
そのダイアログのせいで鳴ってるの?
キューいっぱいとか。キーメッセージ握りつぶしてる?

568 名前:デフォルトの名無しさん mailto:sage [2007/07/03(火) 11:04:29 ]
メッセージポンプを自分で止めている可能性もあるな。

569 名前:デフォルトの名無しさん mailto:sage [2007/07/03(火) 12:13:46 ]
>>561
IE6まではDDE使って取得できたんだがな、IE7以降これが動作しなくなった
しかしFirefoxやOpera等使われていたら動かないわけで。
2chスレに限って言えば専ブラ使われていたらだめなわけで。

570 名前:562 mailto:sage [2007/07/03(火) 12:33:58 ]
アンカーミスしてました。

>>562>>555あてです。

571 名前:デフォルトの名無しさん [2007/07/03(火) 13:16:38 ]
そんくれーわかるっつの

572 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 08:16:50 ]
>>550
ちょwww
俺のPro版、なんかアナライズしてるww

573 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 09:11:47 ]
IEでグーグル開いたときに検索窓でますよね
あそこに文字列をいれるのにいい方法ってありますか?
キーダウンで擬似的にキーボードおされた状態ってのはうまくいったのですが
たまに失敗したり、一文字ごとにウェイトいれないとだめなのでちょっと・・・
セットウインドウテキストが良さげなので
全てのIEの子ウインドウハンドルに送ってみたのですがまったく反応ありませんでした

574 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 09:23:51 ]
フォームに入力するのVBのサンプルならいっぱいある

575 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 09:24:58 ]
Google限定なら別のアプローチのがよさげ



576 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 09:27:29 ]
どうでもいいけど「キーダウン」とか「セットなんとか」とか
強烈に読みづらいから素直にアルファベット表記してくれ。
あとIEのテキストフォームはデザインがWindowsと同じってだけで
IE独自の実装してるからテキストボックスに見えて
テキストボックスじゃない。
API通していじるのは諦めた方がよさげ。

577 名前:573 mailto:sage [2007/07/04(水) 09:32:47 ]
あ、ウインドウのタイトルが変わりましたw
これ面白いですね

そうなんですかどうりで反応しないわけだ
VB覚えようかな






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

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

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