Win32API質問箱 Build87
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2010/03/28(日) 10:23:58やさしいお兄さんやお姉さんたちが答えてくれるかも。
「知らないならレスしないで下さい。ウザイだけです。 」なんて言わないでねっ!
過去スレ、関連リンクは>>2-10くらい。
■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。英語版( http://msdn.microsoft.com/en-us/library/ )の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで
- Win32API質問箱 wiki
http://wiki.livedoor.jp/program1/d/FrontPage
Win32API質問箱 Build86
http://pc12.2ch.net/test/read.cgi/tech/1265350980/
0002デフォルトの名無しさん
2010/03/28(日) 10:25:0484 ttp://pc12.2ch.net/test/read.cgi/tech/1259478896/
83 ttp://pc12.2ch.net/test/read.cgi/tech/1256891725/
82 ttp://pc12.2ch.net/test/read.cgi/tech/1253699773/
81 ttp://pc12.2ch.net/test/read.cgi/tech/1249140049/
80 ttp://pc12.2ch.net/test/read.cgi/tech/1244057140/
79 ttp://pc12.2ch.net/test/read.cgi/tech/1240411224/
78 ttp://pc12.2ch.net/test/read.cgi/tech/1238289377/
77 ttp://pc12.2ch.net/test/read.cgi/tech/1235494464/
76 ttp://pc11.2ch.net/test/read.cgi/tech/1233622578/
75 ttp://pc11.2ch.net/test/read.cgi/tech/1231423602/
74 ttp://pc11.2ch.net/test/read.cgi/tech/1229239827/
73 ttp://pc11.2ch.net/test/read.cgi/tech/1227934931/
72 ttp://pc11.2ch.net/test/read.cgi/tech/1226575789/
71 ttp://pc11.2ch.net/test/read.cgi/tech/1224745158/
70 ttp://pc11.2ch.net/test/read.cgi/tech/1221446107/
69 ttp://pc11.2ch.net/test/read.cgi/tech/1217687038/
68 ttp://pc11.2ch.net/test/read.cgi/tech/1215348804/
67 ttp://pc11.2ch.net/test/read.cgi/tech/1212931246/
66 ttp://pc11.2ch.net/test/read.cgi/tech/1210775622/
65 ttp://pc11.2ch.net/test/read.cgi/tech/1208847084/
64 ttp://pc11.2ch.net/test/read.cgi/tech/1207099291/
63 ttp://pc11.2ch.net/test/read.cgi/tech/1204600558/
62 ttp://pc11.2ch.net/test/read.cgi/tech/1202060403/
61 ttp://pc11.2ch.net/test/read.cgi/tech/1199514664/
0003デフォルトの名無しさん
2010/03/28(日) 10:25:4459 ttp://pc11.2ch.net/test/read.cgi/tech/1194701996/
58 ttp://pc11.2ch.net/test/read.cgi/tech/1191781463/
57 ttp://pc11.2ch.net/test/read.cgi/tech/1189255282/
56 ttp://pc11.2ch.net/test/read.cgi/tech/1186989201/
55 ttp://pc11.2ch.net/test/read.cgi/tech/1184853465/
54 ttp://pc11.2ch.net/test/read.cgi/tech/1181645965/
53 ttp://pc11.2ch.net/test/read.cgi/tech/1178882828/
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/
0004デフォルトの名無しさん
2010/03/28(日) 10:26:2729 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
0005デフォルトの名無しさん
2010/03/28(日) 10:30:28hoge((bool)0,(HANDLE)0)
みたいなことはしてもいいと思う
HANDLEってvoid*だぞ
キャストする意味がない
0006デフォルトの名無しさん
2010/03/28(日) 10:31:47ソースコードの解読のしやすさの話ね
0007デフォルトの名無しさん
2010/03/28(日) 11:50:36ウインドウ名や内容に ”文字” では無く、Char変数の内容を表示させたいのですができますかね?
0008デフォルトの名無しさん
2010/03/28(日) 12:41:460009デフォルトの名無しさん
2010/03/28(日) 13:22:44WM_SETTEXT
0011デフォルトの名無しさん
2010/03/28(日) 18:20:20Clearの直前にSetClipしても反映されませんでした。
0012デフォルトの名無しさん
2010/03/29(月) 00:36:13日本語でおk
0013デフォルトの名無しさん
2010/03/29(月) 00:39:27ヒント:「システム」ダイアログ
0014デフォルトの名無しさん
2010/03/30(火) 00:53:48そのプラグインは特定の条件化(バージョンチェックなど)で
不整合が発生した場合、自らをアンロードしたいのですが、
何か良いやり方はありませんか?
あるのであれば教えて頂きたいです。
0015デフォルトの名無しさん
2010/03/30(火) 01:22:24DLLをアンロードするAPIはFreeLibraryがあるが
DLLが自分自身をアンロードするのは普通にはできないと思う。
0016デフォルトの名無しさん
2010/03/30(火) 01:27:37001714
2010/03/30(火) 01:34:37それができない状況です。
>>15
自分自身をアンロードはやはりできないですか。。
ExitProcess()しちゃうとプロセス自身が落ちてしまいますよね・・
フラグか何か持って処理をさせないという微妙な方式を採用するしかないのかな。
とりあえずもう少し意見があるかも知れないのでしばらく待ってみます。
0018デフォルトの名無しさん
2010/03/30(火) 01:39:25ロードする方のプロセスに手を入れられるなら、
そっちでアンロードするように実装すべき。
0019デフォルトの名無しさん
2010/03/30(火) 02:28:03でも、通知領域にアイコン持つプロセスにそれを実行したとき、通知領域のアイコンが表示されたままになる。
これはアイコンリソースが開放されてないからじゃないの?
0020デフォルトの名無しさん
2010/03/30(火) 06:52:320021デフォルトの名無しさん
2010/03/30(火) 07:17:300022デフォルトの名無しさん
2010/03/30(火) 07:49:53通知領域はexplorer.exeのプロセス内だ
0023デフォルトの名無しさん
2010/03/30(火) 20:22:50FreeLibraryAndExitThread
0024デフォルトの名無しさん
2010/03/30(火) 21:02:180025デフォルトの名無しさん
2010/03/30(火) 23:15:24CPU名を取得するにはどうしたらよいのでしょうか?
738 名前:デフォルトの名無しさん[sage] 投稿日:2010/03/19(金) 15:41:47
>>737
WMI使うのが簡単。
739 名前:デフォルトの名無しさん[] 投稿日:2010/03/19(金) 16:18:58
めんどくせーから、ソース晒してくれ
740 名前:デフォルトの名無しさん[] 投稿日:2010/03/19(金) 16:29:46
>>738
簡単なサンプルを教えていただけないでしょうか?
741 名前:デフォルトの名無しさん[sage] 投稿日:2010/03/19(金) 16:31:24
とりあえずおぱいうp
0026デフォルトの名無しさん
2010/03/31(水) 00:37:45プロンプト出してユーザー自身に使ってるCPU名を入れさせろ
0027デフォルトの名無しさん
2010/03/31(水) 08:28:25mov eax,80000002h;...80000004h
cpuid
0028デフォルトの名無しさん
2010/03/31(水) 19:39:55unsigned char index;
int reg[4];
for(index = 0, num = 0x80000002L; num <= 0x80000004L; index += 4, num++)
{
__cpuid(reg,num);
memcpy(&name[index],reg,sizeof(int) * 4);
}
name[48] = '\0';
printf(_T("%hs\n"),name);
0029デフォルトの名無しさん
2010/03/31(水) 19:41:15s/printf/_tprintf/
0030デフォルトの名無しさん
2010/03/31(水) 19:42:410031デフォルトの名無しさん
2010/04/01(木) 07:59:58LARGE_INTEGER liX = 0;
ではなく、
LARGE_INTEGER liX = { 0 };
とするのは、なぜなんでしょうか?
LARGE_INTEGERが共用体だからですか?
0032デフォルトの名無しさん
2010/04/01(木) 09:15:37ttp://akky.cjb.net/mfc/initstru.html
0033デフォルトの名無しさん
2010/04/01(木) 09:44:530034デフォルトの名無しさん
2010/04/01(木) 13:21:57あー
そういう意味だったんですね
0035デフォルトの名無しさん
2010/04/01(木) 16:44:10ZeroMemory()という関数は純粋なWindowsAPIではないという認識でよろしいでしょうか?
宣言をたどっていくと…RtlZeroMemory(WinNT.h)→memset(String.h)になってるので…
CRT依存したくない場合は、自作するのがベターって事ですかね。
0036デフォルトの名無しさん
2010/04/01(木) 17:31:36#undefしてもよいしマクロ展開させないためにスペースをあけてもよい
RtlZeroMemory (
0037デフォルトの名無しさん
2010/04/01(木) 17:42:13ありがとうございます。スッキリしました!
0038デフォルトの名無しさん
2010/04/01(木) 18:20:170039デフォルトの名無しさん
2010/04/01(木) 22:03:280040デフォルトの名無しさん
2010/04/02(金) 09:48:570041デフォルトの名無しさん
2010/04/02(金) 10:03:300042デフォルトの名無しさん
2010/04/02(金) 10:35:51mscoreee.dll:_CorDllMain,_CorExeMain系関数をインポートしていればマネージドコードを含む
さらにその他のdllもインポートしている場合マネージド/アンマネージド混在の可能性が高い
何もインポートしていないならマネージド/アンマネージドに無関係なデータ/リソースモジュールの可能性が高い
それ以外の場合はアンマネージドモジュールの可能性が高い
COM参照など間接的な物はほぼ判定不能
0043デフォルトの名無しさん
2010/04/02(金) 11:23:59ちょっとがんばってみます。
マネージドコードで判断するときは
リフレクション使ってファイル読んだときに
アンマネージドであれば例外を出してくれる陽南でかんたんにわかるようなんですけどね。
0044デフォルトの名無しさん
2010/04/02(金) 17:57:26しらんけど
0045デフォルトの名無しさん
2010/04/02(金) 19:15:52共有セクションってどこまで適用されるの?ウィンドウステーション?
0046デフォルトの名無しさん
2010/04/03(土) 07:01:160047デフォルトの名無しさん
2010/04/04(日) 23:46:00とあるクラスを作成後、動作確認中、作成した自作クラスのコンストラクタ内の処理の途中で
ブレイクポイントを仕掛けたのですが、どうもブレイクしてくれません。
※正確には、コンストラクタと、publicメンバ関数の2箇所にブレイクポイントをしかけました。
しかしコンストラクタのブレイクポイントは無視され、publicメンバの方だけで止まります。
これは仕様なんでしょうか。ご存知の方いらっしゃいましたらよろしくお願いいたします。
0048デフォルトの名無しさん
2010/04/04(日) 23:46:53殺されたいのかお前は
スレタイ100回声に出して読め
0049デフォルトの名無しさん
2010/04/05(月) 00:10:28ゴメン。しかも自分の勘違いだった
0050デフォルトの名無しさん
2010/04/05(月) 00:21:320051デフォルトの名無しさん
2010/04/05(月) 03:49:34ってありませんか?
0052デフォルトの名無しさん
2010/04/05(月) 06:21:070053デフォルトの名無しさん
2010/04/05(月) 13:00:200054デフォルトの名無しさん
2010/04/05(月) 13:14:04WIA_DPC_FOCUS_DISTANCE/WIA_DPC_FOCAL_LENGTH
0055デフォルトの名無しさん
2010/04/05(月) 14:30:070056デフォルトの名無しさん
2010/04/05(月) 15:05:380057デフォルトの名無しさん
2010/04/05(月) 15:09:280058デフォルトの名無しさん
2010/04/05(月) 15:20:510059デフォルトの名無しさん
2010/04/05(月) 15:27:24http://www.geekpage.jp/programming/iphlpapi/
0060デフォルトの名無しさん
2010/04/05(月) 15:28:220061デフォルトの名無しさん
2010/04/05(月) 15:36:40>>48
0062デフォルトの名無しさん
2010/04/05(月) 15:53:29でてきましたよどじ
>>59
ありがとうございますありがとうございます。
あなたは神です。こんな糞まみれのスレで初めてみた神です。
0063デフォルトの名無しさん
2010/04/05(月) 15:53:590064デフォルトの名無しさん
2010/04/05(月) 15:55:040065デフォルトの名無しさん
2010/04/05(月) 16:00:050066デフォルトの名無しさん
2010/04/05(月) 16:17:46これ Win32API じゃないだろ
0067デフォルトの名無しさん
2010/04/05(月) 16:59:17いや参考になった。
へるぱAPIで取得できました。
しかし、しかし。
Presistent Routesだけ欲しい場合に判断に困ってます。
dwForwardProto辺りで何とか識別できそうかなっておもってたんですがダメっぽいですぅ
0068デフォルトの名無しさん
2010/04/05(月) 17:16:270069デフォルトの名無しさん
2010/04/05(月) 17:25:29まあ接続されてないんだからActive Routesに表示されないのは当然なんだが・・・
これPersistent Routesを取得する方法をさっさと教えてください。
0070デフォルトの名無しさん
2010/04/05(月) 19:20:14引数やDnDでファイル名を取得するとき、
ローカルのファイルだと C:\file.ext
ネットワーク上のファイルだと \\PCNAME\share\file.ext
で受け取りますよね。
UNCが説明されているあるサイトで \\PCNAME\C:\file.ext
のような表記を見かけたのですが、
(http://e-words.jp/w/UNC.html)
このように取得する方法ってありますか?
0071デフォルトの名無しさん
2010/04/05(月) 20:22:01管理共有でもなきゃ、その記述が間違い。
0072デフォルトの名無しさん
2010/04/05(月) 20:22:280073デフォルトの名無しさん
2010/04/05(月) 20:23:250074デフォルトの名無しさん
2010/04/05(月) 20:28:43偶々Cドライブを「C$」という名前で共有した結果なだけだろうに。
0075デフォルトの名無しさん
2010/04/05(月) 20:29:46そのプロセスハンドル取得してReadProcessMemory使ってもうまく表示してくれません
GetLastErrorみたらERROR_ACCESS_DENIEDって出たけどOpenProcessToken等の操作で変わるものでも無いので
どうすれば表示されるのか分からないので教えてください
0076デフォルトの名無しさん
2010/04/05(月) 20:35:520077デフォルトの名無しさん
2010/04/05(月) 20:37:280078デフォルトの名無しさん
2010/04/05(月) 20:41:560079デフォルトの名無しさん
2010/04/05(月) 20:44:24・指定アドレスの有効性の問題
・指定アドレスのアクセス権の問題
どれかしかない
0080デフォルトの名無しさん
2010/04/05(月) 20:46:230081デフォルトの名無しさん
2010/04/06(火) 11:28:50Active Routesに対してならできるがそれじゃ意味がないぽ><
0082デフォルトの名無しさん
2010/04/06(火) 23:32:120083デフォルトの名無しさん
2010/04/07(水) 04:30:11どっちでも同じAPIを呼んで同じ情報が取得できるはず。
0084デフォルトの名無しさん
2010/04/07(水) 16:36:08コンパイラはicl 11.0、OSはWindows XP 64bitです。
0085デフォルトの名無しさん
2010/04/07(水) 19:09:190086デフォルトの名無しさん
2010/04/07(水) 19:29:55ディスプレイの調整は、そのインターフェースがあるなんて聞いた事無い
0087デフォルトの名無しさん
2010/04/07(水) 19:42:220088デフォルトの名無しさん
2010/04/07(水) 20:21:20Vista以降ならある。
0089デフォルトの名無しさん
2010/04/08(木) 08:30:150090デフォルトの名無しさん
2010/04/08(木) 12:05:40PC起動時の初回と2回目以降に実行し他場合、処理速度が100倍ぐらい違うのですが、どうしてでしょうか?
0091デフォルトの名無しさん
2010/04/08(木) 12:11:310092デフォルトの名無しさん
2010/04/08(木) 12:52:23そのモーダルダイアログのボタンを押したときモードレスダイアログを出したいのですが、
メッセージループが表面上にないので、IsDialogMessage() 関数を追加する方法が分かりません。
どうようにすればいいでしょうか?
0093デフォルトの名無しさん
2010/04/08(木) 13:47:10009492
2010/04/08(木) 15:51:22INT_PTR CALLBACK SubProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) {
switch (msg) {
case WM_CLOSE:
DestroyWindow(hWnd);
return TRUE;
}
return FALSE;
}
INT_PTR CALLBACK MainProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) {
switch (msg) {
case WM_INITDIALOG:
CreateDialog((HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE), "SubDLG", hWnd, SubProc);
return TRUE;
case WM_CLOSE:
EndDialog(hWnd, TRUE);
return TRUE;
}
return FALSE;
}
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hprev, LPSTR cmd, int show) {
DialogBox(hInst, "MyDLG1", NULL, MainProc);
return EXIT_SUCCESS;
}
>メッセージループを追加する
どこに追加すればいいでしょう…
0095デフォルトの名無しさん
2010/04/08(木) 15:55:17それで問題があるならスレッドを起動する
009692
2010/04/08(木) 17:15:01ダイアログプロシージャ内に入ったときはDispatchMessageが呼ばれているし、
スレッド立てたらメインスレッドのメッセージは読めないと思うんですが。。。
0097デフォルトの名無しさん
2010/04/08(木) 17:51:17> WinMainでDialogBoxを呼び出してモーダルダイアログを出します。
これを止めて
モードレスダイアログ MainProc側 生成 → メッセージループ (EndDialog() 呼び出しの確認だけ ちょこっと工夫)
メッセージループ内
MainProc側
何らかのトリガーで SubProc側生成
0098デフォルトの名無しさん
2010/04/08(木) 20:20:06自分も相手もWindows(XP以降)です
正しくはコンピューター名じゃなくてUNC名ですが
0099デフォルトの名無しさん
2010/04/08(木) 20:21:33どこでもいい
君のプログラムにとって必要な場所に追加する
>ダイアログプロシージャ内に入ったときはDispatchMessageが呼ばれているし、
DispatchMessageから呼ばれたプロシジャの中でDispatchMessageを呼んではいけないという規則は無い
自分でイベントループを回すとはそういうこと
>スレッド立てたらメインスレッドのメッセージは読めないと思うんですが。。。
読める
010092
2010/04/08(木) 20:28:31WinMainのモーダルダイアログを、モードレスにし、自分でメッセージループを回すことで、
サブ側もタブストップ効くようになりました。
ありがとうございました。
0101デフォルトの名無しさん
2010/04/08(木) 20:35:06■ このスレッドは過去ログ倉庫に格納されています