- 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/
- 482 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 15:31:30 ]
- サービス以外でユーザーがログインしているかどうかを知る必要はない。
だってログインしているから
- 483 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 16:36:43 ]
- クレデンシャルプロバイダやGinaモジュールでも取得したい場合はあるかも?
- 484 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 20:56:09 ]
- explorer.exeのプロセスが居たらログオン中でいいんじゃね?
- 485 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 21:18:48 ]
- >>484
ばーか
- 486 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 21:32:56 ]
- >>485
なにが?w
- 487 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 21:43:41 ]
- >>484の回答が馬鹿丸出しということ
- 488 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 22:05:08 ]
- あ〜あ、
>>485は反例を一つ示せば>>484を完全否定できたのにね これじゃ>>485の方が馬鹿に見える
- 489 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 22:06:37 ]
- 顔真っ赤ですよ
- 490 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 22:10:44 ]
- >>482
そのプログラムをタスクスケジューラに登録する場合はどうかな?
- 491 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 22:26:00 ]
- >>490
タスクスケジューラは設定されたアカウントでログオンするよ。
- 492 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 22:34:00 ]
- >>484
ユーザーのログインシェルがexplorer.exe以外の場合がある、 とか聞いたことある気がするけど、そんなケース無視しても良い気がするし。 >>484の方法でダメな場合って他に何かあったっけ。
- 493 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 22:48:47 ]
- explorer.exeが異常終了したとき
- 494 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 23:21:25 ]
- そもそもログインしているユーザの一覧なんて
権限さえあれば取得できないわけがないと思うんだけど。
- 495 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 23:32:58 ]
- なんか知らんが、たぶんOSごとに違うと思う
- 496 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 23:34:44 ]
- Windows TIPS 現在ログオン中のユーザー名を調べる
www.atmarkit.co.jp/fwin2k/win2ktips/646logonuser/logonuser.html プログラムでやる場合、やはりexplorer.exeの有無ぐらいしかないのかね?
- 497 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 23:51:24 ]
- GetCharABCWidths()で取得されるA寸法は、 GetGlyphOutlineで取得されるGLYPHMETRICSのgmGlyphOrigin.xとは違うものなんでしょうか?
説明を読むと同じに見えるけど、違う値が返ってきて混乱してます。
- 498 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 00:03:54 ]
- >>497
アンダー・オーバーハングに対応した文字だと違ってくるんじゃないかな。
- 499 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 00:46:12 ]
- >>493
異常終了したらwinlogon.exeがexplorer.exeを再起動するぞ。
- 500 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 00:47:42 ]
- >>499
タスクマネージャで終了したら再起動しない
- 501 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 01:02:59 ]
- たまにその対策をしてない常駐アプリはタスクトレイから消えちゃうんだよな
- 502 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 01:19:26 ]
- 俺が使ってる常駐アプリの中ではその対策をしてる方が少ないな
- 503 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 01:45:23 ]
- >>454 はユーザがログオンしてるかどうか判定したいと言ってるけど、
実際は通知領域の表示ができるかどうかの問題なわけよ。 だから、シェルとしてのexplorer.exeで判定するのが正しい。 あと、起動処理が終わったかどうか調べる必要があるのかもしれない。 WaitForInputIdle?
- 504 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 02:10:50 ]
- GetDesktopWindowだとどうなるんだろう。
ログオフ中はきちんとNULLが返るのかな? 適当な値が返ってきたらやだな。
- 505 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 02:49:50 ]
- >>503
それならShell_NotifyIconが成功するまで適当な間隔で何度も呼び出せばいいだろ そもそもXP以降はそうしろとMSのサイトにも載ってるし、ログオンとか関係ない話になる
- 506 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 07:53:52 ]
- >>495
俺もなんか知らないけどWMIで取得できそうな気がする。
- 507 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 22:09:42 ]
- >>500
それはWindowsが異常終了として扱わない。 explorer.exeが異常終了した場合はwinlogon.exe(MSGINA.DLL)がWlxStartApplicationで検出する。 そこでSHELLとしてのexplorer.exeが再度起動される。
- 508 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 23:08:46 ]
- 空行ウザイ
- 509 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 01:15:50 ]
-
- 510 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 01:19:59 ]
-
↑だからうぜーってば
- 511 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 18:46:42 ]
- しばらく放置しないと、感染症になる雰囲気だけど、
ミソギを兼ねて、つまんない質問を。 Debug バージョンで HeapFree() で落ちるのは、スタックなどの管理領域を 壊したからですか。一時メモリで取った領域でないところに書き込んでも、 運よく、そういう領域でないなら落ちませんか。それとも必ず落ちますか。
- 512 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 19:31:46 ]
- 落ちますん
- 513 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 19:35:47 ]
- HeapAlloc/HeapFreeの管理するメモリ領域は
普通はDebugランタイムのチェック対象ではないが DebugランタイムがAPIフックするような開発環境ならその限りではない
- 514 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 19:54:21 ]
- 運がよければ落ちないかもね
しかし運に頼ってプログラミングするのはやめてもらいたい
- 515 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 20:09:50 ]
- Windows2000からは、ヒープにチェック機構が追加されたので、
バッファオーバーラン等は、ページ単位より細かくチェックが入るようになり、 HeapFree呼び出し時に例外(ブレークポイント)を発生させるようになった。
- 516 名前:511 mailto:sage [2008/08/25(月) 20:30:59 ]
- 早速、有難うございました。
>>514 Xp & VC++6.0 では落ちてなかったのに、Vista & VC++2008EE でだめになったからネ。
- 517 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 23:51:30 ]
- ネットワーク接続時にタスクトレイに出すことの出来る
ローカルエリア接続等で出ている送受信の総量などは APIなどで所得出来るものですか?もし出来る場合どのようなAPIで可能 でしょうか?
- 518 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 00:13:06 ]
- 休止やスリープから戻ってくるとアプリは起動しているけどパスワード入力画面という状態になってしまいます。
パスワード入力画面の最中は処理を行いたくないのですが、ログイン(?)したかどうかを調べることはできないでしょうか?
- 519 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 00:21:23 ]
- WTSナントカ
- 520 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 00:26:07 ]
- WM_WTSSESSION_CHANGE
- 521 名前:518 mailto:sage [2008/08/26(火) 00:35:22 ]
- ありがとうございます。これで解決できそうです。
- 522 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 07:17:55 ]
- >>517
www.geekpage.jp/programming/iphlpapi/
- 523 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 11:04:12 ]
- ユーザ名やパスワードなどの文字列を暗号化してINIファイルに書き込んだり、
それを取り出して複合したりといった処理を行いたいのですが、 なにかよいAPIやサンプルはありませんでしょうか。
- 524 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 11:15:08 ]
- CryptoAPI
- 525 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 11:17:04 ]
- サンプルは↓の右下の奴とか結構とっつき易い
ttp://www.trustss.co.jp/
- 526 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 15:08:12 ]
- APIじゃないかも知れないんですが、
MCEリモコン制御に対応させるためのsdkやらドキュメントの 手がかりってどの辺にありますでしょうか? うまい検索単語が思いつかずに、開発とは関係ないページしか 引っかかりません
- 527 名前:デフォルトの名無しさん [2008/08/26(火) 15:21:40 ]
- 指定PCにpingして生存確認したいんですが、pingするAPIを教えてくださいよ
- 528 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 15:23:00 ]
- ずばりpingするようなAPIはないからググってサンプル見つけるんだ。
- 529 名前:デフォルトの名無しさん [2008/08/26(火) 15:52:08 ]
- ああ、いやいや、どっかやりかた載ってるサイトを教えてくださいよ
- 530 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 15:57:19 ]
- CreateProcess+ping.exe
- 531 名前:デフォルトの名無しさん [2008/08/26(火) 15:59:05 ]
- ああ、ping.exeとかそんなんじゃなくておねがいしますよ
- 532 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 15:59:55 ]
- >>527
DWORD PingToComputer(LPCTSTR HostAddress);
- 533 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 16:00:14 ]
- API関係ないがな
ICMP プロトコル あたりでググればサンプルあるだろう
- 534 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 16:00:33 ]
- IcmpSendEcho
- 535 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 16:04:27 ]
- IcmpSendEchoってまだ使えるのか・・・?
- 536 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 16:09:25 ]
- PFSDK windows server 2003 の IP Helper には
IcmpSendEcho 居て XP も可能と書いてある 最新のは知らない
- 537 名前:デフォルトの名無しさん [2008/08/26(火) 16:11:05 ]
- なんだよお前らなんでそんなに優しいんだよ?
いつものお前ららしくないぜ? >>532-536 とりあえずさんくす。 何かその辺を調べてみますわ
- 538 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 16:24:21 ]
- winsock2
- 539 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 16:25:23 ]
- www.geekpage.jp/programming/iphlpapi/send-icmp.php
- 540 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 16:26:46 ]
- >>522>>539
宣伝ご苦労様です
- 541 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 16:26:59 ]
- www.kt.rim.or.jp/~ksk/wskfaq-ja/examples/rawping.html
- 542 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 17:50:12 ]
- >>526
ttp://download.microsoft.com/download/5/b/9/5b97017b-e28a-4bae-ba48-174cf47d23cd/MED001_WH06.ppt
- 543 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 21:38:10 ]
- >>522
おおお!ありがとうございます!
- 544 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 22:03:51 ]
- WM_CREATEの所に
{ LPCTSTR lpszTxt = TEXT("猫でもわかるWindowsプログラミング"); HDC hdc; hdc = GetDC(hWnd); TextOut(hdc, 10, 10, lpszTxt, lstrlen(lpszTxt)); ReleaseDC(hWnd, hdc); } を張り付けても文字列が表示されないのはなぜでしょうか。
- 545 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 22:27:42 ]
- すぐに消えてしまうからです
- 546 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 22:39:23 ]
- WM_CREATEは作成中だったような
- 547 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 22:39:27 ]
- 描画はWM_PAINTで
- 548 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 00:14:05 ]
- DLLインジェクションを使ってiexplore.exeに割り込んで
IAT書き換えでWSARecvとrecvをフックしてみたんだけど、 どうやらフック先の関数が呼ばれていないみたいなんだ。 MessageBox表示だけのプログラムに割り込んで MessageBoxをフックするのは出来たんでインジェ クション部分に問題はないと思うんだけど…。 なんかアドバイスもらえませんか? 参考にしたサイト ttp://ruffnex.oc.to/kenji/text/api_hook/
- 549 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 00:21:36 ]
- recvだのなんだのしてるのはMSHTMLとか下請けモジュールだろ?
- 550 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 00:30:39 ]
- つまり実際にrecvなりなんなりしてるモジュールに対して
Hookかけないとダメってことですか。
- 551 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 00:33:27 ]
- >>548
あまり関係無いけど、その人の書いたこれ ttp://ruffnex.oc.to/kenji/text/listexport/ DllMainの中でLoadLibrary呼び出すコードを出力してたのを思いだした。
- 552 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 00:36:18 ]
- GetProcAddressで直接呼んでるのかもしれない。
GetProcAddressもフックしてみては。
- 553 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 00:44:36 ]
- ヒント: ブラウザの実装コードは何処にある?
- 554 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 01:01:52 ]
- 正解:地球
- 555 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 01:27:46 ]
- ありがとうございます。
>>552 GetProcAddressもフックして試してみます。 >>553 実装コード自体はiexplore.exeはもっていないんですね。 もう少し調べてみようと思います。
- 556 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 01:55:53 ]
- フックならジェイソン尾妻に聞くといいよ
- 557 名前:544 mailto:sage [2008/08/27(水) 14:29:36 ]
- <<545,<<546,<<547
ありがとうございます。 ウィンドウを生成した後にこのコードを載せたら そのタイミングでは表示できるのに…… すぐに消えるのはなぜでしょうか。 できればもう少し詳しくお願いします。
- 558 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 14:57:54 ]
- >>557
WM_CREATE の時点ではまだウィンドウが非表示だから 何描いても無駄。
- 559 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 15:00:14 ]
- WM_CREATEの先頭で無理やりShowWindowしたら出たw
- 560 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 15:14:13 ]
- 普通は WM_PAINT だろ
- 561 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 15:55:23 ]
- >>559
そして他のウィンドウを重ねると文字が消えると
- 562 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 16:07:24 ]
- >>561
それが、Vistaだとなかなか消えないんだよねえ。 リサイズして描画範囲より小さくしてやるとか、最小ボタン押して戻すとかしないと消せなかった・・・
- 563 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 16:12:46 ]
- そりゃ、DWI動いてるからな。
- 564 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 16:22:23 ]
- 今すぐAeroGlassをオフにして試せ
- 565 名前:544 mailto:sage [2008/08/27(水) 18:15:33 ]
- 答えてくれた方々ありがとうございます。
このエラーで教えられながらいろいろ調べて こんなに勉強になるとは思いませんでした。 もう一つ気になるエラーがあるのですが、 WM_PAINTの所で hdc = BeginPaint(hWnd, &ps); TextOut(hdc, 20, 20, (LPCTSTR)szStr, (int)strlen(szStr)); EndPaint(hWnd, &ps); hdc = BeginPaint(hWnd, &ps); TextOut(hdc, 90, 90, (LPCTSTR)szStr, (int)strlen(szStr)); EndPaint(hWnd, &ps); とやると初めのTextしか表示されません。これはなぜなのでしょう。
- 566 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 18:17:48 ]
- >>565
なんでBeginPaint と EndPaint は1回でおk
- 567 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 18:18:55 ]
- EndPaintで無効領域が全部リセットされてるから。
デバイスコンテキストは無効領域の部分しか更新しない。
- 568 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 18:20:21 ]
- >>565
BeginPaintとEndPaintは最初と最後に置くだけ。 一回のペアで無効領域(書き換えの必要な範囲)がなくなるから 2回目呼んでも書き換え範囲外になって何もかかない。
- 569 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 19:27:07 ]
- invalidateRectで無効にすれば良い訳ですね?
- 570 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 19:36:52 ]
- >>563
DWIって何ですか?
- 571 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 19:50:06 ]
- ggrks
- 572 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 20:02:11 ]
- DWM、、、ね。ミスったわ。
- 573 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 20:51:18 ]
- >>569
そして、またWM_PAINTが飛んできて無限ループするのですね。わかります。
- 574 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 01:30:33 ]
- こういう通過儀礼って必要だと思います。
自分で考える力を養うためにしばらくそっとしてあげて!
- 575 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 01:56:18 ]
- 一方ロシアは
- 576 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 03:00:52 ]
- WPFを使った
- 577 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 21:13:25 ]
- つまり
- 578 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 23:16:23 ]
- \ /_ / ヽ / } レ,' / ̄ ̄ ̄ ̄\
|`l`ヽ /ヽ/ <´`ヽ u ∨ u i レ' / └l> ̄ !i´-) |\ `、 ヽ), />/ / 地 ほ こ !´ヽ、 ヽ ( _ U !、 ヽ。ヽ/,レ,。7´/-┬―┬―┬./ 獄 ん れ _|_/;:;:;7ヽ-ヽ、 '') ""'''`` ‐'"='-'" / ! ! / だ. と か | |;:;:;:{ U u ̄|| u u ,..、_ -> /`i ! ! \ :. う ら | |;:;:;:;i\ iヽ、 i {++-`7, /| i ! ! <_ の が __i ヽ;:;:;ヽ `、 i ヽ、  ̄ ̄/ =、_i_ ! ! / ヽ ヽ;:;:;:\ `ヽ、i /,ゝ_/| i  ̄ヽヽ ! ! ,, -'\ ヽ、\;:;:;:;:`ー、`ー'´ ̄/;:;ノ ノ ヽ| / ,、-''´ \/ ̄ ̄ ̄ ̄  ̄ ̄ ̄ Y´/;:;:;\
- 579 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 00:38:27 ]
- SetConsoleTextAttribute関数でRGBを任意指定をしたいんですけど、これってできないんですか?
- 580 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 00:43:58 ]
- >>579
無理です
- 581 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 01:49:35 ]
- 頑張れば可能じゃないの?
例えばの話だが、 赤にする→文字を書く→緑にする→同じ位置に文字を書く を目にも止まらぬ速さで繰り返せば理論上は黄色に見えるだろ。 ただポケモンショックでぶっ倒れても俺は知らん。
- 582 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 17:00:30 ]
- 自分のstartupinfoを書き換えるにはどうすればいい?
- 583 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 17:02:30 ]
- 自分自身の書き換えではないけど…
差し替えた STARTUPINFO で 自アプリを CreateProcess して、自分自身は死ぬ とか?
- 584 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 17:06:47 ]
- やだ死にたくない
- 585 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 17:55:23 ]
- >>582
SetStartupInfo
- 586 名前:デフォルトの名無しさん [2008/08/29(金) 17:58:38 ]
- しにたくないよう
- 587 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 18:08:44 ]
- マジレスするとGetStartupInfoWはRTL_USER_PROCESS_PARAMETERSの内容を写してるだけ
RTL_USER_PROCESS_PARAMETERS* p = (RTL_USER_PROCESS_PARAMETERS*)0x20000; でアドレスが得られるから後は煮るなり焼くなり好きにしろ
- 588 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 18:21:31 ]
- ttp://undocumented.ntinternals.net/UserMode/Structures/RTL_USER_PROCESS_PARAMETERS.html
>>RTL_USER_PROCESS_PARAMETERS is located at address 0x20000 (for all processes created by call WIN32 API CreateProcess). 今はどのOSでもそうなのかもしれないが、将来はどうなるかわからん まあ頑張れ
- 589 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 18:44:01 ]
- そんなの気にしなくていいよ
- 590 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 19:24:55 ]
- 何という糞プログラムw
- 591 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 19:49:04 ]
- >>587-588 ありがと!
- 592 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 20:17:29 ]
- STARTUPINFOを書き換えるなんてのがそもそも糞プログラムなんだから
方法がOS依存しようがそんな事どうでもいいだろ
- 593 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 21:40:15 ]
- 個人的には、GetCommandLine()の書き換えも同じくらい糞だと思うが、
argvの書き換えが認められているから、こっちは許容されている感じがする……。
- 594 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 22:19:50 ]
- リストボックスの文字列の高さを決めたいんだけど、
TEXTMETRICのtmHeightじゃ高すぎて(上下の文字列と空間開きすぎ) LOGFONTのlfHeightじゃ低すぎるんだけど(英語OSだとgとかpとかの下が切れた) どうやったらいいのかな?
- 595 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 22:31:50 ]
- WNDCLASSとWNDCLASSEXの違いってなんですか?
- 596 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 22:56:11 ]
- 拡張版か否か
- 597 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 23:05:40 ]
- >>581
そんなことでポケモンショックになるならDLPプロジェクタが発売禁止になってるて。
- 598 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 23:09:12 ]
- >>581
やってみたら?
- 599 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 23:09:31 ]
- >>594
TEXTMETRIC.tmHeightが開きすぎるように感じるのは、 むしろ日本語フォントが詰めて描画される傾向にあるから。 メイリオの話なら、それはフォント自体の仕様でそれが正常。 LOGFONT.lfHeightが低すぎるのは、 高さを決めたときのフォントと違うフォントで描画している。 とエスパーレスしてみる。
- 600 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 23:29:32 ]
- CreateWindowで作ったウインドウの背景色を後から変更するにはどうしたら良い?
- 601 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 00:05:33 ]
- >>600
CreateWindowで作ったウインドウの背景色を後から変更したら良い
- 602 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 00:25:41 ]
- >>600
h ttp://winofsql.jp/VA003334/CprogSTD020726201337.htm など
- 603 名前:600 mailto:sage [2008/08/30(土) 00:27:55 ]
- >>601
なるほど。 ありがとうございます。
- 604 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 00:29:12 ]
- ある拡張子のファイルを開くプログラムに自作のソフトを設定して複数のファイルを同時に開いた時
コマンドで複数の引数を渡されるのではなく、開いた数だけプログラムが起動してしまうんだけど これを何とか一つのプログラムで開けるようにできないですか?
- 605 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 00:32:28 ]
- >>604
出来ます。
- 606 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 00:34:03 ]
- >>604
mutex でググってみる?
- 607 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 00:34:12 ]
- まあ単色塗りつぶしにPatBltとか使うのは無能なんだが。
- 608 名前:600 mailto:sage [2008/08/30(土) 00:36:53 ]
- >>603は私じゃありません。
- 609 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 00:39:40 ]
- >>600
SetClassLong
- 610 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 01:40:31 ]
- 素直にFillRect使っとけ、って感じはするね。
ExtTextOut使えとは流石に言わないけど。
- 611 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 02:09:48 ]
- >>599
日本語OSだとMS UI Gothicで 外語OSだとMS Shell Dlgとかいうフォントがきてる 日本語OSだとLogFont.lfHeightはちょうどいい感じ 外語OSのときに狭い。tmHeightは広い。 lfHeightt+2か3くらいで出せるとよさげ。 tmExternalLeadingとかいうのが2できてるけど、 日本語だろうと外語だろうと関係なくきてるから根拠がわからん。 tmInternalは常に0だし(´・ω・‘) 情報が良くわかってなくてスマンコ
- 612 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 05:19:24 ]
- >>610
昔はExtTextOut使った方が速かったんだけどね
- 613 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 09:03:08 ]
- >>602>>609>>610
どーも。SetClassLongを使ったら無事できました。
- 614 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 10:03:19 ]
- リッチエディットについて質問させて下さい。
リッチエディットにアイコンまたはビットマップをテキストと混在させて 表示することはできるのでしょうか? また、そのアイコンやビットマップをクリックしたことを検出することは できるのでしょうか。 もし可能でしたら、参考になるサイトや資料へのポインタ等をお教えいただければ ありがたいです。
- 615 名前:604 mailto:sage [2008/08/30(土) 12:11:09 ]
- 一応できたので報告。
mutexで二重起動を防止しつつ既に起動しているなら FindWindowでそのウィンドウを見つけてCOPYDATAメッセージでコマンド引数を渡し 読み込み、後起動のウィンドウを閉じる。 となりました。ありがとうございました。
- 616 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 12:58:30 ]
- // ウィンドウの作成
if(isFullScreen) { // フルスクリーン int sw; int sh; // 画面全体の幅と高さを取得 sw = GetSystemMetrics(SM_CXSCREEN); sh = GetSystemMetrics(SM_CYSCREEN); 画面全体の高さを幅を取得とありますが 今使っているディスプレイのサイズを取得するってことですか?
- 617 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 13:04:24 ]
- プライマリモニタ
- 618 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 13:07:34 ]
- >>616
シングルモニタの場合には解像度が得られる マルチモニタ環境の時には思ってるものと違うものが返ってくるかもしれない
- 619 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 13:09:44 ]
- ありがとうございます
- 620 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 13:34:49 ]
- >>614
リッチエディットにテキストとビットマップを混在させるのは可能。 ttp://www.codeguru.com/cpp/controls/richedit/article.php/c5383/ この辺が参考になるかと。
- 621 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 16:08:24 ]
- パフォーマンスカウンタから自分自身のCPU使用率を得たいのですが、
自分自身を表すインデックスを取得するのにうまい方法は無いのでしょうか。 列挙するしか無いんですかね。
- 622 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 17:03:51 ]
- >>621
WMI
- 623 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 17:26:42 ]
- あー、自分自身ってのはプロセスのことです。説明不足があったらすみません。
自分自身のプロセスのCPU使用率を取得したい、ということです。 >>622 すみません、ぐぐったのですが、具体的な方法が分かりませんでした、、、
- 624 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 20:34:18 ]
- もっともっとぐぐるんだ
|

|