- 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/
- 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 ]
- 人格攻撃キター
- 470 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 11:37:29 ]
- お前ら前置きに反応しすぎ
ユーザーがログインているかどうかを判定する方法があれば教えてください。
- 471 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 11:47:32 ]
- ターミナルサーバーとかで、複数同時にログインしてるのも考慮?
- 472 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 11:54:22 ]
- GetDesktopWindow()でデスクトップが取れたらでいいんじゃね?
- 473 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 11:55:57 ]
- ユーザーセッションの数が1以上、とかでいいのかなあ。
試さないとなんとも言えんな。
- 474 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 11:56:11 ]
- >>470
サービスでって前提なかったら、GetUserNameでイイジャンって言われちゃうぜ?w 試してないけど、NetUserEnumで列挙してNetUserGetInfo USER_INFO_2の最後のログオン/ログオフの時間取得してとかかなぁ
- 475 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 00:32:43 ]
- サービス語るならせめてAdvancedWindowsと
プログラミングMicrosoft Windows 2000位読め なぜWindowを持つサービスを作るべきでないかは読めば分かるから
- 476 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 08:05:36 ]
- 知らないならレスしないでください
- 477 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 11:48:40 ]
- 知ってるよw
- 478 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 11:51:32 ]
- じゃあレスしてください
- 479 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 14:40:46 ]
- 誰もサービスについての質問なんかしてないのに
- 480 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 14:48:06 ]
- >>454
- 481 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 15:29:09 ]
- >>480
> ユーザーがログインているかどうかを判定する方法があれば教えてください。 これが質問内容だろ 「サービスについての質問」ではない 日本語が読めない奴は黙ってろ
- 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フックするような開発環境ならその限りではない
|

|