1 名前:デフォルトの名無しさん [2007/05/11(金) 20:27:08 ] スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。 やさしいお兄さんやお姉さんたちが答えてくれるかも。 過去スレ、関連リンクは>>2-5 くらい。 ■注意 ・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。 ・日本語版MSDN Online Libraryは不完全です。英語版(msdn.microsoft.com/library/ )の利用推奨。 ・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。 ・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで
2 名前:デフォルトの名無しさん [2007/05/11(金) 20:28:47 ] 52 ttp://pc11.2ch.net/test/read.cgi/tech/1176828891/ 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 名前:デフォルトの名無しさん [2007/05/11(金) 20:29:30 ] 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 名前:デフォルトの名無しさん [2007/05/11(金) 20:30:13 ] - 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 名前:デフォルトの名無しさん [2007/05/11(金) 20:31:09 ] 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/05/11(金) 20:36:07 ] >>1 乙 >>前スレ997 Delphiスレで聞けよ API関係無ぇじゃねぇか とりあえず、整合性が取れてないのはおまいのコーディングが間違ってる可能性が99.99%
7 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 20:45:18 ] 前スレ>>997 Spy++でダイアログの親がTfrmMainってのはどこをどう見て決定したん? Delphiのフォームは全てトップのアプリケーションウィンドウであるTApplicationに所有されてるはずなんだが
8 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 20:48:04 ] 見た目だろw
9 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 20:57:52 ] 毎年のことだが、この時期はアホな質問が多いですな
10 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 21:05:14 ] 僕バッカー!
11 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 21:14:27 ] >>10 そうでもないよ。
12 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 21:53:41 ] >>10 おい、忘れ物だぞ っデ
13 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 22:08:10 ] デ僕バッカー!
14 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 22:09:26 ] 僕バッカー!っデ
15 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 22:13:06 ] 何人居るんだよww
16 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 22:17:05 ] 僕バッカデー!
17 名前:デフォルトの名無しさん [2007/05/11(金) 23:13:30 ] --、ヽ//彡- ,= '::::, ̄、:::::::::::`:ヽ.、 .,..::彡シ' ` 、:、:::::::::`>=-、_ 今日も明日も ,/シノ ,,__ ```ヽ 、| i ,`ヽ .` ヽ 、 日曜日 /:/ ~` `` `-< | `ヽ、 ..//シ ,, ---、 _,,イi `ヽ、 そしてまた //|| ,i!' ,-=--彡 |.| i .`、 明後日も…… /| `----'' , .|.|/, `、 || / ,,--i .、`--' `- .ノ'' `、 明明後日も… .|| .!=r' .ノ.i , ' `i--'' ., / `i | ` ` '-.' (__,i- '~ 、 ./ ./ .! .>、 .-、 , - ニ⊃ 、 ノ _/ | ./ -ヽ、ヽ、 _`ニ三-' ,,,,,=ニ/~ | | i -='-`- >'  ̄ ̄ ヽ,- ' |' ,- / | | / , '  ̄!-─ / ヽ ヽ _ / ノ | そしてまた ! ' i' ,- | ヽ ヽ /-=ニ-- .| .| `7 _ | ノ- 、 ノ 次の日も `i、 `-i_ , 、 ,>、 , - '` 、 ` | |`i- 、__,,,, , i''i~`ヽ、__,,, -i-- 'i'~i i ヽ | 次の日も / .\ ,ノ | .\ ~ ヽ .|ノノ | ,ノ .| ' ,) ` ヽ、 .|ニ-.' !、 | 次の日も , -`─── '  ̄フ `i .| >-' | i' i' .i-.,--,.- '' ̄` -- 、 ' _, ' , ノ'~ 次の日も ` ``-!-!、」 i'., -, ,_ `──ニフ`──''''''~ . ̄` ^ '-.!、!、 ,、_, -'''''~
18 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 23:23:05 ] ふふふ、決算賞与で40マソ出た俺は勝組。 来月末はその倍ww
19 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 23:26:22 ] >>18 スレ違い・・・・クソー羨ましい
20 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 23:40:14 ] 自給3000円のバイト見っけた俺も勝ち組
21 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 23:42:48 ] 前スレの最後で出てたShell Credential Providerだが、MSDNには確かに > For all credential provider information and questions, send e-mail to the > Shell Credential Provider alias: credprov@microsoft.com. とか書いてる場所が残ってた。 msdn2.microsoft.com/en-us/library/aa480152.aspx
22 名前:デフォルトの名無しさん [2007/05/12(土) 06:30:14 ] GINAってなんぞや
23 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 06:35:01 ] このスレってインテリジェンス検索エンジンなのか?
24 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 16:40:58 ] Graphical Identification and Authentication ってことはGInAが本来の綴りなのか。
25 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 16:51:08 ] 意味不明
26 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 18:46:54 ] >>25 誰に言ってんの?
27 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 20:12:21 ] お前
28 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 20:35:48 ] タスクトレイに登録されてるアイコン一覧を取得するにはどのようなことをすればいいのでしょうか。 できれば、explorerのプロセスが動いてないときでも取得できるように。
29 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 20:37:40 ] FindWindow
30 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 20:39:42 ] GINAはvistaで廃止だっけ
31 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 20:41:22 ] 廃止。前スレで既出
32 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 20:59:03 ] >>28 explorerが動いてなきゃアイコンもネェヨ
33 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 23:20:53 ] VISTAで生ソケット扱うのってどうすればいいの?
34 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 00:21:13 ] >>28 理論的には、explorerより先に起動して、 自分がタスクトレイの振りをしてAPIフックかなんかしてアイコン登録を受け付け、 それを本物のexplorerに登録するような挙動をすれば、 自身が稼働中は全てのアイコン操作を把握できるかもな。
35 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 14:50:25 ] 実行時の大きさを最大にしたショートカットから起動した時 大きさを変更させないようにするにはどうすればいいでしょうか? WM_SIZEからリサイズしているんですが、どうもWM_SIZEが送られてくる前に最大化されているようですので…
36 名前:デフォルトの名無しさん [2007/05/13(日) 15:22:25 ] CopyFileでネットワークフォルダにあるファイルをコピーしようとしたら ERROR_BAD_NETPATHエラーがでるのですが、下記のコードで何処がおかしいのでしょうか? ::CopyFile( "\\\\testgroup\\testserver\\Backup\\test.txt", "c:\\data\\test.txt", false );
37 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 15:24:00 ] "\\\\testgroup\\testserver\\Backup\\test.txt"
38 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 15:34:51 ] >>36 要は、そんなネットワークファイルネェヨって怒られてんだよ
39 名前:デフォルトの名無しさん [2007/05/13(日) 15:38:17 ] >>37-38 エクスプローラでそのネットワークフォルダにtext.txtをコピーしたんですが 書き方的には↓であっていますよね? \\グループ名\コンピュータ名\フォルダ名\ファイル名
40 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 15:40:22 ] \\コンピュータ名\フォルダ名\ファイル名
41 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 15:41:26 ] >>39 グループ名はいらねんじゃねーか?
42 名前:デフォルトの名無しさん [2007/05/13(日) 15:45:18 ] >>40-41 ありがとうございます。 コンピュータ名から書けば正常にコピーできました。
43 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 16:19:18 ] >>35 WinMainの第4引数がSW_SHOWMAXIMIZEDだったら SW_SHOWNORMALに置き換える。
44 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 16:45:03 ] >>42 マイネットワークから目的のコンピュータの目的のファイルが有るフォルダ開いてみりゃパスなんて一目瞭然なんだが なぜそれを間違えれるのか・・・
45 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 16:58:50 ] EnumDisplayDevicesなのですが、 日本語版と英語版で引数の型が違います。。。 msdn.microsoft.com/library/ja/jpgdi/html/_win32_enumdisplaydevices.asp msdn2.microsoft.com/en-us/library/ms533226.aspx いったいどちらを信用すればいいのでしょうか?
46 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 16:59:49 ] ヘッダ
47 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 17:08:23 ] >>45 日本語版の説明の「現在使われていません」の現在は2007年じゃないぞ。 たぶん2000年頃の話。
48 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 17:18:27 ] 日本語版ってメンテされてないの?
49 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 17:21:29 ] こういう資料に日付も入れないで「現在」って書くのは微妙だな。 Wikipediaなんかもものすごく時代遅れな記述が堂々と「現在」とか書かれてたりするし。 見つけ次第直してるけど
50 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 17:55:15 ] \\?\c:\hoge\hoge や \\.\c:\hoge\hoge というのはどういう意味でしょう?
51 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 18:02:23 ] それってWin32API関係あるのか?
52 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 18:02:29 ] 上はパス名の解析を無効にする 下は「このコンピュータ」
53 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 18:11:22 ] >>46-49 どうもありがとうございます。 このAPI、内部で「マイナーバージョンアップ」しているみたいですね。 VirtualPC上のWin98では最初の引数に非NULLを与えるだけで落ちます。 使うなってことか、もしくはOSの種類によって切り替えろってことなんでしょうか……(^^;
54 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 18:16:18 ] 切り替えるしかないだろうね 実行ファイルに互換モードが適用されたりするとさらにカオス
55 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 18:23:05 ] >非NULLを与えるだけで落ちます。 ワロタw 9x対応超がんがれ
56 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 19:39:13 ] >>43 有難うございます。 試してみますね
57 名前:デフォルトの名無しさん [2007/05/13(日) 19:46:09 ] モニタの電源を切るを作動させるAPIがあった教えて下さい 任意のタイミングでモニタを省電力モードにさせたいです よろしくお願いします
58 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 20:33:51 ] SC_MONITORPOWER
59 名前:57 mailto:sage [2007/05/13(日) 21:05:54 ] >>58 出来ました ありがとうございました
60 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 22:37:05 ] GDI+を使おうとしたのですが、 gdiplusimaging.h(67) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません gdiplusimaging.h(67) : error C2440: '初期化中' : 'const char [37]' から 'int' に変換できません。 こんな感じのエラーが121も発生します。 なぜですか?
61 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 22:42:02 ] <gdiplus.h>より先に<windows.h>をWIN32_LEAN_AND_MEANなしでインクルードしている?
62 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 23:06:47 ] >>61 助かりました。ありがとうございます。 気がつきませんでした。
63 名前:デフォルトの名無しさん [2007/05/15(火) 02:35:36 ] mciSendStringで、1回のプログラムで 複数のmidを流す場合、どうすればいいでしょうか。 open hoge.mid → play hoge.mid で再生し、曲を変えるときは stop hoge.mid → close hoge.mid → open foo.mid → play foo.mid とやっているんですけど、CPU率が上がりプログラムが動かなくなります。 戻り値は成功の0が返って来ます。
64 名前:デフォルトの名無しさん [2007/05/15(火) 14:31:14 ] ウォークエリアの幅or高さが200以下になったら、 幅or高さを表示するスクロールバーが現れるウィンドウを作っています。 WM_SIZEメッセージを以下の様に処理したのですが、上手くいきません。 (何がダメなのかというと、ウィンドウサイズが変更されて、 さらにもう一回ウインドウサイズが変更された時に、 スクロールバーが1ターン遅れて適応されるのです。) ウィンドウサイズ変更後、即スクロールバーが現れたり消えたりするためには、 どこをどう直したら良いのでしょうか?? case WM_SIZE: { RECT rt; GetClientRect(hWnd,&rt); LONG style = GetWindowLong(hWnd,GWL_STYLE); if(rt.right <= 200) style |= WS_HSCROLL; else style &= ~WS_HSCROLL; if(rt.bottom <=200) style |= WS_VSCROLL; else style &= ~WS_VSCROLL; SetWindowLong(hWnd,GWL_STYLE,style); } return 0;
65 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 14:38:24 ] >>64 WM_SIZING, WM_GETMINMAXINFOとかかな?
66 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 14:39:22 ] >>64 RedrawWindow
67 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 14:44:05 ] >>64 ttp://msdn2.microsoft.com/en-us/library/ms633591.aspx >if you change any of the frame styles, you must call SetWindowPos >with the SWP_FRAMECHANGED flag for the cache to be updated properly.
68 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 14:51:44 ] >ウォークエリアの幅or高さが200以下になったら、  ̄ ̄ ̄ ̄ ̄ ̄ 通路?
69 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 14:53:09 ] ワロタw ワークエリアだな。
70 名前:64 mailto:sage [2007/05/15(火) 15:59:24 ] お〜、ちゃんとできましたデス♪ アリガトウございました m(。−_−。)m >>68 >>69 あはは〜、間違えました^^;)
71 名前:デフォルトの名無しさん [2007/05/16(水) 01:31:03 ] 質問! 別のアプリの中のdatagridviewの要素を抜き出すにはどうすればいいの? listviewならLVM_GETITEMだけど、これでは無理でした
72 名前:デフォルトの名無しさん [2007/05/16(水) 02:04:43 ] MCIとかMCIWndとかって、WIN32らしからぬ野暮ったさっていうか、洗練されてないオールドタイプって感じなんだけど 関数とか引数とか・・ なんでなんでしょ? なんか歴史と関係あるの?WINSOCKSみたいな
73 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 02:16:16 ] 買収・合併
74 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 07:19:56 ] まるで、win32apiが洗練されてるかのような・・・w
75 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 08:27:15 ] 普通のAPIがスイッチ式だとしたらMCIは音声認識だからな。 高度なんだかアナログなんだか
76 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 16:03:30 ] スクリプトに組み込むには使いやすいんだよね‥‥>MCI
77 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 19:33:08 ] ショートカットファイルをその内容にしたがって正しく起動する 簡単な方法ってあるのでしょうか? お願いします。
78 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 19:37:48 ] ダブルクリックする
79 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 20:58:40 ] >>77 ShellExecute
80 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 21:27:43 ] >>77 くりぷろ
81 名前:77 mailto:sage [2007/05/16(水) 22:57:11 ] ShellExecuteでできました。 ありがとうございます。
82 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 00:05:29 ] ぐあ・・・緑クロスなんて出るのか。めっちゃ欲しいぜ
83 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 00:11:30 ] くりぺろ ぺたぺた
84 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 18:53:46 ] WM_CREATEにおいて、char配列の中身を全てエディットコントロールに 表示させているのですが、何故かスクロールバーが自動で下までスクロールされません。 //char配列の表示 SendMessage(hLog_s, EM_SETSEL, 0, -1); SendMessage(hLog_s, EM_SETSEL, -1, -1); for(i=0; i<10; i++){ if(lstrcmp(logs[num][i], "*")!=0){ SendMessage(hLog_s, EM_REPLACESEL, 0, (LPARAM)logs[num][i]); SendMessage(hLog_s, EM_REPLACESEL, 0, (LPARAM)"\r\n"); } } return 0; しかし、ボタンを押したときにこれと同じ動作をさせると、 スクロールバーが自動で下に移動し、最後の行が表示される状態になります。 これは何故WM_CREATEだとスクロールしないんでしょうか?
85 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 19:42:19 ] mciSend系で、メモリからロードというのは使えないですよね?
86 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 21:01:48 ] >>84 ボタン時はEM_SCROLLCARETが走るんじゃない?
87 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 23:37:32 ] >>86 WM_CREATE時にスクロールさせることは不可能なのでしょうか? SendMessage(hLog_s, EM_SCROLLCARET, 0, 0);を追加してみても結果は変わりませんでした。
88 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 00:17:34 ] >>87 なぜ、WM_CREATE時に拘る? WM_CREATE後半にRDW_INTERNALPAINTとRedrawWindowを組み合わせて WM_PAINTを呼んだタイミングでいいんじゃね? GetUpdateRectで更新領域の有無を判定すれば、 簡単なOnInitialUpdate
89 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 00:35:59 ] >>88 WM_CREATE時に拘るわけではありませんが、 そん時に処理するのが一番面倒じゃなくていいかなと・・・。 というよりも、ウィンドウを作成した直後に1度だけ行えばいい処理なので、 WM_PAINT内で処理するのもどうなのでしょうか・・・
90 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 00:44:16 ] EM_LINESCROLLで無理やりスクロールさせることで解決しました。 しかし、何でWM_CREATE時に限って出来ないのかは謎です・・・。
91 名前: ◆3.JjF77I26 mailto:sage [2007/05/18(金) 01:05:14 ] >>90 WM_CREATEはウィンドウを生成する前に送られてくる
92 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 02:06:50 ] >>91 ウィンドウを生成する前にですか。 なら、WM_CREATE時にCreateWindow()で色々作るってのも 何か変な感じがしますけど、まぁそういうものだ、で納得する事にします(´・ω・`)
93 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 03:37:59 ] WM_IME_COMPOSITIONにおいて、if(GCS_COMPSTR & lp)で 現在の編集文字列が習得された、または最新化された時に処理を行えると思うのですが、 これは変換中の文字をBackSpaceで削っていって、最後の1文字を消したときは拾えないですよね? 変換中の文字を削っていって最後の1文字を消した時に処理を行いたいのですが、 どうすればいいでしょうか?
94 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 04:30:58 ] MSNのメッセンジャーとかで、ウィンドウを最小化している時にメッセージを受け取ったら タスクバーのところがオレンジ色にピコピコして知らせてくれると思うのですが、 それはどのようにしているのでしょうか?
95 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 04:47:57 ] つピコピコハンマー
96 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 05:07:13 ] とりあえずFlashWindowEx()だと色が微妙なのですが・・・ あと、ミリ秒指定ではなく、アクティブになるまで点滅させたいです
97 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 05:15:54 ] >>96 すみません、どうやらタスクバーの方はオレンジ色になるようですね。 ミリ秒とカウント設定しても、指定した秒数の最後のほうの一瞬しか色が変化しないのですが これは何でなんですか?
98 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 08:08:24 ] >>92 わかるわかる。 MFCはOnInitialUpdateがあるから、 そんなこと意識せずにそこで記述するが、 OnInitialUpdateの互換(?)処理が>>88 だったら、 WM_PAINTは不恰好だよな。
99 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 08:11:20 ] >>96−97 FLASHWINFO構造体の中身あげ
100 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 10:02:35 ] manifestファイルつきのWin32APIオンリーの簡単なテストプログラムを作ったのですが、 Aという名前のフォルダーでは正しく実行できるのに、Bという名前のフォルダーでは実行できません。 Process Monitorで調べてみたら、Aではmanifestを読み込んでいるのに、Bでは駄目。 で、Bのフォルダー名をCにリネームしたらmanifest読み込みました。 逆にAをBにリネームしたら、今度は駄目になった。 なので、Bという名前のフォルダーに何か制限が掛かっているような気もするのですが、 これって、どのあたりのAPIが絡んでいるのでしょうか?
101 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 10:16:21 ] >>91 嘘つくな ttp://msdn2.microsoft.com/en-us/library/ms632619.aspx >The window procedure of the new window receives this message after the window is created, but before the window becomes visible.
102 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 10:54:26 ] 僕ハッカー
103 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 12:14:56 ] 僕バッカー!
104 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 13:13:23 ] バカバッカー!
105 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 15:17:45 ] >>99 info.dwFlagsをFLASHW_ALLからFLASHW_TRAYに変更したら正常に動作しました。 しかし、点滅のタイミングというか、点滅の間隔というか、不規則に点滅します。 なんか0.5秒くらい点滅したり、ほんと一瞬だけ色が変わったり・・・ 何故でしょうか?一応FLASHWINFOの中身をあげておきます。 info.cvSize = sizeof(info); info.hwnd = hwnd; info.dwFlags = FLASHW_TRAY | FLASHW_TIMERNOFG; info.uCount = 0; info.dwTimeout = 500;
106 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 19:01:21 ] >>105 FLASHW_TIMERNOFGをFLASHW_TIMER にしてみるとかとかとかとか
107 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 19:11:39 ] >>106 FLASHW_TIMERにしてもやはり、点滅の間隔がおかしいです。 なんかもの凄く気持ち悪いのですが・・・(´・ω・`)
108 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 19:37:17 ] 作成したアプリケーションを他のパソコンで起動させたところ、 アプリケーションの構成が正しくないと表示され起動されませんでした。 自分のパソコンでは正常に動作するのですが・・・何が原因なのでしょうか?
109 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 19:37:36 ] >>107 Exじゃないほうは使ってみた?
110 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 19:45:37 ] >>109 ウィンドウがアクティブになるまで点滅させたいので、Exじゃないといけないような・・・。
111 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 19:46:32 ] >>108 DLLが無いのでは もしくは、デバッグビルドを渡してたり?
112 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 19:52:55 ] >>111 それはデバッグなしで実行したときにDebugフォルダに出来るexeファイルの事ですか? まさにそれなんですが、それは実行ファイルとは違うのでしょうか?
113 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 19:53:17 ] >>108 ランタイムDLLのバージョン違いだな
114 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 20:01:10 ] >>112 ビルドに何使ってるかわからんが、VC++とかだと DebugとReleaseを切り替えられる。 Debugは開発環境で動かすものだ。
115 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 20:05:15 ] >>108 つまり、他のパソコンにDLLを入れないといけないという事ですか・・・ あまりそういうのは詳しくないので申し訳ないのですが、具体的にどうすればいいのでしょうか? >>114 Microsoft Visual Studio 2005です。一応Microsoft Visual Studio 2005がインストールされている 他のパソコンでは正常に動作するのを確認できています。
116 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 20:07:40 ] >>114 Releaseにしてビルドしたらエラーが102個も出てしまいました・・・。 そういう事なのでしょうか・・・。・゚・(ノД`)・゚・。
117 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 20:09:07 ] VS2005を使ってると予想
118 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 20:17:24 ] >>116 プロジェクトのプロパティでいろいろ設定しなかったか? あれはDebug、Release、共通、の3通りで設定できるんで Debugだけ追加でライブラリ指定してたりするとはまる
119 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 20:26:06 ] そのあたりではまる人間はVC初心者スレ行きだ
120 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 20:49:45 ] >>115 「プロジェクト」→「プロパティ」→「構成プロパティ」→「C/C++」→「コード生成」 の 「ランタイム ライブラリ」を 「マルチスレッド デバッグ DLL (/MDd)」なら「マルチスレッド デバッグ (/MTd)」に 「マルチスレッド DLL (/MD)」なら「マルチスレッド (/MT)」にしてビルド
121 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 21:04:14 ] #pragma commentで指定する俺は勝ち組
122 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 21:51:49 ] >>120 をやるほかに、ランタイムを用意する方法もある。 VC++ 2005ならランタイムは別途インストールするか、 マニフェスト書いてEXEと同梱する(ググれば何件か例が見つかる) SP1を当てているかどうかで別ファイルになるんで要注意(上がSP1用) www.microsoft.com/downloads/details.aspx?FamilyID=200b2fd9-ae1a-4a14-984d-389c36f85647&DisplayLang=en www.microsoft.com/downloads/details.aspx?FamilyID=32bc1bee-a3f9-4c13-9c99-220b62a191ee&DisplayLang=ja
123 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 21:55:25 ] BCBでVCLのスタティックリンクし忘れはしないけどbccのランタイムリンクし忘れで他PCで動かないとかはよくやる/(^o^)\
124 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 21:58:59 ] デバッグ用のDLLは配布禁止(ヘルプのどこかに書いてある)なので注意!!
125 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 22:21:46 ] ごめんなさい、ご飯を食べてました。 >>118 のように、Releaseでリンカ追加したらエラーはなくなり、 他のパソコンでも無事起動させることが出来ました。 ありがとうございます。 でも、他のパソコンでやると何故か変な動作したりするので これからそれを直そうと思います。Vistaのせいかな・・・。
126 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 22:25:09 ] なんか流れてしまってますが、>>105 をよろしくお願いします。 気持ち悪いです。
127 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 22:45:43 ] >>126 メッセージループが回らないと点滅しないな、これ。 内部的にWM_TIMER使ってるのかもしれん。
128 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 22:49:33 ] >>100 manifestを読み込んでいるかどうかはどうやって判断した?
129 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 00:30:51 ] >>100 OSは?manifestはリソース埋め込み? Vistaだと初回起動時に外部manifestが無い場合は次からは読み込まれないようだ。 ttp://sakura-editor.sourceforge.net/cgi-bin/cyclamen/cyclamen.cgi?log=dev&tree=c4802 一度XP互換モードにすれば解除される。
130 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 02:49:08 ] >>128 SysinternalsのProcess Monitorです。 >>129 それだ!!! 助かりました、ありがとうございます。 この挙動は仕様なのかな。ってことは、Superfetch絡みですかねぇ。
131 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 13:45:36 ] おぉ久々にためになる情報だ 知らないとハマるなこりゃ
132 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 15:13:23 ] 知ってる人は知っていると思うが、 mt.exe(Manifest Tool)を使えば、以前にVS6等で作ったexeに、再コンパイル・リンク無しで mnifestを埋め込むことができるよ。
133 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 16:50:25 ] manifestなんてマンドクセ
134 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 23:11:14 ] SendMessage(hLog, EM_LINELENGTH, (WPARAM)3, 0); EM_LINELENGTHって、第3引数番目の行までのバイト数を取得するんですよね? 上の場合だと、エディットコントロールhLogの3行目までのバイト数を返すんだと思うのですが、 第3引数の数字をいくつに変えても同じ数値が戻ってきます。 これは何故なのですか?
135 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 23:16:19 ] >>134 指定した文字インデックスを含む行の文字数を返す。
136 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 23:29:36 ] >>135 あるサイトの説明によると、 複数行TextBoxにおいて、指定した行インデックスの一つ前の行までのバイト数を取得する らしいんですけど、行インデックスとは、例えば第3引数に3を指定した場合、 3行目の先頭が行インデックスでいいんですか?
137 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 23:33:42 ] その説明は間違っている。今すぐ忘れなさい。
138 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 23:38:17 ] >>137 Σ(TдT)えぇぇぇぇ!? では、指定した行までのバイト数を取得するものはないのでしょうか? EM_GETLINEで1行ずつバイト数足していくしか方法ないですか?
139 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 00:22:48 ] >>138 つ EM_LINEINDEX 指定行の最初の文字の文字インデックスを返す。
140 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 00:25:27 ] どうやらEM_LINEINDEXというのがあるようですね。そのサイトに載ってるのが全部だと思ってました・・・。 とりあえずは解決しました。しかし、エディットコントロール内にどんどん書き足していき、 最大行数を超えると、先頭の行から消していくわけですが、出力する度に エディットコントロールの最上部に移動し、また最下部に戻すためちらついてしまいます。 SendMessage(hLog, WM_SETREDRAW, FALSE, 0);とかしてみたのですが、 全く変わりませんでした。このちらつきを抑えたいのですが、何かいい方法はないでしょうか?
141 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 00:29:39 ] >>139 ありがとうございます。微妙にすれ違いになったようですね(´・ω・`)
142 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 00:30:53 ] そんな変なサイト読まないで、マイクロソフトのドキュメント見ろよ。
143 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 00:42:06 ] >>142 MSDNがなかなか・・・なかなかで。 どうやらちらつく時と、そうでない時があるようです。 また、時々画面に白い横線が入ったりしてて気持ち悪いです。 どのくらい気持ち悪いかというと亜jsふぃじゃ;jfヵfdぁじふぇくらいです。
144 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 01:38:20 ] 意味不明
145 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 01:58:14 ] 俺最強
146 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 02:01:38 ] 俺西京
147 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 08:38:34 ] >>143 オフライン版は使ったことある?>>5
148 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 10:38:13 ] >>140 WM_SETREDRAWが駄目なら、LockWindowUpdateはどう? 使った事無いけど。
149 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 12:07:05 ] 0→"ERROR_SUCCESS" みたいにエラーから名前を取得する機構は無いですかね。
150 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 12:16:39 ] FORMAT_MESSAGE_FROM_SYSTEM
151 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 12:54:43 ] >>71 をどなたかお願いします
152 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 13:24:56 ] 一般に無理
153 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 14:05:42 ] >151 DataGridViewってdotNETの?それならそういうスレに行ったほうがいいと思う。
154 名前:デフォルトの名無しさん [2007/05/20(日) 14:13:35 ] スレ違いかもしれないのですが、どこに書いたらいいのか分からないのでここで質問させてください。 記憶ディスクにセクタ単位でアクセスしたいのですが、 WindowsのAPIだけでそういうことはできるんでしょうか? FAT32でもNTFSでもかまいません。方法があったら教えてください。
155 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 14:38:44 ] NTならCreateFileで\\.\c:\のようにドライブを指定すれば、 あとはRead/WriteFileでいける。 Cとかならバックスラッシュのエスケープに気を付けろ。 9xならvwin32を叩く。 web.archive.org/web/20040620102307/tech.millto.net/~morry/vwin32/adio/index.html 俺がやったときには95 OSR2以前と以降で違う方法をとらないとうまくいかなかった。
156 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 14:45:13 ] SP2から禁止されなかったっけ
157 名前:154 mailto:sage [2007/05/20(日) 14:50:52 ] ありがとうございます。やってみます。
158 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 14:57:32 ] >>155 ttp://homepage3.nifty.com/k-takata/mysoft/rwfd.html ↑ソース付きなので参考になるかも。
159 名前:158 mailto:sage [2007/05/20(日) 14:58:17 ] >>155 じゃなくて>>154 だた。
160 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 16:01:27 ] >148 LockWindowUpdateは解除したときに、デスクトップ全部の再描画が発生するよ。
161 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 16:15:10 ] >>149 無理
162 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 18:55:32 ] winerror.hをreadしてparseしてだな(ry
163 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 19:47:21 ] タスクトレイのアイコンを右クリックして出るメニュー(TrackPopupMenu)の メニューハンドルを取得するにはどうしたらいいでしょうか?
164 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 19:49:24 ] タスクトレイのアイコンを右クリックして出るメニューは自分で作るものだろ?
165 名前:163 mailto:sage [2007/05/20(日) 19:50:25 ] すみません、他のアプリです。
166 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 19:54:39 ] >>163 TrackPopupMenuをAPIフックするとか
167 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 19:59:20 ] メニューハンドルを深追いすると、WinAPIの暗黒に飲み込まれるぞ。
168 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 20:44:37 ] >>166-167 マジですか!? とりあえず深追いしない程度に頑張ってみます。 ありがとうございました。
169 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 21:22:32 ] ポップアップするまでハンドルって分からないこともあるんじゃ? WM_CONTEXTMENUとかでメニュー生成してたらアウトでしょ ずっとメニューハンドル保持し続けてたらいけるかもしれないけど
170 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 21:24:25 ] 対象プロセスのウインドウを片っ端からモニタ。
171 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 06:08:00 ] >>163 popupメニューの操作で起こるActionを 外部からのトリガで実行したいとか言ってた人? 前のスレで答え出てたぞ SendMessageで WM_COMMANDとメニュー項目のid値なげればおk id値はspy++でも使って突き止めれば行けるんでは
172 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 07:11:51 ] 行けたー━━━━(゚∀゚)━━━━!!!! 情報サンクス愛してる♪
173 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 08:02:08 ] 愛されたw
174 名前:デフォルトの名無しさん [2007/05/21(月) 16:27:54 ] 愛されたのは俺ですが
175 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 17:18:07 ] >>173 誰だよw >>174 妬くなよw
176 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 17:44:33 ] >>174 上げるほど愛に飢えてるのかw
177 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 17:55:57 ] 僕愛人!
178 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 18:09:51 ] 僕ラマンチャ!
179 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 18:24:45 ] (XPの)クラシックスタートメニューでコントロールパネルを展開するにしている時、 コントロールパネルのアイテムの増減が即座に反映されるようにするにはどうすればいいですか? コントロールパネルを開いたら反映されているのですが、アイコンメニューが名前順で並べ替えしないと反映されません。
180 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 18:25:40 ] reboot
181 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 18:28:00 ] ちょw
182 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 19:15:13 ] なのはって頭よさそうじゃん
183 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 19:16:21 ] むやみにコントロールパネルに追加するんじゃありません!めっ!
184 名前:デフォルトの名無しさん [2007/05/21(月) 21:33:41 ] エディットコントロールからデスクトップ等にミドルボタンでD&Dした時 ドロップした位置にファイルを作成するにはどうすればいいのでしょうか
185 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 21:54:40 ] そんな仕様はMSのガイドラインになかった気がする。
186 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 00:00:58 ] IShellFolderからGetUIObjectOfでDataObject作ってDoDragDropかいな?
187 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 01:24:30 ] コンソール非表示のためにmainからWinMainに切り替えたんだが、そうすると 起動時にマウスカーソルが5秒程度砂時計になったままになる 長時間砂時計になるのを防ぐいい方法があったら教えてください
188 名前:デフォルトの名無しさん [2007/05/22(火) 02:04:24 ] ありがとうございました やってみます!
189 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 03:24:19 ] IWebBrowser2でHTMLを表示しています。戻る・進むボタンをつけ、 それぞれのボタンの有効・無効を切り替えたいのですが、 GoBack(), GoForward()が実際に有効かどうか判定する方法が分かりません。 どうしたらよいでしょうか。
190 名前:デフォルトの名無しさん [2007/05/22(火) 03:25:07 ] BCC用に作られたDLLを使いたいのですが、付属の.libファイルがVisualC++で使えません。 こういう場合って、LoadLibraryとGetProcAddressで、明示的にロードして使うしか方法が無いのでしょうか? 関数ポインタをいちいちロードしていくのは面倒なんですが・・・ BCCのように、DLLから.libファイルを作るのって無理なんですかね?
191 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 03:27:08 ] >>187 メインスレッドが応答しないからそうなる。 別スレッドで実行しろ。
192 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 03:43:54 ] >>189 ITravelLogStg
193 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 07:44:55 ] >>189 DWebBrowser2インターフェイスでそういうイベントを捕まえられたはず
194 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 15:12:10 ] 32767を超えるウィンドウって・・・作れないの? 子ウィンドウ(hCWnd)内では一番底に配置してある部品の座標はright:900、bottom:40000なので、WM_CREATEの最後でMoveWindow(hCWnd,0,0,1000,41000)してある。 にも関わらず、その後に親ウィンドウからGetClientRect(hCWnd,&rt)したらrt.bottomが32767になる。 どーりでスクロールバがまともに動かない訳だ・・・ 32676を超えるウィンドウってどーやって作るの? #まさか出来ん??? って・・・秀○とか・・・そこらのテキストエディタってどーやってんだ? #MFCか?
195 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 15:27:30 ] >>190 名前忘れたがフリーソフトである 要は関数名列挙した.defファイルさえあれば.libは作れるんで、それを自動化したものだと思った で、話変わるけど、GINA差し替えても「ようこそ」画面は維持できるようにする方法ってある? 1.4までの全APIをMSGINAのスタブにしただけのDLLでもようこそ画面は解除されちゃうんで・・・
196 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 15:28:18 ] >>194 スクロールバーで子ウィンドウをスクロールさせる発想が間違ってる 子ウィンドウでなく描画位置をかえる
197 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 15:40:07 ] >>190 VCなら付属のlib.exeじゃ駄目なのか
198 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 15:45:27 ] >>194 スクロールバー自体が最大32767じゃなかったっけ?
199 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 15:47:14 ] VC++ 2005EEでWin32APIとC++でゴリゴリ書いてるんだけど、 Windowsフォームアプリケーションみたいなボタンとかの コントロールって張れるの?
200 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 15:51:49 ] >>199 どういった意味で言ってるのかわからん。 コントロールをウィンドウに貼ると言うだけなら 普通にCreateWindowすればいいよん。 エディットコントロールならウィンドウクラスは"EDIT"で、WS_CHILD つけて 親ウィンドウを自分のウィンドウにして。
201 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 15:55:38 ] >>196 > >>194 > スクロールバーで子ウィンドウをスクロールさせる発想が間違ってる > 子ウィンドウでなく描画位置をかえる ちょっと書き方が悪かったか。別にhCWndをMoveWindowとかしてないよ。 ちゃんとスクロールバが付けているhCWndの親をScrollWindowExで描画位置を変えてるよ。 #汎用的に使える様に子供として乗せる独自クラスを使っている。 ただ、この方法でなくても・・・↑独自クラス化しない・・・例えば 猫の第100章 SCROLLINFO構造体 の例の WM_SIZE:のGetClientRectでも32767を超えた値を取れないんじゃないか? #スマソまだ試してないんだけど^^;
202 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 16:02:27 ] >>199 ダイアログリソース作ってコントロール配置して ::CreateDialog()。
203 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 16:02:53 ] >別にhCWndをMoveWindowとかしてないよ。 なのに、GetClientRectにこだわってるのは何で?
204 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 16:04:36 ] あと、たしかにWindows95/98/Meはウィンドウのサイズの上限は32767だけどね
205 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 16:11:23 ] >>201 それならウィンドウをそこまで大きくする必要は無い >>198 メッセージとして送られる値はshortだがSCROLLINFOはintまで使える 後は掛けるなり割るなりして描画位置をかえればいい
206 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 16:16:58 ] >>203 > >別にhCWndをMoveWindowとかしてないよ。 > > なのに、GetClientRectにこだわってるのは何で? ん?? あれぇ、漏れなんか勘違いしてるかぁ? 描画位置を変えるって、所詮は自分のクライアント領域を上下とか左右にスライドさせている 感覚なのだが…ちゃうんけ? だからクライアント領域の最大値を最初に SCROLLINFO siとかに設定してスクロールバの位置と表示 されるクライアント領域の位置のつじつまが合う様にしていると思っているのだが…
207 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 16:30:35 ] 仮に1000行のテキストがあったとする クライアントには10行表示されたとして そこから50行スクロールさせる 描画位置は51行、そこから60行までの10行を表示させればいい 1000行分のウィンドウサイズはいらない
208 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 16:36:33 ] クライアントエリアの左上は常に 0, 0 なので どんなにスクロールさせようとGetClientRect の値は 0, 0 を起点にした大きさでしか取得できんよ。
209 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 17:05:39 ] >>207 いや、ちょっと待ってくれ。 確かに猫を例にしたのはちょっと悪かったが… 単に文章だけなら、そー言った方法も考えられるんだけど、実際にはクライアント領域には さまざまなコントロール(ボタンやら)も載ってる訳で… それらがスクロールバの動きに合わせて見え隠れするってのは、文字列みたいには ゆかんだろう? >>208 問題にしているのはrigth/bottomな訳だが… どこかに良い例文はないかね? orz
210 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 17:10:09 ] >>209 >>207 は仮の話しだしヒント コントロールを移動させろ
211 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 17:11:31 ] >>209 色々貼り付けられている親のクライアント領域に 貼り付けられた子で 「子のウインドウrectを取って 親へScreenToClient する」 なら意味ありそうだが、 「子のクライアントrect 取って」 もしゃーないんじゃないか? ということを >>208 は言っている。
212 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 17:14:47 ] >>209 文字もコントロールも変わらんよ
213 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 17:25:47 ] >>209 OSを書き換える気がないなら、ウィンドウズに頼らずに自前で位置を管理して 見える所のコントロール(+α、tab等でフォーカスが次に移る可能性のあるもの) だけ正しい位置になるようにすればOK。 あとは適当に表示されない位置に移動or非表示に。 ボタン等コントロールらしきものなどが配置された広大な領域を扱いたい というだけなら、html ダイアログを作るという手もある。
214 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 17:35:11 ] フォームビューみたいなことやりたいのかな。 そもそも32767までしか作れないというのはどうやったの? 普通に32767超えられるけど。
215 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 17:42:20 ] Sleep()中にマウスカーソルが砂時計になるのですが、 これを矢印のままにしたいです。どうすればできますか? MFCはできれば使いたくありません。
216 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 17:50:06 ] GUIスレッドでSleepすんな
217 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 17:50:08 ] 試してないが WM_SETCURSOR で何とかならんか?
218 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 17:50:17 ] MakeSureDirectoryPathExistsって、PCSTRが引数で、 Unicodeビルドするとコンパイルが通らないんですけど、 この関数ってUnicodeのときは使えないものなんでしょうか?
219 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 17:53:07 ] あ、メインスレッドとめちゃってる訳ね
220 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 17:56:39 ] >>214 高さ、幅サイズが32767を超えられるのか? 72dpiで455インチ(1155.7センチ)、96dpiで341インチ(866.14センチ)かー
221 名前:デフォルトの名無しさん [2007/05/22(火) 17:59:26 BE:31057128-2BP(222)] >>209 >それらがスクロールバの動きに合わせて見え隠れするってのは、文字列みたいには 同じ事だろ。
222 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 18:01:03 ] >>220 ああごめん、ウィンドウサイズは超えられるけど、クライアントエリアのサイズは32767止まりだったわ
223 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 18:02:15 ] >>218 typedef CONST CHAR* PCSTR;だったはず。 多分デバッガ用のヘルパー関数扱いだったから、 UNICODE版がないんだろうね。
224 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 18:02:37 ] >>218 コンパイルが通らないだけじゃわからない 必要ファイルがインクルードされてないのか libがリンクされてないのか WIN95を対象に開発してるのか 色々ある
225 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 18:05:27 ] >>223 TSTR じゃなく STR だし UNICODE版が居ないように見えるね
226 名前:218 mailto:sage [2007/05/22(火) 18:11:02 ] 1 番目の引数を 'class CString' から 'const char *' に変換できません。 1 番目の引数を 'const unsigned short *' から 'const char *' に変換できません。 などと出てきます。 今までWindows2000でMBCSのままでやってたときは問題無くビルドできていたけど、 UNICODEに変更したらMakeSureDirectoryPathExistsでずらずらエラーが出ました。 UNICODEでやってる人たちって、この関数に頼ってないということなのでしょうか?
227 名前:223 mailto:sage [2007/05/22(火) 18:11:18 ] >>218 エスパー魔美な俺が一言 SHCreateDirectoryExを使え!
228 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 18:12:18 ] >>227 俺が・・・ってw
229 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 18:14:23 ] ヘルプに書いてあるなw そうでなくてもPCSTRに変換すれば使えそうだけど
230 名前:218 mailto:sage [2007/05/22(火) 18:24:21 ] MakeSureDirectoryPathExistsを全部SHCreateDirectoryExに置き換えてみます。 ヘルプを呼んでみた限り、 SHCreateDirectoryEx(NULL, パス名, NULL); という呼びかたでいいんですよね? 間違ってたら突っ込んでもらえると嬉しいです。 ありがとうございます。
231 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 19:15:59 ] dll側から自身を終了させる(exeは終了させない)にはどうしたらいいですか? dll側で自身をFreeLibraryしてもexeは普通終了されないのでしょうか?
232 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 19:21:36 ] 根本的に考え方を間違ってないか?
233 名前:231 mailto:sage [2007/05/22(火) 19:22:48 ] そうだと思います。 ご指摘お願いします。
234 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 19:25:23 ] >>210 ぐえっ、やっぱりそれかよ…orz 確かに説明わるい。早い話がExcelみたいな画面を作りたいわけだ。 で、もう一度よくよくExcelの動きを見ると…そーかぁ…クライアント領域みたいな物をスクロール させてる訳では無いかも。枠の線って変化しないで中の数字(文字列)だけが移動しているだけかも(?) #でも横のスクロールは線も移動してるよなぁ^^; 貼り付けたコントロールも移動させてる感じだね。 了解。やってみるよ。
235 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 19:49:37 ] >>231 良くわからん FreeLibraryを使った関数使うのはexe側だろ だったらexe側でFreeLibraryしたらいいんじゃないの?
236 名前:231 mailto:sage [2007/05/22(火) 19:55:55 ] exeは既存の物でdllが自作です。 exeでもFreeLibraryしてますが、それより早く不要になった時点でdllを解放したいのです。
237 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 19:58:58 ] >>236 どうやってLoadLibrary&GetProcAddressするの?
238 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 20:00:21 ] exe側でFreeLibraryしてるなら、勝手にDLL側終了しちゃダメじゃん。 えらいことになりそうな気がする。
239 名前:231 mailto:sage [2007/05/22(火) 20:07:18 ] >>237 特定の関数をエクスポートしていればそのdllをプラグインとして認識するタイプです。 >>238 そうですか。exeの実行時に使用してexeが終了するまで使わないので、 ちょっとでもメモリ消費量なり抑えられればと思ったのですが・・・。
240 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 20:19:10 ] >>239 おまいはDLLのなんたるかを理解していないな
241 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 20:25:12 ] もう使わないことが分かってるなら、exeのほうからFreeLibraryすりゃいいじゃないか。
242 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 20:37:27 ] >>241 dll側のソースだけでどのようにexeのほうからFreeLibraryするか分からないんですが・・・、 すみませんが教えて頂けませんか?
243 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 20:46:21 ] >>242 プラグインとして不要と exe 側のコードを書いた人が判断したタイミングで FreeLibrary を呼ぶ DLL側のコードを書く人は自前で Load/Free を管理できねー
244 名前:231 mailto:sage [2007/05/22(火) 20:57:47 ] 分かりました。ありがとうございました。
245 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 21:41:31 ] >>195 > MSGINAのスタブ 「ようこそ」画面を提供してるのはshgina.dll
246 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 21:42:41 ] Thread動かすタイプのDLLなら、 FreeLibraryAndExitThread という話になるんだよねたしか。
247 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 21:49:56 ] そして、 FreeLibrary(); ExitThread(); すればいいのに、何でこんな関数あるのって話になるんだよねたしか。
248 名前:デフォルトの名無しさん [2007/05/22(火) 21:54:05 ] FreeLibrary(); ExitThread(); すればいいのに、何でこんな関数あるの?
249 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 21:54:34 ] FreeLibraryを先に呼ぶと、ExitThread呼ぶコードがアンロードされて死亡だし、 ExitThreadを先に呼ぶと、FreeLibraryするチャンスがないからだよ、 ってたしか the Old New Things あたりに載ってたんだよねきっと。
250 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 22:03:45 ] なるほど。
251 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 23:11:53 ] 子プロセスを特定してヌッ殺す方法を教えてください 明示的に作成したプロセスなら簡単なんだけど、コンソールアプリ起動した時の conime.exeみたいに勝手にくっ付いてる子プロセスを特定する方法が分からない
252 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 23:33:52 ] exe, dll, ico, iclなどから インデックス、サイズ(small/largeだけでなく24とか128も)を 指定してHICONを取得したいと思っています。 IExtractIcon::Extractで希望のアイコンは取得できるのですが 数が多いと動作が遅くて困ってます。 何か他に良い方法ってあるのでしょうか? ご存知の方いたらお願いします。
253 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 23:39:52 ] >>252 エスパーが予想。 IExtractIcon::Extractとは関係ないところで速度低下
254 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 23:47:17 ] >251 自分をJobObjectに所属させれば。
255 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 05:41:22 ] >>252 >>253 が原因でなければ、エクスプローラみたく非同期で処理。
256 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 09:52:32 ] SystemParametersInfoに SPI_SETICONSを渡した場合、 MSDNによれば >システムアイコンを再ロードします。 って事らしいんですけど、 ここで言う「システムアイコン」って何なんですかね? 呼出は成功してるんですけど、今ひとつ実効性というか、 要するにこいつは何をやってくれるんだろうってのが、 はっきり解らないんですけど。 どなたかご存じないですか?
257 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 09:54:55 ] >>234 こんなもん、ちょっとでもコード書いてみりゃ要領がわかるよ
258 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 11:08:31 ] >>256 システムアイコンはメッセージボックスに表示されるアイコン。 ?や!や×みたいなの
259 名前:256 mailto:sage [2007/05/23(水) 13:44:46 ] >>258 ありがとうございます! あれですかー… どうりで、実行してもぱっと見何も起こらないわけですね。
260 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 14:42:03 ] Win2kの環境で アクティブデスクトップの背景を自分のウィンドウのクライアントに描画したいのですが SHELLDLL_DefView SysListView32 Internet Explorer_Server DeskMover GetDesktopWindow() あたりにWM_PAINTやWM_PRINTをいろいろオプション変えて送っても描画されません。 どうしたらアクティブデスクトップの背景を描画させる事ができますか?
261 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 14:58:29 ] PrintWindow API辺りならなんとかなるんじゃないかな?
262 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 16:46:27 ] マウスカーソルの下のツールバーボタンのコマンドIDかインデックスを取得したいのですがどうすればできますか?
263 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 17:01:44 ] >>262 ttp://msdn2.microsoft.com/en-us/library/bb496907.aspx この中に答えがあるよ
264 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 22:12:09 ] >>261 PrintWindowはXPにはない。 それがアリならVistaとAero有効なPCを買ってこいと回答しておこう
265 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 22:18:21 ] >>264 PrintWindowはちゃんとXPにあるから。
266 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 22:21:43 ] >>265 ごめん「XP以降にしかない」と書こうとして間違えた。
267 名前:252 mailto:sage [2007/05/23(水) 23:40:35 ] >>253 Extract自体ではなくて前後の COM関係のあーだ、こーだが遅いみたいでした。 >>255 非同期処理ですか、 非同期って全然分からなかったので 試しにマルチスレッドでやってみたんですが IExtractIcon::Extractが支配的で速度は変わりませんでした。 (自分のプログラムじゃなくてオープンソースを改造してたので)。 上記のマルチスレッドも間違ってると思うので これを気に勉強したいと思います。 ありがとうございました。
268 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 23:51:57 ] >>267 >>>253 >Extract自体ではなくて前後の >COM関係のあーだ、こーだが遅いみたいでした。 よくある話だ、元気出せ。
269 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 23:52:48 ] 元気出ました。
270 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 00:30:21 ] 俺元気!
271 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 00:32:28 ] サーバークライアント型のチャットプログラミングをやっています。 クライアント側で接続/切断ボタンを超クリックしまくると、時々表示が変になります。 エラーは何も出ないのですが、最前面に出ているのにアクティブじゃなくなって、ウィンドウの一部が消え 背景にあるウィンドウが少しだけ見えるような状態です。これはログウィンドウに大量の文字がある時に起きるっぽいです。 ログウィンドウの最大サイズを3000バイトに制限したら割と正常に動作し、30000バイトにすると上記の不具合が起きます。 ボタンを連打出来ないような仕様にしてもいいのですが、出来ればあまりしたくありません。 どのようにすればいいでしょうか? ちなみに接続ボタンを押すと接続/受信用スレッドが立ち上がり、切断ボタンを押すとスレッドが終了します。
272 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 00:39:06 ] >>271 ログウィンドウはエディットコントロールのおかん ママー
273 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 00:51:54 ] >>272 つまり・・・どういう事ですか?
274 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 00:53:03 ] それは、こっちが聞きたい
275 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 00:54:25 ] つまりだね
276 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 01:16:12 ] >>271 debug
277 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 01:19:56 ] 質問させて頂きます。 GetOpenFileNameでファイル選択ダイアログを表示し、ファイルを取得しているのですが 何故か、別のモジュール側の処理を少し追加したらダイアログが表示されなくなりました。 原因が全く分かりません…。GetOpenFileNameを利用する上で何か注意しないといけない事があるのでしょうか? コンパイラはBCCとVCの両方で試しましたが、ダメでした。
278 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 01:22:23 ] 追加した処理が原因です
279 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 01:33:20 ] >>277 debug
280 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 01:35:10 ] その処理を消してみて元に戻るかどうかは試したの?
281 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 01:48:33 ] ,.イ´| ̄`ヽr<´ ̄  ̄`ヾ´ ̄ `ヽx''´ ̄「`丶、 / _|ノ ├〈,.-― ;. _ ,ゞ--'、:\___lヽ ,':∨::\ /´ ̄  ̄`ヽ ヽ/´ `ヽ、-.、 \::::::::::', |、_;/ / /´ ,. 、 、 \. \ \―| ’、 / / ,. / / ,ハ ',. ヽヽヽヽ \ヾ/ \_/:/:/:./ , / .,' / // | l | , l: | ', ',. ! l :',!| |/:/::/:/:/:! l | { /|:! l l } !ノ|::,!l | :| |::|:::::::|ノ |:/l/:/:::,|::|:{イ⌒lヾゝ ノノイ⌒lヽ|:::!::}:;!::l::::::/ |::/|/l::/l';:{ヾlー''! lー''!/リノノ/::/:l::/ || |:/リ、|::l;ゞ ̄´´ ,. ` ̄" ハ:lリノノノ' リ |' __,⊥!、 " " r===、 " " /ノノ || '/´\:: : \ ヽーノ /`ーァ-、 ヾ、 _ / li : . ',.`ヽ、 _ ,.イ´ /.ノ::l| ヽ \____ . /'/ |l ヽ `Y´ / './ . :l| |、 / / \l |l, \\_!_/ ‐ ´ 、!| | |\ ̄ | /; ´ ` ‐ , ヽヾ ! \| | / ヽ::/ `ヽ | | ,' ` ', ! 他のスレに貼り付けると . | |::: ヾ ヾ .:| .| おっぱいがポロリする | '、:::.:.. . ― . .:.:::,' ! 不思議なギガバイ子コピペ。 ',. \_:::.: : :_二二二:_: : : : .:.:.:.:::/ ,' ':、 ト、 ̄ ´.:.:.::::::::::.:.:.:.` ―┬ '′ / \ |l ヽ l| / . `/,' ヽ \ ',/ ∧ヽ \ \:.:.:.. ∧
282 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 01:51:56 ] レスありがとうございます。 >>280 さん はい、戻ります。 追加した処理の内容ですが、実行パスを取得した後に、設定ファイルのパスを作るだけの処理です^^; メッセージボックスを出す等すると何故か表示されたりします
283 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 01:58:11 ] >>282 エラーコード調べたり、デバッガ使ったり やる事は色々あるだろ
284 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 02:49:11 ] 正直、これだけの情報で答えられるのはエスパーだけだと思う。 せめて追加したコードだけでも出すとか・・
285 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 02:52:53 ] メッセージボックスを出すとうまくいく、というのがなんか引っかかるな。 OPENFILENAME構造体をちゃんと初期化してるか?
286 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 03:38:11 ] レス有難うございます。 追加したコードを記載します。 void GetIniPath( char *p_dis, int size ) { int point; GetModuleFileName( NULL,p_dis,size); // EXE名のスタートポイントを取得 point = GetFilenamePoint( p_dis ); if( point > 0 ) { p_dis[point] = '\0'; } wsprintf( p_dis, TEXT("%s%s"),p_dis,INI_PATH); return; } GetFilenamePointでは、for文と2バイト文字、半角カナに注意した比較のみで、APIは全く使用していません 上記のコードで、iniファイルのパスを取得し、ロード処理の前で使用しています。 ロード処理に前にメッセージボックス等、処理を止めるような事をするとたまにダイアログが表示されます。 >>285 さん 別のモジュールでもファイル選択ダイアログを呼んでいましたので そのコードをそのまま持ってきて使っています。 明るくなったらもっと詳しく調べてみます。
287 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 03:51:12 ] wsprintf( p_dis, TEXT("%s%s"),p_dis,INI_PATH); これって同じ領域指定しても良かったっけ?
288 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 04:02:31 ] だめだめです
289 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 06:58:22 ] だからコンパイルエラーとか挙動不審なのはAPIと関係ないっつーの
290 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 08:16:54 ] 1.GetModuleFileName 2.結果をバッファにコピー 3.PathRemoveFileSpecでモジュール名を取り除く 4.lstrcatで"\"と設定ファイル名を追加する (ちなみに3は自作のGetFilenamePointでええんとちゃう?) だめなのか?
291 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 08:19:36 ] std::string strPath TCHAR szAppPath[MAX_PATH]; ::GetModuleFileName(NULL, szAppPath, MAX_PATH); strPath = szAppPath; strPath = strPath.substr(0, (strPath.rfind('\\')+1)); strPath += "[ファイル名]" 超簡単
292 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 12:55:21 ] std::stringのrfindとかってMBCS対応できてるんだっけ?
293 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 13:01:23 ] >>290 3でshlwapi使うなら4はPathAddBackslashとStringCchCatだろ
294 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 15:00:20 ] 名前解決を行うプログラムを作りたいのですが、 DnsQuery()はPIP_ARRAYを使っており、DNSサーバにIPv4のものしか指定できません。 DNSサーバにIPv6アドレスを指定できるDnsQuery()または同等なものはないでしょうか? よろしくおねがいいたしますm(_ _)m
295 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 18:39:44 ] getaddrinfo じゃ駄目なの?
296 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 18:46:03 ] hConnect = CreateWindow( TEXT("BUTTON") , TEXT("起動") , WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON , 308 , 10 , 52 , 52 , hwnd , (HMENU)3 , ((LPCREATESTRUCT)(lp))->hInstance , NULL ); こんな感じでCreateWindow()をしているのですが、9番目の引数で指定した数値が 実際にWM_COMMANDに送られて来ず、意図しない数値が送られて来ます。 今は、WM_COMMANDの直後にLOWORD(wp)の値を調べて、その値を拾うことで 対応しているのですが、どうにかして正常な状態に戻したいです。 何故このような事が起こるのでしょうか?原因がわかりません。
297 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 18:48:44 ] LOWORD(wp) の値が 3 じゃないの?
298 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 18:53:02 ] LOWORD(wp)をMessageBoxで表示させたところ6とか見当違いの数字が入ってます。
299 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 18:54:44 ] 追記ですが、そのボタンの9番目の引数を(HMENU)30とかに変えると、 LOWORD(wp)に30が送られてきます。これで正常に動作はさせれるのですが、 結局のところ根本の解決になってないのであまり納得が出来ません。
300 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 18:57:37 ] Dialog でかつ WM_INITDIALOG のタイミングで >>296 をやろうとしてる? LOWORD(wp)==6 って IDYES 相当なんだが、、、 ちゃんとコントロール作れてないとか break し忘れているとか そっち方面な気配がする
301 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 18:57:59 ] #define IDABORT 3 とかぶってるからじゃないの?
302 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 19:10:27 ] Dialogは全く使用していないのですが・・・ あと申し訳ないのですが、3とか6とかいうのは適当でした。ごめんなさい。 数値が被ってるとの原因ででる不具合ならば、正しい数値を書くべきでした。 本当にエラーの出る数値は9〜14で、実際に送られてくるのは50、54、58、62、66です。 これらは for(i=0; i<5; i++){ CreateWindow(,,,,,,,,,(HMENU)9+i,,,,); } で作成しています。また、変数を使わずに直接数値を指定して作成したボタンもあるのですが、 それも違う数値が送られてきます。その数値は正常に動作する別の数値に変えたので覚えていません。
303 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 19:16:21 ] >>302 (HMENU)9 + i じゃだめさーね (HMENU)(9 + i) でないとあかん
304 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 19:17:05 ] WM_COMMAND の解説ちゃんと読め
305 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 19:20:03 ] >>303 頭悪い間違えですね。ごめんなさい。 首吊ってきます。死ぬ前に、直接数値指定してるのに違う数値が来る時のやつ 調べてきます。
306 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 20:22:00 ] >>292 たぶん対応していないし、第一TCHARを使うんだったら、 std::stringではなく、std::basic_string<TCHAR>を使うべき。
307 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 20:57:44 ] なんかエディットコントロールに文字が増えれば増えるほど、 動作が重くなってくるのですが、これは仕様って事でいいのでしょうか? 特に、winsockの関数周りが遅くなってるような気がします。
308 名前:294 mailto:sage [2007/05/24(木) 21:10:12 ] >>295 レスありがとうございます。 getaddrinfoは名前解決をOSに任せる物だと思っております。 (IPv6アドレスを持った)DNSサーバを指定して名前解決を行いたいです。
309 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 21:29:44 ] >>307 とりあえず、EM_GETHANDLE, EM_SETHANDLEを使って、 標準のハンドルを差し替えたら? GlobalAlloc(GPTR, メモリサイズ)で当てはめはめて なお、標準のハンドルは解放するの んで、通信側かエディット側か判断してみれば? パパー
310 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 21:44:14 ] msdn2.microsoft.com/en-us/library/ms682035.aspx DnsQueryが使えない理由を詳しく
311 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 21:52:28 ] よく読めよ。 IPv6レコードではなく、IPv6アドレスしか持たないDNSサーバを扱う話だろ。
312 名前:294 mailto:sage [2007/05/24(木) 21:55:11 ] >>310 「IPv6のレコードを取得する」はできます。 「IPv6のアドレスを持ったDNSサーバに接続する」ができません。 (PIP4_ARRAY) DNS_STATUS WINAPI DnsQuery_A(PCSTR,WORD,DWORD,PIP4_ARRAY,PDNS_RECORD*,PVOID*); DNS_STATUS WINAPI DnsQuery_W(PCWSTR,WORD,DWORD,PIP4_ARRAY,PDNS_RECORD*,PVOID*); DNS_STATUS WINAPI DnsQuery_UTF8(PCSTR,WORD,DWORD,PIP4_ARRAY,PDNS_RECORD*,PVOID*);
313 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 22:06:42 ] IPv6でのDNSクエリの発行自体xpSP2でサポートされたばかりだしなあ。
314 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 22:08:37 ] msdn2.microsoft.com/en-us/library/ms682016.aspx やっぱりよくわからないな DNS_STATUS WINAPI DnsQuery( PCSTR lpstrName, WORD wType, DWORD fOptions, PVOID pExtra, PDNS_RECORD* ppQueryResultsSet, PVOID* pReserved );
315 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 22:18:42 ] >>312 そのシグニチャはどこから持ってきたん?
316 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 22:23:51 ] Windows CE?
317 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 22:30:11 ] XPってv6トランスポートで本当に名前解決できるの? www.ipv6style.jp/jp/action/20050905/index.shtml ここ読むとできない、みたいなはなしがあるけどさ
318 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 22:30:59 ] >>312 WinDNS.h見てみたけど無理そうだな。アキラメロ
319 名前:294 mailto:sage [2007/05/24(木) 22:31:25 ] WinDNS.h よりです DNS_STATUS WINAPI DnsQuery_A( IN PCSTR pszName, IN WORD wType, IN DWORD Options, IN PIP4_ARRAY aipServers OPTIONAL, IN OUT PDNS_RECORD * ppQueryResults OPTIONAL, IN OUT PVOID * pReserved OPTIONAL ); DnsQuery_UTF8, DnsQuery_WもPCSTR pszName,PCWSTR pszName以外同じ #ifdef UNICODE #define DnsQuery DnsQuery_W #else #define DnsQuery DnsQuery_A #endif
320 名前:294 mailto:sage [2007/05/24(木) 22:33:14 ] >>317 Vistaならできるはずです。 XPでできないならAPIでも提供されていないでしょうかね? >>318 自分でDNSプロトコル話すしかないですかねorz
321 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 22:42:31 ] >>320 >自分でDNSプロトコル話すしかないですかねorz そういう事じゃマイカ?Windowsのリゾルバは糞って有名な話で dnsapi.dll使う前提なら無理。
322 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 00:45:58 ] >>294 の参照しているのは、2005付属のもので、 最新のWindowsSDKでは宣言が多少変更されたっぽいな。 で、aipServersの所は予約パラメータ扱いに変更されている。 対応するつもりが、面倒で放置したって感じか。
323 名前:名無し@沢村 [2007/05/25(金) 05:34:10 ] 256色の画面をクリップボードにコピーして、コピーや貼り付けがしたいのですが、 どのようにすればいいかわかりません。 誰か詳しく教えてくれませんか?
324 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 08:13:10 ] >>323 クリップボード側の話は ChangeClipboardChain関数, CloseClipboard関数, CountClipboardFormats関数, EmptyClipboard関数, EnumClipboardFormats関数, GetClipboardData関数, GetClipboardFormatName関数, GetClipboardOwner関数, GetClipboardViewer関数, GetOpenClipboardWindow関数, GetPriorityClipboardFormat関数, IsClipboardFormatAvailable関数, OpenClipboard関数, RegisterClipboardFormat関数, SetClipboardData関数, SetClipboardViewer関数, などの関数で操作する。 あとそれに合わせてWM_COPYなどがある。 ミソはSetClipboardData関数ですかな?
325 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 10:03:00 ] 256色だとパレットも持ってこないとな
326 名前:294 mailto:sage [2007/05/25(金) 11:32:09 ] 皆様レスありがとうございます 特に>>317 の記事大変参考になりました。 DLLをわざわざ開発するくらいですからAPIでは無理ですね。 BIND(dig,host,nslookup,...)のソースなどを参考に時間があるときにでも作成したいと思います。
327 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 16:15:08 ] 読み込み違反ってどんな時に起きるんでしょうか? LoadLibraryでDLLを呼び出してDLL内の関数を実行すると、 「アドレス 00000000 でアドレス 00000000 に対する読み込み違反がおきました。」 となります。そのDLL関数は4つの引数をサポートしていて他の3つの引数では成功します。
328 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 16:19:40 ] まさにぬるぽ
329 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 17:24:14 ] >>327 デバッグしろよ 「作ったソフトがまともに動きませんどうしてでしょうか?」 みたいな質問が多いけど情報は少ないし、しかもスレ違い
330 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 17:43:54 ] とりあえず、APIと関係なさそうなのは間違いない感じだなw あれじゃね? 渡さなきゃいかん値をNULLで渡してるとか。 渡してるつもりになってる変数が0でしたとか。
331 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 17:48:23 ] >>327 > そのDLL関数は4つの引数をサポートしていて他の3つの引数では成功します。 どういう意味? 引数の数が一つで、4種類の値しかとらないってこと? それとも、DLLが複数の関数をエクスポートしていて、 引数が3つのやつは成功するけど、4つのは失敗するってこと?
332 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 18:31:40 ] >>327 わんわん わわわん わんわん わん? (関数ポインタの宣言がおかしいじゃね?)
333 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 19:30:13 ] >>327 その「アドレス 00000000 でアドレス 00000000 に対する読み込み違反がおきました。」 という分かりやすく簡潔なメッセージの何がわからないのか書いてもらわないと・・・ 「アドレス」の意味が分からないとか?
334 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 19:37:12 ] メッセージが分からないとは書いてないぞ
335 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 19:46:51 ] じゃあこれでいいだろ 問い >読み込み違反ってどんな時に起きるんでしょうか? 答え 「アドレス 00000000 に対する読み込み」を行ったとき、等。
336 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 19:48:52 ] ( ゚д゚)ポカーン
337 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 19:50:46 ] OSが保護している領域に書き込んだ時 「そのアドレスはらめぇ」とWinに言われてる
338 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 19:53:24 ] 読み込みエラーの話をしているのに書き込みの話をし出す馬鹿。
339 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 19:56:27 ] 馬鹿馬鹿言うしか能のない馬鹿。
340 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 20:12:10 ] OSが保護している領域を読み込んだ時 「そのアドレスはらめぇ」とWinに言われてる
341 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 20:12:11 ] まぁたぶん今回のはコールバック関数のアドレスとして NULL を渡したとか なんかそんなことだろうね。IP もゼロだし。
342 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 20:44:07 ] >>341 IP???????????
343 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 20:50:44 ] >>342 Instruction Pointer。どこのコードを実行するかを格納しているレジスタ。 「アドレス 00000000 で」の部分が当該コードのアドレスを示している。 それはともかくとして、Win32 とかいう以前の話ばかり・・・ レベル低すぎだろいくらなんでも。 この板には初心者スレとか無いのか?
344 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 20:55:26 ] たくさんあります
345 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 21:04:59 ] >>343 レベル低いのはお前の方では? コールバック関数のアドレスとして NULL を渡したとかそんなレベルの話でないと思われ。 レベルの低い奴はレベルの低い事しか考えられないと思われても仕方ない。
346 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 21:10:02 ] tabcontrolってデフォルトでフォーカスの四角を表示しない機能って ありませんでしたか? もしあったら教えてください。
347 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 21:18:05 ] >>327 >読み込み違反ってどんな時に起きるんでしょうか? >LoadLibraryでDLLを呼び出してDLL内の関数を実行すると、 >「アドレス 00000000 でアドレス 00000000 に対する読み込み違反がおきました。」 >となります。そのDLL関数は4つの引数をサポートしていて他の3つの引数では成功します。 とりあえず、考えられるのはこんなとこか? 考察1.まず、LoadLibraryの戻り値はちゃんと値が入っている? 考察2.Unicode版,ANSI版の関数名の問題 引数に文字列を要求している場合はGetProcAddressには明示的に指定しないいけない。 CreateFile→ANSI版はCreateFileA, Unicode版はCreateFileW 考察3.GetProcAddressの戻り値のキャスト先の問題。 多分>>332 のわんこが云う様にGetProcAddressの戻り値FARPROCの代入先が不完全で、 関数コール時できてない。 考察4.引数が3つの関数と引数が4つの関数は同一ライブラリなのか? 例えばLoadLibraryの実験で、 一般的な引数3つの関数(Kernel32.libのCopyFile関数)で確認したが、 引数4つのFloodFill関数は未チェックでKernel32.libをGdi32.libに直してない。 考察5.ライブラリの位置が巧く取得できてない。 考察6.実は、呼び出し元のアプリケーションはVBで、巧くDeclarできてない。
348 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 21:20:52 ] 僕バッカー!
349 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 21:22:36 ] >>346 スタイルのTCS_TABSを外す
350 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 21:22:51 ] >>345 >コールバック関数のアドレスとして NULL を渡したとかそんなレベルの話でないと思われ。 おそらくそこまでも行っていないレベルの話だと思われ NULL をコールしてるんだよね、たぶん。
351 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 21:25:54 ] DLL自作なのかな?
352 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 21:29:06 ] >>346 TCS_FOCUSNEVER ?
353 名前:名無し@沢村 [2007/05/25(金) 21:40:29 ] 画面の描画プログラムで、hdcの互換メモリデバイスコンテキストmemdcとmemdc2をつくり、 memdcのほうに黒い線、memdc2のほうに赤い線を描いて、それらをhdcにコピーして 表示するプログラムをつくったんですが、何故かmemdc2のほうの赤い線がWM_PAINTが 送られると消えてしまうんですが、どこが悪いのでしょうか? プログラムはまったく同じようにmemdcとmemdc2の描画とコピーを並べて書いたんですが…?
354 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 21:44:35 ] memdcとmemdc2をSRCPAINTにしてないとか
355 名前:デフォルトの名無しさん [2007/05/26(土) 01:08:52 ] MeteredSection ・パフォーマンスはCriticalSection並で ・セマフォの様にカウンタもあり ・win9x,NT,CEで使える というステキな同期機構があるようなんですが、 MeteredSectionを作成する関数 CreateMeteredSectionをググっても(日本語) ヒット数が数件しかありません これは一般には使われてないんでしょうか だとしたら理由はなんでしょう
356 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 01:14:54 ] そんなに必要じゃないからだろ マイナーだし
357 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 01:15:52 ] >>355 単純にみんなが知らないだけだと思われ。 ってか、自分もはじめて知った
358 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 01:22:24 ] >>355 msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpdndllpro/htm/metrsect.asp マイナーなだけ。 知ってる人は知ってる。
359 名前:デフォルトの名無しさん [2007/05/26(土) 01:50:48 ] 唐突な質問すみません。 WAVファイルが使用されているかどうかをチェックするにはどうすればいいでしょうか?
360 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 02:02:34 ] アクセス日時でも調べたら?
361 名前:デフォルトの名無しさん [2007/05/26(土) 02:09:16 ] 使用とはつまり今使用中なのかどうかを調べたいのですが、
362 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 02:13:31 ] そのWAVファイルをごみ箱に投函。 入ってくれなければ使用中。以上
363 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 02:26:09 ] さうんどどらいばにおくられているはけいがそのわヴのものならしようちゅう。いじょう。
364 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 02:31:54 ] スレ違いでしたら誘導をお願いします CreateProcessで作成したプロセスを安全に終了させたいと思っています。 メッセージループを持っているプロセスならWM_CLOSEで事足りるのですが、コマンドラインアプリケーションの場合はどうすればいいのでしょうか? たとえばpingの場合control-Cを送れば終了できるんじゃないかと思い、パイプを作成してETXを送ったのですが終了できません。 また、command.comのプロンプトはCR(control-M)でちゃんと改行と処理されるのですが、パイプを通した場合はLFCRを送らなければ認識されません。 パイプの処理に関して何か根本的な勘違いをしているのでしょうか?
365 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 02:42:52 ] >>364 どういう使い方してるの? ウチの環境ではpingし終わったら勝手に閉じるけど?
366 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 05:59:02 ] command.comってことは98・・・か・・・?
367 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 08:50:30 ] >>364 support.microsoft.com/kb/190351/ja まず、ここのサンプルを試してみ
368 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 10:16:56 ] シグナルを送るんだよ
369 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 11:05:33 ] >>364 安全に終了させる汎用的な方法は無い。 WM_CLOSEで終了したとしても、それが正規な終了方法でないアプリがあるかもしれない。 結局各アプリを解析して、個別の対応を採らなければならない。
370 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 11:08:36 ] ウィンドウクラスのとこで winc.hIcon = LoadIcon(NULL , (LPCSTR)IDI_ICON2); で、アイコンを指定しているのですが、何故かふきだしに i マークがついたアイコンになります。 リソースに自分で作成したICONを追加もしているのですが、何か上の式は間違ってるのでしょうか?
371 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 11:18:46 ] >>370 MSDNで第一引数の説明を調べるんだ
372 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 11:37:37 ] >>371 ああああありがとうございます(泣) NULLをhInstanceにしたらアイコンが変わりました! ぬるぬる
373 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 12:07:52 ] ぽぽ
374 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 13:26:33 ] >>364 GenerateConsoleCtrlEvent
375 名前:364 mailto:sage [2007/05/26(土) 19:25:12 ] >>365 現在親プロセスからコマンドラインアプリケーションを起動して標準出力を拾っているのですが、親プロセスを終了したときにそのコマンドラインアプリケーションを安全に終了させたいのです >>367 拝見したところパイプの接続は私のテスト環境と同じようで、子プロセスの終了も親からでは無くping同様に子プロセスのChild.EXEが勝手に終了するのを待つだけのようでした。 >>369 起動させるプロセスは限られていますので私も個別に対応したいと考えています たとえばCOMMAND.COMならば'EXIT'を送れば終了でき、pingならばctrl-Cで終了できるはずです。 しかし前者は成功するのですが、後者は失敗しました パイプでは制御コードを送れないってことはありませんか?
376 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 19:35:47 ] >>364 ちょっ話変わるけど、 コンソールリダイレクトの想定先は何? 例えば、コンパイラのキッカーみたいなもの? バッチ処理の結果を取得したい為?
377 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 19:35:53 ] 自作アプリケーションにXPスタイルを適用しつつ 一部のコントロール(ステータスバーなど)のみをXPスタイル以外ってできないのかな?
378 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 20:01:01 ] >>377 SetWindowTheme
379 名前:355 mailto:sage [2007/05/26(土) 20:15:21 ] >>356 >>357 >>358 ありがとうございます MSDNの記述を読む限り、とても有用な機能だと思ったんですが 何でマイナーになってるんでしょうね・・・
380 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 20:22:20 ] >>379 強いて言えば、無くても作れるからかも ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/dndllpro/html/msdn_metrsect.asp
381 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 20:27:33 ] >>379 自分で作らにゃならんし、メンテナンスや互換性を考えると面倒くさいからでしょ
382 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 20:27:36 ] >>379 forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=1437677&SiteID=7 MeteredSectionってもともとはAPIじゃなくて あるユーザーが勝手に作ったものみたい。
383 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 21:04:50 ] >>375 >>374 は無視ですか。パイプを作ってCtrl-Cを送る必要自体ないと言ってるんだけど
384 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 21:13:22 ] >>383 心配しなくても無視されないよ。 パイプを作ってCtrl-Cを送ってもどうせ効かないから。
385 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 21:32:05 ] 逆にパイプのデータ経由で死ねるなら、 パイプはバイナリデータを送れない、という話になる
386 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 21:33:25 ] その理屈はおかしい
387 名前:デフォルトの名無しさん [2007/05/26(土) 23:57:14 ] ドラッグドロップとImageListについて質問です。 DropTargetの側で ImageList_BeginDragやImageList_DragMove等のAPIを使って ドラッグ中の画像を作るのは邪道でしょうか? 実際動いてはいるんですが。 やはりDropSourceの方でやるものなのでしょうか。 あと一つ、 ImageList_BeginDragで始まったあとに 表示されている画像を変更することはできないんでしょうか。 ImageList_Replaceは動作しませんでした。
388 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 00:11:18 ] ども。>>364 です >>376 ちょうどそんな感じです >>383 ご指摘ありがとうございます。完全に見落としていました >>374 私が探していた方法はまさしくコレです コマンドラインアプリケーションにもちゃんとExitProcessが標準で実装されていたんですね プログラム側で入力シーケンスを監視してctrl-C信号を拾っているんだと思っていました 色々とありがとうございました。
389 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 00:23:29 ] >>388 だからシグナル送れといっとるだろうが
390 名前:387 mailto:sage [2007/05/27(日) 00:39:55 ] 自己解決しました。 同スレッドからD&Dされると挙動不審になるみたいです。 別スレッドからなら(一見)問題ないみたいですが。 止めることにしました。
391 名前:デフォルトの名無しさん [2007/05/27(日) 02:35:12 ] 猫でもわかるプログラミングってどこにあるんですか?
392 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 02:36:22 ] 「猫でも」でぐぐれ
393 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 06:26:12 ] 本屋に有る
394 名前:名無し@沢村 [2007/05/27(日) 08:40:17 ] hdc=GetDC(hwnd); memdc=CreateCompatibleDC(hdc); memdc2=CreateCompatibleDC(memdc); hBita=CreateCompatibleBitmap(hdc,maxX,maxY); SelectObject(memdc,hBita); SelectObject(memdc2,hBita); PatBlt(memdc,0,0,maxX,maxY,PATCOPY); PatBlt(memdc2,0,0,maxX,maxY,PATCOPY); で、後にSelectObjectしたほうのmemdc2がうまく作成されてないようなのですが、 (hdcにコピーして再描画すると消えてしまうので) memdc2をうまく作成するにはどうしたらいいでしょうか?
395 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 10:54:49 ] ダイアログを、呼び出したアプリケーションのフォームの最前面に表示したいのですがどうすればよいのでしょう? WS_EX_TOPMOSTや、SetWindowPosでHWND_TOPMOSTだと、他のアプリの前面にも出てしまいます。 あくまで呼び出したアプリの最前面にしたいのです。
396 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 11:04:26 ] WM_OVERLAPPED & WM_CHILD & WM_POPUP
397 名前:395 mailto:sage [2007/05/27(日) 11:10:18 ] 失礼しました。 DialogBox関数の第3引数がうまく設定できていないのが原因でした。 お騒がせしました。
398 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 11:14:09 ] >>394 そのSelectObjectは何かのギャグか?
399 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 12:17:07 ] >>394 msdn.microsoft.com/library/ja/jpgdi/html/_win32_selectobject.asp?frame=true > アプリケーションは、1つのビットマップを一度に複数のデバイスコンテキストで選択することはできません。
400 名前:名無し@沢村 [2007/05/27(日) 12:52:00 ] >>399 つまり描画用のデバイスコンテキストを複数つくることはできないということですか? ペイントソフトのアンドウリドゥとかはどうなっているんだろう? メモリデバイスコンテキストを複数つくれば、そこにコピーして待避させておいて、簡単に実装できるんだけど…
401 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 12:54:49 ] 逆にビットマップを複数作ればいい
402 名前:名無し@沢村 [2007/05/27(日) 12:58:04 ] 私がつくりたいのは、 例えば赤と黒で画面に線を描画して、 あとから赤の線だけを消して、赤の線の下に引かれている黒い線もちゃんと復元できるようなソフトなんですけども… 黒い線と赤の線を別々のデバイスコンテキストに描画すれば簡単だと思ったんですがテ…
403 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 13:13:53 ] 操作履歴があるなら、それをもとに 「ファイルを開く」から復元できるやろうが。
404 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 13:19:52 ] 例えば、同じビットマップを複数のDCに選択できたとしたら、 片方のDCに書き込んだ内容はもう片方のDCでも同じ内容になるだけだが・・・ なんでビットマップを複数作ルことを思いつかないんだ?
405 名前:デフォルトの名無しさん [2007/05/27(日) 14:23:49 ] 熾烈な首位争いを繰り広げる、日本とハンガリー。 日本は現在ハンガリーに500万クリックほど差をつけているものの、 これで安心してはいけない。 我々のこれまでの最大クリック速度は8万〜9万回/分が限度だが、 ハンガリーはなんと13万回/分を叩き出した実績がある。 実際、1400万の差を一晩でひっくり返されている。 今はハンガリー時間で7時を過ぎたところ。 彼らの動きが活発になり始めるころだ。 おまけに月曜日は祝日だという確定情報もある。 今の戦力では心もとない、まだまだ戦力を募集中だ。 もはやVIPPERだけでは太刀打ちできない。 これはもはや、VIPの枠を超え、2ch全体で立ち向かう以外に勝機はない。 諸君の参戦を切に願う。 現行スレ 【首位奪還】一番クリックした国が優勝 Click82【天王山の決戦!!】 wwwww.2ch.net/test/read.cgi/news4vip/1180241158/ まとめサイト www33.atwiki.jp/clickvip/
406 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 14:49:49 ] >例えば赤と黒で画面に線を描画して、 >あとから赤の線だけを消して、赤の線の下に引かれている黒い線もちゃんと復元できるようなソフトなんですけども… レイヤーのことだろうか?
407 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 16:23:17 ] この手のは、BitBltをパワーアップさせて、転送先や転送元に、 HDCだけじゃなくHWNDやHBITMAPも渡せるような 関数を作っておくと楽かな。
408 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 18:36:53 ] >>402 スレ違いの回答になるが・・・・ Undo/Redoをやりたいなら、ビットマップレベルで履歴を保存するより 描画内容(座標・色・線種など)で履歴を保存するほうがいいと思うよ。
409 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 18:42:42 ] 質問です。F1を押したときにある動作をさせたいのですが、 ウィンドウプロシージャでWM_KEYDOWNでメッセージを受け取る事が出来ません。 起動した直後は出来るのですが、その後、エディットコントロールにフォーカスを移動した時とかに メッセージを拾う事ができなくなります。エディットコントロールやボタンにフォーカスがある状態でも メッセージを受け取るにはどうすればいいのでしょうか?
410 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 18:54:56 ] キー関係のメッセージははフォーカスを持つウィンドウに送られる メッセージをDispatchする前に、アクセタレータを使うなり何なりすること。
411 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 18:56:55 ] ごめtypo *アクセラレータ TranslateAcceleratortとかHACCELとかのことです
412 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 19:56:41 ] HP見ながら頑張ってみたのですが、上手くいきません。 肝心な部分だけ書いてみました。どこかいけないところはあるでしょうか? //aaa.rc IDR_ACCELERATOR1 ACCELERATORS BEGIN VK_F1, ID_MYHELP, VIRTKEY, NOINVERT END //resource.h #define ID_MYHELP 40001 //aaa.cpp WinMain(){ haccel = LoadAccelerators(hInstance, (LPCSTR)IDR_ACCELERATOR1); } WndProc(){ case WM_COMMAND: if(LOWORD(wp)==ID_MYHELP) MessageBox(); return 0; }
413 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 20:07:28 ] LoadAccelerators(hInstance, MAKEINTRESOURCE(IDA_ACCEL1)); とか TranslateAccelerator(hwnd, hAccel, &msg) 抜けとかかなーといってみる
414 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 20:12:37 ] TranslateAcceleratorは? あと、(LPCSTR)IDR_ACCELERATOR1よりもMAKEINTRESOURCE(IDR_ACCELERATOR1) LOWORD(wp)よりもGET_WM_COMMAND_ID(wp, lp)お薦め
415 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 20:32:19 ] >>413-414 TranslateAccelerator()を入れたら動作しました! 大事なところを見逃してました。ありがとうございます。
416 名前:名無し@沢村 [2007/05/27(日) 20:39:52 ] >>404 >なんでビットマップを複数つくることを思いつかないんだ? memBit1=CreateCompatibleBitmap(hdc,x,y); memBit2=CreateCompatibleBitmap(hdc,x,y); のようにでしょうか? 表示用のデバイスは1つ(hdc)しかないので、ちょっと無理っぽい気が…
417 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 20:40:34 ] なんで見えない番号があるのかと思ったら なつかしいな沢村
418 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 20:42:47 ] TranslateAcceleratorは>>411 でわざわざ言ってあげたのにな
419 名前:名無し@沢村 [2007/05/27(日) 20:47:02 ] >>408 描画内容(座標、線種、色)を数値データとしてスタックに保存するのでしょうか? データを画面に復元するときはどうすれば? 思い付くのはSetPixcelですが、 SetPixcelで1点ずつ画面に点を打っていくのでは、時間がかかりすぎるような気が…
420 名前:名無し@沢村 [2007/05/27(日) 20:52:27 ] >>417 なつかしいな。 プログラミングは当分休止。つーかいまプログラミングしてるけど… いま投稿用の漫画描くためのソフトつくろうと思って質問しまくっているとこ… これができたら、プログラミングはお休みして漫画に専念する。
421 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 21:00:41 ] >>419 既にAPIの質問ではないと思うが 基本的な方法としては、 1、画像そのものを最初にどこかに保存しておいて 2、描画時に使ったコマンドの内容を保存しておく。 点を打った、線を引いた、円を描いたというようなね。 そして、巻き戻すときは、1から順にコマンドを再現して、一つ手前で止めればいい。
422 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 21:26:41 ] WM_CHARメッセージで、送られてきた文字を取得することは可能なのでしょうか?
423 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 21:29:18 ] >>422 お前が手の届く範囲にいたら殴りたい。 なんで訊く前にちょっと調べてみないわけ? ほんの少し調べれば分かることなのに。
424 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 21:37:34 ] 本人にとって、2chで聞く=調べる、なんだろうな お前の手の届く範囲にはディスプレイがあるだろうから代わりにそれでも殴っとけ
425 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 21:52:49 ] いえ、質問の仕方が適当すぎました・・・。 WM_CHARのwpに入ってるっぽいのですが、その取り出し方がわかりません。 MessageBox()で表示させようと、(PTSTR)&wpにしても、文字コード取得しようとして(int)wpで見てみても なんか全然変な値が入っててわけわかりません。
426 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 22:01:52 ] あのさあ、ちゃんと調べてんの? ぐぐっただけで詳しい使い方なり情報なりわんさか出てくるんだが。 TranslateMessageはちゃんと読んでんよな? だったらWPARAM型のwpにキャラクタコードが入ってるんだが。 ちなみにキーコードじゃないぞ 俺も殴りたくなってきた
427 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 22:02:22 ] 殴るなら俺を殴れ
428 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 22:15:19 ] >>419 SaveDC, RestoreDCじゃダメか?
429 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 22:16:38 ] >>425 Cの文字の扱いをまるで理解していないと見た。
430 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 22:36:50 ] いえ、殴るなら僕を殴って下さい。それはそのはず、入ってるわけがありませんでした。 WM_COMMANDで拾ってそのパラメータからWM_CHARの処理やってたので、 そのままWM_CHARを捕まえたような気分になってました。
431 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 22:44:41 ] >>430 あんた誰だよ。>>425 か? 名乗りもせずいきなり僕などという一人称使うな。殴るぞ
432 名前:412 mailto:sage [2007/05/27(日) 22:57:40 ] >>412-415 これでF1はどこにカーソルがあっても機能するようになったのですが、 F2、F3は機能しなくなりました。F2、F3等は、あるエディットコントロール内にカーソルが ある時のみ有効にしたくて、F1だけ特殊な感じでした。これはF2、F3とかも アクセラレータに持っていかれてしまってるせいなのでしょうか?
433 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 22:59:21 ] >>431 すみません、俺が悪かったです。もう名乗りません。 違う方法でなんとか解決できたのでなんとか出来ました。
434 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 23:25:20 ] >>433 だーかーら、名乗りもせず「俺が」なんて言うな、っていってんだよ >>430 です、くらい書けよ 誰だかわからんだろう
435 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 23:28:17 ] いえ、それは俺です。
436 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 23:29:05 ] >>434 俺だよ俺
437 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 23:34:17 ] だから俺が俺なんだって 勝手に人の名前騙るなよ
438 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 23:36:23 ] >>437 すまん、お前が俺か。 悪かった。
439 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 23:54:24 ] >>412 もしかして: WM_HELP なんか、ID_MYHELPとか書いているし。
440 名前:412 mailto:sage [2007/05/28(月) 00:02:55 ] >>439 いえ、WM_HELPではありません。まぁ同じなんですけど、 F1ボタンを押したら自分で作ったヘルプのウィンドウが出るようにしています。 それはいいんですが、F2〜F8にもその他の機能を用意していて、 あるエディットコントロールをサブクラス化してそのプロシージャで WM_KEYDOWNで拾っているのですが、それが機能しなくなりました。 F1だけをアクセラレータで変にやったせいなのでしょうか?
441 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 00:12:26 ] >>420 コミックスタジオでも買った方が良いぞ あ、マンガ描くためのソフトから作ったのを作品の ネタにするのなら恐れ入る
442 名前:名無し@沢村 [2007/05/28(月) 00:16:43 ] 突然ですが、2つのメモリデバイスコンテキストを合成して描画することに成功しました。 黒い線の画面のほうをBitBltのSRCANDで画面にコピーし、 赤い線の画面のほうをSRCCOPYで画面にコピーしたら、 再描画をかけてもどっちの線も消えませんでした。 ただ、この方法だと、赤い線も黒くなってしまうようです… 赤い線が黒くならないようにするには、どうしたらいいのでしょう? いくつも組み合わせがあるので、全部ためすのは、気が遠くなるほど時間がかかりそうなので…
443 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 00:20:18 ] 組み合わせとは何の組み合わせ?
444 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 00:30:55 ] ねむい
445 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 00:58:48 ] 質問です。 CでWindowsプログラム作るため、Win32APIを学ぼうと思っていろいろ調べている途中で気になったことがあります。 テンプレのWin32 API入門というサイトではWin32API学ぶ上で、 windowsの知識とアーキテクチャの知識が必須だと書かれていました。 そこで、「コンピュータの構成と設計」「アーキテクチャ徹底解説MicrosoftWindows2000・・・」 などの書籍でコンピュータアーキテクチャについて学んだ方がいいのでしょうか? お金に余裕がないので無駄な出費は避けたいです。 ちなみに私は、基本情報技術者試験の知識とCの入門書の知識くらいしかもっていません。 御回答よろしくお願いします。
446 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 01:02:31 ] パソコン初心者でもなければ別に要らないと思う
447 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 01:02:50 ] いらん
448 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 01:03:19 ] その程度は、Win32APIを色々試しているうちに自ずと判ってくるから要らない。
449 名前:445 mailto:sage [2007/05/28(月) 01:09:36 ] >>446-448 御回答ありがとうございました。 ではこのままWin32APIの学習に入ろうと思います。
450 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 02:30:45 ] Windowsプログラムを作るためならば、APIから学ぶのは止めたほうがいい。 実際開発では窓とかはフレームワーク任せだからな。それで問題ない。 ど〜しても、変態的な非効率な開発を求めるならAPIから始めることを止めはしない。
451 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 02:59:11 ] >>449 >>450 の意見と思いっきり逆のタイトルですまんが APIで学ぶWindows徹底理解 www.amazon.co.jp/exec/obidos/ASIN/4822228266 この本はまじでおすすめ。 雑誌連載のムック化だから、それぞれのトピックは完全に独立してて 一つ一つ段階的に学習していく、って使い方はできない(想定されてない)けど、 それぞれに読み応えがあるし、なにより文章がとても上手くて面白い。 内容はタイトルどおりで(「徹底」はちと言いすぎか)、 APIの使用例を通してWindowsの仕組みや叩き方が結構クリアに見えてくると思う ただし、Cの基礎が分かっていることが条件。 あとソースはBCC用だがVCのことも全体に渡ってちゃんと配慮して書かれてる まぁ服毒本として興味があればどうぞ
452 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 05:26:58 ] XPのタスクマネージャのプロセスタブと同じ様な働きをするプログラムを作ってます。 本物のタスクマネージャのプロセス一覧でユーザー名を有効にすると、 LOCAL_SERVICEやNETWORK_SERVICEといったユーザー名の プロセスが表示されますが、これらのプロセスをOpenProcessTokenで 開こうとするとGetLastError() == 5のアクセス違反でを取得できません。 ログインユーザーやSYSTEMのプロセスなら成功するのですが、 こういった****_SERVICEのプロセスからユーザー名を取得する 方法がありましたら教えてください。 Web検索しても成功してる人の記事が見つかりませんでした。 ぶっちゃけ下の人と同じ事をしたいのですが、 リンク先の回答者が教えているcodeprojectの方法では 取得する事はできない様です。 ttp://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200407/04070077.txt
453 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 06:03:28 ] すいません、アクセス違反じゃなくて、 GetLastError() 5 「アクセスが拒否されました。」 ってエラーです。
454 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 06:31:58 ] 開き方が悪い
455 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 08:08:45 ] 最低限必要なところのAPIくらい理解しとかんと問題が起きたときにどうにもならん
456 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 08:14:01 ] >>442 そうか? 小さいBMPを2つ作って、 組み合わせをプレビューをすればいいんじゃない? Photoshopとかあれば、もっと容易だけど
457 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 08:44:38 ] >>453 偽装しておけ
458 名前:デフォルトの名無しさん [2007/05/28(月) 10:08:22 ] ツールバーのアイコンに指定する背景色のカラーコードって何を指定すると透過になるんですか?
459 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 10:10:09 ] イメージリストを作るときのフラグによって異なる
460 名前:445 mailto:sage [2007/05/28(月) 10:59:14 ] いろんな回答がでて、よく分からなくなってきました。 最終的にDirectX使いたいという場合はどうなのでしょう?
461 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 11:04:22 ] DirectXとWin32API はあんまり関係ない。 API直接やDirectX直接を身に付けたいなら 参考書を買ってDelphiでやるという手がある。 API/DirectXの参考書はC/C++で書かれているから、これをC/C++のままコピペしたら 動くのは当然だけど勉強には、あんまりならん。 Delphiに直しながらやれば結構勉強になる。
462 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 11:17:27 ] >>460 DirectX 入門 >>461 Delphiはマジ死亡しているんで知らないなら覚えるだけ無駄。 移植の問題ありまくりなのに素人に、わざわざ複雑な方法を提案してどうする馬鹿か?
463 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 11:18:25 ] >>461 Delphiの布教乙
464 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 11:22:02 ] >>462 WIN32APIを今さらやるのも、Delphiやるのも同じだろう。 トータルで速い方法を説明してるだけ。 DelphiのVCLはWin32APIの非常に素直なラッパで、VCLを理解すればAPIの作法も理解出来るからね。 MFCでやるよりはずっといい。
465 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 11:22:39 ] DirectX はコピペだけでもやること多いのに、さらに言語移植て…
466 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 11:23:33 ] >>464 ラッパライブラリから API を学ぶのは違うようなキガス
467 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 11:25:31 ] DirectXをやるのにDelphiを勧めるぐらいならC++Builderにしろよ
468 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 11:26:14 ] APIって学ぶものなの? こんなんあったよな〜ってMSDN漁って 挙動とか注意点とか調べて使うだけじゃない?
469 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 11:28:00 ] >>468 最初の作法とイベント駆動まわり、MSDNの見方だけは 慣れとく必要がないかな?
470 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 11:37:09 ] >>464 >WIN32APIを今さらやるのも、Delphiやるのも同じだろう。 同じじゃねーよ!
471 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 11:41:58 ] >>465 DirectXは COMで IDispatch も持ってるから、 Delphiからだと実はVBのようにもアクセス出来る インターフェースを定義せずに、OLEVariantでアクセス出来るわけ。 ただし遅いけど挙動を見るお試しならまあ十分
472 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 11:44:46 ] >>460 Win32APIでWindowsプログラミングは激しく不向き。 窓一枚で100行とか書かされるからな(コピペですむにしても)。 ただDirectXアプリは窓一枚出せば枠組みはそれでおしまいだから十分いける。 言語に関してはWindowsでCが最適な分野というものはほぼ存在しない。 Cの学習が主眼でないならC++なんかの他の言語の方が後々効率がよい。 C++はCの知識の延長で使うだけでもだいぶ便利。 >「コンピュータの構成と設計」「アーキテクチャ徹底解説MicrosoftWindows2000・・・」 この辺は日本語学習における日本文化の知識みたいなもんでさしあたり不要。 最低限の説明はDirectXの本に載っている程度のもので十分。
473 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 12:34:07 ] >>471 サンプルやヘルプがC++を前提に書かれていて、 いちいち言語の違いを意識して書き直さなければならないので、 挙動を見るだけでも完全に不向き。
474 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 12:37:12 ] >>461 は自分がやった方法が一番良いと思っている可哀想な子
475 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 13:02:54 ] >>473 質問者はC++じゃなくてCらしいから ->lpVtbl->ブフォァアな目にあうけどな
476 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 13:10:43 ] 全く別の言語を扱うより遙かにマシ。
477 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 13:10:57 ] ぶふぉぁあ?
478 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 13:18:39 ] >>477 次のバージョンで追加されるメソッドです たぶん
479 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 13:20:29 ] そうなのか、ダイレクトエッキスには日本語のメソッドがあるんだなたぶん
480 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 13:53:17 ] COMの話だろ
481 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 14:31:16 ] 昔は、Delphiから CreateOleObject('CLSID_DirectInput') とか出来たけど DirectX8から出来なくなった
482 名前:445 [2007/05/28(月) 15:23:03 ] ではアーキテクチャについては放置し、C++の方が楽みたいなのでそちらも覚えながら、 C++でDirectX使えることを目標にします
483 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 15:27:18 ] DirectXならDirectXだけの世界だから大丈夫 Win32もとなると大変だけどね。 なお、言語の複雑さは C++ >>> Delphi/C#/VB > C だから覚悟はしておいてね
484 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 15:46:39 ] C#って結構難しいよ
485 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 16:15:54 ] >>483 >言語の複雑さは C++ >>> Delphi/C#/VB > C C++の全てを理解しようとすればそうかもしれんが、DirectX/MFC等を使うのに必要最低限の知識でいいなら、 Cを(本当に)知ってる人なら3日もあればOKでしょう。
486 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 16:21:02 ] 言語論争ウゼェ
487 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 16:33:10 ] >>445 君へ まずは、君が言うとこのDirectXの大海に向かって漕ぎ出せばいいんじゃね? 悩んだら、CやSDKの掟みたいなものをクレクレで聞くんじゃなく、 自分なりの解答を得たうえでをここの荒くれどもに問い合わせればいいんじゃない? (そこそこ罵声はあるけどビビらないで) んで、気が付きゃ、君も荒くれどもの一員
488 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 16:37:47 ] >>486 素のAPIに触ろうなんて貴重な人材を自分の陣営に入れたくて必死なんだろ。 許してやれよ
489 名前:デフォルトの名無しさん [2007/05/28(月) 19:16:09 ] ウィンドウの中にタブコントロールを作成し、それにアイテムを 1つだけ挿入するプログラムを書いたのですがうまくいきません。 以下のコードはメインウィンドウのウィンドウプロシージャが WM_CREATEを受け取ったときに実行されるOnCreate関数です。 これを実行すると、ウィンドウの中に 250×150のサイズの立体的な ダイアログ色の長方形が表示されますが、その長方形にタブは付いていません。 また、タブコントロールに挿入されているアイテムの数を表示するメッセージ ボックスは "n=0"と表示します。なぜでしょうか? 1. throwは実行されない ⇒ タブコントロールの作成は成功している。 2. "挿入失敗"のダイアログは表示されない ⇒ アイテムの挿入にも成功しているはず。
490 名前:デフォルトの名無しさん [2007/05/28(月) 19:17:26 ] void OnCreate(HWND hParent) { InitCommonControls(); HWND hTab = CreateWindow(WC_TABCONTROL, "", WS_CHILD | WS_VISIBLE, 0, 0, 250, 150, hParent, (HMENU)123, (HINSTANCE)GetWindowLong(hParent, GWL_HINSTANCE), 0); if (!hTab) throw; TCITEM item; item.mask = TCIF_TEXT; item.pszText = "hello"; if (TabCtrl_SetItem(hTab, 0, &item) == -1) MessageBox(0, "挿入失敗", "", MB_OK); // 挿入されたかどうかチェック int n = TabCtrl_GetItemCount(hTab); char buf[1024]; wsprintf(buf, "n=%d", n); MessageBox(0, buf, "", MB_OK); }
491 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 19:23:24 ] エディットコントロールにWS_VSCROLLでついてくるスクロールバーについてですが、 このスクロールバーが一番下までスクロールされているかされていないかを判断するには SetScrollInfo()とGetScrollInfo()を使わなければいけないのでしょうか? なんかSetScrollInfo()で設定しても、元からあるスクロールバーのままで何も変わらず いまいち使い方がよくわからなくて困ってます。これらを使わずに 一番下までスクロールされているかそうでないかを判断する方法はないでしょうか?
492 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 19:26:43 ] あります
493 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 19:43:45 ] で?
494 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 19:48:07 ] bool 型は便利だな
495 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 20:33:48 ] >>492 >>491 の後半部分しか答えてないよ。
496 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 20:42:39 ] 全部の質問に答えたとは誰も言っていない。
497 名前:491 mailto:sage [2007/05/28(月) 21:29:42 ] どのように判断すればいいのでしょうか?
498 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 21:38:57 ] ::GetScrollPos
499 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 21:46:11 ] >>489-490 > (中略) > 2. "挿入失敗"のダイアログは表示されない ⇒ アイテムの挿入にも成功しているはず。 > (中略) > if (TabCtrl_SetItem(hTab, 0, &item) == -1) > MessageBox(0, "挿入失敗", "", MB_OK); 挿入のときはTabCtrl_InertItem(or TCM_INSERTITEM)。 あと、そこのSetItemは失敗してる。 にもかかわず"挿入失敗"のダイアログが出ないのは「== -1」にしているから。 ヘルプでSetItemの戻り値確認してみ。(InsertItemとの違いもな)
500 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 23:12:36 ] 教えてください。 SetClipboardViewerで画像かどうかを識別するには何を使えばいいのでしょうか?
501 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 23:29:50 ] >>500 WM_DRAWCLIPBOARDでEnumClipboardFormats
502 名前:500 mailto:sage [2007/05/28(月) 23:35:32 ] >>501 ありがとうございます。やってみます。
503 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 00:02:42 ] 自作アプリの起動時処理として、とある起動済みの(自作でない)アプリケーションのウィンドウハンドルを取得したいのですが ウィンドウキャプションがしょっちゅう変わる上に ウィンドウクラス名もATL:00xxxxxxといった名前でこれまたWindowsを再起動するたびに変わります なので FindWindow では手が出ません。 どうやって取得したらいいでしょう? 現在は、起動時に「対象アプリケーションをクリックしてください」と表示して SetCapture と WindowFromPoint の組み合わせでなんとか取得してますが自動化したいのです。
504 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 00:10:16 ] そのアプリの特徴を研究する。
505 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 00:23:09 ] 子ウィンドウを列挙してそのパターンから判別ればよかろ。
506 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 00:31:55 ] プロセス列挙してモジュール名で判別なんてのも
507 名前:503 mailto:sage [2007/05/29(火) 00:59:45 ] >>504-506 506さんの方法でやってみます。 ありがとうございました。
508 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 02:03:14 ] >>503 FindWindowを使えばいいよ
509 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 05:31:25 ] >>503 アプリケーションの名前が判ってるなら、 GetWindowThreadProcessIdで指定の窓のpidを取得、 pidからOpenProcessでプロセスハンドル、 プロセスハンドルからEnumProcessModulesでモジュールハンドル、 GetModuleBaseNameでアプリケーション名を取得できる。 GetModuleFileNameExでフルパス名も取得できる。 以上を見つかるまでEnumWindowsで繰り返す。 EnumProcessesから辿る場合はどうすんのかな。
510 名前:452 mailto:sage [2007/05/29(火) 05:52:02 ] お願いします。 >>452
511 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 06:01:19 ] >>510 セキュリティソフトに蹴られたりしてね? 最近のセキュリティソフトはマルウェア対策でその手のアクセスを蹴る場合がある
512 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 06:12:48 ] あ、分かった >>510 WTSEnumerateProcessesでプロセスのSIDが直接手に入る OpenProcessTokenは必要ない
513 名前:452 mailto:sage [2007/05/29(火) 06:37:47 ] ありがとうございます。 SID取得できたんで解決しそうです。
514 名前:489 [2007/05/29(火) 06:39:32 ] >>499 ありがとうございます。 TabCtrl_InsertItemに変えるとうまくいきました。
515 名前:452 mailto:sage [2007/05/29(火) 07:06:24 ] NETWORK SERVICE、LOCAL SERVICE共に 無事LookupAccountSidで取得できました。
516 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 07:11:47 ] 報告乙
517 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 07:20:17 ] なんか夜明けと共に明るい声が響いてくる
518 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 07:42:12 ] EnumWindows/EnumChildWindowsで見て特徴的な何かを探すかないんじゃないの
519 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 08:20:52 ] >>509 それをソースコードにするとどのようになりますか?
520 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 08:42:03 ] コンパイルすればプログラムになるだろ。
521 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 11:31:32 ] とにかく、ウィンドウタイトルもウィンドウクラスも変わるものに対して、 何を持って特定するのだろうか。EXEファイル名だって変えられるしな。
522 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 12:19:32 ] ファイル名が分かればファイルのチェックサムを算出できる。
523 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 12:31:16 ] >>503 なんか、ネトゲのチートツールかなにかを作ろうとしてるように見えるwww
524 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 12:56:08 ] ATL製ネトゲなんてあるのか・・・?
525 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 14:26:51 ] ふとした疑問なんだけど Win32ファイバって一体どういう用途で使うと真価を発揮できるんだろ?
526 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 15:06:03 ] アセンブラが使えない言語でコルーチンを実装したい場合だろうな >>525 C++/Delphi はインラインアセンブラが使えるから自前でコールチンの実装が出来るから不要。 C#.NET VB.NET あたりの為に用意されたものだろう。 コルーチンは、get/put同士を接続するパイプとか クライアント型で書かれたものをサーバ型に変換するといった場合に使う
527 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 15:07:04 ] フィボナッチ数列を求める
528 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 15:32:41 ] アニョハセヨー(SJIS)を %E3%82%A2%E3%83%8B%E3%83%A7%E3%83%8F%E3%82%BB%E3%83%A8%E3%83%BC に変換するのってなんか手っ取り早いAPIあったら教えてください。 最終的には↓にしたいです。 www.google.co.jp/search?source=ig&hl=ja&q=%E3%82%A2%E3%83%8B%E3%83%A7%E3%83%8F%E3%82%BB%E3%83%A8%E3%83%BC&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=
529 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 15:46:06 ] MultiByteToWideChar と WideCharToMultiByte
530 名前:529 mailto:sage [2007/05/29(火) 15:50:08 ] 具体的には、MultiByteToWideChar でSJISからunicodeにし、 WideCharToMultiByte で unicodeから UTF-8にする。 最後に、そのバイト列をsprintf とかで文字列にすればよかろう。
531 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 17:40:47 ] #define VOID void とか #define CONST const は、どういう意味があるんですか?
532 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 17:44:23 ] >>531 #define マクロで置き換えてるだけ。 データ型が大文字(DWORD, UINT)なんで、 大文字で揃えたかったんだけじゃね?
533 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 17:48:28 ] >>525 使い方によっては、デコード/エンコード、画像処理なんかでも
534 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 17:56:16 ] >>531 VOIDとかは違うが、 boolとかconstとかのキーワードはもともとのC言語には無いから、C++でもCでもtう
535 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 17:59:10 ] const は C でもあるぜ。 まあ、全て大文字の奴を使えば、どれもどの環境でも安心! という形にしたかったんだろう。
536 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 18:28:45 ] >>525 Unixからの移植に使えるとAdvanced Windowsには書いてあったような気がする
537 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 19:13:37 ] >>535 最近のANSI Cにはconstがあるが、これは比較的後になって追加されたもの。 もともと、というか少なくともK&Rにはconstはなかった。
538 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 19:18:44 ] K&R まで遡るのはアレだけど、 昔の ANSI C にすら無かったのか・・・。
539 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 19:23:12 ] 少なくとも89年のANSI Cではあったな。
540 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 19:43:17 ] Windowsの開発が始まった頃には間違いなくあった。
541 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 21:10:54 ] >Windows 1.0が登場したのは1985年11月18日
542 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 21:26:47 ] >>538 gccじゃないUNIX用のコンパイラはものすごく古い仕様のままだったりするから Win32の場合はconstが使えない可能性なんて考慮する必要すらないな
543 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 22:00:31 ] const char *とchar const *は違うそうです。 ということはconst char const *もあり? それぞれどう違うのか説明おねg
544 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 22:03:52 ] const char * と char const * は同じだよ。 違うのは char * const 。
545 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 22:14:17 ] WinAPI関係ない C++スレとかいきなされ あるいは本屋いって入門書でも立ち読みしとけ
546 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 22:22:54 ] >>545 この手のは意外と書籍じゃわかりやすく解説されていない気がする。
547 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 22:25:26 ] >>546 どっちにしろスレ違い。
548 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 22:29:45 ] CONSTとconstに関連して,コーディングスタイルについて質問です。 Windowsプログラミングで自分で関数やクラスをつくるときに, (1)BOOL, UINT, CONSTなどのWin32用にtypedefされたものを使う (2)bool, unsigned int, constなどのC++予約語を使う どっちが一般的なのでしょうか?
549 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 22:32:28 ] C++のboolとBOOLは違うんだぜ
550 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 22:37:31 ] どう違うんだぜ?
551 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 22:37:51 ] >>549 そもそもC++にはBOOLなんて型はない
552 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 22:39:42 ] >>550 普通にWindows.hをインクルードしていれば、BOOLはintにtypedefされる
553 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 22:46:55 ] >>548 SDK,APIの結果を保証するなら、BOOL。 論理で判断するならbool。 という風に使い分ける。 単にintといっても不確定要素をはらんでる。
554 名前:デフォルトの名無しさん [2007/05/29(火) 23:38:13 ] おいら,BOOL のくせに 3 種類 ( >0, ==0, <0 ) の値を返してきて それらをきちんと判別しないといけない API って GetMessage() しか知らないんだけど,他にもあるんだっけ?
555 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 23:53:25 ] だってBOOTはtypedef int BOOL;だし‥‥ bool型とは違うのだよ。
556 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 00:10:56 ] BOOL/boolはほかが言っているとおりなんで、残りのやつについて俺の場合 CONSTは使わず、常にconst UINTはunsignedより文字数少ないから場合によって使う
557 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 00:37:32 ] >>555 BOOT? >>552
558 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 00:40:54 ] >>557 BOOTSを語れゴラァ part2 pc11.2ch.net/test/read.cgi/tech/1139266461/
559 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 00:44:31 ] >>558 ちっ、先に張られたか。
560 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 02:42:33 ] つーかBOOLもBOOTSもどーでもいいからお前らWin32APIの質問しろよ
561 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 02:49:46 ] >>554 あれヒドいよなw なら戻り値の型 BOOL にすんなと。
562 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 02:50:05 ] >>560 BOOLはWin32APIの話だろうが。
563 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 03:20:10 ] >>562 BOOLはwindef.hで定義されている単なるtypedefであり、APIではありません。
564 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 04:24:21 ] >>563 型もAPIのうちですよ。
565 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 04:31:43 ] Vistaで新規に追加されたAPIのリストとかってどこかにありますか? あれば教えていただきたいです
566 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 05:27:23 ] >>565 msdn2.microsoft.com/en-us/library/aa383687.aspx
567 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 05:53:39 ] >>566 うお、こんな体系化されたページあったのか ありがとうございます
568 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 09:30:24 ] XPで追加されたAPI一度も使ったことないどころか一つも知らんかった・・・orz
569 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 10:03:53 ] 記述漏れがあるけど参考程度にはなるな
570 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 14:51:46 ] >>554 WM_CTRCOLOR**の戻り値とか、そもそもDialogProcとか まあx64ではBOOLが32bitのままだもんでDialogProcの戻り値はINT_PTRに変わったけどな
571 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 15:50:15 ] GetMessageもWin32化するときに戻り値の型をintへ変更すればよかったのに
572 名前:デフォルトの名無しさん [2007/05/30(水) 16:23:46 ] 質問です。 あるAPLから、フルスクリーンAPLのデバイスコンテキストを 取得したいのですが、どのようにしたら実装できますでしょうか?
573 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 16:39:17 ] GetDC(NULL)
574 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 16:46:21 ] APL(エーピーエル)は、コンピューターのプログラミング言語の一種で、 1957年のケネス・アイバーソンによる創案に基づいた独特の表記法を用いた、 対話型インタープリター言語である。とくに配列処理に優れる。 「APL」とは、『Aプログラミング言語』(A Programming Language)の略であるが、 言語の特性から時に『配列処理言語』(Array Processing Language)と言い換えられる。
575 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 16:55:20 ] これって、アルファベットの A を意味してるのか、 それとも冠詞の a を意味してるのか、 どっちなんだろ? 和訳は前者を採用してるみたいだけど、 訳の都合かもしれないし。
576 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 17:01:20 ] >>575 double meaningじゃないのかな。 と、適当なことを言ってみる。
577 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 18:00:53 ] ごめん素で分からんのだが、APLって何
578 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 18:06:57 ] APL知らんのか。言語だよ キーボードが特殊だった。まあ普通のキーボードでなんとかなるが
579 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 18:07:50 ] APLって遅延評価を積極的に使った言語だったよね 16ビットの鈍足マシンで巨大な配列を使っても結構速く結果が出た
580 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 18:58:42 ] 冠詞の a で始まる固有名詞は見たことない
581 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 19:14:17 ] >>580 >>574 で見ているはずだ
582 名前:デフォルトの名無しさん [2007/05/30(水) 21:25:35 ] ある Windows マシン上の動画ファイルを、 別の Windows マシンからストリーミング再生で表示したいです。 DirectShow + HTTP サーバーを使えば簡単にできそうですが、 動画ファイルを全部ダウンロードすることなく、 動画の特定の時刻からすぐにストリーミング再生することは可能でしょうか?
583 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 21:37:58 ] ネットワーク共有+プレイヤーで好きな位置にシーク APIと全然関係ない
584 名前:デフォルトの名無しさん [2007/05/30(水) 21:43:50 ] ネットワーク共有したくない場合は?
585 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 21:50:20 ] なにワガママ言ってるんだ?
586 名前:ららら [2007/05/30(水) 21:51:34 ] ワガママじゃなくて、途中から再生できるようなプレーヤーを作りたいのら。 ネットワーク共有みたいな、面倒な設定はユーザーにさせたくないのら。
587 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 21:51:55 ] >>584 したくないというキモチをガマンする
588 名前:ららら [2007/05/30(水) 21:52:20 ] ガマンできないのらー!
589 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 21:57:16 ] ユーザにわざわざデフォルトの機能以外を使わせて、サーバソフトを用意させるのか? なんてワガママな奴だ。
590 名前:ららら [2007/05/30(水) 22:02:42 ] ちがうのら! 動画ファイルはLAN内じゃなくて、インターネット上にあるのら。 サーバーはインターネット上のホストら!
591 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 22:07:51 ] インターネット上経由だろうがネットワーク共有できる。 ユーザに負担をかけたくないならUPnPにでもしておけ。
592 名前:ららら [2007/05/30(水) 22:10:44 ] セキュリティは大丈夫なのか?
593 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 22:13:03 ] それはお前のコード次第
594 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 22:14:10 ] 馬鹿が自作したソフトを外部公開するのは大丈夫なのか?
595 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 22:17:34 ] ストリーミングだろうがファイル共有だろうが インデックスでも作らない限り キャッシュ無しで指定時間からの動画再生開始は不可能だろ
596 名前:ららら mailto:sage [2007/05/30(水) 22:17:56 ] わぅー・・・・
597 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 22:26:31 ] 気持ち悪すぎワロタw
598 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 22:28:23 ] ゲームをバックグラウンドで操作したくて色々思考錯誤してます。 ウィンドウを指定してPostMessageでキーを送ったのですが EnterやEscなどはちゃんと受け付けますバックグラウンドで動くのですが LeftやDownはダメでした。要はカーソル移動が出来ないんです。 んでSPY++でLeftの入力時を調べてみたところ下記のようなものが出ました WH_GETMESSAGE:[WM_KEYDOWN or WM_KEYFIRST,256], wParam:[0x00000025], lParam:[0x014b0001] WH_GETMESSAGE:[UnKnown,1104], wParam:[0x00000025], lParam:[0x00000001] WH_GETMESSAGE:[UnKnown,1105], wParam:[0x00000025], lParam:[0xc0000000] WH_GETMESSAGE:[WM_KEYUP,257], wParam:[0x00000025], lParam:[0xc14b0001] これをPostMessageで送るにはどのように記述すればよろしいでしょうか またUnKnownの文字列は何をしてるのか教えてください 初心者な質問で申し訳ないですがよろしくおねがいします。
599 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 22:46:41 ] 不正はやめましょう。
600 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 22:55:38 ] 素直にUWSCで組みましょう
601 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 23:00:05 ] 低スキルチーターがあらわれた!
602 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 23:02:55 ] じーんせいはワンツーパンティー
603 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 23:14:21 ] >>582 Windows Media Server 買ってら… ってかマジレスするとストリーミングサーバとクライアント を実装するってって話になっちゃうのだけれどそうなると Win32API 1つ2つだけの話じゃすまないのでもはやスレ違い…
604 名前:デフォルトの名無しさん mailto:sage [2007/05/31(木) 15:23:20 ] >>579 漏れの完璧で確かな記憶によれば、APL に遅延評価は無かったと思うよ。
605 名前:デフォルトの名無しさん mailto:sage [2007/05/31(木) 15:26:42 ] >>582 実際にそういうソリューションあるわけだから、自前でコードを書いて 「出来ない」なんて返事はあり得ないよね。 すると「DirectShow + HTTP サーバーを使って簡単に」可能か、 という質問だと仮定すると、返事は「不可能」になります。 市販品のストリーミングシンク/ソースフィルタとかを買えば別だけど。
606 名前:デフォルトの名無しさん mailto:sage [2007/05/31(木) 15:32:57 BE:139752689-2BP(222)] >>582 Server2003に標準で入ってるよ。 www.microsoft.com/japan/windowsserver2003/technologies/winmedia/default.mspx
607 名前:デフォルトの名無しさん mailto:sage [2007/05/31(木) 15:47:14 ] Windows Home Server機がAppleTV並みの値段とサイズで出るといいんだが
608 名前:デフォルトの名無しさん mailto:sage [2007/05/31(木) 23:30:13 ] 日本語版 Windows SDK だって www.microsoft.com/downloads/details.aspx?FamilyID=7614fe22-8a64-4dfb-aa0c-db53035f40a0&DisplayLang=ja
609 名前:デフォルトの名無しさん mailto:sage [2007/06/01(金) 00:06:19 ] >>608 英語版の最新があれば十分だと思う。同じバージョンの日本語版っていうのであれば使おうと思うけどね。
610 名前:デフォルトの名無しさん mailto:sage [2007/06/01(金) 00:27:56 ] >>608 どうみてもAPIまわりは日本語化されてない予感
611 名前:デフォルトの名無しさん mailto:sage [2007/06/01(金) 01:00:04 ] サンプルプログラムのバグを報告してもなかなか修正されねぇよーって中の人が言ってたから、 日本語版では修正されてっかもね。
612 名前:デフォルトの名無しさん mailto:sage [2007/06/01(金) 01:00:49 ] 今まさに英語版入れた所なんだよな……。 .NET まわりのドキュメントの日本語化は欲しいところだが API まわりは英語で構わんし。 異言語版SDK の共存って可能なんすか?
613 名前:デフォルトの名無しさん mailto:sage [2007/06/01(金) 06:05:41 ] >日本語版 Windows SDK をインストールする前に、英語版 Windows SDK をアンインストールしておく必要があります。 って書いてるよ
614 名前:デフォルトの名無しさん mailto:sage [2007/06/01(金) 06:49:53 ] >>610 統合前のPlatform SDKも英語版しかなかったからねえ
615 名前:デフォルトの名無しさん mailto:sage [2007/06/01(金) 07:26:12 ] >>613 あら。すんません読んでませんでした。 ならまあいいか別に英語版で
616 名前:デフォルトの名無しさん mailto:sage [2007/06/01(金) 09:35:37 ] ドキュメントの一部が日本語なだけじゃないのか 昨日ダウンロード始めたまま寝てしまったが、、、 今夜入れてみるか、、、MSDN待てばいいだけだが。
617 名前:デフォルトの名無しさん mailto:sage [2007/06/01(金) 16:25:42 ] Ctrl+Alt+Delを禁止するのに今までGINAを使ってたんだけど、Vistaになってどうしたらいいやら・・・ Credential Providerにも同じような機能は用意されてるんだろうか? メソッド一覧を見た感じでは無さそう・・・
618 名前:デフォルトの名無しさん mailto:sage [2007/06/01(金) 16:51:15 ] >>609 >同じバージョンの日本語版っていうのであれば使おうと思うけどね。 同じバージョンの日本語版なわけだけど、ホントに使おうと思う?
619 名前:デフォルトの名無しさん mailto:sage [2007/06/01(金) 17:43:19 ] HTTPS通信にて証明書のエラーの時にダイアログを出したいのですが、証明書のエラーを取得できません。 (1)InternetOpen(NULL, INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, INTERNET_FLAG_ASYNC) or InternetOpen(NULL, INTERNET_OPEN_TYPE_PROXY, proxy, NULL, INTERNET_FLAG_ASYNC); (2)InternetConnect( Open, server, port, NULL, NULL, INTERNET_SERVICE_HTTP, 0, this ) (3)HttpOpenRequest( Connect, Method, Object, HTTP_VER, NULL, NULL, INTERNET_FLAG_RELOAD | INTERNET_FLAG_NO_CACHE_WRITE | INTERNET_FLAG_EXISTING_CONNECT | INTERNET_FLAG_SECURE, this ) (4)HttpSendRequest( OpenReq, Header, Header.GetLength(), str, str.GetLength()); (5)HttpQueryInfo( OpenReq, HTTP_QUERY_STATUS_CODE , Code, &Len, 0 ); (1)〜(5)は全てTRUE, (5)にてCodeが0となってしまいます //その後InternetSetOption()でSECURITY_FLAGを設定し再度HttpSendRequest()するとCodeは200が来ます。 //SECURITY_FLAGを設定せずにHttpSendRequest()するとCodeは再度0が来ます。 support.microsoft.com/kb/182888/ja を見ると、 HttpSendRequest()の結果がFALSEになりERROR_INTERNET_INVALID_CAなどを取得できるとあるのですが・・・ どこが悪いのかお気づきの方お教え下さい。
620 名前:デフォルトの名無しさん mailto:sage [2007/06/01(金) 18:31:06 ] >>619 >(2)InternetConnect( Open, server, port, NULL, NULL, INTERNET_SERVICE_HTTP, 0, this ) Portはなぬ?
621 名前:619 mailto:sage [2007/06/01(金) 18:41:32 ] >>620 可変ですが現在は0x1bb(443)でやっております。 よろしくお願い致します。
622 名前:デフォルトの名無しさん mailto:sage [2007/06/01(金) 18:55:46 ] >>621 開発環境と、想定IEはなぬ?
623 名前:デフォルトの名無しさん mailto:sage [2007/06/01(金) 19:31:54 ] INTERNET_FLAG_RELOAD | INTERNET_FLAG_SECURE | INTERNET_FLAG_NO_UI | INTERNET_FLAG_KEEP_CONNECTION
624 名前:デフォルトの名無しさん mailto:sage [2007/06/01(金) 22:48:55 ] >>618 注意 : 本リリースは、最初に公開された Windows Vista および .Net Framework 3.0対応の英語版 Windows SDK リリースを ベースに開発されています。 また、その後リリースされた英語版Windows SDK Update for Vista には対応していませんが、 アップデートの主要内容である Visual Studio 2005 Service Pack 1 で提供されたVista の新しいセキュリティ機能 「Address Space Layout Randomization(ASLR)」に対応したコンパイラが含まれています。 って書いてあるな。SDKと完全に同じものではないみたいよ。
625 名前:デフォルトの名無しさん mailto:sage [2007/06/01(金) 22:49:41 ] 関連無いけどこっちもwininetの質問 httpQueryInfoを同じアプリケーション内で繰り返し呼ぶと、 abnormal tarminationとかいうエラーがでるようなのですが 原因となりえるものってどんなことがあるでしょうか? 補足: いつもエラーするわけではなく、一日そのアプリを起動しっぱなしにしてると発生します。 HTTP_QUERY_DATE|HTTP_QUERY_FLAG_SYSTEMTIMEをフラグにして、 SYSTEMTIME変数のポインタを渡してます。
626 名前:デフォルトの名無しさん mailto:sage [2007/06/01(金) 23:47:24 ] >>625 エスパーな俺が一言。 wininet系関数は直接の要因じゃない。 配列やアロケート、Open/Closeを良く調べてみ? あと、HDDキツキツじゃね?
627 名前:デフォルトの名無しさん mailto:sage [2007/06/02(土) 00:21:32 ] そうさ! 俺がルールだ!!
628 名前:デフォルトの名無しさん mailto:sage [2007/06/02(土) 00:54:04 ] ソーサ ヨミウリ
629 名前:デフォルトの名無しさん [2007/06/02(土) 14:57:01 ] SetParentで親ウインドを設定した場合、親ウインドと子ウインドのUIステータスを同期させろ ってMSDNのSetParentの説明に書いてあるんですけど、 UIステータスってなんですか? 具体的にどういう処理をすればいいのですか?
630 名前:625 mailto:sage [2007/06/02(土) 15:08:12 ] どうやらサーバーが重くてヘッダーが 取得できてないようです。 httpSendRequestは成功してるんだけどなぁ。
631 名前:デフォルトの名無しさん mailto:sage [2007/06/02(土) 15:17:32 ] >>629 ttp://msdn2.microsoft.com/en-us/library/ms646335.aspx#_win32_UI_State
632 名前:デフォルトの名無しさん mailto:sage [2007/06/02(土) 15:41:07 ] >>630 乱発(?)した後、ハンドルやアロケートは的確に開放されてる? 特に、失敗パターンは見落としやすいからね。
633 名前:デフォルトの名無しさん mailto:sage [2007/06/02(土) 18:13:09 ] OSが動作している環境がマルチコアかどうか判定する方法を教えてください
634 名前:デフォルトの名無しさん mailto:sage [2007/06/02(土) 18:29:37 ] デュアルやクアッドCPUじゃなくてマルチコアなのか
635 名前:デフォルトの名無しさん mailto:sage [2007/06/02(土) 18:31:46 ] カーネルに聞け
636 名前:デフォルトの名無しさん mailto:sage [2007/06/02(土) 18:36:52 ] WMIでWin32_Processorあたりかな? HT対応のCPUに関してはGetEnumerator()で例外が発生するかもね。 searcher.Get()の結果がヌルポかどうかで判定しないといけないかもよ。
637 名前:636 mailto:sage [2007/06/02(土) 18:37:41 ] msdn2.microsoft.com/en-us/library/aa394373.aspx Win32_Processorクラス
638 名前:デフォルトの名無しさん mailto:sage [2007/06/02(土) 18:37:43 ] kernel32.dll に聞くAPIはほとんどすべて、結果的にカーネルに聞いているのではないの?
639 名前:636 mailto:sage [2007/06/02(土) 18:40:57 ] msdn2.microsoft.com/en-us/library/Aa394102.aspx Win32_ComputerSystemクラスも見るべきか?
640 名前:デフォルトの名無しさん mailto:sage [2007/06/02(土) 18:46:58 ] >>634 デュアルもクアッドもマルチコアではないのですか? >>636 うう、WMIですか。 Win32API SDKでは取得できないのかな。 ありがとうざいます。
641 名前:デフォルトの名無しさん mailto:sage [2007/06/02(土) 18:50:05 ] COMベースってキモイよね 複雑性上げて何したいのかワカラン
642 名前:デフォルトの名無しさん mailto:sage [2007/06/02(土) 18:52:55 ] >>640 そういう場合は普通マルチプロセッサって言わないか? マルチコアだと「1つのパッケージに複数のCPU」という意味に使われると思うけど。
643 名前:デフォルトの名無しさん mailto:sage [2007/06/02(土) 18:53:07 ] >>640 デュアルコアとデュアルCPUは違うぞ?
644 名前:636 mailto:sage [2007/06/02(土) 18:54:09 ] >>641 C側からは、儀式的に感じるよね。 憂鬱なカンヂや
645 名前:デフォルトの名無しさん mailto:sage [2007/06/02(土) 18:58:28 ] GetSystemInfoでプロセッサ数は得られるが 物理的なプロセッサ数なのか論理的なプロセッサ数なのかは知らん。
646 名前:636 mailto:sage [2007/06/02(土) 19:11:08 ] 最近はGetLogicalProcessorInformationって関数もあるのね
647 名前:デフォルトの名無しさん mailto:sage [2007/06/02(土) 19:25:28 ] 便乗で質問です 複数プロセッサに割り当てられてる各プロセッサ毎の スレッドIDを知りたいのですが、できるでしょうか?
648 名前:デフォルトの名無しさん mailto:sage [2007/06/02(土) 19:33:38 ] 今その瞬間に、実際に動いているところの、 他のプロセッサで走っているスレッドIDを知りたいの?
649 名前:デフォルトの名無しさん mailto:sage [2007/06/02(土) 19:33:47 ] GetThreadAffinityMaskでできるみたいですにゃ
650 名前:デフォルトの名無しさん mailto:sage [2007/06/02(土) 19:38:23 ] >>649 すげえ 初めて叱咤 あんた最強ですぅ Set〜から辿らないとぐぐってもmsdnに引っかからないね
651 名前:デフォルトの名無しさん mailto:sage [2007/06/02(土) 19:46:56 ] え、GetThreadAffinityMaskってなくない? kernel32.dll直接見てもなかったよ
652 名前:デフォルトの名無しさん mailto:sage [2007/06/02(土) 19:51:37 ] 嘘ついたにゃ SetThreadIdealProcessorを1回空呼びして プロセッサが指定されてるか調べればいいにゃ
653 名前:デフォルトの名無しさん mailto:sage [2007/06/02(土) 20:01:07 ] てめえ! 嘘つきやがって、悪い子だな! つーか優先プロセッサが判るだけで ほんとにそのプロセサで動いてる証拠なんてねーんじゃねえかぁ?
654 名前:デフォルトの名無しさん mailto:sage [2007/06/03(日) 03:07:37 ] 共有フォルダへのアクセスの認証をプログラムで制御したいのですが、 使用するAPI関数を教えてもらえないでしょうか。 net useコマンドのようなことがしたいです。 ドメイン名とユーザとパスワードを指定して、共有フォルダにアクセス できるようにしたいです。
655 名前:デフォルトの名無しさん mailto:sage [2007/06/03(日) 04:07:11 ] >>654 です。事故解決しました。 WNetAddConnection3を試してみます。
656 名前:デフォルトの名無しさん mailto:sage [2007/06/03(日) 08:34:11 ] >>654-655 夜は寝ようよw
657 名前:デフォルトの名無しさん mailto:sage [2007/06/03(日) 11:53:54 ] [SECTION] IDENT=VALUE IDENT2=VALUE2 というINIファイルで、IDENT=VALUEの行だけを消滅せしめる関数ってないですか?
658 名前:デフォルトの名無しさん mailto:sage [2007/06/03(日) 12:10:26 ] txtで読んで消す
659 名前:デフォルトの名無しさん mailto:sage [2007/06/03(日) 12:12:20 ] >>657 WritePrivateProfileString() lpStringにNULLを渡す
660 名前:647 mailto:sage [2007/06/03(日) 13:21:26 ] 自己解決しました。
661 名前:デフォルトの名無しさん mailto:sage [2007/06/03(日) 14:09:42 ] OutputDebugStringの出力を受け取って表示するツールを探しています。 コマンドライン型のものでできればpidかプロセス名でフィルタをかけられるものはないでしょうか。
662 名前:デフォルトの名無しさん mailto:sage [2007/06/03(日) 14:15:40 ] そのぐらい自分で作れよ。
663 名前:デフォルトの名無しさん mailto:sage [2007/06/03(日) 17:33:21 ] DBGMONってのがあるけど ノートンか何かの影響か何も表示できないw 確実にOutputDebugStringが追えるのはMSDNのlodprof32だけ。
664 名前:デフォルトの名無しさん mailto:sage [2007/06/03(日) 18:27:33 ] >>661 基本ツールだろ ttp://www.microsoft.com/technet/sysinternals/utilities/debugview.mspx
665 名前:デフォルトの名無しさん mailto:sage [2007/06/03(日) 18:34:24 ] それGUIやんけ
666 名前:デフォルトの名無しさん mailto:sage [2007/06/03(日) 22:00:04 ] シェアウェアで何かあった気がするな。
667 名前:デフォルトの名無しさん mailto:sage [2007/06/03(日) 23:14:57 ] サンプルソースにあるんだから、好みで作ればいい
668 名前:デフォルトの名無しさん mailto:sage [2007/06/04(月) 00:45:57 ] ちょっとどのスレに書いて良いのか謎だったので、不適切なら誘導お願いします。 WIN32APIの学習をしているのですが、TextOutに放り込む文字数の取得方法関連でMSDN見たら、lstrlenはStringCchLengthに変えた方が良いよ、というので strsafe.hをincludeして書き換えてみたのですが、そのstrsafe.hが原因でwarning C4996を吐きます。 このwarningを消す方法として、無視するか_CRT_SECURE_NO_DEPRECATEする他に何か無いでしょうか。 #普通にlstrlen使うのが一番"まとも"な気もしますが、一応学習ということで…… 環境はVC++EE2005です。 ちなみに数時間格闘してみたところ、どうやらDirectX SDK(Microsoft DirectX SDK (April 2007))のstrsafe.h使ったときにはwarningが発生して、 Platform SDK(Microsoft Platform SDK for Windows Server 2003 SP1)のstrsafeを使ったときには発生しない、とか割とどうでもよさそうなことは分かったのですが……
669 名前:デフォルトの名無しさん mailto:sage [2007/06/04(月) 00:50:55 ] > このwarningを消す方法として 警告が出てるって事は、lstrlen とか strlen とか古い文字列関数が他に使われてるってことだべ? 全部置き換えれ。
670 名前:デフォルトの名無しさん mailto:sage [2007/06/04(月) 00:54:52 ] ir9.jp/prog/ayu/strsafe.htm > そんな時は STRSAFE_NO_DEPRECATE を、#include <strsafe.h> の前に定義してあげると、 > 従来の関数も同時に使用できるようになります
671 名前:デフォルトの名無しさん mailto:sage [2007/06/04(月) 01:59:52 ] >>669 書き方が悪かったですね。warningの詳細も貼り付け忘れていましたし。本当に申し訳ない。 自分の書いているソースには古い文字列関数は一切使われてはいなく(むしろlstrlenすらStringCchLengthに置き換えようとしている) どうやらstrsafe(が参照しているstdio.h)からwarningが出ているみたいなのです。多分それでPlatform側のstrsafeを使うとWarningが出なくなるわけですね。 c:\program files\microsoft directx sdk (april 2007)\include\strsafe.h(5595) : warning C4996: '_vsnprintf': This function or variable may be unsafe. Consider using _vsnprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. c:\program files\microsoft visual studio 8\vc\include\stdio.h(339) : '_vsnprintf' の宣言を確認してください。 SDKのパスはデフォルトです。 行数の違う同じ内容のWarningが全部で4つ出ます。 >>670 えぇっと…… > このwarningを消す方法として、無視するか_CRT_SECURE_NO_DEPRECATEする他に何か無いでしょうか。 ということで申し訳ありません。Warning消しとしては正しい方法なのですが、セキュリティを高めるためにわざわざstrsafeしているのに、逆方向のオプション付け足すのもアレなので……
672 名前:デフォルトの名無しさん mailto:sage [2007/06/04(月) 03:10:38 ] 何か勘違いしてるんじゃない? そのWarningが、どの関数で出たのか、もう一度よーくチェックしてごらん つーか、ソース貼ればいいのに・・・
673 名前:デフォルトの名無しさん mailto:sage [2007/06/04(月) 03:52:45 ] >>671 strsafe.h って何者か、ちゃんと分かって使ってる? その前に、警告メッセージちゃんと読んでる?? メッセージの内容そのまま、*_s 系の関数使えばいいだけじゃないの?
674 名前:デフォルトの名無しさん mailto:sage [2007/06/04(月) 04:21:07 ] sprintf周りが抜けてるんだろうなあ
675 名前:デフォルトの名無しさん mailto:sage [2007/06/04(月) 08:20:54 ] >>671 それ<strsafe.h>関係ない Visual C++ 2005のCRTのセキュリティ強化 msdn2.microsoft.com/ja-jp/library/8ef0s5kh (VS.80).aspx CRT関数のセキュリティが強化されたバージョン msdn2.microsoft.com/ja-jp/library/wd3wzwts (VS.80).aspx
676 名前:デフォルトの名無しさん mailto:sage [2007/06/04(月) 10:25:48 ] >>671 Warningに書いてあるやんけ。おまいの目は尻に付いてるのか?
677 名前:デフォルトの名無しさん mailto:sage [2007/06/04(月) 10:38:22 ] metokoumon
678 名前:デフォルトの名無しさん mailto:sage [2007/06/04(月) 11:04:05 ] >>676 フォーラムにもそれ風なことがあったお forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=1512292&SiteID=7
679 名前:619 mailto:sage [2007/06/04(月) 15:17:29 ] お返事が遅くなりまして申し訳ございません。 今までの環境が使えなくなったので別環境に移ったところ、 (4)でFALSE, その後のGetLastError()でERROR_IO_PENDINGとなりました。 >>622 VisutalStudio2003, IE6.0となります。 >>623 これにしてみましたが変化はありません 以上、恐れ入りますがよろしくお願い致します
680 名前:619 mailto:sage [2007/06/04(月) 15:19:31 ] >今までの環境が使えなくなったので別環境に移ったところ、 >(4)でFALSE, その後のGetLastError()でERROR_IO_PENDINGとなりました。 これは元からのようでした・・・大変失礼いたしました
681 名前:デフォルトの名無しさん mailto:sage [2007/06/04(月) 17:16:39 ] >>680 >今までの環境が使えなくなったので別環境に移ったところ、 >(4)でFALSE, その後のGetLastError()でERROR_IO_PENDINGとなりました。 ちなみに、非同期側の処理(スレッド)とか、うまく終了してる? 開放してないフローとか考えられない?
682 名前:デフォルトの名無しさん mailto:sage [2007/06/04(月) 18:28:52 ] Vistaでログオン直後に画面にかぶさってる「ようこそ」とか「デスクトップの準備をしています...」の画面が 消えるタイミングって何らかの方法で取得できるんでしょうか? スタートアップに登録するアプリのスプラッシュ画面が見事に隠されてしまって何とかしたいんですが・・・
683 名前:デフォルトの名無しさん mailto:sage [2007/06/04(月) 18:37:34 ] 作者のオナニーなんて見たくないからいらんモノを出すな。
684 名前:デフォルトの名無しさん mailto:sage [2007/06/04(月) 18:38:23 ] >>682 とうぜんシェル(エクスプローラ、、、タスクバーね)が起動するから それを監視しては?
685 名前:デフォルトの名無しさん mailto:sage [2007/06/04(月) 18:42:17 ] もちろんそこでスプラッシュを出すにしても、 やるべきことは、それ以前に終わらせておけよ
686 名前:682 mailto:sage [2007/06/04(月) 19:13:32 ] 事故レス。 LogonUI.exeが存在しているかを判定することで一応解決。 正確にはスプラッシュではなく、飾りとかじゃなくて表示が必須というものだった次第。 >>684 基本的にそういうものの起動が裏で行われている状態なのでそっちの監視だと不可。
687 名前:デフォルトの名無しさん mailto:sage [2007/06/04(月) 19:35:01 ] あほだなあ ウィンドウが可視状態かみてればいいのに
688 名前:デフォルトの名無しさん mailto:sage [2007/06/04(月) 19:49:30 ] >>687 686じゃないが、あの状態ってウィンドウステーションかデスクトップも別物になってないか? 列挙かけてみたことあるけどどうも検索不可属性が付いてるのが出てこなかったが・・・ ということでWindowFromPointとかIsWindowVisibleからの切り込みはダメっぽいよ
689 名前:688 mailto:sage [2007/06/04(月) 19:51:00 ] ×付いてるのが ○付いてるのか ちなみにOpenInputDesktopでも普通にwinsta0\defaultになってた。
690 名前:668 mailto:sage [2007/06/04(月) 20:52:02 ] わふ。とりあえずソース貼ってなかったのがダメすぎたっぽいので貼ります。すみません。 s-io.net/up/1/_/jump/1180957523712070.8VJMzU pass: API Warningは読んでいますし、提示してくださったリンクは(ありがとうございます)既に全て目を通していましたし、 目も尻にはついていません。 #節穴かもしれませんし、脳みそはスポンジかもしれませんが…… トラブルの内容としては>>678 と一緒だとは思うのですが、最新のDirectXのstrsafeで発生する(PlatformSDKでは発生しない)ことから、 PlatformSDKのバージョンを上げる、というのも解決策にはならないみたいです。 #Warningの詳細やらソースコードやら貼らずに分かりにくい説明していて本当に申し訳ないです。でも、DirectXのstrsafeでコンパイルせずに、warningなんて出ないじゃないかボケ、というのは勘弁してください。
691 名前:デフォルトの名無しさん mailto:sage [2007/06/04(月) 23:27:41 ] WebサーバからSSL証明書をダウンロードして検証したいと思います。 (1)WebサーバからSSL証明書をダウンロードする (2)それを検証する といったようなAPIは無いでしょうか?
692 名前:デフォルトの名無しさん mailto:sage [2007/06/04(月) 23:28:40 ] ありません
693 名前:デフォルトの名無しさん mailto:sage [2007/06/04(月) 23:39:16 ] CryptoAPIがとっても面倒だった記憶があるけど。
694 名前:デフォルトの名無しさん mailto:sage [2007/06/04(月) 23:42:09 ] >>690 だから、673,675が書いてくれた事が正解なんだって。 strsafeってのが何の役割を果たすかを理解しる。 どーせ/GS入れてるんだろw。
695 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 00:11:04 ] Visual C++ 2005は、CRT関数のセキュリティ強化版を“<strsafe.h>とは無関係に”用意している。 (これは次期Cへの提案されている事項でもあるが今はどうでもいい) このセキュリティ強化版の関数は、基の関数名に_sを付けた名前になっている。 例: scanf→scanf_s _CRT_SECURE_NO_WARNINGSを定義していない状態で、従来の関数を使うとC4996になる。 (ただし、C4996自体は、<strsafe.h>などこれ以外でも使われている汎用的な警告) <strsafe.h>とCRTセキュリティ強化、はたまたそれ以外の手段の中からどれを使うかはお前が決めること。 利点欠点を好きに考えて選べ。
696 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 01:36:39 ] じゃstd::stringという事で
697 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 01:55:52 ] 速度でないじゃん
698 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 01:57:23 ] 文字列操作はコストが高いんだから、速度が欲しけりゃ自前でやるんだな。
699 名前:668 mailto:sage [2007/06/05(火) 02:06:53 ] うー。了解です。この構成でWarning消すとか、無駄なところに労力注ぐの止めて、別の構成にすることにします。 アドバイスをくれた皆様、どうもありがとうございました。 #学習が第一義なので、とりあえずこれでこの問題はオシマイですけれど…… >>696-697 ……一応std::string版のコードも書いちゃったのですけれどね。
700 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 07:53:33 ] jpegのファイルサイズを先頭500バイトあたりで知ることは できますか?
701 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 07:58:13 ] ファイルサイズなら GetFileSize なりなんなりで。
702 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 08:00:29 ] 失礼しました。ファイルサイズじゃなくて、ストリームで呼んでいるときの jpegのサイズです。
703 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 08:03:45 ] JPEG フォーマット siisise.net/jpeg.html
704 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 08:07:38 ] JPEGフォーマットの詳細を聞いているのではなく、先頭500バイト あたりまでよんで、サイズを確定可能かが知りたいです。
705 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 08:13:56 ] フォーマットの詳細を見て自分のやりたいことが出来るか判断しろよ。
706 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 08:42:42 ] わからない人、答えたくない人は黙ってくれてればいいです。
707 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 09:36:14 ] 無理だよ
708 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 09:46:48 ] そもそもWinAPIと無関係。
709 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 09:53:54 ] >>704 正直に言えよ、そのリンク先では難しすぎて自分ではわかりませんでした、と
710 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 10:40:45 ] >>704 結論:不可能 理由:可変長レコード(500バイト以上もおk)があるため
711 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 10:42:58 ] >>704 釣り乙
712 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 10:48:28 ] >>704 結論:不可能 理由:あなたは、まだ、その域に達していない
713 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 10:57:49 ] だな、たとえ可能でもお前には無理
714 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 11:03:34 ] 起動中のIEのスクロールバーの情報(最大値や最小値、現在の位置)をWin32APIで取得する方法ってありませんか。 GetScrollPosやGetScrollRangeで取得できないようなので、それ以外の方法で取得する方法はあるのでしょうか。
715 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 11:14:19 ] >>714 取得出来ないようなのでってお前・・・。出来るよ普通に。
716 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 11:17:33 ] >>702 ストリームで何を呼んでるの? jpegをハンドリングする関数か何か? だとしたら、そいつがサイズを知っているんじゃないの?
717 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 11:18:42 ] >>710 >>711 不可能じゃないっしょ。jpegデータが500バイト以下なら。
718 名前:714 mailto:sage [2007/06/05(火) 11:19:46 ] >>715 マジデスカ。 IEのHWNDとSB_VERTをGetScrollPosに渡せば取得できるということですよね?
719 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 11:22:19 ] >>718 お前の脳味噌には親ウインドウとか子ウインドウとかの概念はないのか?
720 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 11:26:47 ] 次は子ウィンドウのハンドルの取得方法でも聞いてくるかな
721 名前:714 mailto:sage [2007/06/05(火) 11:26:54 ] >>719 InternetExplorer_ServerクラスのHWNDを指定してGetScrollPosを呼び出しても取得できないのですが、指定先が間違っていますかね?
722 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 11:31:27 ] >>721 お前は人の話を聞いているふりだけして、実際は何も聞かないタイプだろ。
723 名前:714 mailto:sage [2007/06/05(火) 11:34:16 ] >>722 えぇ。確かにそういう人間かもしれません。
724 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 11:57:22 ] >>722 そういう人間、俺の周りにもわんさか要るわww
725 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 11:59:06 ] 自分のことかな?と最近気づいた
726 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 12:01:34 ] 居るわ
727 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 12:22:39 ] >>717 マーカーを読みつつパースしながら、運良く APP0 が捕まれば確定&読み込み終了 読み込みバイト数が 500 を超えたら未確定終了 こうするしかないよねぇ
728 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 12:30:08 ] 一応書いてやってみるが IEブラウザコントロールのスクロールバーはウィンドウ本体の付属オブジェクトじゃなくて子ウィンドウなんだな?
729 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 12:37:32 ] IEのバージョンは?
730 名前:714 mailto:sage [2007/06/05(火) 12:50:13 ] >>728 ありがとうございます。 私は子ウインドウだと認識しています。 >>729 IE6です。 COMを使えば比較的簡単に実現可能なのですが、事情により今回はCOMなしで実現したいと思っています。
731 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 12:55:10 ] DeviceCapabilitiesで特定のプリンタ名を渡したときだけ動作をしないような。。。 ネットワークプリンタで「マシン名\プリンタ共有名」の場合は動くのだが、 「自動 プリンタ名(マシン名 上)」というプリンタ名を渡したときは動作をしない。 名前がおかしいのかなぁ。。。
732 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 15:09:48 ] >>731 kwsk
733 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 16:06:23 ] DVD-RAMからタスクトレイに常駐するアプリを起動。 DVD-RAMを取り出す。 XPを終了。 ↓ DVD-RAM入れろって出るんですけど、起動元のEXEファイルが無くても、 何も出さずにXPを終了させる方法ってありますか?
734 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 16:08:08 ] >>733 ファイルコピー
735 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 16:35:50 ] リンカオプションで「メディア抜いても起動を続けられるようにする」ってのはあるけど、 どっちみちWindows再起動されたらだめぽ
736 名前:733 mailto:sage [2007/06/05(火) 16:54:21 ] >>734 ファイルコピーしないでやりたいのですけど。 >>735 そんなのあるんですか。 再起動時はEXEは起動してなくて構わないので。 それで出来そうです。 ありがとうございました。 ちょっと733は判りにくくて申し訳なかったです。 「XPを終了させようとすると、DVD-RAMを入れろって出ますです。」
737 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 17:01:28 ] /SWAPRUN:CD か。
738 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 21:07:00 ] なんか1文字入力するたびに、SendMessageBox(hEdit, EM_LINEINDEX, 2, 0);で、3行目の インデックスを表示させているのですが、2回に1回"-1"が返ってきます。 20→-1→22→-1→23→・・・ 3行目以降に文字を入力した場合は 23→-1→23→-1→23→・・・ のように動作します。-1は3行目がない場合に返す値だと思うのですが、 それ以外の場合でも-1を返すような事はありえるのでしょうか?
739 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 21:23:41 ] 2回に1回は確実にそういう順番ではなく、大体の割合です。-1が2回続けて返ることもあれば、 通常の値が2回続けて、返ることもあります。ただ、ゆっくりと入力すれば必ず-1と正常な値が交互に返ってきます。 一体何が起きているのかさっぱり分かりません。助けてくだしあ・・・
740 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 21:32:48 ] ちなみに今調べてみたところ、どうやらhEditというコントロールにおいてだけこのような現象が起きています。 hEditは、あるエディットコントロールに文字が入力された場合、そのエディットコントロールの文字を表示するといった動作をします。 表示はGetWindowTextとSetWindowTextで行われます。もしかしたらSetWindowTextで再描画する瞬間に EM_LINEINDEXで行数を調べてるから-1が返って来てるのかな?とか思って排他制御したのですが、やはり-1が返ってきます。 というか、デッドロックも起きたり起きなかったり。
741 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 21:34:02 ] ひとつのファイルを、二つのプロセスからMoveFile()で、名前を変更しようとします。 プロセスA -> MoveFile("hoge", "XXX") プロセスB -> MoveFile("hoge", "YYY") 当然片方のプロセスは失敗すると思ったのだけど、両方リターン値が成功で帰ってくるときがあります。 (リターン値が成功で帰ってくるけど、実際は片方は失敗してる) 二つのプロセスで、ひとつのファイルを取り合うのにこういう方法って、使えないんですかね? それとも、コードの書き方がどこかおかしいとか。
742 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 21:45:30 ] 質問です。あるエディットコントロール内で例えば、"aaaaaaaaaaaあああああああああ"と入力します。 すると、ある程度の長さになると"a"と"あ"の間で改行されます(実際は\nは入っていなくて、表示上改行されてるだけ)。 これは仕様なのでしょうか?このように勝手に改行されないようにするにはどうすればいいのでしょうか?
743 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 21:48:36 ] WM_なんとか
744 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 21:52:16 ] >>742 英単語の途中で改行されないようになっている。 EM_SETWORDBREAKPROCでコールバック関数を登録すれば 自分で好きなように変更可能。
745 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 22:16:10 ] >>741 プロセスAのMoveFileが完了する前に、 プロセスBのMoveFileが走るんでしょ? Mutexを使って管理すればいいんじゃない?
746 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 22:17:37 ] >>738-740 ソースあげ
747 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 22:18:11 ] >>744 ありがとうございます。とりあえずエディットコントロールは複数あるのですが、 そのうちの一つは自動で改行されないようになりました。全てのエディットコントロールで 自動改行をされないようにするには、全てのエディットコントロールをサブクラス化して WM_CHARを捕まえないといけないのでしょうか?
748 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 22:19:17 ] >>746 1500行くらいあるので要点を簡略化してUPします。 その作業をするのでもう少し待ってください。
749 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 22:30:19 ] 簡略化したら治っちゃたりするんだなーこれが
750 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 22:41:43 ] >>742 スクロールバーつければいいだけかも
751 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 23:04:20 ] >>749 簡略化してる途中に治りました。原因は、等幅フォントを使用してないことにありました。 3行目までの文字をカウントし、2行+1バイトを他のエディットコントロールに送っていたのですが、 時々2行しか送られない事があるせいで-1が返ってきてたようです。2行+5バイトくらいにしたら正常に動作しました。 >>750 インターフェイスの仕様上、スクロールバーはつけないようにしています。 そのせいでエラーの原因に気付きにくい状態が生まれてしまったのですが・・・。
752 名前:749 mailto:sage [2007/06/05(火) 23:11:45 ] >>751 だろw
753 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 23:14:18 ] >>751 バカスw
754 名前:749 mailto:sage [2007/06/06(水) 00:03:36 ] ま、早とちりは誰にでもある。 元気だせw
755 名前:747 mailto:sage [2007/06/06(水) 00:15:21 ] どうやらWM_CHARの時にいちいちSendMessageしなくても、 WM_CREATEの時に一回SendMessageするだけでいいみたいですね。 随分時間を取られてしまった・・・orz
756 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 05:37:31 ] IWebBrowser2::Navigate2で存在しないURLに移動しようとしたときに 'xxx'が見つかりません。パスまたはインターネット アドレスが正しいかどうかを確認してください。 というエラーのメッセージボックスが出ます。これを抑制する方法はないでしょうか。 このメッセージボックスはDWebBrowserEvents2::OnBeforeNavigate2が呼びだされる前に出て来ます。
757 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 05:59:31 ] なぜ存在しないURLに行きたいの
758 名前:デフォルトの名無しさん [2007/06/06(水) 06:11:12 ] ウインドウズマシンって、 目覚まし時計みたいに、あらかじめ決められた時間に起動するように設定するとかってできるのですか? それと、usbバスに今、抜き差しが行われたって情報を確認することってできるのでしょうか? それは原理的に無理なのでしょうか?
759 名前:デフォルトの名無しさん [2007/06/06(水) 06:28:49 ] detail.chiebukuro.yahoo.co.jp/qa/question_detail.php?qid=119795641 一つ目の質問は調べたら分かってのでいいです。 スンマソン。
760 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 06:39:49 ] >>757 移動できない時に代替処理をしたいのですが、 イベント通知や関数から戻るより先に強制的にメッセージボックスが出ているのが困るのです。
761 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 08:11:46 ] 移動する前に存在するか調べればいい
762 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 08:25:41 ] >>756 IWebBrowser2::SilentにVARIANT_TRUEは?
763 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 09:42:44 ] >>758 RegisterDeviceNotification
764 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 09:44:27 ] >目覚まし時計みたいに、あらかじめ決められた時間に起動するように設定するとかってできるのですか? コンパネ-タスク or at
765 名前:デフォルトの名無しさん [2007/06/06(水) 10:45:08 ] >>763 >>764 ありがトン。
766 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 10:59:54 ] OSの起動じゃないのか
767 名前:デフォルトの名無しさん [2007/06/06(水) 11:09:38 ] いや、そうなんですけど、 それは、基本的にできないとわかったので良いです。 とりあえず、情報を教えてくれたと言う気持ち自体に感謝しとるわけです。
768 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 11:24:07 ] BIOSが対応していれば出来るけど?
769 名前:デフォルトの名無しさん [2007/06/06(水) 12:14:56 ] マジっすか? バイオスにプログムから指示を出すんですか?
770 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 12:20:36 ] >>768 をどう読めばそうなるんだよ
771 名前:デフォルトの名無しさん [2007/06/06(水) 12:25:46 ] ああ、なるほど、意味分かったです。 そう言うマシンがあるってことですね。 確かに聞いたことはあります。
772 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 12:33:52 ] APIでアクティブタイマを設定するだけ。 あとはBIOSが対応していれば指定した時間に起動する。
773 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 12:55:53 ] BIOS側でしか起動時間を変更出来ないハードウェアのために スケジュールを変更するGUIを作りたいのですが WindowsOS上のプログラムからBIOSの設定変更は可能ですか?
774 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 13:06:07 ] 可能ですがやり方や設定位置はマザーボードによって異なります。 詳細は各メーカに問い合わせてください。
775 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 13:27:14 ] メーカーによってAPIが異なることはありますか?
776 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 13:33:47 ] 詳細は各メーカに問い合わせてください。
777 名前:デフォルトの名無しさん [2007/06/06(水) 13:33:55 ] >>775 APIはウインドウズなんだから、 ウインドウズosであれば変わらないと考えても良いんじゃないですか? なるほど。 基本的にはバイオスがアクティブタイマーを監視するようであれば、 プログラムからタイマーを設定すればよくて、 そうでない、場合は各種のバイオス次第と言うわけなんですね。
778 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 13:38:38 ] APIはウィンドウズなんでしたか・・・ 本当にありがとうございました
779 名前:デフォルトの名無しさん [2007/06/06(水) 15:29:05 ] >>778 winのバージョンで使えなかったり動作が違う事はあるけどなー
780 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 15:56:46 ] スルーしろよ
781 名前:691 mailto:sage [2007/06/06(水) 17:03:25 ] >>692 ないですか・・・ >>693 情報ありがとうございます。 (1)はWindowsAPIではどうも難しそうですね。(2)はCryptoAPIでできるかもしれませんが。 (1)はOpenSSLでなんとかならないか調査してみます。
782 名前:デフォルトの名無しさん [2007/06/06(水) 20:22:51 ] editcontrolにautocompleteを付けたんですが そのsuggestのドロップダウンが出たタイミングはどうやったら知ることができますか? WM_NOTIFYとか親に来るのかと思ったけどどうも来ないみたいです
783 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 20:46:18 ] >>745 昔、PerlでCGIを書いたときは、ファイルのリネームで排他処理ができたから、 windowsでも、同じようにできるかなって思ったんだけど、Linuxなんかとは、動作が違うってことなんかなぁ。 VBからAPIを読んでるから、もしかしたらそのせいかもしれないかなと思ったけど、検証がめんどうだから MoveFileのあとに、ファイルをオープンして、成功したら、リネーム成功ってことにしました。
784 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 20:48:37 ] それってMoveFile()はアトミックじゃないってこと? なんかそれすごく嫌だな
785 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 21:07:55 ] WIN32APIとは違うかもしれませんが質問させてください。 CAxWindowの作成時にパワーポイントのファイルを読み込ませ表示させているのですが、何度もCAxWindowを作成、削除を繰り返していると、削除時(DestroyWindow時)にパワーポイント側のエラー(マイクロソフトにエラーデータを送信してくださいウィンドウ)が発生します。 何かエラーになる原因、もしくは、エラーウィンドウを表示させない方法を教えていただけないでしょうか。 お願いします。
786 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 21:17:22 ] CAxWindow付随メンバの解放する順序なんじゃね?
787 名前:785 mailto:sage [2007/06/06(水) 21:41:01 ] 申し訳ありません。 付随メンバの解放とはどうすればよいのでしょうか?
788 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 22:10:55 ] >>787 多分、ヒープやらなんやらの確保順と解放順がちぐはぐなんじゃね? パワーポイント関連のオブジェクトの操作順をあらってみ?
789 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 22:16:51 ] PowerPoint関連オブジェクトのメソッド操作を部分的にコメント(#if 0〜#endif)してみて、 エラーがでるか調べてみたら?
790 名前:785 mailto:sage [2007/06/06(水) 22:54:14 ] レスありがとうございます。 再現しやすいように、CAxWindowの増加、処理の簡略化を 行いました。 (CAxWindowが一つですと、作成→削除を10時間近く繰り返さないと発生しないので) 処理の流れとしては、 CAxWindowを9個ほどCreateし、表示。 ↓ 3秒間CAxWindowの親ウィンドウにPeekMessageを繰り返す。 (CAxWindowを表示させる為だけであり、 プログラムで明示的にメッセージは投げていないです。) ↓ CAxWindowをすべてDestroyWindowする。 以上の流れをループで10分〜30分繰り返すと発生します。 そして、CAxWindowに対して行う処理ですが、 CreateとShowWindowとDestroyWindow以外の処理はさせていないです。 パワーポイント関連のオブジェクトはCAxWindowだけです。 IWebBrowser2も取得しておりませんし。 また、HTMLファイルを読み込ませた場合は、エラーメッセージは表示されないんですよね。 ほんとお手上げです・・・。
791 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 00:11:10 ] SBS_SIZEBOXとかSBS_SIZEGRIPとかって何なんですか! ググっても日本語の解説が無くて
792 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 00:15:31 ] ウソ付くな。
793 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 00:18:30 ] 思いっきりみつかるけどな
794 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 00:36:13 ] いや詳しい解説が無くて どこ行っても「サイズボックスを指定する」だの「縁のあるサイズボックス」だの その「サイズボックス」って何なの!って
795 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 00:44:10 ] >>794 www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rlz=1T4GGIH_jaJP209JP210&q=%e3%82%b5%e3%82%a4%e3%82%ba%e3%83%9c%e3%83%83%e3%82%af%e3%82%b9
796 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 00:45:38 ] 「サイズボックスとは」でググレ
797 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 00:49:31 ] もちろんググりましたが 「ウィンドウのサイズボックス」ではなく「スクロールバーのサイズボックス」についての解説が見たいのです!
798 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 01:05:18 ] 実際「スクロールバーのサイズボックスだ」としか答えようがないんだが・・。 SBS_SIZEBOX指定でスクロールバー作ってみ。
799 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 01:09:17 ] >>798 わかりました。一応作っては見ました。が、使い方が今一わかりません というか解説(又は画像)が無いことをちょっと不思議に思ってます これ使われてるソフトもあまり見かけないかなー、と
800 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 01:12:53 ] ttp://msdn2.microsoft.com/en-us/library/ms651267.aspx この辺に書いてなきゃ諦めな
801 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 01:20:56 ] そこは一番最初に見ました が、だめ! 解説ページは諦めます
802 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 01:24:58 ] へ〜。こんなの初めて知った。 スクロールバーというより「サイズボックスコントロール」っていうひとつの独立したコントロールみたいな感じだな。
803 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 06:38:05 ] 何が知りたいのかさっぱりわからん 自分の思い通りの解説が無かったら自分で書け
804 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 07:21:27 ] 自分の読解力の無さを人の文章力のせいにするな
805 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 08:37:15 ] 季節の変わり目だからな。最近、香ばしいのが多くて困る。
806 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 08:56:16 ] お前モナー
807 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 09:22:40 ] 僕バッカー!
808 名前:691 mailto:sage [2007/06/07(木) 14:40:34 ] HttpOpenRequest()のフラグをいろいろ変えて試してみましたが、 InternetOpen()にINTERNET_FLAG_ASYNCを付けると、 HttpSendRequest()はfalseかつERROR_IO_PENDINGになってしまうようですね。 InternetOpen()にINTERNET_FLAG_ASYNCを付けなかった場合、 HttpSendRequest()がfalseになりERROR_INTERNET_INVALID_CAを無事取得できました。 非同期にてERROR_INTERNET_INVALID_CAを取得できる方法はないでしょうか? 試行錯誤してみましたがまったく手段が見当たりません。 アドバイスお願い致しますm(_ _)m
809 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 14:45:51 ] 非同期でERROR_IO_PENDINGは正常なんだけど
810 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 14:56:43 ] InternetDestroy()ってなんか恐ろしくて使ったこと無いんですけど、 使って大丈夫ですかね?
811 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 15:10:37 ] >>808 InternetStatusCallbackの値みてる? msdn2.microsoft.com/en-US/library/aa383931.aspx
812 名前:691 mailto:sage [2007/06/07(木) 16:45:23 ] >>811 レスありがとうございます。 正にこれでした! コールバックの第四パラメータlpvStatusからERROR_INTERNET_INVALID_CAを取得できました。 本当にありがとうございましたm(_ _)m
813 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 18:32:03 ] ウインドウを常に手前に表示するには SetWindowPosでHWND_TOPMOSTをあたえればできますが そのウインドウがHWND_TOPMOSTなのかを取得するにはどうすればいいのでしょうか?
814 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 18:35:14 ] GetWindowLong
815 名前:813 mailto:age [2007/06/08(金) 00:05:48 ] どなたか分かる方はいませんでしょうか?
816 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 00:10:33 ] >>815 >>814
817 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 00:12:27 ] >>815 馬鹿じゃねぇの 分からない方が珍しい
818 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 00:12:42 ] >>815 間違ってたらゴメン 拡張ウィンドウスタイル(GWL_EXSTYLE)を取得して、 WS_EX_TOPMOSTを含んでるか調べるんじゃないかな?
819 名前:813 mailto:sage [2007/06/08(金) 00:19:25 ] 難しすぎて分かりません
820 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 00:22:33 ] LONG exStyle = GetWindowLong(hWnd, GWL_EXSTYLE); if ((exStyle & WS_EX_TOPMOST) != 0) { //TOPMOST }
821 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 00:30:40 ] WS_EX_TOPMOSTフラグではなく、お触り禁止フラグが立ちました
822 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 01:00:24 ] >813 TOP MOSTの指定をしたのが知りたいのか? 今、ウィンドウがTOP MOSTで画面に表示されているのが知りたいのか? 後者なら、FindWindowして Z-Orderを確認するしか手がないよ。
823 名前:813 mailto:sage [2007/06/08(金) 02:53:05 ] 自己解決しました^^
824 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 02:55:49 ] 時間掛かり過ぎ(禿藁)
825 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 08:13:39 ] どうみても他己解決
826 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 08:15:12 ] たこちゅうちゅ
827 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 08:25:13 ] >>823 恩知らずとはお前のことだ。
828 名前:デフォルトの名無しさん [2007/06/08(金) 08:35:34 ] 現在VC6.0でsubst相当のことをやろうとしているのですがDefineDosDeviceを 使えばできそうだというとこまではわかったのですがドライブの解除時に そのドライブを使用していたら(エクスプローラで開いている等) エラーメッセージを出すということをしたいのですが 探し方が悪いのかよい方法が見つかりません。 申し訳ありませんがどなたか教えていただけないでしょうか?お願いします。
829 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 09:02:36 ] >>828 もちつけ 要約すると、メッセージが出したいのか?
830 名前:828 [2007/06/08(金) 09:07:00 ] >>829 そうです。 DefineDosDeviceで割り当てたドライブを使用していたら メッセージを出したいです。
831 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 09:19:28 ] 必要に応じてSetErrorMode関数 <TODO> GetLastError関数でエラーNo FormatMessage関数でエラーNoから日本語(地域言語) <TODO>の箇所にDefineDosDevice関数とか、使用ユーザーほにゃほにゃ
832 名前:828 [2007/06/08(金) 09:35:23 ] 831>> DefineDosDeviceはドライブを使用していてもエラーなしでドライブを解除してしまうみたい なのでGetLastError関数でのやり方がわかりません。 あとSetErrorMode関数も調べてみたのですがいまいち使い方がわかりません。 どうやったらいいか詳しく教えてください。 お願いします。
833 名前:ららら [2007/06/08(金) 09:40:31 ] COM インターフェイスのメソッドって、何で const メソッドがないのら?
834 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 09:45:37 ] const の判断はコンパイラの仕事だから
835 名前:ららら [2007/06/08(金) 09:58:04 ] どういうことなのら?
836 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 10:01:55 ] あほすぎなのらw
837 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 10:05:49 ] >>833 COM は C でも使えないといけないから。
838 名前:ららら [2007/06/08(金) 10:07:33 ] > COM は C でも使えないといけないから たとえば、 interface ISome { STDMETHOD_(size_t, GetSize)(void) PURE; }; なら、Cでは size_t ISome_GetSize(const ISome* some); と書けるだろ?
839 名前:ららら mailto:sage [2007/06/08(金) 10:08:55 ] × STDMETHOD_(size_t, GetSize)(void) PURE; ○ STDMETHOD_(size_t, GetSize)(void) const PURE;
840 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 12:01:28 ] >>832 もうひとつの命題は 「そのドライブが、現在使用中かどうか判断」でおk?
841 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 12:21:30 ] >>828 質問の仕方が悪いよ。 あなたが知りたいのは、 メッセージの出し方ではなく、 DefineDosDeviceした後に、当該のドライブが使用中だったのか否か判別する方法 もしくは、 DefineDosDeviceする前に、当該のドライブが使用中なのか否か判別する方法 なんでしょ? ならば、そう書いたほうがいい。 >>829 が言いたいのは、そういうことなんだと思うよ。
842 名前:828 [2007/06/08(金) 13:15:24 ] 質問の仕方が悪く申し訳ありません。 >>840 さん、>>841 さんの言うとおり知りたいのは >DefineDosDeviceする前に、当該のドライブが使用中なのか否か判別する方法 です。 書き込み自体不慣れなもので迷惑をかけているとは思いますが ご教授よろしくお願いします。
843 名前:828 [2007/06/08(金) 13:27:20 ] 知りたいことがまだわかりにくい気がするので もう一度書かせてもらいます。 知りたいことは DefineDosDeviceを用いて割り当てたドライブを 再びDefineDosDeviceを用いて解除する時に、 当該のドライブが使用中なのか否か判別する方法 です。 よろしくお願いします。
844 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 14:21:27 ] >>838 C++ だと STDMETHOD_(size_t, GetSize)(void) PURE; STDMETHOD_(size_t, GetSize)(void) const PURE; の2つを宣言できるけど、 C だとオーバーロードがないからこういう事ができない。 というあたりを意識してるんじゃないかな、と思ってるんだけど、 まあ、正直なところこれが理由かどうかは分からん。
845 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 14:30:34 ] VBにconstなメソッドの概念がないからだと思う まあCOMにconstがないからVBにconstなメソッドを入れなかったという順なのかもしれないけど
846 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 14:31:58 ] まぁ、COM に限らず、C++ の virtual 関数は const にすべきではないように思う。 メンバ関数が const かどうかは実装に依存して決定されるべきことだが、 virtual メンバ関数がどのような実装になるかは派生クラスに依存するわけだから、 virtual メンバ関数の宣言時には const かどうかを決定できないことになる。 したがって、const メンバ関数と virtual メンバ関数は共存できないように思う。
847 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 14:32:17 ] っつかCOM自体はOS・言語と独立。
848 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 14:36:15 ] メンバ関数がconstにすべきかどうかは機能仕様によるだろ 実装に依存するならmutableの存在意義がない
849 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 14:37:03 ] >>843 DeviceIoControlあたりなんかなー 誰か、ドライブ系のコントロールコマンドしりませんか?
850 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 14:42:43 ] >>848 mutable は本来使ってはいけないもの。存在しないほうがいい。friend と同じく。
851 名前:ららら [2007/06/08(金) 14:47:20 ] あのー、もう1つ質問なのら。 CComPtr を使うとインターフェイスの解放し忘れがない というのは本当なのか? なのら。 たとえば、 ISome* GetSome(void); という関数があって、これを CComPtr で受け取ろうとする場合、 CComPtr<ISome> spSome = GetSome(); や CComPtr<ISome> spSome( GetSome() ); とすると、オブジェクトは解放されなくなるらろ? でもこういうコードは自然に書いてしまいそうだから、コワイのらー。 GetSome 関数からも CComPtr を返せって? でもライブラリとして与えられている関数だから、 自分ではどうにもならないのらー。
852 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 14:48:48 ] まず日本語勉強してこい
853 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 14:50:58 ] まことちゃん?
854 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 14:58:30 ] 静岡の東部人じゃないのか >>851 そうら?
855 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 15:00:32 ] 山梨出身の友達もそんなしゃべり方するな。
856 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 15:05:27 ] 山梨でも、あんなしゃべり方しねーよw 853の言う通り、まことちゃんだろ。 しかし、まことちゃんを知っている奴は、確実にオッサン
857 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 15:24:31 ] >>838 ISomeを使う側なら、constがあってもなくても同じじゃん。
858 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 15:33:06 ] >>843 安全確実な方法はないと思う。 DefineDosDeviceのフラグに、 使用中ならばREMOVEしない というのがないということは、 OS自体が実現方法を持っていないのだと思う。 副作用や誤判定が生じても構わないなら、 substしたディレクトリ以下にある、すべてのファイルとディレクトリに対して、 共有しないモードでCreateFileを試みて、失敗すれば誰かが使っている、と。 副作用は、CreateFileを試みて成功してしまった場合、 すぐにCloseHandleしなければならないが、その瞬間を狙って、 他のプロセスがCreateFileすると失敗してしまうこと。 誤判定は、仮想ドライブだけでなく、元のパスを使っていても、 引っかかってしまうこと。
859 名前:ららら mailto:sage [2007/06/08(金) 15:33:08 ] >>857 何ゆーとんのら。使う側が C++ なら const であるかどうかは重要ら。 たとえば、ISome を包含するクラス CHoge を実装する場合、 ISome が const 型システムをもたないが故に、 CHoge も const 型システムを無視しなければならず、 この破壊の連鎖はどこまでも続いて行くらー。
860 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 15:33:48 ] >>850 本来使ってはいけないものだが、 使わざるを得ない場合ってのもあるんだぜ?
861 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 15:36:24 ] >>851 そういうコードを自然に書くくせを直すべき。Attach もあるし。 ISome* tmp = GetSome(); CComPtr<ISome> spSome = tmp; // 以降でも tmp->Release() はしない これでリークしないと思える筈がないわけで、1行に書いても同じこと。 でもまぁ MFC みたいに ctor で AddRef しないオプションも、あれば便利だったかもね。
862 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 15:36:25 ] >>846 おいおい。本気で言ってるのか?
863 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 15:36:42 ] >>860 それは分かるが、const_cast で代用できる。
864 名前:846 [2007/06/08(金) 15:38:15 ] >>862 本気だが?
865 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 15:39:56 ] 「本気」と書いて「マジ」と読む
866 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 15:41:02 ] >>859 単にCOMのシンタックス上非 const になってるだけで セマンティックス的には const な動作ならば、 適宜 const_cast 使えばいいと思うけど。 そのための const_cast でそ。 盲目的に「変更するから非 const」とか考えてると、 AddRef ひとつ呼べやしない。
867 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 15:42:16 ] >>863 mutable だと宣言する事と、 const_cast を使う事は、 表している意味合いとか読みやすさとかが変わってくるな。 どちらにしろ、使わざるを得ない状況自体が稀だが・・・。
868 名前:ららら mailto:sage [2007/06/08(金) 15:47:11 ] >>866 結論! COM は C++ と相性が悪い! のらー。 >> 845 > VBにconstなメソッドの概念がないからだと思う COM と IDispatch を混同してはいかんのらー。 COM は VB のためのものではないのらー。
869 名前:828 [2007/06/08(金) 16:13:14 ] >>849 ,>>858 ありがとうございました。 実現が難しそうだということがわかりましたので もう少し自分で考えた後、突破口が見つからなければあきらめたいと思います。
870 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 16:38:43 ] >>869 Windowsって、ファイルを開いたときに渡したパスを、覚えてないんだよね。 部屋の中に人がいるかどうかしか管理してなくて、 どの入り口から入ってきたのかは、ノーケアなんだ。 ファイルのハンドルから、ファイル名を知りたくて色々調べたけど、解決方法はなかった。 裏APIを使えば、オブジェクトの名前はわかるようなんだけど、ファイル名とは違うんだよね。 いっそのこと全プロセスに対してCreateProcessをフックしてしまい、 ハンドルに対するCreateFile時のファイル名を管理してしまおうかとも思ったけど、 そんな行儀の悪いことをするのはダメだよねぇ、ってことで諦めた。
871 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 16:56:05 ] 870のいう通りなら、 当該のドライブが使用中に、その解除作業やっても問題ないんじゃないか? だから「ドライブを使用していてもエラーなしでドライブを解除してしまう」のでは? これは想像だけど、ファイルを開くときにSubstされたドライブの場合、 正しいディスクのパスに変換してからファイルを開く、ぐらいの処理やっててもおかしくないと思うんだがな。
872 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 17:21:17 ] >>871 たぶんフィルタドライバを使って実現されていると思われ。
873 名前:869 [2007/06/08(金) 18:32:09 ] >>870 >>871 >>872 ありがとうございます。参考になりました
874 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 23:39:23 ] すいません、質問です。 WinXPにてsend,recvを使ってバイナリデータを送受信したいのですが、 バッファの大きさの上限(要するに、一回のsendや一回のrecvで送受信できるデータ量の上限)って、 何バイトでしょうか?? また、もし上限が無いのでしたら、 例えば1GByte程のデータを送受信する場合、 バッファサイズはどのぐらいが効率的なのでしょうか?? ご教授御願いいたしますm(。−_−。)m
875 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 23:47:22 ] >>874 WinScokのヘルプにバッファの設定について書いてあるんだから、 最低限確認してからにしろよ。
876 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 00:38:16 ] >>874 なんつーか、そもそもTCP/IPはバッファを大きくしてもそれだけの大きさをそのまま扱えるわけじゃないことも ご存知ないような。入門サイトでじっくりお勉強することをお勧めするですよ。
877 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 01:04:06 ] >>874 マジレスしたらここに聞きにくる以前の問題すぎて笑った
878 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 01:55:50 ] 質問です。 CreateCaretでシステムキャレット(長方形型)を使わせていただいていますが ウィンドウのステータスバーの上に被さって表示されてしまいます。 また、DrawEdgeで描いたウィンドウ内枠も上書きしてしまいます。 システムにお借りしたキャレットは描画のクリッピングなどはできないのでしょうか お聞かせください。
879 名前:878 mailto:sage [2007/06/09(土) 01:58:46 ] 要するにエディタ等のウィンドウをスクロールした際の キャレットが隠れるように見える挙動を実現したいのです。
880 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 11:19:01 ] ウィンドウをスクロールして、 キャレットが隠れなければならないタイミングで、 HideCaret を呼べばいいのでは。
881 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 12:17:40 ] 【政治】民主党、無年金障害者問題で法案提出 在日外国人らも救済 民主党は9日、国民年金の対象外か、任意加入の時期に未加入だったため、 障害基礎年金をもらえない無年金障害者すべてに 「障害福祉年金」を支給する法案を衆院に提出した。 今国会に与党が提出を予定している案では、 救済対象を元学生と専業主婦に限っているが、 民主党案は在日外国人や在外邦人も救済する手厚い内容だ。 給付額は、与党案では障害基礎年金の約6割にあたる月4万〜5万円だが、 民主党案は障害基礎年金と同額としている。 (06/09)朝日新聞 www.asahi.com/money/pension/news/TKY200406090286.html
882 名前:878 mailto:sage [2007/06/09(土) 16:11:21 ] >>880 手持ちの例で言えば↓このバイナリエディタStirlingのように ttp://www.vector.co.jp/soft/win95/util/se079072.html ウィンドウサイズを変更してキャレット上をステータスバーが覆うと 欠けたキャレットが点滅し続ける、このような挙動はどのように実現されているのか?ということです。
883 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 16:16:37 ] テキストエディタ(バイナリもそうだけど)系の奴って、 キャレットは自前描画するもんなんじゃなかったっけ? WM_TIMERつかまえて点滅、とか
884 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 16:20:01 ] 君のハートを捕まえて
885 名前:878 mailto:sage [2007/06/09(土) 16:27:03 ] >>883 そうなんですか。 同じくバイナリエディタの例で申し訳ないのですが↓のBZなんかは ttp://www.vector.co.jp/soft/win95/util/se032859.html >>882 のようなステータスバーがキャレット上を覆う時は シンプルにも完全にキャレットを非表示にする隠す挙動になっています。
886 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 16:41:26 ] ?どっちも同じじゃない?
887 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 16:43:33 ] >>885 ああごめんごめん、全部がそうってわけじゃないよ でも、あれ。俺はスターリンもBZも持ってんだけど、 試してみたらどっちも、キャレット一部が隠れてもちゃんと残りの一部が点滅してるな・・ バージョンが違うのかな?
888 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 16:46:58 ] バージョンが違いますね
889 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 16:50:51 ] そうですか、すんませんです
890 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 18:57:44 ] >>878 キャレットを所持するウィンドウとステータスバーの領域が重なってるんじゃないか? StirlingとBZもCreateCaretを使っている
891 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 20:05:43 ] フォルダの上で中央クリックしたら フォルダを新しいウインドウで開く ってのをできるソフトないかな?
892 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 20:07:43 ] ソフトウェア板に行ってね
893 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 20:16:25 ] >>891 それぐらい自分で作れカス
894 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 20:48:42 ] 実行ファイルのアイコンについてですが、WindowsXPのアイコンの表示方法には色々あると思います。 縮小版、並べて表示、一覧・・・ これらに対応して、違ったサイズのアイコンを表示したいのですが、どのようにすればいいのでしょうか?
895 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 20:52:26 ] アイコンは各種サイズを格納してる?
896 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 21:00:03 ] 一応48*48と32*32のアイコンをリソースに取り込んでます。 一番数字が若いやつが実行ファイルのアイコンになるっぽいので、48*48が標準で表示されています。 まぁ、どういう表示にしても48*48が表示されるのですが、これをなんとか・・・
897 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 21:01:20 ] 指定しろよ
898 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 21:03:52 ] >>896 その2つが別のアイコンとして扱われているのでは? Windowsでは1つのアイコンファイルやリソースが複数の大きさ・色数のアイコンを保持できる
899 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 21:07:23 ] どうやって指定するのでしょうか・・・(汗 VS2005を使用しているのですが、リソースビューでは特にいじる場所も見当たらなさそうな・・・
900 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 21:09:38 ] >>898 そうなんですか。ということは、今は2つのicoファイルが独立したリソースになってるって事ですね。 ちょっと色々試してみます。
901 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 21:11:04 ] >>899 なんだ、VSかい。EEじゃないよね? アイコンエディットしてるときに、いろいろメニューさがしてみそ
902 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 21:16:08 ] アイコンは、専用のソフトで一つの.icoにまとめてから、それを リソースとしてそのまま取り込むのが楽。 アイコンをまとめるソフトはフリーのやつでもわんさかあるから適当に選んで使うがよろし ちなみに俺は@iconってのを使ってる
903 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 21:17:14 ] @icon変換 とかで(ものはなんでもいいけど)ひとつのicoファイルが複数の サイズの違う画像を持つようするといいんじゃないかな
904 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 21:19:13 ] >>901 Visual Studio 2005です。リソースの追加>インポートを2回繰り返して2つのicoファイルを読み込んだのですが、 それではいけないんですよね・・・。色々メニュー見てみたり、右クリックしてみたりしたのですが いまいちどこでそういう変更が出来るのかまだわからないです・・・orz
905 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 21:19:56 ] >>902-903 ちょっと@iconを落としてきます!
906 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 21:25:27 ] @iconでマルチ画像保存したら出来ましたああああ;; ありがとうございます! というか、icoファイルって意外と高機能なんですね・・・ jpgとかgifの感覚で一つのファイルは一つの画像だと思ってました
907 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 21:34:07 ] なんでgifが一つなんだ?
908 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 21:37:19 ] 脳内
909 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 21:46:46 ] あ、gifは全然一つじゃないですね。アニメーションgifとか昔自分作ってたのに・・・orz
910 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 22:55:37 ] >>904 アイコンのエディット画面のイメージメニューだよ
911 名前:878 mailto:sage [2007/06/09(土) 22:58:18 ] >>887 BZはどうやら1行目だけは非表示にならずキャレットが点滅表示されるようです。 >>890 つまり、クライアント領域は別の子ウィンドウを張り付けるべきですかね? 今まで親ウィンドウに直書き描画しておりましたが・・・。
912 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 00:02:25 ] ここで聞くのが正しいか分からないけど、 VC++2005を使って「猫でも分かるプログラミング」を見て Win32APIの勉強をしているところなのですが、 プログラムに組み込みたいビットマップ画像や音楽ファイルって 生のまま(?)配布するソフトに一緒に入れておくしかないですか?
913 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 00:12:13 ] 自分の好きなようにしろよ。
914 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 00:15:20 ] >>913 自分の好きなようというか、 そのやり方しか知らなくて他に選択肢が無いから、 それ以外にやり方があるなら教えて下さい、という旨です。
915 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 00:16:09 ] 暗号化するなり、 1つのファイルにまとめるなり、 圧縮するなり、 リソースとして実行ファイルに埋め込むなり 好きにするなりよ
916 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 00:28:03 ] >>914 やり方なんていくらでもある その辺のPCゲームとか見れば、いくつか参考例もあるだろ? あと…あんまりWin32APIには関係ないかもな 俺はzlib使って固めて、独自ファイルヘッダくっつけて、 ついでに軽い暗号化かけて、チェック用のハッシュも持たせてやってる ファイル対象の圧縮・展開は専用ツール作って、 exeから使うときは展開ツールで利用してるクラスを使って簡単展開
917 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 00:33:52 ] この手の質問をする奴って、やり方は分かっているのに、 思いつく方法が面倒くさくて逃げ出したいから、 他人に何とかしてもらおうとしているだけなんだよね。
918 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 00:55:22 ] >>915 色々方法を教えて頂きありがとうございます、とても参考になりました。 まだレベルが低くて暗号化云々がアレなのでリソースとして 埋め込むという方法のやり方を調べてみます。 >>916 PC買って間もなくてプログラミング以外でほとんど使ったことが無かったので 一般的にどうするものなのか分からなかったです。 スレ違い&常識的なことを聞いていたらすいませんでした。 教えて頂いた方法はまだ技術的に追いつかないのでメモしておいて後で参考にさせて頂きます。 詳しく教えて頂きありがとうございました。 >>917 いえ、「猫でも〜」を挙げているように、まだ習い初めなのでガチでやり方が分かりませんでした。 ただ月曜が友人の誕生日で作ったプログラムを送りたくて 日程的に詰まっていたため自分で色々調べる時間が足りず、 ここで他人に何とかしてもらおうと思ったのは事実なので、 教えて君と不快に思われたらすいませんでした。
919 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 01:05:25 ] 誕生日プレゼントなら、happy99だよな ttp://www.geocities.jp/hiko_bae/happy99.html
920 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 15:29:27 ] すみません。質問です。 GetOpenFileNameで既存ファイルのフルパス文字列を受け取った場合、 ユーザーがキータイプしている可能性があるのでこれを統一化したいのですが良い方法はないでしょうか? フルパス文字列をキーとして内部保存し新たにOpenされた場合は相応の処理をしたいのです。 (ちなみに実際にファイル操作をするのはLinkした外部ライブラリです。) MBCS向けコーディングしていますが単純に_mbsnicmpをかませば大丈夫でしょうか? パスの命名規則があいまいで確信が持てません。。。
921 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 15:37:11 ] 日本語でおk
922 名前:920 mailto:sage [2007/06/10(日) 16:04:07 ] ああ、説明端折りすぎで意味不明でしたか。すみません 例えば、Abc.bmp、ABC.BMP、aBc.bmpなどは同じファイル(もっと長いファイル名でも)なので GetOpenFileNameで受け取ったパスをそのまま使ってキー探索するのは危険かと思いました で、Windowsシステムが認識しているパス名に統一する方法があればとお訊きした訳です 受け取ったパスでそのままSearchPathしてみたところ、どういう訳か入力した値そのものだったり エクスプローラ上のファイル名に置き換えられたり動作不定です(win2000)
923 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 16:07:30 ] > Abc.bmp、ABC.BMP、aBc.bmpなどは同じファイル ファイルシステムによっては違うファイルなのでは?
924 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 16:09:23 ] あなたは きょうしには むいていません。
925 名前:920 mailto:sage [2007/06/10(日) 16:23:49 ] >>923 え゜、、そうなんですか? 少なくともNTFS上では同じファイルとして扱われてますがFATやFAT32だと違うんでしょうか
926 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 16:38:46 ] なにを悩んでるのかがはっきりしないな。 特に >GetOpenFileNameで受け取ったパスをそのまま使ってキー探索するのは危険かと思いました の意味が分からない。 OPENFILENAME構造体のフラグで無効な文字や、無効なパスははじけるはず。 「危険」って何が「危険」なの?
927 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 16:40:14 ] NTFSもVATもFAT32も大文字と小文字を区別する。 大文字小文字区別しないのは昔のファイル名が8.3のFATじゃなかったっけ?
928 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 16:49:39 ] ファイルシステムとAPIとシェルの各層を区別しろや
929 名前:926 mailto:sage [2007/06/10(日) 16:52:53 ] >>920 すみません。よく読んだらちゃんとわかりました。 自分の読解力不足を嘆くばかりです。 www.ipa.go.jp/security/awareness/vendor/programming/b08_01_main.html ここを読んでおくとさらに悩めると思います。
930 名前:920 mailto:sage [2007/06/10(日) 17:08:36 ] 説明下手ですいません。かなりアホなこと訊いている気がしてきました >>926 既にOpen済みかそうでないかを判定する手段として Open済みのファイルのフルパスを保存し、一致検索しようと考ました 新たにOpenされたファイルなら前処理を行った後にライブラリにOpen要求を出します GetOpenFileNameでは存在するValidなパスしか受け付けないように設定しています >>927 不安になったので今デスクトップ上で上記3ファイルを新規作成してみましたが 最初の1個以外は同じファイル名だと怒られます(XP、NTFS)
931 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 17:17:52 ] >>930 > 不安になったので今デスクトップ上で上記3ファイルを新規作成してみましたが > 最初の1個以外は同じファイル名だと怒られます(XP、NTFS) それはWindowsのファイルシステムドライバが過去の互換性に縛られるせい。
932 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 17:19:39 ] GetVolumeInformation ttp://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpfileio/html/_win32_getvolumeinformation.asp FS_CASE_IS_PRESERVED ファイルシステムは、ディスクにファイル名を記録するときに、大文字と小文字を区別して保存します。 FS_CASE_SENSITIVE ファイルシステムは、ファイル名の大文字と小文字の区別をサポートしています。
933 名前:920 mailto:sage [2007/06/10(日) 17:32:51 ] 皆様、ありがとうございます なるほど。基本的な理解が足りていなかったようです。 具体的な解決法が未だ見えませんが教えてもらった情報を元に これから色々テストしてきます
934 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 17:36:45 ] がんばれ
935 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 17:48:12 ] >>920 与えられたパスをFindFirstFileに渡す。 これで大文字/小文字も含めて正確なパスが得られるよ。 俺はGetModuleFileNameで得られたパス名を修正するのに使っている。
936 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 18:15:31 ] がんばるな
937 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 18:25:55 ] CorrectFileNameEx
938 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 19:11:23 ] >>937 くわしく。
939 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 19:15:53 ] CorrectFileNameEx に一致するページは見つかりませんでした。
940 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 19:35:05 ] 次スレたてられなかった
941 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 20:09:01 ] >>940 >980 くらいでちょうどよい。まだ、早すぎ。
942 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 20:17:01 ] >>980 に期待
943 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 20:27:30 ] GetCanonicalFileName
944 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 21:32:03 ] >>943 詳しく
945 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 21:38:41 ] >>944 詳しく
946 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 21:43:09 ] >>945 悔しく
947 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 21:54:28 ] >>943 つまんね
948 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 22:22:49 ] >>947 ねんまつ
949 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 23:08:34 ] ファイルハンドルを開きっぱなしでそのファイルを削除しようとすると、 「ファイルまたはフォルダの削除エラー」がでます。 ファイルが削除されるタイミングを知ることができれば、 ファイルハンドルを解放しようと思います。 タイミングを知る方法を教えてください。
950 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 23:12:43 ] 初めから削除権与えたら駄目なん?
951 名前:949 mailto:sage [2007/06/10(日) 23:27:14 ] >> 950 ありがとうございます。 それで行けそうです。 めちゃ助かりました!
952 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 23:28:25 ] >>949 試したことはないけど便宜的ロックで何とかならない? SMBとかで使ってる奴。
953 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 06:14:19 ] スーパーマリオブラザーズで使われているのはロックではありません。
954 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 08:40:08 ] DPMSで画面の電源を切るにはどうするですか?
955 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 23:05:52 ] >>954 KernelIoControlでIOCTL_HAL_DDIとかじゃね?
956 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 00:02:21 ] ochinchin.h を omanko.cpp に include したのに
957 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 00:15:29 ] includeはinsertじゃないよバーカ
958 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 00:26:02 ] 僕バ(略
959 名前:デフォルトの名無しさん [2007/06/12(火) 09:33:04 ] スレ違いかと思いますが、他に適当なスレが見当たらなかったので ここでお伺いさせてください。 Windows2000で Shell_NotifyIcon()でシステムトレイに表示できるアイコンは 16色らしいのですが、この16色は16種類の色なのでしょうか? それとも決められた16色なのでしょうか?
960 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 14:04:17 ] 2kまでシステムカラー16色限定。 XP以後フルカラー+アルファが使えるようになった。 でもMEで256色アイコンが色化け無しでトレイにあるのを見たことあるんだよな・・・
961 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 14:06:32 ] IEというか Comctrl32 のバージョン依存じゃね?
962 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 14:15:44 ] ttp://msdn2.microsoft.com/en-us/library/ms538121.aspx hIcon Windows 95, Windows 98, and Microsoft Windows NT 4.0 support icons of up to 4 bits per pixel (BPP). Windows Millennium Edition (Windows Me) and Windows 2000 support icons of a color depth up to the current display mode. Windows XP supports icons of up to 32 BPP.
963 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 14:57:49 ] そのアイコンの話じゃねーんだよバーヤ
964 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 15:02:19 ] そのアイコンの話なーんだよバーカ
965 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 15:40:27 ] 扱うのはそのアイコンだが、今回の話はそれとは違う部分の制限だろ
966 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 16:05:06 ] いや、>>962 の説明で正しい。
967 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 16:21:31 ] 元の質問者は16色と言ってるんだけど、 つまりこれは16色の環境で実行したってことなの?
968 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 16:32:16 ] >>967 >16色らしいのですが っつーくらいだから、試してはいないとふんだ。
969 名前:デフォルトの名無しさん [2007/06/12(火) 16:51:50 ] すいません。元の質問者です。 試しました。 オレンジベースのグラデーションで16色アイコンをShell_NotifyIcon()で 表示したのですが、XP上ではイメージどおりに表示されたのですが 2Kに持っていったらグレースケール色になってしまったのです。 ググったら2Kは16色だよ。との情報を得ました。 そしてその16色とは固定の16色なのか16種類なのかとの疑問となり、 グレーになる原因を求めてこのスレにお邪魔させていただきました。 >>962 さんの情報では 2Kはデスクトップのカラービットに依存すると解釈したのですが であれば、32bitに設定していますので普通に表示されるはずだと 思うのですが・・・また解からなくなってしまいました。
970 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 17:03:03 ] 普通にShell_NotifyIconだけだと16色にしかならないから XP未満で256色なのはタスクトレイのウィンドウをフックしてイメージリストを書き換えてるんだよ。 exploer.exeにパッチとか常駐ソフトで変更てのもあるが汎用性がない。
971 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 17:06:47 ] グレースケールだとシステム標準じゃないような、、、って 白、明灰、暗灰、黒の4段階ならシステム16色だな。
972 名前:デフォルトの名無しさん [2007/06/12(火) 17:13:22 ] 元の質問者です。 すると Shell_NotifyIcon()だけを素直に使った場合、 >>960 のシステムカラー16色という制限を受けるって ことですね。
973 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 17:33:38 ] 16x16ドット16色で見やすいアイコンを作るのもプログラマの腕の見せ所です
974 名前:デフォルトの名無しさん [2007/06/12(火) 17:42:31 ] なるほどシステムカラーを組み合わせて 遠目からオレンジっぽく見えるようにします。 それにしても>>962 さんの紹介してくれたMSの説明は フックしてイメージリストを書き換えるのが前提の 説明なのでしょうか。 英語が苦手なので全部を解読するのは厳しいですが、 それもプログラマの腕の見せ所ですものね。
975 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 17:48:12 ] 流れとは関係ないかも知れないが、 うちの win98 では、トレイ上ではないが、8ビットカラーの 32x32, 16x16 の アイコンが表示されている。写真から xpadie かなんかで減色して作ったもの。
976 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 17:51:12 ] 休止状態、スタンバイ、スリープから復帰したことを知ることって出来ないですか?
977 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 17:54:48 ] はい。
978 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 18:03:40 ] >>976 ttp://www.winapi-database.com/Message/WM/WM_POWERBROADCAST.html
979 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 18:06:19 ] >>976 出来ない が true か → いいえ 出来ない が false か → はい
980 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 18:07:43 ] >>976 質問の仕方が悪い。 休止状態、スタンバイ、スリープから復帰したことを知る方法がありますか。 あれば、その方法を教えてください。 とか言えばいいのよ。 本当に知りたいことが、方法の有無だけで、 あるなら自分で調べるよ、という人もいるからね。
981 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 18:14:25 ] >>978 thx >>980 行間が読めない馬鹿は死ねばいいと思います
982 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 18:24:12 ] >>978 は余計なことをしたな
983 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 18:26:53 ] 一行だから行間はない
984 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 18:27:46 ] >>980 の脳が腐ってるだけ。
985 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 18:45:00 ] >976が赤の他人に甘えてるだけ。 行間読むなんて、どこまでできても結局読んだ奴の推測にすぎない。
986 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 18:46:52 ] もう>>983 の勝ちでいいよ
987 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 18:46:56 ] お前らそんなんじゃコンビニにすら行けないな。
988 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 18:49:13 ] >>985 がアホ過ぎるwよくそんなんで生活出来てるなwwwwwww
989 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 18:51:59 ] 質問の回答を聞きに来たのか 煽りに来たのか どっちだ
990 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 18:53:37 ] あんな質問してる方がアホ過ぎだ
991 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 18:54:40 ] 一連のレスで何が一番ひどいかって言ったら、>>981 だろう。 こういうやつにまともなレスをしてはいけない。 しかも自演までしてるし。
992 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 18:56:29 ] 「ぼくのしつもんに すなおに こたえないやつは わるいやつ」
993 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 18:56:49 ] じゃあ一番のボケは>>985 ってことで
994 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 19:12:25 ] >>988 対面リアルタイムでのやりとりは、この文字だけのやりとりとは情報量が格段に違うんだよ。
995 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 19:15:25 ] >>980 くらいでカチンとくるやつは この板でちゃんとした回答はもらえないだろうなぁ
996 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 19:19:16 ] 社会でも駄目だろ 文章力も無いのに行間読めとか言う奴は
997 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 19:22:12 ] 課長、行間読んでます?
998 名前:デフォルトの名無しさん [2007/06/12(火) 19:28:04 ] >>981 お前が死ねば?
999 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 19:35:08 ] ぬるぽ
1000 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 19:37:04 ] 行間はここに↓
1001 名前:1001 [Over 1000 Thread] このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。