■過去ログ置き場に戻る■ 1- 前250 次250 最新50


[memo] "9999999999_00.html#R20" という感じで、URLの最後に "#RレスNo" を追加すると幸せになれます。

Win32API質問箱 Build43
501 名前:デフォルトの名無しさん :2006/06/06(火) 21:11:44
ファイル(NTFS)の副ストリームを列挙するAPIっていうのは無いんでしょうか

502 名前:デフォルトの名無しさん :2006/06/06(火) 21:20:09
BackupRead って調べたらすぐ出てくると思うんだけど。

503 名前:501 :2006/06/06(火) 21:37:38
>>502
いやそのAPIは知ってるんですけど
一つ一つ読むの面倒だし
列挙が終わってもTRUE返さなかったりするので
一気に取得できるいいAPIないかなと思ったわけです


・・調べたところどうも無いみたいなので
ラッパクラスでも書いてお茶を濁す事にします

504 名前:デフォルトの名無しさん :2006/06/06(火) 21:48:38
GetPrivateProfileSectionは、ファイルの最初からキーを列挙して
その順番のままバッファに書き込んでくれるのでしょうか?ソートなどはされませんか?

505 名前:デフォルトの名無しさん :2006/06/06(火) 21:50:15
何もしてくんないよ

506 名前:デフォルトの名無しさん :2006/06/06(火) 22:14:43
エクスプローラライクなファイラをC#2005で作成中です。
マイコンピュータやデスクトップの項目、それらのコンテキストメニュー、
ファイルなどのプロパティの表示といったシェル拡張らしき要素はどうすれば扱えるでしょうか。
shell32.dllを利用するのかな、と見当をつけた辺りで先に進めずにいます。

507 名前:デフォルトの名無しさん :2006/06/06(火) 22:21:35
>>506
msdnでIShellFolder調べてその近くにあるリファレンス等から
めぼしいのを拾ったらある程度は前進できるんじゃね?
よく知らんけど。

508 名前:デフォルトの名無しさん :2006/06/06(火) 22:22:12
>>506
シェル名前空間、Shell's Namespace、IShellFolderあたりでググれ。

509 名前:デフォルトの名無しさん :2006/06/06(火) 22:24:12
SHGetDesktopFolder でデスクトップの IShellFolder を得て、あとはアレコレと。
COM インタフェイス経由でいろんなオブジェクト(インタフェイス)を使うことになります。
あと「パス」に相当する ITEMIDLIST とか。

それなりにメンドクサイので頑張ってください。サンプルはググレばあるでしょう。

510 名前:506 :2006/06/06(火) 23:12:39
>>507-509
よさそうなヒントをいくつもありがとうございます。
調べてみます。

511 名前:デフォルトの名無しさん :2006/06/07(水) 12:11:17
メンバー変数の先頭に付ける「m_」ってどういう意味?
命名規則知りたい。
スレ違いでわるいけど。

512 名前:デフォルトの名無しさん :2006/06/07(水) 12:14:16
>>511
メンバー変数の先頭に付ける…。
ちなみにスタティック変数には「s_」
グローバル変数には「g_」だ。

513 名前:デフォルトの名無しさん :2006/06/07(水) 12:14:37
>>511
メンバ変数

514 名前:デフォルトの名無しさん :2006/06/07(水) 12:26:02
>>511
名付けたヤシに聞け!

515 名前:デフォルトの名無しさん :2006/06/07(水) 13:38:19
この命名規則ってなんだっけ。
確かある人が「プログラミング言語は抽象化を目的としているので、変数名にハードの情報を散りばめてはいけない」って言ってたな。

516 名前:デフォルトの名無しさん :2006/06/07(水) 13:54:19
簡単な時計を作りました。背景を描画してその上に Rectangle を描いてその上に
時刻を表示させます。特に問題無く動いていたと思ったら、よく見ているとたまに
チラつきます。これを抑える方法はないでしょうか。
(無知なりにググってみたら、ダブル(マルチ?)バッファリングという方法は
見つかったのですが、もしもっと簡単に解決する方法があればと思い。。)

517 名前:デフォルトの名無しさん :2006/06/07(水) 13:55:58
ハンガリアン以外ってどんなのあるぅ?

518 名前:デフォルトの名無しさん :2006/06/07(水) 14:13:52
>>516
では、「ない」と答えればダブルバッファを使うのか?

519 名前:デフォルトの名無しさん :2006/06/07(水) 14:18:40
ちらつきに合わせてまばたきする手もある

520 名前:デフォルトの名無しさん :2006/06/07(水) 14:23:42
>>516
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/194nopaintbg/nopaintbg.html
ttp://www7a.biglobe.ne.jp/~ni_sky/cgi-bin/YukiWiki/wiki.cgi?mycmd=search&mymsg=WindowsSDK%a4%c7%a5%c0%a5%d6%a5%eb%a5%d0%a5%c3%a5%d5%a5%a1%a5%ea%a5%f3%a5%b0

お好みでドゾ

521 名前:デフォルトの名無しさん :2006/06/07(水) 14:27:27
>>516
WM_ERASEBKGNDを処理しないことで、多少は改善するかも

522 名前:デフォルトの名無しさん :2006/06/07(水) 15:51:29
MSDNにwindowを開くための雛形と、
それに関する詳細な解説みたいなのはないんでしょうか?

GUI周りの知識はネットで検索して雛形を見て組み込む感じでやっているのですが
この方法だとネットに依存しすぎていて、
オフラインでのプログラミング時などに困ってしまいます。

MSDNで調べながらできれば嬉しいんですが
先ほどから探しても見てもそういった形ではまとめられていないようなんですが…

523 名前:デフォルトの名無しさん :2006/06/07(水) 15:52:59
MSDNにサンプルがくっついてる

524 名前:デフォルトの名無しさん :2006/06/07(水) 15:58:56
見つけられないやつはどこを探してるんだろうか?

525 名前:デフォルトの名無しさん :2006/06/07(水) 16:00:17
MFCやATLのサンプルはあったんですが…

526 名前:デフォルトの名無しさん :2006/06/07(水) 16:14:57
windowを開くための雛形だったら1つあればじゅうぶんだろ
毎回ネットでさがさなきゃならんものか?

527 名前:デフォルトの名無しさん :2006/06/07(水) 16:25:55
いやwindowを開く処理は例に出しただけで
その他のGUI部分を弄りたくなった場合の話です。

528 名前:デフォルトの名無しさん :2006/06/07(水) 16:27:20
>MSDNにwindowを開くための雛形と、
>それに関する詳細な解説みたいなのはないんでしょうか?

529 名前:デフォルトの名無しさん :2006/06/07(水) 16:29:11
CreateWindowExの引数とか、Toolbar コントロールを作ったときの
定番の初期化の仕方とかそういうの?

PSDK のサンプルとかWTLやMFCのソース 読んだりするのを推奨。

530 名前:デフォルトの名無しさん :2006/06/07(水) 16:51:43
>>519
おまえ天才

531 名前:デフォルトの名無しさん :2006/06/07(水) 16:59:34
Windows2000prosp4なんですが、
デスクトップなどで右クリックしたときに表示される
コンテキストメニューに自分で指定したアプリを
起動するような項目を追加したいのですが
どうすればよいでしょうか?

532 名前:デフォルトの名無しさん :2006/06/07(水) 17:28:29
窓の手

533 名前:デフォルトの名無しさん :2006/06/07(水) 20:37:48
入力補間機能を実装したいのですが、足がかりがなくて困ってます。

VC++のような入力補間機能はAPIで手軽に作れたりしますか?

534 名前:デフォルトの名無しさん :2006/06/07(水) 20:47:23
あきらめなさい。

535 名前:デフォルトの名無しさん :2006/06/07(水) 20:47:37
>>533
むり
ファイル解析して一覧表みたいなの作って自力表示

536 名前:デフォルトの名無しさん :2006/06/07(水) 20:58:53
>>522
ttp://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/windowing/windows/aboutwindows.asp

537 名前:デフォルトの名無しさん :2006/06/07(水) 20:59:26
>>531
IContextMenuだったかも?

538 名前:デフォルトの名無しさん :2006/06/07(水) 21:15:43
DLLから関数を呼ぶとき_declspecを使う方法とDEFファイル使う場合があると思うが、
おまえらはどっち使ってる?
もしくは、どう使い分けてる?

539 名前:デフォルトの名無しさん :2006/06/07(水) 21:18:08
何となくDEF使ってる

540 名前:デフォルトの名無しさん :2006/06/07(水) 21:18:33
DEF ファイル使うのはシンボルのエキスポート名や番号を
陽に指定したいときだけかな。

541 名前:デフォルトの名無しさん :2006/06/07(水) 21:52:12
どっちも使ってないけどダメなん?

542 名前:デフォルトの名無しさん :2006/06/07(水) 21:57:54
>>541
どうやってるの?GetProcAddress?

543 名前:デフォルトの名無しさん :2006/06/07(水) 22:15:27
それ

544 名前:デフォルトの名無しさん :2006/06/08(木) 01:22:57
GetOpenFileNameでフォルダを選択することは可能ですか?
もしくは、ファイルとフォルダを同一のダイアログで選択→開くできる方法は
ありますか?
ご存知の方がおられましたらお教え下さい。(_ _)

545 名前:デフォルトの名無しさん :2006/06/08(木) 02:37:21
>Get(ry
無理。

>もし(ry
そのようなダイアログを自分で作る。

546 名前:デフォルトの名無しさん :2006/06/08(木) 02:48:57
> ファイルとフォルダを同一のダイアログで選択→開く
フォルダの中のファイルを開きたい場合どう操作するんだろう

547 名前:デフォルトの名無しさん :2006/06/08(木) 02:50:58
「開く」操作とフォルダ階層を降りていく操作を別にするとか?

548 名前:デフォルトの名無しさん :2006/06/08(木) 10:10:40
>>498
Windowsのバージョンに依存だったはず。
とりあえずWindows98/2000以降はサウンドカードの種類に依存せず複数再生可能(DirectSoundでミキシング)。
95は無印だとサウンドカードの再生可能チャンネル数依存だったはず。

549 名前:デフォルトの名無しさん :2006/06/08(木) 12:35:46
ダイアログ中のフォルダを右クリックして「開く」じゃダメ?

550 名前:デフォルトの名無しさん :2006/06/08(木) 13:36:42
>>544
SHBrowseForFolderで、BIF_BROWSEINCLUDEFILESを指定すればよい。
ただしIE4以上が必要。

551 名前:デフォルトの名無しさん :2006/06/08(木) 18:09:27
WinMain関数の戻り値の型について
WINAPIとAPIENTRYがありますが、
どう違うのでしょうか?

552 名前:デフォルトの名無しさん :2006/06/08(木) 18:13:02
それは戻り値の型ではありません。

553 名前:デフォルトの名無しさん :2006/06/08(木) 18:27:29
>>551
552の言うとおりで、それは呼び出し規約の指定。
どちらも最終的には__stdcallになる。

http://www.google.co.jp/search?q=__stdcall+__cdecl&lr=lang_ja



554 名前:551 :2006/06/08(木) 19:29:48
おれあほす
どうも失礼しました
ありがとうでした

555 名前:デフォルトの名無しさん :2006/06/08(木) 20:27:38
最小化したメモ帳に直接文字を打ち込む(エンターなど含む)
プログラムを作りたいのですが、APIを使って実現可能でしょうか?

556 名前:デフォルトの名無しさん :2006/06/08(木) 20:41:31
>>555
WM_SETTEXTメッセージ送ればいい。

557 名前:デフォルトの名無しさん :2006/06/08(木) 22:06:34
信じちゃ駄目だよ。

558 名前:デフォルトの名無しさん :2006/06/08(木) 22:07:56
SendMessageがあれば何でもできるよ!
キー入力送ったりとか

559 名前:デフォルトの名無しさん :2006/06/08(木) 22:34:48
そりゃま、JNIとP/Invokeを使えばたいていのことは出来るだろう。

560 名前:デフォルトの名無しさん :2006/06/08(木) 22:35:27
>>559
誤爆です。失礼

561 名前:デフォルトの名無しさん :2006/06/09(金) 11:51:56
標準のスタティックコントロールとかエディットコントロールが内部でどんな動作してるか調べたいんですが、
ソースとか無いのでしょうか?

562 名前:デフォルトの名無しさん :2006/06/09(金) 11:55:54
>>561
あるよ。

563 名前:デフォルトの名無しさん :2006/06/09(金) 12:00:59
あるある厨氏ね

564 名前:デフォルトの名無しさん :2006/06/09(金) 12:04:06
Microsoft は Windows のソースコードを一般開発者には公開していません
 ↑
有るか無いか聞かれてるのに、こんな返事がいいのか?

565 名前:デフォルトの名無しさん :2006/06/09(金) 12:22:12
例のソースにボタンコントロールのソースは入ってた
他はおぼえてない

566 名前:デフォルトの名無しさん :2006/06/09(金) 13:12:07
おぼえてない厨氏ね

567 名前:デフォルトの名無しさん :2006/06/09(金) 13:14:30
厨氏ね厨氏ね

568 名前:デフォルトの名無しさん :2006/06/09(金) 13:51:18
厨氏ね厨氏ね厨氏ね

569 名前:デフォルトの名無しさん :2006/06/09(金) 13:56:35
標準コントロールのソースぐらい普通に配布してくれてもいいと思うんだけどなぁ

570 名前:デフォルトの名無しさん :2006/06/09(金) 14:22:52
勝手な仕様変更が出来なくなるから、却下です。

571 名前:デフォルトの名無しさん :2006/06/09(金) 14:57:06
wineってどうしてんの

572 名前:デフォルトの名無しさん :2006/06/09(金) 21:56:25
Exite翻訳で英語版MSDNを翻訳してもらおうとしましたが変な動きをします。
いい翻訳サイトはありませんか?

573 名前:デフォルトの名無しさん :2006/06/09(金) 22:17:05
擦れ違い

574 名前:デフォルトの名無しさん :2006/06/09(金) 22:31:02
↓芸無し、40代独身デブニート(素人)童貞、近藤妥の特徴
 
http://booklog.kinokuniya.co.jp/hayase/archives/2006/05/post_50.html
●自分に甘く、他人に厳しい 
●努力せずに成果が欲しい 
●すぐにいらつき、キレる 
●無気力、鬱になりやすい 
●「悪い」と思っても謝らない

575 名前:デフォルトの名無しさん :2006/06/09(金) 22:40:28
そいつの名前久しぶりに見たけど
どこかのスレに来てるの?

576 名前:デフォルトの名無しさん :2006/06/10(土) 00:25:29
>>572
結局最後は自分だけが頼り。
いい翻訳サイト探すよりも、いい辞書サイト探すほうがいいと思うよ。

577 名前:487 :2006/06/10(土) 16:52:44
以前タイトルバーのダブルクリックの件で質問した者ですが、色々と仕様を見直した所、
やっぱWM_GETMINMAXINFO拾ってLPARAMで渡されるMINMAXINFOを弄るのではなく、完全に
独自処理をしたくなってしまいますた。

タイトルバーをダブルクリックした時の処理を完全に乗っ取る方法があれば教えて下さい。
orz コノトオリ

578 名前:デフォルトの名無しさん :2006/06/10(土) 17:01:53
自前のタイトルバー作れ

579 名前:492 :2006/06/10(土) 17:46:30
>>577
SetWindowsHookEx(WH_GETMESSAGE, ...)でローカルフックを仕掛けて、
WM_NCLBUTTONDBLCLKかつHTCAPTIONな場合に
メッセージをWM_NULLへ変更すれば処理を無効化できる。

これを応用してお好きなように。

580 名前:487 :2006/06/10(土) 18:09:56
>>492
フックは初めてなんで研究してみます
何度もスンマソン orz

581 名前:デフォルトの名無しさん :2006/06/10(土) 18:40:10
>>572
断片的な日本語資料でがんばってwinプログラミングに慣れてくれば、
そのうち英語msdnも読めるようになる。

582 名前:デフォルトの名無しさん :2006/06/10(土) 19:48:33
童貞が捨てられるAPIがMSDNに載ってないよ

583 名前:デフォルトの名無しさん :2006/06/10(土) 20:17:27
>>582
socket
gethostbyname
connect
send
recv
shutdown
closesocket

584 名前:デフォルトの名無しさん :2006/06/10(土) 20:21:17
ウィンドウのクライアントエリアのサイズを指定したサイズの通りにする方法はどうしたらいいのでしょう?
CreateWindow()で(0, 0, 100, 100)とかして正方形にしようとしたんですけど、キャプション部があるので正方形になりません。

585 名前:デフォルトの名無しさん :2006/06/10(土) 20:27:34
>>584
GetSystemMetricsでタイトルバーや枠のサイズを取得してそれをサイズから引く

586 名前:デフォルトの名無しさん :2006/06/10(土) 20:28:59
ポップアップウィンドウを作るとか、AdjustWindowRect()を使うとか。
自分も少し前まで必死に悩んでたよ。

587 名前:デフォルトの名無しさん :2006/06/10(土) 20:46:13
>>572
日本語に翻訳せずにそのまま英語で理解してしまえばおk
いや、マジで。

そんなに難しい文法は使われてないから中学レベルの英語力あれば辞書引きながら読めば読めるはず。

588 名前:487 :2006/06/10(土) 20:53:53
>>584
簡単なのを一つ

1、GetWindowRect()でウィンドウのサイズを求める
2、GetClientRect()でクライアント領域のサイズを求める
3、手順1から手順2の値を引くことで縦横それぞれのクライアント領域「以外」のサイズが求められる
4、自分で調整したいサイズに手順3の結果を加えてMoveWindow();

この方法だとメニューやステータスバーの有無を一々考慮しなくても良いのでオススメ

589 名前:デフォルトの名無しさん :2006/06/10(土) 21:12:19
MoveWindow()よりもSetWindowPos()のほうがよくない貝?

590 名前:デフォルトの名無しさん :2006/06/10(土) 23:58:25
>>588
それらをやってくれるのが>>586な訳だが…

591 名前:487 :2006/06/11(日) 00:03:23
ヒント:使い勝手

592 名前:デフォルトの名無しさん :2006/06/11(日) 00:13:49
AdjustWindowRect
クライアント領域の位置とサイズの指定から、その条件を満たすために必要な、
ウィンドウの位置とサイズを計算します。得られたウィンドウの座標は、通常、
CreateWindow 関数でウィンドウを作成するときに使われます。


意味がわからん・・・

593 名前:590 :2006/06/11(日) 00:19:30
なるほど、頭が悪いだけか

594 名前:デフォルトの名無しさん :2006/06/11(日) 00:24:23
AdjustWindowRectはメニューが折り返された場合を考慮してくれないけど
>>588では大丈夫なのかな?

595 名前:デフォルトの名無しさん :2006/06/11(日) 00:28:55
588でも駄目。588方式にAdjustWindowRect()に対する優位性はない。
同じ処理を毎回毎回書かなきゃいけない588方式は糞。
単にAdjustWindowRect()を知らなかっただけでしょ。
今度からはAPI使うようにしような。

596 名前:デフォルトの名無しさん :2006/06/11(日) 00:29:12
>>594
サイズ変更後に折り返しされる事は十分考えられる。
更に>>588ではCreate後にしか計算出来ないから、使い勝手も問題ありだと思うよ。

597 名前:デフォルトの名無しさん :2006/06/11(日) 00:41:06
>>595
いくら>>588でも、関数化くらいはするんジャマイカ?(w

598 名前:デフォルトの名無しさん :2006/06/11(日) 00:47:53
>>596のはAdjustWindowRectは折り返しも考慮してくれる、って意味でいいんだよな?

可能性としてメニュー折り返されることは十分考えられる、と言ってるともとれるんだが。

599 名前:596 :2006/06/11(日) 00:52:33
>>598
言いたい事は>>595と同じつもりだった…。
メニューの折り返しは、どちらもプログラマが考慮する必要がある。

600 名前:デフォルトの名無しさん :2006/06/11(日) 00:53:43
AdjustWindowRect()も588もメニューの折り返しは考慮されないよ。
588の方法でできない事はAWR()にもできないけど、
588の方法でできる事はAWR()にもできる。
AWR()でできない事は588でもできないけど、
AWR()でできる事は588でもできる。
AWR()の588に対する優位な点は標準APIとして提供されている事。

601 名前:487 :2006/06/11(日) 00:56:06
>>595
>単にAdjustWindowRect()を知らなかっただけでしょ。

知ってて使い勝手悪いから588を書いたワケで、

>同じ処理を毎回毎回書かなきゃいけない588方式は糞。

数行のコードを一つの関数に纏めときゃ済む話なのに?
AdjustWindowRect()使う為引数考えたら588の例の方がマシ
そんなことも理解できない595が糞

>>596
>Create後にしか計算出来ないから、使い勝手も問題ありだと思うよ。

それのどこに問題があるのかわからんが…
CreateWindow前に決め打ちする必然性ってナニ?

hWnd = CreateWindow(); //位置・サイズはCW_USEDEFAULT
588の関数(hWnd);
ShowWindow(hWnd,SW_SHOW);

自分はWindowハンドルだけありゃいつでも使えるので多用してるけどな。
なお折り返しについてはAdjustWindowRect()も事情は一緒。

602 名前:デフォルトの名無しさん :2006/06/11(日) 01:02:56
>>601
いい加減、ハジの上塗りはやめた方がいいよ?

603 名前:デフォルトの名無しさん :2006/06/11(日) 01:03:49
おぉ怒っている・・・

つうか使い勝手を言うなら
AdjustWindowRect使う奴も
関数でラップすればいいだけの話なわけだが

604 名前:デフォルトの名無しさん :2006/06/11(日) 01:06:05
>>603
ラップせずに使えるモノを、何故わざわざラップするのかと(ry

605 名前:デフォルトの名無しさん :2006/06/11(日) 01:08:27
>>604
>つうか使い勝手を言うなら

606 名前:デフォルトの名無しさん :2006/06/11(日) 01:08:31
http://kumei.ne.jp/c_lang/sdk/sdk_73.htm
ここに書いてある事は間違い?

>AdjustWindowRect関数はこれからウィンドウを作るときにはつかえても
>すでにできてしまったウィンドウの調整には使えません。

607 名前:デフォルトの名無しさん :2006/06/11(日) 01:09:24
>>604
書かずに実現できる処理を、何故わざわざ自前で書くのかと(ry

608 名前:606 :2006/06/11(日) 01:10:16
ああ、意味判った
606は忘れてちょ

609 名前:デフォルトの名無しさん :2006/06/11(日) 01:13:58
588だと、WM_CREATEのタイミングでボタンを中央に生成ってなことが出来ないからな…。
AdjustWindowRectを紹介した上で利点と共に588を紹介ってのなら、まぁ、許せるけど。

1つ気になったんだけど、588を2回やると、1度目で幅がOKで長さがメニュー折り返しで不完全な
状態になって、2回目でメニューの折り返しもOKな状態になりそうに思えるんだけど、気のせい?

610 名前:デフォルトの名無しさん :2006/06/11(日) 01:14:21
>>606
普通に出来るけどな

611 名前:デフォルトの名無しさん :2006/06/11(日) 01:21:05
一応補足。
>AdjustWindowRectを紹介した上で利点と共に588を紹介ってのなら、まぁ、許せるけど。
601だけを読んでも588に利点があるとは全く思えないんで、利点と信じてる点を紹介ってことで。

612 名前:デフォルトの名無しさん :2006/06/11(日) 01:21:44
>1つ気になったんだけど、588を2回やると、1度目で幅がOKで長さがメニュー折り返しで不完全な
>状態になって、2回目でメニューの折り返しもOKな状態になりそうに思えるんだけど、気のせい?

気のせいではないと思われ
ところでメニューの折り返しの処理のやり方知らない…
メニューバーの文字列の横の長さをどうにかして拾ってなんとかすんの?

613 名前:デフォルトの名無しさん :2006/06/11(日) 01:22:16
AWR()を知ってて588を使うって
どんな気持ち?
        ∩___∩                     ∩___∩
    ♪   | ノ ⌒  ⌒ヽハッ    __ _,, -ー ,,    ハッ   / ⌒  ⌒ 丶|
        /  (●)  (●)  ハッ   (/   "つ`..,:  ハッ (●)  (●) 丶   今、どんな気持ち?
       |     ( _●_) ミ    :/   588  :::::i:.   ミ (_●_ )    |      ねぇ、無知晒されるのって
 ___ 彡     |∪| ミ    :i        ─::!,,    ミ、 |∪|    、彡____どんな気持ち?
 ヽ___       ヽノ、`\     ヽ.....:::::::::  ::::ij(_::●   / ヽノ     ___/ 
       /       /ヽ <   r "     .r ミノ~.    〉 /\    丶
      /      /    ̄   :|::|    ::::| :::i ゚。     ̄♪   \    丶
     /     /    ♪    :|::|    ::::| :::|:            \   丶
     (_ ⌒丶...        :` |    ::::| :::|_:           /⌒_)
      | /ヽ }.          :.,'    ::(  :::}            } ヘ /
        し  )).         ::i      `.-‐"             J´((
          ソ  トントン                             ソ  トントン


614 名前:デフォルトの名無しさん :2006/06/11(日) 01:37:22
イジメイクナイ

615 名前:デフォルトの名無しさん :2006/06/11(日) 01:46:07
気になったのでメニューの折り返しについてぐぐったけど、参考になりそうなところが見つからない

616 名前:デフォルトの名無しさん :2006/06/11(日) 01:48:38
でだ、584よ
結論としては、AdjustWindowRect()を使うようにしろ。
ただ、CreateWindowEx()使う場合にはAdjustWindowRectEx()を
使わなにゃならんから、そこんとこ注意な。

キャプション部が要らない場合はポップアップウィンドウを作るの
がいいと思うぞ。

617 名前:デフォルトの名無しさん :2006/06/11(日) 01:51:34
>>615
自分も数年前に探したけどなかったよ。。。
その時はメニューの折り返しを考慮した関数を自作したけど、XPのビジュアルスタイルで
破綻して、もう更新してないアプリだったんでそれっきり…。

618 名前:デフォルトの名無しさん :2006/06/11(日) 01:55:40
メニューの折り返しについては、

1.ウィンドウを作成してからクライアント領域の大きさを取得する。
2.目的のウィンドウの大きさとの差を計算する。
3.差の分だけウィンドウの大きさを変更する。
goto 1.

こんな感じだね。2回ほど繰り返さないといけない。


619 名前:デフォルトの名無しさん :2006/06/11(日) 02:04:29
>618
588法x2回だな…

620 名前:デフォルトの名無しさん :2006/06/11(日) 03:34:07
>>577
WM_NCLBUTTONDBLCLK は、DefWindowProc()に渡さなけりゃ無効化できる。
こんなかんじでできるんじゃね

case WM_NCLBUTTONDBLCLK:
if (HTCAPTION == wParam)
{
// ここでタイトルバーをダブルクリックしたときの独自処理
return 0;
}
DefWindowProc();


621 名前:デフォルトの名無しさん :2006/06/11(日) 03:35:51
最後間違えた
return DefWindowProc();

622 名前:デフォルトの名無しさん :2006/06/11(日) 05:12:13
>>613 はバカ

>>588 はメリットあるだろ?


623 名前:デフォルトの名無しさん :2006/06/11(日) 06:11:01
AdjustWindowRect()して
その後心配ならGetClientRectで確認

624 名前:588 :2006/06/11(日) 08:56:46
起きてみたらこれかい i||i(´・ω・` )

>>609
自分は単純に2回繰り返して折り返してまつ。
なおWM_SIZINGでlParam使って同じ事やる場合には2回目のMoveWindowは不要で
1回MoveWindow()したあとDefWindowProc()に渡してやると勝手に直してくれるみたい。
これをやるとWindow枠ドラッグ中にメニューが動的に折り返るようになる。(MoveWindowの第5引数はTRUEで)
#副作用として枠ドラッグ中もWindow内が更新されるけどキニシナイ
自分はこれで十分かと思ってるけどイマイチ自信が無い。他の人のメニュー折り返し部分のコード見たいが。

>>620
579で教えて貰った後でフック無しでもいけるとわかってそれでやってますた。
わざわざマリガトウ。

んじゃ名無しに戻るわ('A`)

625 名前:デフォルトの名無しさん :2006/06/11(日) 09:07:17
>>622
ないよ。

>>624
1. Adjust〜でサイズ計算
2. 1で計算したサイズでCreate
3. クライアント領域サイズを取得
4. 1の元となるクライアントサイズと3との差を算出
5. SetWindowPosでサイズ変更

626 名前:デフォルトの名無しさん :2006/06/11(日) 09:13:06
ここまでくるとAdjust〜のメリット無いな

627 名前:デフォルトの名無しさん :2006/06/11(日) 09:24:29
通常は >625の 1 2 だけ
メニューあり&横幅が狭くて2行になりそうな場合に 3 4 その結果によっては5

628 名前:デフォルトの名無しさん :2006/06/11(日) 09:30:28
Createしか考慮してないと軽くジャブ

629 名前:デフォルトの名無しさん :2006/06/11(日) 09:46:06
>628
>616

630 名前:デフォルトの名無しさん :2006/06/11(日) 09:49:52
マジ突っ込みの上に曲解された orz
ムキにならんでもいいのに

631 名前:デフォルトの名無しさん :2006/06/11(日) 11:17:35
曲解してるのはどちらかと(ry

632 名前:デフォルトの名無しさん :2006/06/11(日) 14:01:34
曲解っぷりならば
オレの右に出る者は居ない。

633 名前:デフォルトの名無しさん :2006/06/11(日) 14:12:56
すげー右曲がり

634 名前:デフォルトの名無しさん :2006/06/11(日) 14:20:28
スレ違いだからこっちでやれ。
ttp://pc8.2ch.net/test/read.cgi/tech/1148297648/

635 名前:デフォルトの名無しさん :2006/06/11(日) 21:55:23
http://up2.viploader.net/pic2d/src/viploader2d62026.jpg
こんな感じのタブはどうやって作るんですか?

636 名前:デフォルトの名無しさん :2006/06/11(日) 23:06:12
>>635
ツールバーがタブに変装している

637 名前:デフォルトの名無しさん :2006/06/11(日) 23:25:22
質問です。
ttp://www.aaaa.co.jp/FOLDER/
というURLがあったとします。
そのFOLDERフォルダ直下のファイル一覧の取得する方法ってありますか?

638 名前:デフォルトの名無しさん :2006/06/11(日) 23:29:30
むこうのサーバが一覧かえしてくれるなら

639 名前:デフォルトの名無しさん :2006/06/11(日) 23:29:37
ない。

640 名前:デフォルトの名無しさん :2006/06/11(日) 23:31:39
使えねぇなw

641 名前:デフォルトの名無しさん :2006/06/11(日) 23:37:26
TTPプロトコルなんて聞いたこともないな。

642 名前:デフォルトの名無しさん :2006/06/11(日) 23:38:26
素直にダウンローダが作りたいと言え

643 名前:デフォルトの名無しさん :2006/06/12(月) 00:24:18
>>637
Win32APIの話じゃない。
まず、ネットワークについて勉強汁。
その後は、プロトコルについて勉強汁。

644 名前:デフォルトの名無しさん :2006/06/12(月) 00:58:01
>>643
どのぐらい勉強したら出来ますかね?

645 名前:デフォルトの名無しさん :2006/06/12(月) 01:34:23
>>644
3日〜3年位

646 名前:デフォルトの名無しさん :2006/06/12(月) 02:49:17
>>645
すんごい幅広いですね
つまり出来ないやつは3年経っても出来ないってことか・・・

647 名前:デフォルトの名無しさん :2006/06/12(月) 03:01:17
>>644
数十年勉強してHTTPの仕様に関われるぐらい偉くなれば、あるいは……。

648 名前:デフォルトの名無しさん :2006/06/12(月) 08:57:36
>>644
まずはRFC2616を理解してから出直してくるがいいお(;^ω^)

649 名前:デフォルトの名無しさん :2006/06/12(月) 09:50:16
ttpスキームはHTTPなのか?

650 名前:デフォルトの名無しさん :2006/06/12(月) 12:45:56
アプリの実行中に終了して、再度実行すると前回の状態がそのまま復旧されるようなAPIってないですか?
プロセスのメモリイメージやリソースをそのまま退避・復旧してくれるような物です。

651 名前:デフォルトの名無しさん :2006/06/12(月) 12:47:03
>>650
ない

652 名前:デフォルトの名無しさん :2006/06/12(月) 12:47:06
結論だけは教えてやる。
「出来ない」
ああ、俺って親切。

653 名前:デフォルトの名無しさん :2006/06/12(月) 13:00:03
OSのスリープやレジュームを叩くAPIのことじゃないの?


654 名前:デフォルトの名無しさん :2006/06/12(月) 18:02:58
サブクラス化された時に、サブクラス化されたウィンドウに送られるメッセージってありますか?

655 名前:デフォルトの名無しさん :2006/06/12(月) 18:12:51
>>654
ない

656 名前:デフォルトの名無しさん :2006/06/12(月) 20:47:33
WM_CREATEの時に
ShowWindow(hWnd, SW_MAXIMIZE);を実行してもうまく最大化されません。
ウィンドウは画面いっぱいには表示されているが、最大化にはなっていない。という感じです。
なぜでしょうか?また、これを解決する方法はありますか?

657 名前:デフォルトの名無しさん :2006/06/12(月) 20:53:09
最大化ボタンを押す

658 名前:デフォルトの名無しさん :2006/06/12(月) 20:59:14
>>656
CreateWindowする時に最大化状態で作成汁

659 名前:デフォルトの名無しさん :2006/06/12(月) 21:02:19
出来ればメッセージループ内のWM_CREATEの時に最大化状態にしたいのですが、無理ですか?

660 名前:デフォルトの名無しさん :2006/06/12(月) 21:04:36
>>659
無理

661 名前:デフォルトの名無しさん :2006/06/12(月) 21:08:06
>>659
そもそもWM_CREATEはメッセージループ内ではない。

662 名前:デフォルトの名無しさん :2006/06/12(月) 21:08:54
WM_CREATEの中でShowWindow呼ぶのってキモイ

663 名前:デフォルトの名無しさん :2006/06/12(月) 21:12:14
了解しました。。。

664 名前:デフォルトの名無しさん :2006/06/12(月) 22:21:27
>>656
WM_CREATEの中で何か適当なメッセージを投げて(Postして)おいて、
そのメッセージを受け取ったときに最大化したらどうか?

665 名前:デフォルトの名無しさん :2006/06/12(月) 22:30:14
最大化ボタンを押す

666 名前:デフォルトの名無しさん :2006/06/12(月) 22:41:30
何の役にも立たない答えを一行で書いてるバカは
面白いと思ってやってるのかね

667 名前:デフォルトの名無しさん :2006/06/12(月) 23:00:02
役にも立たないと思うのは馬鹿だから

668 名前:デフォルトの名無しさん :2006/06/13(火) 00:10:26
>>666
質問側も、内容を一考して書き込め。

669 名前:デフォルトの名無しさん :2006/06/13(火) 11:50:12
WindowのZオーダーを調べる方法を教えてください。

670 名前:デフォルトの名無しさん :2006/06/13(火) 12:45:15
>>669
GetTopWindow, GetNextWindow

671 名前:デフォルトの名無しさん :2006/06/13(火) 13:19:13
::LoadLibrary("RICHED32.DLL");
の時はリッチエディットが使えて
::LoadLibrary("RICHED20.DLL"); //大文字、小文字色々試したけど無理でした
の時に使えないってことは2.0以降が使えないってことですか?

どうすれば使えるようになりますかorz

672 名前:デフォルトの名無しさん :2006/06/13(火) 13:43:10
>>671
リッチエディットコントロールは、そのバージョンによってウィンドウクラス名が違うぞ。
1.0 (Riched32)は"RichEdit"だが、2.0以上ではRICHEDIT_CLASSだ。

673 名前:デフォルトの名無しさん :2006/06/13(火) 14:01:18
ってことはもしかしてVC++6のリソースエディタじゃ中身を弄らないと作れなかったりします?

と思って中の"RICHEDIT"の部分を"RICHEDIT_CLASS"に変えてもダメでしたorz

674 名前:デフォルトの名無しさん :2006/06/13(火) 14:10:37
× "RICHEDIT_CLASS"
○ RICHEDIT_CLASS

675 名前:デフォルトの名無しさん :2006/06/13(火) 14:14:33
>>674
文字列じゃなくて定数にしなきゃいけなかったのかorz

直した後、RICHEDIT_CLASSがない言われたので、リソースファイルにも#include "Richedit.h"
したら成功しました。

>>672,>>674d

676 名前:デフォルトの名無しさん :2006/06/13(火) 15:20:46
リッチエディットダブルクリックすると
プログラムは終了しないけど、デバッグウィンドウにアクセスバイオレーションがでてて
怖すぎorz


677 名前:デフォルトの名無しさん :2006/06/13(火) 17:49:40
>>487
もの凄ーく亀レスだけど
WM_SYSCOMMANDのwParamは0xFFF0でAND取らなきゃダメだよ

ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/userinput/keyboardaccelerators/keyboardacceleratorreference/keyboardacceleratormessages/wm_syscommand.asp

678 名前:デフォルトの名無しさん :2006/06/13(火) 18:07:58
try,catch,throw と Template がわかるページとかあったら教えてください。
書籍にあんまり載ってない・・

679 名前:デフォルトの名無しさん :2006/06/13(火) 18:15:43
API関係なくね?

680 名前:デフォルトの名無しさん :2006/06/13(火) 18:53:49
初心者はAPIと言語の区別がついてないから困る

681 名前:デフォルトの名無しさん :2006/06/13(火) 19:50:15
>>678
藻前には理解できないから、今の内に辞めた方がいいよ。

682 名前:デフォルトの名無しさん :2006/06/13(火) 20:09:02
マウスのホイールが回った時に飛んでくるメッセージってありますか?

683 名前:デフォルトの名無しさん :2006/06/13(火) 20:11:53
WM_MOUSEWHELL

684 名前:デフォルトの名無しさん :2006/06/13(火) 21:38:52
GetDiskFreeSpaceEx()APIについての質問です。
このAPIをGUI付きのMFCアプリケーションから呼び出すと
Aドライブ(フロッピー)の容量取得でディスクが入っていなくても
単純にエラーになるだけですが、
GUI無しのWin32アプリケーションから呼び出すと、ディスクの無い
Aドライブをチェックした瞬間に
「ドライブにディスクがありません。ディスクをドライブA:に挿入してください。」
というメッセージボックスが勝手に出てきてしまいます。

これを出さない方法はありますでしょうか?

685 名前:デフォルトの名無しさん :2006/06/13(火) 21:48:23
>>684
SetErrorMode()

686 名前:デフォルトの名無しさん :2006/06/13(火) 22:02:05
アプリの先頭で
SetErrorMode(SEM_FAILCRITICALERRORS);
で出来ました。ありがとうございます。
MFCはデフォルトでこの状態なんですかね。なんか恐ろしい。

687 名前:デフォルトの名無しさん :2006/06/13(火) 22:26:51
は?

688 名前:デフォルトの名無しさん :2006/06/13(火) 23:57:25
は?

689 名前:デフォルトの名無しさん :2006/06/14(水) 00:07:45
は?

690 名前:デフォルトの名無しさん :2006/06/14(水) 00:23:06
は?

691 名前:デフォルトの名無しさん :2006/06/14(水) 00:47:26
は?

692 名前:デフォルトの名無しさん :2006/06/14(水) 01:53:38
ウィンドウの小ウィンドウの小ウィンドウに
CreateWindowExでEDITコントロールを貼り付けたんですが、表示されなくて困っています
どうすればよいでしょうか?

693 名前:デフォルトの名無しさん :2006/06/14(水) 02:49:10
は?

694 名前:デフォルトの名無しさん :2006/06/14(水) 07:24:11
692 つまりは、孫ウィンドウって事だな。

695 名前:デフォルトの名無しさん :2006/06/14(水) 08:11:24
>>678
try, catch throw

例外処理
http://pc8.2ch.net/test/read.cgi/tech/1142667446/

template
【初心者歓迎】C/C++室 Ver.28【環境依存OK】
http://pc8.2ch.net/test/read.cgi/tech/1149815331/

696 名前:デフォルトの名無しさん :2006/06/14(水) 14:01:36
692 つまりは、孫がシャイで困っているという事だな。

697 名前:デフォルトの名無しさん :2006/06/14(水) 14:02:37
ニートかもしれん

698 名前:デフォルトの名無しさん :2006/06/14(水) 14:18:12
>>692
それだけの内容だと「ソースがおかしいんじゃね?」としか言えない。
って言うか、ちゃんと表示する様に指示しているか?

699 名前:デフォルトの名無しさん :2006/06/14(水) 18:25:57
リストボックスがクリックされたときに、フォームのCALLBACK関数で
処理したいのですが、どうすればいいですか?

ListBoxに LBS_NOTIFY を指定しても、 WM_NOTIFY メッセージが
送られてきていないようなのでちょっと困っています。
# ListViewなら普通に処理できそうなんですけどねぇ。。。

環境はMSVC++2005 ExpressEditionにPlatformSDKいれてやっています。

700 名前:699 :2006/06/14(水) 18:50:57
自己解決しました。
WM_COMMAND で捕まえられるんですね。

701 名前:デフォルトの名無しさん :2006/06/14(水) 21:23:05
便乗、ってことになるのかな?

listboxでLBS_NOTIFY指定して、
WM_COMMANDでENTER捕まえることは可能ですか?
上手くいかない・・・

702 名前:デフォルトの名無しさん :2006/06/14(水) 23:01:50
質問です。
現在キーボードエミュレートをするツールを開発しているのですが、キー(ファンクション)
の長押しを実装方法が分からないので質問にきました。

PostMessage(hwnd, WM_KEYDOWN, VK_F1,0)
PostMessage(hwnd, WM_KEYUP, VK_F1,0)

現在はこのようにPostMessage()を並べているのですが、これをどのように書き換えれば
F1キーを長押し(リピート)しているように見せかけられるのでしょうか?

UWSCのスクリプト内では私が求めているような挙動は以下のようにして得られています。
KBD(VK_F1,DOWN,30)
KBD(VK_F1,DOWN,30)
KBD(VK_F1,CLICK,40)

どうぞよろしくお願い致します。
-------------------
使用OS: windowsXP
開発環境:Bccコンパイラ
使用言語:C++
-------------------

703 名前:デフォルトの名無しさん :2006/06/14(水) 23:34:38
昨日思いついたんだけど、windowsヘッダをインクルードするとき

namespace Win{
#include <windows.h>
}

ってやったら便利かな?
インテリセンスでローカル識別子と一緒にAPI関数がズラズラ入っちゃうのを防げる。

704 名前:デフォルトの名無しさん :2006/06/14(水) 23:50:26
>>702
それでうまく動いてるんだったら、
PostMessage(hwnd, WM_KEYDOWN, VK_F1,0)
PostMessage(hwnd, WM_KEYDOWN, VK_F1,1)
PostMessage(hwnd, WM_KEYDOWN, VK_F1,2)
PostMessage(hwnd, WM_KEYDOWN, VK_F1,3)
PostMessage(hwnd, WM_KEYDOWN, VK_F1,4)
PostMessage(hwnd, WM_KEYUP, VK_F1,0)
で4回リピート。

705 名前:デフォルトの名無しさん :2006/06/15(木) 00:04:49
>>703
Win::CreateWindowの名前をリンカが解決できると思う?

706 名前:702 :2006/06/15(木) 00:12:00
>>704さんアドバイスありがとうございます。
さっそく試してみましたが長押しだと認識しませんでした。

考えられることは
(1)Postmessage()では長押しは実現できない?
(2)Postmessage()以外にキーボードイベントを模索するべき?
(3)その他

このくらいしか思い浮かばないのですがどなたかアドバイスお
願いできないでしょうか?

707 名前:デフォルトの名無しさん :2006/06/15(木) 00:21:02
LPARAM の0-15ビットがリピート情報じゃなかったっけ

708 名前:702 :2006/06/15(木) 00:24:29
>>707
はい。その通りです。以下のサイトにそのように書いてあります。
ttp://wisdom.sakura.ne.jp/system/winapi/win32/win30.html

しかし、実際にはどのように引数としてLPARAMの内容を決定すれば
よろしいのでしょうか?


709 名前:デフォルトの名無しさん :2006/06/15(木) 00:32:25
>>705
解決してるみたいだけど

710 名前:デフォルトの名無しさん :2006/06/15(木) 00:33:43
keybd_event使うんじゃないの?



711 名前:デフォルトの名無しさん :2006/06/15(木) 00:33:46
>>708

そのサイトに書いてあるじゃん

>30ビット目は直前のキーの状態を意味します
>直前に発生したキーイベントが離されたものであれば0
>押された状態のものならば1であり、キーを離した時の状態はつねに1になります
>直前のキーストロークが押しつづけて発生したオートリピートの監視に使えます
>最後の31ビット目は、キーが押されたものであれば0、離されたものであれば1になります
>これは、WM_KEYDOWNでは0、WM_KEYUPなら1になっています

LPARAMの 0-15ビット目をなんか適当な数 30ビット目を1 31ビット目を0
にすりゃいいんでないの?試してないけど

712 名前:デフォルトの名無しさん :2006/06/15(木) 10:46:02
CreateWindowで作るウインドウを、モーダルダイアログのようにしたいんですけど
(親のウインドウにフォーカスいかなくなるような)
どのように実装したらいんでしょうか?
参考になりそうなソースなどご存じでしたら紹介してください。


713 名前:デフォルトの名無しさん :2006/06/15(木) 10:52:14
モーダルダイアログに貼り付ける

714 名前:デフォルトの名無しさん :2006/06/15(木) 11:38:21
>712
CreateDialogは駄目なの?

CreateDialogでダイアログ生成(仮:DialogA)
親WindowをEnableWindowで無効

処理が終わったらDialogAをDestroyWindow()で消去前に
EnableWindow()で親Windowを有効に戻す

俺はこうやってるけど参考にならなかったらシカトしてくれ

715 名前:702 :2006/06/15(木) 11:39:31
>>710さん,>>711さんレスありがとうございます。

>>710さん
keybd_event()はwindowsXPではSendInput()推奨になっているようですね。
ただSendInput()のサンプルになりそうなプログラムってネットに転がってな
いようですね。。。ちなみにkeybd_event()でも試してみましたが、動作しませ
んでした。

>711さん
PostMessage(hwnd, WM_KEYDOWN, VK_F1, 0x3B0001);
for(int count=0;count<30;count++){
PostMessage(hwnd, WM_KEYDOWN, VK_F1, 0x203B0001);
}
PostMessage(hwnd, WM_KEYUP, VK_F1, 0);

こんな感じでビットの内容を指定したのですが動作しませんでした。
ちなみに走査コードは実際にF1キーを入力したときに確認した値を
代入しています。

まだ考えられる方法はあるでしょうか?


716 名前:デフォルトの名無しさん :2006/06/15(木) 12:10:34
>>702
その入力先がゲームとかじゃないだろうな。
DirectInputでキー拾ってるアプリだとキーメッセージ投げても反応しないぞ。

717 名前:712 :2006/06/15(木) 12:20:33
レスありがとうございます。
>713、714
表示したいダイアログが、Layerウインドウでアルファーチャンネルを持ったウインドウなんですが、
可能でしょうか?、childで指定でダイアログに貼り付けて、親のダイアログのVisibleをオフにするとか?
何か情報ありましたらお願いします。


718 名前:デフォルトの名無しさん :2006/06/15(木) 12:27:28
>>709
ATLやMFC(MFCは使ったことが無いけどたぶん)
では、Win32 APIがグローバルな名前空間にあるという前提の元コードが書かれているので、
問題になる。

719 名前:デフォルトの名無しさん :2006/06/15(木) 14:07:49
ダイアログが生きているか削除されたか調べる方法ない?

720 名前:デフォルトの名無しさん :2006/06/15(木) 14:10:34
>>719
ウインドウハンドルに対してIsWindowをかけるとか

721 名前:719 :2006/06/15(木) 14:27:05
>>720
できた!
ありがとう!

722 名前:デフォルトの名無しさん :2006/06/15(木) 15:45:40
>>705
extern "C"が指定されているから、問題ない。

723 名前:デフォルトの名無しさん :2006/06/15(木) 18:36:08
>>722
そうなんだ。extern "C"するとnamespaceって完全無視なの?

724 名前:デフォルトの名無しさん :2006/06/15(木) 18:52:48
アンインストール情報。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
の中をのぞくとDisplayName,UninstallStringの2つしかないアプリがありますが
「プログラムの追加と削除」プログラムは該当アプリのアイコンを何の情報を元に取得しているのでしょうか?

725 名前:デフォルトの名無しさん :2006/06/15(木) 19:07:39
>>723
そういうこと。
だから関数名は問題ない。

でもWinMainとか些細な問題はまだいくつかあるはず。
実際に703のようなことをやってみたことはないから、
俺はほかにどんな問題があるかも知らない。

726 名前:デフォルトの名無しさん :2006/06/15(木) 19:15:46
でも意図不明なコードとしてそのコードを見た誰かに叩かれることもありうるので、
やらない方がいいと思うんだが。
つーか、俺なら叩くなw

727 名前:デフォルトの名無しさん :2006/06/15(木) 23:54:25
普通はGetAsyncKeyStateを使って押されているかどうかを調べると思う。
これだとエミュレートは出来ないと思います。

>>716
>>702を見ると、スクリプトではうまくいくそうだから、
何らかの方法があるはず。

ところで、ファンクションキー以外のキー(例えば A )は上手く行くの?

728 名前:デフォルトの名無しさん :2006/06/16(金) 09:57:18
>>702
キーボード入力のフェイクは、SendInputでやること。
DirectInputにも対応したかったら、SendInput必須
スキャンコード指定すればDirectInputでもおk。

//keybd_event()でもできないことはないが、ドキュメント化されていないのでお勧めしない

Vistaだと、自分より権限が高いウインドウには、送れないようになるらしいけど。

729 名前:デフォルトの名無しさん :2006/06/16(金) 10:00:54
>>728
> Vistaだと、自分より権限が高いウインドウには、送れないようになるらしいけど。
HIDフィルタドライバー経由でいけそうな気もしないではないけど…
そこまでやったことないな。

730 名前:デフォルトの名無しさん :2006/06/16(金) 13:37:59
98って何年前のwindows

731 名前:デフォルトの名無しさん :2006/06/16(金) 15:16:05
98年前だ

732 名前:デフォルトの名無しさん :2006/06/16(金) 17:11:59
>>731
そうか!だから「98」だったのか

733 名前:デフォルトの名無しさん :2006/06/16(金) 17:20:34
来年にはWindows99になるのか

734 名前:デフォルトの名無しさん :2006/06/16(金) 17:23:53
来年Windows-1が発売します

735 名前:デフォルトの名無しさん :2006/06/16(金) 17:33:59
>>729
ドライバ辺りはまったくの素人だからわからないのだけれど、
それをするには管理者権限が必要になるんじゃないのかな?

Vistaは、管理者が実行しても、デフォルトでは一般ユーザ権限で実行されるのだけれど。

権限をしっかり考えていなかったコードが、
必要以上の権限を要求したりしていることがよくあるから、
その辺の互換性は大丈夫なのか心配になるけど。

736 名前:702 :2006/06/16(金) 18:09:24
レス遅れました。
>>716さん,>>727さん,>>728さん,>>729さんレスありがとうございます。

>>716さん
入力先はゲーム(DirectX使用)です。DirectInput関数でキーを拾うと反応
しないなんて知りませんでした。他のレスではSendInput()だと拾えるような
ことが書いてありますね。どっちが正しいのか試してみます。

>>727さん
GetAsyncKeyState()ですか。ということは今のところDirectInputとGetAsyncKeyState()
の2種類は物理的に信号を発生させないと無理かもしれないということですね。
ちなみにWM_CHARに関しては入力を正しく受け付けています。

>>728さん
716さん、727さんのおっしゃっている関数でSendInputを拾えるかどうかを確認
してみます。むしろDirectInput()については結論がでているようですが、これも
勉強のうちなので。

>>729
Vistaですか。ますますエミュレートするのが困難になるわけですね。。。

737 名前:デフォルトの名無しさん :2006/06/16(金) 20:07:25
>>735
ドライバとスクリプト駆動アプリ間の インターフェース DLL を ちゃんと真面目に作れば
スクリプト駆動アプリ はユーザー権限のままでいける

問題は インターフェース DLL をちゃんと作るのが大変っぽいのよね…

738 名前:デフォルトの名無しさん :2006/06/16(金) 22:39:51
なんだボットか

739 名前:デフォルトの名無しさん :2006/06/17(土) 02:29:54
D言語ってどこらへんがいいんだ?<時代のさきっちょに乗ったつもり

740 名前:デフォルトの名無しさん :2006/06/17(土) 02:31:41
>>739
D言語スレがありますので、そちらでどうぞ。

741 名前:デフォルトの名無しさん :2006/06/17(土) 11:22:01
Win32APIなのかわかんないのですが、他に答えが得られそうなスレが無かったのでここで質問させてください
サーバーソケット(?)へクライアントが接続したかどうかを知る方法はありますでしょうか?
やりたい事は「***がサーバーに接続しました」と表示することです

よろしくお願いします。

742 名前:デフォルトの名無しさん :2006/06/17(土) 11:39:39
WinSock?

743 名前:デフォルトの名無しさん :2006/06/17(土) 11:41:56
>>741は他プロセスのコネクションを覗き見たいのだろう。
ドライバでも書いとけ。

744 名前:デフォルトの名無しさん :2006/06/17(土) 11:45:37
エスパー登場w

745 名前:デフォルトの名無しさん :2006/06/17(土) 12:01:55
MessageBox(NULL, "***がサーバーに接続しました", "741", MB_OK);

これでいいんじゃない?

746 名前:デフォルトの名無しさん :2006/06/17(土) 12:22:31
>>742
そうです

>>743
いや、自プロセスの報です

>>745
>>285

747 名前:デフォルトの名無しさん :2006/06/17(土) 12:32:26
>>741
それが出来ずにいったいどうやってクライアントの接続を処理してるのか気になる

748 名前:デフォルトの名無しさん :2006/06/17(土) 12:45:33
accept
puts("***がサーバーに接続しました");

749 名前:デフォルトの名無しさん :2006/06/17(土) 13:02:46
>>747-478
あれ、もしかしてacceptが接続されるまでループしてくれるのかな
おかげ様で解決できそうです、ありがとうございました!

750 名前:デフォルトの名無しさん :2006/06/17(土) 13:13:56
つまり、やってみもしないで、グダグダと聞き回っているわけだな?


■過去ログ置き場に戻る■ 1- 前250 次250 最新50
DAT2HTML 0.33f Converted.