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


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

Win32API質問箱 Build69



1 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 23:23:58 ]
スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんやお姉さんたちが答えてくれるかも。

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

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

- Win32API質問箱 wiki
wiki.livedoor.jp/program1/d/FrontPage

Win32API質問箱 Build68
pc11.2ch.net/test/read.cgi/tech/1215348804/

369 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 11:42:45 ]
ありません

370 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 12:23:23 ]
何を求めてるのか具体的に書かんと分からんよ
アドバイスって何よ

同じ事をしたいだけならShellExecute

371 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 13:47:36 ]
Perlは便利というアドバイス

372 名前:351 mailto:sage [2008/08/15(金) 22:39:32 ]
自己解決しましたので報告します。

GetStdHandleなどで得たハンドルを直接WaitForSingleObjectに入れることが出来ます。
ただしそのままではKeyDownだけではなくKeyUpでもシグナル状態になってしまうため、
WaitForSingleObject+ReadFileまたはWaitForSingleObject+ReadConsoleの組み合わせだけではブロックします。

FlushFileBufferやCancelIOではキーボードイベントをフラッシュする事が出来ず、
他にフラッシュできそうなAPIを見つけることが出来ませんでしたので今回は採用を諦めます。

どうしても直接入力/リダイレクト両対応でノンブロッキングな標準入力を行いたい方は
シグナル状態になった際にPeekConsoleInputで無関係なシグナルを検出し、
その時だけReadConsoleInputでイベントを取り除いてください。
>>356さんの言うようにスレッド化するのも手だと思いますが、ブロックするのでスレッドを終了できなくなるはずです。

373 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 22:48:15 ]
別にスレッド終了せんでもええやん?

374 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 01:25:25 ]
CreateThreadまたは__beginthreadexを使用する時に
指定するスタックサイズは皆さん「0」指定で使ってますか?

通常は「0」で問題は無いのでしょうが
もし仮に明示的なスタックサイズを指定している方がいれば
その利点などについて詳しく教えてもらえるとうれしいです。


375 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 01:46:41 ]
0って言ってもデフォルトサイズを使うって指定しているんだから、サイズによって何が変化するか自分で考えろよゆとり馬鹿

376 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 01:49:05 ]
・デフォルトのスタックサイズでは足りない場合に増やす
 スタックがあふれるようなアルゴリズムが悪いんだが、やむを得ない場合があるかもしれない

・スタックを減らしてアドレス空間を節約する
 スレッドを大量に作るとき、スレッド1個ごとに何MBも取ってると、アドレス空間の枯渇が早い

という利点は思いつくが、今のところ俺は0以外を指定したことはない

377 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 04:24:02 ]
STACK_SIZE_PARAM_IS_A_RESERVATION が指定できない2000以前じゃデフォルトより下げても意味なかったし0以外ねーな



378 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 04:51:04 ]
64bitコードならともかく、32bitコードじゃスタックサイズを増やすのはまずねーだろ。
アドレス空間足りねーよ。

379 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 12:18:14 ]
デフォルトで1MBくらいなんだから、スタックサイズちょっと増やしたくらいでアドレス空間足らなくはならんだろ。

380 名前:374 mailto:sage [2008/08/16(土) 12:24:45 ]
>>375-379
回答ありがとうございます。


>>376の言うとおりスタックを減らしてアドレス空間の
節約をした方がいいのか迷っていたので、
ほかの人の意見を聞いてみようと思って質問しました。


スレッドのスタックサイズに関しては特に意識する必要は無いという事ですね。

381 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 12:50:42 ]
質問です。。。

現在keybd_eventを使用して実際のキー操作をシミュレートしようとしているのですが,

keybd_event( 'A', 0, 0, 0 );

のようなコードでは,実際にAをずっと押しているときのように,動作しません。
(例えば,テキストエディタをアクティブにしていたらAがいくつも入力される。


どうしたら,実際のキーボードを押しているように動作させることが出来るのでしょうか?

382 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 12:54:08 ]
スタック領域って減らせるのか?
最初は4KBぐらいしか確保されてなくて必要に応じて動的拡張されるとかじゃなかったっけ?

383 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 14:27:15 ]
GetOpenFileNameのダイアログ使ってるとMAX_PATH超えられないけれど
対策もしくは代替手段て有りますか?

384 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 15:13:42 ]
ダイアログを自作する

385 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 17:02:35 ]
perlで
ShellExecuteで、
notepad.exeを開きたい場合は
どう書けばいいの?

386 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 17:14:04 ]
`notepad.exe`


387 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 17:18:04 ]
>>386
試してみたら、確かにメモ帳が開きましたが、
それってShellExecuteで開いてるの?



388 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 21:23:53 ]
>>383
フックプロシージャの中からだとそういう制限は無かった気がする。
違ったらごめん。

>>387
ShellExecuteの中の人は、拡張子exeの関連付けに従ってプロセスを起動する。
何も特別なことはない。

389 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 21:52:03 ]
>>387
どういうAPIを使ってるのかは、それが仕様化されてるのでなければ
処理系の実装依存だろうな。

直接ShellExecuteを呼びたいのなら
ActivePerl Win32 API ShellExecute
とかでググれ。
それでわからなければPerlの人に訊け。

390 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 22:55:06 ]
今の状況だと、
真っ黒なDOSプロンプトが開いて、
そのDOS窓が残ったままで、
メモ帳も開く、という動作なのですが、
DOS窓が開かないで、
あるいは一瞬だけ開いて、
それでメモ帳が開く、というのを
するのに、shellexcuteを使えば
いいんでない?と思ったのですが、
違いますか?

391 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 00:09:09 ]
コマンドプロンプト経由で起動する事情なんざ、Win32的には知ったこっちゃないな。
Perlが勝手にやってることなんだから、あっちで聞け。

392 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 06:24:19 ]
やだね
お前が勝手に聞いてろ

393 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 09:20:57 ]
perlをWindowアプリとしてリコンパイルすれば解決する

394 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 10:40:24 ]
perlネタはもういいよ。

395 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 13:01:22 ]
perlがコンソールアプリだからだろ
active perl scriptを使えばいい

396 名前:383 mailto:sage [2008/08/17(日) 13:34:18 ]
>>388
フックプロシャージャ作って中でCDM_GETFILEPATH使っても
MAX_PATH以下になるようになってるみたいです。

CDM_GETFOLDERPATHやCDM_GETFOLDERIDLISTだと
フォルダまでがMAX_PATHであれば選択ファイル名を追加で
その分超えることは出来るみたいですがOKボタン押させて貰えない。

さらに深いフォルダにはアクセスさせてもらえないし
他の大半のアプリも触れない領域じゃ独自ダイアログにするほどのことでもない気がするので諦めます。
あとD&Dもメッセージが飛んでこないので駄目みたいです。

397 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 14:36:47 ]
なんか知らんがUnicodeに汁



398 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 16:18:46 ]
>>381

399 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 17:07:58 ]
>>381
チート厨は氏ね

400 名前:381 mailto:sage [2008/08/17(日) 17:31:50 ]
>>399
Wiiリモコンをパッドにしたいだけなのに。。。

401 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 17:33:55 ]
>>400
それでもBAN対象のゲームは多いはず

402 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 18:05:19 ]
>>400
ヒント
っKEYEVENTF_KEYUP

403 名前:383 mailto:sage [2008/08/17(日) 18:08:46 ]
>>397
長いファイル名は必然的にUnicode関数使うし
最近のプログラムなんでUnicodeビルドしてる。

404 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 19:39:11 ]
シェル関数(SHGetPathFromIDListなど)がMAX_PATHを超えれないから
シェルに依存しているコモンダイアログも必然的にMAX_PATHを超えられないのだろう

てかMAX_PATHを超えてしまうほど深い階層にファイル置くなよ

405 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 19:57:28 ]
ThickFrame(ウィンドウサイズを変更する枠)で、
「ユーザーがウィンドウサイズを変更している間は、WM_ERASEBKGNDメッセージを無効にする」
という処理を加えたいんですけれど、

処理の開始は、WM_NCLBUTTONDOWNメッセージを捕まえてそれで問題ありませんでした。

処理の終了(サイズ変更の終了)も、同様にWM_NCLBUTTONUPメッセージを捕まえれば良いのかと思ったんですが、
うまくいきませんでした。


この場合の、「ウィンドウサイズ変更が終了した」という情報を、
アプリケーションが取得するにはどうしたら良いでしょうか?

誰かご存知の人は教えてください。


406 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 20:03:49 ]
WM_SIZEとかWM_WINDOWPOSCHANGEDとか?

407 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 22:22:33 ]
>>402
KEYEVENTF_KEYUPを引数としてキーが上がったということも書いているのですが,
>>400のやりたいことのように出来ません。。。



408 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 01:09:41 ]
初歩的な事で申し訳ないのですが、
実行ファイルのアイコンが指定通りに変わらず困っています。
WINDCLASSEX構造体には以下のように記述しています。

wcex.hIcon=(HICON)LoadImage(hInst,"ファイル名",IMAGE_ICON,
              0,0,LR_DEFAULTSIZE|LR_LOADFROMFILE);
です。
リソースを使わずicoファイルにパスを通す方法で実現したいのですが、
表示されません。
hIconもNULLではない様なので問題ないと思うのですが・・・。
因みに、タイトルバーに表示される方は上手く表示されています。
ですので、ファイル名の指定でパスがおかしいということはないと
思います。

409 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 01:35:39 ]
WNDCLASS(EX)というのは、ウィンドウの設定をするだけ
実行ファイルのアイコンとかは何も変わらない

410 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 03:10:32 ]
>>408
exe のリソースに埋め込まれたアイコンの中で
一番番号の若い物が exe のアイコンになります

411 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 03:49:06 ]
>>409
そうだったんですか・・・。
前は普通にリソースで入れてたんで、気づきませんでしたが
そこに指定したらアイコンになるもんだと思ってました・・・。
>>410
409の方のを読んで色々と調べていたんですが、
やっぱり、リソースを埋め込むものなんですね。
>一番番号の若い物が exe のアイコンになります
知りませんでした・・勉強になります。

おかげさまで一応解決しました。

412 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 07:58:09 ]
常駐型アプリを作ってます
タスクバーに表示されず
タスクトレイにアイコンを表示させるとこまできましたが、
タスクマネージャ−アプリケーションで見ると
タスクの欄にしっかり表示されてしまいます

他のアプリを見るとここには表示されていません
タスクマネージャ−アプリケーションに表示されないように
常駐アプリを作るにはどうすればいいですか


413 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 09:32:48 ]
ウィンドウが出てるんだろ

414 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 17:26:55 ]
ヴィザードで、自動で次のページに移行したいんですけれど、

PSHNOTIFY myLp={NULL,};
myLp.hdr.code = PSN_WIZNEXT;
SendMessage(hDlg,WM_NOTIFY,NULL,(LPARAM)&myLp);

↑のコードじゃ駄目なんですかねぇ??


case WM_NOTIFY:
 LPPSHNOTIFY lppshN = (LPPSHNOTIFY)lp;
 switch (lppshN->hdr.code){
 ...
 }

↑のコードで、「戻る」「次へ」等のメッセージは取得できるので、
同様のメッセージを送ってみたのですが・・・。


ウィザードで、自動で次のページに移行させる方法
(「次へ」ボタンを押した場合と同じ効果を出す方法)
をご存知の方、ご教授下さい。

415 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 17:53:07 ]
>>414
MSDN読め

416 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 19:12:39 ]
>>407
入力送信後にSleep(100);とかしたらどうかに?

417 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 21:51:40 ]
>>414
WM_COMMAND投げたら?



418 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 22:37:30 ]
>>416
いれてみましたがだめでした><

419 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 23:03:29 ]
PC再起動すると動く場合がある

420 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 23:12:33 ]
>>419

421 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 13:21:09 ]
>>419

422 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 13:30:32 ]
PCを起動すると動く場合がある

423 名前: ̄ ̄ ̄ ̄ ̄ ̄V ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ mailto:sage [2008/08/19(火) 13:33:11 ]

    / ̄ ̄ ̄ ̄\
   (  人____)
   |./  ー◎-◎-)
   (6     (_ _) )    カタカタカタ
   | .∴ ノ  3 ノ  ______
    ゝ       ノ  .|  | ̄ ̄\ \
   /       \__|  |    | ̄ ̄|
  /  \___      |  |    |__|
  | \      |つ    |__|__/ /
  /     ̄ ̄  | ̄ ̄ ̄ ̄|  〔 ̄ ̄〕
 |       | ̄


424 名前: ̄ ̄ ̄ ̄ ̄ ̄V ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ mailto:sage [2008/08/19(火) 13:57:04 ]
    / ̄ ̄ ̄ ̄\
   (  人____)
   |./  ー◎-◎-)
   (6     (_ _) )    カタカタカタ
   | .∴ ノ  3 ノ  ______
    ゝ       ノ  .|  | ̄ ̄\ \
   /       \__|  |    | ̄ ̄|
  /  \___      |  |    |__|
  | \      |つ    |__|__/ /
  /     ̄ ̄  | ̄ ̄ ̄ ̄|  〔 ̄ ̄〕
 |       | ̄

425 名前:デフォルトの名無しさん [2008/08/19(火) 23:53:51 ]
別exeで動いているTimerを停止させるAPIはないでしょうか?
またはタイマーIDかタイマー識別子を取得する方法があれば
KillTimerできるのでしょうけど・・・


426 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 23:58:51 ]
>>425
APIフック

427 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 00:02:40 ]
タイマIDはプロセスごとに独立してる



428 名前:デフォルトの名無しさん [2008/08/20(水) 00:03:23 ]
char* str = "aあbい";

みたいに1バイト文字とマルチバイト文字が入り交じった文字列を、
1文字ずつのcharの固まりに分解したいんですが、
IsDBCSLeadByte でcharを1つずつ調べていくしかないでしょうか?

429 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 00:17:09 ]
>>425

別プロセスから、
タイマ停止させるためのメッセージ投げる。
それ受けたらタイマを止める。


430 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 00:19:00 ]
SJISならググって文字コード表見ながら自作
あるいはWideCharToMultiByteして1文字ずつMultiByteToWieeChar

431 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 00:20:58 ]
>>428
CharNextExA / CharPrevExA とか?

432 名前:デフォルトの名無しさん [2008/08/20(水) 00:35:28 ]
>>430
>>431
どうもありがとうございます。
ググってみたところ、どっちも使えそうです。

>>430 はWideCharToMultiByteとMultiByteToWieeChar 逆ですよね。

433 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 02:28:26 ]
事務より簡単で誰でもできる仕事なのに時給は技術者!
ITテスターで稼ぐための情報を交換するスレです。

☆派遣先は大企業じゃないと駄目です。中小だとテスターもプログラムの仕様が
 わからないといけないとかテストプログラムを書けとか言われちゃいますよ。
 大企業ならプログラムを触るだけのテスターでも大丈夫。

☆派遣先ではテスターはプログラムを触るだけでいい、
 そんな空気を作っていきましょう。仕様書読んでください、
 とか言われたら「なんでテスターが仕様書読むんですか」って食い下がって。
 プログラムの仕様書を読んだり、テストの仕様書を書いたりするのは大変ですよ。

☆普通にプログラムを触ってテストしてると、何をテストしているのかわからない、
 とか言い出す人、いるんですよ。プログラマとかってこういう人多いです。
 そういう人は上司にあることないこと告げ口して追い出しちゃいましょ。
 人事権のある人とは仲良くしておくことが大切。
 
☆納品して何かあったら大変だからとプログラムの仕様書を読んだり、
 テスト仕様書を書いちゃうテスターがいますけど、
 こっちもやることになるからすごく迷惑。
 テスト結果の責任は担当の正社員にありますよね。
 納品後のクレームは最終チェックを怠った正社員が悪いんだから
 派遣は関係ないです。 

434 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 02:32:01 ]
cp932->utf16->cp932なんて処理をすると元の文字に戻らなくてはまるかも

435 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 03:06:31 ]
wave dash とか?他何があったっけ?

436 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 03:24:13 ]
いいかげんシフトJISを捨てようぜ。

437 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 04:24:17 ]
>>436がまずやるべきは2ちゃんねるを捨てるところからだな



438 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 07:00:22 ]
>435
すくなくても、WaveDashは戻る。ここがWin32API質問箱である以上は。

439 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 07:17:19 ]
↑話を理解してない馬鹿

440 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 07:26:08 ]
TextBoxでフォームが非アクティブになってもキーボードフォーカスを
常に持ち続けるにはどうすればいいでしょうか。

441 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 07:46:26 ]
>435
つ ttp://support.microsoft.com/kb/170559/ja

442 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 10:09:22 ]
とあるVC++のプログラムを引き継いだのですが
スレッドの作成にCreateThreadが使用されていました。
スレッドはひとつしか作成されないのですが
そういう場合ならCreateThreadでもよいでしょうか?
_beginthreadに修正したほうがよいでしょうか?

443 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 10:14:14 ]
内容による。
それだけで他人が判断できると思っているのなら、ヘルプの読み込みが全く足りない。

444 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 10:18:13 ]
ヘルプを読み込んでみたところ問題ないようです。
ありがとうございました。

445 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 12:26:29 ]
CRTを一切使っていないなら(実際には使っても問題の無いCRTもあるが)
CreateThreadでもいい。

446 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 12:30:19 ]
CRTバリバリ使ってます

447 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 12:47:32 ]
DLL版にリンクすれば問題ない



448 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 13:08:50 ]
お世話になります。
wininetのFindFirstUrlCacheEntryで、特定のキャッシュを探す場合、
第一引数のlpszUrlSearchPatternにどういったものを渡してやればいいのでしょうか。

ttp://msdn.microsoft.com/en-us/library/aa384026(VS.85).aspx (FindFirstUrlCacheEntry)

support.microsoft.com/kb/326201/ja
現状は、これを見ながらDeleteUrlCacheEntryの所を書き変えて検索していますが、
lpszUrl〜にURL文字列を直接渡してもnullを渡したときと動作が変わらず、毎回同じ順番で検索されてしまいます。
一応、言語はC#です。

449 名前:440 mailto:sage [2008/08/20(水) 13:56:17 ]
すみません。言語別スレに行きます。

450 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 20:21:51 ]
>>448
This parameter can only be set to "cookie:", "visited:", or NULL.

451 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 22:12:17 ]
>>450
日本語でおk

452 名前:448 mailto:sage [2008/08/20(水) 22:59:26 ]
>>450
ということは基本的に全数で探すしかないってことですか・・・。
それほど時間はかからないみたいなのでとりあえずこのままでいきます。
ありがとうございました。

453 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 00:30:00 ]
C++でウインドウをクラスで実装してみてるのですが、コンストラクタ内にウインドウ生成のコードを書いてしまうのはアリでしょうか?教えてください。

454 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 01:41:28 ]
サービスプログラムとしてタスクトレイに常駐するプログラムを
作成してるのですが、ユーザーがログインした段階で
Windowを作成しないと、コントロールなどの表示が崩れてしまうようです。
ユーザーがログインているかどうかを判定する方法があれば教えてください。
Windows XPです。

455 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 07:10:57 ]
>>454
もしかして一つのプログラムで全部やるつもりか?
HKLMのRunキーで起動したタスクトレイのプログラムがサービスと通信する、
というのが普通の作り方だと思うのだが。

456 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 08:25:06 ]
>>455
WebやAPI本とかの断片的な知識しかないので
できればその普通のやり方が載っている情報源を知りたいのですが。
MSのセミナーとかですか?

457 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 09:27:11 ]
今までWindowsを使ってきた経験からの普通



458 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 09:32:29 ]
>>453いいんじゃね?

459 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 10:27:00 ]
>>457
やっぱり知ったかでしたか。
関係ない話を始めた段階から読めてました。

460 名前:457 mailto:sage [2008/08/21(木) 10:31:51 ]
オレは通りすがりだよ。
ちなみに、サービスはNT4の頃から作ってる。

461 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 10:48:25 ]
はいはい。もういいよ。
ちなみに自己解決しました。

462 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 10:51:34 ]
サービスが直接ウィンドウ作るのが普通だとしたら、
わざわざ「デスクトップとの対話を許可する」がデフォルトでオフになっているわけがない。

463 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 10:53:27 ]
デフォルトって。プログラムからオンにできるわけだが。

464 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 10:54:14 ]
www.google.co.jp/search?hl=ja&q=%E8%B3%AA%E5%95%8F%E3%82%92%E8%B3%AA%E5%95%8F%E3%81%A7%E8%BF%94%E3%81%99&lr=


465 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 10:57:22 ]
サービスそのものは誰もログオンしていなくても動作するもんだから
ウィンドウそのものを自分で作るようにはできてない。
無理やり後付けで作るのは勝手だが、普通じゃない。

466 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 10:58:44 ]
そもそもレジストリいじるだとか別プロセスにするだとか、
完全に知ったかの妄想なんだよ。


467 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 11:01:26 ]
VNCとかはどうなってんの?



468 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 11:15:35 ]
なんか知ったかという言葉を使いまくってる真性がいるなw

469 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 11:16:03 ]
人格攻撃キター






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

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

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