■過去ログ置き場に戻る■
1-
前250
次250
最新50
[memo]
"9999999999_00.html#R20"
という感じで、URLの最後に "#R
レスNo
" を追加すると幸せになれます。
Win32API質問箱 Build16
501
名前:
デフォルトの名無しさん
:04/02/02 11:46
>>499
Win32APIに関することで来いよ
わざわざスレ違いネタを引っ張り出すな
502
名前:
デフォルトの名無しさん
:04/02/02 11:48
>>501
お前も無視しろ
いちいち反応すんな
503
名前:
デフォルトの名無しさん
:04/02/02 12:30
>>497
それのどこがWin32APIなんだと小一(ry
>>498
BHOの事か?
504
名前:
デフォルトの名無しさん
:04/02/02 13:12
>>497
using namespace std;とかstd::replaceとか?
templateスレもあるよ。
【C++】template 統合スレ -- Part3
http://pc2.2ch.net/test/read.cgi/tech/1066493064/
それより、こっちのほうがいいか。
C++相談室 part27
http://pc2.2ch.net/test/read.cgi/tech/1074454641/
【初心者歓迎】C/C++室 Ver.4【環境依存OK】
http://pc2.2ch.net/test/read.cgi/tech/1073473867/
505
名前:
486Get!!
:04/02/02 14:25
>>495
HOOKで行きます。 仕様を追加してくれたご親切な皆さん、感謝(涙)。
506
名前:
デフォルトの名無しさん
:04/02/02 14:27
PathRemoveBackslash
の使い肩を教えてください。
何かをinkcludeしてやるのが必要なのでしょうか
507
名前:
デフォルトの名無しさん
:04/02/02 14:40
自分で調べることが必要。
508
名前:
デフォルトの名無しさん
:04/02/02 14:40
なんでMSDN見ないんだよ。怒るよ!
509
名前:
デフォルトの名無しさん
:04/02/02 14:49
URLを分解してくれるAPIってなかったっけ?
510
名前:
デフォルトの名無しさん
:04/02/02 14:51
CreateFileでファイルを作成して
そのファイル名が格納されるときに、c:\test\test.txtとして保存した場合
格納される配列をFileNameとすると、中身は"c:\\test\\test.txt"となっているのでしょうか
そのFileNameを使用してiniファイルとして出力を
WritePrivateProfileString関数で行い、最後の引数をFileNameにしているのですが
うまく保存されません。どうしてなのでしょうか。よろしくお願いします。
511
名前:
デフォルトの名無しさん
:04/02/02 14:55
・一行空け見にくい
・何を質問しているのかさっぱりわからない
512
名前:
デフォルトの名無しさん
:04/02/02 14:57
>>510
どこで失敗しているのか、戻り値もチェックしないとわからん
デバッガ使えないのかな?
ステップで実行しながら戻り値や変数の中身をみるだけで勉強になるぞ
513
名前:
デフォルトの名無しさん
:04/02/02 14:57
>>509
ttp://www.google.com/search?num=50&hl=ja&inlang=ja&ie=Shift_JIS&q=URL+%95%AA%89%F0%81@API%81@%82%A4%82%F1%82%B1&lr=lang_ja
514
名前:
デフォルトの名無しさん
:04/02/02 15:00
>>513
見つかった。ありがと!
>>510
ソースファイル中のエスケープとごっちゃにしてる悪寒
515
名前:
デフォルトの名無しさん
:04/02/02 15:04
>>510
>CreateFileでファイルを作成して
>そのファイル名が格納されるときに、c:\test\test.txtとして保存した場合
この段階で意味不明っぽ。
516
名前:
デフォルトの名無しさん
:04/02/02 15:06
hFile = CreateFile(FileName, GENERIC_WRITE,0,
NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,
NULL);
でファイル保存作業を行わせてから
WritePrivateProfileString("SECTION", "THEME",rData,
FileName);
としてiniファイルを作り、そこにデータを保存したいのですが
うまく保存されないんです。
517
名前:
デフォルトの名無しさん
:04/02/02 15:11
>>516
CreateFileって必要?
518
名前:
516
:04/02/02 15:15
>>517
保存する場所を選択できるような形にしたいので
CreateFileを使うと思ったので。
519
名前:
デフォルトの名無しさん
:04/02/02 15:16
>>516
CreateFileしなくてもWritePrivateProfileStringは自動的にファイルを作成する
たぶんCreateFileでハンドル握ってるから保存されん
520
名前:
516
:04/02/02 15:32
>>519
ハンドルを閉じたらできました。
ありがとうございます。
皆さん、ありがとうございました。
521
名前:
デフォルトの名無しさん
:04/02/02 15:35
いやいや閉じるんじゃなくて作らなければいいのでは
これじゃ毎回初期化されるが・・・
522
名前:
デフォルトの名無しさん
:04/02/02 15:44
>>521
もう、見ちゃいないって
523
名前:
519
:04/02/02 15:45
>>520
だれも閉じろなんて言ってないよ...
WritePrivateProfileStringってのは独自のファイルI/Oをもってるからさ
クリされてイジイジされるとこまるんだ
524
名前:
516
:04/02/02 16:01
ファイル選択→WritePrivateProfileStringでデータ読込
ではますいんですか?
525
名前:
デフォルトの名無しさん
:04/02/02 16:07
GetOpenFileNameでファイル選択すればいいんじゃないの?
CreateFileはファイル選択するAPIではないとおもうが
526
名前:
デフォルトの名無しさん
:04/02/02 16:07
>>524
ファイルがないときは自動的に作成されるはずだし、
あるときはそのファイルに書き込みされるはず。
だから、CreateFileするこたない。
ファイル選択とCreateFileは関係ないでしょ。
527
名前:
デフォルトの名無しさん
:04/02/02 16:08
根本的に勘違いしてる悪寒
528
名前:
516
:04/02/02 16:19
CreateFile自体必要じゃなかったんですね。
529
名前:
デフォルトの名無しさん
:04/02/02 16:24
そもそもなんのためにCreateFileしようと思ったんだい?
まさかおまじない程度?('A`)
530
名前:
デフォルトの名無しさん
:04/02/02 16:50
最初はテキスト形式でキー値を出力させようとしていたので。
531
名前:
デフォルトの名無しさん
:04/02/02 18:00
とてもしょぼい質問で申し訳ないのですが
最小化または最大化されているウィンドウを
元の状態に戻すAPIかメッセージは
ありませんでしょうか?
よろしくお願いします。
532
名前:
デフォルトの名無しさん
:04/02/02 18:19
ShowWindow
533
名前:
デフォルトの名無しさん
:04/02/02 18:47
>>532
アリガトン
534
名前:
脳豚
:04/02/02 22:15
アンチウィルスソフトとかって
あるプロセスがファイルを開こうとしたら
その前にファイルを開いてチェック !
みたいなことをやっているように思えるのですが。
こういうのってどうやってやるのですか?
標準のフックではAPIまでフック出来ないし・・。
535
名前:
デフォルトの名無しさん
:04/02/02 22:48
Unicodeベースでソースを書こうと思い立ったので
MessageBox(NULL, TEXT("ユニコードのメッセージ"), TEXT("ユニコードのタイトル"), MB_OK);
といったコードを書き、UTF-8Nで保存してコンパイルしてみたのですが正常に表示されません。
使ったコマンドラインはこのようなものです(MinGW3.3.1):
gcc -s -mwindows -O2 -o uni sample.c
どのようにすれば正常に表示されるのでしょうか?ご教示お願い致します。
なお、UnicodeやUTF-8ではコンパイルエラーが出ました。
OSはWindows2000を使っています。
536
名前:
デフォルトの名無しさん
:04/02/02 22:50
>>534
標準じゃないフック使ってるから。
ってAPIフックなんて半分標準みたいなもんだが。
537
名前:
デフォルトの名無しさん
:04/02/02 23:01
>>535
それのどこがWin32APIなんだと小一(ry
538
名前:
デフォルトの名無しさん
:04/02/02 23:09
534じゃありませんが、
>>536
なんとおもしろそうな。
もし良かったらその手の解説がのっているサイトを教えていただけませんでしょうか。
539
名前:
デフォルトの名無しさん
:04/02/02 23:19
>>536
んなAPIあんの?
プロセス止めてテーブル書き換えてリスタートさせるしか方法ないんじゃないの?
540
名前:
デフォルトの名無しさん
:04/02/02 23:31
APIというか、カーネルドライバを挟んでるんじゃねーの?
541
名前:
535
:04/02/02 23:45
>>537
MessageBoxは立派なWin32APIだと思ってるんですが、違うんですか?
542
名前:
デフォルトの名無しさん
:04/02/02 23:47
>TEXT("ユニコードのメッセージ")
これはちゃんとUTF-2文字列になるのかが問題だな。
あと、UNICODEを定義しないとMessageBoxAが呼ばれるはずだが。
543
名前:
535
:04/02/02 23:56
>>542
ありがとうございます。直接MessageBoxWを使ってみました(-DUNICODEをつけてコンパイル)。
コンパイルエラーの類は出ないのですが、やはりおかしな文字列が表示されます。
TeraPadを使ってソースを書いているので、UTF-2(現UTF-8N?UTF-8ではgccが文句を言います)保存のほうは大丈夫だと思います。
544
名前:
デフォルトの名無しさん
:04/02/02 23:56
>>542
UTF-2などというものは存在しない。
UCS-2でしょ。
でも最近のWindowsはUCS-2ではなくUTF-16だったりするが。
545
名前:
デフォルトの名無しさん
:04/02/02 23:58
つーか、MingwがUTF-8で書かれたL""をUCS-2/UTF-16に変換してくれるかどうかの
問題じゃないのか?
546
名前:
デフォルトの名無しさん
:04/02/03 00:00
>>534
,536
http://www.nai.com/japan/security/virB2003.asp?v=Backdoor-AOK
レジストリフックなるものがあるらしい。
547
名前:
デフォルトの名無しさん
:04/02/03 00:01
>>544
UCSは文字セットの名前
UTFは文字エンコードの名前
UCS-2の文字セットを16bit固定でエンコードするとUTF-16、8bit単位の可変長とするとUTF-8です。
で、質問なんですけど、不透明度アルファチャンネルを持つビットマップを描画するAPIってありますか?
548
名前:
534
:04/02/03 00:03
>>536
> ってAPIフックなんて半分標準みたいなもんだが。
ってあるのですが。
そんなにメジャーな方法なのですか?
色々探し回ってみたけど、見つからなかったです(´・ω・`)
>>539
氏の方法がソレなのでしょうか?
再び検索の旅に逝ってきます・・。
549
名前:
デフォルトの名無しさん
:04/02/03 00:05
UTF-16ってUCS4じゃなかった?サロゲートペアを考えると。
550
名前:
535
:04/02/03 00:06
>>545
なるほど、そうですね。板内を検索してみると同様のことを試している人が居ましたので参考にして見ます。
http://pc2.2ch.net/test/read.cgi/tech/1052186697/308
(どうやら、MinGWは変換してくれないようです)
551
名前:
デフォルトの名無しさん
:04/02/03 00:06
>>547
UTF-16はUCS-4をサロゲートで表記したものを言うのが普通。
サロゲートが存在しなかった頃の16bit Unicode時代のものをわざとUCS-2と呼んで区別する。
アルファチャンネル関連はDirectDrawかGDI+を使うしかない。
552
名前:
デフォルトの名無しさん
:04/02/03 00:08
>>551
AlphaBlend忘れるなよ。
つか、DIBSectionあたりが相手なら自前でもそうたいしたコストじゃないか。
553
名前:
デフォルトの名無しさん
:04/02/03 00:10
>>552
忘れてないけど?
554
名前:
デフォルトの名無しさん
:04/02/03 00:14
>551
DirectDrawつーか、Direct3Dの2D利用では。もう統合されたんだっけか。
555
名前:
デフォルトの名無しさん
:04/02/03 00:27
>>546
フックの意味合いが違うと突っ込んでみる。
556
名前:
デフォルトの名無しさん
:04/02/03 00:27
>>554
msimg32.dllってDirectXだっけか。
557
名前:
デフォルトの名無しさん
:04/02/03 04:58
APIフックに興味がおありなら
「Advanced Windows」をご購入下さい
558
名前:
デフォルトの名無しさん
:04/02/03 06:37
>>548
NT系なら、フィルタドライバかな。要DDK。
95系はしらん。
559
名前:
デフォルトの名無しさん
:04/02/03 10:13
>>544
UTF-2はUTF-8の旧称
542は間違えただけだと思うが
560
名前:
デフォルトの名無しさん
:04/02/03 12:04
TDI(Tramsport Driver Interface)周りの質問ってここでOK?
WDMのほう逝け?
561
名前:
デフォルトの名無しさん
:04/02/03 12:50
一応聞くだけ聞いてみれば?
無理ならWDM逝けばいいかと
(マルチ氏ねっていわれるかもしれないけどな)
562
名前:
560
:04/02/03 14:37
netstat -o(xp以降)のようなnetstat + プロセスIDをwin2000で実現しようとしています。
xp以降は散々既出な非公開関数で実現できるのですが、win2000ではググってみたところ
NtQuerySystemInformationでハンドル-プロセスID情報を取得。
上記に対しgetsockname / getpeernameが有効であればこれを利用。
無効なら取得ハンドルからDeviceIoControlの制御コード0x210012 + 適当に情報を入れた
TDI_CONNECTION_INFORMATIONからTDI_CONNECTION_INFOを取得。
のような流れが主流のようで、これで一応ローカルIP、ポート、プロセスID
のデータを取得できています。が、TCPにおけるリモートIP、ポートや
connection statusがうまく取得できていません。
TDI_CONNECTION_INFORMATIONを取得するような方法、または他の実現方法、
TDIに関する情報等ありませんでしょうか?
DDKのサンプルには目を通していますが、今一バッチリとは来ませんでした。
563
名前:
デフォルトの名無しさん
:04/02/03 15:29
↑snmp 系の API で取得できたような気がする。
564
名前:
デフォルトの名無しさん
:04/02/03 16:42
例えばデスクトップ上のあるファイルをクリックしたら、
そのファイルのファイル名及びパスを取得できるようにするにはどうしたらいいでしょうか?
分かる方、お願いします><。
565
名前:
デフォルトの名無しさん
:04/02/03 16:51
>>564
パス:SHGetSpecialFolderLocation
566
名前:
デフォルトの名無しさん
:04/02/03 22:49
フルスクリーンで使うソフトを作っています。
起動中は使用者がほかのソフトに切り替えるのを防ぎたいのです。
何かいい方法はありますか?WINキーやALT+TABキーを殺したいのですが。
567
名前:
デフォルトの名無しさん
:04/02/03 22:57
PreTranslateMessageでブロックすりゃええがな
568
名前:
デフォルトの名無しさん
:04/02/03 23:03
でもな、ALT+TABとかALT+F4は残しとけ。教えといてなんだけどな
569
名前:
デフォルトの名無しさん
:04/02/03 23:09
デバッガ使われたらまずいソフトでも作ってんのか?
570
名前:
デフォルトの名無しさん
:04/02/03 23:17
566です
567さまありがとうございました。
568、569さま、子供用ソフトです。いじられないように。
571
名前:
デフォルトの名無しさん
:04/02/04 15:54
>>566
別デスクトップ生成→そこで実行、もアリかな?面倒かもしれないし9X系だと使えないが。
572
名前:
デフォルトの名無しさん
:04/02/04 17:51
Win32APIを使わず、windowを作るなんてこと出来るんすか?
というかOSなしで稼動できるように・・・。
573
名前:
デフォルトの名無しさん
:04/02/04 17:52
もう一回何言ってるのかわかるように説明してください
574
名前:
デフォルトの名無しさん
:04/02/04 19:18
>>572
いくらでも出来ますが、このスレと関係ありません。
575
名前:
デフォルトの名無しさん
:04/02/04 20:59
IEに貼り付けるムービープレイヤのActiveX作ってるのですが、
IE側でスクロールするとちらついてしまうので
その間は描画を止めたいと思っています。
IEのスクロールを検知するにはどうしたらよいのでしょうか。
システムフックするしかないのでしょうか?
576
名前:
デフォルトの名無しさん
:04/02/04 23:17
Win2000で、Win32_NTEventLogを参照して、イベントビューワ上で
表示されるのと同様のテキストを得ようとしています。
イベントビューワ上の"説明"欄に表示されるテキストが
"Win32_NTEventLog.Message"の値とのことなのですが、一部の
イベントでは .Message に"%n" (n:整数)という文字列が挿入され
ており、これがイベントビューワ上では他の文字列に置き換えて
表示されます。
見つけた例:
ソース:DCOM,イベントID:10005のイベントでは、.Message中
に"%109"と記述されていたが、イベントビューワで見るとこの部分
が"ファイルが見つかりません"と置換される
置換される文字列がどこにあるのか、WMIのリファレンスやObject-
Browser等で探したのですが、見つけることができませんでした。
Windowsの標準的なエラーメッセージを保持しているクラスでもある
のか思うのですが、どなたか、思い当たる事でもありましたらお教え
頂けないでしょうか。
よろしくお願いします。
577
名前:
デフォルトの名無しさん
:04/02/05 00:11
FormatMessageでねーの?
578
名前:
デフォルトの名無しさん
:04/02/05 00:46
エラーコードからFormatMessageでエラー文字列に変換する場合
エラー文字列の中には%1や%2というようにパラメータが必要なものがありますよね(例えばERROR_WRONG_DISK)
こういうのっていちいちエラーコードを調べてパラメータを指定するもんなんですか?
579
名前:
デフォルトの名無しさん
:04/02/05 01:53
APIでいいのかな
質問しちゃいます。
メモリにあるHTMLソース
char html[]="<HTML><h1>test</h1></HTML>";
みたいな
物を、表示したいんですが
何を使えばよろしいのでしょうか?
ActiveXのwebBrowser使ってみたけど
ファイルに保存した状態じゃないと駄目みたいなのです。
580
名前:
デフォルトの名無しさん
:04/02/05 02:03
>>579
ttp://www.nitoyon.com/vc/tips/ie_component.htm
about:blankの〜ってやつ
581
名前:
デフォルトの名無しさん
:04/02/05 02:04
http://pc2.2ch.net/test/read.cgi/tech/1075319943/
向けだな。↑の前スレ探せば出てきそうな気がするけど。
582
名前:
デフォルトの名無しさん
:04/02/05 02:10
質問です。
Google Deskbar みたいなアプリってどうやったら作れるのでしょうか?
583
名前:
デフォルトの名無しさん
:04/02/05 02:35
IDeskBandを実装する。
584
名前:
デフォルトの名無しさん
:04/02/05 12:04
WinXP用ネットワーク切り替えツールが作りたいのですが
その辺のAPIってどれでしょう?
585
名前:
デフォルトの名無しさん
:04/02/05 13:34
ネットワーク切り替えってなに?
586
名前:
デフォルトの名無しさん
:04/02/05 13:37
ネットワークっていったらインターネットのことだろ
インターネットっていったら2ちゃんねるとかあれのことだろ
そーいうことだから
587
名前:
デフォルトの名無しさん
:04/02/05 13:50
マジレスするとこーゆー奴じゃねーの?
http://arena.nikkeibp.co.jp/qa/internet/gaz/int_m31/
588
名前:
デフォルトの名無しさん
:04/02/05 15:51
CRowset::SetDataについて質問があります。
現在、WinXP Pro + VS2003Pro + MSDE の環境と
MFC + ATLサポートの形式でOLE DB接続コンシューマの
データベースアプリを作っています。
そこで、レコードの更新・挿入時にSetDataを使用しているのですが
主キーを設定しているテーブルを更新しようとすると
DB_E_ERRORSOCCURREDを返して更新ができません。
MSDN(日本語・英語両方)では、
書き込み禁止列がある場合、操作は失敗し、
これを回避するにはカーソル マップを変更します。
といった意味の記述がありますが具体的にどのような
コーディングをすればいいのでしょうか?
589
名前:
デフォルトの名無しさん
:04/02/05 16:30
すれ違い
590
名前:
デフォルトの名無しさん
:04/02/05 18:11
APIでcryptと同じ関数あったら教えてください
591
名前:
デフォルトの名無しさん
:04/02/05 18:19
ソース探してきて自分で組み込む
592
名前:
576
:04/02/05 21:48
>> 577-578
ありがとうございました。
FormatMessageをVC++でから試したところ、イベントビューワと同じ
メッセージが得られました。
ところで、今更申し上げるのは恐縮なのですが、実環境は以下のような
事情があります。
1.開発環境が買えないので、スクリプトで作成する
(すくなくともVBSに、エラーコードからメッセージを引く関数は無い様子
→ FormatMessageが使えない? JScriptの"Format"が使えるか試す予定)
2.ネットワーク経由で他のPCからイベントを収集し、且つターゲットのOSが
日本語版/英語版混在
(日本語版Winは日本語のメッセージしか保持していないらしく、LANGID
を切り替えても英語のとメッセージは得られない模様。
→ 接続先のOSから、メッセージの一覧を取得する必要あり?)
というわけで、できればシステムメッセージを保持しているオブジェクト(?)を
特定し、接続先OSのそれを参照できないかなと考えています。
度々もうしわけないのですが、心当たりありましたらお教え頂けませんでしょう
か...
593
名前:
デフォルトの名無しさん
:04/02/05 22:24
>>592
うーん、、、KERNEL32.DLLにMessageTableリソースでエラーメッセージの一覧があるので、
あらかじめ取得しておくとか解析するとか。
594
名前:
デフォルトの名無しさん
:04/02/05 22:32
bccなりで引数にエラーID取って標準出力なりにFormatMessageの結果を返す
コマンドでも作ったほうが早そうだが。
595
名前:
デフォルトの名無しさん
:04/02/06 09:36
この辺を参照して自分で作成するとかw
http://msdn.microsoft.com/library/en-us/debug/base/system_error_codes.asp
596
名前:
高校生
:04/02/06 12:52
ひょっとしたらガイシュツかもしれませんが、
絶対パス、相対パスからファイル名だけを抜き出すAPIはありますか?
C:\\Program files\\test\\a.exe
test\\a.exe
.\a.exe
a.exe
のようなパスで、どれでもa.exeが返ってくるようなAPIが理想なのですが。
それぐらい自力で抜き出せと言われそうですが。
その場合、文字列末尾から\\までを抜き出せばいいのかな?
見つからなかったらそのまま返すという風に。
597
名前:
デフォルトの名無しさん
:04/02/06 12:59
PathFindFileNameあたりか?
598
名前:
デフォルトの名無しさん
:04/02/06 13:04
>>596
GetFullPathNameのlpFilePartでどうだろ
599
名前:
デフォルトの名無しさん
:04/02/06 13:28
>>596
_splitpathってどう?
でも、APIとは言わないか。
600
名前:
デフォルトの名無しさん
:04/02/06 13:37
APIだけどWin32APIではないね
601
名前:
デフォルトの名無しさん
:04/02/06 15:52
現在マウスをフックしようと思ってプログラムを作っているのですが、
SetWindowsHookExに渡すWH_MOUSE_LLというフラグが使えなくて困ってます。
HDの中を検索した所winuser.hに書いてあるようなのですが、
インクルードしても「定義されていない識別子です。」とコンパイラに怒られます。
一応以下のようにしてインクルードしています。
#define _WIN32_WINNT 0x0400
#include<winuser.h>
開発環境はVC6 OS:Win2000です。
602
名前:
デフォルトの名無しさん
:04/02/06 16:00
#define _WIN32_WINNT 0x0500
603
名前:
デフォルトの名無しさん
:04/02/06 16:22
Win9x系でのキーフックについて質問なのですが、
システム全体でAlt+TabやCtrl+Escなどを禁止して、Ctrl+Alt+Delだけ
有効にする方法はないでしょうか?
SystemParametersInfo(SPI_SCREENSAVERRUNNING, ...)を使えば
Ctrl+Alt+Delまで使えなくなるし、かといってWH_KEYBOARD_LLは使えない。
WH_KEYBOARDでは、フックしても効果がないですし…。
やっぱり、無理なんでしょうか?
604
名前:
デフォルトの名無しさん
:04/02/06 16:28
>>602
嘘はいかんよ、嘘は。
手元のwinuser.h見たら
#if (_WIN32_WINNT >= 0x0400)
で囲まれてるから、_WIN32_WINNTの定義はそれであってると思うよ。
気になるのは、
>>601
で示された定義の前にwindows.hとか、
中でwinuser.hをincludeしてるファイルをincludeしてない?
ってか、winuser.hを直接includeするよりはwindows.h一つで
済ませた方が良くないか?
605
名前:
デフォルトの名無しさん
:04/02/06 16:49
C/C++スレから移動してきました。
開発環境Win2K,VB6.0&VC++6.0で、
内容としてはVBの要素も強いのですが教えてください。
VB6.0でPrinterオブジェクトを利用した出力処理があるのですが、
プリンタの設定でファイルに出力する場合にファイル名を入力するダイアログがでてきます。
このダイアログを出さないようにしたいのですがなにかよい方法はないでしょうか?
(最初考えたのは、WinSpool の StartDocPrinter をフックして、
DOCINFOにファイル名を加えてやればできるかなと思ったのですが
それより先に StartDocDlg というよくわからないAPIを呼んでいて
ダイアログもそこででているようで行き詰ってしまいました・・・)
606
名前:
デフォルトの名無しさん
:04/02/06 17:24
w2k+IME2kなのですが、
ワードパッドで日本語入力しているときに
入力文字の下の線が波線になっているのはどうやっているのでしょうか?
通常は点線なのですが・・・
607
名前:
デフォルトの名無しさん
:04/02/06 17:30
UNIXでのシステムコールがWindowsでのW32APIに相当する物と考えていいんですか?
608
名前:
デフォルトの名無しさん
:04/02/06 17:46
システムコール+Xのライブラリ、かな〜
609
名前:
デフォルトの名無しさん
:04/02/06 17:51
SysListView32をCreateWindowExで作ってごにょごにょやってるんですが
リスト内でマウスクリックが起きたときにどのアイテムがクリックされたかを
知るにはどうしたらいいでしょうか?
LBItemFromPtかと思ったんですが動いてくれませんでした…
610
名前:
デフォルトの名無しさん
:04/02/06 17:52
WM_NOFITYでNM_CLICKあたりが飛んでこない?
611
名前:
デフォルトの名無しさん
:04/02/06 18:22
>>604
ありがとうございました。
指摘されたようにwinuser.hをインクルードする前に、
windows.hをインクルードしていました。
612
名前:
デフォルトの名無しさん
:04/02/06 18:31
>>596
どうでもいいがデリミタは/も有効。自作する場合気をつけて
613
名前:
デフォルトの名無しさん
:04/02/06 19:14
それはNTだけじゃないか?
というか、一度フルパス>UNCに正規化した後に扱うのが
Win32パスを扱う場合の定石っぽい
614
名前:
デフォルトの名無しさん
:04/02/06 19:51
特定のファイルタイプに関連付けされたアイコンの取得方法って無いでしょうか?
ファイルの実体が無くても、フォルダや各種タイプに応じたアイコンがほしいんですが・・・
レジストリをたどるしか無いかな
615
名前:
デフォルトの名無しさん
:04/02/06 20:38
>>607
単に「UNIX」では範囲が広すぎて何とも言えない。
Windowsのシステムコールというとネイティブということになる。
通常はエグゼクティブに直接発行するのではなく、
Win32, POSIX, OS2 などのラッパーを通して使っている。
616
名前:
デフォルトの名無しさん
:04/02/06 23:28
とてもあいまいな質問なのですが、何か思いついたことがあれば一言でもお願いいたします。
APIとはちょっと違うかもしれませんが、VC質問スレとか見当たらないもので…。
以前DLLを作成するときに、自作classは使わないほうが良いと知った覚えがあります。
本で読んだのか、人から聞いたのかはよく覚えていませんが、当時の私はDLLのソースの中で
自作classを宣言&使用するのをやめてDLLを作成しました。
最近またDLLを作ろうとしたところこれを思い出し、
「はて、DLLでは自作classが使えないのかな…」と試してみたら普通にコンパイル通りました。
DLL内で自作classを宣言&使用することに、何か不都合などありますでしょうか?
どんなに細かいことでも良いのでよろしくお願いいたします。
ぐぐって調べようとしても、classもdllも一般的用語すぎてうまく絞れないもので煮詰まっております。
617
名前:
デフォルトの名無しさん
:04/02/06 23:36
>>616
ttp://www.kab-studio.biz/Programing/Codian/DLL_Hook_SClass/05.html
618
名前:
デフォルトの名無しさん
:04/02/06 23:39
>>616
"DLL C++ クラス エクスポート"あたりをキーにすると少しは絞れるかも。
619
名前:
デフォルトの名無しさん
:04/02/06 23:55
>>616
DLLの中だけで完全に閉じた世界でなら、無問題。
しかしDLLからクラスをエクスポートさせたいなら、
newとdeleteがアセンブラレベルで(C++の言語仕様レベルじゃないよ)
いったい何を引きおきしているのか、完璧に理解していなければならない。
620
名前:
609
:04/02/07 00:06
>>610
NM_CLICKの代わりに-530が飛んできました(なんじゃこりゃ…)。
うまく行かないようなので別の方法で切り抜けようと思います。
ありがとうございました。即レス戴いたのに遅くなってすみませんm(_ _)m
621
名前:
デフォルトの名無しさん
:04/02/07 00:49
ExtractAssociatedIcon APIがうまく動きません。
というか戻り値のアイコンハンドルが0になってしまいます。。。
ExtractIcon APIだとちゃんとアイコンハンドルを取得できるのですが。
下記にソースをうpしてみました。だれかおしえてー(>_<
ウインドウ上に2つのボタンが配置されてます。
ExtractIcon ボタンを押すと、explorerのアイコンを表示します。
(↑これは正常に動作します)
ExtractAssociatedIcon ボタンは、win.iniに関連付けされたEXEファイルのアイコンを表示します。
(↑こちらがダメです。。。)
http://www.pandora.nu/tv/src/img20040207004452.zip
622
名前:
デフォルトの名無しさん
:04/02/07 01:14
SHGetFileInfoにしてみてはどうか
623
名前:
デフォルトの名無しさん
:04/02/07 01:35
>以前DLLを作成するときに、自作classは使わないほうが良いと知った覚えがあります。
MFCの共有DLLを思いっきり否定してる人がいたわけか
624
名前:
デフォルトの名無しさん
:04/02/07 01:49
つーかMFCの共有DLLは、VC++しか使わないし。
コンパイラ限定のDLLで好いなら、別にclassをdllから
exportするのは自由だとおもうけど、MS自体COM作ってるわけでねぇ。
625
名前:
デフォルトの名無しさん
:04/02/07 01:52
>ExtractAssociatedIcon
第2引数にリテラルを渡したらダメじゃないの?
626
名前:
デフォルトの名無しさん
:04/02/07 01:52
httpのファイルを拾いたいんですが
簡単に出来ますか?
GetHttpFile("
http://
〜");
見たいな感じで。
もうちょっとめんどくさくてもいいや。
627
名前:
デフォルトの名無しさん
:04/02/07 01:59
>>626
URLDownloadToCacheFileとか?
628
名前:
607
:04/02/07 02:07
>>608
,615
ありがとうございます。そういえばw2kまではos2/posixサブシステムがありましたね。
629
名前:
デフォルトの名無しさん
:04/02/07 02:07
ExtractAssociatedIconの引数って、なんかアレだよなw
630
名前:
デフォルトの名無しさん
:04/02/07 04:24
こんにちは。
ファイル関連の扱いとして、
あるフォルダ内に、どのようなファイルがあるかを調べたいのですが、
適切なAPIがよくわかりません。
どのAPIを使うのか、軽く教えていただけるとありがたいのですが。
申し訳ありませんが、よろしくお願いいたします。
631
名前:
デフォルトの名無しさん
:04/02/07 09:02
>>630
> あるフォルダ内に、どのようなファイルがあるかを調べたいのですが、
「どのような」の内容を具体的に書けよ。
ファイル名、サイズ、作成日付なんかだと API でそれなりにさくっと得られるけど、エッチな絵が含まれるファイルがあるか調べたいとか言われても困るしな。
632
名前:
デフォルトの名無しさん
:04/02/07 09:14
>>617-619
ありがとうございました。昨日はあのまま寝てしまったので、これから色々調べてみます^^
633
名前:
デフォルトの名無しさん
:04/02/07 10:59
>>624
お主、COMを持ち出した意図はどっちだ?
634
名前:
デフォルトの名無しさん
:04/02/07 11:00
>>630
UNIXのfileみたいなやつ?
635
名前:
デフォルトの名無しさん
:04/02/07 11:12
>633
どっちとは?すくなくとも、MSは、DLLでclassをexportするより、
新しくCOMを作ったという面があるわけで、つまり、DLLのexportは、
MSからしてもあまり推奨されていない、限定的な解でしかない、ってことでしょ。
636
名前:
デフォルトの名無しさん
:04/02/07 12:07
COMみたいに抽象クラスを定義しておいて
インスタンス生成関数をエクスポートした方が楽だよなぁ。
637
名前:
デフォルトの名無しさん
:04/02/07 13:17
>>635
推奨とかそういうんじゃなくて、
C++は名前修飾に標準規格のようなものがないから、
他社製のさまざまなC++処理系でも平等に使えるようなAPIが
作れないからだと思うぞ。
638
名前:
デフォルトの名無しさん
:04/02/07 15:59
>>626
MFC使え。
639
名前:
621
:04/02/07 17:09
>>622
SHGetFileInfoですか。そちらでも試してみます。
>>625
>>ExtractAssociatedIcon
>第2引数にリテラルを渡したらダメじゃないの?
むぅーよくわかりません。何を渡せばいいのでしょうか・・。
HICON ExtractAssociatedIcon(
HINSTANCE hInst, // アプリケーションインスタンスのハンドル
LPTSTR lpIconPath, // ファイル名
LPWORD lpiIcon // アイコンのインデックス番号
);
lpIconPath
1 つの文字列へのポインタを指定します。この文字列で、アイコンを
保持しているファイルのフルパスとファイル名を指定します。
と、MSDNには載っています。
640
名前:
デフォルトの名無しさん
:04/02/07 17:56
でかい配列を作ってpathをコピー。そして、その配列を2番目の引数に入れる
641
名前:
621
:04/02/07 18:50
>>640
ありがとうございます。動きました。
うわぁワケワカラン・・・。
char* lpExeFileFullPath = "C:\\WINDOWS\\win.ini";
↑これでは動かずに、
char lpExeFileFullPath[] = "C:\\WINDOWS\\win.ini";
↑これで動く。
この2つの違いって何なんですか???わからない〜〜
>>622
SHGetFileInfoも正常に動きました。
642
名前:
デフォルトの名無しさん
:04/02/07 19:04
memory allocation
643
名前:
デフォルトの名無しさん
:04/02/07 19:18
>>630
ワイルドカード使ってFindFirstFile、FindNextFile
644
名前:
デフォルトの名無しさん
:04/02/07 19:33
>>641
C言語なら私に聞け! Part 65
http://pc2.2ch.net/test/read.cgi/tech/1064234533/945-
645
名前:
デフォルトの名無しさん
:04/02/07 19:43
>>641
俺もそう思う。ホントに変な動きだね。
char *lpExeFileFullPath = strdup("C:\\WINDOWS\\win.ini");
とすると動くし。ワケワカラン
646
名前:
デフォルトの名無しさん
:04/02/07 19:48
strdupは領域確保するから。lpExeFileFullPathに確保した領域への参照をさせる
647
名前:
デフォルトの名無しさん
:04/02/07 19:53
多分APIだと思うんですが。。。
エクスプローラのツール→フォルダオプションで表示される
ダイアログをプログラムから表示する方法ってあるでしょうか。
648
名前:
645
:04/02/07 20:05
>>646
要は、ExtractAssociatedIcon()は第2引数を書き換えるから
定数領域のメモリを渡しちゃダメって言うことでしょうかね?
(スレ違いすまん)
649
名前:
デフォルトの名無しさん
:04/02/07 20:12
>>648
そのとおり。ヘルプ見ると第二引数は書き換えられることがあると
書いてあるね。バッファの大きさに気をつけないとバグるかも
嫌な仕様だなぁ。
650
名前:
デフォルトの名無しさん
:04/02/07 20:40
本当なら文字リテラルを渡してもOKなはずですが、その領域は
リンカによって書き込み不可になっているのです。
多分ExtractAssociatedIcon()を実行中、保護例外が発生してると思いますよ。
651
名前:
デフォルトの名無しさん
:04/02/07 20:49
>>647
control.exe folder
(Windows 2000 or lator)
652
名前:
デフォルトの名無しさん
:04/02/08 00:42
VB6なんですが
DrawFrameControlやDrawEdgeでユーザーコントロールの外観を描いてますが
WinXPの視覚スタイルが適用されないので困ってます。
Manifestファイルを使っても効果がありません。
"DrawFrameControl 視覚スタイル"とかで検索しても情報出てきません。
視覚スタイルを使って描画するにはどうしたらいいのでしょうか。
653
名前:
デフォルトの名無しさん
:04/02/08 00:52
DrawThema〜
あたりを使うらしい。
654
名前:
デフォルトの名無しさん
:04/02/08 02:34
Win32APIから外れるかもしれませんが、アプリのボトルネックを調べる為にターゲットアプリを
内部で実行し、Win32API呼び出しをフックして取得、それぞれのAPIが呼ばれた回数とそれらに
かかった時間を調べるにはどのような方法を使えば良いのでしょうか?
ターゲットアプリのソースコードは無い(つまり、gprofやVC++のプロファイラは使えない)状況でも
使えるようにしたいのですが・・・
655
名前:
デフォルトの名無しさん
:04/02/08 03:06
レバーコントロールを作ろうとしているのですが、
生成されずに困っています。
生成部分は下記のとおりです(BCC5.5.1 + BCC Developer)。
INITCOMMONCONTROLSEX icc;
icc.dwSize = sizeof(&icc);
icc.dwICC = ICC_BAR_CLASSES | ICC_COOL_CLASSES;
InitCommonControlsEx(&icc);
hRebar = CreateWindowEx(
WS_EX_TOOLWINDOW,
REBARCLASSNAME,
NULL,
WS_CHILD | WS_VISIBLE | WS_BORDER | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | RBS_BANDBORDERS | RBS_VARHEIGHT | CCS_NOPARENTALIGN,
0,0,100,100,
hWnd,
(HMENU)ID_REBAR,
hInstance,
NULL);
ツールバー、ステータスバーは問題なく生成できています。
ご存知の方いらっしゃいましたら、ご教授お願いします。
(Delphiでは生成できたのですが、BCC側の問題なのでしょうか?)
656
名前:
デフォルトの名無しさん
:04/02/08 14:20
こんにちは。
猫さんのHPに、こういう記載がされています。
http://www.kumei.ne.jp/c_lang/sdk2/sdk_189.htm
switch (lpnmTB->iItem) {
case IDM_MARU:
lstrcpy(szMenuName, "MARUMENU");
break;
case IDM_SHIKAKU:
lstrcpy(szMenuName, "SHIKAKUMENU");
break;
}
hMenu = LoadMenu(hInst, szMenuName);
hPopup = GetSubMenu(hMenu, 0);
rebarのドロップダウンメニューを持つツールバーなんですけども、
なぜか、リソースからメニューがロードされないです。
で、上記の部分を、hMenu = LoadMenu(hInst,MAKEINRESOURCE(MARUMENU));
に変えると、きちんと読み込まれます。
何が問題で、読み込まれないんでしょうかね。?
できれば、char型のストリングで指定したいんですけども。
お手数ですが、ご返答願いますでしょうか。
657
名前:
656
:04/02/08 14:21
すいません、修正します。
MAKEINTRESOURCEでした。
658
名前:
デフォルトの名無しさん
:04/02/08 14:37
>>655
icc.dwSize = sizeof(&icc);
これが悪いようだ。
659
名前:
デフォルトの名無しさん
:04/02/08 14:39
>>656
LoadMenu(hInst,"MARUMENU");
と直接指定した場合は?
660
名前:
655
:04/02/08 15:16
>>658
ありがとうございます。
初歩的なミスですが、ぜんぜん見えてませんでした。
すごく恥ずかしいです。
661
名前:
デフォルトの名無しさん
:04/02/08 16:51
>>654
VCならプロファイルでいけたはず。
662
名前:
661
:04/02/08 16:52
ごめん。本文よく呼んでなかった。
忘れてくれ。
663
名前:
652
:04/02/08 21:55
>>652
DrawThem"e"ですよね?検索したらかろうじて3件引っかかりました。
members.jcom.home.ne.jp/1213687801/cs/windowsforms/theme.html
「WM_THEMECHANGEDメッセージを監視する必要があり」とか書いてあるので
VB6だと結構苦手っぽいですね。書けないことはないと思うのでやってみます。
664
名前:
デフォルトの名無しさん
:04/02/08 22:51
>>654
APIMONとか。
665
名前:
デフォルトの名無しさん
:04/02/09 00:19
WinsockAPIをフックしたいのですがどうすればいいでしょうか?
メッセージフックでは出来なさそうですし、DLLを置き換えるくらいしかありませんか?
666
名前:
デフォルトの名無しさん
:04/02/09 00:33
API関数の呼び出しをフックするにはどうすればいいでしょうか?
667
名前:
デフォルトの名無しさん
:04/02/09 00:33
>>665-666
668
名前:
デフォルトの名無しさん
:04/02/09 12:57
関数Aの引数として、関数Bの関数ポインタを渡す際、関数Bはグローバルでないと
いけないのでしょうか。
関数Bがグローバルのときは通ってたコンパイルが、クラスのメンバ関数にすると
とたんにエラーをはくようになります。
669
名前:
デフォルトの名無しさん
:04/02/09 13:00
>>668
これはC++の質問ですな。staticでないメンバ関数へのポインタは普通にはとれない。
670
名前:
デフォルトの名無しさん
:04/02/09 13:20
>>669
いや普通に取れるだろ。
671
名前:
デフォルトの名無しさん
:04/02/09 13:45
実体のないものはコンパイルとおらん
なのでstaticで宣言するのが定石
但しstaticメンバ内にはスコープが通らないため
工夫が必要
続きはC++な質問の方へ
672
名前:
デフォルトの名無しさん
:04/02/09 13:48
>>668-669
取れる
ttp://www.emit.jp/prog/prog_cpp0.html
673
名前:
デフォルトの名無しさん
:04/02/09 13:53
あんまり普通とは言えない気がするなあ
674
名前:
デフォルトの名無しさん
:04/02/09 13:54
>>672
>>672
このスレで質問してるって事は、APIで使うんだろ?
675
名前:
デフォルトの名無しさん
:04/02/09 14:15
>>674
いや取れるから
676
名前:
デフォルトの名無しさん
:04/02/09 14:19
そのポインタをAPIに渡しても無駄
677
名前:
デフォルトの名無しさん
:04/02/09 14:30
中途半端な知識のやつがスレ違いなC++の事語るスレはここです。
678
名前:
デフォルトの名無しさん
:04/02/09 14:49
>>671
実体が無いって
メンバ関数も new の時に実体が作られるとか
思っちゃってるのだろうか。
メンバ関数のアドレスなんていつでも取れるでしょ。
エラーが出るのは static じゃないメンバ関数は
呼び出し規約が thiscall になってるからでしょ。
679
名前:
デフォルトの名無しさん
:04/02/09 15:14
>>678
virtualの扱いはどうなる。
680
名前:
デフォルトの名無しさん
:04/02/09 15:18
メンバー関数のポインタはclassを指定しないと使えないから
virtualは関係ないわけだが
681
名前:
デフォルトの名無しさん
:04/02/09 15:59
単に、関数ポインタの型が違っているから怒られると思うのだが......
class A
{
static int FuncStatic(); // int (A::*)();
int Func(); // int (*)();
};
682
名前:
681
:04/02/09 15:59
逆やん…
class A
{
static int FuncStatic(); // int (*)();
int Func(); // int (A::*)();
};
683
名前:
デフォルトの名無しさん
:04/02/09 16:20
>>681-682
いやだからそれが thiscall と __cdecl や __stdcall の
呼び出し規約の違いだろ。
684
名前:
デフォルトの名無しさん
:04/02/09 16:35
この話題ってFAQ&スレ違いだな。
なんか定期的にどっかで見かける。
685
名前:
デフォルトの名無しさん
:04/02/09 18:13
透過色を使ったスプライト表示はどうやるんでしょうか? BitBltにはその機能はないですよね?
686
名前:
デフォルトの名無しさん
:04/02/09 19:17
ウィンドウ内の話ならAlphaBlend/TransparentBlt(2000/XP)、
もしくは自力で抜き色からリージョン生成してデバイスコンテクストに選択してBitBlt。
or
DIBSectionに自力で合成。
or
DirectX。
ウィンドウそのものの形を変化させたいならSetWindowRgn/UpdateLayeredWindow(2000/XP)
687
名前:
デフォルトの名無しさん
:04/02/09 20:37
ImageListもアリ
688
名前:
654
:04/02/09 21:12
>>664
気付きませんでした。こんな便利なものがあるんですね
ありがとうございます
689
名前:
デフォルトの名無しさん
:04/02/10 11:12
JavascriptのsetTimeoutのような関数はWIN32APIにはありますか?
引数に関数と時間をセットすると、その時間経ってから関数を実行してくれるやつです。
690
名前:
デフォルトの名無しさん
:04/02/10 11:32
setTimeoutがどういう動きをするのか知らんが、
処理がそこで停止して、
指定時間後に関数を実行するのなら
Sleepの後に関数呼べば済むだろ
処理がそのまま継続されるのなら、
スレッドつくることになるかな
691
名前:
デフォルトの名無しさん
:04/02/10 11:39
SetTimer() はだめなんでつか。そうでつか。
692
名前:
デフォルトの名無しさん
:04/02/10 11:49
timeSetEventもあるでよ。
693
名前:
デフォルトの名無しさん
:04/02/10 14:01
>>690-692
ありがとうございました。
スレッドとSetTimerでやってみます。
694
名前:
デフォルトの名無しさん
:04/02/10 14:25
プログラム上でWindows2000のシステムロケールの既定値を変更する方法を
ご存知の方はいらっしゃいませんか?
SetLocaleInfo Win32APIが変更できるのはユーザー上書き部分だけで、シス
テムロケールの既定値は変更出来ないとの事なのですが、
[コントロールパネル]-[地域のオプション]-[既定値に設定]-[システムロケールの
選択]で変更が出来ると言うことは、なにか他の手がありそうなんですが、MSDN
ライブラリを漁ってもそれらしき方法が見つかってない状況でして...
695
名前:
デフォルトの名無しさん
:04/02/10 15:18
ファイルをクリックしたらそのファイルのファイル名を取得する方法はないのでしょうか?
D&Dとか使えば簡単にファイル名を取得できるのですが、
ファイルをクリックしただけでファイル名を取得したいのです。
以前にも似たような質問させてもらって恐れ入りますが、
分かる方いらっしゃいましたらよろしくお願い致します。
696
名前:
デフォルトの名無しさん
:04/02/10 15:19
>>695
どこのファイルだよ?エクスプローラーか?
697
名前:
デフォルトの名無しさん
:04/02/10 15:20
>>695
Browser Helper Objectsで出来るかもしれん。
出来ないかもしれん。
698
名前:
デフォルトの名無しさん
:04/02/10 15:57
>>695
www.microsoft.com/globaldev/handson/dev/muiapp.mspx
によれば "Changing the system locale requires a reboot"だそうだけど。
699
名前:
デフォルトの名無しさん
:04/02/10 15:58
| Hit!!
|
|
ぱくっ|
/V\
/◎;;;,;,,,,ヽそんなエサで
_ ム::::(,,゚Д゚)::| 俺様が釣られると思ってんのか!!
ヽツ.(ノ:::::::::.:::::.:..|)
ヾソ:::::::::::::::::.:ノ
` ー U'"U'
700
名前:
699
:04/02/10 15:59
ごめん、、、誤爆した。
701
名前:
デフォルトの名無しさん
:04/02/10 16:17
>>698
>www.microsoft.com/globaldev/handson/dev/muiapp.mspx
>によれば "Changing the system locale requires a reboot"だそうだけど
うん。[コントロールパネル]-(中略)-[システムロケールの選択]を行った場合も
再起動を要求されるので、その点は問題ないのだけど、自分の知りたいのは、
ユーザーさんにコントロールパネルを操作させずに、例えば、
[日本][中国][韓国]と言ったオプションボタンなりメニューなりを用意して、
ユーザーの選択に従ってWindows2000のシステムロケールを変更したいと思っ
てるんですわ。
702
名前:
デフォルトの名無しさん
:04/02/10 16:32
うーん、レジストリかな。CPL内でゴニョゴニョ設定してそうに見えるけど。
703
名前:
デフォルトの名無しさん
:04/02/10 16:50
>>702
>うーん、レジストリかな。CPL内でゴニョゴニョ設定してそうに見えるけど。
なるほど、起動時にレジストリを読んで設定してるかも知れないですね。
ちと調べてみます。
704
名前:
695
:04/02/10 17:02
相手にしてくださった方どうもありがとうございました。
早速色々とやってみます。
705
名前:
デフォルトの名無しさん
:04/02/10 18:48
MoveWindowAPIを使ってウィンドウのクライアント領域をドラッグしても
ウィンドウを動かせるようにしているのですが
通常のウィンドウはタイトルバーを使ってドラッグすると
枠のみ表示された状態で移動するので
同じようにしたいのですがどうすればいいでしょうか?
706
名前:
デフォルトの名無しさん
:04/02/10 18:54
MoveWindow やめて、WM_NCHITTEST で HTCAPTION 返す式にしてみては
707
名前:
デフォルトの名無しさん
:04/02/10 18:54
意味わかんね
708
名前:
デフォルトの名無しさん
:04/02/10 19:12
クライアントをクリックしても、タイトルバーをクリックしたってことにすんだろ。
709
名前:
デフォルトの名無しさん
:04/02/10 19:21
例えがいいかどうかは別として、RealPlayerみたいに
ドラッグ中にウィンドウそのものも移動させるってことでしょ?多分。
710
名前:
デフォルトの名無しさん
:04/02/10 19:30
話が耕作している
711
名前:
705
:04/02/10 19:47
>>706
サンプル見つけました。
まさにこれです。
わざわざマウスの座標とか計算してたのが
馬鹿みたいですね。
712
名前:
デフォルトの名無しさん
:04/02/10 22:00
CreateFile使わないでLoadImageでビットマップ読み込んで
それをGetDIBitsか何か使って色数変更してHBITMAP作りたいんだけど
何かいい方法ない?
ttp://homepage1.nifty.com/MADIA/delphi/delphi_bbs/200206_02060010.html
こんな例見付けたけど、delphi私読めないから分からないから。
713
名前:
デフォルトの名無しさん
:04/02/10 22:18
ア キ ラ メ ロ
714
名前:
デフォルトの名無しさん
:04/02/10 22:30
つーか、16bpp/24bpp/32bppの相互変換ならともかく、256色以下への減色だと
どう減色するかの問題だろ。
715
名前:
デフォルトの名無しさん
:04/02/10 22:33
お尋ねします。
フォントをインストールせずに表示するのってどうやるんでしょうか?
APIだけでできるのでしょうか?
716
名前:
デフォルトの名無しさん
:04/02/10 22:39
フォントがらみのAPIであった気がする。
一覧に表示させないでインストールしたりとか。忘れた。
717
名前:
デフォルトの名無しさん
:04/02/10 22:42
>>714
あーごめん、言葉足らなかった。
全部32bitに色数変更したいんよ。
さっきLPBITMAPINFOHEADER作って、biBitCountを32にして
GetDIBitsにLoadImageから返ってきたHBITMAPを突っ込んで
やってみただんけど失敗。GetLastErrorやったら何故か0が返ってきて
意味分からなくなったから止めた…。
718
名前:
デフォルトの名無しさん
:04/02/10 22:49
質問です。
モニタの省電力設定時間で省電力モードに入ったあと(画面ブラックアウト後)
何かのイベントが発生した時に、省電力モードを解除して(画面表示復帰して)
ユーザーに知らせたいのですが、うまく行きません。
PostMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, -1)で
一瞬モニタの電源が復帰するのですが、またすぐに電源が切れてしまいます。
自分自身のコードで
PostMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, 2)を
実行してブラックアウトした後に
PostMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, -1)を
実行するとうまく行くのですが
システム側から省電力モードにされた後だとうまく行きません。
(常に省電力モードのメッセージが発行されている?)
WM_MOUSEMOVEとか投げても復帰しません。
よろしくお願いします。
719
名前:
デフォルトの名無しさん
:04/02/10 22:56
>>717
DIBSectionで32bppなDIB作ってそこにLoadImageで作成したHBITMAPを
BitBltすれば?
720
名前:
デフォルトの名無しさん
:04/02/10 23:01
>>718
キーボードイベントやらマウスイベント送ってやったら?
721
名前:
718
:04/02/10 23:51
>>720
上にも書いたのですが、WM_MOUSEMOVEではダメでした。
今度キーボードイベントで試してみます。
けどHWND_BROADCASTでキーボードイベントPostしたら
別に開いているアプリにキー入力されそう・・・
省電力を監視しているプロセスが見つかれば、そこにだけ送ればいいんでしょうけど・・・
(スクリーンセーバーを解除するのにはその手が使えますけどね。WM_CLOSE送って。)
722
名前:
デフォルトの名無しさん
:04/02/10 23:54
マウスイベント→mouse_event
723
名前:
718
:04/02/11 00:00
>>722
ぐはぁ、mouse_eventなんてAPIがあったのですね。
知らなかった〜。試してみます。
724
名前:
デフォルトの名無しさん
:04/02/11 00:04
>>722
キーボードイベント→keybd_event
725
名前:
715
:04/02/11 00:23
>>716
自己解決したような気がします。
AddFontResource ってやつでいいみたいです。
726
名前:
デフォルトの名無しさん
:04/02/11 02:40
分かりにくい質問かと思いますが・・・タスクバーやWin9xのDOS窓のように、リサイズの際
一定量以上マウスを動かさないとリサイズ出来ないようにするにはどうすればよいのでしょうか。
APIで制限出来るのですか?
727
名前:
デフォルトの名無しさん
:04/02/11 02:48
WM_WINDOWPOSCHANGINGで出来ると思うよ。
728
名前:
デフォルトの名無しさん
:04/02/11 02:59
素早いレスありがとうございます。色々サンプルを探してやってみます。
729
名前:
デフォルトの名無しさん
:04/02/11 16:31
システムに登録されているアイコン(フォルダや関連付けされたファイルなど)を
取得するためにはどうしたらよいでしょうか。キーワードとなる関数名だけでも
教えてもらえれば自分で調べますので、よろしくおねがいします。
730
名前:
デフォルトの名無しさん
:04/02/11 16:34
ExtractAssociatedIconとかSHGetInfoとか
731
名前:
デフォルトの名無しさん
:04/02/11 19:12
>>730
それって実体がないと失敗するから・・・
732
名前:
デフォルトの名無しさん
:04/02/11 19:29
レジストリさらえ
733
名前:
デフォルトの名無しさん
:04/02/11 20:54
システムイメージリスト。…自信ないな。
もうね、CodeGuru見てくればいいじゃない。
734
名前:
729
:04/02/11 21:37
>>730-
>>733
みなさんどうもありがとうございました。
ひとつずつ調べてみます。
735
名前:
デフォルトの名無しさん
:04/02/11 22:52
こんにちは。
FindFirstFileで、検索ハンドルを得たあと、
その後、次のファイルを調べますよね、FindNextFileで。
その際、なぜか初めに必ず「.」(ピリオド)がファイル名として出てくるんですが、
これって、仕様なんですかね?
それとも、私のプログラム記述に何か問題でもあるのでしょうかね。
その点について、ご返答いただけたらうれしいです。
宜しくお願いします。
WIN32_FIND_DATA FindFileData;
HANDLE hFind;
hFind = FindFirstFile("D:\\*", &FindFileData);
if(hFind == INVALID_HANDLE_VALUE)
{
MessageBox(hWnd,"ERROR","FINDFIRSTFILE",0);
}
for(sfi_index=0;sfi_index<256;sfi_index++)
{
FindNextFile(hFind,&FindFileData);
if(ERROR_NO_MORE_FILES==GetLastError())break;
strcpy(sfi[sfi_index],FindFileData.cFileName);
}
FindClose(hFind);
736
名前:
デフォルトの名無しさん
:04/02/11 22:55
>>735
ピリオドは、そのディレクトリ自身をあらわすディレクトリ
ピリオド2つは親ディレクトリをあらわす
サブディレクトリには必ずこの2つがあるよ
737
名前:
735
:04/02/11 23:15
>>736
あぁ、どうもです!
わかりました。
ご返答ありがとうです。
738
名前:
デフォルトの名無しさん
:04/02/11 23:19
必ずではないよ
NTFSでフォルダにドライブをマウントすると
ピリオドひとつのエントリは存在しない
739
名前:
デフォルトの名無しさん
:04/02/11 23:46
それはサブディレクトリではないね
740
名前:
デフォルトの名無しさん
:04/02/12 09:05
でもルートディレクトリはドライブの直下にしかないと
思い込んでるとハマる
741
名前:
723
:04/02/12 12:20
>>722
mouse_event(MOUSEEVENTF_MOVE, 0, 0, 0, 0);
で無事解決しました。
どうもありがとうございます。
742
名前:
デフォルトの名無しさん
:04/02/12 22:56
スクリーンショットをとることのできる
APIってありますか?
743
名前:
デフォルトの名無しさん
:04/02/12 23:02
>>742
BitBlt()
744
名前:
デフォルトの名無しさん
:04/02/12 23:02
自分でデスクトップのDC拾ってきてBitBltすりゃいいじゃん
745
名前:
742
:04/02/12 23:06
ごめん説明不足でした。
ウインドウの中じゃなくてデスクトップすべてなんだけど
どうかな?
746
名前:
デフォルトの名無しさん
:04/02/12 23:09
>>745
だから〜、GetDC(GetDesktopWindow()) で返ってきたhDCをBitBlt()してごらん
747
名前:
デフォルトの名無しさん
:04/02/12 23:29
CreateDC("DISPLAY", 0, 0, 0)という手もアリかな。
748
名前:
742
:04/02/13 00:05
できました〜。
どうも有り難うございました。
749
名前:
デフォルトの名無しさん
:04/02/13 00:37
>>747
それを言うなら GetDC(NULL)
750
名前:
デフォルトの名無しさん
:04/02/13 10:01
746と749では微妙に違いがあったような
■過去ログ置き場に戻る■
1-
前250
次250
最新50
DAT2HTML
0.33f Converted.