1 名前:デフォルトの名無しさん [2007/04/18(水) 01:54:51 ] スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。 やさしいお兄さんやお姉さんたちが答えてくれるかも。 過去スレ、関連リンクは>>2-5 くらい。 ■注意 ・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。 ・日本語版MSDN Online Libraryは不完全です。英語版(msdn.microsoft.com/library/ )の利用推奨。 ・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。 ・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで
2 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 01:55:45 ] 51 ttp://pc11.2ch.net/test/read.cgi/tech/1174416295/ 50 ttp://pc11.2ch.net/test/read.cgi/tech/1171721448/ 49 ttp://pc10.2ch.net/test/read.cgi/tech/1168708801/ 48 ttp://pc10.2ch.net/test/read.cgi/tech/1166172047/ 47 ttp://pc8.2ch.net/test/read.cgi/tech/1163375772/ 46 ttp://pc8.2ch.net/test/read.cgi/tech/1159158014/ 45 ttp://pc8.2ch.net/test/read.cgi/tech/1156032806/ 44 ttp://pc8.2ch.net/test/read.cgi/tech/1151501925/ 43 ttp://pc8.2ch.net/test/read.cgi/tech/1148005509/ 42 ttp://pc8.2ch.net/test/read.cgi/tech/1144962549/ 41 ttp://pc8.2ch.net/test/read.cgi/tech/1141392216/ 40 ttp://pc8.2ch.net/test/read.cgi/tech/1138893959/ 39 ttp://pc8.2ch.net/test/read.cgi/tech/1136673250/ 38 ttp://pc8.2ch.net/test/read.cgi/tech/1133798345/ 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/ 32 ttp://pc8.2ch.net/test/read.cgi/tech/1117271829/ 31 ttp://pc8.2ch.net/test/read.cgi/tech/1114762194/
3 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 01:55:48 ] 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 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 01:55:57 ] - MSDN ホームページ www.microsoft.com/japan/msdn/ - MSDN ライブラリ msdn.microsoft.com/library/ja/ - MSDN 2 ライブラリ msdn2.microsoft.com/ja-jp/library/ - 猫でもわかるプログラミング www.kumei.ne.jp/c_lang/ - Google www.google.com/ - MSDN ライブラリ 2006年6月版 www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=373930CB-A3D7-4EA5-B421-DD6818DC7C41 - Platform SDK Update (WindowsR Server 2003 R2 Platform SDK Full Download) www.microsoft.com/downloads/details.aspx?FamilyId=484269E2-3B89-47E3-8EB7-1F2BE6D7123A www.microsoft.com/msdownload/platformsdk/sdkupdate/XPSP2FULLInstall.htm www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm - Win32 API入門 wisdom.sakura.ne.jp/system/winapi/ - Win32 プログラミング入門 www7.plala.or.jp/keny01/ - Advanced Windows (書籍) www.amazon.co.jp/exec/obidos/ASIN/4756138055 -おまけ dat落ちしている過去スレが見れるかも。Build19が見たい人、余裕のある人は●でも買ってやってくれ。 www.2chsearch.info/index.php?b=tech makimo.to/cgi-bin/search/search.cgi?q=Win32API&andor=AND&sf=2&view=table&D=tech
5 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 01:56:11 ] MSDN日本語版は誤訳があったり、一部欠けていたりするなど不完全なため、英語版推奨。 msdn.microsoft.com/library/ msdn2.microsoft.com/en-us/library/ MSDN ライブラリ 2006年12月版 www.microsoft.com/downloads/details.aspx?FamilyID=94596af5-cc58-45af-a14b-df627a31e783&DisplayLang=ja MicrosoftR WindowsR Software Development Kit for Windows Vista? and .NET Framework 3.0 Runtime Components www.microsoft.com/downloads/details.aspx?FamilyID=c2b1e300-f358-4523-b479-f53d234cdccf&DisplayLang=en
6 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 01:56:41 ] , -‐- 、 r‐-、__ ヽ '´ ̄ ` / ' ヽ. ヾ ヽ L_/ ; l i ! ヽ. . / / ナフ ノ リ ナ ノ)) 〉 / i , ァ'´l` fヽ. ! リ / . / l l ヒ'l´! ト| lヽ ん、_リ、 丶 ー' _,' ‐ ,.' ゝ ヽ \ヽヽ __ ィ ゝ` ` `゙, ー 、lヽ.,'.,、,、,、,、,、,、,、,、,、,、,、,、,、,、,、,、,、,、,、,、,、,、,、,、 / ヽヽ!|,、 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| / ‐- 、 ヽ// テ ン プ レ | ,'´ l`ー/ ニi. | ! i ∧ ァノ こ こ ま で | ト !' `/ |
7 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 02:17:43 ] リナックスと言うと一目で頭悪そうじゃん? FreeBSDって書くと通っぽいの思われ。
8 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 02:35:33 ] 誤爆乙 いちおつ
9 名前:デフォルトの名無しさん [2007/04/18(水) 09:10:24 ] LoadResource(wavファイルを)でロードしたメモリは、 手動(FreeResource)では開放はしないものなんでしょうか。 LoadImageの場合は、リソースのロード、ファイルのロードに限らず、 DeleteObjectで開放するので、 メモリの種類みたいなのは、同じだと思うんですけど、 LoadResourceのメモリは普通のと違ったりするんでしょうか。
10 名前:デフォルトの名無しさん [2007/04/18(水) 09:22:36 ] >9 どこからLoadResourceするのかで違うのでは?
11 名前:デフォルトの名無しさん [2007/04/18(水) 09:39:13 ] あらかじめPEに含まれたリソースなら予めメモリに展開されてるからロードしても体積は増えんが 外部からロードするとメモリを確保して展開するから体積が増える ガンガン外部からロードするとガンガンメモリを圧迫していく その時の開放用 つかMSDNのLoadImageの項に書いてあるけど msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpwinui/html/_win32_loadimage.asp リソースを使っているプロセスが終了すると、システムがそのリソースを自動的に削除します。 しかし、対応する関数を呼び出してメモリを解放すれば、メモリが節約され、 プロセスのワーキングセットのサイズも小さくなります。
12 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 09:58:45 ] >>9 ttp://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/resources/introductiontoresources/resourcereference/resourcefunctions/freeresource.asp >The FreeResource function is obsolete and is only supported for backward compatibility with 16-bit Microsoft Windows. >For 32-bit Windows applications, it is not necessary to free the resources loaded using LoadResource function. >For more information, see INFO: FreeResource Not Necessary to Free Resources in Win32 ttp://support.microsoft.com/default.aspx?scid=kb;en-us;193678
13 名前:9 mailto:sage [2007/04/18(水) 10:37:44 ] ありがとうございます。 >>10 BCCで猫とかみたいにオーソドックスにリソースファイルに書いて、 ロードは以下みたいにやっています。 get = LoadResource(hInst, FindResource(hInst, (char *)IDR_WAVE*, "wave"); >>11 そのPEというのについて調べてみます。 >>12 訳してみました。 FreeResource機能は、16ビット用に残してあるもの。 32ビットの場合、RoadResourceの場合、開放する必要はない。 ただ、以下の物に付いては、開放する必要がある。 (FreeResourceを以下の機能に取り替えた) Accelerator:DestroyAcceleratorTable Bitmap:DeleteObject Cursor:DestroyCursor Icon:DestroyIcon Menu:DestroyMenu
14 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 13:08:17 ] ガンガンDVD思い出した
15 名前:9 mailto:sage [2007/04/18(水) 13:30:40 ] 少し調べてきました。 >>10 >>11 >どこからLoadResourceするのか >あらかじめPE(実行ファイル)に含まれたリソースなら 実行ファイルに含まれたリソースだと思います。 リソースに含むと、その分exeの容量が増えますので。 そもそも、それ以外のリソースがどういうものか分かりません。 >予めメモリに展開されてるからロードしても体積は増えん それは、直にリソースからwavを使ってもあまり変わらないという事でしょうか。 PlaySound(HGLOBAL, NULL, SND_MEMORY | SND_ASYNC); を以下にする感じで。 PlaySound((char *)IDR_WAVE**, hInst, SND_RESOURCE | SND_ASYNC); ビットマップをLoadImageするのは、メモリを確保するから速くなるのではなく、 HBITMAPに変換するから速くなるという事なんですかね。
16 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 13:49:10 ] >>15 >それ以外のリソースがどういうものか分かりません。 「実行ファイルに含まれたリソース」と「実行ファイルに含まれてないリソース」 「実行ファイルに含まれたリソース」は基本的にプログラムを実行した時点でメモリにロードされる 「実行ファイルに含まれてないリソース」はLoad*****されるまでメモリの上には無い LoadImageで速くなるかどうかはしらんが オブジェクトをハンドルで管理する理由は細々としたデータを管理しなくて良い所にある
17 名前:デフォルトの名無しさん [2007/04/18(水) 13:51:03 ] >>15 リソースを何か特殊なもんだと勘違いして内科医? テキストファイルだってリソースだよ? リソースを直訳してみ。
18 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 14:11:40 ] 利葬巣
19 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 14:44:49 ] これは酷い
20 名前:9 mailto:sage [2007/04/18(水) 15:53:05 ] >>16 >>17 >それ以外のリソース > == 実行ファイルに含まれてないリソース > == テキストファイルだってリソースだよ? それらは外部ファイルという風に言っていました。 実行ファイルに含まれてないリソースと外部ファイルの違いが分かりません。 >「実行ファイルに含まれたリソース」は基本的に DISCARDABLEとかですか? >LoadImageで速くなるかどうかはしらんが 始めはDIBの状態なので、DDBにすると早くなるという意味です。 >細々としたデータを管理しなくて良い所にある きっちり管理したいです。 64M、128Mメモリとか、ロートルマシンなので、 ある程度の量(5Mぐらい?)メモリを使うと極端に遅くなるんです。
21 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 16:38:28 ] どうしてSetWindowsHookExを使うとけ#pragma data_seg〜って書かないといけないの?
22 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 16:40:20 ] >>21 フックするプロセスごとにDLLがロードされるので、変数をプロセスを跨いで共有する必要がある。
23 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 16:44:07 ] へぇ
24 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 16:45:15 ] 書きたくなければFMOでも使うといいさ
25 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 20:01:23 ] >>4 のSDKは古いんだって・・・
26 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 20:14:42 ] 何度言っても分からない それがム板クオリティ
27 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 21:12:32 ] MSDNライブラリも2006/06と2006/12の両方を載せるのは無駄。 >>4-5 は整理しろよ。
28 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 22:13:09 ] >>22 複数のプロセスがロードしないなら書かなくておk?
29 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 22:16:32 ] >>28 良いと思うよ。DLLにする意味も薄くなるが。
30 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 22:19:01 ] いや、グローバルフックはDLL化必須じゃん?
31 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 22:19:04 ] >>28 ローカルフックならそう。そもそもDLL関係ないし。 グローバルフックなら CallNextHookEx に渡す HHOOK を共有しなければいけない。
32 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 22:25:50 ] >>30 複数のプロセスからロードしないならグローバルフックじゃない気がするが
33 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 22:28:43 ] え?別にDLLのフックを呼び出すのが単一でもグローバルフックはグローバルフックだろ? それとも>>30 と同じく俺も勘違いなのか?
34 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 22:30:24 ] >>前998&999 ありがとうございました、何とかなりそうです
35 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 22:33:52 ] >>21 はグローバルフックとは一言も言ってないんだよね。 この時点ですでに勘違いなのかもシレン。 要>>21 のレス。
36 名前:32 mailto:sage [2007/04/18(水) 22:39:10 ] 俺も語弊があるなw >複数のプロセスからロードされないなら だな
37 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 22:50:14 ] msdn2.microsoft.com/en-us/library/ms644974.aspx 実のところNT系は、CallNextHookExのHHOOK型の引数を無視するので フックハンドルを共有する必要がない罠。
38 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 23:00:36 ] >>36 それが良くわからんのだが フックには特定のスレッドを対象にしたもの(これがローカルフック)と 特定の対象スレッドを指定しないグローバルのものの2種類のスコープがあって 後者はフックプロシージャがDLLにないと出来ない で、たとえばWH_GETMESSAGEなんかは ローカルだと対象のスレッドのメッセージだけ取ってくるし グローバルだととにかくどこのメッセージでも取ってくる ローカルとグローバルの違いってこれだろ? SetWindowsHookEx呼ぶDLLの関数を複数のプロセスが呼ぶかとか関係無いと思うんだが
39 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 23:03:45 ] >フックには特定のスレッドを対象にしたもの(これがローカルフック)と 違う。 ローカルフックは自分自身のスレッドのみを対象としたもの。 他のスレッドを指定してのフックはグローバル。 もちろんスレッドを指定せずシステム全体が対象の場合もグローバル。
40 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 23:12:24 ] DestroyIconとDestroyCursorの違いってなに? CreateIconIndirect で作ったらDestroyIconで処分するってMSDNに かいてあるんですが
41 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 23:23:50 ] DestroyIcon はアイコンを破棄する。 DestroyCursor はカーソルを破棄する。
42 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 23:46:23 ] っていうレス以外でお願いします
43 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 23:49:00 ] CreateWindowExのheightやWidthを弄って実行しても 何故か画面に反映されません・・・ エスパー回答でもいいので助けてください・・・
44 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 23:53:01 ] >>40 言われた通りにしとけばいいだろ 哲学的な答えが欲しいならモニターにキーボード投げつけろ >>43 CreateWindowExを呼んでる部分晒してよ
45 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 23:53:11 ] ShowWindow
46 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 00:02:10 ] >>44 2画面分割のスプリットウィンドウで、親ウィンドウの上に 子1&2ウィンドウを作っており、その子2のCreateWindowです。 CreateWindowは、親のProcのWM_CREATEで呼んでいます。 +--+-------+ |子1|子2 | | | | +----------+ +----------+ (a)の行をg_c2w.height-20にしても変化しません・・・ 20はステータスバーの高さです。 // 子2ウィンドウ作成 g_hChild2 = CreateWindow( clsChild2, (LPCWSTR)"", WS_CHILD | WS_VISIBLE | WS_BORDER, g_c1w.width - g_frame, 0, g_c2w.width, g_c2w.height, ←(a) hWnd, NULL, hInstance, NULL );
47 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 00:05:25 ] >>40 CreateIconFromResourceExとCreateIconIndirectは 与えたパラメータによってはカーソルを返すこともあるが、 そのハンドルがカーソルであったとしても、DestroyIconで破棄しなくてはならない。
48 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 00:23:19 ] >>46 g_c2w.heightの中の値は確認した?
49 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 00:28:31 ] >>48 すみません、今解決しました。 親のProcのWM_SIZEの中に子2ウィンドウのサイズを変更する個所が ありまして、それがWM_CREATEで設定したg_c2w.heightを上書きして いたようです。WM_SIZEでも-20してやると希望通りに動作しました。 ウィンドウ作成時にもWM_SIZEが走るとは知りませんでした・・・
50 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 00:35:31 ] ∧∧ ヽ(・ω・)/ ズコー \(.\ ノ 、ハ,,、  ̄  ̄
51 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 01:15:14 ] 自己解決しました。 50にカチンときたので教えません。 バーカ!
52 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 01:26:30 ] 自己解決メソッドは↓のスレのみで有効です 【厨房満開】HSP初質51【ビラビラ満開】 pc11.2ch.net/test/read.cgi/tech/1142529119/
53 名前:40 mailto:sage [2007/04/19(木) 01:54:44 ] >>47 ありがとう
54 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 06:08:02 ] エクスプローラで、コンテキストメニュー項目を追加したいのですが、 ファイルやフォルダを無選択時の場合(新規作成(W)とかが出るやつ)に 使用されるレジストリはどこなのでしょうか?
55 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 06:22:08 ] *に書いておけばいいんじゃね?
56 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 07:14:33 ] >>54 HKEY_CLASSES_ROOT\Directory\Background\shellex\ContextMenuHandlers だけど、これだけを聞いてちゃんとContextMenuHandlerを作れるのか?
57 名前:デフォルトの名無しさん [2007/04/19(木) 10:31:39 ] 任意のアプリのウィンドウを SetParentで子ウィンドウにするプログラムを作りたいんですが 普通にSetParentしただけでは描画に問題がでました。 それでCreateRemoteThreadで同じプロセスに作ったスレッドの ウィンドウを親にしてみても同様に描画の問題がでますた。 なのでSetParentは同じスレッドじゃないとまともに動かないと結論付けて 今度は別のAPC未対応のスレッドにウィンドウを作らせるか、 もしくはウィンドウを別スレッドで作ってからウィンドウのハンドルを 別のスレッドに関連づけるような方法を試してみたいのですが そんな方法はありませんか?
58 名前:デフォルトの名無しさん [2007/04/19(木) 14:48:06 ] ttp://www.kumei.ne.jp/c_lang/sdk/sdk_29.htm 猫でも・・のソースで実行してみると、メニューとダイアログボックスは 表示されるんですが、ビットマップが表示されないです。 何かが足りないと思うのですが、原因わかるかたおりますか? Webページの実行結果と同じようにしたいので。。
59 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 14:58:16 ] >>58 念のために聞くけど、 猫の画像ファイル(bitmap1.bmp)は自分で用意しないといけないけど用意した?
60 名前:デフォルトの名無しさん [2007/04/19(木) 15:05:27 ] アイコンとビットマップ両方用意してあります。 ちなみに、フォルダでexeをみると、アイコンは変わって 表示されてました。
61 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 15:17:16 ] >>60 .rcのファイルにちゃんと MYBMP BITMAP DISCARDABLE "bitmap1.bmp" の行がある?
62 名前:デフォルトの名無しさん [2007/04/19(木) 15:20:26 ] >>61 あります。 もしかしてビットマップが大きすぎたりすると 表示できないとかありますかね。。 でもDlgの左上にアイコンも表示してくれないし・・・
63 名前:54 mailto:sage [2007/04/19(木) 15:21:57 ] >>55 >>56 どうもありがとうございます。 >>56 やっぱりそれしかないんですか・・・ そこだとActiveXオブジェクトである必要がある訳ですよね・・・? HKEY_CLASSES_ROOT\*\shell\foo\command みたいに適当なEXEとかでできる所はないんでしょうか・・・ ないですか・・・そうですか・・・ でも何でDirectoryなんでしょうか・・・?
64 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 15:29:09 ] >>62 当たり前だけど .rcのファイルのダイアログの定義のところに CONTROL "MYBMP",IDC_STATIC,"Static",SS_BITMAP | SS_REALSIZEIMAGE, 19,18,13,14 の行はあるよね? "MYBMP"の綴り間違ってたりしてないよね? こっちの環境では2000x2000ピクセルのサイズでも、 モノクロビットマップでもちゃんと表示されるんだけどなぁ・・
65 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 15:42:40 ] 普通のBitmapじゃ表示されないよ アイコン用Bitmapを作るツールで作らないと
66 名前:デフォルトの名無しさん [2007/04/19(木) 15:45:48 ] >>64 あります。ビットマップが表示されないだけで ほかのはきちんと機能します。
67 名前:デフォルトの名無しさん [2007/04/19(木) 15:55:31 ] >>65 ビットマップの新規作成から こぴぺしてつくりました。 アイコンは **.icoでBMPは **.bmpです。
68 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 16:01:59 ] >>67 エクスプローラとかデスクトップを右クリックの「新規作成」のことだろうか? 作っただけのそのままのファイルだと何も表示されない。 一度、ペイントブラシで適当に色塗っただけのBMP作って試してみたら?
69 名前:デフォルトの名無しさん [2007/04/19(木) 16:04:56 ] >>68 VCのリソースエディタに貼り付けました。 なんか色数が多いらしく、減色&小さめにリサイズして 貼り付けました。 リソースタブからプロパティをみると表示されています。 実行すると表示されません。
70 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 16:55:06 ] とりあえずビットマップ・描画関連APIの戻り値見て、どこまで成功してるのか調べた方がいいかもね。
71 名前:58 [2007/04/19(木) 17:04:34 ] いろいろすみません もうちょっとがんばってみます。
72 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 20:43:41 ] スタティックコントロールが"MYBMP"で参照しているのに、 ビットマップはMYBMPで定義されている件について。
73 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 21:58:35 ] IDB_MYBMP
74 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 22:01:04 ] 皆様、質問があります。 コンソール画面で ipconfig > "c:\ipinfo.txt" とすると、リダイレクタより、 ipconfigの標準出力がc:ドライブ下のipinfo.txtに出力される。 これをCreateProcess関数のlpszCommandLineに、 「ipconfig > \"c:\\ipinfo.txt\"」と指定しても、 c:ドライブ下のipinfo.txtに出力されるものなんでしょうか? (自分はうまくいかない) それとも、 > はcmdの機能? パイプで組まなきゃダメなんかなぁ・・・
75 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 22:02:35 ] >>74 シェルの機能なのでcmd.exeごと起動する。cmd /? をチェキ。
76 名前:74 mailto:sage [2007/04/19(木) 22:06:48 ] >>75 納得!! cmd.exeに委託しているんですかー。 ありがとうございます。
77 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 22:38:43 ] CreateWindowのEDITで、書き込みとか書き換えを不可能にするために EnableWindow(h1, FALSE)をしたところ、背景が灰色になって文字も薄くなりました。 書き換え書き込みは不可能なまま、背景白、文字黒に直したいのですが どうすればいいのでしょうか?
78 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 22:47:20 ] >>77 ES_READONLY WM_CTLCOLORSTATIC でどう?
79 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 22:55:03 ] >>78 できました!ありがとうございます! しかし、目的のEDITのウィンドウの背景を変えるにはどのように指定すればいいのでしょうか?
80 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 23:59:54 ] >>79 親ウィンドウでWM_CTLCOLOREDITを捉える
81 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 00:20:58 ] リストビューの行にチェックボックスはどうやって付けるのでしょうか ↓こんな感じです _______ |__|_____ |□ | |□ | |□ |  ̄ ̄ ̄ ̄ ̄ ̄ ̄
82 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 00:25:49 ] >>81 www.kumei.ne.jp/c_lang/sdk2/sdk_198.htm ここらへんで幸せになれると思う
83 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 00:27:54 ] >>82 即レスありがとう 幸せになってきます
84 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 09:52:05 ] >>72 それでした。 ""を追加したら表示されました。 ありがとうございました。
85 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 10:35:32 ] ReadFileで読み取ったファイルを1行づつ二次元の配列に格納して 構文解析したいです ReadFileの第二パラメータのバッファから、二次元の配列に移すAPI はありますか?
86 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 10:45:42 ] CopyMemory
87 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 10:57:17 ] 物臭もここまでくると素晴らしいな MSが何の為にそんなAPI用意するんだろうか
88 名前:デフォルトの名無しさん [2007/04/20(金) 11:50:11 ] 質問です。 ツールバーを作ろうとしているのですが、色々なサイトを調べても、ツールバー上にはボタンしか置いていないようです。 コンボボックスをツールバー上にのせたいのですが、可能でしょうか? ツールバーと似た、レバーコントロールというものの上におけるのは調べて発見できたのですが…
89 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 11:58:39 ] >レバーコントロール 思わずふきだしてしもた。
90 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 12:57:22 ] エクセルでオープンしているファイルを、 CreateFileでオープンしたいのですが、どうすれば出来るでしょうか。 エクセルでオープンしていなければ、CreateFileでオープンできるのですが、 エクセルでオープンしていると、CreateFileでオープンできないようです。 ただ、他のファイルビュアーでは読めたりするので、どうやればそれができるのかわかりません。
91 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 13:01:21 ] CreateFileのリファレンス読めば明らかだと思うが・・
92 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 13:01:24 ] >>90 排他モードで開いてるんだろ
93 名前:85 mailto:sage [2007/04/20(金) 13:06:25 ] ReadFileの第二パラメータのバッファの中は 111\r\n222\r\n333\r\nEOF と連続した文字列なのはわかったのですが、これをCopyMemoryを使って、 1行づつ二次元の配列に移す場合、バッファを先頭から1文字づつ読んで\r\n 毎に切り分けて格納するしかないのでしょうか・・・ 定番の読み方(例えば仕事(?)でやられる方)が知りたいです ↓こうしたい char hairetsu[5000][1024] (5000はファイルの行数、1024は1行の最大の長さ) hairetsu[0][1024]に111\r\n hairetsu[1][1024]に222\r\n hairetsu[2][1024]に333\r\n hairetsu[3][1024]にEOF
94 名前:85 mailto:sage [2007/04/20(金) 13:07:03 ] >>86 ありがとうございます
95 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 13:12:28 ] てかCの標準関数にそのものズバリなのあるじゃねぇか
96 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 13:19:12 ] バッファはそのまま使いつづけて 各行開始位置のポインタ値を保持する変数配列を用意し バッファを一旦頭から末尾まで全部捜査し 行開始位置のポインタをとりつつ\r\nを\0\0に書き換えていく これで文字列系関数にもポインタを渡すだけで行ごとに処理が可能に! つーか>>93 みたいな多元配列はメモリの無駄だし
97 名前:デフォルトの名無しさん [2007/04/20(金) 14:00:55 ] Win2000+VC.net2003の環境で QueueUserAPCをコンパイルすると error C3861: 'QueueUserAPC'識別子は、引数依存の照合を使用しても見つかりません。 と出るんですがどうすれば解決できますか? winbase.hをインクルードしてもkarnel32.dllとリンクしても駄目みたいなんですが。。
98 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 14:06:49 ] _WIN32_WINNT を 0x0400 以上の値で define した後にヘッダーをインクルード (コンパイラ設定でマクロ設定する でも可)
99 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 14:22:34 ] 子ウィンドウが開かれていて、親ウィンドウの上を移動させる時、 9x系と再描画されて、XPだと再描画されないのですが、 9x系とXPでは、再描画の挙動が違ったりしているのでしょうか。
100 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 14:46:22 ] そりゃあ、OSの設定の問題だろ 移動を終えてドラッグ止めたら再描画されるだろ?
101 名前:99 mailto:sage [2007/04/20(金) 15:35:25 ] >>100 ありがとうございます。 されないです。 最小化して標準に戻すのでもダメです。 WM_PAINTが来てない可能性すらあるので、 そこらへんから実験してみます。
102 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 16:22:57 ] それはあれか、全く同じEXEを9xとXPで動かしてるのか? >WM_PAINTが来てない可能性すらあるので、 ネェヨwwwww
103 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 16:29:05 ] 子ウインドウは動かしただけでは再描画されなくても正常だが WS_EX_LAYERED付なら親でも
104 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 16:34:47 ] そういえばレイヤードウィンドウなんてありましたねぇ 全然必要性を感じないから使ったこと無いですが
105 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 16:39:05 ] レイヤードウィンドウは雑誌やスクリーンショットで見る分にはかっこいいが 実際に使ってみると使いにくくてしょうがない
106 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 16:42:11 ] >>95 ありがとうございますstrtok確認しました >>96 >\r\nを\0\0に書き換えていく このやり方で行きます目から鱗です こういうテクニックって本に書いてあるんでしょうか? ウェブでも本でも見たことない・・
107 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 16:51:04 ] >>105 完全不透明のレイヤードウィンドウもつくれるよ。 見た目は普通のウィンドウと変わらないけど、WM_PAINTは激減する。
108 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 17:05:24 ] 外部プロセスのCPU使用率を強制的に制限する方法を探しています。 最初に、CreteProcessのPROCESS_INFORMATIONから得られるhThreadに対して SuspendThread/ResumeThreadを試しましたが、 複数スレッドがある場合に対応できない様です。 次にCreateToolhelp32Snapshotによるプロセス内のThreadの列挙で SuspendThread/ResumeThreadをやろうとしましたが、 Thread32First/Thread32Nextで得られるThreadIDに対し、 OpenThreadでHandleへ変換しようとすると失敗してしまいました。 また、JobObjectの関連付けでJOB_OBJECT_LIMIT_JOB_TIMEや IDLE_PRIORITY_CLASSで時間制限を掛けてみましたが、このオプションは 設定時間にプロセスが終わってしまうだけみたいなので目的と違う様です。 使用率制限を行うツールとして既にBESという物がありますが、 あれはどうやっているのでしょうか?
109 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 17:07:32 ] すいません、BESはソースが公開されていますね。 調べてみます…。
110 名前:99 mailto:sage [2007/04/20(金) 17:12:42 ] >>102 はい。基本は9xで作っているんですけど、 動作確認のためxpで動かそうと思いました。 >>103 再描画されて欲しいのは、下にある親ウィンドウの方です。 ただ、最小化→標準化とすると、子ウィンドウの方も再描画されません。 WS_EX_LAYEREDについても調べてみます。
111 名前:108 mailto:sage [2007/04/20(金) 17:27:28 ] できました。Thread32First/Thread32Nextの方法でよかった様です。
112 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 17:37:56 ] 画像を扱うのにBMP用のAPIは見つかったのですが、 PNG用のAPIは、外部ライブラリを探すしかないのでしょうか? OSはXPです。
113 名前:デフォルトの名無しさん [2007/04/20(金) 17:40:00 ] GDI+でも検索汁
114 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 17:41:03 ] つ gdiplus
115 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 17:45:29 ] StretchDIBitsって出力先がメモリDCや拡張メタファイルでもPNGを出力できるんだろうか
116 名前:112 mailto:sage [2007/04/20(金) 17:50:23 ] ありがとうございます。勉強してきます。
117 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 18:07:55 ] WM_CREATEメッセージ中に、子ウインドウのレイアウトに従い 自身のサイズを変更したいのですが、CREATESTRUCTを修正しても MoveWindow/SetWindowPosでも変更できないようです 何かいい方法はないでしょうか?
118 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 18:10:34 ] サイズの変更をポスト
119 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 18:15:05 ] >MoveWindow/SetWindowPosでも変更できないようです 可能性 ・自分の WM_SIZE ハンドラで、引数と無関係の値にサイズ変更している ・自分の親が 親のWM_SIZEのタイミングで 自分をMoveWindowしやがってる
120 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 18:15:36 ] あれ?ウィンドウ生成時にもWM_SIZEが発行されるんじゃなかったっけ?
121 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 18:26:35 BE:124224588-2BP(222)] >WM_CREATEメッセージ中に、 リソースインダイレクトを使っているというオチではなかろうな。
122 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 19:23:11 ] ウィンドウを作らずに通知エリアの追加は出来ないの
123 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 19:25:15 ] 通知エリアって?
124 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 19:34:20 BE:62112184-2BP(222)] >>122 できたとして、どうやってメッセージを受け取るつもりだ?
125 名前:97 mailto:sage [2007/04/20(金) 19:43:23 ] >>98 ありがとうございます。 その通りにやったら、できました。
126 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 19:45:04 ] >>124 Hook
127 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 19:46:33 BE:58230656-2BP(222)] >>126 「通知エリアのメッセージ」と分かっているのにフックしなければならない理由があるの?
128 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 19:59:01 ] 北がキチガイなのは世界中公認の周知の事実だが 南は中身は同じなのに私達先進国ですという皮をかぶってるのがウザス
129 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 20:02:32 ] 同意するがスレ違いだ
130 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 21:09:53 ] >>106 さぁねぇ プログラムの本なんて数多あるから、似たようなのが載ってる本ももしかしたらあるかもしれないな 俺はとりあえず見たこと無いが ランゲージリファレンス系の本しか持ってないしな ていうか今回のくらいのは、自分で思いつくくらいにはならんといかんのじゃないかと思うよ
131 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 21:12:23 ] >>96 >行開始位置のポインタをとりつつ\r\nを\0\0に書き換えていく これポインタ取るのはわかるけど、書き換えは出来ないんじゃね? バッファってchar*だから一旦配列なり、mallocで取った領域なりに バッファ丸ごとコピーして、そこを書き換えないと
132 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 21:18:26 ] ファイルマpp(ry
133 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 21:21:50 ] >>131 constでもリテラルでも無い、普通にメモリ上に動的確保したバッファ内の値が書き換えできないと申すか?w
134 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 21:25:15 ] >>131 おまえの言ってるバッファはいったい何のバッファだ? ReadFileに渡すようなバッファがWriteAccess不能なメモリ領域だと言うのか?w
135 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 21:27:54 ] バッファの語源はやっぱ水牛?
136 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 21:28:26 ] シリアル通信について質問させて下さい。 通信がうまくできません。 以下は流れです。 CreateFile( "COM1", GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0 ); GetCommState(); DCBパラメータを書き換え SetCommState(); GetCommTimeouts(); タイムアウトパラメータを変更 SetCommTimeouts(); WriteFile(); // 1byteのコマンド送信準備 FlushFileBuffers(); // 送信 ReadFile(); // 1byte受信(受信できるまで10回繰り返し) 0x0Fを送れば、0xF0が返ってくるはずなのですが 何も返ってこなくて。手順的な見落としなどがあれば ご指摘頂けると幸いです。 秋月のTDS01Vというセンサーキットを自前のプログラムで 読んでみようと始めたのですが、最初から躓きました。 センサーの動作は添付のプログラムで正常動作を確認しています。 全てのAPIからはエラーは返ってきていません。
137 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 21:34:21 ] どんな引数を指定しているかも DCBの設定内容も隠してどこがいけない?と聞かれてもな・・・
138 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 21:43:23 ] >>137 申し訳ない、行数制限に引っかかったので どこを削ろうかなと。 DCBはGetした後は、キットのドキュメントにある パラメータをセットしてるつもりです。 (他はGet時のまま) m_CommDCB.BaudRate = CBR_9600; // 9600bps m_CommDCB.fBinary = TRUE; // bynary mode:always TRUE m_CommDCB.fParity = FALSE; // parity no check m_CommDCB.ByteSize = 8; // byte size m_CommDCB.Parity = NOPARITY; // no parity m_CommDCB.StopBits = ONESTOPBIT;// 1 stop bit タイムアウトはWeb上でみつかったサンプルの値を引っ張って 来ています。 m_CommTimeouts.ReadIntervalTimeout = 100; m_CommTimeouts.ReadTotalTimeoutMultiplier = 10; m_CommTimeouts.ReadTotalTimeoutConstant = 500; m_CommTimeouts.WriteTotalTimeoutMultiplier = 10; m_CommTimeouts.WriteTotalTimeoutConstant = 500; bRtn = WriteFile( m_hCommHandle, m_pTxBuff, 1, &dwCount, NULL ); FlushFileBuffers( m_hCommHandle ); dwCount = 0; for ( int i = 0; i < 10 && dwCount == 0; i++ ) { bRtn = ReadFile( m_hCommHandle, m_pRxBuff, 1, &dwCount, NULL ); // 戻り値チェックしながらリトライループ } ここで、for文が10回回って出てきてしまいます。dwCountは0のまま
139 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 21:52:46 ] bRtnは確認したの?
140 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 21:56:33 ] >>139 レスありがとうです。 上のソースは抽出でして、全てのAPIの戻り値は チェックしていて、エラーが返ってきていないことは 確認しています。
141 名前:デフォルトの名無しさん [2007/04/21(土) 00:51:40 ] >>140 はCOMポートを増設してクロスケーブルを買ってくるべきだな。 で、ケーブルで首ry
142 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 15:04:40 ] タブコントロールをEnableWindow()で無効にしても、 タブの文字が淡色表示にならないのだがそういう仕様?
143 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 15:09:15 ] そう
144 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 18:45:17 ] GRAYEDにしなさい?
145 名前:デフォルトの名無しさん [2007/04/21(土) 19:34:52 ] >>141 ワロタw まさに泣いて馬超を斬るを地でいった訳かw
146 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 20:07:28 ] CreateWindowのEDITで、文字を入力してENTERを押したときに動作を設定したいのですが、 どうすればいいのでしょうか?EDITにフォーカスがないときには出来るのですが、 EDITにフォーカスがあるときは改行されてしまいます。
147 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 20:16:09 ] サブクラス化
148 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 20:26:13 ] >>146 エディットコントロールをマルチラインに設定するのをやめる。
149 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 20:32:12 ] >>148 メッセンジャーみたいな感じで、Shift(Ctrlだったかも)+Enterで改行、 通常のEnterで別の動作みたいな感じにしたいのですが、 マルチライン設定だと無理なのでしょうか?
150 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 20:32:44 ] >>149 >>147 それが理解できないならまだ早いということ
151 名前:デフォルトの名無しさん [2007/04/22(日) 00:31:32 ] XP Homeでファイルのアクセスをプログラム側で検出することは出来ますか? Proならファイルの監査が利用できるですが。
152 名前:デフォルトの名無しさん [2007/04/22(日) 02:03:44 ] >>151 おまえのエクスプローラーはどうなってる?それが答えだ。
153 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 02:21:35 ] フォルダの変更は監視できたと思うけど。
154 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 02:22:31 ] >>151 理屈から考えて出来るはず。
155 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 06:10:46 ] 逆にpro側の監査機能が良くわからないがfilemonのようなことしたいのかな?
156 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 10:12:32 ] ReadDirectoryChangesW FILE_NOTIFY_CHANGE_LAST_ACCESS 監視中のディレクトリ、またはサブツリーで前回のファイルアクセス日時が変更されると、 変更通知の待機操作から制御が返ります。
157 名前:151 mailto:sage [2007/04/22(日) 11:11:30 ] >>152-156 レスありがとうです。 ReadDirectoryChangesWなどでは、なんらかの更新が発生しないとダメな気がします。 (今から確認します) 簡単に試してみると、メモ帳でテキストファイルを開いても"アクセス日時"が変わらないような。。。
158 名前:151 mailto:sage [2007/04/22(日) 11:14:24 ] 連投申し訳ないです。 >>155 そうですね。filemonの簡易版(最低限アクセスがあったことをトリガーにしたい)のです。
159 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 11:17:44 ] 監査かけてイベントビューアからゲット
160 名前:デフォルトの名無しさん [2007/04/22(日) 11:20:19 ] 仮想リストビューでカラム幅を調整する方法を教えてください。 リストビューは詳細表示。ダイアログは使わずにCreateWindowで作ってます。 普通のリストビューを使っていたときはヘッダとデータを全部作り終わった後に カラム数分 ListView_SetColumnWidth(ハンドル, インデックス, LVSCW_AUTOSIZE) をしていました。 仮想リストビューに変更してLVN_GETDISPINFOのときに ListView_SetColumnWidth(ハンドル, pDispInfo->item.iSubItem, LVSCW_AUTOSIZE); をやったら固まりました。 環境:VC6, SDK
161 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 11:20:59 ] >>159 最初はそうしようと思ったんだけど、XP homeって監査がないんです。
162 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 11:39:44 ] >>160 LVSCW_AUTOSIZEするためにはその列の一番長い文字列の幅が必要だから そのときにLVN_GETDISPINFOが呼ばれて無限ループになってるんじゃね?
163 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 11:55:51 ] ファイルアクセスをHOOK
164 名前:160 mailto:sage [2007/04/22(日) 12:02:08 ] LVSCW_AUTOSIZEは使えなさそうですね。 他のタイミングで幅調整するしかないか。
165 名前:151 [2007/04/22(日) 12:09:48 ] >>163 えっと、それはSetWindowsHookExを利用したHOOK機能のお話しでしょうか。 調べ切れていないかもしれませんが、ファイルアクセスに関するものは見つかりませんでした。 それとも ruffnex.oc.to/kenji/text/api_hook/ のような、概念的なフックの話で、代替DLLを用意して 起動しているプロセス全てのエントリポイントを塗り替えるお話でしょうか。
166 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 12:23:31 ] explorer.exeだけならCreateProcess系のフックで何とかなると思うけど Windows全体ってことになるとカーネルモードのお仕事になる気がする CreateProcessにしても思いつきで言ってるうえ、あまりにもスマートじゃないが
167 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 12:31:53 ] って ファイルに触る=>CreateProcess=>ファイルパスの取得 が100%成り立つって前提じゃないとだからたぶん無理か スマソ
168 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 12:39:27 ] 何らかの変更が加えられたときだけでいいならFindFirstChangeNotificationなどが使えるような気がする
169 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 12:42:40 ] >>168 >>157-158 を見てそういう話が出てくるか普通w で、その上で、ファイルの監視なんて変更が加えられた時でいいと思うんだがな 開かれたからって、なんかあるか?
170 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 12:47:20 ] >>142 だけど、どなたか淡色表示する方法教えてください。 なるべく簡単な方法で具体的だと助かります。
171 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 13:37:59 ] オーナードロー
172 名前:151 mailto:sage [2007/04/22(日) 13:47:32 ] >>169 特定ファイルへのアクセスのロギングがしたいのです。。。 やっぱり難しそうですね。
173 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 14:09:59 ] >>151 Home EditionでもUIがないだけで監査の機能自体は存在する。 したがってこのスレ的な回答は「Audit Policy関数を駆使して何とかしろ」 msdn2.microsoft.com/en-us/library/aa375742.aspx
174 名前:151 mailto:sage [2007/04/22(日) 14:30:52 ] >>173 >UIがないだけで監査の機能自体は存在する そうだったんだ! 無知でした。 解決できそうです。ありがとうございます!
175 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 14:31:06 ] ロードランナー
176 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 14:59:39 ] 初期のNTからある物をわざわざ外すわけないじゃん
177 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 15:02:18 ] ですよねー^^
178 名前:151 mailto:sage [2007/04/22(日) 15:46:42 ] うーん、LoadLibraryでadvapi32.dllを取り込んで GetProcAddressしてAuditFreeとかAuditSetSystemPolicyを見つけようとしても null返してくる。 GetLastErrorは"指定したプロシージャが見つからない(127)"でした。 >>173 のページの説明でもclientは"Requires Windows Vista."ってなっていて やっぱりXP homeでは駄目なんでしょうか。。。
179 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 17:14:55 ] >>178 すまん、Vistaでしか確認してなかった。XP以前だとこのあたり使うのかな AddAuditAccessAce (WinNT 3.1) AddAuditAccessAceEx (Win2k) AddAuditAccessObjectAce (Win2k)
180 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 17:40:38 ] >>179 ご丁寧にありがとうございます! GetProcAddressで確認できました。今からヘルプ読みます。
181 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 19:19:45 ] >>180 > GetProcAddressで確認できました。 DependencyWalkerで確認したほうが手っ取り早くね?
182 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 19:43:28 ] >>181 VCならな
183 名前:デフォルトの名無しさん [2007/04/22(日) 19:47:55 ] [Ctrl]+[A]とかをシミュレートしたいのですがどうやるんでしょうか? SendMessage(hWnd, WM_KEYDOWN, VK_CONTROL, 0); SendMessage(hWnd, WM_KEYDOWN, 'V', 0);
184 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 19:56:43 ] >>183 SendInputかkeybd_event
185 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 19:57:57 ] >>182 VCである必要はないと思うが
186 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 20:00:42 ] VC買わないと手に入らないと思ってるんじゃね? Platform SDKに付いてる。
187 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 20:05:15 ] PSDKについてくるし ttp://www.dependencywalker.com/ で単独で配布しとるぞ。
188 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 20:07:35 ] 知らんヤツの方が多いんじゃね?
189 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 20:16:56 ] ウィンドーを作らないプログラムの場合 タスクバーの右端にアイコンを追加することは出来ますか?
190 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 20:25:10 ] >>183 WM_KEYDOWNはSendMessageで送っては駄目。 PostMessageを使う必要がある。 詳しいことは、PostMessageとSendMessageの違いと TranslateMessageの働きを勉強してくれ。
191 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 20:41:47 ] >>189 出来る。ただしメッセージは受け取れない。
192 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 20:42:55 ] >>189 確かできると思うけど、非表示のウィンドウでいいから用意しとかないとイベントを受け取れんぞ。
193 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 20:44:05 ] >>189 非表示でウインドウを作ればいいだろ。 知恵が足りない。
194 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 22:52:21 ] かぶりすぎ
195 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 23:11:09 ] 98、Me、XPで動いて欲しいソフトを作っているんですけど、 始めにGetVersionExのdwMajorVersionが 10、90、1かであるかチェックすれば大丈夫でしょうか。 dwMajorVersionが同じでもdwPlatformIdが違うとかはないでしょうか。
196 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 23:18:50 ] OSVERSIONINFO msdn2.microsoft.com/en-us/library/ms724834.aspx
197 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 23:19:33 ] > dwMajorVersionが > 10、90、1かであるかチェックすれば大丈夫でしょうか Windows の Version 90 か… >>195 は未来を進んでるなぁー それはそうと↓を良く見れ。 msdn2.microsoft.com/en-us/library/ms724834.aspx
198 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 23:20:50 ] リロードしたらほんとうにかぶりすぎてて吹いた
199 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 23:21:29 ] >>195 user32.dll,kernel32.dllあたりのリンクの仕方次第では、 そんなんチェックする前にDLLのバージョン不整合で落ちるぞ。
200 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 23:29:03 ] 別次元の話だけど、俺ならまずWINVERと_WIN32_WINDOWSを0x0410にする。 それはともかく、2003/Vista及びそれ以降で動かせるようにするつもりはないのか? まあ、そのつもりがなくても互換性モードをオンにすれば動かされるだろうが。
201 名前:195 mailto:sage [2007/04/22(日) 23:39:48 ] ありがとうございます。 >>196 日本語のは見ていたんですけど、さっぱりだったもので。 >>197 90の使い方間違っていますか?下位をチェックするとかですかね。 飛びぬけて数字が大きいので違和感はあったんですけど。 >>199 VC2005で作られたソフトを実行すると、始めに**dllが 見つからないとか出て、実行できないのがありますがそれですかね。 それなら危険がない?と思うので逆にいいんですけど。 >>200 PCを持っているなら、もちろん動かせるようにしたいんですけど、 98、Me、XPしかないので、チェックのしようがないです。
202 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 23:48:37 ] >>201 > 始めに**dllが そりゃSxSだろ。manifestをちゃんと書いてやれば見つけてくれる。
203 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 23:51:01 ] >>201 いや、動作確認しなくても「保障はしないよ」くらいは言えるでしょ。 GetVersionInfoExの結果が想定していないバージョンだったら一律に実行を拒否する、なんて コードを書いているのでもない限り。
204 名前:195 mailto:sage [2007/04/23(月) 00:08:27 ] >>202 それとは違いましたか。 そちらについても勉強したいと思います。 >>203 さすがに、「98、Me、XP以外なので実行できません」 と出て終了は良くないですかね・・。 よくMSDNに9x系では○○、NT系では○○と、 分かれても2パターンである事が多いので、 それがMajor4、5であると考えると、 他のOSでもそれなりに動いてくれる気もします。 有名どころで、LoadImageはNT系でファイルから開けないとか、 タイマーの精度で9x系は55ミリ秒とかありますが、 そういうのは性能が落ちる方に合わせては作っています。
205 名前:デフォルトの名無しさん [2007/04/23(月) 00:23:14 ] ステータスバーの右下についてる SIZEGRIPのみ表示させるってできますか?
206 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 00:31:13 ] >>205 SCROLLBAR SBS_SIZEGRIP あたりでググってみ
207 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 00:34:27 ] >>204 想定より新しいバージョンのOSは、基本的に受け入れるチェックコードでないと駄目、 って昔のMSDNで見た記憶がある。 特殊なアプリで無ければ、マニュアルに動作保障OS列挙しとけば チェックコード自体要らないけどな。
208 名前:デフォルトの名無しさん [2007/04/23(月) 00:34:45 ] わかりました! ありがとう
209 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 00:39:18 ] > LoadImageはNT系でファイルから開けない 本当?MSDNには何も書いていないけど msdn2.microsoft.com/en-us/library/ms648045.aspx
210 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 01:03:56 ] ググってみたけどよく分からん。 NT4.0初期の頃に問題があってSPで修正された、ってことかなあ。 少なくとも2000以降なら問題無いはず。
211 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 01:52:19 ] DialogBoxで呼び出すCALLBACK関数に引数としてポインタを渡したいのですが 出来ますでしょうか?
212 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 01:57:03 ] >>211 DialogBoxParamを使え
213 名前:211 mailto:sage [2007/04/23(月) 02:02:13 ] >>212 こんな時間にサンクス ちょっとやってみる
214 名前:195 mailto:sage [2007/04/23(月) 05:00:50 ] >>207 なるほど、分かりました。 >>209 >>210 何年か前はLR_LOADFROMFILEはNT系では使えない となってたと思うんですけど、仰るとおり修正されたんだと思います。
215 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 07:06:13 ] >>214 その記述があったのははNT 3.51しか想定してなかったころのすごく古いMSDNライブラリ 英語版はすぐに直ったけど日本語版では長いこと説明が残ったままだった 実際にはちゃんと開ける
216 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 08:04:58 ] Win2000な俺のPCでもLR_LOADFROMFILEできてるからな
217 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 08:08:39 ] UNICODEで書かれている文字列を、strstrで操作した場合、不具合は起きますか? (strcatならlstrcatのようにUNICODEに対応する関数があるのですが、strstrには lstrstrが無いようなのです)
218 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 08:45:50 ] strsafe.h で追加された文字列操作関数について ir9.jp/prog/ayu/strsafe.htm
219 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 09:15:34 ] わかりました! ありがとう
220 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 09:24:43 ] >>218 UNICODE対応のstrstrが載っていないようなんですけども、strsafe.hの中の関数を使って 自分で作成するのでしょうか??
221 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 10:02:21 ] API関係ないな
222 名前:217 mailto:sage [2007/04/23(月) 10:33:37 ] 自己解決(?) ぐぐったらUNICODE←→ANSI変換APIが出て来た・・・ なんか面倒な事に・・・
223 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 10:36:52 ] win32apiじゃなくていいなら、wcsstr とかなかったっけ?
224 名前:デフォルトの名無しさん [2007/04/23(月) 11:35:15 ] RECT wndrc; wndrc.top = 0; wndrc.bottom = 100; wndrc.left = 0; wndrc.right = 100; int x = wndrc.left; int y = wndrc.top; int w = wndrc.right - wndrc.left; int h = wndrc.bottom - wndrc.top; hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, x, y, w, h, NULL, NULL, hInstance, NULL); if (!hWnd) return FALSE; RECT rc; if( ::GetWindowRect( hWnd, &rc ) ) { if( rc.top == wndrc.top && rc.left == wndrc.left && rc.bottom == wndrc.bottom && rc.right == wndrc.right ) {} else { ::MessageBox( 0, "ウィンドウサイズが違います", "?", 0 ); } } VC.net2003のwin32のデフォルトで作られるプログラムで CreateWindowの所を上記の様に変更しました。 そしたら自分の想定していた rc.riight == 100 と反して rc.right == 112 になっていました。 何故ウィンドウの幅がcreatewindowで指定した値と12も違うんでしょうか? ちなみにウィンドウプロシージャ等は一切変更していません。
225 名前:デフォルトの名無しさん [2007/04/23(月) 13:56:40 ] >>183 なるほど。 Postの方で正しく送れました。 ありがとうございました。 >>>>184 SendInputでちょっと下の様に 「A」を入力しるプログラムを書いて実行してみました。 全角入力がONになるみたいなんですが、最後の「変換」の決定(Enterですよね?)の所まで 自動化したい場合はどうすればいいのでしょう? 下のプログラムだと、決定という意味でのEnterは認識されないみたいです… INPUT inputKey[3]; inputKey[0].type = INPUT_KEYBOARD; inputKey[0].ki.wVk = 0; inputKey[0].ki.wScan = 'A'; inputKey[0].ki.dwFlags = KEYEVENTF_UNICODE; inputKey[0].ki.dwExtraInfo = 0; inputKey[0].ki.time = 0; inputKey[1].type = INPUT_KEYBOARD; inputKey[1].ki.wVk = VK_RETURN; inputKey[1].ki.wScan = MapVirtualKey(VK_RETURN, 0); inputKey[1].ki.dwFlags = 0; inputKey[1].ki.dwExtraInfo = 0; inputKey[1].ki.time = 0; inputKey[2] = inputKey[1]; inputKey[2].ki.dwFlags = KEYEVENTF_KEYUP; SendInput(3, inputKey, sizeof(INPUT));
226 名前:デフォルトの名無しさん [2007/04/23(月) 18:01:42 ] スクロールバーのサイズを、画面のプロパティで設定した値ではなくアプリ側で 任意に設定する方法はありませんか? 後、Vistaのスクロールバーのデフォルト値を教えてください。
227 名前:224 mailto:sage [2007/04/23(月) 19:15:41 ] タイトルバーが100に収まりきらなかったのが原因ですた。スマソ。
228 名前:デフォルトの名無しさん [2007/04/24(火) 15:48:40 ] Vistaのように右端に表示領域を確保して、その分デスクトップの作業領域を小さくしたいんですけど、どのように実装したらイイでしょうか。 (他のソフトのウィンドウ表示を最大化にしても、右端に確保した領域にかぶらないようにしたい) 以上です、よろしくお願いいたします。
229 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 16:37:32 ] AppBarのことか? SHAppBarMessageでググってみ
230 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 16:38:05 ] >>228 OSが分からないと何とも言えないけど、Application Desktop Toolbarsじゃ駄目?
231 名前:デフォルトの名無しさん [2007/04/24(火) 18:01:09 ] 複数ウィンドウを作成したい場合は どうすればいいのでしょうか
232 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 18:10:10 ] 単数ウィンドウを作るのと同じ手法を複数回繰り返してください。
233 名前:デフォルトの名無しさん [2007/04/24(火) 19:36:59 ] >>232 なるほど ありがとうございました! (^O^) あと複数の親ウィンドウをIDの用に管理する方法はあるでしょうか
234 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 20:23:13 ] もどってくるHWNDで判るだろ?
235 名前:デフォルトの名無しさん mailto:sage [2007/04/24(火) 20:55:13 ] なんか涙でてきた
236 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 02:20:33 ] ところで、Win32APIってなんですか?
237 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 02:51:51 ] なんかいろんなものでてきた
238 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 04:55:21 ] そういうことして楽しいと思ってるの?
239 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 05:04:35 ] CreateWindow(TEXT("EDIT") , TEXT("文字") , WS_CHILD | WS_VISIBLE | WS_BORDER | ES_LEFT, 248 , 40 , 45 , 22 , hwnd , (HMENU)0 , ((LPCREATESTRUCT)(lp))->hInstance , NULL); このエディットコントロールに表示される“文字”のフォントのサイズを小さくすることは出来るのでしょうか? あと、SendMessage(hEdit, ES_READONLY, 0, 0);みたいな感じで、 目的のエディットコントロールを読み専用に変えたいのですが、↑のだと上手くいきません。 どうすればいいのでしょうか?
240 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 05:24:29 ] フォント設定はWM_SETFONTかEM_SETFONTSIZE使う 読み専用のES_READONLYのES はEDITSTYLEのことであってメッセージではない EM_SETREADONLYをSendMessageに渡す
241 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 07:35:47 ] >>240 WM_SETFONTの方は少してこずりましたが、無事出来ました。 ありがとうございました。
242 名前:デフォルトの名無しさん [2007/04/25(水) 08:15:08 ] ウインドウハンドルをhashtableみたいな構造に突っ込みたいのですが、 一意のキーとすべき値は何を使えばいいでしょうか。 hashtableは文字列をキーとして、値はポインタを渡すようにしています。 put(char* key, void* value)みたいにです。 ウインドウハンドルで一意となる値を文字列としてキーとして使いたいのです。 あとからウインドウハンドルからhashtable経由で値をとりたいからです。 ウインドウハンドルにはunsetという内容が入っているみたいですが、 つかうなと書いてあるWebサイトもあってどうしていいかわかりません。
243 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 08:22:01 ] 文字列じゃなくてHWNDをキーに使えばいいだろ。 どうしても文字列にしたければHWNDの値自体を文字列に変換するとか、 なんでその程度の知恵が無いんだ?
244 名前:242 [2007/04/25(水) 09:19:29 ] >>243 回答、ありがとう。 HWNDの値自体とはアドレスのことをいっていますか?unsetの値自体をいっていますか?
245 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 09:57:34 ] HWNDの値と言ったらHWNDの値だろ、アホかw
246 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 10:03:35 ] class Hashtable { put(char* key, void* value); }; HWND hWnd = GetWindow(hogehog); Hashtable h; h.put((char*)hWnd, (void*)GetTitle(hWnd));
247 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 10:21:47 ] いやいやいや
248 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 10:23:16 ] キーに文字列しか使えない環境なら、sprintf とかでHWNDの数値を文字列にするとか
249 名前:デフォルトの名無しさん [2007/04/25(水) 11:12:27 ] GetOpenFileNameでフラグにOFN_ALLOWMULTISELECT|OFN_EXPLORERを指定したとき、 選択したファイルの順序を逆に並べる方法は無いでしょうか? 現状、最後に選択したファイルが先頭に挿入されるようで、 これを最後に付加するようにしたいのです。 (アプリ側で逆にたどることは可能ですが、GetOpenFileName操作時の ファイル名テキストボックスの見た目を前後逆にしたい) 環境はXPSP2です。よろしくお願いします。
250 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 13:03:38 ] >>249 OFN_ENABLEHOOKでどうにかするしかないんじゃないかなぁ
251 名前:242 [2007/04/25(水) 14:22:33 ] >>245-246 >>248 HWNDって、winnt.hで以下のように定義されているんですが、 int unusedをもつ構造体へのポインタではないんでしょうか? #define DECLARE_HANDLE(name) struct name##__{int unused;}; typedef struct name##__ *name HWNDを文字列にしたらアドレスが文字列としてとれるんだと思っているんですが、 間違えていますか?
252 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 14:45:22 ] 壮絶に違う HWND ポインタの中身(大きさも含む)は謎 つか >>248 でいいじゃん 書かないとわからん? sprintf(buf, "%p", hwnd); とすれば? ってことだ
253 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 15:08:02 ] デスクトップやコントロールパネルなどの 主要なシェルフォルダを指すGUIDのリストってどこかにないでしょうか?
254 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 15:52:11 ] >>253 レジストリ
255 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 16:12:40 ] >>253 に便乗だけど マイコンピュータとかコントロールパネルとかかもしれないpIDLがあるとき CLSIDみたいな::{...}に変換する術ってないすか?
256 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 16:38:02 ] SHGDN_FORPARSING
257 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 16:45:20 ] >>250 ありがとうございます。調べてみます。
258 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 17:08:15 ] サブクラスを使って、エディットコントロール内でEnterキーを押したら メッセージボックスを出すようにしているのですが、その後、 エディットコントロール内で改行されてしまいます。 Enterを押したときにメッセージボックスだけを出して、 その後改行しないようにするにはどうすればいいのでしょうか?
259 名前:242 [2007/04/25(水) 17:17:16 ] >>252 つきあってくれてありがとう。 sprintf(buf, "%p", hwnd); ってやるとbufにはhwndのアドレスが入るとおもってるんですが間違いですか? アドレスって再利用されて一意ではない気がするんです。
260 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 17:33:12 BE:69876566-2BP(222)] >>259 >ってやるとbufにはhwndのアドレスが入るとおもってるんですが間違いですか? 間違いです。何のためのハンドルかと。
261 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 17:34:45 ] エクスプローラもどきを作っています。 現在、アイコンをGetIconOfで取得しているのですが こいつは該当フォルダの中のアイテムのアイコンしか取得できず、 デスクトップ自身のアイコンを取得することができません。 何か良い方法があれば教えてください。
262 名前:228 [2007/04/25(水) 17:35:02 ] >229さん、230さん レスありがとうございました。 頂いた情報で実装出来そうです、ありがとうございます。
263 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 17:35:24 ] そもそもハンドルはポインタじゃないから、中身を気にしてはならんと思うんだが。
264 名前:242 [2007/04/25(水) 18:23:07 ] >>260 >>263 考えてみました。 ハンドル=構造体へのポインタと勘違いしていました。 付き合ってくれた方、ありがとう。というか、すんませんでした。
265 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 18:28:23 BE:67935757-2BP(222)] ハンドルが構造体へのポインタとして実装されていたとしても、わざわざ「ハンドル」 と読んでいるのは何のためなのかと。
266 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 18:31:33 ] >>258 をお願いします・・・m(_ _)m
267 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 18:47:48 ] >>258 Enterキーを処理した後、EDIT本来のプロシージャに処理回してない?
268 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 18:53:30 ] >>267 エディットコントロールのプロシージャの最後は return CallWindowProc(DefInProc, hwnd, msg, wp, lp); にしてます。これをどうすればいいのでしょうか・・・ return 0;とかにしてもエディットコントロール自体が消えてしまいます;;
269 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 19:02:14 ] >>267 Enterキーの時だけ、プロシージャに処理を渡さないようにすればいい
270 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 19:02:28 ] >>268 >Enterキーを処理した後
271 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 19:07:28 ] SubclassProc(hwnd, msg, wparam, lparam) { switch(msg) { case WM_KEYDOWN: if(wparam == VK_RETURN) { (処理) return; // DefWindowProc()いらない } } } こういうことか?リターンキーの時だけ弾ければいいってこと?
272 名前:258 mailto:sage [2007/04/25(水) 19:07:29 ] プロシージャはこんな感じになってます。処理の後はreturn 0;にしてますが やはり改行されてしまいます・・・ LRESULT CALLBACK InProc(HWND hwnd , UINT msg , WPARAM wp , LPARAM lp) { switch(msg) { case WM_KEYDOWN: if(wp==VK_SHIFT){ shift_flag = 1; }else if (wp == VK_RETURN && shift_flag==0) { MessageBox(hwnd, "ENTER", "ENTER", MB_OK); }else if (wp == VK_RETURN && shift_flag==0) { MessageBox(hwnd, "Shift+ENTER", "Shift+ENTER", MB_OK); } return 0; case WM_KEYUP: if(wp==VK_SHIFT){ shift_flag = 0; } return 0; } return CallWindowProc(DefInProc , hwnd , msg , wp , lp); }
273 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 19:15:58 ] WM_CHAR
274 名前:258 mailto:sage [2007/04/25(水) 19:29:27 ] WM_CHARにしてみたら文字の入力すら出来なくなったのですが・・・;; きっと基本的なことなのでしょうけど、何時間も止まってると泣きたくなってくる・・・
275 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 19:31:19 ] そりゃそうだよなぁ。
276 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 19:37:31 ] >>258 if文をよ〜く見直してみろEnterキー以外もトラップしてるぞ
277 名前:258 mailto:sage [2007/04/25(水) 19:45:58 ] >>276 Shiftの事でしょうか?Shift全部はずして、単純にif(wp==VK_RETRUN){}にしても やはり同じ結果になりました。これは一体何がどうあghwrへあぃtjr
278 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 19:47:44 ] >>277 トラップしないキーはreturn 0;しないでデフォルトプロシージャに渡すのだ。
279 名前:258 mailto:sage [2007/04/25(水) 19:54:15 ] >>278 こういう事でしょうか? LRESULT CALLBACK InProc(HWND hwnd , UINT msg , WPARAM wp , LPARAM lp) { switch(msg) { case WM_KEYDOWN: if (wp == VK_RETURN) { MessageBox(hwnd, "ENTER", "ENTER", MB_OK); return 0; } return CallWindowProc(DefInProc , hwnd , msg , wp , lp); }
280 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 19:55:15 ] >>279 それをWM_CHARでやる
281 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 20:00:15 ] できました みなさま本当にありがとうございました
282 名前:258 mailto:sage [2007/04/25(水) 20:02:42 ] いえ、出来てません。文字の入力すら出来ないのですが・・・ LRESULT CALLBACK InProc(HWND hwnd , UINT msg , WPARAM wp , LPARAM lp) { switch(msg) { case WM_CHAR: if (wp == VK_RETURN) { MessageBox(hwnd, "ENTER", "ENTER", MB_OK); return 0; } return CallWindowProc(DefInProc , hwnd , msg , wp , lp); }
283 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 20:10:21 ] >>258 メッセージループのところにTranslateMessage(&msg);はあるか? // メッセージループ MSG msg; while(GetMessage(&msg, NULL, NULL, NULL)) { TranslateMessage(&msg); DispatchMessage(&msg); }
284 名前:258 mailto:sage [2007/04/25(水) 20:15:53 ] 出来ましたあああああああああ;; caseの終わるところをreturn 0からbreak;に直したら出来ました;; WM_CHARで捕まえて、全部return0にしてたせいで入力されないようになってたみたいです。。。 ありがとうございました
285 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 20:25:41 ] >>279 ,282のプロシージャ { }の対応がおかしい気がするんだが・・・?
286 名前:デフォルトの名無しさん [2007/04/25(水) 21:28:59 ] このような関数で、ドライブごとまるまるコピーしたいのですが、 BOOL CopyDirectory(LPCTSTR From, LPCTSTR To) { SHFILEOPSTRUCT TSHFileOpStruct; ZeroMemory(&TSHFileOpStruct,sizeof(SHFILEOPSTRUCT)); MessageBox(NULL, From, To, MB_OK); //構造体の初期設定 TSHFileOpStruct.hwnd = NULL; // 親ウインドウのハンドル TSHFileOpStruct.wFunc = FO_COPY; // フラグ TSHFileOpStruct.pFrom = From + NULL+ NULL; // 対象元パス TSHFileOpStruct.pTo = To + NULL+ NULL; // 対象先パス TSHFileOpStruct.fFlags = FOF_NOCONFIRMATION | FOF_NOCONFIRMMKDIR; //フラグ //実行する if(SHFileOperation(&TSHFileOpStruct) != 0){ return FALSE; } if(TSHFileOpStruct.fAnyOperationsAborted == TRUE){ return FALSE; } return TRUE; } CopyDirectory("H:\\test", "C:\\test") だと成功するのですが CopyDirectory("H:\\", "C:\\test") だと失敗します。 ドライブの中身をまるまるコピーすることはできないのでしょうか? 初歩的な質問かもしれませんが、よろしくお願い致します。
287 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 21:44:32 ] pFromはあくまでもファイル名を指定するためのバッファらしいので "H:\\*"みたいにワイルドカードを使うってのはダメ?
288 名前:デフォルトの名無しさん [2007/04/25(水) 21:50:56 ] >>287 教えていただいた方法で解決できました! 結構長い間ひっかかっていたので、助かりました。 ありがとうございました。
289 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 22:40:16 ] GUIアプリからコンソール用のアプリを影で動かし(て、その結果をエディタに送り)たいんですけど そういうAPIってありますか?
290 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 22:44:12 ] はぁ?
291 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 22:44:51 ] 無い はい次
292 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 22:44:55 ] あります
293 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 22:51:38 ] ありますが、 はい次
294 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 22:52:22 ] APIに関係することか、わかりませんがお願いします。 自己解凍書式によくあるような > copy /b hoge.exe + datafile でつくった hoge.exe から datafile の中身を取る プログラムを作りたいのですがやり方を教えて頂けないでしょうか?
295 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 22:53:39 ] *** main(char**arg,int argl) ...................................................
296 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 22:59:30 ] >>294 「リソース」をキーワードに基本から勉強しなおしなさい
297 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 23:10:47 ] copyで連結したものをリソースとして扱えるか? 俺にはイメージヘッダからイメージサイズを見て、 それを元にdataの先頭領域を求める方法になる気がする。 違ったらすまん
298 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 23:13:51 ] copy /b hoge.exe + datafile + datafilesize
299 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 23:15:52 ] ぐぐってみたらこういう方法だそうです プログラムに4バイトのリソースを埋め込む。 そのリソースを読み込んでその値だけ、読み飛ばして自分自身を解凍するプログラムを作る。 何らかの手段で4バイトのリソースに自己解凍プログラムのサイズを書き込む。 自己解凍プログラムの後ろに実際のデータを書き込む。
300 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 23:18:20 ] かなりコンパイラ依存な質問ですが・・・ FindNextFileがVisual C++ 6.0でちゃんと動くのにGCC(gcc version 3.4.5 (mingw special))でちゃんと動きませんorz www.uploda.net/cgi/uploader4/index.php?file_id=0000012569.zip test_findfile.c ソース test_findfile_gcc.exe GCCでコンパイルしたもの test_findfile_vc6.exe VC++6.0でコンパイルしたもの VC++6.0でコンパイルしたものは、ちゃんと2つ目以降に見つかったファイルを表示します。 しかしGCCでコンパイルしたものは最初の1つ目しか表示しません。 MSDN見ても解決方法わからないし・・・
301 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 23:24:41 ] >>289 名前なしパイプを使ってリダイレクト。 CreatePipe, DuplicateHandle, CreateProcess(STARTF_USESTDHANDLESがヒント), PeekNamedPipe, ReadFileなどの関数を使う。 待機関数を使ったプロセスの終了判定と、 PeekNamedPipeとReadFileの順序を巧く管理しないと止まるので注意。 じゃぁ、約束のおっぱいをうpしてね
302 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 23:26:03 ] (・) (・)
303 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 23:29:15 ] D / ∩___∩ \_WW/ ・ ≪ | ノ ヽ ≫ D ≪ V ≪ / ● ● | ≫ ・ ≪ ・ ≪ | ///( _●_)//ミ ≫V ≪ D ≪ 彡、 |∪| 、`\ ≫ ・ ≪ ! ≪ / \ ヽノ /_> / ≫ D ≪ ≪ \| ・ ・ / / ≫ ! ≪ MMM\ | / ̄ /MMM\ | /\ \ | / ) ) ∪ ( \ \_)
304 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 23:30:10 ] >>300 ワイルドカード絡みなのかな? 下のコードをそれぞれのコンパイラでコンパイルして 「ちゃんと動かない」ときの引数を与えて比較してみればおk #include <stdio.h> int main(int argc, char *argv[]) { int i; for(i=1;i<argc;i++) printf("argv[%d]=%s\n", i, argv[i]); return 0; }
305 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 23:31:01 ] ところでDVDってドメスティックバイオレンスオブダイナミカルなの?
306 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 23:32:05 ] >>300 どのディレクトリに対して実行しても結果は同じですか?
307 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 23:35:58 ] >>300 OSは?
308 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 23:36:35 ] >>300 c:\directory\* c:\\directory\\* じゃねーの?
309 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 23:38:01 ] >>300 ワイルドカードが展開されてるんだろ
310 名前:デフォルトの名無しさん [2007/04/25(水) 23:41:24 ] 見た感じFindNextFileが必ずゼロを返してるような動き。 一個だけ正しく見つけてあとはサヨウナラだな。
311 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 23:43:54 ] FindFirstFile に渡される引数の内容(argv[1]) が違うから 表示させてみれば疑問は解決するはず
312 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 23:46:35 ] そこで、ダブルクォーテーションですよ
313 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 00:24:23 ] >>300 GCCに付属してるCRT_noglob.oをリンクすると解決するお 海外での似た質問と解凍: www.cygwin.com/ml/cygwin/1998-11/msg00165.html www.cygwin.com/ml/cygwin/1998-11/msg00235.html
314 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 00:48:10 ] ぼ・・・僕ハッカー
315 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 09:54:11 ] WTLでCToolBarCtrlを使ってツールバーを作っています。 manifestを指定してXPスタイルにしているのですが、 そうするとアイコンサイズと比べ、ボタンサイズが大きくなりすぎてしまいます。 どうしても小さくしたいのですが、SetButtonSizeを指定しても無視されてしまい 自動でサイズが決定されてしまいます。 ボタンのサイズを小さくしたいのですが、どうすればできますか。
316 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 10:07:41 ] ビットマップを印刷する処理でカラープリンタに出力するとおk、なんですが、 白黒プリンタに印刷すると真っ黒画面(プリンタドライバのメモリ不足でよくおきるヤシ)となります。 Win32APIで、印刷時にビットマップを描くとき、白黒プリンタを意識する指定ってありましたっけ?
317 名前:デフォルトの名無しさん [2007/04/26(木) 10:09:59 ] ShellExecuteで起動したソフトが起動しきったかどうかを確認する方法を教えてください
318 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 10:14:26 ] 起動しきった、の定義は? メッセージループが回りだしたでいいのかな
319 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 10:28:17 ] CreateProcessのほうがいいかもね
320 名前:デフォルトの名無しさん [2007/04/26(木) 10:34:52 ] >>318 起動してから表示されるまでに時間がかかるソフトがあるので 画面が表示されたらと思っていました。 >>319 ShellExecuteよりShellExecuteExのインスタンスハンドルで何とかなりそうでしょうか?
321 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 10:39:08 ] 316もヨロ
322 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 10:43:13 ] >>317 FindWindow
323 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 10:44:44 ] >>320 ShellExecuteはシェルに命令投げるだけなので実際の起動処理は全部シェルがやる。 だからShellExecuteで起動したプロセスの処理を監視するならフックとかの回り道が必要になるし、 CreateProcessに比べて面倒極まりないから>>319 の言うとおり 起動したプロセスの監視をしたいならCreateProcessがよろし。
324 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 10:48:44 ] >>316 正解なのかどうなのかわからんが… printerなDCに直接 StretchBlt したときに真っ黒出力されたことがあった。 printer と同じ解像度のメモリDCに一旦StretchBlt して、 そのメモリDCをprinterなDCに BitBlt で回避できた
325 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 10:52:13 ] >>317 ShellExecuteExでfMaskにSEE_MASK_NOCLOSEPROCESSを指定すると 起動したプロセスのハンドルがhProcessに返されるので WaitForInputIdleを呼べばいいかと。
326 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 10:55:40 ] >>316 GetDeviceCapsで出力APIがサポートされているか調べるとか・・・かな
327 名前:デフォルトの名無しさん [2007/04/26(木) 10:57:36 ] >>322 予めタイトルとクラス名がわかってればいいんですけどね >>323 CreateProcessですとPROCESS_INFORMATION構造体のhProcessハンドルで 状態をみるとおもうのですが、どのAPIで状態を確認することができるのでしょうか?
328 名前:316 mailto:sage [2007/04/26(木) 10:59:45 ] サンクス>>324 >>326 そう、その辺りの話ですよね。 自分も、StrechBlt → BitBlt → StretchDrawDIB と変えてきて、 あーこれで解決したーと思ってたんですが、 カラービデオプリンターはおk、白黒ビデオプリンターで真っ黒、見たいな現象。 >GetDeviceCapsで出力APIがサポートされているか調べるとか・・・かな kwsk StrechDrawDIBが動作しないとか???
329 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 11:02:13 ] 白がちゃんとした白じゃないから黒くなるのでは StrechBltMode変えたら
330 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 11:05:53 ] >>328 GetDeviceCapsでRASTERCAPS調べて RC_STRETCHBLTビットが立ってれば、 StreathBltを使って良いとか、そういう話し あと、StretchDrawDIBってMSDNにはないけど・・・? ググっても、自作っぽい関数にしか引っかからないぞw
331 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 11:24:47 ] >>327 >>325
332 名前:316 mailto:sage [2007/04/26(木) 11:26:43 ] ラジャー>>329 やってみます。あ、でもプリンタ使えるの昼から。 ゴメンナサイ>>330 実体はこれです。 ↓ procedure TBitmapPrinter.StretchDrawDIB(Canvas: TCanvas; r: TRect); var OldMode: Integer; // StretchMode のセーブ begin OldMode := SetStretchBltMode(Canvas.Handle, COLORONCOLOR); StretchDIBits(Canvas.Handle, r.Left, r.Top, r.Right - r.Left, r.Bottom - r.Top, 0, 0, BitmapInfo^.bmiHeader.biWidth, BitmapInfo^.bmiHeader.biHeight, ImagePtr, BitmapInfo^, DIB_RGB_COLORS, SRCCOPY); SetStretchBltMode(Canvas.Handle, OldMode); end;
333 名前:デフォルトの名無しさん [2007/04/26(木) 11:29:35 ] >>331 すみません、見落としてました・・・ >>325 ありがとうございます。 それでちゃんとできました。
334 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 12:16:27 ] >>333 WaitForInputIdleはコンソール不可なので注意ね。
335 名前:316 mailto:sage [2007/04/26(木) 12:21:16 ] つまり、 >OldMode := SetStretchBltMode(Canvas.Handle, COLORONCOLOR); を、 COLONCOLORから変えればよいんだ。 BLACKONWHITEとWHITEONBLACKって何で2つもあるよ。。。
336 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 12:25:35 ] >>335 >BLACKONWHITEとWHITEONBLACKって何で2つもあるよ。。。 ANDとORの違い。
337 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 12:26:51 ] >ANDとORの違い。 普通の印刷ではどちらを使うんですか?
338 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 12:32:03 ] >>337 普通の印刷はどうかしりませんが、 BLACKONWHITEは 0 & 1 = 0で黒が残る WHITEONBLACKは 0 | 1 = 1で白が残る ただそれだけ。
339 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 12:37:49 ] まあ両方やってみればわかる モノクロビットマップにStrechBltして画面表示してみるのもいいかもな
340 名前:デフォルトの名無しさん [2007/04/26(木) 13:21:11 ] >>334 了解しました! ありがとうございます!!
341 名前:デフォルトの名無しさん [2007/04/26(木) 15:39:58 ] あるウィンドウを親として、新たに作った子ウィンドウを貼り付けたい(親側をドラッグすると、子ウィンドウもそれに追随するような)のですが、どのように実装したらよいかアドバイスいただけませんでしょうか。 よろしくお願いいたします。
342 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 15:41:52 ] CreateWindowでWS_CHILD
343 名前:316 mailto:sage [2007/04/26(木) 16:22:55 ] SetStretchBltModeは関係無いみたいです。 真っ黒に出たり、ちゃんと出たり、不安定。
344 名前:316 mailto:sage [2007/04/26(木) 16:53:35 ] 連続印刷した場合に、真っ黒になります。
345 名前:316 mailto:sage [2007/04/26(木) 16:57:43 ] 連続投稿すみません。 自アプリが印刷した結果がWinのスプールにまだ残っているかどうか、判断する方法はありますか?
346 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 17:18:50 ] 具体的にそうなるコードを出してみては そもそも真っ黒になるのはプログラムが悪いんだから
347 名前:316 mailto:sage [2007/04/26(木) 17:30:29 ] 自己解決しました、お騒がせしてすみません。
348 名前:316 mailto:sage [2007/04/26(木) 18:30:21 ] 347は偽者です。 コードは332です。
349 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 18:46:54 ] >>348 >>332 には、印刷時のページ更新とかないだろ
350 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 19:51:02 ] StartPageしたあとに毎回SetStretchBltModeしてない とかいう落ちか?
351 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 22:30:22 ] いままでの流れ。 >>あーや ・質問 ビットマップを印刷する処理で カラープリンタ→出力おk 白黒プリンタ→真っ黒画面 なんで? >>324 → あーや プリンタのDCに直接StretchBltした時、真っ黒出力経験あり。 キャッシュDCを作成してStretchBlt→BitBltの提案。 >>326 → あーや GetDeviceCapsでプリンタ能力も調べろと提案。 >>あーや >>324 の方法でカラーはおk。白黒プリンターはやっぱりダメ。 >>326 のいうGetDeviceCapsに初耳。 >>329 → あーや 白≒黒より、StrechBltModeの設定を推測。 >>330 → あーや GetDeviceCapsのRC_STRETCHBLTフラグの意味を教える。
352 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 22:30:53 ] (つづき) >>あーや → 329 昼飯はトンカツ定食にしようか悩みつつ返信。 >>あーや → 330 GetDeviceCapsを理解。 お昼だけにソースをさらしてみる。 >>あーや SetStretchBltModeのBLACKONWHITEとWHITEONBLACK気付く。 なお、ここで返信した336,338,339は、実は奇遇にも同じ町内。 >>あーや とりあえず、カラープリンタ、白黒プリンタ出力おkっぽいが、 連続印刷した場合、白黒プリンタがやっぱりダメ。 なぜか、StrechBltModeは関係ないと断定。 そして、あーやの興味はスプールへ・・・ >>あーや → 347 少しカチンと来る。 >>349-350 解答発表?
353 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 01:55:35 ] ダイアログボックスを作って、初期のフォーカスをダイアログボックス内のエディットコントロールに SetForcusで配置したいのですが、ダイアログボックス内のエディットコントロールのハンドルが 分からないので出来ません。というよりも、ダイアログボックス内のウィンドウにはどのように ハンドルをつければいいのでしょうか?
354 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 02:14:25 ] GetDlgItem
355 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 02:21:49 ] ダイアログベースでBS_DEFPUSHBUTTONを指定すると 「Enter」を押した時、ボタンを押下できるけど普通にリソースを 使わず(CreateWindow等)で作成したボタンに対して「Enter」は反応を 示さないんだけど。これはどうやって解決すればいいんでしょうか? 因みに「Enter」に反応するのはIDOKでそれ使ってもいいんですが、 できれば自分が指定したコントロールIDに変更できればいいなと思って 探してDM_SETDEFIDなるものを発見してSendMessage使って試したんだけど やっぱりうまくいかなかった。これはダイアログにしか通用しないのかな。 因みにSendMessageはこんな感じ(WM_CREATE内で使ってる) SendMessage(hWnd, DM_SETDEFID, (WPARAM)ID_CONTROL, 0L);
356 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 03:20:26 ] >>354 ありがとうございました。無事フォーカス設定することができました。 しかし、エディットコントロールにフォーカスを持っていったら何故か ボタンをクリックしても動作しないようになりました(Enterキーでは動作する)。 フォーカス外すと普通にボタンの機能は復活します。これは何が原因なのでしょうか?
357 名前:デフォルトの名無しさん [2007/04/27(金) 08:01:56 ] 付箋紙ソフトのように、たくさんのウィンドウを表示してもタスクバーに何も表示されないようにするには どうしたらいいのでしょうか?
358 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 08:03:22 ] >>356 Enterキー以外の処理(else側)はスルーしてるんじゃないの?
359 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 08:05:06 ] >>357 いろいろ手法はあるけど? 統括管理ソフトを、時計横のタスクバーに駐在させるとか・・・ 想定するターゲットを詳しく
360 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 08:07:38 ] >>357 っ不可視の親Window っWS_POPUP
361 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 08:12:02 ] >>359 ー360 試してみます!
362 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 08:29:07 ] >>355 IsDialogMessageは?
363 名前:355 mailto:sage [2007/04/27(金) 12:23:56 ] >>362 ダイアログでの作成じゃない場合(メインウィンドウ)の 時どうやってダイアログと同じように実現すればいいのかを知りたい。
364 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 12:41:48 ] ウィンドウプロシージャでEnterキーをトラップすりゃいいんじゃねぇの?
365 名前:355 mailto:sage [2007/04/27(金) 12:43:36 ] やっぱそれしかないのかな。 IDOKはデフォルトでEnter拾ってくるから そのIDOKの設定を別IDに変更できるんじゃないかと思ってたんだが
366 名前:355 mailto:sage [2007/04/27(金) 12:44:47 ] 因みにDM_GETDEFIDやDM_GETDEFIDはダイアログプロシージャにしか 意味無いんだよね?普通にメインウィンドウでやっても何の効果もなかったから
367 名前:デフォルトの名無しさん [2007/04/27(金) 14:03:22 ] 342さんレスありがとうございます。 >342 CreateWindowでWS_CHILD 試してみたんですが、うまくいかず色々調べていたら、 親のウィンドウの拡張アトリビュートに「WS_EX_LAYERED」が立ってました、 このフラグを消すと正しく動くことからこのフラグが問題かと思うのですが、 「WS_EX_LAYERED」が立ってるウィンドウに対し「WS_CHILD」のような子ウィンドウを作ることは出来ませんでしょうか 重ね重ね申し訳ございませんが、よろしくお願いいたします。
368 名前:デフォルトの名無しさん [2007/04/27(金) 16:49:28 ] 仕様書嫁
369 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 16:58:05 ] そもそも正しく動く、動かないとはどういうことか
370 名前:316 mailto:sage [2007/04/27(金) 17:13:14 ] PCのメモリを1ギガにしたら解決しました。 フォトプリンタってのは、普通のプリンタよりメモリを食うものなんでしょうか。 それからStrechBltModeは無意味というか無関係ですね。 プリンタドライバも流石にStrechBltModeが間違っててもエラーを起こさないようにしてんじゃないですか? >>>あーや → 347 > 少しカチンと来る。 ↑ だから347はニセモノです。
371 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 17:15:51 ] ニセモノが出るって事は、キミのやりとりに問題があるってことだよ
372 名前:デフォルトの名無しさん [2007/04/27(金) 18:12:50 ] 質問があります。 UNICODE版のプログラムを作成していますが、 部分的にANSI版のAPIを使用したい箇所があります。 それで関数名の後に直接”CreateWindowA”みたいにAとかWを付けると ANSI UNICODEの呼び出しの切り替えができるようなことが本に書かれて いるのですが、直接Aをつけても関数がみつからないとコンパイラから エラーがでます。 教えてください。よろしくお願いします。
373 名前:372 [2007/04/27(金) 18:17:30 ] includeファイルの位置変更したら解決しました. アホな質問してすみませんでした
374 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 18:27:18 ] >>363 IsDialogMessageは、ダイアログでない普通のウィンドウも対象にできる。
375 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 20:10:24 ] >>370 >PCのメモリを1ギガにしたら解決しました。 その場しのぎとしてはセーフだが、 調査したほうが良いよ。 ドライバのver upで能力差とか、 ソースのメモリDC解放してないとか、 どっかで使いまわしているとか、 BitBltを使った初期化(WHITENESS、BLACKNESS)とか ビットマップをダンプしてみるとか・・・
376 名前:371 mailto:sage [2007/04/27(金) 21:54:30 ]
377 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 23:30:08 ] WH_KEYBOARD_LLはコマンドプロンプトに通用するですか?
378 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 00:40:51 ] >>377 cmd.exeでDOS窓を開いたときの動作の話なら、通用した(今試した)
379 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 08:10:27 ] とん
380 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 08:26:04 ] こつ
381 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 11:09:22 ] フォルダのデフォルトのアイコンって取得できますか?
382 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 11:10:15 ] はい
383 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 11:23:52 ] >>382 教えてくれよん
384 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 11:30:47 ] >>381 みたいな聞き方をするからBOOLで返されちゃうんだよ
385 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 11:44:05 ] >>381 に対する一番正確な答えになっているしな。
386 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 12:14:18 ] 自己解決したような気がします SHGetFileInfo と SHGFI_SYSICONINDEXあたりすか
387 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 12:43:05 ] >>372 CreateWindowはCreateWindowExのマクロに過ぎないので CreateWindowExAにする必要がある
388 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 13:06:45 ] >>381 に便乗質問だけど SHGetFileInfo に空文字渡すとフォルダのアイコンが返ってくるけど、 これでいいんですか?
389 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 16:07:46 ] おまえらほんと捻くれてるよな
390 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 16:16:36 ] 必要な戻り値の型推論ができないだけ
391 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 16:25:28 ] GetMessageの戻り値みたいに融通効かせてください><
392 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 18:08:30 ] キャストしろ
393 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 18:34:01 ] 僕を神にしてください
394 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 19:57:54 ] キャストしろ
395 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 20:02:55 ] delete[]すればいんじゃね?
396 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 20:06:27 ] 洞窟の出口で秘宝を奪うべく待ってればいいと思うよ
397 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 20:18:21 ] APIもせめて同じような定数は列挙型に纏めるとかしたらすっきりするんじゃないの?
398 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 20:25:50 ] SDKとAPIを混同するな
399 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 20:41:09 ] 397の文脈ではAPIでもいいと俺は思う。 関数なんかだけではなく、それを呼び出すために必要な定数や型もひっくるめてAPIと言うのだと思う。
400 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 20:47:12 ] 勝手な定義を脳内で作って知ったかするのはやめておけ。
401 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 20:51:55 ] ApplicationPrigramInterfaceと SoftwareDevelopmentKit の違いがわかりません先生
402 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 20:54:31 ] ヘッダファイル自体やライブラリや関連ツールなどがSDK ヘッダファイルやタイプライブラリなどで定義されている内容がAPI だと思っていたが実際のところ正しい定義なんて考えたこともなかったな
403 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 21:04:06 ] そもそもどこまでがAPIなんて誰もそんなことを定義していない。 C/C++以外からAPIを利用する場合は列挙型も何も存在しないし、 変なところで勝手に決めてしまうと他の言語から使うときに、 API以外の何か謎な物を使っていることになってしまう。
404 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 21:06:31 ] 他の言語であらかじめされている定義が無いということね。
405 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 21:24:56 ] あれだ、web系のアホが紛れ込んでるのかもしれん。 「APIと言えばwebサービスのインタフェースを指すようになった」 らしいぞ。
406 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 21:42:36 ] 整数も渡せるだろ
407 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 21:52:13 ] JAVAのinterfaceには定数(もどき)を定義できるし、定数を含めて問題あるまい。 というか既に定数無いか?
408 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 21:57:42 ] >>401 Prigram
409 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 22:14:08 ] 何か美味そう
410 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 23:19:52 ] 画面に表示しないプログラムを作りたいのですが 時計の横にアイコンを登録することは出来ますか?
411 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 23:26:49 ] >>410 できる。
412 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 23:27:08 ] タスクバー? 可能です。
413 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 23:33:31 ] GT-Rは5台持ってますよ R32がVspecIIのガンメタとNISMOの白 R33がVspecのシルバー R34がMspecのホワイトとVspecII Nurのベイサイドブルー
414 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 23:39:56 ] ま、俺のGTOには敵わないだろうけどな。
415 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 01:51:20 ] NAだけどな。
416 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 13:28:15 ] >>411 だからなんでみんな戻り値がboolなんだよw
417 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 13:31:21 ] 出来るって分かれば自分で調べるだろ
418 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 13:55:07 ] S_OKだけなら猿でも返せる
419 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 14:00:51 ] >>410 メインウィンドウを非表示で作ればいい。 あとはタスクトレイ アイコンとかでググれ。
420 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 14:02:41 ] なんかこの質問・回答にデジャヴを感じる
421 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 14:06:05 ] 間欠泉のようなもんだから
422 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 16:00:03 ] Shell_NotifyIconだったっけか
423 名前:422 mailto:sage [2007/04/29(日) 16:02:09 ] かすかな記憶を頼りに書いてみて調べてみたらビンゴだった 俺の記憶力もまだ捨てたもんじゃないな
424 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 19:47:52 ] ワレのドタマカチ割って脳みそストローでチューチュー吸うたろか!
425 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 19:53:13 ] 自分の頭を割るというのもなかなか豪儀だな
426 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 19:55:41 ] なめとんかいわれ
427 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 19:58:29 ] 貝割れ大根を嘗めているのか。あれは舌にピリッと来るよな。 しかし倒置法とはなかなか巧みじゃないか。
428 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 20:15:36 ] じょんだらりん
429 名前:デフォルトの名無しさん [2007/04/29(日) 20:18:33 ] これをUNICODEビルドしたときにメッセージボックスに化けないで表示するには どうしたらいいでしょうか? XP, VC6です。 HANDLE hFile; TCHAR buf[10]; DWORD dwSize; hFile = CreateFile( _T("C:\\aaa.txt"), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); ReadFile(hFile, buf, 3, &dwSize, NULL); CloseHandle(hFile); buf[3] = _T('\0'); MessageBox(NULL, buf, _T(""), MB_OK);
430 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 20:21:13 ] MultiByteToWideChar
431 名前:429 mailto:sage [2007/04/29(日) 20:21:39 ] テキストファイルはSJISで中身は abc と入っているだけです。
432 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 20:31:04 ] "abc"のバイナリ表現はShift_JISやUS-ASCIIと、UTF-16とでは異なる。
433 名前:429 mailto:sage [2007/04/29(日) 20:42:04 ] 読み込むファイルはSJIS固定 MultiByteToWideChar 変換元がPCSTR 変換後がPWSTR これはひょっとしてUNICODE版でビルドしてる場合だけ MultiByteToWideCharを使って変換をかけるって事ですか?
434 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 20:44:56 ] いいえ
435 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 20:45:04 ] ファイルをダウンロードしたときなど、完了すると「チロン!」という音が鳴りますが、 この音を鳴らすapiがあれば教えてください。
436 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 20:45:40 ] MCI
437 名前:435 mailto:sage [2007/04/29(日) 20:48:57 ] >>436 ありがとうございました!
438 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 20:51:59 ] ttp://www.int21.co.jp/pcdn/vb/noriolib/vbmag/9802/mci/ ttp://www.ne.jp/asahi/nagoya/ahomaro/builder/cpb-059.html ttp://wisdom.sakura.ne.jp/system/winapi/media/ ttp://www13.plala.or.jp/kymats/study/multimedia.html
439 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 20:52:42 ] >>433 はい
440 名前:439 mailto:sage [2007/04/29(日) 21:15:28 ] ありがとうございました。
441 名前:429 mailto:sage [2007/04/29(日) 21:16:01 ] ちがう。429でした。
442 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 23:13:32 ] >>426 はい
443 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 00:13:19 ] ウモンドウ作らずにWM_〜受取れますか?
444 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 00:14:58 ] はい。ウィンドウをお作りいただけば可能です。
445 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 00:19:52 ] ウィンドウ要らないなら非表示にしとけばいい。
446 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 00:34:00 ] WM_〜 = window message
447 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 00:40:02 ] 一瞬普通に読んでしまったが、ウモンドウってwww
448 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 01:05:23 ] umondou? umondow?
449 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 04:46:30 ] タスクトレイのアイコンの画像を取得する方法ってありませんか? もしくは特定のアプリのトレイにあるアイコン描画をフックしたいのですが。
450 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 08:22:59 ] SetWindowsHookExのWH_KEYBOARD_LLはAltとかミ田キーも弄れますか?
451 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 08:25:50 ] >>450 可能。つか、自分でやってみれ。 想像以上に簡単だから
452 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 08:57:32 ] ミ田キーワロタ
453 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 09:54:19 ] Runasで起動したIEのウェブページのハンドルの入手の仕方おしえてください。
454 名前:デフォルトの名無しさん [2007/04/30(月) 10:17:54 ] 少しでも画面を有効に使うためにメニューバーの高さを極限まで細く したいのですが、win32apiで可能でしょうか? 高さの取得はGetSystemMetricsで出来るのはわかったのですが、 設定がどうやっったらよいものか分かりません。どなたかやり方を教えて頂けませんでしょうか。
455 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 10:29:34 ] 0じゃいかんの?
456 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 10:31:29 ] >>452 「ウェブページのハンドル」とは何ぞや? >>454 レジストリに書いてWM_SETTINGCHANGEをブロードキャスト?
457 名前:452 mailto:sage [2007/04/30(月) 10:34:23 ] >>456 IEで表示したサイトのページをFindWindowAでゲットした値のことです。
458 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 10:37:24 ] >>454 SystemParametersInfo で SPI_SETNONCLIENTMETRICS 他のアプリケーションにも影響を与える操作なんだが、自アプリケーションで制御するような代物なんかな? # デスクトップ - プロパティ で設定するのを自動化したいのか? # それはそれで、迷惑な造りかもしれんが…
459 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 11:08:25 ] >>454 オーナードロー
460 名前:デフォルトの名無しさん [2007/04/30(月) 12:06:48 ] bccでDLLを作成してそのDLLを LoadLibrary(TEXT("HOOKTEST.dll"));で読み出したら DLLエントリーポイントが実行されたみたいなのだが 暗黙的に読み出したらDLLエントリーポイントが実行されないんだが これは普通なのか?それとも何か設定が間違っているのか?
461 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 12:11:24 ] あと HINSTANCE hInstDLL; #pragma data_seg(".sharedata") HWND hWndtgt=NULL; HHOOK hhook; #pragma data_seg() BOOL WINAPI DllEntryPoint(HINSTANCE hInstance,DWORD dwNotification,LPVOID lpReserved){ MessageBox(NULL,"DLL START","START",NULL); hInstDLL=hInstance; return TRUE; } int makehook(void){ hhook=SetWindowsHookEx(WH_MOUSE,(HOOKPROC)mousehookproc,hInstDLL,0); if(hhook==NULL){ MessageBox(NULL,"MAKE HOOK ERROR","ERORR",MB_OK); return 0; } return 1; } makehookを実行側で読み出すとhhookが絶対にNULLになるらしくフックがうまくいかない LoadLibraryで明示的に呼び出してもうまくいかない デバッカで見てみるとhInstDLLがnullになってるみたいなのだが何故?
462 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 12:12:13 ] その、「実行されない」ってのはどこから解ったんだ?
463 名前:デフォルトの名無しさん [2007/04/30(月) 12:12:46 ] >>462 MessageBoxを入れてみました
464 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 12:15:28 ] どうしてボーランドの言語仕様ってあそこまで見苦しいの? クラスや関数名なんて汚らしいしIDEも不細工極まりない C++にしろパスカルにしろ目障りで読む気すらしないね。
465 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 12:17:41 ] ボーランド見苦しい pc11.2ch.net/test/read.cgi/tech/1067474140/
466 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 12:21:43 ] bccの#pragmaにdata_segなんてないぞ。
467 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 12:25:11 ] >>466 WINDOWSプログラミングスパイスって本にのってたからそのまま使ってみたんだが、だめだったか・・・
468 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 12:33:59 ] msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpdllpro/html/_win32_DllMain.asp をみて、DllMain内で複雑な処理はできいないと理解しよう。
469 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 12:37:36 ] _tDllMainな
470 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 12:38:38 ] >>443 PeekMessageをスレッドの最初に呼んでおけば そのスレッドにメッセージキューが作られるから あとはスレッドメッセージで処理すればいい。 送信はPostThreadMessageで 受信はGetMessageのMSG構造体のHWNDが0のやつが スレッド宛のメッセージ。
471 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 12:43:44 ] BOOL WINAPI _tDllMain(HINSTANCE hInstance,DWORD dwNotification,LPVOID lpReserved){ hInstDLL=hInstance; return TRUE; } 修正
472 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 12:49:24 ] ドラえもーん、これガソリンはレギュラーでも走るの? いやガソリンでは無理だよ。もっとパワーのあるやつじゃないと。 プルトニウムだよのび太君。
473 名前:デフォルトの名無しさん [2007/04/30(月) 13:27:45 ] BOOL WINAPI _DllMain(HINSTANCE hInstance,DWORD dwNotification,LPVOID lpReserved){ hInstDLL=hInstance; makehook(hInstance); return TRUE; } intmakehook(HINSTANCE hInst){ hhook=SetWindowsHookEx(WH_MOUSE,(HOOKPROC)mousehookproc,hInst,0); if(hhook==NULL){ MessageBox(NULL,"MAKE HOOK ERROR","ERORR",MB_OK); return 0; } return 1; } にすると問題ないみたいなんだけど・・・ グローバル変数にコピーできない なぜだ?
474 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 13:45:13 ] WinAPIの質問じゃないような気がしてきた
475 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 13:47:07 ] とりあえずフック抜いてインスタンスハンドルだけコピーするDLLでも作ってろ
476 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 13:51:36 ] 窓は作らずに(非表示ではなく) DLLの関数からShell_NotifyIconで登録してGetMessageでメッセージを受取れますか?
477 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 13:53:06 ] 不可能
478 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 13:54:27 ] Shell_NotifyIcon から タスクトレイアクションを invoke できるようにするために窓が必要
479 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 14:00:08 ] なんか最近この質問多いな
480 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 14:05:29 ] 間欠泉のようなもんだから(2回目)
481 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 14:09:08 ] タスクトレイ と フック は源泉なのでしょう
482 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 14:24:49 ] フックは多少ややこしいから分からんでもないけど… トレイアイコンの方は潔癖症に近くねぇ? いいじゃねーかウィンドウ一つくらい
483 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 14:30:09 ] メッセージ通知用ウィンドウなんてたくさん使われているよ。DDEとかシステム周りでもね。
484 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 14:30:28 ] そもそも「窓作らずメッセージ受け取れますか?」ってやってみればすぐわかるじゃねーか
485 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 14:40:48 ] それよりもまずテンプレに沿ってMSDN読んで来い msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/functions/shell_notifyicon.asp
486 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 14:52:16 ] EnumWindowとかで窓一覧を取得するとあきれるほど非表示ウィンドウだらけだからな。 いまさら一つ増えたところで・・
487 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 14:55:10 ] Winsock の Async の面倒見るのも見えない Window でやりくりしてるな
488 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 14:57:17 ] まあ落ち着けよ
489 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 15:06:42 ] WindowがなくてもHWNDもらう方法はないの?
490 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 15:08:13 ] >>475 やってみた MainDllないではグローバルインスタンスハンドルにコピーできてるみたいだけど makehookを呼び出すとNULLになってるみたい
491 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 15:09:38 ] 逆に考えるんだ makehook内で参照してるのがグローバル変数ではないのではないかと考えるんだ
492 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 15:13:20 ] >>476 HWND_DESKTOP名義で登録してHOOK
493 名前:477 mailto:sage [2007/04/30(月) 15:13:39 ] >>489 メッセージ送信先のウィンドウをデスクトップにでもしておいて グローバルフックで定義したメッセージを引っ掛ければできなくはない ウィンドウ作らない分フックにリソース消費するけどねw
494 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 15:15:07 ] 久々に綺麗なケコ-ン
495 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 15:28:18 ] ウィンドウズ自体の欠陥ですか
496 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 15:35:31 ] いいえ
497 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 16:50:13 ] / / . : ヘ/! \ // / . /: : ∠、ム| . ヽ / ィ . / :/|: |: :/ ノ: 人: ハ i/ . : . | .|{‐ |=ヘ{‐'! ` =ナ左、 V:|: .ハ / | :|: : |: :八 | o ヽ| ´ o ∨/: i | |:i: : . 、 |{ ヘ! .彡 , ミ、 /メ| . ハ| ヽ|ヽ: : .`| .三´ _____ ̄彡'/ . ://リ > .\ |ニ. 二、,二.ヽ| /: // / : : ハ`` V: : : : :ン∠イ : : ヽ ァハハ八八ノヽノヽノヽノ \ノ \ / \ / \ / . : :/ : \ \――/ /: :|: : : . :ヽ / . : : : :ィ: > ` ̄ イ: : 、 、、: : : : .ハ / . :/i/ "´ |  ̄ | `^``゙^\:、 : . ハ i/ . :/ へ ノ __ Vニ、 ヽi、:、: i ハ i:/ ∠.... iく__ 彡⌒ソ > ‐ 、 ヽi、! V / ̄、 ̄\\ ∠ニ -‐_厂 ヽ. ` / |: レ  ̄ ̄` 厂| ̄,r ̄- 、: |. i / .|/ 厂 | '´ V: 丶 「 ̄ ̄`ヽ/. : : : . . / ハ . : : : : : . V/ ̄`ヽ ,ノ二二.ヽ {. : : : : : :∧ヽ/∧: : : : : : : : :} . ニニヽ < ̄ィ―- 、ヽV: : : : : :\//: : : : : : : : ノ//. --t、ヽ `7 ヽ.ハ: : : : : : : :`´|: : : : : : : : : {彡''´ |/
498 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 17:14:45 ] >>473 そもそもDllMainでuser32.dllの関数を呼び出してはいけない(もちろんMessageBoxも)
499 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 17:15:45 ] >>492-493 そっちのほうがよっぽど気持ち悪いんだが潔癖症の方々はウィンドウを作らないこと自体 が目的化してるんですかね。健康のためなら死んでもいいみたいな。 >>489 とか見てると釣りのようにも思えるけど
500 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 18:02:07 ] やってみることに意味があるんだろう 無いけど
501 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 18:07:31 ] ShellExecuteでファイルを開くと新しいウィンドウで開かれますが、 既存のウィンドウ内に表示させることは可能でしょうか? 具体的にはswfなどのファイルを、BMPをペタペタ貼るような感じで使いたいのですが・・・
502 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 18:29:52 ] ActiveXでFlashコントロールをホストすればー
503 名前:デフォルトの名無しさん [2007/04/30(月) 19:22:13 ] っていうかWindow作るのダサいし
504 名前:デフォルトの名無しさん [2007/04/30(月) 20:09:44 ] MSXML6.0でXMLをロードするときに関数にIXMLDOMDocumentをポインタで引き渡すと値が返ってきません。 関数の内部での値はとれているのですが。 こういう仕様なのでしょうか? OKの場合 CComPtr<IXMLDOMDocument> xmldom; if(CoCreateInstance(CLSID_DOMDocument, NULL, CLSCTX_INPROC_SERVER, IID_IXMLDOMDocument, (void**)&xmldom) != S_OK){ return; } xmldom->put_async(VARIANT_FALSE); xmldom->load(_variant_t(FileName), &result); if(result != VARIANT_TRUE){ return; }
505 名前:デフォルトの名無しさん [2007/04/30(月) 20:11:04 ] NGの場合 if(LoadXML(FileName,xmldom) == false){ return; } bool LoadXML(const char* FileName,IXMLDOMDocument *xmldom) { VARIANT_BOOL result; if(CoCreateInstance(CLSID_DOMDocument, NULL, CLSCTX_INPROC_SERVER, IID_IXMLDOMDocument, (void**)&xmldom) != S_OK){ return false; } xmldom->put_async(VARIANT_FALSE); xmldom->load(_variant_t(FileName), &result); if(result != VARIANT_TRUE){ return false; } return true; }
506 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 20:18:34 ] 引数でポインタを返したければ、その引数はポインタのポインタである必要がある、って いうCの基本のお話なのかな?
507 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 21:09:37 ] ×bool LoadXML(const char* FileName,IXMLDOMDocument *xmldom) ○bool LoadXML(const char* FileName,IXMLDOMDocument **xmldom)
508 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 21:16:44 ] まあ、ポインタ参照にしてもいいけどネ
509 名前:デフォルトの名無しさん [2007/04/30(月) 22:21:03 ] >>491 その可能性もあるけど そうするともうどうしようもなくないか? >>498 へー
510 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 22:46:27 ] #define STRICT #include <windows.h> #include <windowsx.h> #include "ResHOOKTEST.h" #include "HOOKTEST.H" static HWND hWndmain; static HINSTANCE hInst; LRESULT CALLBACK mainDlgProc(HWND hDlg,UINT message,WPARAM wparam,LPARAM lparam){ switch(message){ case WM_COMMAND: if(wparam==HOOKON){ makehook(); return TRUE; } if(wparam==HOOKOFF){ unhook(); EndDialog(hDlg,TRUE); } default: return FALSE; } return TRUE; } int PASCAL WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){ UNREFERENCED_PARAMETER(hPrevInstance); UNREFERENCED_PARAMETER(lpCmdLine); UNREFERENCED_PARAMETER(nCmdShow); hInst=hInstance; LoadLibrary(TEXT("HOOKTEST.dll")); DialogBox(hInstance,"MYDLG",NULL,(DLGPROC)mainDlgProc); return 0; }
511 名前:デフォルトの名無しさん [2007/04/30(月) 22:48:04 ] あああああああもうだれかたすけてえええええええええええええ
512 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 22:48:21 ] page11.auctions.yahoo.co.jp/jp/show/reviews?aID=n50365155
513 名前:504 [2007/04/30(月) 23:08:00 ] >>506 ポインタで引き渡しているのに、ポインタのポインタで渡さなければならないのですか? すみません。この辺理解がよくできてないです。 >>507 変更してみたのですが、 xmldom->put_async(VARIANT_FALSE); の箇所のメンバ指定の方法がよくわかりません。 こういう感じで変更してみたのですが、コンパイルエラーが無くなりませんでした。 *(xmldom)->put_async(VARIANT_FALSE); APIよりC言語の基本のほうを勉強したほうがよさそうですね・・・
514 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 00:38:58 ] >>513 (*xmldom)->put_async(VARIANT_FALSE); '->'の方が優先順位が高い。 もちろん、CoCreateInstanceの方も (void**)xmldom に直してあるよな。 後CLSID_DOMDocumentだと、MSXML3以前のインスタンスが返されていると思う。 MSXML4以降の機能を使いたければ、個別のCLSIDを指定する必要がある。 MSXML6なら、CLSID_DOMDocument60って感じで。詳細は英語版MSDN。
515 名前:491 mailto:sage [2007/05/01(火) 02:07:50 ] >>510-511 今思ったんだけどさー 別にhInstanceをグローバル変数にコピーしなくても GetModuleHandle(”dll名”)に置き換えれば良いんじゃないの
516 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 02:16:32 ] さすがジョースター卿w 発想の転換だなw
517 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 04:02:47 ] >>515 だめです
518 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 08:58:43 ] >>473 DLL側本体は int makehook(HINSTANCE) >>510 利用側は makehook(); 根本から間違ってねーか?
519 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 09:36:11 ] UrlDownloadToCacheFileでWeb上の頻繁に更新されるファイルを取得した場合、 キャッシュ済みのデータが戻ってきたりで必ずしも最新のファイルでない場合がよくあるのですが、 強制的に更新させる方法はないのでしょうか? 自分でソケット使って書くのマンドクセ('A`)
520 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 09:42:18 ] ファイルを一度削除してから再度実行すれば?
521 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 10:05:39 ] #include <windows.h> #define EXPORT extern "C" __declspec(dllexport) HINSTANCE hinst; BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD dwDllMainEvent,LPVOID lpvReserved){ if(dwDllMainEvent==DLL_PROCESS_ATTACH) hinst = hinstDLL; return TRUE; } EXPORT int func(void){ char buf[15]; wsprintf(buf,"%d",hinst); MessageBox(NULL,NULL,buf,MB_OK); } dllにして外部から呼び出すとインスタンスハンドルはコピーされている 460=461がコード内で妙なことしてるとしか思えない
522 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 10:07:34 ] VC買え
523 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 10:14:31 ] Windowsの窓ありきな設計思想に問題があるんじゃないかな。
524 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 10:19:36 ] static HMODULE g_hModule = NULL; BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) { switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: g_hModule = hModule; break; case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: break; } return TRUE; }
525 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 10:20:46 ] >>523 非表示の窓を作れないorやたら面倒なら確かに問題があるかもな
526 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 10:21:02 ] >>510 どこでGetProcAddressしてるの?
527 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 11:21:16 ] GUIを必要としないのに非表示の窓を作るのは倫理的に間違っている。
528 名前:デフォルトの名無しさん [2007/05/01(火) 11:22:50 ] 知らないならレスするな
529 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 11:26:22 ] GUIが必要だからタスクトレイに表示するのでは( ̄ー ̄)
530 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 11:39:23 ] >>527 ネットワークサービスだけ立ち上がればいいのに、GUIでしか起動できないWindowsは間違っている。 だからCUIのみでも使えるLinuxでも使えば?
531 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 11:53:53 ] クッキー焼いてみたの、ちょっと味見してくれない? 勘違いしないでね、別にあんたの為に作ったんじゃないんだからね。
532 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 12:15:12 ] Longhorn ServerはついにGUIレスモードが
533 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 12:22:11 ] そもそもサービスは・・・
534 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 12:39:43 ] >>531 わっふるわっふる
535 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 13:33:10 ] >>532 当然タスクトレイも使えないわけだが ウィンドウはいらないけどタスクトレイは必要なんて頭のおかしい要求する奴以外は 問題ないわな
536 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 14:28:36 ] タスクトレイのアイコンでクリック連打するとクリックした回数に応じて 他アプリを立ち上げるランチャーなんてどうだろう
537 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 14:33:31 ] つクイック起動
538 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 15:17:38 ] ppmフォーマットの画像を読み込ませてウィンドウに表示したいのですが どうしたらいいですか? LoadImageだとppmは読めないので困ってます
539 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 15:20:20 ] ppmをDIBに変換すればいいんじゃね
540 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 15:23:14 ] ppmはグレイスケールの画像で、fscanfで独自に読み込んで るんですけど、そのDIBには頑張れば変換出来そうですか?
541 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 15:27:33 ] できるけど、そもそもLoadImage使おうとしたのは何なんだ
542 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 15:28:31 ] CreateDIBSection → BitBlt のコース WM_PAINT で SetPixel ぐるぐる回すコース
543 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 15:40:40 ] LoadImageで読み込めたら表示も楽に出来ると 思ってました・・・ CreateDIBSectionってやつで頑張ってみようと思います
544 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 15:46:10 ] Susie Plugin とか使うとか // 懐かしい響きだな
545 名前:デフォルトの名無しさん [2007/05/01(火) 18:30:14 ] SQLConfigDataSourceでMySQLをODBCに登録する方法を教えてください
546 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 18:36:53 ] OOの話でよく、 「OOはデータと操作とカプセル化しちゃって、その部品を使うこと」 みたいなこと書いてあるの見ることあるけど、 これって構造化の話だよな?
547 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 18:49:47 ] >>546 構造化と言うと、普通はDijkstraの「gotoやめれ」でしょ。OOよりだいぶ前。
548 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 19:00:35 ] OO はカプセル化が基本ではあるが、 ポリモーフィズムが一番の肝だと思うんだぜ。
549 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 19:22:09 ] >>518 >>473 はためしに書き直してみただけ
550 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 19:32:46 ] >>527 不合理ではあるが、HWND_MESSAGE なんてのもあるな。
551 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 19:53:39 ] ネ申
552 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 21:24:43 ] >547 構造化は、TopDownとBottomUpと複合設計って事だよ。
553 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 21:32:30 ] >>545 SQLConfigDataSourceでODBCにMySQLを登録する方法を教えてください の間違いじゃね? これ、C:\Program Files\Common Files\ODBC\Data Sourcesフォルダ下に ファイル置くだけじゃなかった?
554 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 21:42:39 ] >>519 亀レス気味だが、 IBindStatusCallback::GetBindInfoが呼び出された時に、 BINDF_GETNEWESTVERSIONフラグ返せばいいんじゃね? 使ったことないから保証はしないが。
555 名前:553 mailto:sage [2007/05/01(火) 21:46:58 ] >補足 それでも、素でDSNファイルを作るんなら、 以下のサイトで接続文字列をチェックし、 (msdn2.microsoft.com/ja-jp/library/ms130822.aspx ) lpszAttributesを作成する。 各パラメータはNULLでつなぎ、最後だけNULLを2つ繋ぐ。 (参考:msdn.microsoft.com/library/en-us/odbc/htm/odbcconfigdsn.asp?frame=true ) lpszDriver は、"MySQL ODBC 3.51 Driver"かな? んで、 SQLConfigDataSource(NULL, ODBC_ADD_SYS_DSN, lpszDriver, lpszAttributes); ではだめか?
556 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 22:09:45 ] >>521 #include <windows.h> #include "ResHOOKTEST.h" #include "HOOKTEST.h" LRESULT CALLBACK mainDlgProc(HWND hDlg,UINT message,WPARAM wparam,LPARAM lparam){ switch(message){ case WM_COMMAND: if(wparam==HOOKON){ func(); return TRUE; } if(wparam==HOOKOFF){ EndDialog(hDlg,TRUE); } default: return FALSE; } return TRUE; } int PASCAL WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){ UNREFERENCED_PARAMETER(hPrevInstance); UNREFERENCED_PARAMETER(lpCmdLine); UNREFERENCED_PARAMETER(nCmdShow); /*LoadLibrary(TEXT("HOOKTEST.dll"));*/ DialogBox(hInstance,"MYDLG",NULL,(DLGPROC)mainDlgProc); return 0; } でよみだしたけどやっぱり無理だお
557 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 22:55:40 ] VK_KANAが立っているのに
558 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 23:01:15 ] しかし飽きもせず、おまえらフック大好きだよなー
559 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 23:09:41 ] しかしフック以前の段階で詰まってる罠
560 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 23:26:28 ] 僕ハッカー!
561 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 23:27:36 ] 僕バッカー
562 名前:デフォルトの名無しさん [2007/05/01(火) 23:28:14 ] 俺チンコ
563 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 23:47:57 ] フックはひとつのDLLで二つとかセット出来ますか?
564 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 00:26:04 ] 『日本初・民営刑務所 囚人が「ソフト開発」』だってよw ある意味俺らは囚人だww
565 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 00:31:03 ] >>563 聞く前にまずやってみろ SetWindowsHookExのパラメータ見ればわかりそうなもんだが >>556 もうめんどくせーから www.uploda.net/cgi/uploader4/index.php?file_id=0000012798.zip でDLL作れ
566 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 08:02:53 ] 初心者ですみません。 gdi+のライブラリの中身を解析したいのですが、可能でしょうか? それともうひとつ、図々しいですが jpgファイルの構造を教えてくれるところはないですか? DIBのピクセルビットを操作するようにjpgのピクセルを操作したいのです。 お願いします。
567 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 08:13:28 ] >>566 スレ違いだと思うが・・・ jpeg header formatでググる Code Projectを漁る www.codeproject.com/bitmap/iptc.asp などなど OleLoadPictureFileでDCに乗せるとかいろいろ
568 名前:デフォルトの名無しさん [2007/05/02(水) 08:29:10 ] アタッマきた
569 名前:567 mailto:sage [2007/05/02(水) 08:49:01 ] 俺が先に云うね 567にカチンときたので教えません。 バーカ! >>568 これでいい?
570 名前:566 mailto:sage [2007/05/02(水) 10:07:04 ] >>567 ありがとうございます。 試してみます。
571 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 10:39:54 ] >>566 GDI+は、ソース公開されていないよ。 逆アセンブルするんだとか言うなら誰も止めはしないが、せいぜいライセンスは気にかけておけ。 JPEGは、画像を圧縮して記録していて、解凍しないと画像は取り出せない。 仮に編集するとしたら、編集終了後にJPEGとして保存するために再び圧縮することになる。
572 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 10:42:05 ] 不可逆の圧縮に対して解凍というのは違和感有りまくり
573 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 10:55:00 ] >>572 同意。 今の時代は質よりも、 聞こえればいい、見えればいいの時代なのね
574 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 10:55:19 ] JPEGはハフマンの強さを見せ付けられる圧縮技術。
575 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 10:59:50 ] フーリエ先生も自分の考えてたことが数百年後に役に立つと予想出来たであろうか
576 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 11:17:38 ] >>572 冷凍食品は不可逆でないのか?
577 名前:デフォルトの名無しさん [2007/05/02(水) 11:36:04 ] それは屁理屈 展開でいいじゃん
578 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 11:51:53 ] 素材そのものではないのに 素材の名前をつけた料理には違和感ありまくり
579 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 11:53:06 ] タイヤキ
580 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 11:56:26 ] ミスタードーナツのメニュー
581 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 12:06:29 ] 可逆だろうが不可逆だろうが圧縮に対して解凍は違和感あり 展開・復元でいいでしょ 不可逆に対して復元は語弊あるけど
582 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 12:12:55 ] 解凍って言い回しはアーカイブファイルでないとしっくり来ない まあ意味は伝わるからどうでもいいけどね
583 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 12:21:52 ] まあな。文脈さえ読めればおk 宮廷に仕えてるわけでもないしねw
584 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 12:38:11 ] 解凍って言い回しはLHarc(現LHAの前身)の頃に作者の吉田さんが使い始めたんだよね。 当時のパソ通コミュで(それこそvoidも含めてw)多くのエンジニアからやめろと言われたにも関わらず。 吉田さんが自粛してくれていればこんなことには……
585 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 12:46:48 ] >>578 Jリーグカレーとか?
586 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 14:14:38 ] おかわり
587 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 15:06:28 ] どうでもいい
588 名前:デフォルトの名無しさん [2007/05/02(水) 15:44:05 ] >>555 ありがとうございます。 こんな感じでやってみたのですがダメでした・・・・ どこが悪いでしょうか BYTE *drv = "MySQL ODBC 3.51 Driver"; BYTE att[512]; ::wsprintf( &att[0], "DSN=%s\0", "test1" ); ::wsprintf( &att[::lstrlen(att)+1], "Server=%s\0", "testserver" ); ::wsprintf( &att[::lstrlen(att)+1], "UID=%s\0", "root" ); ::wsprintf( &att[::lstrlen(att)+1], "PWD=%s\0", "1234" ); ::wsprintf( &att[::lstrlen(att)+1], "DATABASE=%s\0\0", "testdb" ); ::SQLConfigDataSource( NULL, ODBC_ADD_SYS_DSN, drv, att );
589 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 15:52:35 ] 文字列を文字列として渡す関数に \0 をつけるのは無意味 よって、\0 も \0\0 も意味がない。 それ全部はずした上で、配列に直接\0入れてやれ
590 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 15:58:53 ] >>589 意味はないけど間違いでもない。 wsprintfで入れてくれるから後から入れるのはもっと無意味
591 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 16:01:34 ] >>590 あのさ、直接入れるのは\0\0と2つ重ねる話なんだけど
592 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 16:04:11 ] あと、strlenだと、最初の\0 間でしか数えないから、sprintfの戻り値を足してやれ
593 名前:デフォルトの名無しさん [2007/05/02(水) 16:04:22 ] HINSTANCE hLib = LoadLibrary("xxx.dll"); を実行すると、下記のエラーが出力されます。 error C2664: 'LoadLibraryW' : 1 番目の引数を 'const char [12]' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照) 1> 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。 解決方法を教えてください。 参考ページ:ttp://homepage2.nifty.com/DSS/VCPP/DLL/dlldynamiccall.htm 環境:WindowsXP, Visual C++ EE 2005
594 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 16:09:52 ] >>588 最初のstrlen(att)+1以外のstrlen(att)+1が全て間違っている。 それでは長さが全部同じになるから、先頭アドレスは足していかないと
595 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 16:09:59 ] >>593 HINSTANCE hLib = LoadLibrary(_T("xxx.dll")); で、どうか?
596 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 16:17:18 ] >>595 ありがとうございます。 読み込めました。
597 名前:デフォルトの名無しさん [2007/05/02(水) 16:48:27 ] 初歩的な質問で申し訳ありません。 VC++でダイアログベースのプログラムの作成中です。 プロシージャ内でクラスを宣言して使用したいのですが、エラーになります。 たとえば以下のようなプログラムのがあるとします(Fooクラスが別途存在します) LRESULT CALLBACK DlgProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { switch (msg) { case WM_INITDIALOG: Foo foo; return FALSE; case WM_HOGE: foo.hoge(); default: return FALSE; } return TRUE; } この場合、以下のエラーが出力されます 'foo' の初期化が 'case' ラベルによって行われませんでした。 調べた結果、WM_HOGE内でFooクラスの宣言がなされてない(初期化がされていない)のでエラーになっている、ということはわかりました。 ここで質問なのですが、Fooクラスの宣言というのは一般的にどこで行うべきなのでしょうか? プロシージャの最初のswitchの外で宣言してしまってもいいものなのでしょうか。
598 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 16:51:41 ] >>588 DriverとAttributesは以下で判断 @.ODBCドライバを落とし、インストールする。 dev.mysql.com/downloads/connector/odbc/3.51.html A.コンパネから“管理ツール”の“データソース(ODBC)”を開く。 B.ファイルDNSタブから[追加]ボタンを押す・ C.データソースMySQL ODBC 3.51 Driverを選択し、[次へ]を押す。 D.データソース名に"MAROYUKI"と入力し、[次へ]を押す。 E.とりあえず完了させる。 F.次にConnecter/ODBCダイアログが開くので、必要情報を代入し[OK]を押す。 G.\Program Files\Common Files\ODBC\Data SourcesフォルダにMAROYUKI.dsnができる。 H.MAROYUKI.dsnをテキストエディタで開き、lpszDriverとlpszAttributesに一致するか確認。
599 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 16:52:15 ] LRESULT CALLBACK DlgProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { switch (msg) { case WM_INITDIALOG: { Foo foo; } return FALSE; case WM_HOGE: foo.hoge(); default: return FALSE; } return TRUE; } こうすればいいがー
600 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 16:54:30 ] >>594 こんなのSQLConfigDataSource()を呼ぶ所でattの512バイトがどうなってるのか見ればすぐわかるのにね。
601 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 16:54:37 ] しまった! ↓のcaseでfooつかっとるかこれ! んじゃ、外に定義でいいんじゃね?
602 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 16:55:07 ] >>599 それは、case WM_HOGE でfooが使えないべ >>597 switchの外でいいよ。 case WM_HOGE の時に Foo foo を通過してないまま foo を使うことになるべ。
603 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 17:00:29 ] フォールスルー考えてのことならいいんだが 期待しているのは static のような気がする
604 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 17:06:56 ] 要は、そのfooをどこでどう使いたいか、どういう仕様か、によりけりだな。
605 名前:597 [2007/05/02(水) 17:07:02 ] レスありがとうございます。 LRESULT CALLBACK DlgProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { Foo foo; // ←switchの外で宣言 switch (msg) { case WM_INITDIALOG: return FALSE; case WM_HOGE: foo.hoge(); default: return FALSE; } return TRUE; } というプログラムで期待通りの動作を確認しました。 ありがとうございました。
606 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 17:07:48 ] うーむ、INIT_DIALOGはなんだったんだろうw
607 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 17:44:03 ] レンジのアイコンだから解凍で良いだろ
608 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 17:54:55 ] 蒸し返すなw
609 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 18:02:20 ] >>607 アホかい。 解凍と言う用語があったから、電子レンジのアイコンが作られたに決まっておろうが。 >>584 吉田じゃなくて吉崎だな。
610 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 18:11:15 ] 石化なんて表現もあったからなw
611 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 18:18:52 ] 俺:「ファイルの圧縮で、反対の言葉が解凍ってのはどうかと話題がでてるが、 姉ちゃんならどういう言葉が妥当だと思う? 姉:「うーん、レンジでチンして解凍みたいだから、解チンってのはどう?」 俺:( ゚д゚)ポカーン
612 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 18:21:16 ] つまらん
613 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 18:22:28 ] 圧縮の対義語は伸張やろが!
614 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 18:59:27 ] 圧縮解凍って言葉が昔から対になってんだから小さい事気にすんな 日本語して意味がおかしくて気に食わないならpack、unpackって言え
615 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 19:12:26 ] 圧縮/伸張、compress/decompressでFA。
616 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 19:39:26 ] >>614 おいおい、昔って言ったって、吉崎某が使い始めてから未だ20年経ってないぞ。 #あ、充分昔かw
617 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 19:45:45 ] DB関係の作った事ないし詳しくないからとんでもなく見当違いな事言ってるかもしれないけど教えてくれ。 APIでDB触れるのってODBCだけ?oo4oとかADOとかDAOとかAPIとして持ってないのか?
618 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 20:04:43 ] 符号化の結果縮むのが圧縮。 符号化の結果伸びるのが伸長。 復号化が解凍。 じゃないのか?
619 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 20:38:55 ] >>617 何を聞きたいのかよくわからん それらは最終的にODBC使うんじゃなかったっけ
620 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 21:04:09 ] エンコード/デコードで
621 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 21:39:49 ] >>616 実際にはもっと昔から使われていた。 それ以前にはスタンダードと言えるほど広まっているツールが なかったからLHA発祥という誤解が定着してしまっただけだ。
622 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 21:57:53 ] っYZ1
623 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 22:09:52 ] LHA は圧縮だけじゃなくて書庫の機能も持っているから、展開が妥当だと
624 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 22:37:24 ] >>619 そうだったのか。いや俺も実際何を聞きたいのかよくわからないんだがw つまりODBCAPI以外にDBを触れるAPIがあったら知りたかった
625 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 22:52:48 ] oo4oもADOもDAOも、みな関数と言う形ではAPIを持っていないと思う。
626 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 23:02:01 ] oo4oなつかしいなw
627 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 23:11:18 ] >>611 俺が「それはカユイちんこみたいだな」って言ってたって言っておけ あと「俺のチンコが痒いです」とも言っておけ
628 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 23:32:08 ] >>585 うぐいすパンとか?
629 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 23:35:39 ] うぐいすパンはうぐいす入ってるだろ
630 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 23:51:47 ] 東京ばな奈とか?
631 名前:デフォルトの名無しさん [2007/05/02(水) 23:58:26 ] JETはどうした
632 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 00:04:46 ] だからコンパイルエラーはWin32APIとはなんも関係ないっつーの
633 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 04:08:24 ] >605 static つけないと呼び出されるたびに初期化されるんじゃないの まあ動くならいいけど今後のこともあるし
634 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 04:19:50 ] static 必要っぽい気はするな。 WM_INITDIALOG で new してユーザ領域にそのポインタを置いて それを使うともっといいんじゃないかとは思うけど。 同時に複数起動する必要がないならいいけど。
635 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 04:28:26 ] WM_PAINT内で BeginPaint〜EndPaintを二回以上やると 2回目からの描画内容が画面に出ないんですけど どうしてですか?
636 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 04:35:46 ] EndPaint で更新すべき領域をクリアしてしまうんじゃない?
637 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 08:17:23 ] フォアグラウンドのIMEの状態を調べてIME_CMODE_ROMANがない場合VK_KANAを有効にしたいのですが。 チェックするタイミングはキーフックとタイマーのどちらが良いでしょうか?
638 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 08:46:24 ] >>637 その解法は、両方どつぼりそうな予感。
639 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 08:49:04 ] 入力対象が確定していれば、 そいつのWM_SETFOCUSメッセージ時じゃだめか?
640 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 11:48:30 ] 状態が変化する前に、処理すればいいのに
641 名前:デフォルトの名無しさん [2007/05/03(木) 11:53:57 ] WM_PAINTのタイミングで描画しています ウィンドウを大きくするときは再描画されるのですが小さくするときはされません どちらでも再描画されるようにするにはどうすればよいでしょうか?
642 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 12:08:16 ] >>641 もう少しくやしく。 もしかしたら、違う要因かも知れないから。
643 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 12:09:51 ] WS_HREDRAW/WS_VREDRAWとか?
644 名前:641 mailto:sage [2007/05/03(木) 12:28:08 ] >>642 最大化ボタンを押したりウィンドウの右下をドラッグしてウィンドウを大きくした場合、 それに連動してウィンドウ内の画像が書き換えられます。 そのときにcase WM_PAINT:を通過していることをMESSAGEBOXを表示させて確認しました 最大化から元に戻す場合やウィンドウの右下をドラッグしてウィンドウを小さくした場合、 ウィンドウ内は再描画されません (同様にMESSAGEBOXで確認しました)
645 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 12:28:47 ] >>643 MSDNやGoogleを検索しましたがなかなか情報がでてきません 関連資料あればお願いします
646 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 13:03:47 ] >>645 CS_HREDRAW CS_VREDRAW
647 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 13:08:19 ] >>644 WM_PAINT描画部さらせる?
648 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 13:14:26 ] >>647 LRESULT WINAPI MsgProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam ) { switch( msg ) { case WM_DESTROY: Cleanup(); PostQuitMessage( 0 ); return 0; case WM_PAINT: MessageBox(hWnd, "ok", "check", 0); Render(); ValidateRect( hWnd, NULL ); return 0; } return DefWindowProc( hWnd, msg, wParam, lParam ); }
649 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 13:26:03 ] エクスプローラの縮小版表示で独自の画像形式を表示させたいんだけど、 どうやったら出来ますか?
650 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 13:27:39 ] >>649 独自の画像形式とは? 自分が考えたオリジナルフォーマット?
651 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 13:32:41 ] >>648 ソースあげ
652 名前:649 mailto:sage [2007/05/03(木) 13:33:52 ] >>650 自分が考えたフォーマットもありますし、RLAなどの標準で表示されないフォーマットもあります。
653 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 13:34:55 ] >>649 IExtractImage を実装してレジストリに登録
654 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 13:41:28 ] >>649 >>653 の補足 msdn.microsoft.com/msdnmag/issues/0600/w2kui2/
655 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 13:52:42 ] >>641 WM_SIZE で InvalidateRect すれば?
656 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 13:57:26 ] >>655 WM_PAINTをWM_SIZEに書き換えたところうまくいきました 相談にのっていただいた皆様本当にありがとうございました
657 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 14:03:31 ] WM_SIZE でレンダリングしたのか。 それっていいのか? というか、WM_PAINT は処理しないのか?
658 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 14:03:42 ] >>656 乙。 連休を楽しめ。
659 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 14:06:00 ] >>657 WM_SIZEでInvalidateRectをコールし、 WM_SIZE時の範囲を更新範囲に追加したんお
660 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 14:09:06 ] レンダリング?
661 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 14:14:02 ] >>659 おk。 >>660 >>648
662 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 14:18:35 ] レスどうも >>639 入力中の英和混在入力のモード切替に対応したいので WM_SETFOCUSじゃ無理なんです。
663 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 14:44:44 ] >>637 >フォアグラウンドのIMEの状態を調べてIME_CMODE_ROMANがない場合 >VK_KANAを有効にしたいのですが。 >チェックするタイミングはキーフックとタイマーのどちらが良いでしょうか? >>662 >入力中の英和混在入力のモード切替に対応したいので >WM_SETFOCUSじゃ無理なんです。 エスパーじゃないんで要点を詳しく。 現状の具体的な問題点と、その解法にIMEをもってきた理由を特に。 (難解が平易に変わるかも)
664 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 15:00:16 ] >>661 どこがレンダリング?w
665 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 15:20:42 ] つ[辞書]
666 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 15:29:50 ] >>664 Render ってのが見えないのだろうか。
667 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 15:31:24 ] 【他動-14】 《コ》 〜をレンダリングする、 〔画像{がぞう}などのデータを〕実際{じっさい}に描画{びょうが}する、 〔三次元{さんじげん}のオブジェクトを〕二次元{にじげん}の画像{がぞう}にする ◆データを解釈・計算して視覚的に表示すること。 ・ Different browsers render HTML differently. ブラウザによって HTML のレンダリングは異なります。
668 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 15:37:01 ] 話の流れを読まずに、文字の綴りだけをあげつらった揚げ足取りなんだから そんなに反応することないのに・・ ちょっと前にも、こういう質問とは本来関係ないことで脱線しなかったか?
669 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 15:38:32 ] おや、本当だ Render()見落としてたわ・・・・
670 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 15:40:20 ] >>667 広義には与えられたデータを元に視覚表示すること全てレンダリングだけど 広く一般にレンダリングと言ったら3Dモデルのレンダリングのことを指すのが言葉の難しいところだ
671 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 15:44:47 ] HTML レンダリングもよく使うと思うけど。
672 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 15:45:57 ] >>663 簡単に言えば、 「窓使いの憂鬱」と言うソフトにカナロックON/OFFで キーマップを切り替える機能があるんですけど。 IMEの英和混在入力を使うとずれるんですねこれが。 原因は、IME_CMODE_ROMANとVK_KANAがシンクロしないからなんで、 グローバルフックかけて外部から梃入れしようかなと。
673 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 15:53:07 ] >>671 表示全てをレンダリングと言うよりは使うとは思うけど それも結局ソッチの道の人がほとんどだしさ まぁ、どうでもいいことだと思うけどw
674 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 16:30:38 ] アタシのことでけんかしないで!
675 名前:649 mailto:sage [2007/05/03(木) 16:31:19 ] >>653-654 サンクス これからやってみます
676 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 16:37:13 ] >>672 開発は終わってるんだな・・・ これソース公開してないかい?
677 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 16:42:37 ] >>672 sourceforge.net/project/showfiles.php?group_id=5403 ソースはここみたい。 ある程度処理を読んで解析した上で、対処した方がいいかもね。
678 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 17:00:08 ] hook.cpp n.m_isKanaLockToggled = !!(GetKeyState(VK_KANA) & 1); これを HWND hWnd = GetForeGroundWindow(); ImmGetContext(hWnd); ImmGetConversionStatus(hImc, &dwc, &dws) n.m_isKanaLockToggled = (dwc & IME_CMODE_JAPANESE) && (dwc ^ IME_CMODE_ROMAN); ImmReleaseContext(hWnd, hImc); VS2003でないから試せないけど。
679 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 17:07:34 ] おーいXOR…
680 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 17:50:06 ] n.m_isKanaLockToggled = (dwc & IME_CMODE_JAPANESE) && (dwc & ~IME_CMODE_ROMAN);
681 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 17:54:23 ] &~でも^でもどっちでもよくね? ダメな理由があるなら別だけど
682 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 18:27:44 ] っ どっちもだめ
683 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 18:54:37 ] >>681 XORとNOT&ANDが同じ動作とでも思ってるの?
684 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 18:55:51 ] CPUの中身は全部XORの組み合わせ
685 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 19:16:48 ] >>683 もちろんです
686 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 19:19:09 ] 00001000 ^ 11111111 = 11110111 TRUE 00001000 ^ 11110111 = 11111111 TRUE
687 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 19:20:14 ] >>685 これは すごい ゆとり
688 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 19:23:27 ] 10以外の位取りはゆとりで教育課程から消えたけど ビット演算も学校で教えてたっけ?
689 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 19:29:01 ] ビット演算まではなかったと思う。
690 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 19:29:24 ] 学校で習ったかどうかなんて関係ない。
691 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 19:32:11 ] 工業乙
692 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 19:34:31 ] どっちかのbitが立ってることを確認するために if(hoge & 0x000000C0) みたいな書き方出来ると思うのですが 両方のbitが立ってることを確認したければ if(hoge & 0x000000C0 == 0x000000C0) って書くしか方法ないですか?
693 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 19:42:07 ] hoge & 0x000000C0 & 0x000000C0がある
694 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 19:43:01 ] if((hoge & 0x000000C0) & 0x000000C0)
695 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 19:43:38 ] 全部不正解
696 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 19:44:36 ] 00001000 ^ 11111111 = 11110111 TRUE 00001000 ^ 11110111 = 11111111 TRUE を 00001000 &^ 11111111 = 00001000 &^ 11110111 = にするとどうなるの?
697 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 19:46:55 ] >>690 ゆとり教育なんか学力の低下に関係ないと言いたいわけですね。
698 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 19:50:50 ] マスクすれ
699 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 19:52:41 ] プログラムの勉強の前に情報技術基礎から勉強する事を勧めたいね
700 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 19:54:48 ] >>691 高専の専攻卒で悪かったな
701 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 19:54:54 ] こうするんだよ if(!((hoge & 0x000000C0) ^ 0x000000C0))
702 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 19:58:01 ] if((hoge & 0x00000080) && (hoge & 0x00000040))
703 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 19:59:30 ] >>680 これだろ n.m_isKanaLockToggled = (dwc & IME_CMODE_JAPANESE) && ~(dwc & IME_CMODE_ROMAN);
704 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 20:00:44 ] 何で皆向きになってるんだwwwwwwwwwww血だなwwwwwwwwwそんな俺もwwwwwwwwwwww
705 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 20:01:03 ] ↑ ~→!
706 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 20:01:52 ] >>678-704 バカが!!! if(1) これだろ
707 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 20:02:39 ] >>685 久々に開いた口が塞がらないぜ
708 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 20:02:54 ] 定数が複数あるのが美しくないな。 if(~(hoge | ~0x000000C0)) こうだろ。
709 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 20:03:30 ] 【高速化】ビット演算 0x02 pc11.2ch.net/test/read.cgi/tech/1158367586/
710 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 20:04:35 ] >>708 お前の美しいという言葉に全米が泣いた だがそのコードはとても美しいとは思わない これが美しいコードの見本だ if(0)
711 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 20:04:47 ] ここは Win32API スレだっつーの!
712 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 20:07:41 ] そして皆我にかえるわけだが チェックボタンやラジオボタンでBS_ICONなどでアイコンにする事はできるんですが、 そのアイコンにマウスをあわせたら文字が浮き出るようにするやり方がわからないです。
713 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 20:09:12 ] >>708 間違ってない?
714 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 20:10:58 ] >>712 マウスメッセージ拾って、コモンコントロールのToolTipでガンバレ
715 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 20:11:03 ] >>708 おまえ勘違いしてるだろ
716 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 20:11:53 ] >>714 あー、やっぱマウスメッセージ拾うしかないのか サンクス
717 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 20:13:44 ] >>693 >>694 >>708 久々に馬鹿三匹発見
718 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 20:14:03 ] 連休的優しさ乙。
719 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 20:14:52 ] 【高速化】ビット演算 0x02 pc11.2ch.net/test/read.cgi/tech/1158367586/
720 名前:708 mailto:sage [2007/05/03(木) 20:24:11 ] ちょっと間違えただけじゃないか。 指摘ついでに訂正しておいてくれよw if(!~(hoge | ~0x000000C0))
721 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 20:49:47 ] ウィンドウを作らずに音量とかハードウェアの安全な取出しがあるところにインジケータを追加出来ますか?
722 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 20:55:27 ] 非表示のウィンドウを作れ
723 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 20:59:36 ] いい加減あからさまな釣りに反応するのやめろよ
724 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 21:02:56 ] 考え方を変えれば良いんだ。 表示されるまではウインドウじゃない、ただのハンドルなんだと。
725 名前:デフォルトの名無しさん mailto:ゴールデンウィークひゃっほーい [2007/05/03(木) 21:05:26 ] 僕ハッカー
726 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 21:05:45 ] 僕バッカー
727 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 21:08:05 ] >>721 そのようなことはできません
728 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 21:08:19 ] WM_CREATEを華麗にスルーだ!
729 名前:デフォルトの名無しさん mailto:あ、遅い? [2007/05/03(木) 21:23:20 ] バカバッカー
730 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 21:42:08 ] 残り3日
731 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 21:58:42 ] 俺チンコ
732 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 22:29:21 ] if(!(~hoge & 0x000000C0))
733 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 22:48:15 ] なんでZARDが入ってないんだよ
734 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 23:41:09 ] WANDSじゃダメか?
735 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 12:40:33 ] >>721 最近3日に1回はその質問見てるような気がする
736 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 13:22:41 ] 間欠泉のようなもんだから(3回目)
737 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 14:07:54 ] DLLから窓へデータを送るにはどうすればいいの?
738 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 14:09:48 ] WM_COPYDATA
739 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 14:30:08 ] >>737 パケでも取得するのかい?
740 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 14:35:20 ] WORDとハンドルがひとつなんですけど
741 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 14:37:05 ] 自分でメモり割り当ててlpDataにポインタ入れるんだよ
742 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 14:39:26 ] 構造体使えばいいだろ
743 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 14:42:53 ] >>740 それくらいだったらSendまたはPostMessageで直接独自のメッセージを送りつければいいと思う
744 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 15:42:37 ] MMF
745 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 17:51:38 ] 映画見に行った?海賊のやつ。 ああコナンね。 ( ゚д゚)ポカーン
746 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 17:57:23 ] (´・ω・`)知らんがな
747 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 18:02:51 ] コナン・ザ・グレードよりコマンドーだろ
748 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 18:05:46 ] た゛っちゅーの
749 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 00:46:15 ] SetWindowsHookExのコールバックをクラスのメンバ関数にする場合 どう書けばいいの? (HOOKPROC)CMainDlg::KeyboardProcとすると error C2440: '型キャスト' : 'overloaded-function' から 'HOOKPROC' に変換できません。 と怒られます。
750 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 00:49:23 ] staticなメンバ関数から呼び出す
751 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 00:54:29 ] 行方不明じゃん
752 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 01:00:55 ] え?
753 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 01:03:29 ] そもそも静的にしないと住所不定
754 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 01:50:25 ] この処理は既に実行されています。 みたいな感じの時はHRESULTはどれを使えばいいんでしょうか?
755 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 02:01:47 ] E_KONOSHORIHA(略
756 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 02:06:27 ] E_ABORT
757 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 02:11:27 ] HRESULT hr = AtlHresultFromWin32(ERROR_ALREADY_INITIALIZED);
758 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 02:14:16 ] それがエラーではないというのならS_FALSEという手もある。 勿論その場合S_KONOSHORIHA(略も可。
759 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 02:39:44 ] AtlHresultFromWin32(ERROR_BUSY); でいいんじゃ。
760 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 08:34:39 ] その文章だと二つの意味に取れるな。 1.現在処理中なので、受け付けることができない。 2.この呼び出しを二回以上する必要は無い。
761 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 08:41:09 ] この呼び出しを二回以上する必要は無い。 なんですけど。FACILITY_ITFで自分で定義できるみたいですね。 どうもありがとう。
762 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 09:09:06 ] FORMAT_MESSAGE_FROM_SYSTEMは最大で何文字まで返ってくる可能性があるの?
763 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 09:19:32 ] ∞
764 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 09:27:04 ] 64KB。Unicodeで32K文字ってとこか。
765 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 09:29:25 ] 実メモリが許す限りじゃね? 各エラーコードに対応するメッセージが全部わかれば最大どれくらいか解ると思うけど つか、FORMAT_MESSAGE_FROM_SYSTEMはFORMAT_MESSAGE_ALLOCATE_BUFFERと一緒に使うもんだと思ってたんだけどw
766 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 09:31:27 ] >>764 詳しく 余談だけど、Unicode=2バイトじゃ無い
767 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 09:32:33 ] へぇ〜
768 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 10:09:56 ] >>766 内部的に使ってるUNICODE_STRING構造体の制限。 あとWin32のW系APIで文字と言ったら暗黙にUTF-16符号単位のことを指してると思っていい。
769 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 10:52:47 ] FormatMessageへ渡すバッファってLPWSTRになってるけど 実際渡すのはLPWSTRへのポインタでは?
770 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 10:55:00 ] >>769 それは、FORMAT_MESSAGE_ALLOCATE_BUFFERの時ね
771 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 10:55:57 ] この事実に気付いた者は抹殺さr
772 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 11:31:01 ] 自動的にメモリ確保してくれるんだろ 後LocalFreeしないとダメなんだよな使い終わったら。
773 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 11:35:05 ] あらかじめ確保したものを渡す関数と 勝手に確保して返してくれる関数の違いは 関数の仕様見て確認するしかないんですよね ネーミングのルールとかありますか?
774 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 12:07:26 ] 呼び出し側でバッファを用意して渡す場合、 バッファサイズも渡さないとイケナイから、わかる。
775 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 16:49:46 ] CopyMemoryの成否の判断ってどうするんでしょう
776 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 16:51:35 ] CopyMemory が失敗する状況って、メモリが壊れてる時とかか?
777 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 16:54:24 ] CopyMemoryってmemcpyの#defineじゃなかったっけか。
778 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 16:59:06 ] しかもmemcpyはコンパイラによってはインラインに展開される。 そんなものが失敗するような状況じゃエラーチェックの判定だって正しく行われるかどうか 分からんぞ。つまり考えるだけ無駄
779 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 17:20:52 ] memcpyはこういうときにエラーを返すということが定められていなかったと思う。 エラーになりそうな状況を考えると、思い付くのはヌルポインタなどメモリにアクセスできないとき。 それならWindowsが例外を投げてくるだろう。SEHで処理しろ。
780 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 17:45:48 ] IMAGE_IMPORT_DESCRIPTOR についての質問です。 Advanced Windows のAPIフックに関するソースコードを読むと、 モジュールのベースアドレス(modBaseAddr)と、 モジュールのハンドル(hModule)は "常に同じ" として 扱われているみたいですが、 これは保証されている事なのですか?
781 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 17:48:31 ] パケット取得でもするのかい?
782 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 17:55:03 ] 特に用途はないです。 ただの興味本位ということで・・・
783 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 18:20:23 ] コンボボックスでドロップダウンリストが1行しか表示されません。 複数行を表示するにはどこを設定すればよいのでしょうか? OS:WinXP 環境:Visual Studio 2005 言語:C++
784 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 18:21:32 ] 下に広げる
785 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 18:26:46 ] コントロールのデザインのとこで、コンボボックスのドロップダウンボタンをクリックすると コントロールの大きさを変えるのとドロップダウンリストの大きさを変えるのが切り替わる
786 名前:783 mailto:sage [2007/05/05(土) 18:28:22 ] >>784 エディット画面で選択項目表示部分を選択すると 縦方向に伸ばすことができなかったのですが 矢印ボタンのところをクリックすると縦方向に伸ばせました。 ありがとうございました。
787 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 18:42:21 ] ファイルマップオブジェクトにthisポインタの値を書き込むにはどうすれば良いですか?
788 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 19:06:57 ] >>787 thisポインタの値を書き込めばいいと思います
789 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 19:43:57 ] thisポインタの値とは?
790 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 19:44:11 ] thisポインタの値のことだろ
791 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 21:18:42 ] メニューバーのオーナードローをするにはどうすれば良いでしょうか? Adobe Reader(8.0)のメニューバーのような感じにしたいです。
792 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 22:08:50 ] メニューバー? Reader8のメニューは普通だと思うが? ツールバーか?
793 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 22:17:27 ] どうしてnCodeがマイナスだとすぐにCallNextHookExを返すの?
794 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 22:44:28 ] そういう決まりだから
795 名前:791 mailto:sage [2007/05/06(日) 00:18:21 ] >>792 kjm.kir.jp/pc/?p=32876.jpg 赤線で囲ってあるところなんですけど、なんて言うんでしょうか?
796 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 00:23:10 ] メニューバー
797 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 00:24:11 ] メニューにアイコンをつけたいとかそういう話?
798 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 01:04:42 ] 質問です、以下のようなプログラムを現在制作しています。 コンソールアプリケーション テキストをドラッグ&ドロップすることで、一定の処理をテキストファイルに対して行う。 「一定の処理」は、このアプリケーション用に書かれたDLLのによって変化する。 それで、DLLの検索&ロードをFindFirstFileとFindNextFile、LoadLibraryを用いて行っています。 そのプログラムなのですが、IDE(VC7)からでは設計通りに動作するのですが、それ以外では動作せず…。 どうやらFindFirstFileなどで、DLLが検索に引っ掛からないようなのです。 (おそらくはカレントディレクトリの問題なのでしょうが)、何故このようなことが起こるのでしょうか? また、対策を教えてください。よろしくおねがいします。
799 名前:791 mailto:sage [2007/05/06(日) 01:11:24 ] アイコンは別にいらないのですが、Adobe Readerみたいにメニューバーの通常状態の色や、選択状態の色を変えたいのです。 あと、右上端にあるバツ印もどうやっているでしょうか?
800 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 01:11:40 ] GetModuleFileName
801 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 01:12:45 ] >>798 >(おそらくはカレントディレクトリの問題なのでしょうが) そう思うなら、まずはGetCurrentDirectory()で調べるべきでは?
802 名前:デフォルトの名無しさん [2007/05/06(日) 01:56:35 ] DLLを実行ファイルに含めて、一つの実行ファイルにすることって可能でしょうか?
803 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 02:05:33 ] >>802 無理やりリソースとして埋め込んで、実行時に復元すれば?
804 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 02:08:48 ] hIconでアイコンを指定しました。 けど kjm.kir.jp/pc/?p=32881.png みたいにタスクバー上でしかアイコンが変わってません。 どうしたらプログラム上でもアイコンを変えれますか?
805 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 02:12:05 ] hIconSm を放置してるとか?
806 名前:798 mailto:sage [2007/05/06(日) 02:17:35 ] >801 ありがとうございます、さっそく調べてみました。 すると、カレントディレクトリがC:\Document and Settings\(ユーザー名)となっているようです。 これは何故なのでしょうか、理由をどなたか知っていれば教えていただければと。
807 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 02:19:44 ] >>805 素早いレスありがとうございます。 hIconSmの存在も調べました。 でもwindows95以外はWNDCLASSEXを使えないらしく、だからhIconSmも使えないそうなんです。 実際hIconSmも指定してビルドするとWNDCLASSにはhIconSmは存在しないってエラーがでました。
808 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 02:19:51 ] 理由を考えるよりカレントディレクトリに依存しないようにプログラムを変えろ
809 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 02:23:44 ] >>807 Windows 95 以降全部で使えるぞ。
810 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 02:24:58 ] むしろどこに Win95 以外使えないって書いてるのか教えてくれ
811 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 02:28:52 ] Windows 95のころのSDKじゃね? 当然「Windows 95以外」が意味してるのはNT 3.5とかWindows 3.1とか
812 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 02:31:49 ] >>809-811 あれ、つかえるんですか。じゃあそれでやってみます。
813 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 02:32:14 ] >>811 VC++ 5.0 あたりか。
814 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 02:42:04 ] hIconSmで指定しても駄目でした。 ちなみにVC++ 6.0をつかってます
815 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 02:45:57 ] あ、16 ビット版のアイコンをエディットしてないとかはどうか? 確か VC++ 6.0 あたりは、アイコンを新たに作成したときは 32 ビット版と 16 ビット版が両方作られてたはず。 どっかでエディット対象を選択できるんで、 それで 16 ビット版の方もエディットすればいいはず。
816 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 02:47:11 ] ちゃんと WNDCLASSEX 使ってるか? WNDCLASS じゃないぞ
817 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 02:53:25 ] >>815 一つしか作られてないと思うのですが、どこに作成されるのでしょうか? >>816 WNDCLASSEXに変えても駄目でした。
818 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 02:54:32 ] >>817 1つのファイルに2つのアイコンが入ってるはず。
819 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 02:55:45 ] ビットじゃないやw ドットだ。
820 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 02:58:26 ] >>818 一つしかアイコンはありませんでした・・・ もちろん32のほうだけしかありません・・・
821 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 02:59:02 ] >>820 どういう風に確認した?
822 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 03:01:58 ] >>821 アイコンの保存場所がワークスペースがあるフォルダなのでそこを確認しました
823 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 03:04:56 ] >>822 アイコンの中身は見たのか?
824 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 03:07:30 ] WNDCLASSEXでhIconSmを指定してる箇所のソースを ここに張り付けた方が解決が早い予感
825 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 03:11:51 ] >>823 アイコンの中身は見ました。 プロパティも確認しました。
826 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 03:13:43 ] メインのとこだけ貼り付けます int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow) { MSG msg; //メッセージ情報格納用構造体 WNDCLASSEX wc; //ウィンドウクラス HWND hWnd; //ウィンドウハンドル //*****ウィンドウクラスの設定*****// wc.cbSize = sizeof(WNDCLASSEX); //構造体サイズ wc.hInstance = hInstance; //インスタンスハンドル wc.lpszClassName = szClassName; //ウィンドウクラス名 wc.lpfnWndProc = WindowProc; //ウィンドウプロシージャ名 wc.style = CS_HREDRAW|CS_VREDRAW; //ウィンドウスタイル wc.hIcon = LoadIcon(hInstance,"IDI_ICON1"); //アイコンハンドル wc.hIconSm = LoadIcon(hInstance,"IDI_ICON1"); wc.hCursor = LoadCursor(NULL,IDC_ARROW); //カーソルハンドル wc.lpszMenuName = "saisei"; //メニュー wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); //ウィンドウの背景色セット //*****ウィンドウクラス登録*****// if(!RegisterClassEx(&wc)) return FALSE; //登録失敗 //*****ウィンドウの作成*****// hWnd = CreateWindow(szClassName,"再生プログラムだべ",WS_OVERLAPPEDWINDOW,440/*CW_USEDEFAULT*/,650/*CW_USEDEFAULT*/,400,100,NULL,NULL,hInstance,NULL); /*hWnd = CreateWindow(ウィンドウクラス名,ウィンドウタイトル,ウィンドウスタイル,ウィンドウの水平座標位置,ウィンドウの垂直座標位置,ウィンドウの幅,ウィンドウの高さ,親ウィンドウのハンドル,メニューのハンドル,インスタンスハンドル)*/ //*****ウィンドウの表示*****// ShowWindow(hWnd,nCmdShow); //ウィンドウの表示状態設定 UpdateWindow(hWnd); //ウィンドウの表示領域更新 //**********メッセージループ*************** while(GetMessage(&msg,NULL,0,0)){TranslateMessage(&msg);DispatchMessage(&msg); } /*while(メッセージの取得){メッセージの変換,メッセージをプロシージャへ送信}*/ return msg.wParam; }
827 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 03:14:16 ] >>806 IDEから実行したらおそらくカレントディレクトリはプロジェクトファイルのあるディレクトリになってるはず。 ファイルをドラッグ&ドロップして起動した場合は、ファイルのあるところがカレントディレクトリになってるはず。 理由?知らね。そのほうが都合がいいからだろ。 DLLをEXEと同じディレクトリに置くことにしてるのなら>>800 とか。
828 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 03:14:36 ] アイコンファイルをうpってみたら?
829 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 03:20:49 ] アイコンをアップしました ttp://vipup.sakura.ne.jp/512kb/src/512kb_9949.zip.html
830 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 03:31:28 ] 確かに 32 ドットのしか入ってないね・・・。 >>826 も別に変には思えないし。 じゃ、16 ドットのも作ってみたらどうかな。
831 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 03:40:40 ] >>826 "IDI_ICON1" を MAKEINTRESOURCE(IDI_ICON1) に置換すれ ウチの環境では、それでうまくいった
832 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 03:54:18 ] MSDNより >LoadIcon 関数がロードできるのは、GetSystemMetrics 関数の SM_CXCURSOR と SM_CYCURSOR > の各フラグに相当するサイズのアイコンだけです。それ以外のサイズのアイコンをロードするには、 >LoadImage 関数を使ってください。 wc.hIconSm = LoadImage(hInstance,"IDI_ICON1", IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR); でどお? >SM_CXCURSOR と SM_CYCURSOR これ誤植っぽい、SM_CXICON が正しい。
833 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 03:56:50 ] 32 ドットのアイコンを hIconSm にセットしたら、 自動的に縮小された(もちろん画像は粗い)なったはずなんだがなあ・・・。
834 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 07:51:11 ] >>833 リソースの作り方によるよ
835 名前:デフォルトの名無しさん [2007/05/06(日) 11:45:27 ] WindowsMediaInfomationをVCで使ってPCの情報を抜きたいです。 VBのサンプルを見つけたのですが、VC6.0への置き換え方法がよくわかりません。 ttp://www.wmifun.net/sample/win32_operatingsystemd.html VCではどうやってCOM呼び出しを実装すればよいのでしょうか? APIの質問ではなくて、VCの質問になるかもしれませんが、ご教授お願い致します。
836 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 11:47:11 ] WTL
837 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 11:51:42 ] ttp://zatsugaku.info/index.php?Program%2FWmi%2FProgram
838 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 11:52:51 ] 驚異的に改行されてねえ とか思ったけどIEだとOKなのか
839 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 11:59:46 ] >>831 うまくいけました。 ありがとうございます! >>832 なんか error C2440: '=' : 'void *' から 'struct HICON__ *' に変換することはできません。 っていわれました。 みなさま数々のご教授ありがとうございました。 またなにかエラーのときはよろしくおねがいします。
840 名前:デフォルトの名無しさん [2007/05/06(日) 12:33:32 ] Wininetに関して質問なんですが、InternetOpenはアプリの起動時に実行すべきでしょうか? それとも通信の必要がある場合にその都度の方がいいですかね?
841 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 13:22:32 ] ダイアルアップの人もいるし、、、ノートで出先とか
842 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 13:54:59 ] >>840 アプリの起動時、ネットにつながっていなくてもInternetOpen は成功する。 実際にネットに接続するAPIが呼ばれるまでにネット接続 が確立すればOK。
843 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 14:10:42 ] ということはどちらでも良いって事でしょうか。 タイムアウトもその都度設定するのはアレなんで起動時に呼ぼうと思います。 ありがとうございました!
844 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 14:14:08 ] >>843 msdn2.microsoft.com/en-us/library/aa385438.aspx この辺りを一読しとけ
845 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 14:54:04 ] タイムアウトは効いたっけ?効果なかった気がする
846 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 16:09:17 ] へ ヘ │ /∧ヽ__/∧ヽ_ 〜∞ /ハ \_/ 八 │ ∞〜 /ノ ヽ;;;;;;;;;丿/ ヽ\\ 〜∞ /_______) │ (;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;) {_____愛●国_| │ [_愛●國______] . |ミ/ ー―◎-◎-). │ (__ (__ ミミミミミミミミ| (6 (_ _) ) │ ) ミミミミミミミ) ノ/| .∴ ノ 3 ノ イエーイ.. │ ( ノ(。。 ) ι∵)リ||σ)ミミ) ノ/ _\_____ノ__ │ 丶 ε U j ノミミ) ノ/ / ) 嫌 ≡ ;;;; ) `__ノフ. │ イエーイ ヽ ,,_ U ___,,ノ / U |__|. 韓 ≡ ;;; )_/ ∈) │ \,,______,ノ 〈 | | .流 ≡ ) ̄ ̄ ̄´ │ _∩ 厶_______ノ⌒丶. ヽ \ ) │(S 〉 / ANTI KOREA
847 名前:840 mailto:sage [2007/05/06(日) 17:10:49 ] すいません、>>844 さんのリンク先でサンプル見つけました。 タイムアウトも効かないみたいなので非同期で実装しようと思います。 ありがとうございました。
848 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 17:48:51 ] これはどういう意味ですか? イベント ID (0) (ソース testsrv 内) に関する説明が見つかりませんでした。 リモート コンピュータからメッセージを表示するために必要なレジストリ情報またはメッセージ DLL ファイルがローカル コンピュータにない可能性があります。 この説明を取得するために /AUXSOURCE= フラグを使用することができる可能性があります。詳細については、ヘルプとサポートを参照してください。 次の情報はイベントの一部です: Service started.
849 名前:デフォルトの名無しさん [2007/05/06(日) 18:15:18 ] >>837 参考になりました。ありがとうございます。
850 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 18:26:12 ] >>848 >詳細については、ヘルプとサポートを参照してください。
851 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 19:57:31 ] どうしても行き詰まってしまい質問させて頂きます。 現在、HICONのキャッシュを作成し、次回からはキャッシュを元にHICONを復元させるプログラムを組んでおります。 GetDibsを使いHICONのカラーとマスクをそれぞれ、32bit, 16bitで取得し吐き出せています 吐き出させる直前の内容をCreateIconIndirectでHICONにし描画すると問題はありません しかし、キャッシュから得た内容でHICONを作成し描画すると、アイコンによって透明可に失敗しています 皆様お知恵をお貸しくださいorz
852 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 20:09:27 ] 吐き出す前と後で何か情報が変わってんだろ
853 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 20:24:47 ] そのキャッシュは正しく作れてんの?
854 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 21:33:05 ] レスありがとうございます。 吐き出すデータとキャッシュに格納したデータのチェックサムを取ってみました所一致しました。 キャッシュ側のテストもかなり行っておりますので、キャッシュ側の問題とはやはり考えにくいですorz 現在、何故かWinrarのアイコンだけが不透明にならないという摩訶不思議な状態です; もう一度、アイコンの取得全体を作り直して見たいと思います
855 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 22:02:40 ] まず、 @キャッシュなしで、想定する動作になるか確認。 A数キャッシュ(2個ぐらい)で、想定する動作になるか確認。 B>>851 で失敗したキャッシュ数の半分のキャッシュ数で、想定する動作になるか確認。 んで結果は?
856 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 22:34:29 ] >>855 さん @現在はテスト中ですので、キャッシュから取得に失敗した場合は何もしないようにしています A確認済みです。 B確認済みです。特定のアイコンのみが意図した通りの描画がされず、また、チェックサムを見る限りキャッシュデータ自体は問題ありませんでした。
857 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 22:36:34 ] >>856 Aは成功?Bは失敗?
858 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 22:46:47 ] いまいち>>851 の流れが見えん。 問1.HICONのキャッシュとは何? 独自フォーマットのデータ? 問2.吐き出させる直前の内容とは? exe.dlなどのモジュールに入ってるリソースそのものの事? 問3.キャッシュから得た内容でHICONを作成し描画する関数は何? CreateIconIndirectの事? 問4. >アイコンによって透明可に失敗しています >Winrarのアイコンだけが不透明にならない ここを詳しく
859 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 23:14:35 ] Alpha付き32ビットアイコンの予感
860 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 00:11:01 ] レス有り難うございます。 意見を頂けて大変恐縮です。 >>857 さん こちらでは動作上は成功と見ています >>858 さん 問1: 保存したいHICONをGetIconInfoで詳しい情報を取得した後に、カラーとマスクのビットをGetDIBBitsで取得します そして、取得した情報をキャッシュとして保存するようにしております。 問2: 直前の内容はカラー、マスクのピクセル情報です。ビットマップの画像ビットと同じですね(^^; 問3: その通りです。キャッシュから、カラー、マスクのピクセル情報を得た後、CreateIconIndirectでHICONを作成し、DrawIconで描画するようにしております 問4: Winrarのアイコンだけは本来透過される所が黒くなっていますorz カラーとマスクをそれぞれ別に描画させてみると、 カラーではきちんとWinrarの本が束ねられている所以外は黒く マスクでは、本が束ねられている所は黒く、それ以外は白くなっている事は確認済みです BitBltを用いるとうまく透過されるのですが、今度はBitBltでは別の問題が発生するという状態に・・・ 長文申し訳ありません
861 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 00:29:56 ] WinRARのアイコンは32bitカラーだったりしない?
862 名前:851 mailto:sage [2007/05/07(月) 01:55:06 ] >>861 さん 確認してみた所、32bitではありませんでした; それと、何とか解決することができましたorz GetDIBBitsを使わず、別の方法でビットを取得した所うまく行きました… 原因が全く分かりませんが、このまま作っていきたいと思います こんな質問に付き合って下さった皆様本当に有り難うございました。
863 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 02:35:08 ] >>862 CreateIconIndirectで使うマスクは2bitビットマップのはず。 16bitでなく2bitでキャッシュしてみたら? なんか解決しちゃったみたいだけど。
864 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 08:12:30 ] >>862 そうやね、可能性あるね。 使う色が違う他のアイコンにしたら、また問題が出るんではないかと
865 名前:デフォルトの名無しさん [2007/05/07(月) 11:24:07 ] >>863 アイコンのマスクビットマップは2bitじゃなくて高さ2倍の1bitじゃないか?
866 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 21:14:42 ] ttp://support.microsoft.com/kb/216686/ja ここを参考にExcelを操作するプログラムを作っているのですが Worksheets(2).Delete に相当することをやるにはどうしたらいいんでしょうか?
867 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 21:54:18 ] WM_PAINTについて、OSによってはメッセージループに来ず、 直接コールバックに来るとかなどの、 詳しい挙動が載っているサイトとかありましたら教えてください。
868 名前:866 mailto:sage [2007/05/07(月) 21:55:47 ] 環境 Win2000, Excel2000, VC++6, SDK
869 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 22:04:57 ] >>866 >>868 CLSIDFromProgID(L"Excel.Application", &clsid); こいつは、ProgIDからCLSIDを求めている。 んで、そのCLSIDからExcel.ApplicationインターフェイスのpXlAppを取得してる。 pXlAppからWorkbook伝いにWorksheetsを求めればいいんじゃない?
870 名前:869 mailto:sage [2007/05/07(月) 22:07:39 ] メソッドとかのノードがわからんだったら oleviewとかで調べてみてわ?
871 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 22:08:18 ] >>867 来ないから安心しろ 来るといったらせいぜいSendMessageした時くらいだろ
872 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 22:08:34 ] ×てわ ○ては
873 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 22:09:16 ] >>871 SendMessageはメッセージループから来るだろ・・・
874 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 22:09:59 ] >>873 MSDN嫁
875 名前:867 mailto:sage [2007/05/07(月) 22:13:59 ] >>871 自分が実験した感じでは、9xでは起動時に、 XPでは通常時でも半々ぐらいで直接コールバックに来るみたいです。 また、XPで直接コールバックに来た場合、 DefWindowProcをしない場合に、メッセージループにも来てくれるみたいです。
876 名前:866 mailto:sage [2007/05/07(月) 22:15:49 ] // Call Workbooks.Add() to get a new workbook... IDispatch *pXlBook; { VARIANT result; VariantInit(&result); AutoWrap(DISPATCH_PROPERTYGET, &result, pXlBooks, L"Add", 0); pXlBook = result.pdispVal; } この後です。pXlBook を使ってどうAutoWrapを使えばいいのかが分かりません。 ブック.Worksheets(xxx).xxxxxxxx
877 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 22:19:35 ] >>875 同一スレッド内で UpdateWindow の類が発生したときには直接コールバックに来る。 他スレッド(プロセス)からの場合はどうだったか覚えてない。 ウィンドウが Activate/Deactivate されたときの再描画の挙動も普段の WM_PAINT とは 違っていたような記憶もある。
878 名前:867 mailto:sage [2007/05/07(月) 22:33:47 ] >>877 >Activate/Deactivate 自分も違うような感じがしていました。 もう一度実験してみます。
879 名前:869 mailto:sage [2007/05/07(月) 22:52:06 ] このオブジェクトは大きな流れとして Application → Workbooks → Workbook → Worksheets → Worksheet とある。 んでこれ・・・ AutoWrap(DISPATCH_PROPERTYGET, &result, pXlBooks, L"Add", 0); pXlBookのAddメソッドを、AutoWrapという補佐関数を介して呼んでいる。 なお、Addメソッドの結果は、追加した新しいブックのインターフェイスポインタが入ってる。 (Workbook& Workbooks.Add()な感じで、結果はresultにある) メンバ一覧 msdn2.microsoft.com/ja-jp/library/microsoft.office.interop.excel.workbooks_members (VS.80).aspx しかし、DISPATCH_PROPERTYGETとは言うけど、Addはメソッドだよなー 結果、pXlBookには、いい値が入ってる?
880 名前:デフォルトの名無しさん [2007/05/07(月) 23:19:32 ] WindowsMediaPlayerのパス位置をAPIで取得したいのですが、 どうやればできるでしょうか? マイドキュメントとかはSHGetSpecialFolderLocationで取得できましたが、 アプリ個別は絶対パスで指定方法しか使えませんか? よろしくお願いします。
881 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 23:25:47 ] COMなレジストリを探索するのはどう?
882 名前:デフォルトの名無しさん [2007/05/08(火) 00:00:18 ] PATHにないのに、startやファイル名を指定して...で起動できるものは HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths\ の下にwmplayer.exeがあるよ
883 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 00:06:36 ] その中を漁ると、消したはずのエロゲーのパスとかが残っていて、他人の環境で確認すると楽しいよ。
884 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 00:12:27 ] >>880 playerを起動させて、プロセス一覧から取ってくるとか。 ユーザが入力しなくていい分、楽かもしれない。
885 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 00:18:15 ] calc, notepadみたいに、Shellでwmplayerって打てば開くんやね
886 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 00:24:37 ] >>882 LoadLibraryに"wmplayer"でパスを取る解法もあるのか
887 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 00:27:32 ] システムドライブ+\Program Files\Windows Media Player\wmplayer.exe
888 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 00:30:18 ] 16、24、32、48の各サイズを含むアイコンから ExtractIconExで取得される 小さいアイコンは16×16と24×24で 大きいアイコンは32×32になるのでしょうか? DrawIconExでアイコンハンドルをhIconSmallにして、サイズを16より大きくすると 24×24のアイコンが表示されます。 また、ハンドルをhIconLargeにし、サイズを32より大きい値を指定すると 32×32のアイコンが拡大されて表示されてしまいます。 たとえばサイズ16のアイコンを24に拡大して表示とか サイズ48のアイコンの表示が出来ません。 分かりにくくて申し訳ありませんが、 分かる方いたらお願いします。
889 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 00:35:26 ] LoadImage でサイズ指定してロードしたらどう?
890 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 01:09:32 ] >>882 へー、880じゃないけどすごく参考になった。サンクス
891 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 01:13:52 ] >>889 すいません、説明が足りませんでした。 dllやexe, iclなどからのロードもあるので アイコンインデックスを指定する必要があったので ExtarctIconExを使ってました。
892 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 03:24:12 ] >>882 環境変数と引用符がある場合があるので注意 scripting.cocolog-nifty.com/blog/2007/03/path_367f.html
893 名前:866 mailto:sage [2007/05/08(火) 05:43:59 ] >>866 ,869,876,879 aaaa.bbbb ↓ AutoWrap(DISPATCH_PROPERTYGET, NULL, aaaa, L"bbbb", 0); aaaa.bbbb(cccc) ↓ AutoWrap(DISPATCH_PROPERTYGET, NULL, aaaa, L"bbbb", 1, cccc); aaaa(2).bbbb は出来ないのでしょうか?
894 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 08:10:53 ] >>893 志村! itemプロパティ
895 名前:880 [2007/05/08(火) 08:47:01 ] いろいろな方法があるのですね。 皆さんのおかげで解決できそうです。 ありがとうございました。
896 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 09:44:37 ] 指定したテキスト(ローマ字とか)をしゃべらせるモジュールって MS系であります?
897 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 10:01:11 ] MSのSAPIと、それを使ったやつってこと?
898 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 16:32:55 ] Win32APIで、猫の本見ながらやってるのですが、 どうしてもBITMAPが表示されません。ソースは↓です! ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3952.txt どうやらLoadBitmapでエラーが出てるようなのですが・・・。 理由が良く分かりません。助けて管あfじえじそjふぃおあjふぁお
899 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 16:38:52 ] もしもLoadBitmap()でエラーが出てるなら、ソースじゃなくてリソースファイルのほうの問題だ リソースのほうで、"MYBMP"となってるか? もし、ダブルクオート無しの MYBMP になってるなら、 LoadBitmap(hInst, MAKEINTRESOURCE(MYBMP)); こうしてみ
900 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 16:40:01 ] >>898 追記 リソースファイル↓ ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3953.txt
901 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 16:42:40 ] >>899 MAKEINTRESOURCE(MYBMP)にしたら出来ました! ありがとうございます! MAKEINTRESOURCE・・・調べてみます!
902 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 17:32:56 ] ビットマップ上にTextOutで文字を書いたり、 エディットコントロールを置いたりすると、文字の背景が白(デフォルト)に なると思うのですが、これを透過して後ろのビットマップを見えるように することは可能でしょうか?
903 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 17:39:02 ] えっきすおあ
904 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 17:46:24 ] TextOut 側は SetBkMode(... TRANSPARENT) でなんとか コントロール側は… WS_EX_LAYERED する?
905 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 17:55:23 ] >>903 BitBltの最後の引数のところですか?SRCINVERTでXORとったら BMPが真っ白になりました。まぁ当たり前なのですが・・・。 CreateWindow()の中で背景とXORを取れるようなのがあるのでしょうか?
906 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 18:02:49 ] >>905 ありません。 WS_TRANSPARENT にして WM_PAINT 時に上書きする程度。 あるいは SetWindowRegion でくりぬく
907 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 18:04:33 ] (背景 AND マスク) XOR 文字
908 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 18:25:42 ] TextOutについては>>904 さんので上手くいきました。 CreateWindowEx()にかえてWS_EX_LAYEREDしたら、文字も消えますね。 結構分からないこと多いので>>906-907 について調べてみます・・・
909 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 18:31:52 ] >>908 コントロール側を Layered Window にって意味で書いたが… 正解かどうか微妙 BitBltしてる側の window style でどうこうできる代物ではないのは確実だと思われ。 # SetWindowLong(コントロール側wnd, WS_EX_LAYERED) して SetLayeredWindowAttributes(コントロール側wnd)
910 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 18:38:50 ] WS_EX_LAYEREDはWS_CHILDは無理
911 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 18:42:29 ] コントロールをサブクラス化して、WM_PAINTをがんばる
912 名前:909 mailto:sage [2007/05/08(火) 18:44:56 ] >>910 ありがと。 WS_CHILD 相手はダメであったかー
913 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 19:15:51 ] 簡易切り替え有効状態のXPまたはvistaで、ユーザー名とパスワードがわかってる 別のユーザー(未ログオン状態)にAPIだけで切り替えって無理ですかね。 すでにログオンしてるならWinStationConnect()で切り替えられるってとこまでは何とか なったんだけど、未ログオンのユーザーのログオンを自動化する方法が解らなくて・・・ というか方法無さげ?
914 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 19:41:26 ] フックってあの赤くて毛むくじゃらで頭にプロペラがついたやつ?
915 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 19:47:38 ] >>914 135 246R ↑これ
916 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 20:04:58 ] WM_INITDIALOGの反対はWM_DESTROYとWM_CLOSEどっち
917 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 20:18:31 ] どっちも違う
918 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 20:21:17 ] 多分 WM_CLOSE 呼び出されるタイミングで、まだ 子供window が生き残ってるから WM_INITDIALOG は子供window が出来上がった後に来るしね
919 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 21:09:01 ] 子供window
920 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 21:18:52 ] child window の直訳と考えれば別に間違ってるわけでもない
921 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 21:20:11 ] 出来た子供がオスかメスかはどう判断すればいいの?
922 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 21:23:12 ] ちんこ見ればいい
923 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 21:24:41 ] BOOL GetWindowSex( HWND hwnd, LPWINSEX lpWinSex ); 書いてて虚しくなった
924 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 21:30:41 ] Win3.1まではWINS構造体 32bit時代からはWINSEX構造体
925 名前:デフォルトの名無しさん [2007/05/08(火) 21:44:37 ] FOX★公認!!! 俺たちのクリックで日本を一位にしようぜ!! “30年は日本に手は出せないな”という勝ち方をしたい wwwww.2ch.net/test/read.cgi/news4vip/1178602852/ 1. ポーランド 139,797,680 2. チリ 137,040,439 3. ★日本 86,475,213★ 4. イスラエル 80,930,530 5. スロベニア 57,137,042 6. フィンランド 40,857,499 石を投げる戦争から人は進化・進歩を遂げ、剣や槍などの武器をもって戦うようになった 人間はさらに発展し兵器を使う戦争を始めた そして今、指先一つを武器とした電脳戦争が勃発したのであった・・・ 皇国を勝利へと導くには貴様らの参戦が不可欠である ・戦場 www.clickclickclick.com/default.asp ・まとめサイト www33.atwiki.jp/clickvip/
926 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 21:59:59 ] >>887 せめてProgram Filesの位置はSHGetFolderPathで取ろう
927 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 22:52:25 ] 実行ファイルのアイコンを設定するにはどうすればいいんですか? ウィンドウの左上のアイコンは変えれたのですが・・・
928 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 22:54:53 ] >>925 BitBlt() じゃなくて StretchBlt() 使えって。
929 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 23:06:07 ] じゃあこれから子ウィンドウの事は子供windowって言おうぜwwwwwwwwwwwwwww
930 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 23:15:53 ] >>929 んじゃ親ウインドウは、大人ウィンドウかww
931 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 23:27:21 ] >>918 WM_DESTROYでも子ウィンドウが生きてることは保証されてるぞ >>927 エクスプローラーでは一番若いIDのアイコンが表示される
932 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 23:31:15 ] 何かおばちゃん細胞みたいなノリだな。
933 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 23:33:25 ] 親ウィンドウが、ダイアログボックスとかを開いている状態で、 親ウィンドウにSendMessageはできるが、 PostMessageができない状態であるか 調べるやり方がありましたら教えてください。
934 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 23:35:11 ] EnableWindowでいいんじゃね?
935 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 23:36:01 ] IsWindowEnabledだ。
936 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 23:37:01 ] >>933 モーダルダイアログ開いててもPostMessage出来るぞ
937 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 23:55:09 ] >>931 それで、アイコンが変わらなかったのか・・・ ありがとうございました!無事解決しました。
938 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 00:12:13 ] >>937 更新タイミングの自由度は低いがアイコンハンドラを作ればエクスプローラ上での 実行形式ファイルのアイコンも変更可能だぞ。
939 名前:933 mailto:sage [2007/05/09(水) 00:14:08 ] >>934-936 ありがとうございます。 IsWindowEnabledでいけそうです。 後、MessageBoxはモーダルダイアログですかね。 第一引数をHWND、NULLどちらの場合でも、 WM_PAINTがメッセージループには来てくれないみたいです。 InvalidateRectをしても直接コールバックの方に来てしまいます。
940 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 00:44:41 ] >>939 MessageBoxでは内部でメッセージループが回ってるんだよ
941 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 00:45:10 ] UpdateWindowしてないか
942 名前:933 mailto:sage [2007/05/09(水) 01:03:39 ] >>940 >>941 少し理解できました。 UpdateWindowはしていません。InvalidateRectはしています。 UpdateはSendMessage(WM_PAINT)、InvalはPostMessage(WM_PAINT) だと思うので、意図したメッセージループに来てほしいのですが、 MessageBox独自のメッセージループに移行してしまうので、 処理が変わってしまう感じですかね。
943 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 01:23:14 ] >>942 InvalidateRectは無効領域を追加するだけ。 無効領域があり、かつメッセージキューにメッセージが無くなったときに システムはWM_PAINTを生成する。
944 名前:933 mailto:sage [2007/05/09(水) 01:44:32 ] >>943 なるほど、ありがとうございます。
945 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 03:11:07 ] >>47 linux自体Solarisや*BSDから見ればカスなんだが
946 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 03:23:02 ] >>945 よう、カス
947 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 08:01:47 ] 僕バッカー!
948 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 14:14:25 ] >>942 そこらへんのメッセージループでもなにか特定の処理を行いたい場合には、 ローカルフックを使うのが簡単。dllもいらないし。
949 名前:デフォルトの名無しさん [2007/05/09(水) 16:03:32 ] アイコン入りのDLLからのアイコン画像を取得する方法を教えてください。 これ ringonoki.net/s-shot/icon/khre.png みたいに32x32x8のように色とサイズの情報を取得したいです。
950 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 16:50:08 ] >>946-947 バッカス
951 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 17:03:51 ] >>949 www.google.co.jp/search?q=DLL+EnumResourceNames
952 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 01:37:55 ] >> ありがとうございます。やってみます。
953 名前:デフォルトの名無しさん [2007/05/10(木) 04:15:56 ] >>951 EnumResourceNamesの第1引数に指定するHMODULEはどうやって取得すればよいですか? LoadLibraryでHMODULEを取得しようとしましたがshell32.dllではエラーになり、 APPWIZ.DLLではLoadLibraryは成功しましたがEnumResourceTypesがTRUEを返しました。
954 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 07:41:33 ] ググレカス
955 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 07:57:30 ] >>953 > LoadLibraryでHMODULEを取得しようとしましたがshell32.dllではエラーになり、 エラーとは何か? > APPWIZ.DLLではLoadLibraryは成功しましたがEnumResourceTypesがTRUEを返しました。 TRUEを返すと何か問題が?
956 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 08:01:56 ] CreateFile の hTemplateFile って使えないの? ↓のようにやってもtest.txtの属性が、test2.txtにはコピーされないみたい。 HANDLE hFrom = ::CreateFile("c:\\test.txt", GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL); HANDLE hTo = ::CreateFile("c:\\test2.txt", GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, hFrom); ::CloseHandle(hFrom); ::CloseHandle(hTo); >[in] Handle to a template file, with the GENERIC_READ access right. The template file supplies file >attributes and extended attributes for the file being created. This parameter can be NULL. 最後の一文って一体。。。
957 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 08:15:28 ] 俺も使ったことないな、最後の引数
958 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 15:26:38 ] Explorerの右上の旗のロゴを隠したいのですが、 SetWindowPosやShowWindowで隠そうとしても、枠が残ってしまいます。 専用の関数みたいなものがあるのでしょうか?
959 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 15:39:27 ] >>958 HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Toolbar\Explore/ShellBrowser ITBarLayoutのアドレス0x10のバイトの下位3bit目をオフ
960 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 15:41:35 ] 下位3bit目じゃなくて下位4bit目だった。ようするに0x08
961 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 15:54:00 ] >>960 できました、ありがとうございます。
962 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 21:42:34 ] 質問です HTMLのFORMタグでSUBMITすると何も指定していなければ FORMのACTIONで指定したURL等に ?---=---&___=___と付とついて送信されますよね? その時日本語が値のときにエンコードされているように見えるのですが、 これはAPIとして提供されている機能でしょうか? そうであればAPI名を教えてくれませんか?
963 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 21:43:13 ] そんなWin32APIはありません。
964 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 21:50:59 ] METHOD=GET の話か まあURLエンコードでググれ
965 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 22:02:44 ] IMultiLanguageインターフェイスのConvertStringメソッドとかあるけど、 ここじゃスレ違いかもね
966 名前:デフォルトの名無しさん mailto:age [2007/05/10(木) 22:21:50 ] BitBltについて質問です。 転送元と転送先が同じDCの場合でも、この関数はちゃんと動く保障はありますか?
967 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 22:39:33 ] >>966 厳密にはない。 GetDeviceCaps関数のRASTERCAPSで確認。
968 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 23:41:11 ] WINDOWPLACEMENTのshowCmdあたりをいぢってて質問。 最大化してたウィンドウが最小化したあと、元の状態に戻すにはどうすればよいですか? SW_RESTOREだと最大化状態が解除されてしまうので。
969 名前:デフォルトの名無しさん [2007/05/11(金) 00:50:22 ] Windows Picture and Fax ViewerをCreateProcessで実行したいのですが、 notepad,mspaintのような起動方法は可能でしょうか?
970 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 01:20:37 ] 関連付けのレジストリを見れば分る
971 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 01:21:04 ] 時々エディットコントロールのボーダーが見えなくなったり、 エディットコントロールが見えなくなって下のBMP画像が出てきたりするバグで 困っています。これらはWM_PAINTで再描画された時に直るのですが、 むしろ、WM_PAINTで大きなBMP画像が毎回毎回再描画されているせいで エディットコントロールの表示がおかしくなるのではないかと思ってます。 BMP画像は壁紙としてウィンドウと同じサイズのものを使用しているのですが、 WM_PAINTでことある毎に再描画せずにずっと表示させるようなことは可能なのでしょうか?
972 名前:デフォルトの名無しさん [2007/05/11(金) 05:35:42 ] システムを終了するときの終了オプションダイアログ(コンピューターの電源を切る)のような 完全なシステムモーダルなダイアログボックス、或いはウィンドウってどうやって作ればいいんでしょう? ダイアログボックスにシステムモーダル属性を付けてもだめでしたorz タイマーでフォーカスを取り返し続けるっていうのは無しで、なにかいい方法ありますか?
973 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 06:20:01 ] HWndにNULLを入れて
974 名前:デフォルトの名無しさん [2007/05/11(金) 06:32:30 ] >>973 無理ですたorz
975 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 07:24:03 ] グローバルフックしたら?
976 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 07:28:52 ] システムモーダルつけてアド民では?
977 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 08:06:40 ] システム乗っ取るようなものじゃないかそれ? そんなお手軽に実現できていいのかなあ
978 名前:972 [2007/05/11(金) 08:14:53 ] どうしても乗っ取りたいんです。
979 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 08:47:58 ] 濃そうだから海外のシステム八苦系のコミュで聞いたら?答えが出ると思うよ
980 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 09:10:22 ] タイーホ!
981 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 09:27:54 ] GINA?
982 名前:デフォルトの名無しさん [2007/05/11(金) 10:21:17 ] >>978 は騙りだから無視して フリーのソフトで部屋にいない間、キャプチャーしてるんだけど(LiveCapture2ってソフトです) デスクトップロックが効かないんですよね それで、もし誰か侵入者がロックの掛かってないPCに触ったら(マウスが移動したら) システムモーダルのダイアログを表示してパスワードを要求する、って感じでプログラムを作ってるわけです 多分もっといい方法があるんだろうけど、結構面白いからこれでやってみようかなぁと どんなもんでしょうか
983 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 10:27:22 ] 誰か次スレ立てて
984 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 10:27:57 ] >>981 NT,2000,XPなら正解。GinaのShellShutdownDialogあたりちゃうか。 >>982 やってみれば?OSのリストア何回かすることになると思うけどw。
985 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 10:29:17 ] >>982 っ スクリーンセーバー
986 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 13:09:53 ] 982のやりたいことはスクリーンセーバーそのものだよなw
987 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 14:00:42 ] >>971 >WM_PAINTでことある毎に再描画せずにずっと表示させるようなことは可能なのでしょうか? それは無理。 WS_CLIPSIBLINGS とか WS_CLIPCHILDREN とかそのあたりをちゃんと理解して 適切に描画されるようにコードを直せば良い。
988 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 14:22:29 ] >>982 俺も >>985-986 に同意。 コアをスクリーンセーバーで作れば、OSのダイアログが利用できる。 スクリーンセーバーが稼働中に録画するような構造にすれば、 まさに君の望む挙動になるんでない? 問題はスクリーンセーバ稼働中にLiveCapture2というソフトが ちゃんと裏で動いてくれるかどうかだけど。 そこがダメなら、そこを自作する方向に行くとか。w 仮に裏で動いてくれるなら、何も作る必要がないという事にならないか?
989 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 17:15:45 ] CreateDesktop してみればどうかな。 スクリーンセーバーも別デスクトップで動作していたと思う。
990 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 18:00:37 ] CreateDesktopしてもNT系ならCtrl+Alt+Delで解除されるよ。 パスワードかけるならスクリーンセーバーでOSに丸投げするか、GINAしかない。
991 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 18:03:14 ] しかしGINAはVistaでは廃止されてしまった。 Vistaで同じことやるにはMSとShell Credential Providerの開発契約しないとだめぽ
992 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 18:10:48 ] まじかよ・・・
993 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 18:15:22 ] 開発契約なんぞ必要なのか?サンプルも公開されてるのに? ドキュメントもご丁寧に日本語化されてるけど。 ttp://msdn.microsoft.com/msdnmag/issues/07/01/CredentialProviders/default.aspx?loc=jp
994 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 18:17:05 ] もういっちょ。 ttp://www.microsoft.com/downloads/details.aspx?familyid=B1B3CBD1-2D3A-4FAC-982F-289F4F4B9300&displaylang=en
995 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 18:36:18 ] >>972 最大化したウィンドウ(タイトルバー無し、最上位)にデスクトップ画面を 描画して、そのウィンドウを親ウィンドウとしてダイアログを出せばいいんじゃね? XPで終了ダイアログを出すと背景がだんだん白黒になっていくから そういう仕組みでやってると思うけど。
996 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 19:51:15 ] >>993-994 Vistaβの頃のSDKには「詳細は問い合わせて契約してくれ」みたいな英文はあった気がした。 正規版になって普通に一般公開されたのかね。
997 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 20:21:34 ] デルファイでできたアプリケーションのダイアログウィンドウのハンドルについて質問です。 spy++では、親がTfrmMainというクラス名と判明しました そこでGetWindowLongで親ハンドルを取得すると、親はTApplicationというクラス名でした。ここでもう整合性がないです TApplicationの名前をもつハンドルを取得して、そのハンドルからダイアログハンドルを検索するためにFindWindowsExをしたのですが、Nullが返ってきました いったいどんな親子関係なんでしょうか? レスおながいします(´・ω・`)
998 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 20:31:28 ] 見えない親ウインドウがある。
999 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 20:32:22 BE:124224588-2BP(222)] >>995 ホットキー止めないと。Alt+Tabとかで普通に抜けられる。
1000 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 20:32:46 ] 次スレ Win32API質問箱 Build53 ttp://pc11.2ch.net/test/read.cgi/tech/1178882828/
1001 名前:1001 [Over 1000 Thread] このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。