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


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

Win32API質問箱 Build38
1 名前:デフォルトの名無しさん :2005/12/06(火) 00:59:05
スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんたちが答えてくれるかも。

過去スレ、関連リンクは>>2-5くらい。

■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。英語版(http://msdn.microsoft.com)の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvencedWindowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで。

2 名前:デフォルトの名無しさん :2005/12/06(火) 00:59:26
-過去スレ
37 ttp://pc8.2ch.net/test/read.cgi/tech/1131884991/
36 ttp://pc8.2ch.net/test/read.cgi/tech/1128951330/
35 ttp://pc8.2ch.net/test/read.cgi/tech/1125850096/
34 ttp://pc8.2ch.net/test/read.cgi/tech/1122723009/
33 ttp://pc8.2ch.net/test/read.cgi/tech/1120153520/

3 名前:デフォルトの名無しさん :2005/12/06(火) 01:00:18
32 ttp://pc8.2ch.net/test/read.cgi/tech/1117271829/
31 ttp://pc8.2ch.net/test/read.cgi/tech/1114762194/
30 ttp://pc8.2ch.net/test/read.cgi/tech/1112345886/
29 ttp://pc8.2ch.net/test/read.cgi/tech/1110281860/
28 ttp://pc5.2ch.net/test/read.cgi/tech/1108199304/
27 ttp://pc5.2ch.net/test/read.cgi/tech/1106103119/
26 ttp://pc5.2ch.net/test/read.cgi/tech/1104109858/
25 ttp://pc5.2ch.net/test/read.cgi/tech/1101393155/
24 ttp://pc5.2ch.net/test/read.cgi/tech/1098967135/
23 ttp://pc5.2ch.net/test/read.cgi/tech/1095534704/
22 ttp://pc5.2ch.net/test/read.cgi/tech/1092524669/
21 ttp://pc5.2ch.net/test/read.cgi/tech/1090422324/
20 ttp://pc5.2ch.net/test/read.cgi/tech/1088140233/
19 ttp://pc5.2ch.net/test/read.cgi/tech/1084697545/
18 ttp://pc5.2ch.net/test/read.cgi/tech/1081702990/
17 ttp://pc5.2ch.net/test/read.cgi/tech/1077470361/
16 ttp://pc2.2ch.net/test/read.cgi/tech/1073830065/
15 ttp://pc2.2ch.net/test/read.cgi/tech/1069339866/
14 ttp://pc5.2ch.net/tech/kako/1065/10653/1065328397.html
13 ttp://pc5.2ch.net/tech/kako/1059/10595/1059549320.html
12 ttp://pc5.2ch.net/tech/kako/1056/10560/1056033645.html
11 ttp://pc5.2ch.net/tech/kako/1052/10526/1052651750.html
10 ttp://pc5.2ch.net/tech/kako/1047/10478/1047819779.html
9 ttp://pc5.2ch.net/tech/kako/1044/10449/1044929160.html
8 ttp://pc5.2ch.net/tech/kako/1040/10409/1040964626.html
7 ttp://pc3.2ch.net/tech/kako/1036/10366/1036654893.html
6 ttp://pc3.2ch.net/tech/kako/1032/10325/1032548635.html
5 ttp://pc3.2ch.net/tech/kako/1028/10285/1028580373.html
4 ttp://pc3.2ch.net/tech/kako/1023/10233/1023361418.html
3 ttp://pc.2ch.net/tech/kako/1017/10170/1017072275.html
2 ttp://pc.2ch.net/tech/kako/1006/10067/1006783012.html
1 ttp://pc.2ch.net/tech/kako/991/991576947.html

4 名前:デフォルトの名無しさん :2005/12/06(火) 01:00:59
- MSDN Online
http://www.microsoft.com/japan/msdn/
- 猫でもわかるプログラミング
http://www.kumei.ne.jp/c_lang/
- Platform SDK Update
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
- Google
http://www.google.com/

- Windows® Server 2003 SP1 Platform SDK Full Download
http://www.microsoft.com/downloads/details.aspx?familyid=EBA0128F-A770-45F1-86F3-7AB010B398A3&displaylang=en
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/XPSP2FULLInstall.htm
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm

- Win32 API入門
http://wisdom.sakura.ne.jp/system/winapi/
- Win32 プログラミング入門
http://www7.plala.or.jp/keny01/windows/win32/

- 書籍
Advanced Windows
http://www.amazon.co.jp/exec/obidos/ASIN/4756138055

-おまけ
dat落ちしている過去スレが見れるかも。Build19が見たい人、余裕のある人は●でも買ってやってくれ。
http://makimo.to/cgi-bin/search/search.cgi?q=Win32API&andor=AND&sf=2&H=&view=table&shw=&D=tech

5 名前:・∀・)っ-●○◎- ◆Pu/ODYSSEY :2005/12/06(火) 01:10:07
19ってこれでいいの?同じディレクトリにdatも上げとくね。
http://trip.jp.land.to/2ch-log/tech/1084697545.html

6 名前:デフォルトの名無しさん :2005/12/06(火) 01:20:20
FindFirstFile()などでフォルダ内のファイル名を取得したいのですが、
このAPIが返すファイル名リスト(実際はリスト構造にはなってませんが)
は日付が最新のものから順に入っているのでしょうか?
そうでない場合、日付順にファイル名を取得する良いAPIはありますか?

7 名前:デフォルトの名無しさん :2005/12/06(火) 01:23:22
>>6
順番は不定。
自分でソート。

8 名前:・∀・)っ-●○◎- ◆Pu/ODYSSEY :2005/12/06(火) 01:23:23
>>6
たしかASCII順(ただし大文字小文字区別なし)
構造体の配列に溜め込んで日付でソートするといいよ

9 名前:6 :2005/12/06(火) 01:28:06
ありがとうございます。
ということはいったん全部吸い上げてから調べないといけないんですね。
フォルダは所属しているファイルのうちどれが最新か知ってるはずだと
思うのですが、そういうAPIが無いのは意外でした。

10 名前:・∀・)っ-●○◎- ◆Pu/ODYSSEY :2005/12/06(火) 01:35:05
ありません。

Windowsエクスプローラは、FindFirstFile/FindNextFileで取ってきた結果を
リストビューコントロールに一覧表示してるだけですよ。

11 名前:デフォルトの名無しさん :2005/12/06(火) 01:36:59
> フォルダは所属しているファイルのうちどれが最新か知ってるはずだと思う

これどっから来たんだろう

12 名前:6 :2005/12/06(火) 01:37:12
そうでしたか。
勉強になりました。ありがとうございました。

13 名前:デフォルトの名無しさん :2005/12/06(火) 01:37:48
>>9
フォルダは知らないだろw

14 名前:デフォルトの名無しさん :2005/12/06(火) 01:38:33
>>8
FAT32だと物理的順序だったと思う

15 名前:14 :2005/12/06(火) 01:39:56
ごめんFAT32でなくてWin9x系だったかも

16 名前:6 :2005/12/06(火) 01:40:52
unixのディレクトリとWindowsのフォルダは同じ概念でしょうか?

17 名前:デフォルトの名無しさん :2005/12/06(火) 01:41:59
DOS時代はディレクトリって呼んでたよ

18 名前:デフォルトの名無しさん :2005/12/06(火) 01:42:21
>>8
NTFSだとそうかもしれんが、それ以外だとそうとは限らん。
確実なのはディスク上の順番で返すということだけ。

19 名前:デフォルトの名無しさん :2005/12/06(火) 03:46:46
>>17
フォルダは概念、ディレクトリは実体。
例えば「デスクトップ」はフォルダ、"c:/Doc.../user/デスクトップ/"はディレクトリ。


20 名前:デフォルトの名無しさん :2005/12/06(火) 04:11:09
>>1


21 名前:デフォルトの名無しさん :2005/12/06(火) 11:12:48
>> Build37-990
コントロールをサブクラス化して、メッセージを処理するなり親ウィンドウに渡すなりすれば?


22 名前:デフォルトの名無しさん :2005/12/06(火) 12:14:34
SendInput関数で スペースはVK_SPACEなどで表現できますが マウスの左クリックはどの様に表現すればよいのでしょうか。

23 名前:デフォルトの名無しさん :2005/12/06(火) 12:18:41
>>22
WM_LBUTTONDOWN
直接SendMessegeする手もあるけど。

24 名前:デフォルトの名無しさん :2005/12/06(火) 12:18:42
>>22
ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/userinput/keyboardinput/keyboardinputreference/keyboardinputfunctions/sendinput.asp
よく嫁。特にINPUT構造体。

25 名前:22 :2005/12/06(火) 12:29:43
>>23-24
ヽ(^o^)丿サンクス!

26 名前:デフォルトの名無しさん :2005/12/06(火) 16:59:44
前スレ990で、1000ゲッターに流されてしまったため(笑)、再度でつ。

WM_MOUSEMOVEメッセージについてなんですけど、 
マウスカーソルがスタティックテキスト(含むグループボックス)の子ウィンドウ上の時にはメッセージ来るようなんですが、 
他の子ウィンドウ(エディットコントロールやチェックボックスなど)上だとメッセージが来ないようなのです。 

うまくスタティック以外のウィンドウ上でのマウスカーソルの動きをキャッチする方法はないのでしょうか。 

27 名前:デフォルトの名無しさん :2005/12/06(火) 17:03:47
WM_NOTIFY

28 名前:デフォルトの名無しさん :2005/12/06(火) 18:09:17
>>27
それはコモンコントロールだけで、
エディットコントロールやチェックボックスなどでは来ませんし、
ステータスバーもクリックされないと親ウィンドウにWM_NOTIFYメッセージを発しませんが…

29 名前:デフォルトの名無しさん :2005/12/06(火) 22:04:15
リソースで定義したダイアログをDiagAとします。
このDiagAを作るあたってDialogBoxマクロを利用する訳ですが、
DialogBoxの引数にプロシージャを指定する部位がありますよね。

ダイアログが作られた時、プロシージャへWM_CREATEメッセージは発行されないのでしょうか?

30 名前:デフォルトの名無しさん :2005/12/06(火) 22:09:48
>>29
その通り

31 名前:デフォルトの名無しさん :2005/12/06(火) 22:11:58
ううん、とあるデータをダイアログが作られた時に、ダイアログのプロシージャから操作したいのですけど。
なんかいい方法ないでしょうか。

32 名前:デフォルトの名無しさん :2005/12/06(火) 22:17:02
>>31
WM_INITDIALOGメッセージだったかな。

聞いてることとずれてたらスマソ

33 名前:デフォルトの名無しさん :2005/12/06(火) 22:17:37
WM_INITDIALOG

34 名前:デフォルトの名無しさん :2005/12/06(火) 22:18:30
かぶった

35 名前:デフォルトの名無しさん :2005/12/06(火) 22:21:15
WM_INITDIALOGがダイアログ作成に発行されました。
ありがとうございます・・・

36 名前:デフォルトの名無しさん :2005/12/06(火) 22:57:29
>>26
>>21
親にPost

37 名前:デフォルトの名無しさん :2005/12/06(火) 23:00:04
>>36
ごめんあそばせ。
21さん見過ごしてました

どうもサンクスです。

38 名前:前スレ959 :2005/12/07(水) 03:46:57
できました。デフォルトの戻り値を0にすればよかったようです。
UINT_PTR CALLBACK OFNHookProc(HWND hdlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
    if (msg == WM_INITDIALOG)
    {
        SetWindowLong(hdlg, GWL_STYLE, GetWindowLongPtr(hdlg, GWL_STYLE) | WS_CLIPSIBLINGS);
        MoveWindow(hdlg, 30, 17, 300, 22, FALSE);
        CreateWindow("ComboBox", "", CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_GROUP | WS_TABSTOP, 130, 0, 164, 100, hdlg, (HMENU)0x1000, Instance, 0);
    }
    return 0;
}

39 名前:デフォルトの名無しさん :2005/12/07(水) 09:18:22
質問です
IStreamを実装してMyStreamってクラスを作りたいのですが

この場合、IStreamで定義されているメソッドを使うためには、
IMyStream* mystream = hoge();
mystream->QueryInterface(...);
でIStreamのインタフェイスを取得しないと使えないのでしょうか?

そして、もしIMyStream*から直接使うためには、
多少宣言がIStream*と重複しようが、
idlでReadやWrite等を再定義していくことになるのでしょうか?

40 名前:デフォルトの名無しさん :2005/12/07(水) 09:36:47
>>39
C++の入門書読んだ方がいいと思うお

41 名前:デフォルトの名無しさん :2005/12/07(水) 09:57:46
>>40
class MyStream :
 public CComObjectRootEx<CComSingleThreadModel>,
 public CComCoClass<MyStream, &CLSID_MyStream>,
 public IDispatchImpl<IMyStream, &IID_IMyStream, &LIBID_MyLib>,
 public IStream {};

C++的に考えれば、これはMyStreamのポインタでIStreamのメソッドを呼べることになりますよね

でもこれはあくまでCOMライブラリを作る際に派生させただけであって、
結局COMを扱う側から見たら
interface IMyStream : IDispatch {}
でしかないのだから、MyStreamでIStreamを幾ら実装しようと、
直接はIStreamのメンバを呼び出せない、ということでいいのかな?

ていうか微妙にWin32の話じゃなくてすみません
ATLスレに行った方がよかったのかな

42 名前:デフォルトの名無しさん :2005/12/07(水) 10:17:34
>>41
IStreamの各メンバはvirtual 〜 〜(〜) = 0;の抽象メソッド。
MyStreamはIStream派生クラスとして定義するからMyStreamをIStreamにキャストしてもMyStream上の実体を呼び出す。


43 名前:デフォルトの名無しさん :2005/12/07(水) 11:38:35
LRESULT CALLBACK WndProc()での
LRESUTLはtypedefされたC言語のデータ型と思っておいて良いですか?

44 名前:デフォルトの名無しさん :2005/12/07(水) 12:07:27
>>43
そうだよ。

>>41
ところでIMyStreamがIStreamから派生しているのであれば、
MyStreamはIStreamを継承する必要はないと思うが。

45 名前:デフォルトの名無しさん :2005/12/07(水) 12:31:05
>>44
すいません、また色々考え込んでしまって混乱してしまいました。。

IMyStreamはIStreamの派生ではありませんでした。
IMyStreamはプロジェクト構築時にデフォルトでIDLで
interface IMyStream : IDispatch {}
と定義されていました。

よく考えたらIDispatchの機能が必要がなければIDispatchから派生させる必要ないですね。
インタフェイスの継承をIDispatchからIStreamにすればよかったのかな、、
ちょっとこれから書き換えてきます。どうもありがとうございました

46 名前:デフォルトの名無しさん :2005/12/07(水) 12:42:55
ここで俺の妄想を発揮。

45は別にIMyStreamやIStreamを実装したいのではなく、
CreateStreamOnHGlobalとかSHCreateStreamOnFile(Ex)を活用するだけで十分ではないか?

47 名前:デフォルトの名無しさん :2005/12/07(水) 12:54:16
>>46
いあ、やろうとしてるのは、あるIStreamを食わせて加工出力するIStreamなんです。
COMは使うだけならあるにしても、作る側になったことは全然ないので
ATLとかの勉強ついでにやってる感じです。

で、とりあえずできたようです。本当にありがとうございました。
そしてなんか妄想まで働かしてもらってすみません。

48 名前:デフォルトの名無しさん :2005/12/07(水) 12:56:07
本人乙

49 名前:デフォルトの名無しさん :2005/12/07(水) 16:35:56
二つのテキストファイルが同じかどうかを
比較する関数を教えて下さい

50 名前:デフォルトの名無しさん :2005/12/07(水) 16:38:18
ねぇよ

51 名前:デフォルトの名無しさん :2005/12/07(水) 16:42:41
>>49
同じかどうかだけなら、ファイル開いてメモリにマッピングしてmemcmpするのが速い。

でもさ、作ろうとしてるものなら既にコマンドとしてあると思うよ。
http://itpro.nikkeibp.co.jp/free/NT/WinKeyWord/20040805/1/comp.shtml
http://itpro.nikkeibp.co.jp/free/NT/WinKeyWord/20040805/1/fc.shtml

テンポラリファイルにリダイレクトして比較結果取り出すほうが早いかもな
まあ別にパイプでもいいけど。

52 名前:デフォルトの名無しさん :2005/12/07(水) 16:45:21
CreateFile
GetFileSize
xxxxAlloc
ReadFile
lstrcmp



53 名前:49 :2005/12/07(水) 17:22:21
SHELLでFC使って上手くいきました
あざーっす

54 名前:デフォルトの名無しさん :2005/12/07(水) 17:27:00
エディットコントロールの縁に陰みたいな奴つけるにはどうすればいいですか

55 名前:デフォルトの名無しさん :2005/12/07(水) 19:15:38
>>49-51
ファイルのHash値かmd5計算して比較するのが今風

56 名前:デフォルトの名無しさん :2005/12/07(水) 19:26:53
>>55
完全ハッシュでなければ衝突がありえるだろ。

57 名前:デフォルトの名無しさん :2005/12/07(水) 19:32:21
毎回ファイル読み込んでハッシュ値出せってか?


58 名前:デフォルトの名無しさん :2005/12/07(水) 19:33:33
コリジョンが発生してから調べなおせばいい。
同じファイルを何度と無く調べる、かつ各ファイルのそれなりの部分が同じとか言う場合にはまあ有効かな。
突発的にファイルを比較するだけなら無駄だけど。

59 名前:デフォルトの名無しさん :2005/12/07(水) 19:41:03
>>54
WS_EX_CLIENTEDGE

60 名前:デフォルトの名無しさん :2005/12/07(水) 21:55:20
Sleep()やWaitForSingleObject()
に出てくるマクロのINFINITEって何の略なんですか?

61 名前:デフォルトの名無しさん :2005/12/07(水) 21:57:08
>>60
略ではないです。
http://dic.yahoo.co.jp/bin/dsearch?dtype=1&p=INFINITE

62 名前:デフォルトの名無しさん :2005/12/07(水) 22:37:03
Infiniteも知らんのか・・

63 名前:デフォルトの名無しさん :2005/12/07(水) 23:40:59
中高で英語が1と2ばかりだった俺でも知ってるのに・・・

64 名前:デフォルトの名無しさん :2005/12/08(木) 02:47:51
マジレスすると知識量と学校の成績は関係ない
でもinfiniteくらいは、日常生活で1度は耳にしたことがあるはず

65 名前:デフォルトの名無しさん :2005/12/08(木) 07:23:53
日産の高級車のブランド名だな

66 名前:デフォルトの名無しさん :2005/12/08(木) 07:54:31
しかし finit が 有限 というのはあまり知られていない


67 名前:デフォルトの名無しさん :2005/12/08(木) 08:00:25
eが抜けてんぞ

68 名前:デフォルトの名無しさん :2005/12/08(木) 08:43:57
finit がフランス語だということはさらにほとんど知られていない

69 名前:デフォルトの名無しさん :2005/12/08(木) 08:56:03
Windowsのイベントログに関する事で質問です

通常2000とかXPには
システムイベントログ
アプリケーションログ
セキュリティログ
などがありますが、
それ以外のログを自前で生成し、
「コンピュータの管理(MMC)」に
追加することは可能でしょうか?

70 名前:デフォルトの名無しさん :2005/12/08(木) 09:03:56
finishやfinalと語源が一緒というのはあくまで俺の想像

71 名前:デフォルトの名無しさん :2005/12/08(木) 09:18:13
>>66がフランス語のfinitを出したとはとても思えない件

72 名前:デフォルトの名無しさん :2005/12/08(木) 09:21:38
finite state machine の検索結果のうち 日本語のページ 約 10,700 件

finit state machine の検索結果のうち 日本語のページ 約 250 件

250件もあるのかよ

73 名前:デフォルトの名無しさん :2005/12/08(木) 20:37:29
vcでデバッグ中にイベントハンドルがシグナルなのか非シグナルなのか
知りたいんだけど、何かいい方法はないでしょうか?

74 名前:デフォルトの名無しさん :2005/12/08(木) 22:17:31
>>73
ProcessWalkerで見れたと思う。

75 名前:デフォルトの名無しさん :2005/12/09(金) 03:31:22
質問させてください。

C言語とAPIでMS-Word やメモ帳で入力されたキーを取得するプログラムを
組んでいます。グローバルフックで MW_KEYDOWN を取得する方法でやって
いるのですが、MS-Word の場合だけ、1回のキー入力に対して5回の
WM_KEYDOWN が来ます。WM_KEYDOWN メッセージの lParam の31バイト目を
チェックしてみたのですが、キーを押し続けたことによる連続メッセージ
ではないようです。また、MW_KEYUP でも同じく5回メッセージがきます。

1キーに対して1回のメッセージを受け取りたいのですが、よい方法は
ないでしょうか。よろしくお願いします。

76 名前:デフォルトの名無しさん :2005/12/09(金) 03:36:04
>>75
俺のPCにWord入ってないから試せないんだが、Spy++でも5回表示される?
あとWordのバージョンは?

77 名前:デフォルトの名無しさん :2005/12/09(金) 05:40:25
>>76

>>76

 レス遅れてすみません。Spy++ っていうのがググッたけどちょっとわからないん
ですが、BCC のコマンドラインコンパイラなんでたぶん使ってないと思います。
Word のバージョンは 2003 です。
 一応、フックしたキーをウインドウに表示するようにしているんですが、
 メモ帳やInternetExplorer に入力した場合、そのとおり別ウインドウにも
表示されるんですが(1キー入力に対して1文字)、WORDの場合だけ1入力に
たいして5回分表示されるんです。"aiu"だったら"aaaaaiiiiiuuuuu"という
具合です。ちなみに、Enter や Shift なども同じです。
 とりあえず、Spy++についてもう少しググッて見ます。

78 名前:デフォルトの名無しさん :2005/12/09(金) 06:40:04
>>77
Spy++はMSの開発環境についてくる便利なツール。
特定ウィンドウに送られたメッセージのログを表示することができる。

BorlandにもWinSight32っていう同じようなソフトあるんだけど、
無料のBCCに付いてくるのかは知らない。

79 名前:デフォルトの名無しさん :2005/12/09(金) 07:22:39
Winspector Spyっていうフリーのがあるよ

80 名前:デフォルトの名無しさん :2005/12/09(金) 08:29:54
>>79
使ってみた結構いいかも新米 thx

81 名前:デフォルトの名無しさん :2005/12/09(金) 12:16:13
C勉強してきてこれから窓プログラム入る
必要なのは脳とやる気だけでおk?

82 名前:デフォルトの名無しさん :2005/12/09(金) 12:31:43
あとは開発環境があれば完璧

83 名前:デフォルトの名無しさん :2005/12/09(金) 12:43:12
spyもなー

84 名前:デフォルトの名無しさん :2005/12/09(金) 14:58:33
>>81
MFC使えば楽だお

85 名前:デフォルトの名無しさん :2005/12/09(金) 16:27:56
DialogBox上にlogを表示させたいと思っています。
edit boxでやったら改行ができませんでした。
static textでやったら、改行はできましたが、自動スクロールができません。
両方とも必要なのですが、簡単に実現する方法はありませんでしょうか?
ありましたらお教えください

86 名前:デフォルトの名無しさん :2005/12/09(金) 16:29:31
>>79
特警ウィンスペクターを思い出した漏れはおこちゃまですか?

87 名前:デフォルトの名無しさん :2005/12/09(金) 16:39:28
>>85
style に ES_MULTILINE (+ WS_VSCROLL|WS_HSCROLL) で エディットCTRL生成
nLen = GetWindowTextLength(エディットCTRL);
EM_SETSEL で START:nLen END:nLen で末尾を選択
EM_REPLACESEL でLogとして追記したい文字列を渡す (改行したいなら CRLF を入れること)

88 名前:デフォルトの名無しさん :2005/12/09(金) 16:44:40
>>81
VCL使うともっと便利だお

89 名前:デフォルトの名無しさん :2005/12/09(金) 17:22:01
>>84
CでMFCが使えるかよ

90 名前:デフォルトの名無しさん :2005/12/09(金) 17:29:32
ビュアチェインに関してです
例えば現在4個のクリッポボードビュアA,B,C,Dが起動してるとします。
そしてそれぞれのビュアの順位はAを最上として
A B C Dとします。

例えばBがChangeClipboard()を実行しますと、AにはWM_CHANGECBCHAINが送られてきますよね。
WPARAMにはBのhWndが、LPARAMにはCのhWndが格納されているはずですので、
Aは自分の次のビュアのウィンドウハンドルを確認し、もしWPARAMと等しければAの次のビュアのハンドルを、
LPARAMのハンドルに入れ替えればいいと思います。
しかしBではなくCがChangeClipboard()を実行した場合どうしますか?もし上の手順をしてしまったら、
Aの次のビュアはDとなってしまい、Bの存在がまずい事になります・・・
かといってこのメッセージを無視し、実行するとBの次のウィンドウはCだが・・・Cのハンドルは無効
という事態になると思います。
長くなりましたが、上のような場合はSendMessageでBにWM_CHANGECBCHAINを送れば回避されます。※1
しかし、例えばA B C D E Fとチェインがあった場合、DがChangeClipboard()を実行し、Aが※1を実行するとなると
Cのハンドルを知る必要があるのです。ですが、WM_CHANGECBCHAINのパラメータにはDとEしかありません。
どうすればよろしいでしょうか・・

91 名前:デフォルトの名無しさん :2005/12/09(金) 17:31:33
※1もCとDは自分(最上)からすれば、何番目なのか予測不能でしたね・・すみません

92 名前:デフォルトの名無しさん :2005/12/09(金) 17:41:14
>>90
ChangeClipboardChainだよな。
> しかしBではなくCがChangeClipboard()を実行した場合どうしますか?もし上の手順をしてしまったら、
そのときにWPARAMの中身はCとなり、Aにとっての次であるBとは違うから、
「Aは自分の次のビュアのウィンドウハンドルを確認し、WPARAMと等しければ」という条件が成り立たない。

93 名前:デフォルトの名無しさん :2005/12/09(金) 17:43:29
>>87
ありがとうございます
ちょっとやってみます

94 名前:デフォルトの名無しさん :2005/12/09(金) 17:53:48
>>92
else if (hNextWnd) SendMessage(hNextWnd,msg,wParam,lParam);
と流していけばちゃんと修正されますね・・自己完結してすみません

95 名前:73 :2005/12/09(金) 19:14:32
>74さんありがとうございました。
無事に各ハンドルの状態を調べることが出来るようになりました。

96 名前:デフォルトの名無しさん :2005/12/09(金) 19:54:00
>>93です。
さっきのはうまくできましたが、また問題点が発生しました。。
入力が終了してenterを押すとボタンがおされたのと同じ処理をできるようにできませんか?
dialogでやる方法はわかったのですが,通常windowでやる方法がわかりません


97 名前:デフォルトの名無しさん :2005/12/09(金) 20:06:51
>>96
[Enter]にアクセラレーターを割り付けてしまう。


98 名前:デフォルトの名無しさん :2005/12/09(金) 21:16:43
VirtualAllocでRESERVEした量って、タスクマネージャの「仮想メモリ」
に出ると思ったら出ないのな・・・

99 名前:デフォルトの名無しさん :2005/12/09(金) 21:22:12
すんません。
CreateService()つかって、Windowsサービス作ってるのですが、
メールスロットでイベント起動される(サーバー側)ように
作りたいのだけど。イマイチよくわかりません。

もしかして、Windowsサービスには向かないの?


100 名前:デフォルトの名無しさん :2005/12/09(金) 21:24:37
ダメです

101 名前:デフォルトの名無しさん :2005/12/09(金) 22:10:55
>>76
>>78
>>79

Winspector を使ってしばらく調べてみようと思います。
ありがとうございました。

102 名前:デフォルトの名無しさん :2005/12/09(金) 22:12:37
MFCのどこが楽なんだ…

103 名前:デフォルトの名無しさん :2005/12/09(金) 22:18:49
ttp://pc8.2ch.net/test/read.cgi/tech/1059196520/l50
MFC叩きはこっちでやれ

104 名前:デフォルトの名無しさん :2005/12/10(土) 00:04:44
任意のウィンドウを半透明化する処理を書いているんですが、
透明度の設定はSetLayeredWindowAttributes
でできるものの、透明度を取得する方法がわかりません。
LayeredWindowであるかどうかは取得できるんですが・・・

105 名前:デフォルトの名無しさん :2005/12/10(土) 00:13:49
>>104
その逆でGetLayeredWindowAttributesを使えばAlphaが取得できますよ。

106 名前:デフォルトの名無しさん :2005/12/10(土) 00:45:58
>>105
ありがとうございます。調べてみます
でもググるとヒット数が少ないのはなんでだろう・・

107 名前:デフォルトの名無しさん :2005/12/10(土) 00:50:07
流行らないから

108 名前:デフォルトの名無しさん :2005/12/10(土) 00:52:48
2kじゃSet〜は使えてもGet〜は使えないし。

109 名前:デフォルトの名無しさん :2005/12/10(土) 00:59:19
スルーされたというより答えられる香具師がいなかったようなので再掲です


Windowsのイベントログに関する事で質問です

通常2000とかXPには
システムイベントログ
アプリケーションログ
セキュリティログ
などがありますが、
それ以外のログを自前で生成し、
「コンピュータの管理(MMC)」に
追加することは可能でしょうか?


110 名前:デフォルトの名無しさん :2005/12/10(土) 01:06:55
アレです。

111 名前:sage :2005/12/10(土) 01:17:36
>>109
かのう

112 名前:デフォルトの名無しさん :2005/12/10(土) 03:29:32
叶京子

113 名前:デフォルトの名無しさん :2005/12/10(土) 03:56:54
叶兄弟

114 名前:デフォルトの名無しさん :2005/12/10(土) 04:09:40
兄貴ぃっっ!! もうっ・・・ダメタだっ!!!

115 名前:デフォルトの名無しさん :2005/12/10(土) 04:31:01
>>111
管理コンソール MMC に新規 log を追加する Win32API を教えて下され候

116 名前:デフォルトの名無しさん :2005/12/10(土) 07:36:05
BCCを使っています。

デバッグ出力についてなのですが、Windowsにおける大量のシンボルの名前を表示するいい方法はないのでしょうか?

例えば、ウィンドウプロシージャに来たメッセージをデバッグ出力したいのですが、
printf("uMsg = %s", GetMessageSymbolName(uMsg)); -> "uMsg = WM_PAINT"
とかできないのでしょうか?

HRESULT hr = CoInitialize(...)
printf("hr = %s", GetHResultSymbolName(hr)) -> "hr = E_OUTOFMEMROY"
とかは?

なにかVCとVC用デバッガを使うとそれに近いような事も出来るみたいなのですが、BCCとTurboDebuggerでは出来るのかどうか分かりません。

BCCでWindowsのシンボルをうまく表示できる方法、あるいは表示してくれるライブラリなどはないでしょうか?

というか、Windowsに限らず、一般的にヘッダで大量のシンボルがある場合、みなさん、どうしているんですか?

117 名前:デフォルトの名無しさん :2005/12/10(土) 08:03:42
トークン連結演算子 (##)

118 名前:デフォルトの名無しさん :2005/12/10(土) 11:06:53
>>116
Windowsメッセージなら、spyでいいと思うよ。

119 名前:デフォルトの名無しさん :2005/12/10(土) 11:48:28
>>116
>>79 にあるキーワードでぐぐってみるとよきかも

120 名前:デフォルトの名無しさん :2005/12/10(土) 12:53:31
すいません
どこみてWin32APIの勉強すればいいですか?

121 名前:117 :2005/12/10(土) 13:00:54
おいおい、ボケたつもりは一切なかったのに華麗にスルーかwwwwwww

122 名前:デフォルトの名無しさん :2005/12/10(土) 13:12:35
>>116
ソースコードに仕込むなら、↓こんな手もある。

#if defined(ENABLE_LOG)
#  define CASE_WITH_LOG(wm_msg) \
    case wm_msg: printf("uMsg = " #wm_msg);
#else
#  define CASE_WITH_LOG(wm_msg) \
    case wm_msg:
#end

ただ、あんまり見目麗しくないけどね。

123 名前:デフォルトの名無しさん :2005/12/10(土) 14:14:53
Win32API一覧、どこかに落ちて無いですか?
MSDNは機能別になってるので探し辛い。

124 名前:デフォルトの名無しさん :2005/12/10(土) 15:36:49
SetCurrentDirectoryでカレントディレクトリを動かした後、
GetOpenFileNameで初期ディレクトリをNULLにしても、
指定した初期ディレクトリになってくれないんですけど、
何が原因なんでしょうか。

125 名前:デフォルトの名無しさん :2005/12/10(土) 15:46:27
>>124
lpstrInitialDir=NULLの動作は、OSによって違う。2000/XPではカレントにならない。

http://msdn.microsoft.com/library/?url=/library/en-us/winui/winui/windowsuserinterface/userinput/commondialogboxlibrary/commondialogboxreference/commondialogboxstructures/openfilename.asp

sage進行でよろしく。


126 名前:デフォルトの名無しさん :2005/12/10(土) 15:50:20
>>123
キーワードでみれば五十音順じゃん。

127 名前:デフォルトの名無しさん :2005/12/10(土) 15:51:42
>>123
アルファベット順
http://msdn.microsoft.com/library/en-us/winprog/winprog/functions_in_alphabetical_order.asp
リリース時期順
http://msdn.microsoft.com/library/en-us/winprog/winprog/functions_by_release.asp

128 名前:デフォルトの名無しさん :2005/12/10(土) 16:06:14
このウィンドウを見ると背景が灰色っぽいのですが、どうすればこうなりますか?
http://www.geocities.jp/nyuusan_news/nyuusan.jpg
どうやらVisualStyleによってその色の具合が定義されているようです。

129 名前:デフォルトの名無しさん :2005/12/10(土) 16:09:33
釣りなのか天然なのか、そこが問題だ。

130 名前:デフォルトの名無しさん :2005/12/10(土) 16:12:08
本気なのでおねがいします

131 名前:124 :2005/12/10(土) 16:27:03
>>125
上げてすみません。
ありがとうございました。

132 名前:デフォルトの名無しさん :2005/12/10(土) 16:27:38
単なるダイアログだろこれ。
MFCとかWTLベースだと作りやすい。

133 名前:デフォルトの名無しさん :2005/12/10(土) 16:32:13
釣りにきまってんだろカスwwwwwwwwwwwww

134 名前:デフォルトの名無しさん :2005/12/10(土) 16:51:49
GetSysColor(BTN何たら)でその色を得られたと思う。

135 名前:デフォルトの名無しさん :2005/12/10(土) 16:55:10
Lunaスタイル環境でクラシックスタイルのウィンドウを
強制的に使うにはどうしたらいいか尋ねているようにも見える。

な、わけねーだろ。言ってみただけだ。

136 名前:デフォルトの名無しさん :2005/12/10(土) 17:11:53
マニュフェストファイル無かったらLunaスタイル無効だと思うが

137 名前:デフォルトの名無しさん :2005/12/10(土) 17:44:27
CreateWindowのウィンドウクラスにEDITだとかLISTBOXを指定して、
スタイルにWS_VSCROLLを指定した場合、表示されるスクロールバーが
Lunaスタイルなっちゃうんだけど、これをクラシックスタイルにする方法ってある?

138 名前:デフォルトの名無しさん :2005/12/10(土) 17:44:45
>マニュフェスト
なんかえろくね?

139 名前:デフォルトの名無しさん :2005/12/10(土) 18:12:51
>>137
てめぇのXPの設定をクラシックにする

140 名前:デフォルトの名無しさん :2005/12/10(土) 18:33:18
>>138
えろいのはお前の脳タリンだ

141 名前:デフォルトの名無しさん :2005/12/10(土) 19:08:20
DWORD t = REG_SZ;
DWORD b = 32;
char c[50];

RegOpenKeyEx(HKEY_CURRENT_USER, "Environment", 0, KEY_ALL_ACCESS, ®);
RegQueryValueEx(reg, "Path", NULL, &t, (BYTE *)t, &b);

CURRENT_USER\EnvironmentにPathは存在しています
RegOpenKeyExは成功しますが、RegQueryValueExが失敗します。
何が駄目なのでしょうか。


142 名前:デフォルトの名無しさん :2005/12/10(土) 19:09:26
>>124
確実にカレントにしたかったらNULLの代わりに"."を指定すれ
>>137
互換モードで視覚テーマを無効にする。それをプログラムからやる方法は分からんが

143 名前:デフォルトの名無しさん :2005/12/10(土) 19:12:50
>>141
REG_SZ(1)をポインタと解釈したら確実に無効なポインタだから

144 名前:デフォルトの名無しさん :2005/12/10(土) 21:11:36
>>143
RegQueryValueEx(reg, "Path", NULL, &t, (BYTE *)c, &b);
でも0以外が返されます

145 名前:デフォルトの名無しさん :2005/12/10(土) 21:22:06
>>144
いくつが返ってきてるのさ?234じゃねーよな。

146 名前:144 :2005/12/10(土) 21:26:24
どうみても234です。

147 名前:144 :2005/12/10(土) 21:35:37
解決しまうま
なんちって

148 名前:デフォルトの名無しさん :2005/12/10(土) 21:43:29
エラーコードの意味ぐらい調べろよ・・・

149 名前:144 :2005/12/10(土) 23:30:14
レジストリに追加したんだけど有効にならない
具体的にいうと、
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Session Manager\Environment
のPathにデスクトップのパスを追加したのですが、有効になってないようです。
マイコンピュータのプロパティから環境変数を見てみると、ちゃんと追加されています。
それでそこのOKを押すと有効になります。


150 名前:デフォルトの名無しさん :2005/12/10(土) 23:33:21
>>127
ありがとうございます。
でも、そこに載ってるのは全部のAPIじゃ無いですね。

151 名前:デフォルトの名無しさん :2005/12/10(土) 23:36:51
レジストリでんでん以前に、環境変数というのはそういうものだ。

152 名前:デフォルトの名無しさん :2005/12/10(土) 23:38:08
>>150
何が抜けている?

153 名前:144 :2005/12/10(土) 23:51:54
>>151
マイコンピュータのプロパティから環境変数Pathの設定をした場合はすぐに有効になりますが、
それはどうやってるのですか

154 名前:デフォルトの名無しさん :2005/12/10(土) 23:55:09
システム(エクスプローラか?)に環境変数の変更を強制する手段が
「どこかに」あるんだろう。

俺は知らん。

155 名前:デフォルトの名無しさん :2005/12/11(日) 00:13:38
>>152
winsockとかshell apiとかodbcとかその他多数。
狭義のwin32 apiだとそんなものまでは含まれないのか。。。

156 名前:デフォルトの名無しさん :2005/12/11(日) 00:15:11
隠しAPIのことかとオモタ

157 名前:デフォルトの名無しさん :2005/12/11(日) 00:31:34
隠しAPIならOS周りのDLLをdumpbin /exportsとかすれば出て競う。

158 名前:デフォルトの名無しさん :2005/12/11(日) 00:35:34
>>153
WM_SETTINGCHANGEをブロードキャスト

159 名前:デフォルトの名無しさん :2005/12/11(日) 00:36:41
Vistaには今まで隠しAPIだったものを名前だけ変えて出してきたようなものがチラホラ
GetFileInformationByHandleEx/SetFileInformationByHandleとかテラワロス

160 名前:デフォルトの名無しさん :2005/12/11(日) 00:47:20
Win32アプリってVC以外じゃできないんですかね?
Javaで使ってたeclipseの快適さが忘れられない。

161 名前:デフォルトの名無しさん :2005/12/11(日) 00:50:13
>>160
っ[ Delphi, BCB, VB ]

162 名前:デフォルトの名無しさん :2005/12/11(日) 01:41:18
VC++でIEコンポーネントを使ってるんですけど
右クリックしてコピーを選んでもクリップボードにコピーされません
他の”前へ戻る”とかは全部きちんと動くんですけどコピーだけ動かないです
どうしてなんでしょうか?

163 名前:デフォルトの名無しさん :2005/12/11(日) 01:44:34
隠しAPIって、勿体つけて隠してたんじゃなくて、
安定性・安全性に自信がもてなかったから非公開にしてただけでしょ。

164 名前:デフォルトの名無しさん :2005/12/11(日) 01:54:47
まぁ、そんなものが隠されているとは言え組み込まれていること
自体に問題があるんだけれどもね。

165 名前:デフォルトの名無しさん :2005/12/11(日) 02:33:57
とはいえ、隠しAPIには便利なのが多いんだよな。

166 名前:デフォルトの名無しさん :2005/12/11(日) 02:58:06
隠されたものにはロマンがある。


167 名前:デフォルトの名無しさん :2005/12/11(日) 07:20:19
公開されたものが安定性・安全性に自信があるとは思えんのだが

168 名前:デフォルトの名無しさん :2005/12/11(日) 09:00:18
画像を透過させて表示する方法を教えて頂けませんか?
今まではBitBltでSRCPAINTとSRCANDを組み合わせて透明化させていましたが、
この方法ではマスク用の画像も用意する必要が出て来てしまいます。
マスク無しで透明化させる方法の伝授をよろしくお願いします。

169 名前:デフォルトの名無しさん :2005/12/11(日) 09:06:37
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpdnwui/htm/layer.asp

170 名前:デフォルトの名無しさん :2005/12/11(日) 09:06:55
VC++でIEコンポーネントを使ってるんですけど
右クリックしてコピーを選んでもクリップボードにコピーされません
他の”前へ戻る”とかは全部きちんと動くんですけどコピーだけ動かないです
どうしてなんでしょうか?

171 名前:デフォルトの名無しさん :2005/12/11(日) 09:11:46
ヒント:
クリップボードは二種類ある


172 名前:デフォルトの名無しさん :2005/12/11(日) 09:35:26
Win32APIで取得したWin32のデータ型の変数をprintfなどで整形しようとすると、
型の互換性などで悩んでしまうけど、その辺他のプログラマーはどのようにやってる
んですか。

173 名前:デフォルトの名無しさん :2005/12/11(日) 09:48:07
お前の悩みが俺には理解できない

174 名前:デフォルトの名無しさん :2005/12/11(日) 10:01:53
悩んだこと無いな

175 名前:デフォルトの名無しさん :2005/12/11(日) 10:17:30
大悩みしないのが理解できない。
どうすればいいんだろうな。

176 名前:デフォルトの名無しさん :2005/12/11(日) 10:21:58
CStringとstringとstrXXX系の関数みたいな関係かな。

177 名前:デフォルトの名無しさん :2005/12/11(日) 10:22:23
基礎からやり直すのがいいだろうね。

178 名前:デフォルトの名無しさん :2005/12/11(日) 10:27:27
何の基礎からやり直せばいいんだ。

179 名前:デフォルトの名無しさん :2005/12/11(日) 10:29:02
Win32の基礎からか、それともCの基礎からなのか。

180 名前:デフォルトの名無しさん :2005/12/11(日) 10:31:32
コンピュータサイエンスの基礎

181 名前:デフォルトの名無しさん :2005/12/11(日) 10:35:34
>>180
俺はこのレスと>>176だけなんだが・・・

182 名前:デフォルトの名無しさん :2005/12/11(日) 10:42:38
何でそんなぼろくそに言われなければいけないんかね。
俺よりプログラムの理解が下の奴はいるぞ。

183 名前:デフォルトの名無しさん :2005/12/11(日) 10:47:06
>>182
> 俺よりプログラムの理解が下の奴はいるぞ。
そんなモン誰にでもいるだろ

184 名前:デフォルトの名無しさん :2005/12/11(日) 10:47:31
他人は当たり前に分かって馬鹿らしいことかも知れないけど、俺には分からないんだ。
教えてくれる人いないのかな。

185 名前:デフォルトの名無しさん :2005/12/11(日) 10:47:52
>>182
2chの半分はストレスでできています

186 名前:デフォルトの名無しさん :2005/12/11(日) 10:47:58
人間の基礎はAPIの基礎。
APIの基礎はCの基礎。
Cの基礎はコンピューターサイエンスの基礎。

結局は全部同じもの。

187 名前:デフォルトの名無しさん :2005/12/11(日) 10:48:46
ネタに混じれ酢カコワルイ

188 名前:デフォルトの名無しさん :2005/12/11(日) 10:59:21
コンピュータサイエンスが理解できたからと言って、Win32で定義したデータ型
が普通のデータ型のどれと互換性があるかが分かって、どの書式指定文字を使えば
いいかが分かるわけでは無いと思うんだが。

189 名前:デフォルトの名無しさん :2005/12/11(日) 11:05:50
>>182
下がいるとかいないとかもこの問題とふさわしくないだろ。

ただ、最近、知識も無いのにやたらめったら叩きレスを返す奴がいるから
注意したほうがいいと思う。
で、なにやら偉そうだから知識があるのかと思いきや、どうもプログラムも組めない気がする。
ってか、実力が無い。

こういう知りもしないのに、わかったつもりになってとりあえず叩く的な奴が出てきたのは
ここ最近のような気がする。
多分、ちょっと前の「ヘルプも見ずに質問してくるアホを叩きだす」流れで成長した奴が
自分もちょっと理解できるようになってレスを付けるようになって質問する奴を無差別に
叩きまくってるだけのような希ガス。

似たような分野のスレに似たようなレスがつくようになってるから注意したい。
レベルが低いからすぐわかるけど。

190 名前:デフォルトの名無しさん :2005/12/11(日) 11:06:45
>>172
つ[boost::format]

191 名前:デフォルトの名無しさん :2005/12/11(日) 11:19:20
>>172
「Win32のデータ型」などと言うものはない。
結局は、構造体やCの基本型のtypedefに過ぎない。


とりあえず、ヘッダでどう宣言されているか、調査してから質問して欲しいものだね。

後、「Win32のデータ型」なんて言う、オレ用語は使わないで貰いたい。

192 名前:デフォルトの名無しさん :2005/12/11(日) 11:23:13
>>188
コンピュータサイエンスの基礎が理解出来ていれば、Win32でデータ型を定義している訳ではない事位、普通に理解出来そうだが?

193 名前:デフォルトの名無しさん :2005/12/11(日) 11:25:08
>>191
俺は>>172ではないけど、そこはレスの全体の意味を組んでやればいいような気がするんだが・・・。
そんなとここだわんの?
なんかここって質問し難い掲示板になったなぁ・・・って思う。
ちょっと前なら、レスに意味不明な部分があったら、せめて

>>172
Win32のデータ型とはなんぞや?
定義されてる構造体のことなら〜だよ。

ってレスがついたけどもね。
最近はいきなり「カー」っとなって「ヒー」っとなって酷いねw

194 名前:デフォルトの名無しさん :2005/12/11(日) 11:25:45
スルーされたというより答えられる香具師がいなかったようなので再掲です


Windowsのイベントログに関する事で質問です

通常2000とかXPには
システムイベントログ
アプリケーションログ
セキュリティログ
などがありますが、
それ以外のログを自前で生成し、
「コンピュータの管理(MMC)」に
追加することは可能でしょうか?

195 名前:デフォルトの名無しさん :2005/12/11(日) 11:26:44
172から188まで呼んだけど何が悩ましいのかわかんない。
win32 と win64 で共有できる printf の書き方が悩ましいというならわかるけど
win32 限定なら MSDN のマニュアル見て型のバイト数と符号を確認するだけのこと。
むしろ型のバイト数と符号が処理系依存の「普通のデータ型」のほうが悩ましくて。


196 名前:デフォルトの名無しさん :2005/12/11(日) 11:28:58
>>194
不可能。

197 名前:デフォルトの名無しさん :2005/12/11(日) 11:31:32
>>196
ご回答ありがとうございます。

でも、サーバーコンポーネントにDNSを追加したり
ドメインコントローラに参加したりするといつの間にか
ログが増えているのですが、あれはどうやってるのかなと
思いまして。

やはり非公開APIがあるんでしょうね。


198 名前:デフォルトの名無しさん :2005/12/11(日) 11:34:27
>>160
つ[ Eclipse CDT ]

199 名前:デフォルトの名無しさん :2005/12/11(日) 11:34:56
>>193
元々、質問しやすい所でもなかったと思うが…。




それより、ヘッダの宣言を確認すれば解る様な事をいちいち質問する方が如何なものかと。
単発質問スレ立てるのと同じ位迷惑だと思う。

200 名前:デフォルトの名無しさん :2005/12/11(日) 11:38:09
>>197
UNIXでいうとsyslogのfacilityに相当するんで

facility eventlog win32api

とかでぐぐってみたんだが、出てこないな。
非公開だろね。

201 名前:デフォルトの名無しさん :2005/12/11(日) 11:54:33
>>194
イベントビューアの「アプリケーション」に独自のログを書き込むのは可能。
「コンピュータの管理(MMC)」に独自のスナップインを追加してそこにログ出力するのも可能。
イベントビューアを改変して独自の項目を追加するのは不可能っぽいけど俺が知らんだけかも。

202 名前:デフォルトの名無しさん :2005/12/11(日) 11:54:59
>>199
いや、そんな話でもないでしょ?
なんか便利なAPIかツールでもないですか?って話かもしれないことは容易に想像つくわけで。
こういうの気軽に聞けない雰囲気ではなかったよ。
ちょっと短気なのが多くなったせいもあって全体的にそういう空気ができちゃってるね。

203 名前:デフォルトの名無しさん :2005/12/11(日) 12:11:08
>>202
もしそうなら GetLastError とか FormatMessage くらいしかないだろうね。

204 名前:デフォルトの名無しさん :2005/12/11(日) 12:14:40
>>194
それは CustomLog というらしい。

ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/debug/base/eventlog_key.asp

CustomLog

Contains events logged by applications that create a custom log.
Using a custom log enables an application to control the size of the log
or attach SACLs for security purposes without affecting other applications.

Windows NT: Custom logs are not supported.


205 名前:デフォルトの名無しさん :2005/12/11(日) 12:22:12
>>194 >>201
漏れもやったことないけど、こんなのがあった。

ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/debug/base/adding_a_source_to_the_registry.asp

普通に出来るの鴨試練。


206 名前:デフォルトの名無しさん :2005/12/11(日) 12:22:59
>>194
> それ以外のログを自前で生成し、

MSDN見てると出来そうな気する。
http://msdn.microsoft.com/library/en-us/debug/base/eventlog_key.asp
自前で「custom log」に相当するキーを作ってみたら
どうだろう。

>>196は即答具合からイベントログに詳しいようなので、
見解を聞かせてほしいな。

207 名前:デフォルトの名無しさん :2005/12/11(日) 12:31:21
イヤです

208 名前:デフォルトの名無しさん :2005/12/11(日) 12:31:59
まさに>>196>>189で語られているような人間な件。

209 名前:201 :2005/12/11(日) 12:54:34
>>204 >>205
情報ありがとう。ざっと読んだだけだけどその方法で普通に出来そうですね。
「アプリケーション」に独自のログを書き込むだけも糞面倒くさかったんで
とりあえず仕事を終わらせて、そっから先はポイしてた・・・

210 名前:201 :2005/12/11(日) 13:01:12
>>206
ピンポイント爆撃乙。194の質問はこれで終了でFA。

211 名前:デフォルトの名無しさん :2005/12/11(日) 13:50:35
__int64やLONGLONGの型の変数をprintfで64ビットで表示しようと考えて、
例えばVisual C++ .net2003のコンパイラで、
printf("%llx\n", n); では32ビット分しか表示しません。
printf("%qx\n", n);
printf("%l64\n", n);
printf("%l32\n", n);
では%や%lが無視されます。

64ビットに対応した環境でのみ表示できるのですか。
またぼろくそに言われるのだろうかな。

212 名前:デフォルトの名無しさん :2005/12/11(日) 13:52:44
訂正
printf("%l64x\n", n);
printf("%l32x\n", n);


213 名前:デフォルトの名無しさん :2005/12/11(日) 13:55:06
16進表記なのであれば、上位DWORDと下位DWORDを続けて出力すればいいだけだろ。

214 名前:デフォルトの名無しさん :2005/12/11(日) 13:55:55
printf とWin32APIにどんな関係が?

215 名前:デフォルトの名無しさん :2005/12/11(日) 13:57:44
だからちゃんとC勉強してこいよ

216 名前:デフォルトの名無しさん :2005/12/11(日) 14:03:54
ttp://msdn.microsoft.com/library/en-us/vclib/html/_crt_Format_Specification_Fields_.2d_.printf_and_wprintf_Functions.asp

217 名前:デフォルトの名無しさん :2005/12/11(日) 14:06:15
初心者はなぜか_int64やLONGLONGが好きだよな
あと最適化とか

218 名前:デフォルトの名無しさん :2005/12/11(日) 14:19:09
何を馬鹿にしてるのかね。
64ビットで出力するのが本当の目的ではない。
GetDiskFreeSpaceEx()関数のPU_LARGE_INTEGER型の引数で取得した値を
をprintfで対応する書式指定子は何になるかを調べたかっただけだ。

219 名前:デフォルトの名無しさん :2005/12/11(日) 14:25:14
>>218
http://msdn.microsoft.com/library/ja/vclib/html/_crt_size_and_distance_specification.asp

220 名前:デフォルトの名無しさん :2005/12/11(日) 14:36:44
こういう人は128ビットとかでてきたらどうするのかね?
かわいそうなやつだな

221 名前:デフォルトの名無しさん :2005/12/11(日) 14:38:20
Win32と標準関数の違いも分からず、MSDNすら調べられない厨でしたか。

222 名前:デフォルトの名無しさん :2005/12/11(日) 14:40:58
>>191
MSDNには"Windows Data Types"って表現があるから、「Win32のデータ型」って表現は間違いって
言うほどのものでは無いが。正しくは「Windowsのデータ型」だけど。
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winprog/winprog/windows_data_types.asp

>結局は、構造体やCの基本型のtypedefに過ぎない。

それはそうなんだけど、あのグルグル巻きのウインドウズのヘッダーファイルを見ると初心者は混乱するよ。
Windowsのデータ型ってそんなもんだと悟りを開くまでには少々時間が掛かる。誰もが通って来た道だとは思うが。


223 名前:デフォルトの名無しさん :2005/12/11(日) 14:41:17
MSDNぐらい自分で引けるようになろうね

224 名前:デフォルトの名無しさん :2005/12/11(日) 14:43:30
何言ってんだ。wsprintf()のトピックの書式指定子の解説にも載ってなかったら仕方ないじゃないか。

225 名前:デフォルトの名無しさん :2005/12/11(日) 14:45:58
ここでとんちんかんにC++のiostreamなら型指定を考えずに済むと言ってみる。

226 名前:デフォルトの名無しさん :2005/12/11(日) 14:53:05
>>224
wsprintfなんて一言も言ってなかったじゃないか。
ロボットじゃ無いんだから、printfの方も見てみるとか機転を利かせようね。

227 名前:デフォルトの名無しさん :2005/12/11(日) 14:56:22
>>218
もちろんprintfにはQuadPartメンバを渡してるんだよな?
LARGE_INTEGERは共用体として定義されてるお

228 名前:デフォルトの名無しさん :2005/12/11(日) 14:56:41
>>198
ただのC++しか作れませんでした。
Win32は無理っぽい。

229 名前:デフォルトの名無しさん :2005/12/11(日) 14:58:40
MSDNは日本語と英語の内容は合わせて欲しい。
重要な補足事項とかが日本語の方には無くて結局英語の方も見ないといけないじゃないか。

230 名前:デフォルトの名無しさん :2005/12/11(日) 15:23:26
中途半端な翻訳するくらいなら、いっそ日本語版は無くした方がいいと思う。

231 名前:デフォルトの名無しさん :2005/12/11(日) 15:50:24
>>230
MSの技術情報みたいにサイトでの自動翻訳が良いね。

232 名前:デフォルトの名無しさん :2005/12/11(日) 15:57:09
英語で十分。

233 名前:デフォルトの名無しさん :2005/12/11(日) 15:59:58
でも完璧な日本語があるならそっちの方がいいけどね。

234 名前:デフォルトの名無しさん :2005/12/11(日) 16:09:12
カスタムログってメッセージDLL作ってイベントログに自前の文字列出す方法だろ?
>>194の質問に対する回答にはなってないと思うけど

235 名前:デフォルトの名無しさん :2005/12/11(日) 16:29:01
>>229
はじめから英語読めばいいじゃない

236 名前:デフォルトの名無しさん :2005/12/11(日) 16:29:48
間違えた
PU_LARGE_INTEGER ではなくてPULARGE_INTEGER

237 名前:デフォルトの名無しさん :2005/12/11(日) 16:33:45
PUGELA_INTEGER

238 名前:デフォルトの名無しさん :2005/12/11(日) 16:37:07
コンパイルエラー

239 名前:デフォルトの名無しさん :2005/12/11(日) 16:52:07
どうでもいいけど
英語で書かれたマニュアルなら
英語で呼んだほうが、誤解が少ないんじゃまいか?
翻訳に完璧はないわけだし。
なので留学はマジでおすすめ。

240 名前:デフォルトの名無しさん :2005/12/11(日) 17:07:10
Win32のデータ型と言っておいて別にいいじゃないか。
その程度の知識くらい知った上で便宜上言ってるのにな。

241 名前:デフォルトの名無しさん :2005/12/11(日) 17:08:59
Win32の疑似データ型とでも言っておこうか?
否定する奴は、何て呼び方をしてるんだ?

242 名前:デフォルトの名無しさん :2005/12/11(日) 17:10:44
すごいスレが伸びていたので覗いてみたら自作自演の祭りでした
ありがとうございました。

243 名前:デフォルトの名無しさん :2005/12/11(日) 17:16:38
シャットダウンするときに再起動するか休止状態にするかスタンバイか
などを選ぶダイアログが出るけど、前回の選択肢を記憶していてそれを
表示しているみたいなんだが、選択して再起動などをせずに表示される
既定を変えるにはどうしたらよいですか。

毎回休止状態を使うけど、ごく稀にシャットダウンする。次は休止状態
にしたいけど、惰性でエンターを押すとシャットダウンになっちゃう。
これを防止したい。選択出さないで直接やりなってのは不可。
こどもが電源ボタンを押しちゃうので予期せぬシャットダウンなどを防
ぐためにも選択ダイアログを出すのは必要。

244 名前:デフォルトの名無しさん :2005/12/11(日) 17:37:04
>>243
>こどもが電源ボタンを押しちゃうので予期せぬシャットダウンなどを防
>ぐためにも選択ダイアログを出すのは必要。

http://www.atmarkit.co.jp/fwin2k/win2ktips/065slpbtn/slpbtn.html
PBT_APMQUERYSUSPEND属性のWM_POWERBROADCASTメッセージを受け取ったら、
BROADCAST_QUERY_DENYを返すようなWindowsアプリケーションを常に実行しておけば問題を回避できる

245 名前:デフォルトの名無しさん :2005/12/11(日) 17:38:32
Win32のデータ型はないなら、文字列を扱うWin32API関数などは、末尾にAやWの付かない名前の関数名を言うと、
そんな関数は存在しないと主張するのかね。
つまらないレスが伸びてしまう結果になったのは残念なことだ。

246 名前:デフォルトの名無しさん :2005/12/11(日) 17:41:10
バカはもう来なくていいよ

247 名前:246 :2005/12/11(日) 18:00:34
誤爆スマソ

248 名前:246 :2005/12/11(日) 18:19:19
>>247
誰だおめー

249 名前:デフォルトの名無しさん :2005/12/11(日) 18:23:05
誤爆っぽくねぇwww

250 名前:246 :2005/12/11(日) 18:27:13
>>248
おまえこそ誰だよWWW


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