1 名前:デフォルトの名無しさん mailto:sage [2010/01/02(土) 20:07:21 ] スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。 やさしいお兄さんやお姉さんたちが答えてくれるかも。 「知らないならレスしないで下さい。ウザイだけです。 」なんて言わないでねっ! 過去スレ、関連リンクは>>2-10 くらい。 ■注意 ・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。 ・日本語版MSDN Online Libraryは不完全です。英語版( msdn.microsoft.com/en-us/library/ )の利用推奨。 ・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。 ・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで - Win32API質問箱 wiki wiki.livedoor.jp/program1/d/FrontPage Win32API質問箱 Build84 pc12.2ch.net/test/read.cgi/tech/1259478896/
741 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 16:43:37 ] >>739 GetDIBits
742 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 22:15:26 ] lineToの幅は何ピクセルか分かりますか?
743 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 22:17:00 ] 殺すぞ
744 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 22:19:38 ] >>742 デバイスコンテキストのペンを取得してGetObjectしてペンのスタイルと幅を見る。 ヒントは出したから後は自分で考えろ。
745 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 22:25:02 ] ヒントっていうかまんまだな
746 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 02:42:52 ] おかげさまでキラーアプリが出来上がりました。 明日、特許申請に行こうと思います
747 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 05:52:45 ] ノートPCに、USBキーボード指して使ってるんですが USBキーボードのキーを押しっぱなしにしていても ノートPCのキーボードが押されてないと判断するのか WM_KEYDOWNの直後に同じキーのWM_KEYUPが発生してしまうのですが。 アプリで標準の入力とみなすキーボードの選択って どうやるのか教えて頂ける方いましたら宜しくお願いします。
748 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 05:55:12 ] WM_KEYDOWN WM_KEYUP WM_KEYUP WM_KEYUP WM_KEYUP っていう意味ならオートリピートしてるだけじゃないの?
749 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 06:15:02 ] ノートPCに直接ついてるキーボードでAキー押しっぱなしにしても KEYUPは来ないんですが、USBキーボードでAキー押しっぱなしにすると 押しっぱなしにしてるのにKEYUPが来てしまうんです。 ↓のような感じです。 if(PeekMessage(&msg,NULL,0,0,PM_NOREMOVE)){ if(!GetMessage(&msg,NULL,0,0)){ break; } if(msg.message == WM_KEYUP) { break; ←USBキーボードだとキー押下だけで、引っかかる。 }
750 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 06:20:35 ] >>748 すいません見落としました。 調べてみます。有難うございました。
751 名前:747 mailto:sage [2010/01/24(日) 13:32:40 ] たびたびすみません。 PCのキーボード長押しの後、離すと WM_KEYDOWN このとき"lParam30ビット直前のキー状態" は0 WM_KEYDOWN このとき"lParam30ビット直前のキー状態" は1 WM_KEYDOWN このとき"lParam30ビット直前のキー状態" は1 ... WM_KEYUP となり、自分が想像してるオートリピートの処理となるのですが USBキーボードだと長押しだけで WM_KEYDOWN このとき"lParam30ビット直前のキー状態" は0 WM_KEYUP WM_KEYDOWN このとき"lParam30ビット直前のキー状態" は0 WM_KEYUP WM_KEYDOWN このとき"lParam30ビット直前のキー状態" は0 WM_KEYUP ...繰り返す となるようなのですが、 直前のキー状態が0になるので OSのキーリピートでなく、自動連打?のようなものが働いているのですが これはキーボードについてるオートリピート機能と OSのキーリピートは異なるのでしょうか。 これだけをアプリから無効化する手段は何か無いでしょうか。
752 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 13:47:05 ] 自動連打って何よ。 ゲームの連射機能みたいなもん?
753 名前:747 mailto:sage [2010/01/24(日) 14:00:51 ] キーボードの説明書とやらを見てもリピートみは触れてないし キーボードのプロパティで、速度を、一番長く遅くしても短く速くしても 似たタイミングで↑のようなことになるんだもの。 きっと下らない原因なんでしょうが。 押下中にKEYUPが起こってもらうわけには絶対いかないので 脳内でこれを自動連打と名付けて対処方法考え中なだけです。
754 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 14:16:50 ] Bingってみると、チャタリングによる不良とかPS/2->USB変換機絡みで そういう事が起きることもあるみたいだな。 USBキーボード側が腐ってるって事で良いんじゃね?
755 名前:747 mailto:sage [2010/01/24(日) 15:05:15 ] >>754 有難うございます。 手動ではありえないくらい短い時間で連続してKEYUP来たら それは無視する、とかでもう少し粘ってみます。
756 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 15:44:06 ] Viewを管理するクラスを作っているのですが フォントってウィンドウごとに設定されるのでしょうか?
757 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 16:03:26 ] USBキーボードを違うのに変えても結果はおなじ?
758 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 16:20:30 ] キーボードのドライバがなんかやってるんじゃないの?
759 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 16:27:54 ] ドライバじゃいと予想してみた。初心者がつくった怪しげな常駐ソフトとか。
760 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 17:26:29 ] USBキーボードだとそんなことあるのか。 うちでも実験してみるかな?
761 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 19:20:01 ] >>756 CS_OWNDCでウィンドウ毎にDCを持たせればそういう事も出来るが、 そうでない場合は設定とかは無い。 WM_GET/SETFONTも実装側で対応しないと何の効果も無かったはずだし。
762 名前:747 mailto:sage [2010/01/24(日) 20:12:57 ] >>757 見直したところ、 ノートPCに付けてたのは、PS2 キーボードを USB PS2変換ケーブル「Arvel AUO1PS」につないで、 USBに指して使ってました。 別にUSBキーボードと、別のPS2キーボード、 WindowsXPマシン、WindowsVistaマシン が丁度あったのでテストしてみました。 開発環境(Windows Vista) +USBキーボード = 未発生。 +PS2キーボードA + 変換ケーブル = 発生。 +PS2キーボードB + 変換ケーブル = 発生。 WindowsXP マシン +USBキーボード = 未発生。 +PS2キーボードA + 変換ケーブル = 発生。 +PS2キーボードB + 変換ケーブル = 発生。 Windows Vista マシン +USBキーボード = 未発生。 +PS2キーボードA + 変換ケーブル = 発生。 +PS2キーボードB + 変換ケーブル = 発生。
763 名前:747 mailto:sage [2010/01/24(日) 20:15:10 ] >>754 >>PS/2->USB変換機絡みで そういう事が起きることもあるみたい 自分はソースを見つけられなかったので 確証無く、単に自分の変換ケーブルが壊れているだけかもですが、 自分で勝手に作ってるソフトなので、これを信じ、 対処の処理を追加したいと思います。 的確な、ご指摘有難うございました。
764 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 04:01:24 ] 二次元配列の中身をメッセージボックスで並べて表示したいのですがどうすればいいですか?
765 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 04:06:02 ] どうすればって…空白と\n(改行)で繋いで表示するとかしたらいいんじゃないでしょうか
766 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 10:39:16 ] 可変幅フォントでカラムがずれるという事じゃないかな。 MessageBoxで揃える方法があるなら俺も知りたい。
767 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 12:07:13 ] >>766 ::MessageBox()のAPIフックして固定幅フォントをセットし直せばよいのではなかろうか
768 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 12:38:07 ] MessageBoxをCreateWindowしたいってことじゃないの?
769 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 13:52:47 ] そこまでやるならダイアログ作るんじゃないかw
770 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 14:17:11 ] メッセージボックスを一度に複数表示したいということかもしれない
771 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 15:03:15 ] 結局よく分からないな…
772 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 16:32:29 ] CreateStatusWindowで作るステータスバーに右から左に流れるメッセージを 表示するにはどうすればいい?
773 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 16:41:35 ] オーナードロー。
774 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 16:41:53 ] タイマーか何かで一文字ずつずらして表示すればいいんでは 1回目ABCDE 2回目BCDE 3回目CDE . . 6回目 7回目 A
775 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 16:48:50 ] >>774 そういう方向で実装するしかないんですか・・・めんどくさいな
776 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 17:00:20 ] ダイアログのクライアント領域にエディット・ボックスを縦に並べ、 最上部のウィンドウを開け閉めしてダイアログの高さを変更しようと してますが、うまくいきません。 ┌[ダイアログ]──────────┐ │┌─────────────┐│ ││ Edit Box1 ││ ││ ││ │└─────────────┘│ │┌─────────────┐│ ││ Edit Box2 ││ ││ ││ │└─────────────┘│ │┌─────────────┐│ ││ Edit Box3 ││ ││ ││ │└─────────────┘│ └───────────────┘ ShowWindow(1,SW_HIDE); MoveWindow(2); MoveWindow(3); MoveWindow(ダイアログ); では、ダイアログ・ウィンドウ内が真っ白になり、マウスでサイズ変更すると 1が消えているだけです。 こういう動作は、どんな手順ならよいのでしょ〜か?
777 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 17:19:03 ] ちゃんとRepaintフラグ送ってんですか?
778 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 17:21:35 ] BeginDeferWindowPos
779 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 17:38:25 ] >>775 せいぜい1時間くらいだよ 一回書けば使いまわし出来るだろ
780 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 17:40:19 ] では一時間後に >>779 がうpしてくれるのを楽しみに待つとしよう
781 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 18:13:06 ] ……。
782 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 18:36:00 ] wktk
783 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 19:47:02 ] 779ではないが。なんか書けたぞ。通るかも解らんが(笑) static int nNowPos = 0; static DWORD dwLastTime = 0; DWORD dwWork; char bufWork[256]; char bufHyouziString[256]; strcpy(bufWork,"ABCDEが流れると嬉しいな。 "); //前回より1秒経過してたら。更新 dwWork = timeGetTime(); if((dwLastTime + 1000) < dwWork){ //最後に更新した時間を更新 dwLastTime = dwWork; //今の文字が全角なら、次に進めるカウントは+2 if(bufWork[nNowPos] & 0x80 == 1){ nNowPos +=2; } else{ nNowPos ++; } //最後まできてたらまた最初 nNowPos = nNowPos % strlen(bufWork); } //進んだアドレスを先頭にして、文字列コピー strcpy(bufHyouziString,bufWork[nNowPos]); //ここまでで、bufHyouziString に来るんではないかね多分・・・
784 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 19:49:17 ] いろいろ間違えてるな。0x80 との比較結果は != 0だった。 まぁどうでもよいか。
785 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 01:25:17 ] とりあえず出来た もうすぐうp
786 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 02:02:44 ] おれなら char orig[]="ABCDEが流れると嬉しいな。 "; なら char tmpbase[]="\t\tABCDEが流れると嬉しいな。 ______________________";//_は半角スペースでステータスバーが埋まるだけの数 を用意して 定期的にtmpworkからtmpbaseをコピーして適切な位置に\0挿入する
787 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 11:42:26 ] ステータスバーが埋まる文字数。が常に固定であるかの 考慮忘れて発現してた。 GUIで食ってる人はこういう時の定石とかあるのかな。
788 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 12:28:58 ] そういうUIは嫌われるから作らないのが定石。
789 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 12:58:19 ] ステータスバーに文字が流れるのって昔見たなー、と思ったが あれはブラウザにjavascriptで書いてたんだったか
790 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 13:07:01 ] ずーーーっと見てないと何が書いてあるのかわからないのは時間の無駄
791 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 14:44:10 ] SB_SETPARTS にも対応してくだされ
792 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 18:00:16 ] >>787 こんなクソUI作らないのが定石です
793 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 18:15:08 ] 文字流す用のウィンドウ作ってそれをステータスバーの上に乗せればよくね
794 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 19:59:26 ] 作りたいもの作ればいいのよ やる気だけが自分を向上させてくれる
795 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 21:33:34 ] 同意
796 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 21:34:44 ] だ
797 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 21:45:42 ] 文字列が与えられたときにフォント(等幅・プロポーショナルとも)考慮して その文字列の画面上での表示幅を教えてくれるような関数ってWin32APIになかったっけ?
798 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 21:53:14 ] GetTextExtentPoint32
799 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 22:11:25 ] おおきに
800 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 22:16:25 ] >>791 SB_GETPARTS でパート数と座標が判るので書きたい場所に DrawText 汁 この方法だと GetTextExtentPoint32 使わなくても良くなると思う
801 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 07:03:47 ] ブラウザと同じように ツールバーの右に何かの進行状況を 表すゲージを表示させるにはどうしたらいいの?
802 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 07:05:38 ] ブラウザと同じようにやれば良い
803 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 08:06:24 ] ブラウザはどうやってるの?
804 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 08:23:41 ] そのブラウザ使ってググレカス
805 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 15:19:58 ] ブラウザのツールバーの右に進行状況を表すゲージってでたっけ? ステータスバーの右のこと?
806 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 16:56:00 ] 脳内変換しとけよ
807 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 16:57:57 ] はいや
808 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 17:07:40 ] どのブラウザだろう
809 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 18:08:19 ] うちのブラウザです
810 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 19:33:04 ] うちのブラウジャーですごめんなさい
811 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 20:52:20 ] うちの妹のです
812 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 00:35:58 ] そのブラウザい
813 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 08:13:12 ] ぶらぶら
814 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 12:23:14 ] Rich じゃない Edit control で、文字列の特定個所をハイライト表示させる ことはできるのでしょうか??
815 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 13:42:53 ] ●
816 名前:814 mailto:sage [2010/01/28(木) 14:12:16 ] EM_POSFROMCHAR で取得(すればよいのか?)した領域の ・バックカラーを変更するのは、どうすればよいでしょうか? (・д・)
817 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 14:23:28 ] 当該領域を選択すればよいと思われますが
818 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 14:36:29 ] ということは、領域を選択する前に (1)SetBkColor(黄色) (2)領域を選択 (3)SetBkColor(オリジナル色) とすれば良いのですかね?
819 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 14:43:26 ] 黄色って何? どこから出てきた?
820 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 14:46:26 ] つまり、選択した領域のバックグランドカラーを任意に変えたいのです。
821 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 14:46:32 ] ハイライト表示 が いつのまにか指定色背景のブロック塗り にカワットル
822 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 14:59:19 ] 素直に Rich Edit おすすめ
823 名前:デフォルトの名無しさん mailto:sage [2010/01/29(金) 03:51:35 ] WM_PAINTでBitBltしてビットマップ表示してるとき そのビットマップの上でボタンとか置いてると 再描画したときにボタン消えるのはどうすればいいの? 多分上書きされて見えなくなってるんだと思うんだけど
824 名前:デフォルトの名無しさん mailto:sage [2010/01/29(金) 03:57:01 ] クリッピング
825 名前:デフォルトの名無しさん mailto:sage [2010/01/29(金) 08:28:47 ] ボタンを再描画させる。
826 名前:デフォルトの名無しさん mailto:sage [2010/01/29(金) 10:52:30 ] WS_CLIPCHILDREN
827 名前:デフォルトの名無しさん mailto:sage [2010/01/29(金) 18:08:34 ] 32 bit プロセス内で DuplicateHandle(..., process_handle_of_64bit_process, &target_handle, ...) して 64 bit プロセスに target_handle をプロセス間通信で渡したんだけど、そのまま使って問題無い? 16bit → 32bit: WOWHandle32 で変換しなさい。 32bit → 64bit: WOWHandle64 …らしきものは見つけられなかった。 実は HANDLE は下位 32 bit に収まっていて、上位 bit を 0 で埋めればおkとか?
828 名前:デフォルトの名無しさん mailto:sage [2010/01/29(金) 20:06:04 ] 32bitのハンドルを64bitのプロセスでDuplicateHandleすれば、 64bitプロセスで使えるハンドルが得られる、ような気がする。 あまり具体的に書かれていないので、実際に試さないと分からないが。
829 名前:827 mailto:sage [2010/01/29(金) 21:22:49 ] > 32bitのハンドルを64bitのプロセスでDuplicateHandleすれば、 > 64bitプロセスで使えるハンドルが得られる、ような気がする。 つまりこうですか? --code_for_x64.cpp-- DWORD handle_32; // sizeof(DWORD) == 4 HANDLE handle_64; // sizeof(HANDLE) == 8 ReadFile(pipe等, &handle_32, sizeof(DWORD), ...); DuplicateHandle(static_cast<HANDLE>(handle_32), process_handle_of_32bit_process, &handle_64, GetCurrentProcess(), ...); > あまり具体的に書かれていないので、実際に試さないと分からないが。 実際のところ、HANDLE は 32bit で表現できない値にはならなそうだけど…。 やはり具体的な記述が欲しいですね。 MSDN に x86 x64 共存 FAQ とかないかな。
830 名前:デフォルトの名無しさん [2010/01/29(金) 21:52:09 ] ファイルの更新時間を変更したくてSetFileTime関数を使おうと考えています。 ただ、この関数を使うためにはCreateFileでGENERIC_WRITEを使ってHANDLEを 取得する必要があります。 問題は、ReadOnlyのファイルの更新時間を変える場合に、GENERIC_WRITEを使ってハンドルが取得できない点です。 ReadOnlyなファイルの更新時間はcygwinのtouchで変更できるのでなにか方法はあると思うのですがWin32APIを使う方法が分かりません。 どーしたらいいの?
831 名前:デフォルトの名無しさん mailto:sage [2010/01/29(金) 22:00:21 ] attribe -r
832 名前:デフォルトの名無しさん mailto:sage [2010/01/29(金) 22:07:18 ] readonlyを一旦外せばいいのでは?
833 名前:デフォルトの名無しさん mailto:sage [2010/01/29(金) 22:19:54 ] >>829 msdn.microsoft.com/en-us/library/ms724251 (VS.85).aspx > DuplicateHandle can be used to duplicate a handle between > a 32-bit process and a 64-bit process. The resulting handle > is appropriately sized to work in the target process.
834 名前:827 mailto:sage [2010/01/29(金) 23:31:42 ] >>833 おお、ありがとう! 普通に書いてありましたね。
835 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 03:44:16 ] >>823 BitBltの前にボタンの位置とサイズでExcludeClipRectすると少しだけよくなることなら知ってる
836 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 06:56:21 ] >>823 ビットマップの上にボタンを置かなければよい。 仕様が間違っている。
837 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 07:02:22 ] >>836 お前のアホさがとても残念だ
838 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 09:32:30 ] WS_CLIPCHILDRENがあるじゃない
839 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 10:58:56 ] GetPrivateProfileString でバッファサイズが足りないと戻り値がnSize-1になるみたいなんですが 切り捨てられたか、文字数がピッタリ一致してただけなのかを区別することはできますか?
840 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 11:25:45 ] バッファサイズを1文字余分に取る
841 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 12:04:29 ] HWND h; SHELLEXECUTEINFO sei = { 0 }; sei.cbSize = 60; sei.nShow = SW_SHOW; sei.fMask = SEE_MASK_NOCLOSEPROCESS; sei.lpFile = "notepad.exe"; ShellExecuteEx(&sei); Sleep(3000); h = FindWindowEx(sei.hProcess, NULL, TEXT("Edit"), NULL); SendMessage(h, WM_SETTEXT, 0, (LPARAM)("test")); ShellExecuteExでメモ帳を起動させて3秒後に"test"を エディットに表示させたいんだけど FindWindowExがNULLを返す模様。どうしたらいいの?