- 1 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 15:23:00 ]
- スレ立てるまでもない、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質問箱 Build85 pc12.2ch.net/test/read.cgi/tech/1262430441/
- 477 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 00:15:12 ]
- Win7で有効な構造体のメンバがXPではリザーブとか。
- 478 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 00:24:26 ]
- >>473-475
いろいろ原因は考えられるんですね。 自分のPCでは再現しないので、デバッグもしづらいのがつらいところです。 >>476 exeのファイル名指定は相対パスで書いてあります。 >>477 CreateProcessの部分はネットで調べて書いたのですが、Win7発売より古い情報なので、それもなさそうです。 知り合いに協力してもらいながら調査してみます。 どうもでした。
- 479 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 00:42:06 ]
- あるアプリを複数起動させ、それぞれの保存ダイアログを同時に表示させた
時にどのダイアログがどのアプリのものか外部アプリから識別する方法って 有りますか?
- 480 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 00:47:38 ]
- コモンダイアログだって呼び出し元スレッドとプロセスに所属してるんだからその辺紐付ければ取れるでしょうよ
- 481 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 00:59:25 ]
- こんな時間に有り難うございます。
複数起動したアプリのハンドルは区別できてるんですけど、 例えば1番目に起動したハンドルで保存ダイアログを探して、 外部アプリから操作しようとすると、2番目に起動したアプリの 保存ダイアログにメッセージが飛ぶ現象が起きてしまってどうしたもんかと。
- 482 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 01:15:58 ]
- Windowをスクリーンの中央に表示するコードをください、この私に。
- 483 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 01:17:05 ]
- >>481
オーナーウインドウを調べれば分からない?
- 484 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 01:21:31 ]
- 確かHWNDからプロセスIDは調べられたと思うんだけど。
- 485 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 01:28:11 ]
- >>482
中華は引っ込んでろ
- 486 名前:479 mailto:sage [2010/03/05(金) 11:21:04 ]
- 皆さん、有り難うございました。
FindWindowExで調べていたからまずかったみたいです。 Owner,Ownerdを調べていったら出来ました。 ダイアログと親ウィンドウの関係が今回のことで分かりました。 また、よろしくお願いします。
- 487 名前:デフォルトの名無しさん [2010/03/05(金) 17:40:26 ]
- bitmapをjpgに変換するAPI教えて
- 488 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 17:42:02 ]
- www.geocities.jp/katayama_hirofumi_mz/win32/savepic.htm
- 489 名前:467 mailto:sage [2010/03/05(金) 22:27:15 ]
- お返事ありがとうございます。
>>468 すみません、理解できませんでした。 スレッドを利用したプロセス間でのデータ受け渡しがあるのでしょうか?? >>469 >>470 >>471 最初のアプリが常駐した後、同時に複数の同アプリが起動した場合でも うまくいくような仕掛け(排他制御)を考える必要がありそうですね。
- 490 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 23:01:50 ]
- 単に既に起動しているプロセスに対して
コマンドライン引数をSendすればいいだけじゃだめなの?
- 491 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 00:20:13 ]
- WM_COPYDATAで十分そうだな。
後はカレントディレクトリも送っといたほうがいいんじゃないかな。 相対パスくらいはちゃんと扱ってもらわないと。
- 492 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 01:24:20 ]
- 日本語でOkay.
- 493 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 01:34:47 ]
- 問題は質問者の書き込みではウィンドウがあるのかどうか分からないことだ
- 494 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 02:37:11 ]
- ウィンドウをクラス化するところまでできました。
次にリストビューあたりをクラス化したいと思うのですが、 検索してもなかなかそういうのが見つかりません。 こう作るのがセオリーというのがあれば知りたいのですが、 参考になるサイトやソースコードがあれば教えて欲しいです。 特に、ウィンドウプロシージャとのやりとりが煩雑なので それをクラスにまとめる方法が知りたいです。 よろしくお願いします。
- 495 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 02:50:48 ]
- クラスにまとめるほうが煩雑になるの法則
- 496 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 02:53:19 ]
- WTLとかのコード見て見れば
俺は見たときないけど
- 497 名前:494 mailto:sage [2010/03/06(土) 03:13:33 ]
- やはりWTLになりますか。評判はいいのですが、解析となると気が引けて
しまって。手っ取り早く説明しているところがあればなと思って質問しました。 やっぱりこういうのは自作するよりも利用するものなんですかね。
- 498 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 03:21:58 ]
- サブクラス化で検索したら
- 499 名前:494 mailto:sage [2010/03/06(土) 03:36:51 ]
- サブクラス化はコントロール自体の機能を拡張するために使う手法という理解でいました。
そうではなくて、メインからコントロールを利用しやすくするためにクラス化 したかったのです。サブクラス化することでそういうメリットが得られるのでしょうか?
- 500 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 03:56:43 ]
- clistviewctrl
- 501 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 03:59:59 ]
- 一番わかってないのは、自分が何をしたいのかだろう
- 502 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 04:14:20 ]
- 誰もが一度は通る道
- 503 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 04:25:55 ]
- 私のクラスは53万です。
- 504 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 12:43:49 ]
- MFCとかWinFormsとかWPFをパクる
- 505 名前:デフォルトの名無しさん [2010/03/06(土) 17:28:13 ]
- >>488
ありがとうございます。 当方C++Builder2007を使っていて、それ用のヘッダ当ありますが エラーが出まくってまともにコンパイルができませんでした・・・
- 506 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 23:17:57 ]
- とあるアプリを外部から操作するアプリを作成して一応望み通りに作れたのですが、
コンボボックスのことで教えて欲しいことがあって来ました。 CB_SETCURSELでアイテムを選択すると思うのですが、このAPIでアイテムを選択しても 一旦は切り替わるのですが、その後必ず先頭のアイテムが選択されてしまい、アイテム変更後 クリックメッセージを送ってやると選択したアイテムで処理が進んでくれるということになって しまいました。 これって、使っているAPIが悪いのでしょうか? それとも、操作しようとしているアプリの作り方(仕様?)の問題でどうしようもないことなのでしょうか? よろしくお願いします
- 507 名前:494 mailto:sage [2010/03/06(土) 23:35:15 ]
- 皆さんありがとうございます。こういうのは定番の手法が確立されているか
と思ったのですが、意外とそうでもないようで。 とりあえずWTLやMFCとかの定番ライブラリのソースを調べてみることにします。
- 508 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 11:58:58 ]
- EnumProcesModules→GetModuleFileNameExでファイル名を取得したいのですが
64bitアプリケーションに対してEnumProcessModulesしてもうまく取得できずGetModuleFileNameExが失敗してしまいます 何が原因なんでしょうか?
- 509 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 14:51:07 ]
- このスレの人はそんな難しい質問には答えられないの
- 510 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 15:01:07 ]
- 32/64 で別管理なんじゃね?
- 511 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 16:17:06 ]
- 64bitビルドだと失敗しない
- 512 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 17:13:27 ]
- HANDLEの大きさが違うからでしょ
- 513 名前:508 mailto:sage [2010/03/07(日) 17:14:22 ]
- ありがとうございます
32bitでは64bitアプリケーションに対して一部の操作が無効なんですね・・
- 514 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 22:37:02 ]
- HANDLEが別物なんだから当たり前やが
- 515 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 09:18:56 ]
- UNICODE でプログラミングしてるのですが、ある関数の終了と同時に異常終了してしまいます。
以下の部分が怪しいのですが、勘違いしてないでしょうか、、、(Borland C++) LOGFONT logfont; const TCHAR *facename = _T("MS ゴシック"); _tmemset(&logfont,0,sizeof(LOGFONT)); _tmemcpy(&logfont.lfFaceName,facename,_tcslen(facename)*sizeof(TCHAR)); _tmemcpy(&save.logfont,&logfont,sizeof(LOGFONT));
- 516 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 09:27:44 ]
- デバッガで追跡した?
_tmemset(&logfont,0,sizeof(LOGFONT)); memset( &logfont,0,sizeof(LOGFONT)); これってどう違うの?UNICODEに合わせて用意された関数? それと _tmemcpy(&logfont.lfFaceName,facename,_tcslen(facename)*sizeof(TCHAR)); ここで、logfont.ltFaceNameのアドレスを渡してる logfont.ltFaceNameは配列なので 正しくは _tmemcpy(logfont.lfFaceName,facename,_tcslen(facename)*sizeof(TCHAR));
- 517 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 09:28:40 ]
- こっちでもおk
_tmemcpy(&logfont.lfFaceName[0],facename,_tcslen(facename)*sizeof(TCHAR)); 只の勘違いだろうけど、ポインタ周りを理解してないうちはUNICODEは控えた方が
- 518 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 11:33:51 ]
- CRTとか…
LOGFONT logfont; ::SecureZeroMemory( &logfont, sizeof( logfont ) ); ::lstrcpy( logfont.lfFaceName, _T("MS ゴシック") );
- 519 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 12:33:56 ]
- SecureZeroMemoryはコンパイラの最適化を受けずに、確実にゼロクリアされるけど
memsetでゼロクリアって確実にされないの?
- 520 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 12:46:59 ]
- 今日の1行
LOGFONT logfont = {0};
- 521 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 15:32:14 ]
-
WaitForSingleObject()ついて質問があります。 パイプを使用してアプリ間で双方向通信を行うプログラムを作成しています。 www.kumei.ne.jp/c_lang/sdk3/sdk_248.htm これを参考にしています。 アプリ間で共有しているイベントオブジェクトを使用してパイプへの書き込み読込みの排他処理を行っています。 正常に動作している場合は問題はないのですが、 仮に片方がアボートした場合、もう片方のアプリのWaitForSingleObject()から帰ってきません これを回避する方法はあるでしょうか?
- 522 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 15:51:44 ]
- >>512
・片方がアボートした段階で管理者に連絡する ・タイムアウト処理を実装する
- 523 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 15:52:39 ]
- >>512
>>521 の間違い
- 524 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 16:10:40 ]
- 未処理例外キャチとかでアボートする前にイベント発行とかで通知
1つでもシグナル状態になったら制御を返すWaitForMultipleObject()を使用する
- 525 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 17:16:54 ]
- GUI操作された処理で、それらの実行/終了した事を知るにはどうしたらいいですか?
- 526 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 17:54:28 ]
- GUI操作の質問は、521-524と同じ質問なのかな?
>>524のレスの通り、CreateEventでイベントオブジェクトを作成する。 なお、CreateEventの第一引数の名前をユニークなものとし、 両方のアプリで認識できる事とする。 あとは、プロセスが終了する段階でSetEventを指定すれば、 待ち合わせ側でもWaitForMultipleObjectで知る事ができる。 521-524以外なら、WM_KILLFOCUSが操作を終了したヒントの一つなのでは? ※但し、コントロールによってはCBN_SELCHANGEなどもあり、 一概とはいえない。
- 527 名前:521 mailto:sage [2010/03/08(月) 18:01:35 ]
- >>523, 524
返信ありがとうございます。 アボートする前にイベント発行の方法で考えてみます。 パイプの双方向通信て微妙に難しくありませんか? 今まで、送信と受信の2本のパイプで双方向通信してましたが、どうもスマートに見えないので 改良しましたが、今度はイベントの開放時に下手するとWaitForMultipleObject()でとまりますね・・・ なにか、いいオープンソースあったら教えてほしい・・・
- 528 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 18:31:11 ]
- >>526
521-524とは異なる質問です バッチ処理を行うアプリを作りたいのですが 例えばGUIアプリの、AアプリとBアプリがあるとし Aアプリで処理を実行し、終了ー>その後にBアプリを実行させたいと思っています アプリ自体は、作者が異なる者を想定していますので、イベント名などは合わせることは出来ません この状態で対応出来ますか?
- 529 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 18:52:34 ]
- エスパー
- 530 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 18:52:54 ]
- >>521
>仮に片方がアボートした場合、もう片方のアプリのWaitForSingleObject()から帰ってきません 嘘書くな。
- 531 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 18:57:03 ]
- そもそもpipeの読み書きに排他処理は不要。
- 532 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 19:14:24 ]
- >>528
まずは、Spy++でトレースして考えたほうがよいかと
- 533 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 19:17:18 ]
- あるウィンドウが別のウィンドウの子孫かどうかを一発で判定するAPIは無いのでしょうか?
深い親子階層を持つウィンドウの中で、 フォーカスを持つウィンドウが自分の子孫に含まれているかを判定したいのですが。
- 534 名前:533 mailto:sage [2010/03/08(月) 19:27:53 ]
- IsChild()で子だけでなく子孫も判定できるようでした。失礼しました。
- 535 名前:デフォルトの名無しさん [2010/03/08(月) 19:36:01 ]
- CreateWindowでコンボボックスを作ったんだけど、枠線消す方法誰か知ってる?
- 536 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 19:50:20 ]
- WS_EX_STATICEDGE,
WS_EX_CLIENTEDGE, WS_EX_WINDOWEDGE 該当するフラグをマスクでアンド演算してね
- 537 名前:521 mailto:sage [2010/03/08(月) 20:08:09 ]
- いろいろと返信ありがとうございます。
525とは別人です。 >>531 パイプによるプロセス間通信で双方向通信の場合、 排他処理なしに1本のパイプで行うことは不可能じゃないですか? 以前やってみましたが、自分で書き込んだデータを自分のプロセスが読み込み(ReadFile())ます。
- 538 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 21:35:49 ]
- 意味が分からん
OpenModeをPIPE_ACCESS_DUPLEXにして PeekNamedPipeでスピンロックぐるぐる回してればいいじゃん
- 539 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 23:27:07 ]
- ttp://school.topposystem.co.jp/PR/Tool/Win32API/System/Pipe.htm
ここの説明も良い説明ではないが、まだまとまった感じ
- 540 名前:uy ◆e6.oHu1j.o [2010/03/09(火) 02:20:02 ]
- post_messageで
プロセスAから プロセスBへメッセージを送れるわけですが、 これを受け取りたくない場合ってプロセスBはどうやって作ればいいんですか? させたくないのは、 とにかくプロセスBは、他プロセスからのメッセージを一切受け取りたくない = 自動操作などをさせたくない ってことです。
- 541 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 07:32:54 ]
- 特定のメッセージだけなら受け取って握りつぶすだけだけど
送信元が判定できないから難しいと思う
- 542 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 08:02:41 ]
- つか数日前からプロセス間関連の質問しまくってる人は何をやってるんですか?
宿題?
- 543 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 08:36:12 ]
- まぁまぁ、プロセス間通信もできればできたで楽しいし。
リダイレクタにも応用できるし!?
- 544 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 08:57:22 ]
- 夢はあるね
- 545 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 09:25:42 ]
- リソースダイアログを親ウィンドウとして扱うのってあり?
- 546 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 09:32:56 ]
- ありかなしか何を基準とすればいいのか分からんよ
確実になしって言えるのは実現できないことだけだ
- 547 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 09:34:00 ]
- なしではないけど、どうかと
- 548 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 09:37:21 ]
- 俺は簡単なアプリ作る時はリソースダイアログにしてる
- 549 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 09:39:26 ]
- ウィンドウかダイアログって時は
UXガイドの450ページから読んだほうが整理付くんじゃね? (あくまでも指標なんだけどね) ttp://msdn.microsoft.com/ja-jp/library/aa511258.aspx ここの「PDF 形式」をクリックすればダウンロードできるぞ
- 550 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 09:43:24 ]
- 約800ページもあんのか
- 551 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 09:44:25 ]
- プログラム覚えだした頃って外部プログラム操作したくならない?
いかにも俺はプログマーだぜって気分が味わえる。
- 552 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 09:48:08 ]
- プロだクマー
- 553 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 12:03:29 ]
- >>551
別に覚えたてに限らんでしょ。 自分でアプリ作るのは面倒だけど既製品では気に入らない時に ボタンやダイアログのハンドル調べて自動制御する簡単なソフトを作るのは みんなやってると思うんだけど。
- 554 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 12:08:28 ]
- 自分で作るか別のアプリ探すw
- 555 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 12:09:47 ]
- メッセージ送ってどうのこうのまではしようと思わないな…
パイプ使ってコマンドライン編集するくらいならやるけど
- 556 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 00:18:16 ]
- 勝手に操作されたくないという気持ちは分からなくもないが、
たとえ、他のプロセスからのメッセージを弾く方法があったとしても、 アクセシビリティAPI経由で操作できてしまうということになるだろうと思う。
- 557 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 02:10:25 ]
- SendMessageをフックして弾けばいい
- 558 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 04:45:50 ]
- フックをフックして弾けよ
- 559 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 07:27:38 ]
- ひどい攻防ですね
- 560 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 09:33:04 ]
- キーボードやマウスのふりをするドライバとか…
- 561 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 09:34:02 ]
- メッセージ処理前にチューリングテストしよう。
- 562 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 11:22:16 ]
- 質問お願いします。
デスクトップに直接(文字とか画像とか)描画したいのですが、方法が分かりません。 このキーワードのままググってみて hdc=GetDC(NULL) のhdcを対象に描画する方法は見つけたのですが、これではなくて、 ウィンドウを開いた場合にも最も手前に表示されますが、私がしたいのは 一番奥、つまりデスクトップ背景画像のスグ上に表示させたいんです。 何を使えばいいんでしょうか?
- 563 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 11:25:12 ]
- 俺も知りたい
- 564 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 11:36:14 ]
- ウインドウ列挙して全部クリップしたら
- 565 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 11:55:25 ]
- ありがとうございます。それでやってみます。
- 566 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 13:07:14 ]
- GetDesktopWindow関数からハンドルを取ってきちゃダメ?
そこからDC探って、ビットマップ作成すればいいんじゃね?
- 567 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 19:53:05 ]
- GetDC(NULL)はプライマリモニタのDCが
返ってくるから、普通にやると上書きされる
- 568 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 20:12:54 ]
- その壁紙のビットマップファイルの複製を作って
そこに好きな文字を書く。 レジストリを書き換えて壁紙に設定 これ以上に強力な方法はないだろ
- 569 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 20:36:53 ]
- 猫にあったな<デスクトップに図形描画
- 570 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 21:06:09 ]
- ここはActiveDesktopの出番だな!
Windows7で試したら、インスタンスは作れたけどE_NOTIMPLだった。残念。
- 571 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 21:43:52 ]
- いやここは俺の出番!!
- 572 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 22:02:35 ]
- PCの電源ボタンを押した際のWindowsの終了・スタンバイ・休止のメッセージをフックしてキャンセル(捨てる)することのできる出来るAPIありませんか?
SetWindowsHookExでできるんじゃないかと思ったけどなんだか違うみたいで
- 573 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 22:11:15 ]
- 刮目せよ!!
WM_QUERYSESSION WM_ENDSESSION あそうそう、戸田恵梨香ちゃんかわいいよね
- 574 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 22:22:33 ]
- >>573
ありがとうございます! 適当にウィンドウ作ってやってみる Win7なのがちょっと心配
- 575 名前:572 mailto:sage [2010/03/10(水) 23:24:49 ]
- ShutdownBlockReasonCreate()
WM_QUERYSESSION でシャットダウン・ログオフをキャンセルさせることはできたのですが スリープの方がうまくいきません 調べてみたところXPまではスリープ時に送られてくるWM_POWERBROADCAST / PBT_APMQUERYSUSPENDに対して BROADCAST_QUERY_DENYを返すことでスリープ以降をキャンセルできたようなのですが、Vista以降はうまく動作しないようです SetThreadExecutionState(ES_SYSTEM_REQUIRED | ES_CONTINUOUS)も試してみたのですが効果がありませんでした Windows7で同じような処理をする方法はないでしょうか?
- 576 名前:デフォルトの名無しさん [2010/03/10(水) 23:28:44 ]
- VBでUSB-シリアル変換ケーブルを使う通信アプリ作ってるんですが、
ポーリングのためにWriteFileするタイミングで ケーブル(USB側)を引っこ抜くとWriteFileが返らぬ人になって困っています。 ポートも握り締めたまま逝ってしまわれるので、どうにも・・。 エラーで良いので戻って欲しいのですが、 どういう方法が一般的なのでしょうか?
- 577 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 23:33:32 ]
- スレッドでやれば
|

|