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


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

Win32API質問箱 Build65



1 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 15:51:24 ]
スレ立てるまでもない、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質問箱 Build64
pc11.2ch.net/test/read.cgi/tech/1207099291/

496 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 10:29:22 ]
>>495
そういうレス(ry

497 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 10:33:54 ]
>>496
そういう(ry

498 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 10:37:33 ]
次の奴、「(ry」とか書いたら樹海行きな

499 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 10:37:56 ]
(ry

500 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 10:52:52 ]
こうして雑談は続く

501 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 11:50:35 ]
・・・3年後

502 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 11:56:28 ]
・・・7年後

503 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 11:57:13 ]
・・・11年後

504 名前:デフォルトの名無しさん [2008/05/02(金) 12:00:30 ]
・・・13年後



505 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 12:08:24 ]
・・・17年後

506 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 12:28:45 ]
そして誰もいなくなった

507 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 12:29:09 ]
Win32API質問箱改め雑談箱 Build65 まとめ

>>12-29
Win32APIの将来性について(雑談)
>>30-53
Win32APIの設計思想と命名について(雑談)
>>54-100
どこまでをWin32APIとするか(議論、雑談) ※結論は>>61-62
>>101-112
「話を理解してない馬鹿」(雑談、荒らし)
>>126-136
なぜ.NETでWin32APIを使うのか(雑談)
>>215-235
MAX_PATHについて(雑談)
>>324-340
sndPlaySoundと音とび(雑談)
>>400-421
真のプログラマと「知らないならレスしないでください」(雑談、荒らし)
>>424-432
今時Win32APIなんて雑談しかない(雑談)
>>433-441
引数を覚える必要はあるか?(雑談)
>>463-474
なぜ雑談が多いのか(雑談)
>>490-506
規格なんてクソ食らえ(雑談、荒らし)

508 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 12:37:55 ]
CSVはboost::spiritにサンプル実装があったような

509 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 12:41:36 ]
つまり、このスレ的な回答で言うと、
そんなAPIは無いという事で

510 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 12:52:38 ]
結論:CSVぐらい自分でパースしろ

--終了--

511 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 12:54:32 ]
Excel 関連の COM に何かあればいいんだろうけどねえ。

512 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 13:04:01 ]
ADOでJET使えばいいじゃない

513 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 21:13:23 ]
同一スレッド以外からのSend/PostMessageをブロックしたいけど無理ですか?

514 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 21:14:58 ]
>>513
WM_PAINT WM_KEYDOWN WM_??? は誰が投げますか?



515 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 21:17:02 ]
>>514
WM_APPとかの話

516 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 21:17:40 ]
なら最初からそう書けと・・・

517 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 21:21:33 ]
それぐらい察してほしかったってのが本音

同一スレッド以外からSend/PostMessageされたWM_APP+???をブロックしたいけど無理ですか?

518 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 21:36:27 ]
他スレッドから投げられたものか判断する方法は分かるが。

519 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 21:50:55 ]
>>518
教えてください

520 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 21:52:46 ]
それぐらい察してほしかったってのが本音

521 名前:デフォルトの名無しさん [2008/05/02(金) 21:53:54 ]
>>519
それくらい君のテレバス能力で察しろ

522 名前:518 mailto:sage [2008/05/02(金) 21:56:31 ]
「またフックか」って言われるから言いたくないとだけ

523 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 21:56:39 ]
>>520-521
そのようなレスは不要です

524 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 21:58:03 ]
それぐらい察してほしかったってのが本音



525 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 21:59:55 ]
>>522
フックしないと無理なら諦めます

まぁデスクトップのListViewに
PostMessage(hwnd, LVM_INSERTITEM, 0, 0xcccccccc);
とかすると落ちるから無理だろうとは思ってたけど

なんでどのスレッドからのメッセージなのか取得するAPIを用意してないのかなぁ

526 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 22:01:22 ]
それぐらい察してほしかったってのが本音

527 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 22:39:13 ]
よそのスレッドからSendされているかどうかは
InSendMessageやReplyMessageの戻り値を見ればわかる。
この関数、Postは無理だけど。

528 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 22:48:55 ]
527を今日一番輝いていたレスに認定

529 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 22:54:24 ]
>>527
そんな函数あるのか……と思ったらマジでありやがるw
MSすげぇw 知ってるおまえさんもすげぇww

530 名前:513 mailto:sage [2008/05/02(金) 23:07:28 ]
>>527
ありがとうございます

531 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 23:26:09 ]
>>514-526で煽ってる人、知らないならレスしなくていいよ。
ウザイだけだから。

532 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 23:53:22 ]
え?やだよ?

533 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 00:06:35 ]
>>529
MSDNで関連API一覧を眺めるとかしようぜ。
メッセージ関連なんて20個くらいしかないんだから。

534 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 00:11:53 ]
>>532
死ね



535 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 00:20:46 ]
>>534
はぁ?なんで?

536 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 00:37:54 ]
>>535

537 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 00:41:22 ]
>>534,536

538 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 00:42:35 ]
>>532=>>534=>>535=>>536=>>537
自演乙

539 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 00:44:21 ]
それぐらい察してほしかったってのが本音

540 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 00:45:53 ]
↑話を理解してない馬鹿

541 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 04:33:30 ]
経験不足の奴には察することはできない。

542 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 04:36:20 ]
>>517
>>527
で終了するやりとりを延々と引っ張るなよ

543 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 07:12:30 ]
そもそもWM_PAINTやWM_KEY**、WM_MOUSE**などは
普通はOSが内部でPostしてるメッセージだから
>>514のような疑問を持つ奴にまともな回答なんてできるはずが無い。
というわけで>>514君には荒れた責任を取ってもらおう。

544 名前:デフォルトの名無しさん [2008/05/03(土) 08:54:15 ]
C++初心者です。
ファイルマッピングとかどうやって使えますか?



545 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 09:21:34 ]
ググれカス

546 名前:デフォルトの名無しさん [2008/05/03(土) 09:35:21 ]
「ググれカス」とはどういう意味ですか。
何語ですか?


547 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 09:41:04 ]
C言語

548 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 09:55:50 ]
>>546
日本語

グーグルで調べろよこのカスが!
って意味

549 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 11:06:16 ]
通りがかりですみませんが、>>525 を見ての便乗質問です。

> デスクトップのListViewに
> PostMessage(hwnd, LVM_INSERTITEM, 0, 0xcccccccc);
> とかすると落ちる

これって、単に LVM_INSERTITEM における実装の怠慢なのでしょうか。
それとも、一般にウィンドウプロシージャ側ではポインタとして
与えられたパラメータの妥当性はチェックしないものなのでしょうか。

推測ですが、いちいちポインタの妥当性をチェックするのは面倒だし
実行時間もかかるので、チェックは行っていないような気がします。
しかしそうすると、他のプロセスからのウィンドウメッセージによる
攻撃を受け入れてしまうことになりますよね。

先輩プログラマの皆さんはどのようにコーディングされていますか?

550 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 11:34:17 ]
よっぽどセキュリティに気をつかった実装でもなけりゃ、他のプロセスからの
悪意のメッセージ攻撃なんて想定しない。
悪意のあるプロセスが実行されている時点でそのマシンはもうダメなんだし、
ターミネートプロセスされたらどうするんだって話になる。

ただ、パラメータチェックすること自体は、
バグ対策とか、モジュールの独立性確保の意味で普通にやるだろ。

551 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 11:40:58 ]
そもそもプロセス超えているんだから、おまえのメモリアドレス渡しても動くわけが無いだろ。
ちょっとは考えろよ。
Windowsが面倒を見てくれるのは一部の文字列をやり取りするメッセージだけだ。
LVM_INSERTITEMはWM_USERなんだから、ウインドウクラス独自のメッセージなんだよ。
だからプロセスをまたいでやり取りはできない。
どうしてもやりたきゃ、相手のプロセスにコード注入しやがれ。


552 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 11:49:53 ]
> LVM_INSERTITEMはWM_USERなんだから
ハイ、知ったか乙

553 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 12:15:11 ]
WM_USERは0x0400〜0x7FFFで、LVM_INSERTITEMは0x1000 +7 or +77だから
WM_USERの範囲内にあるな。

554 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 12:21:15 ]
WM_USERなんて名前だから、自作アプリの独自メッセージはそこから使えって意味だと思ってた俺。
そういうのはWM_APPからって、ややっこしいんだよ!逆だろ名前!
せめてWM_USERだけでもなんとかならんかったのか。




555 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 12:26:55 ]
WM_USER+???を使っている物(Toolbarなど)と、そうでない物(ListViewなど)があるのは何故だろう
何か理由でもあるのだろうか・・・

>>554
Win16→Win32でコモンコントロールが大量に追加されてWM_USER未満では足りなくなったから
WindowsのコントロールがWM_USER以降を使うようになってWM_APPが定義されたかと

Win16時代のAPIヘルプにはこう書いてある。

> 0〜WM_USER − 1  Windowsが使用するために予約されているメッセージです。
> WM_USER〜0x7FFF プライベート ウィンドウ クラスが使用する整数メッセージです。
> 0x8000〜0xBFFF  Windowsが使用するために予約されているメッセージです。
> 0xC000〜0xFFFF  アプリケーションが使用する文字列メッセージです。

556 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 12:31:46 ]
こういう話は面白いから許容

557 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 12:34:06 ]
WM_USERはuser32.dllが使う場所かと思っていました

558 名前:549 mailto:sage [2008/05/03(土) 13:03:19 ]
>>550
どうもありがとうございます。そういうことになりそうですね…。
確かに、他から TerminateProcess できてしまうことを考えると、
悪意のある攻撃を想定することはあまり意味がないですね。

>>551
>>549 の説明不足でしたかね…すみません。
ポインタの値が、プロセス境界を超えた時点で意味がなくなることは理解しています。
動作させたいのではなく、他のプロセスからの無意味なアクセスを拒否したかったのです。

559 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 13:17:38 ]
>>558
じゃ具体的にどうやるんだ。
誰がメッセージを送ったのか知る方法は無いぞ。

アドレスだって、予約されてるとか、コミットされてるぐらいしかわからん。

560 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 13:19:10 ]
同一デスクトップ内の同一権限のアプリにイタズラされることを想定するなんて
かなーり無意味なことだと思うが

561 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 14:16:05 ]
そういう事が簡単に出来てしまうのもどうかと思うぞ
今更変えられないのも分かるけどな

562 名前:549 mailto:sage [2008/05/03(土) 14:18:00 ]
>>559
アドレスから直接判断するのは難しいので、例えば __try 〜 __except の
中で中身を読んで値をチェックすれば可能かなと思っていました。
もちろん、この方法にも限界があるような気はしますけど…。

>>560
そうかもしれません。ただ、仮に攻撃を想定しないでコーディングして、
>>525 に書かれているようなことをされてアプリが落ちてしまったとき、
実際は送った側に問題があるにもかかわらず、落ちたアプリの側に
問題があるように見えてしまうのが気持ち悪かったというのはあります。

563 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 14:46:14 ]
気持ち悪さの解消のためにここまで引っ張ったのかよ

あほらしい

564 名前:デフォルトの名無しさん [2008/05/03(土) 14:59:13 ]
↑話を理解してない馬鹿



565 名前:デフォルトの名無しさん [2008/05/03(土) 15:04:37 ]
↑話を理解してない馬鹿

566 名前:549 mailto:sage [2008/05/03(土) 15:07:30 ]
>>563
ちょっと気になったものですから、この機会に質問させていただきました。
私の疑問は >>550 さんのお返事で解消できましたのでこれにて消えることにします。
他にも不快な思いをした方がいらっしゃいましたら、申し訳ありませんでした。

567 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 15:09:52 ]
vertualalloc使えば、相手プロセスがアクセス出来たんだったかな

これは、それ使ってるんじゃない?
www.yoshibaworks.com/ayacy/inasoft/lv2csv/index.html

568 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 15:13:19 ]
>>567
それはVirtualAlloc、WriteProcessMemory、CreateRemoteThread辺りでDLL注入してるだけじゃないの

569 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 15:13:58 ]
IsBadReadPtr でも使っとけ

570 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 15:20:18 ]
>>569
obsoletedだ馬鹿

571 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 15:29:02 ]
ところで、obsoleteを動詞として使う用法ってどの程度一般的なの?
辞書によっては載ってるのと載ってないのとあるんだけど。

572 名前:デフォルトの名無しさん [2008/05/03(土) 15:29:08 ]
vertualalloc(笑)
どこをどうすればそんな勘違いして覚えられるんだよww

573 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 15:31:30 ]
ローマ字読みです

574 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 15:33:58 ]
www.rfc-editor.org/categories/rfc-standard.html

obsoletedなんて単語はrfcでも使われてないな



575 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 16:19:20 ]
>>573
ローマ字読みでもベーチャルだろ
つうかAPI名をスペルミスする奴は打ち慣れてない(=スキルが浅い)証拠だと思うな

で、誰だよSHStripMneumonicなんてミスした奴w
せめて#defineで間違ってない名前でも定義しとけっつーの

576 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 17:00:58 ]
>>571
m-wによると、1640年からだそうだ。
--
Main Entry: 2obsolete
Function: transitive verb
Inflected Form(s): obsolet・ed; obsolet・ing
Date: 1640
: to make obsolete
--

577 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 17:48:34 ]
>>571はどの程度一般的かを聞いてるのであって
何時から使われ出したかなどとは聞いていない

578 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:04:35 ]
外野は黙っとけの典型例だな。なに文句付けてるんだか。

579 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:12:46 ]
>>578
お前も外野だろ
そして俺も

580 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:13:53 ]
BNCで引いたらobsoletedを動詞で使ってる用例が3件だけあった。形容詞は340件だった。

581 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 00:14:19 ]
くだらん足の引っ張り合いしてんなよ。見苦しい。

ところで、自作アプリ内で動画再生したいんだけど、Media PlayerとDirect Showどちらを使うのが良い?


582 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 00:17:24 ]
好きな方を使うとよい

583 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 00:56:22 ]
エディットコントロールでDrawTextのDT_WORDBREAKみたいに自動で改行してくれるように
するにはどうすればいいですか?

584 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 01:52:30 ]
横スクロールバーを消す



585 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 02:34:26 ]
>>581
自前でデコード+DirectGraphicsで描画

586 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 02:59:12 ]
>>584
ありがとう、できた

587 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 03:28:57 ]
DialogBoxやCreateDialogを使わず、CreateWindow等を使って同じ事をする場合、どう書きますか

588 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 03:56:52 ]
ひたすらコントロールを作りまくる

589 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 05:39:07 ]
>>588
dialog base unitの座標変換もやってる?
絵とか貼ると、どうせズレるからおれは無視してる。


590 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 05:45:56 ]
そんな物無視でいいだろ
無視しないで中途半端に絵とか貼ってもXPのダイアログみたいに
アイコンやビットマップが潰れてかえって見づらいだけ

591 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 05:47:47 ]
質問が悪かったです。
DialogBox等はCreateWindowExを使ってダイアログを生成してると書いてありました。
どのようにCreateWindowExを使ってるのか知りたかったです。

592 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 06:23:19 ]
>>581
VFW関数にフレームを1枚ずつデコードしてもらってGDIで描画

593 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 06:52:32 ]
>>591
Old New Thingの本によくまとまっている。
邦訳版は「Windowsプログラミングの極意」
10.4.2のあたり。

594 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 06:56:25 ]
old new thingの本というならば、リンクぐらい貼ってやれよ。
今すぐ読めるんだから。

だいたいこのあたりか。
ttp://blogs.msdn.com/oldnewthing/archive/2005/03.aspx
ttp://blogs.msdn.com/oldnewthing/archive/2005/04.aspx



595 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 14:37:22 ]
こんにちは。DelphiスレでAPIスレで聞いた方がいいとアドバイスがあったので、質問します。
とりあえずマウスのフックとキーボードが押されたときに反応する(フックっていうのか?)のはできるんだけど、
電卓の例の場合はどういう種類のフック使うんでしょうか?
電卓のプログラム(OSに搭載されている)の3のボタンを9っていう数字に変えたいんですけど(というより3を押すと9を押したときと同じ動作に)

596 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 14:51:06 ]
キー入れ替えソフト使ったほうが早いような・・・レジストリいじるやつ






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

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

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