Win32API質問箱 Build81
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2009/08/02(日) 00:20:49やさしいお兄さんやお姉さんたちが答えてくれるかも。
「知らないならレスしないで下さい。ウザイだけです。 」なんて言わないでねっ!
過去スレ、関連リンクは>>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質問箱 Build80
http://pc12.2ch.net/test/read.cgi/tech/1244057140/l50
0002デフォルトの名無しさん
2009/08/02(日) 00:22:46- MSDN ホームページ
http://www.microsoft.com/japan/msdn/
- MSDN ライブラリ
http://msdn.microsoft.com/ja-jp/library/
http://msdn.microsoft.com/en-us/library/
- MSDN ライブラリ (ローカル版)
http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=7bbe5eda-5062-4ebb-83c7-d3c5ff92a373
- Windows SDK & Platform SDK
http://www.microsoft.com/downloads/details.aspx?FamilyID=74dd6e2d-89c6-4e1e-af00-fc7d70f15439&DisplayLang=en
http://www.microsoft.com/downloads/details.aspx?FamilyID=c2b1e300-f358-4523-b479-f53d234cdccf&DisplayLang=en
http://www.microsoft.com/downloads/details.aspx?FamilyID=ff6467e6-5bba-4bf5-b562-9199be864d29&DisplayLang=en
http://www.microsoft.com/downloads/details.aspx?FamilyID=7614FE22-8A64-4DFB-AA0C-DB53035F40A0&displaylang=ja
http://www.microsoft.com/downloads/details.aspx?FamilyId=484269E2-3B89-47E3-8EB7-1F2BE6D7123A
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/XPSP2FULLInstall.htm
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm
書籍
- Advanced Windows 第5版
http://www.amazon.co.jp/dp/4891005920
0003デフォルトの名無しさん
2009/08/02(日) 00:23:3479 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/
60 ttp://pc11.2ch.net/test/read.cgi/tech/1196874830/
59 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/
0004デフォルトの名無しさん
2009/08/02(日) 00:24:3949 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/
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/
0005デフォルトの名無しさん
2009/08/02(日) 00:25:2224 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
0006デフォルトの名無しさん
2009/08/02(日) 01:02:18Windows SDKのリンクが一部切れてます。
最新版へのリンクもなかったので修正しておきました。
MSDN
- MSDN ホームページ
http://www.microsoft.com/japan/msdn/
- MSDN ライブラリ
http://msdn.microsoft.com/ja-jp/library/
http://msdn.microsoft.com/en-us/library/
- MSDN ライブラリ (ローカル版)
http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=7bbe5eda-5062-4ebb-83c7-d3c5ff92a373
- Windows SDK & Platform SDK
http://www.microsoft.com/downloads/details.aspx?FamilyId=F26B1AA4-741A-433A-9BE5-FA919850BDBF&displaylang=en
http://www.microsoft.com/downloads/details.aspx?FamilyID=ff6467e6-5bba-4bf5-b562-9199be864d29&DisplayLang=en
http://www.microsoft.com/downloads/details.aspx?FamilyID=7614FE22-8A64-4DFB-AA0C-DB53035F40A0&displaylang=ja
http://www.microsoft.com/downloads/details.aspx?FamilyId=484269E2-3B89-47E3-8EB7-1F2BE6D7123A
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/XPSP2FULLInstall.htm
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm
書籍
- Advanced Windows 第5版
http://www.amazon.co.jp/dp/4891005920
0007デフォルトの名無しさん
2009/08/02(日) 01:10:340008デフォルトの名無しさん
2009/08/02(日) 01:59:48ttp://support.microsoft.com/kb/961110
こういう問題があるのでCreateFileでファイルオープンしてGetFileSizeExという
方法を併用するほうがいいかも。ちなみにこれはMSが馬鹿なだけであって、
別に陰謀ではありません。
0009デフォルトの名無しさん
2009/08/02(日) 02:30:28| l | | l | |
| | _,,,ニニ,,_ | | l
〉-ァカ |. ヽ ヽヾ``'、,,j |
/l { | ト、\ヽゝ弋ド、ヽヽ\ j' っ
⊂ { | .iト|r=ミ、 ヽトゞチラヌ\ i |∨
ヘ、レミ! トハ トッj:}ヒj リ { ! ⊃
,___ _,. -'' ´⌒`}. ゞ-' `ー"//λ !.i
(__, `ヽ / ヘ"" ’r-、 ""u//彡ハ.l ! こ、これは>>1乙じゃなくてホイミンちゃんの足なんだから
/ / / ○ `ト、 ' ,.イ./r=ミ、i.l l 変な勘違いしないでよね!
/ / {. r-...__ ○ ヾ`,ア´.ラ,〃 } ! !.|
/ ∠,____,.ゝ. i ア 八三彡イ/ /} リ.l
ゝ.,____,,,.->、._ ゝ、_ノ (^くr' └i / .//ノノ j
Z,. -'' /`7'''┬(二` `ハ'´ヾム /彡イ /
/ ,. -''| {ヽ ヽ(二 , j //丿.ノ
`ー' ヘ ヽヽ--'`j=-^ヽ、_ノ-ー'〈 ~
0010デフォルトの名無しさん
2009/08/02(日) 07:01:26♪Tous les oiseaux du point du jour chantent l'amour
♪Aux Champs-Elysées, aux Champs-Elysées
♪Au soleil, sous la pluie, à midi ou à minuit
♪Il y a tout ce que vous voulez aux Champs-Elysées
0011デフォルトの名無しさん
2009/08/02(日) 07:42:53これを無効化したいのですが、どのような関数を使えばよいでしょうか?
0012デフォルトの名無しさん
2009/08/02(日) 08:12:080013デフォルトの名無しさん
2009/08/02(日) 08:29:490014デフォルトの名無しさん
2009/08/02(日) 09:15:100015デフォルトの名無しさん
2009/08/02(日) 11:05:34TabStop関係かなぁ?
0016デフォルトの名無しさん
2009/08/02(日) 12:16:200017デフォルトの名無しさん
2009/08/02(日) 14:52:34WinsockとWinINetとかそういう関係にあると思う。
0018デフォルトの名無しさん
2009/08/02(日) 18:20:37そういえば、Windows 7 SDK RCのリンクって貼られてないよな。
http://www.microsoft.com/downloads/details.aspx?familyid=6DB1F17F-5F1E-4E54-A331-C32285CDDE0C&displaylang=en
0019デフォルトの名無しさん
2009/08/03(月) 16:09:20適切なウィンドウサイズを表示する方法ないかな?
0020デフォルトの名無しさん
2009/08/03(月) 16:13:350021デフォルトの名無しさん
2009/08/03(月) 17:20:32どうすればいいですか
0022デフォルトの名無しさん
2009/08/03(月) 18:40:10起動時,クライアント領域に"aaaaa"と表示され,その後方向キー右を押すと真っ白な画面に切り替わるプログラムを作ろうと思っています.
上のURLのようにコードを書いたのですが方向キー右を押しても画面が切り替わりません.どうしてでしょうか.
0023デフォルトの名無しさん
2009/08/03(月) 18:44:23BeginPaint/EndPaintはWM_PAINTでしか使えない
GetDC/ReleaseDCを使うといいかもしれない
0024デフォルトの名無しさん
2009/08/03(月) 18:45:49http://msdn.microsoft.com/ja-jp/library/cc428337.aspx
002523
2009/08/03(月) 18:47:180026デフォルトの名無しさん
2009/08/03(月) 18:48:17という疑問
0027デフォルトの名無しさん
2009/08/03(月) 18:53:59決め打ちでやってた
やっぱりGetSystemMetricsで色々情報取らないと駄目?
0028デフォルトの名無しさん
2009/08/03(月) 19:00:020029デフォルトの名無しさん
2009/08/03(月) 19:00:05メニュー複数行だと多少工夫が要るが
0030デフォルトの名無しさん
2009/08/03(月) 19:50:55結果的に何も転送されずに終わっちゃってるんだろうなあ。
BITMAP bm;
GetObject(GetCurrentObject(hmdc,OBJ_BITMAP),sizeof(bm),&bm);
って感じで取ってきたサイズを使えば一応できるな。
根本的な解決策には程遠いけど。
0031デフォルトの名無しさん
2009/08/03(月) 19:53:560032デフォルトの名無しさん
2009/08/03(月) 20:01:33試しに
SetRect(&rect,0,0,640,480);
AdjustWindowRect(&rect,WS_SYSMENU,FALSE);
としてサイズ指定しても、クライアントサイズは640x480にならなかった
0033デフォルトの名無しさん
2009/08/03(月) 20:13:370034デフォルトの名無しさん
2009/08/03(月) 20:22:260035デフォルトの名無しさん
2009/08/03(月) 20:28:240036デフォルトの名無しさん
2009/08/03(月) 21:39:570037デフォルトの名無しさん
2009/08/03(月) 22:16:49勿論同じの指定してます
WS_CAPTIONを追加したらサイズが若干変わりましたが
まだ640x480と望むサイズにはなりません
0038デフォルトの名無しさん
2009/08/03(月) 22:19:25GetWindowLongとGWL_STYLE使ってやってみ
0039デフォルトの名無しさん
2009/08/03(月) 22:36:08有難う。それも試してみたけど、サイズは変わらず
どうやら640x480にならないようです
多少誤差ありでも、決め打ちしてみます
0040デフォルトの名無しさん
2009/08/03(月) 22:38:350041デフォルトの名無しさん
2009/08/03(月) 22:51:55ツールバーのサイズを考慮に入れてないとか・・・。
0042デフォルトの名無しさん
2009/08/03(月) 22:52:37WS_SYSMENU | WS_CAPTIONの二つで
640x476になります
OSはXPでシェルはLiteStepに変えています
0043デフォルトの名無しさん
2009/08/03(月) 22:54:37サイズを指定する時はきちんと
right - left
bottom - top
としています
ツールバー等は無しで、只単純なウィンドウです
連投すみません
004422
2009/08/03(月) 22:56:220045デフォルトの名無しさん
2009/08/03(月) 23:09:48LiteStepが原因だろ、どうみても。
非公式ツールで変更しまくっている環境は流石にスレ違いだ。
LiteStepのスレで訊けよ。
0046デフォルトの名無しさん
2009/08/03(月) 23:13:440047デフォルトの名無しさん
2009/08/03(月) 23:31:23利用してるならAdjustWindowsRectも動作するはずだが
0048デフォルトの名無しさん
2009/08/04(火) 07:16:16CreateWindowした後に
SetRect( &rect, 0, 0, 640, 480 );
AdjustWindowRect( &rect, GetWindowLong( hWnd, GWL_STYLE ), FALSE );
SetWindowPos( hWnd, NULL, 0, 0, rect.right - rect.left, rect.bottom - rect.top, SWP_NOMOVE );
としています
ずっとLiteStepを使ってきて、他の環境でもあまり問題無かったので意識してませんでしたが
もし、上記やり方に問題が無ければ、LiteStepに原因があるかもしれないですね
0049デフォルトの名無しさん
2009/08/04(火) 08:32:30なんか互換性の為らしいが・・・
0050デフォルトの名無しさん
2009/08/04(火) 09:08:020051デフォルトの名無しさん
2009/08/04(火) 09:46:46100*100がメイン画面の大きさの場合、タブとかツールバーとかを付けると
若干画面大きくなるよね?
その場合、タブとかツールバーの大きさも100*100に含めてAdjustに渡さないと駄目?
0052デフォルトの名無しさん
2009/08/04(火) 09:53:320053デフォルトの名無しさん
2009/08/04(火) 10:21:03なんか互換性の為らしいが・・・
0054デフォルトの名無しさん
2009/08/04(火) 12:30:080055デフォルトの名無しさん
2009/08/04(火) 12:32:37100*100がメイン画面の大きさの場合、タブとかツールバーとかを付けると
若干画面大きくなるよね?
その場合、タブとかツールバーの大きさも100*100に含めてAdjustに渡さないと駄目?
0056デフォルトの名無しさん
2009/08/04(火) 14:13:410057デフォルトの名無しさん
2009/08/04(火) 14:20:36なんか互換性の為らしいが・・・
0058デフォルトの名無しさん
2009/08/04(火) 15:27:420059デフォルトの名無しさん
2009/08/04(火) 15:32:000060デフォルトの名無しさん
2009/08/04(火) 15:32:47100*100がメイン画面の大きさの場合、タブとかツールバーとかを付けると
若干画面大きくなるよね?
その場合、タブとかツールバーの大きさも100*100に含めてAdjustに渡さないと駄目?
0061デフォルトの名無しさん
2009/08/04(火) 15:34:46Aero有効にしてるとタブとかツールバーとかトンデモ仕様になっていくのが不便だなあ
なんか互換性の為らしいが・・・
0062デフォルトの名無しさん
2009/08/04(火) 15:36:40えーと、どのへんが質問?
0063デフォルトの名無しさん
2009/08/04(火) 15:41:040064デフォルトの名無しさん
2009/08/04(火) 16:12:300065デフォルトの名無しさん
2009/08/04(火) 16:14:230066デフォルトの名無しさん
2009/08/04(火) 16:14:350067デフォルトの名無しさん
2009/08/04(火) 16:15:050068デフォルトの名無しさん
2009/08/04(火) 16:49:160069デフォルトの名無しさん
2009/08/04(火) 18:50:380070デフォルトの名無しさん
2009/08/04(火) 19:04:23なんか互換性の為らしいが・・・
0071デフォルトの名無しさん
2009/08/04(火) 19:05:220072デフォルトの名無しさん
2009/08/04(火) 19:05:230073デフォルトの名無しさん
2009/08/04(火) 19:06:40涼宮さんが満足する何かがわかるまでです。
0074デフォルトの名無しさん
2009/08/04(火) 19:07:32ム板的にはwhile(true)
0075デフォルトの名無しさん
2009/08/04(火) 19:10:340076デフォルトの名無しさん
2009/08/04(火) 19:11:40100*100がメイン画面の大きさの場合、タブとかツールバーとかを付けると
若干画面大きくなるよね?
その場合、タブとかツールバーの大きさも100*100に含めてAdjustに渡さないと駄目?
0077デフォルトの名無しさん
2009/08/04(火) 19:13:16警告:条件式が定数です
0078デフォルトの名無しさん
2009/08/04(火) 19:14:510079デフォルトの名無しさん
2009/08/04(火) 19:16:400080デフォルトの名無しさん
2009/08/04(火) 19:16:430081デフォルトの名無しさん
2009/08/04(火) 19:20:360082デフォルトの名無しさん
2009/08/04(火) 19:21:030083デフォルトの名無しさん
2009/08/04(火) 19:26:17>>76
タブとかツールバーはクライアント領域の載せているものだから、
その上で空き領域を一定サイズ確保したいというなら当然必要。
0084デフォルトの名無しさん
2009/08/04(火) 19:59:08ハズレ
0085デフォルトの名無しさん
2009/08/04(火) 20:04:290086デフォルトの名無しさん
2009/08/04(火) 20:15:480087デフォルトの名無しさん
2009/08/04(火) 21:45:040088デフォルトの名無しさん
2009/08/04(火) 21:50:14ステータスバーの大きさって変えられない?
自分でステータスバーもどきのウィンドウ作った方が速いかな?
0089デフォルトの名無しさん
2009/08/04(火) 21:55:000090デフォルトの名無しさん
2009/08/04(火) 21:58:05SB_SETMINHEIGHTとか
0091デフォルトの名無しさん
2009/08/04(火) 22:40:01side-by-sideアセンブリ
0092デフォルトの名無しさん
2009/08/04(火) 23:21:420093デフォルトの名無しさん
2009/08/05(水) 04:12:25把握している人はエロい
0094デフォルトの名無しさん
2009/08/05(水) 06:51:420095デフォルトの名無しさん
2009/08/05(水) 08:14:32Google先生は把握してますが何か?
0096デフォルトの名無しさん
2009/08/05(水) 15:58:10ウインドウメッセージを解決するProcの中で、SendMessageをすると、即座に処理される理由がいまいちわかりません。
MessageBoxでも似たような疑問を持った際は「勝手にメッセージ解決ループを作って裏でまわしてくれるんだよ」
といった説明を受けて納得したのですが、今回の件も同様なのでしょうか?
0097デフォルトの名無しさん
2009/08/05(水) 16:02:50>この関数は、指定されたウィンドウのウィンドウプロシージャを呼び出し、
>そのウィンドウプロシージャがメッセージを処理し終わった後で、制御を返します。
0098デフォルトの名無しさん
2009/08/05(水) 16:03:19該当するウインドウのメッセージループに通知され、
その後メッセージハンドラがコールバックされて
対応するコード上で処理されてるから、即座じゃなくない?
MessageBoxの方も同様で、メッセージボックスがクリエイトされた後、
OS経由でメッセージがMessageBoxのメッセージハンドラに通知されてるよ。
Spy++みるとメッセージの応酬が見られるし。
0099デフォルトの名無しさん
2009/08/05(水) 16:16:14>>97-98
お返事ありがとうございます。
MSDNの説明を妙に勘違いしていたようです。
::SendMessageはウィンドウプロシージャを直接呼び出すのですね。
実は困っていたのは
case WM_CLOSE:
の中で別のワーカースレッドに停止命令を出し、ワーカースレッドの停止を確認するまでSleepする。
という処理でした。
このとき、ワーカースレッド側でSendMessageされると、フリーズしてしまいます。
これは、メインスレッドがプロシージャで処理中(Sleep中)なのに、他スレッドがプロシージャを呼ぼうとしたので、排他制御された。
ということで合っているでしょうか?
0100デフォルトの名無しさん
2009/08/05(水) 16:36:52そんな感じ。
ttp://msdn.microsoft.com/en-us/library/ms644927.aspx
のMessage Deadlocksに詳しく書いてある。
0101デフォルトの名無しさん
2009/08/05(水) 16:48:44ありがとうございます。
・・・そのページ、日本語版のMSDNでは省かれてますね・・・
0102デフォルトの名無しさん
2009/08/05(水) 16:50:160103デフォルトの名無しさん
2009/08/05(水) 16:51:040104デフォルトの名無しさん
2009/08/05(水) 16:58:57色々アドバイスありがとうございます。
タイトルバーの書き換えが目的のため、ポインタ渡しが必要となり、PostMessageでは行えませんでした。
(SetWindowTextは、内部でSendMesssageを呼んでるっぽいですね)
ついでに、報告。
>>100の文書のおかげで
SendMessageTimeout
なる関数を知りました。
タイムアウト値を10msくらいにしておけば、デッドロックが起こらずに済みますね。
こんな関数知りませんでしたわ
0105デフォルトの名無しさん
2009/08/05(水) 18:17:49winsxsはside by sideで使われてたのか、MSめ・・・
0106デフォルトの名無しさん
2009/08/05(水) 20:27:52UIの更新はUIスレッドにやらせるのが基本。
文字列は別の場所に置いておいて、
PostMessageでタイトルバーの更新を指示、といった感じで。
0107デフォルトの名無しさん
2009/08/06(木) 09:28:29いちいちクリティカルセクション使って、文字列渡し合うのか?
0108デフォルトの名無しさん
2009/08/06(木) 09:42:38結局 SendMessage のブロッキングと同じでデッドロックにならない?
0109デフォルトの名無しさん
2009/08/06(木) 11:28:21windows APIにもCreateFileという関数があって
どちらを使えばいいのかわかりません。
CreateFileのほうが細かく設定できるという認識だけで
よろしいのでしょうか?
0110デフォルトの名無しさん
2009/08/06(木) 11:40:39勉強中の身だからなんとも言えんけど、
プロに任せれば正しい回答が来るはず
0111デフォルトの名無しさん
2009/08/06(木) 11:48:33C言語が仕様を決め、Windowsが従ってる。
そのため(C言語の仕様が古いため)2GBまでのファイルしか扱えない。
CreateFileはWindowsが提供している関数。
Windows以外で使えないけど、代わりに2GBを超えるファイルも扱えるし、Windows特有のファイル属性なども操作できる。
0112デフォルトの名無しさん
2009/08/06(木) 12:33:140113デフォルトの名無しさん
2009/08/06(木) 13:07:04ただし、色々できる=複雑ってことだからそのあたりは臨機応変で。
0114デフォルトの名無しさん
2009/08/06(木) 14:15:59fopenで間に合うときはそっちのがシンプルでいいよ
0115デフォルトの名無しさん
2009/08/06(木) 17:36:58以下コードで 4 GB のファイルが生成できる件について
#include <stdio.h>
#define MEGA_BUF_SIZE (1024 * 1024)
#define OUT_FILE "test.dat"
int main(void)
{
static char buf[MEGA_BUF_SIZE] = { 0 };
int i;
FILE *oFP = fopen(OUT_FILE, "wb");
if(oFP == NULL)
{
perror(OUT_FILE);
return -1;
}
for(i = 0; i < 1024 * 4; i++)
fwrite(buf, 1, sizeof(buf), oFP);
fclose(oFP);
return 0;
}
0116デフォルトの名無しさん
2009/08/06(木) 18:15:32>>111こいつバカじゃねーの?
0117デフォルトの名無しさん
2009/08/06(木) 19:23:4432bit幅しか考慮されていないので、2Gの範囲しかアクセスできないと言う
点について、>>111がちょびっとだけカスってる。
#まあ、そもそも fopen の仕様を決めているのはC言語ではないけどね…。
fopen が CreateFile呼んでるから当然使えるってのは、標準関数の仕様と
比べてどうかと言う方向からみるべきなので、短絡的な意見だとは思うが。
0118デフォルトの名無しさん
2009/08/06(木) 20:16:530119デフォルトの名無しさん
2009/08/06(木) 20:21:260120デフォルトの名無しさん
2009/08/06(木) 20:39:15VC2008だと、0x7FFFFFFFより後への移動はエラーになって返ってくる。
関数内で、SetFilePointerを上位32ビットを指定せずに呼んでいる為に、
オフセット位置の範囲に制限がかけられている所為だな。
0121デフォルトの名無しさん
2009/08/06(木) 20:46:080122デフォルトの名無しさん
2009/08/06(木) 21:25:26そもそもクロスプラットフォーム開発してる訳でもなけりゃわざわざfopenなんて使う理由が無い
0123デフォルトの名無しさん
2009/08/06(木) 21:49:470124デフォルトの名無しさん
2009/08/06(木) 21:54:120125デフォルトの名無しさん
2009/08/06(木) 21:57:04がっ
0126デフォルトの名無しさん
2009/08/06(木) 22:10:060127デフォルトの名無しさん
2009/08/06(木) 22:12:360128デフォルトの名無しさん
2009/08/06(木) 22:16:420129デフォルトの名無しさん
2009/08/06(木) 22:16:440130デフォルトの名無しさん
2009/08/06(木) 23:04:300131デフォルトの名無しさん
2009/08/06(木) 23:11:250132デフォルトの名無しさん
2009/08/06(木) 23:22:580133デフォルトの名無しさん
2009/08/06(木) 23:26:210134デフォルトの名無しさん
2009/08/06(木) 23:39:510135デフォルトの名無しさん
2009/08/07(金) 00:43:08IEのURL打ち込み欄で
\\hostname.com
で、、このあとアカウントとパスワードを入力するダイアログが表示され
進めるとネットワークディレクトリがマウントできますが、
(Vistaの場合、レジストリを変更してセキュリティポリシーの書き換え必要)
この一連の流れをC++/MFCの環境で記述してマウントさせたいのです。
具体的にどういうAPIを使えばよいか、どういうサイトを参照すればよいか
など教えていただけますでしょうか。
よろしくお願いします。
0136デフォルトの名無しさん
2009/08/07(金) 00:53:01http://msdn.microsoft.com/ja-jp/library/default.aspx
0137デフォルトの名無しさん
2009/08/07(金) 03:59:350138デフォルトの名無しさん
2009/08/07(金) 06:05:300139デフォルトの名無しさん
2009/08/07(金) 11:42:31なんか微妙に誤解があるような気が……
ウィンドウプロシージャをメッセージ経由で実行する場合は、
必ずウィンドウを作成したスレッドで実行されるのがwindowsの仕様です。
その場合は、このスレッドがSleepさせられているため、SendMessageで
デッドロックするわけです。
0140デフォルトの名無しさん
2009/08/07(金) 12:17:190141デフォルトの名無しさん
2009/08/07(金) 14:29:26別スレッドにSendMessageして、send先から返ってくるのを待ってる間は
別スレッドからのSendMessageを受け付ける事ができる。
0142デフォルトの名無しさん
2009/08/07(金) 14:58:05だが、sendされた側がメッセージループでキューを喰い実行してくれないと
呼び出し側はブロックされっぱなしで SendMessage から戻ってこれない
0143デフォルトの名無しさん
2009/08/07(金) 15:14:37SendMessageから戻って来ない間も、別スレッドからのSendMessageには
即呼び出される。殆ど相手のコンテキストで動いてる感じ。
SendMessageなら戻ってくるまでは他のメッセージが来ないので安心、
と言うことではない。
0144デフォルトの名無しさん
2009/08/07(金) 15:19:140145デフォルトの名無しさん
2009/08/07(金) 15:45:300146デフォルトの名無しさん
2009/08/07(金) 16:08:31アプリケーション側の値を設定しているコードがあったんですけど、これって有効なんでしょうか。
ずっとコントロール側が使ってるものと思い込んでいたのですが。。。
0147デフォルトの名無しさん
2009/08/07(金) 16:58:33http://msdn.microsoft.com/ja-jp/library/cc411204.aspx
0148デフォルトの名無しさん
2009/08/07(金) 17:05:070149デフォルトの名無しさん
2009/08/07(金) 17:08:040150デフォルトの名無しさん
2009/08/07(金) 17:09:510151デフォルトの名無しさん
2009/08/07(金) 17:20:310152146
2009/08/07(金) 17:58:31GWLP_USERDATAとは全く別の領域に確保されてるんでしょうか。
コモンコントロールをspy++で見ると、ウィンドウバイトが割り当てられていて
それがコントロールが使っているものなのか、アプリケーションに任せているのか僕では判断できません。
コモンコントロールのクラスが定義済みなので、MSの配慮としてアプリケーション用に確保されているのかと
考えてしまいますが、明記されてる記事を見つけることができませんでした。
0153デフォルトの名無しさん
2009/08/07(金) 18:04:44>ウィンドウに関連付けられた値を設定します。
>この 32 ビット値は、<<<<ウィンドウを作成したアプリケーションで使用する目的で>>>>各ウィンドウが持っているものです。
>この値の初期値は 0 です。
この程度の日本語の解釈もできないの?
あんた小学生?
馬鹿なの?
死ねよ
0154デフォルトの名無しさん
2009/08/07(金) 18:06:030155146
2009/08/07(金) 18:08:25そのアプリケーション用というのが、本当に自作アプリケーションのためなのか、
コモンコントロールの拡張用なのかよくわかりません。
言葉どおり受け取るならそういうことなんですが。。。
0156デフォルトの名無しさん
2009/08/07(金) 18:11:57でもサードパーティ製のコントロール等はGWLP_USERDATAを使ってる物もある。
Spy++で見れば分かる。
いずれにしろ自作コントロール以外ではプロパティリストを使う方が安全。
0157デフォルトの名無しさん
2009/08/07(金) 18:19:05GWLP_USERDATAの使い道なんてほとんど無いけどな
0158デフォルトの名無しさん
2009/08/07(金) 18:38:07その関数内でオート変数を使ってるんですが
メモリリークとか大丈夫なんですかね?
0159デフォルトの名無しさん
2009/08/07(金) 18:42:100160デフォルトの名無しさん
2009/08/07(金) 18:47:190161デフォルトの名無しさん
2009/08/07(金) 19:29:530162デフォルトの名無しさん
2009/08/07(金) 19:32:20http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=71deb800-c591-4f97-a900-bea146e4fae1
0163デフォルトの名無しさん
2009/08/07(金) 19:34:420164デフォルトの名無しさん
2009/08/07(金) 19:56:01これでいい?
0165デフォルトの名無しさん
2009/08/07(金) 19:58:14RTM じゃリアルタイムマネーだろ!
0166デフォルトの名無しさん
2009/08/07(金) 20:00:090167デフォルトの名無しさん
2009/08/07(金) 20:11:400168デフォルトの名無しさん
2009/08/07(金) 22:31:420169デフォルトの名無しさん
2009/08/07(金) 22:37:460170デフォルトの名無しさん
2009/08/07(金) 22:58:48PEフォーマットの仕様ははっきりしてるし、
依存DLL名だけ調べるくらいならそんなに難しくないよ。
PEフォーマットについてかなりわかりやすく解説したページが以前はあったんだけど、
今は消滅しちゃってるな。 まぁ、マイクロソフトのページに行けばキッチリした仕様書が入手できる。
0171デフォルトの名無しさん
2009/08/07(金) 23:25:37それもimagehlp.dllのAPIを使えば簡単だし
0172デフォルトの名無しさん
2009/08/07(金) 23:34:12それって、Xp以降専用になるんじゃ……
まあ、それも時代か。
0173デフォルトの名無しさん
2009/08/07(金) 23:36:350174デフォルトの名無しさん
2009/08/08(土) 00:06:36ImageDirectoryEntryToDataEx使ってそれっぽいのとれたんですけど、RVAからVAの変換でミスg・・・
よくわかんねー
0175デフォルトの名無しさん
2009/08/08(土) 00:52:59MSDNにはXP以降と書かれてるけど実際には2000でも使える。
0176デフォルトの名無しさん
2009/08/08(土) 08:04:08今までと違って、x64環境にはx64用のイメージが必要なのに気付かなかったぜ。
0177デフォルトの名無しさん
2009/08/08(土) 09:41:58試してないけど、ファイルはあるみたい。
http://download.microsoft.com/download/2/E/9/2E911956-F90F-4BFB-8231-E292A7B6F287/GRMSDKX_EN_DVD.iso
0178135
2009/08/08(土) 16:14:41その方法で試みていますが、うまくいきません。
具体的には、
LPNETRESOURCE netResource = new NETRESOURCE();
netResource->dwScope = 0;
netResource->dwType = RESOURCETYPE_DISK;
netResource->dwDisplayType = 0;
netResource->dwUsage = 0;
netResource->lpLocalName = ""; // ネットワークドライブにする場合は"z:"などドライブレター設定
netResource->lpRemoteName = "\\\\hostname.com";
netResource->lpProvider = "";
DWORD err = WNetAddConnection2(netResource, "password", "account", CONNECT_UPDATE_PROFILE);
で、戻り値のerrは0になったのですが、マウントがされません。
netResource->lpLocalName = "Z:";
のようにしても、Zドライブに割り当てられません。
何が原因でマウントされないのでしょうか?
マウントされたボリュームが表示されるようにしたいのですが、
どうすればよいか教えてください。
よろしくお願いします。
0179デフォルトの名無しさん
2009/08/08(土) 17:59:47サンクス。ハッシュも一致していたし、それでOKみたいだ。
0180デフォルトの名無しさん
2009/08/08(土) 18:00:32多分\\\\hostname.com\\folderのようにするはず
で、folderは共有されていなければならなかったはず
0181デフォルトの名無しさん
2009/08/08(土) 22:49:320182デフォルトの名無しさん
2009/08/08(土) 23:01:41.NETとかイラネーし別ファイルにしてくれよ・・・
0183デフォルトの名無しさん
2009/08/08(土) 23:04:10VC++ しか使わないのに VB も VC# もついてくるのは抱合せ販売では?
とか思ったけど、いまの Visual Studio って、過去のVisual C++単体と同じくらいの金額なんだよな。
0184デフォルトの名無しさん
2009/08/08(土) 23:09:400185デフォルトの名無しさん
2009/08/08(土) 23:11:470186デフォルトの名無しさん
2009/08/08(土) 23:33:24ウェブセットアップ版ではだめですか?
0187デフォルトの名無しさん
2009/08/08(土) 23:40:10> Error: Setup determined that the Microsoft .NET Framework 2.0 is not present or could not be detected.
> Navigate to the Microsoft Download Center, search for .NET Framework 2.0 redistributable, and download the version appropriate for your platform
うぜーーーーーーーーー
0188デフォルトの名無しさん
2009/08/09(日) 00:43:320189デフォルトの名無しさん
2009/08/09(日) 01:06:450190デフォルトの名無しさん
2009/08/09(日) 01:22:410191デフォルトの名無しさん
2009/08/09(日) 01:33:08ちょっとグチらせてくれや。
0192デフォルトの名無しさん
2009/08/09(日) 01:34:28#include <limits>
#define NOMINMAX
#include <windows.h>
#include <windowsx.h>
#include <commctrl.h>
#include <shlobj.h>
#include <shlwapi.h>
#define STRSAFE_NO_DEPRECATE
#include <strsafe.h>
#pragma comment(lib, "comctl32.lib")
#pragma comment(lib, "shlwapi.lib")
こういうのをcommon.hみたいな名前で%include%に放り込んでおけば
#include <common.h>
だけで万事解決
0193デフォルトの名無しさん
2009/08/10(月) 13:12:160194デフォルトの名無しさん
2009/08/10(月) 13:42:190195デフォルトの名無しさん
2009/08/10(月) 14:25:22ソレつけるとかえって#includeの行数が増える事になるし面倒じゃね?
今時の計算機ならコンパイル時間の短縮にほとんど貢献しなさそう
0196デフォルトの名無しさん
2009/08/11(火) 10:43:43選択できない項目にすることができますが、
これを、アプリケーションからInsertMenuItem関数などで動的に追加するときに
適用することはできないでしょうか?
InsertMenuItem関数で使用するMENUITEMUINFO構造体を見ても、
該当するような項目は見当たりませんでした。
よろしくお願いします。 m(_ _)m
0197デフォルトの名無しさん
2009/08/11(火) 10:56:450198デフォルトの名無しさん
2009/08/11(火) 11:11:44グレーアウトなしの選択不可は MF_DISABLED っぽいが…
# リソースで作ったメニューを GetMenuItemInfo で fState 取得したら 2 だった
# 2 相当のマクロを winuser.h で探すと… MFS_xxx は存在しないっぽい
0200デフォルトの名無しさん
2009/08/11(火) 15:33:56そもそもグレーアウトしないのに選択できないなんてUIとしておかしいし
キーボード操作だと選択できないのが分からない
0201デフォルトの名無しさん
2009/08/11(火) 21:24:00レバーコントロールの背景についてです。
エクスプローラみたいにグラデーションのかかった背景にするには
どうしたらできるんですか?
背景としてビットマップを指定できるのは分かったんですけど、
エクスプローラの場合、ウィンドウのサイズを変えると、
背景のグラデーションも動的に変わるようにしたいんです。
0202デフォルトの名無しさん
2009/08/11(火) 21:32:550203デフォルトの名無しさん
2009/08/11(火) 21:38:110204デフォルトの名無しさん
2009/08/11(火) 21:47:380205デフォルトの名無しさん
2009/08/11(火) 22:04:110206デフォルトの名無しさん
2009/08/11(火) 22:40:13その最近のVCだとこんな風にpragmaでも書ける。もちろん、リソースでもリンカオプションでも可能。
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' "\
"version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
0207デフォルトの名無しさん
2009/08/11(火) 23:47:01#pragma comment(linker,"/manifest:comctlv6")
みたいなオプション用意してくれればいいのに
0208デフォルトの名無しさん
2009/08/12(水) 00:19:400209デフォルトの名無しさん
2009/08/12(水) 02:29:38(/nodefaultlib → /nod みたいな)
今度link.exeを逆汗して調べてみるか。
<チラシの裏>
cl.exeに/Bzか/Bdをつけてコンパイるとc1.dllやc2.dllに渡してるコマンドラインが見れる。
</チラシの裏>
0210デフォルトの名無しさん
2009/08/12(水) 12:27:53マニュアル見ろよ。
0211201
2009/08/12(水) 12:34:05マニフェストのおかげで実現できました。
ありがとうございました。
0212デフォルトの名無しさん
2009/08/12(水) 14:02:13思った位置に描画できないのですが、どうしてなんでしょうか。
ttp://msdn.microsoft.com/en-us/library/dd145212%28VS.85%29.aspx
ここの0x10000を足すやり方でhdcを求めてFillRgnで塗りつぶすと、
クライアント領域にずれ込んでウィンドウフレームの形に塗りつぶされてしまいます・・・
0213デフォルトの名無しさん
2009/08/12(水) 17:46:56マニュアルに載ってないオプションが大量にあるのを知らないのか
平和な奴だな
0214デフォルトの名無しさん
2009/08/12(水) 18:06:500215デフォルトの名無しさん
2009/08/12(水) 18:54:540216デフォルトの名無しさん
2009/08/12(水) 19:32:00あるだろうな。 それがどうした。
公開してないのをむやみに使うんじゃないよ。
0217デフォルトの名無しさん
2009/08/12(水) 21:27:51出て行くのを知る手段はありますか?
0218デフォルトの名無しさん
2009/08/12(水) 21:44:39入ってきたときMOUSEMOVEをキャプチャするとか。
または入ってきたときタイマで確認し始めるとか。
で、出たらどちらも初期化するとか。
いずれにしても自前で処理する必要がある。
0219デフォルトの名無しさん
2009/08/12(水) 21:59:290220デフォルトの名無しさん
2009/08/12(水) 22:07:32入ってきたとき、TrackMouseEvent()実行しないとだめだよね。
0221デフォルトの名無しさん
2009/08/12(水) 22:11:05キャプチャってボタン押さなくてもいけるんですね
それとWM_MOUSELEAVEも知らなかったのでその二つを色々試してやってみようと思います
ありがとう
0222デフォルトの名無しさん
2009/08/13(木) 20:40:36ALT+キーにも反応してしまうのを抑制することは出来ますか
0223デフォルトの名無しさん
2009/08/13(木) 21:55:580224デフォルトの名無しさん
2009/08/13(木) 22:12:02LEAVEの中で座標調べて必要ならEvent設定しなおしてやりましたが
何故キーに反応するのかわからない…
0225デフォルトの名無しさん
2009/08/14(金) 10:53:15ポップアップメニューを選択した時、メッセージの流れは
WM_EXITMENULOOP
WM_COMMAND
の順になるんですが
WM_EXITMENULOOPがくるまえに確実に選択したメッセージは来ないんでしょうか?
0226デフォルトの名無しさん
2009/08/14(金) 20:58:550227デフォルトの名無しさん
2009/08/14(金) 23:00:09ボヤッキー、やっちまいな。
0228デフォルトの名無しさん
2009/08/14(金) 23:01:440229デフォルトの名無しさん
2009/08/14(金) 23:17:19俺はVC6買ったら入ってたから、今もそれ使ってるけど
0230デフォルトの名無しさん
2009/08/15(土) 00:52:420231デフォルトの名無しさん
2009/08/15(土) 01:27:200232デフォルトの名無しさん
2009/08/15(土) 01:32:200233デフォルトの名無しさん
2009/08/15(土) 01:33:160234デフォルトの名無しさん
2009/08/15(土) 01:46:370235231
2009/08/15(土) 01:49:10ネットで落とすってなんか割る感じに聞こえたから
0236デフォルトの名無しさん
2009/08/15(土) 01:52:360237231
2009/08/15(土) 01:57:13expressionじゃspy++付いてこないし
0238デフォルトの名無しさん
2009/08/15(土) 02:05:260239デフォルトの名無しさん
2009/08/15(土) 02:59:21\
∧ニユ/ ̄ヽ
\ ( ´∀/) i
\.\ _(」つ/とl) . | \
;::;::\i\ 匚レ| .〈/ ) | \
。::;;:'\.\ (_,)ー' |_,, -'''"!
^人;:'::;゚:;.\l\ _,,, -''"|_,, -''"|
^^从::;;:。':\.\_,, -''"|_,, -''"| . :|
へ ^へ;;::';;:'\l_,, -''" . | 从^ 〜
^ ^ヘ^人从::;;;:| ,ィ人^. | ^ ^へ^^
〜 ^.へ' ^':レ^从 へ' | 〜 ^
へ ^^ へ 〜人^ ^ へ〜 〜
0240デフォルトの名無しさん
2009/08/15(土) 04:00:000241デフォルトの名無しさん
2009/08/15(土) 06:15:12この馬鹿はmsdnサブスクリプション知らないの?
0242デフォルトの名無しさん
2009/08/15(土) 07:21:18あっても正直ショボいから、自分で作ったほうがいいかもな
0243デフォルトの名無しさん
2009/08/15(土) 08:43:190244デフォルトの名無しさん
2009/08/15(土) 09:13:09探すぐらいなら自分で作ったほうがいいということだ
0245デフォルトの名無しさん
2009/08/15(土) 09:15:410246デフォルトの名無しさん
2009/08/15(土) 09:21:02あるなら教えてくれよ。軽く調べたけど俺は見つけられなかった
後、質問なんだが
マウスフックしてる時に、クリックされたウィンドウがポップアップなら処理しない用にしたいんだが
FindWindow( TEXT("#32768"), NULL )で取得したハンドルと
フックで渡されたハンドルが一致しないんだが、何か良い解決策ないかな?
0247デフォルトの名無しさん
2009/08/15(土) 12:43:14Spy++互換ならWinspectorとか?
高機能かどうかは保証しないけど。
0248デフォルトの名無しさん
2009/08/15(土) 21:07:38お前の調べ方が悪いだけ
0249デフォルトの名無しさん
2009/08/15(土) 21:23:100250デフォルトの名無しさん
2009/08/15(土) 23:36:19>FindWindow( TEXT("#32768"), NULL )
文字列を渡すのが間違いじゃないかな。
MAKEINTATOM(32768)とか。
0251デフォルトの名無しさん
2009/08/16(日) 01:52:59"山田"で検索したのと顔が一致しないんだが、何か良い解決策ないかな?」
「そいつに名前聞けよ」
0252デフォルトの名無しさん
2009/08/16(日) 02:53:09>>246 で書いてある「クリックされたウィンドウがポップアップなら」って条件に当てはまるはずがない
0253デフォルトの名無しさん
2009/08/16(日) 06:50:20#32768でおk?
0254デフォルトの名無しさん
2009/08/16(日) 07:22:47if(GetClassWord(hwnd,GCW_ATOM)==32768){
//メニュー
}
0255デフォルトの名無しさん
2009/08/16(日) 08:46:22単体なら取れるんだけど
MF_POPUPして複数になると、新しく表示されたポップアップメニューしか領域が取れない
0256デフォルトの名無しさん
2009/08/16(日) 10:02:07頭使おうな
0257デフォルトの名無しさん
2009/08/16(日) 10:34:25有難う
#32768の全列挙ってFindWindowEx使う?
一々全ウィンドウを列挙してクラス名を使わないと駄目かな?
0258デフォルトの名無しさん
2009/08/16(日) 11:48:11ウィンドウの判別は>>254でもおk
0259デフォルトの名無しさん
2009/08/16(日) 14:33:51有難うっ
Findで複数32768を取れないか試したけど駄目だった
全列挙してやります
0260デフォルトの名無しさん
2009/08/16(日) 16:10:38BM_SETSTATE時にウィンドウプロシジャを介さずに描画してるからっぽいんですが、これを止める方法ありますか?
BM_SETSTATE時に再描画させると一瞬ちらつくし、オーナードローだとプッシュボタン以外使えないし。。。
0261デフォルトの名無しさん
2009/08/16(日) 16:55:38XP以降かつ、comctl6.0以降を使っていれば、
NM_CUSTOMDRAWが送られてくるから、そこで描画したらどう?
0262デフォルトの名無しさん
2009/08/16(日) 23:02:14いや、ホントうまいって、騙されたと思って食ってみ
最近嫁に内緒で夜にこれ入れて1合だけ炊いて食べてたんだけど、それがバレて早朝ランニングさせられるようになった…
けど今日も頃合いを見計らって炊くつもり^^あー想像しただけで武者震いがw
断っておくけど、俺の嫁は鬼嫁とかそういうのじゃないからな
0263デフォルトの名無しさん
2009/08/16(日) 23:02:550264デフォルトの名無しさん
2009/08/16(日) 23:09:510265デフォルトの名無しさん
2009/08/17(月) 00:37:16メジャー、マイナー以降のバージョンの名称って何かな?
0266デフォルトの名無しさん
2009/08/17(月) 00:50:470267デフォルトの名無しさん
2009/08/17(月) 05:04:37単純にビルドした回数にしては1998とか6000とか狙ったような番号だし
0268デフォルトの名無しさん
2009/08/17(月) 06:59:420269デフォルトの名無しさん
2009/08/17(月) 08:31:540270デフォルトの名無しさん
2009/08/17(月) 13:15:28-子ウィンドウ2(スレッドAの派生スレッドC)
みたいな感じでウィンドウを生成してメッセージ処理させてるんだけど、
子ウィンドウ/スレッドに投げられたメッセージキューを、親ウィンドウ/スレッドに送らないor認識させない方法ってないかな?
親ウィンドウのGet/PeekMessageで、親ウィンドウのハンドルを指定すればいいとか聞いたんだけど
そうするとWM_DESTROYメッセージが送られてきた時点でウィンドウが消滅しててメッセージが取得不能→終了不能になるみたいで。
0271デフォルトの名無しさん
2009/08/17(月) 13:49:56GetMessageでハンドル指定だの気にしなくても親から認識できないのでは
0272デフォルトの名無しさん
2009/08/17(月) 16:03:12設定及び削除ということをやりたいのですが、
(もちろんオプションです)
Winのバージョン違いを吸収するようなAPIはありませんか?
0273デフォルトの名無しさん
2009/08/17(月) 16:06:000274272
2009/08/17(月) 16:13:31.* の位置が
(2k)HKEY_CLASSES_ROOT\
(xp)HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\
と、違うようなのですが・・・
調べが足りないのでしょうか?
0275デフォルトの名無しさん
2009/08/17(月) 16:18:120276デフォルトの名無しさん
2009/08/17(月) 16:24:210278デフォルトの名無しさん
2009/08/17(月) 16:37:42失せろゴミ
0279デフォルトの名無しさん
2009/08/17(月) 16:46:08なのがおかしいと思わないのかね。
0280デフォルトの名無しさん
2009/08/17(月) 16:46:49一瞬ウィンドウが点滅するだけです。
ソースは以下のものです。erには0が入っています。
原因が分かる方いましたら教えてください。お願いします。
void OpenAviFile(HWND hwnd)
{
OPENFILENAME openFileName;
WCHAR filePath[MAX_PATH];
int er;
ZeroMemory(&openFileName, sizeof(openFileName));
openFileName.hwndOwner = hwnd;
openFileName.lStructSize = sizeof(openFileName);
openFileName.lpstrFilter = TEXT("AVI files (*.avi)\0*.avi\0")
TEXT("すべてのファイル(*.*)\0*.*\0\0");
openFileName.lpstrFile = filePath;
openFileName.nMaxFile = MAX_PATH;
openFileName.Flags = OFN_FILEMUSTEXIST;
if(er = GetOpenFileName(&openFileName)){
MessageBox(NULL, filePath, TEXT("成功"), MB_OK);
}
}
0281デフォルトの名無しさん
2009/08/17(月) 16:53:01いきなり OFN_FILEMUSTEXIST から外れているから FALSE で抜ける
0282272
2009/08/17(月) 16:53:52私が見たサイトの1つでは、
xpになってから HKEY_CURRENT_USER 以下に
関連付けを記述するようになったと書かれていました
95等にも対応するにはバージョンを判別する必要がありそうなので、
APIがあるのかな、と思った次第です
0284デフォルトの名無しさん
2009/08/17(月) 17:31:11InternetOpenのハンドルを使って設定しているのですが、設定時間を
無視してるので教えて下さい。
名言集 その3
『いつもサボってばかりのキャップがウゼえ』
http://yutori7.2ch.net/test/read.cgi/news4vip/1249830540/ ID:PVAf+dux0 = 自動焼人 ★
> 71 :以下、名無しにかわりましてVIPがお送りします [sage] :2009/08/10(月) 00:58:57.28 ID:PVAf+dux0
> >>69
> 大変って言うか
> 毎日、報告されたのを見て、判断して、処理して、完了報告して、以下ループ。
> ちょっとでもミスすると、普段は作業もしてないキャップさんたちがさんざん文句言ってきて
> その言いわけを考えないと、キャップはく奪されたりアカウント凍結されたりするから
>
> 登録されてから一年以上経って、やっといいたいこと言えるようになってきたよ。
----------------------------------------------
この自動焼人 ★メールマガジンの配信停止をご希望される方は
http://qb5.2ch.net/test/read.cgi/sec2chd/1250169591/
にて自動焼人 ★までご連絡ください
0286デフォルトの名無しさん
2009/08/17(月) 17:56:48http://support.microsoft.com/kb/257592
Windows2000からユーザー単位での指定もできるようになった。
関連付けは英語だと「File Associations」だから、
それでSDKのドキュメントなりググるなりすれば良い。
0287デフォルトの名無しさん
2009/08/17(月) 18:32:42使えるAPI制限されまくりで大変だろ
0288272
2009/08/17(月) 18:40:00便利なAPIはないようですね
教えていただいたワードでも調べてみます
ありがとうございました
>>287
私のpcの1つが98seなので
対応しておきたいなぁ、と思いまして・・・
0289デフォルトの名無しさん
2009/08/17(月) 18:45:44XPやVistaでも使える
0290デフォルトの名無しさん
2009/08/17(月) 18:58:440291デフォルトの名無しさん
2009/08/17(月) 19:17:19コントロールパネルの情報(コメントやファイル名)って全部レジストリ?
0292デフォルトの名無しさん
2009/08/17(月) 19:21:240293デフォルトの名無しさん
2009/08/17(月) 19:27:31有難う!調べてみる!
0294デフォルトの名無しさん
2009/08/17(月) 20:24:50下の画像のようなツリービューを作成したいのですがどうすればいいでしょうか?
http://www.codeproject.com/KB/tree/Three_State_TreeView/ThreeStateTreeView1.png
0295294
2009/08/17(月) 20:30:29よくも調べもせずスレ汚しました、すみません
0296デフォルトの名無しさん
2009/08/18(火) 11:30:31http://www.geocities.jp/ky_webid/win32c/052.html
上のサイトのサンプルをReadFile→WriteFileに変更して(ReadFileだとキャッシュされる?ので非同期の確認ができない)
実行しても非同期にならない
ソース、WriteFile、環境 何が原因?
0297デフォルトの名無しさん
2009/08/18(火) 11:49:40#define ASYNC_MODE
してるか?
0298296
2009/08/18(火) 12:01:190299デフォルトの名無しさん
2009/08/18(火) 12:27:410300デフォルトの名無しさん
2009/08/18(火) 16:25:300301デフォルトの名無しさん
2009/08/18(火) 19:29:59WisdomSoft
Programing Place
はよくお世話になっております
0302デフォルトの名無しさん
2009/08/18(火) 19:39:47プログラミングの綴りを間違えるサイトは100パーセント糞であるという法則
0303デフォルトの名無しさん
2009/08/18(火) 19:41:46つーか「サンプルコードの質問は書いた奴に訊け(ここで訊くな)」をテンプレに入れとけっつーの
0304デフォルトの名無しさん
2009/08/18(火) 19:55:38programming だけだと思っていたら時代に取り残されるぞ。
今は、programing もあるんだぞ。誤りだと嘲笑すると恥ずかしい目にあうぞ。
嫌いだと主張するのはら抜きと同じで構わないが。
0305デフォルトの名無しさん
2009/08/18(火) 20:06:22>>304
ハイハイ言い訳乙
0306デフォルトの名無しさん
2009/08/18(火) 20:14:190307デフォルトの名無しさん
2009/08/18(火) 20:14:45おまえ、ホントに恥ずかしい奴だな。少しは謙虚に調べるとかしないのか。
ttp://www.yourdictionary.com/program
言っておくが、本人じゃないよ。
0308デフォルトの名無しさん
2009/08/18(火) 20:20:200309デフォルトの名無しさん
2009/08/18(火) 20:20:33もしかして:”Programming”
が出ないな。
0310デフォルトの名無しさん
2009/08/18(火) 20:29:030311デフォルトの名無しさん
2009/08/18(火) 20:30:270312デフォルトの名無しさん
2009/08/18(火) 20:34:01うろ覚えでprogramingと書いていて、指摘されて辞書見たらprogramingでもいいとあって
鬼の首を取ったようにprograming連呼してるやつの方が間抜け。
0313デフォルトの名無しさん
2009/08/18(火) 20:38:480314デフォルトの名無しさん
2009/08/18(火) 20:39:25ちゃんと最新の英々辞典とか使えよ。
上記辞書サイトの transitive verb にも、ちゃんと、
programming or programing と載ってるだろ。
0315デフォルトの名無しさん
2009/08/18(火) 20:40:150316デフォルトの名無しさん
2009/08/18(火) 20:44:460317デフォルトの名無しさん
2009/08/18(火) 20:49:120318デフォルトの名無しさん
2009/08/18(火) 20:52:560319デフォルトの名無しさん
2009/08/18(火) 20:53:530320デフォルトの名無しさん
2009/08/18(火) 20:56:040321デフォルトの名無しさん
2009/08/18(火) 21:05:310322デフォルトの名無しさん
2009/08/18(火) 21:08:420323デフォルトの名無しさん
2009/08/18(火) 21:10:30programing・programmingを混ぜて検索サイトにかかりやすくする。
0324デフォルトの名無しさん
2009/08/18(火) 21:10:52アフリカとかのグダグダな英語も「英語」だからな。
そんくらいの表記のゆらぎは許容範囲内だ。
0325デフォルトの名無しさん
2009/08/18(火) 21:14:31漢字の筆順が違うだけで先生に怒られる日本とは大違いだぜ。
0326デフォルトの名無しさん
2009/08/18(火) 21:20:52いいかげんにしろ
0327デフォルトの名無しさん
2009/08/18(火) 21:22:10ムキになって指摘してるほうがどうかしてるよ。
0328デフォルトの名無しさん
2009/08/18(火) 22:02:530329デフォルトの名無しさん
2009/08/18(火) 22:22:370330デフォルトの名無しさん
2009/08/19(水) 09:34:04MSDNの英語版と非公開APIの解析サイト以外要らないだろ
0331デフォルトの名無しさん
2009/08/19(水) 09:52:56そんなの見てるぐらいならオープンソースソフトのソースコードを読む方がよほど勉強になる。
0332デフォルトの名無しさん
2009/08/19(水) 10:23:21プログラムから変更したいのですができますか?
手動でレジストリー変更してPC再起動の手順はわかったのですが、
プログラムから変更して再起動無しでやりたいのです。
よろしくお願いします。
0333デフォルトの名無しさん
2009/08/19(水) 10:37:29InternetSetOption
INTERNET_OPTION_MAX_CONNS_PER_SERVER
INTERNET_OPTION_MAX_CONNS_PER_1_0_SERVER
0334デフォルトの名無しさん
2009/08/19(水) 11:09:490335デフォルトの名無しさん
2009/08/19(水) 14:23:00DIB_RGB_COLORSを指定して8ビット以下のDIBも描画できたんですが、
使い方は合っていますか?
8ビット以下のときはカラーテーブル数を調べてから
SetDIBitsToDeviceでDIB_PAL_COLORSを指定して描画するべきなのか
教えてください。
0336デフォルトの名無しさん
2009/08/19(水) 20:42:48それでOK。
DIB_PAL_COLORSは、BITMAPINFO.bmiColorsが
現在の論理パレットのインデックスを指すのを示すときに使う。
色替えとかが簡単にできる、のかなあ。
0338デフォルトの名無しさん
2009/08/20(木) 09:29:160339デフォルトの名無しさん
2009/08/20(木) 17:28:250340デフォルトの名無しさん
2009/08/20(木) 17:53:22それぞれのパスを取得しようとしてるんだが、上手く行かない
SHGetPathFromIDListを使ってITEMIDLISTからパス取得使用としてるけど
今回のケースの場合SHGetPathFromIDListって使えない?
0341デフォルトの名無しさん
2009/08/20(木) 18:35:39そうだよ。ファイルシステムに存在しないものに対して使うと失敗すると解説されているとおり。
http://msdn.microsoft.com/en-us/library/bb762194.aspx
0342デフォルトの名無しさん
2009/08/20(木) 18:43:15有難う!
コントロールパネルそれぞれのパスが欲しいんだけど、ITEMIDLISTからは無理か
良い解決策ないかな?
0343デフォルトの名無しさん
2009/08/20(木) 19:00:21まあ大抵はsystem32\*.cplだろうけど
0344デフォルトの名無しさん
2009/08/20(木) 19:06:17レジストリ用のSHGetFolderPathみたいなのがあればなぁ・・・
0345デフォルトの名無しさん
2009/08/20(木) 19:38:080346デフォルトの名無しさん
2009/08/20(木) 21:02:36やっぱり今の手法じゃ無理かな…
管理ツールとか、只そのカテゴリ分けされてるだけだしね
>>344
コントロールパネルもdllだから、GetProcAddressから内部情報を取得する方法があるんだけど
どうやらこれは任意らしいので、必ずしも情報を返さないんだよね…
調べると大部分がレジストリで管理とのこと
>>345
只起動するだけなら、ITEMIDLISTからで大丈夫だけど
今は*.cplを取得して、それぞれのcplの場所が知りたいの
0347デフォルトの名無しさん
2009/08/20(木) 21:53:210348デフォルトの名無しさん
2009/08/20(木) 22:00:44それは試したよ。片っ端からCPL_NEWINQUIREで情報貰おうとしても
��プログラムの追加と削除”とかのコメントが取得出来ない
調べると、CPL_NEWINQUIREで情報取る仕様のはずが、殆どがレジストリ管理とのこと
0349デフォルトの名無しさん
2009/08/20(木) 22:15:260350デフォルトの名無しさん
2009/08/20(木) 22:26:47cplの場所が知りたいとか矛盾してないか?
0351デフォルトの名無しさん
2009/08/20(木) 22:43:33ChooseFontのフックプロシージャに適用ボタンを押したときの処理を書いてますが
サイズコンボボックスの値が999を超える場合の処理を
以下のように書いてみましたが
SendDlgItemMessage(hDlg, cmb3, WM_GETTEXT, sizeof(TCHAR) * 6, (LPARAM)FontSizeText);
if(wcstoul(FontSizeText, NULL, 0) > 999) //サイズコンボボックスの値が999を超える場合
{
MessageBox(hDlg, L"サイズには 0 から 999 ポイントを指定してください。", L"フォントの設定", MB_OK | MB_ICONINFORMATION);
}
これは例えばSendMessage(hDlg, WM_CHOOSEFONT_GETLOGFONT, NULL, (LPARAM)&Font)みたいに
SendMessageでメッセージを送信して一発で出来るメッセージは何かありますか?
(ChooseFont構造体のnSizeMaxメンバに999を設定済み)
0352デフォルトの名無しさん
2009/08/20(木) 22:46:280353デフォルトの名無しさん
2009/08/20(木) 23:19:23すいません、まだC言語とWin32APIを始めて半年ちょっとの初心者なので
(TCHAR FontSizeText[6](サイズコンボボックスの最大文字数が5文字の為))
と宣言したので(sizeof(TCHAR) * 6)としてしまいました
模範的な方法はどうしたらいいですか?
0354デフォルトの名無しさん
2009/08/21(金) 00:13:480355デフォルトの名無しさん
2009/08/21(金) 01:23:37え、サイズは0.5ポイント単位で入れられる? いいんだよ細けぇことは
0356デフォルトの名無しさん
2009/08/21(金) 03:54:07ご指導のほどお願いします
0357デフォルトの名無しさん
2009/08/21(金) 04:18:000358デフォルトの名無しさん
2009/08/21(金) 04:57:21なんとかなりました
こんな夜中にありがとうございました
0359デフォルトの名無しさん
2009/08/21(金) 06:05:220360デフォルトの名無しさん
2009/08/21(金) 07:07:110361デフォルトの名無しさん
2009/08/21(金) 07:29:160362デフォルトの名無しさん
2009/08/21(金) 07:35:01VirtualStoreにリダイレクトされていないようなのですが
Windows 7からUACの挙動は変わったのでしょうか?
エクスプローラに"互換性ファイル"ボタンも表示されません。
けどなぜか新しくファイルを作成するのには失敗するんです・・・
0363デフォルトの名無しさん
2009/08/21(金) 08:27:250364デフォルトの名無しさん
2009/08/21(金) 12:29:23そのプログラムにマニフェストがついているのでは?
例えUAC関連の記述がなかったとしても、マニフェストがあると
UAC対応済みとして扱われ、仮想化が働くなる。
0365デフォルトの名無しさん
2009/08/21(金) 13:02:310366デフォルトの名無しさん
2009/08/21(金) 21:53:04おさわがせしました
0367デフォルトの名無しさん
2009/08/21(金) 23:10:06ありがとうございます、3文字以内に制限する方法があったんですね
>>355
そんな便利な関数知りませんでした、500ポイント以内とかにする場合にいいですね
細かい事は気にせず使ってみたいと思います、ありがとうございました
0368デフォルトの名無しさん
2009/08/21(金) 23:23:040369デフォルトの名無しさん
2009/08/21(金) 23:27:190370デフォルトの名無しさん
2009/08/21(金) 23:59:23↓こういうの
int len = SendMessage(hwnd,WM_GETTEXTLENGTH,0,0)+1;
LPWSTR buffer = malloc(len*sizeof(wchar_t));
0371デフォルトの名無しさん
2009/08/22(土) 13:35:03絶対やるなよ
0372デフォルトの名無しさん
2009/08/23(日) 00:08:08表示したポップアップメニューの関係無い所をクリックしても
ポップアップメニューが消えないんだが
マウスフックを使わずにポップアップメニューを消す方法ないかな?
0373デフォルトの名無しさん
2009/08/23(日) 00:36:42消してもWM_TIMERがまた送られたら表示されるが
0374デフォルトの名無しさん
2009/08/23(日) 01:17:05ポップアップ表示前に他アプリのウィンドウをアクティブにしておくと、
表示後はポップアップのメニュー項目をクリックするか、
親アプリをクリックしない限り消えない。
GetForegroundWindowが自アプリでなけれぱ表示しない、
とかの消極的な解決方法しか思いつかないな。
0375デフォルトの名無しさん
2009/08/23(日) 01:51:42>表示後はポップアップのメニュー項目をクリックするか、
>親アプリをクリックしない限り消えない。
なるほど、そういうことか
こっちvistaだけど同じようになったわ
ようは、他アプリのウインドウ上でメニューが表示されたらまずいわけか
これは難しいね
確かにマウスフックして、親アプリのスレッドからEndMenuを呼び出すしかなそう
0376デフォルトの名無しさん
2009/08/23(日) 03:36:580377デフォルトの名無しさん
2009/08/23(日) 09:06:46フック無しで消す方法は俺は知らない
0378デフォルトの名無しさん
2009/08/23(日) 10:38:50あるいは自アプリを強制的にフォアグラウンドにしてからメニューを出すかだろ。
0379デフォルトの名無しさん
2009/08/23(日) 13:10:59試してみたが駄目だった
0380デフォルトの名無しさん
2009/08/23(日) 15:28:33>表示後はポップアップのメニュー項目をクリックするか、
>親アプリをクリックしない限り消えない。
こんなの常識だろ
通知領域でポップアップメニュー出したこと無いのか?
0381デフォルトの名無しさん
2009/08/23(日) 16:31:210382デフォルトの名無しさん
2009/08/23(日) 18:30:52アフォ発見w
0383デフォルトの名無しさん
2009/08/23(日) 19:18:20Win98以降、単にSetForegroundWindowを使っただけでは
フォアグラウンドウィンドウにならない場合があるが、それも考慮済み?
0384デフォルトの名無しさん
2009/08/23(日) 19:27:35アフォはお前だよw
0385デフォルトの名無しさん
2009/08/23(日) 19:38:250386デフォルトの名無しさん
2009/08/23(日) 21:02:28通知領域に復帰するように作っとけよ
0387デフォルトの名無しさん
2009/08/23(日) 21:06:53それは知らなかった
確実にフォアグラウンドする方法ってまた別にあるの?
0388デフォルトの名無しさん
2009/08/23(日) 21:11:550389デフォルトの名無しさん
2009/08/23(日) 21:47:40えらい事になっていたからなあ。
あまりの鬱陶しさにユーザーが切れた結果、Win98以降でこうなった。
0390デフォルトの名無しさん
2009/08/23(日) 22:50:07explorerが面倒見ろっつーの
なんでポンコツなシェルの尻拭いをアプリ側がせにゃならんのだ
0391デフォルトの名無しさん
2009/08/23(日) 22:56:03想像で物を語るな
0392デフォルトの名無しさん
2009/08/23(日) 23:00:22では真実を教えてたもれ。
0393デフォルトの名無しさん
2009/08/23(日) 23:17:01Win98はWin95に比べて多くのコードを書き直したため、
SetForegroundWindowでフォアグラウンドできないという
バグが混入してしまった。
しかし、今からこのバグを修正するにはスケジュールが
間に合わなくなるという事態が発覚。
ただでさえ、Win97を出すつもりが延期してしまっている。
もうこれ以上の延期は許されない。
散々悩んだ挙句、開発チームの出した結論は
「仕様ということにして何とかユーザーに納得してもらう」
だった。で、社内で尤もらしい言い訳を公募して採用されたのが
「好き勝手にフォアグラウンドしてはいけません。だから、・・・できません!」
0394デフォルトの名無しさん
2009/08/23(日) 23:29:29想像で物を語るな
0395デフォルトの名無しさん
2009/08/23(日) 23:43:490396デフォルトの名無しさん
2009/08/23(日) 23:53:460397デフォルトの名無しさん
2009/08/24(月) 01:07:440398デフォルトの名無しさん
2009/08/24(月) 01:09:42事実じゃないって事?
0399デフォルトの名無しさん
2009/08/24(月) 01:29:05ユーザーフィードバックを理由に変更した事の旨が書かれているんだろうけど。
流石に10年近く昔の話だしなあ。
そもそも、Win95/NT4まで好き放題できていた事実自体、どれだけ知っている人がいるのやら。
0400デフォルトの名無しさん
2009/08/24(月) 01:42:20書かれてない。嘘はつかないように
0401デフォルトの名無しさん
2009/08/24(月) 01:53:50おっさんの妄想乙
0402デフォルトの名無しさん
2009/08/24(月) 02:10:21これ、英語版MSDNにはちゃんと書いてあるんだが日本語版にはないんだよな。
http://msdn.microsoft.com/en-us/library/ms648002.aspx
0403デフォルトの名無しさん
2009/08/24(月) 06:26:100404デフォルトの名無しさん
2009/08/24(月) 06:30:300405デフォルトの名無しさん
2009/08/24(月) 06:50:07通知が来る
0406デフォルトの名無しさん
2009/08/24(月) 10:46:400407デフォルトの名無しさん
2009/08/24(月) 10:51:580408デフォルトの名無しさん
2009/08/24(月) 13:42:20>>386
タスクマネージャー消失が地味に困る
0409デフォルトの名無しさん
2009/08/24(月) 13:55:43それはexplorerが落ちたときにどうするつもりなの?
普通は再起動時に何とかするもんじゃないかね。
TaskbarCreated を RegisterWindowMessageして通知来たら再登録でいいじゃない。
0410デフォルトの名無しさん
2009/08/24(月) 14:14:57選択したファイルを右クリックしても、ポップアップメニューが表示されない事があるんだが
これはどういう場合に発生する?
0411デフォルトの名無しさん
2009/08/24(月) 14:48:06・シェルが4秒以上ハングアップしてるとタイムアウトしてあげるので
APIが失敗した場合はLastErrorチェックしてソフト側で対応しろ
落ちたりハングアップしないシェルを作れよw
0412デフォルトの名無しさん
2009/08/24(月) 14:50:000413デフォルトの名無しさん
2009/08/24(月) 15:19:01ま、そうなるとTClock愛好者は困るだろうけどw
0414デフォルトの名無しさん
2009/08/25(火) 03:49:44hoge() ;
break ;
見たいな感じでsettimerでセットした時間で呼び出す関数hogeがあったとして
前回のhogeの実行が終わってない状態で時間が来てhogeが呼び出された
場合どういう風に処理されるんでしょうか?
0415デフォルトの名無しさん
2009/08/25(火) 03:55:410416デフォルトの名無しさん
2009/08/25(火) 06:51:480417デフォルトの名無しさん
2009/08/25(火) 09:45:31メッセージは1つずつ順番に処理される。
1回目のWM_TIMER呼び出しからreturnされていないのなら、その他のメッセージが処理されることはない。
ついでにいうと、hoge()が処理している間ウインドウを動かすメッセージとかも処理されないわけだから、
ウインドウが固まったようにユーザーは思うはず。
メッセージ処理の中であまり思い処理をやらないように
0418デフォルトの名無しさん
2009/08/25(火) 10:11:440419デフォルトの名無しさん
2009/08/25(火) 10:43:24そこでメッセージ処理の中ではあまり重い処理をやらないようにしなければならない
初期のWindowsのころはハードウェアの処理能力が少なかったのでよくPCがフリーズしたが
最近は十分な処理能力があるので少々重い処理をしても大丈夫になった
0420名無し学生
2009/08/25(火) 10:56:43誰かお答えください。本当に助けてください。
1.Visual Basicの関数で数値を文字に直すCStr()とStr()の違いについて
2.戻り値の違いが確認できる方法を考え、戻り値の違いについて実際に確認し、
その確認方法と違いを具体的に述べよ。
注意:実際にやったことと、確認した違いを簡潔かつ具体的に書くこと。
3.下記の計算結果などから、Visual Basicで計算できる数値の桁数について考察をまとめ、
何故そのような制限があるかについて理由を答えよ
1) 48 x 100 - 81
2) 12 ÷ 9.3 x 247
3) 0.2 - 12 ÷ 69
4) -12 ÷ 100 + 100
0421デフォルトの名無しさん
2009/08/25(火) 11:06:230422デフォルトの名無しさん
2009/08/25(火) 11:54:10このスレには弱者蹴り落として喜ぶサドしかいねーよ
0423デフォルトの名無しさん
2009/08/25(火) 11:56:18スレ違いしねくず
0424デフォルトの名無しさん
2009/08/25(火) 12:03:54ウィンドウプロシージャは10ミリ秒以内に処理を返せみたいな制限があったはず
今はどうだか知らないけど
0425デフォルトの名無しさん
2009/08/25(火) 12:17:58http://pc12.2ch.net/test/read.cgi/tech/1251165265/
ttp://pc12.2ch.net/test/read.cgi/tech/1225268851/688
ttp://pc12.2ch.net/test/read.cgi/tech/1158410544/183
ttp://pc12.2ch.net/test/read.cgi/tech/1245309571/793
ttp://pc12.2ch.net/test/read.cgi/tech/1136788500/388
ttp://pc12.2ch.net/test/read.cgi/tech/1200175247/601
ttp://pc12.2ch.net/test/read.cgi/tech/1249687283/408
ttp://pc12.2ch.net/test/read.cgi/tech/1239996587/711
ttp://pc12.2ch.net/test/read.cgi/tech/1248487404/279
ttp://pc12.2ch.net/test/read.cgi/tech/1193667819/60
ttp://pc12.2ch.net/test/read.cgi/tech/1164783092/937
ttp://pc12.2ch.net/test/read.cgi/tech/1206835319/963
ttp://pc12.2ch.net/test/read.cgi/tech/1247937958/547
ttp://pc12.2ch.net/test/read.cgi/tech/1247636661/861
ttp://pc12.2ch.net/test/read.cgi/tech/1249140049/420
0426デフォルトの名無しさん
2009/08/25(火) 12:20:220427デフォルトの名無しさん
2009/08/25(火) 13:59:18インスタンス全てにIDを付けたいのですが・・・
0428デフォルトの名無しさん
2009/08/25(火) 14:05:33課題やってみた。
1.CStr は漢数字 (chinese string の略)、Str はアラビア数字。
2.
Function Func() As String
Return "違い"
End Function
'確認
MessageBox.Show(Func())
"違い" と書かれたメッセージ ボックスが表示されることから、
関数 Func() において、戻り値の "違い" が確認できる。
3.
1) “約 4000”
2) “約 300”
3) “約 0”
4) “実行時エラー: -12 って何?おいしいの?”
以上から、Visual Basic の中の人は算数が苦手な小学生と考えられる。
0429デフォルトの名無しさん
2009/08/25(火) 14:05:370430デフォルトの名無しさん
2009/08/25(火) 15:50:08インスタンスのアドレスはユニーク。
0431デフォルトの名無しさん
2009/08/25(火) 15:54:55不要物を解放できなくないか
0432デフォルトの名無しさん
2009/08/25(火) 16:01:330433デフォルトの名無しさん
2009/08/25(火) 16:06:470434デフォルトの名無しさん
2009/08/25(火) 16:19:200435デフォルトの名無しさん
2009/08/25(火) 16:30:470436デフォルトの名無しさん
2009/08/25(火) 16:45:17丁寧にありがとうございます!
やっと今自分のプログラムで起きてることが
理解できました(^ω^;)
0437デフォルトの名無しさん
2009/08/25(火) 17:24:400438デフォルトの名無しさん
2009/08/25(火) 17:45:430439デフォルトの名無しさん
2009/08/25(火) 17:47:000440デフォルトの名無しさん
2009/08/25(火) 18:00:180441デフォルトの名無しさん
2009/08/25(火) 18:01:490442デフォルトの名無しさん
2009/08/25(火) 18:42:53ワロタ
0443デフォルトの名無しさん
2009/08/25(火) 20:36:44頭おかしいのか?
0444デフォルトの名無しさん
2009/08/25(火) 20:38:010445デフォルトの名無しさん
2009/08/25(火) 20:53:260446デフォルトの名無しさん
2009/08/25(火) 23:23:06文字列を受け取る処理を書くときって
TCHAR szBuffer[256];
sizeof(szBuffer) / sizeof(szBuffer[0])
ってやらないと駄目だよね?
UNICODEだと、szBufferはwchar_tだから、sizeof(szBuffer)だと512になるから
文字列を受け取るバッファサイズは512になるから、問題出てくるよね?
0447デフォルトの名無しさん
2009/08/25(火) 23:26:16開放したアドレスの参照を持ち続けているほうが問題。
shared_ptrを使えばアドレスをオブジェクトを区別するユニークなIDとして使える。
0448デフォルトの名無しさん
2009/08/25(火) 23:29:360449デフォルトの名無しさん
2009/08/26(水) 11:01:26ShowWindow
SetForegroundWindow
SetFocus
を利用して表示してるんだが
中途半端な表示されてるのか
一度画面をクリックして完全にアクティブにしないと
フォーカスがセットされない
何かいい解決策ないかな?
0450デフォルトの名無しさん
2009/08/26(水) 11:44:28悪い方法1
SPI_SETFOREGROUNDLOCKTIMEOUT
悪い方法2
グローバルフックなどのコードインジェクションでアクティブスレッドから無理矢理変更
0451デフォルトの名無しさん
2009/08/26(水) 11:54:48AttachThreadInput
0452デフォルトの名無しさん
2009/08/26(水) 12:00:10悪い方法しかないのかw
一応一通り試してみるよ
有難う!
0453デフォルトの名無しさん
2009/08/26(水) 13:03:08いや、だって、普通に操作してるとき、唐突に他のウインドウがフォーカス奪ったら嫌じゃね?
しかも奪いっぱなしだったらさらに嫌じゃね?
だからできないようにできてるんだって。
0454デフォルトの名無しさん
2009/08/26(水) 13:07:540455デフォルトの名無しさん
2009/08/26(水) 14:26:580456デフォルトの名無しさん
2009/08/26(水) 14:32:050457デフォルトの名無しさん
2009/08/26(水) 14:52:21ttp://msdn.microsoft.com/en-us/library/bb773397(VS.85,loband).aspx
FirefoxどころかIEでもおかしいので困ってる。
0458デフォルトの名無しさん
2009/08/26(水) 14:54:240459デフォルトの名無しさん
2009/08/26(水) 15:36:01div.libCScode { clear: none !important; }
IE8で互換表示をオンにすると崩れないのがワロスw
なんでIE6/7向けのCSSをIE8や火狐に送ってんだよwww
0460デフォルトの名無しさん
2009/08/27(木) 12:23:42ga
0461デフォルトの名無しさん
2009/08/27(木) 21:51:29Web上でのコードなどはGetDC(hwnd)などとして描画していて、wParamの値を使っていませんが
メッセージのwParamで渡されるハンドルは一体何に使えるんでしょうか
0462デフォルトの名無しさん
2009/08/27(木) 22:16:37いったい何が聞きたいんだ?
0463デフォルトの名無しさん
2009/08/27(木) 22:29:00どういった領域をあらわしてるんでしょうか
0464デフォルトの名無しさん
2009/08/27(木) 22:31:250465デフォルトの名無しさん
2009/08/27(木) 22:43:250466デフォルトの名無しさん
2009/08/27(木) 22:49:510467デフォルトの名無しさん
2009/08/27(木) 23:46:000468デフォルトの名無しさん
2009/08/28(金) 09:22:380469デフォルトの名無しさん
2009/08/28(金) 11:29:5198の関数ってUnicode版は定義してあるだけの奴が多い
中身も実装されてるのはほとんど描画関係
0470デフォルトの名無しさん
2009/08/28(金) 11:37:13じゃあ一つのバイナリでANSIとUNICODEへの切替は無理か…
0471デフォルトの名無しさん
2009/08/28(金) 11:41:210472デフォルトの名無しさん
2009/08/28(金) 12:27:24CreateFile(L"\\\\.\\pipe\\pipename", GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0);
とアクセスしたところ,アクセス拒否が帰ってきてCreateFileに失敗してしまいます
プロセスを管理者権限で起動すると,上記のCreateFileは成功します.
なんとか管理者権限で起動することなく,サービスのパイプに接続する方法はないでしょうか?
環境はVista SP2です.
0473デフォルトの名無しさん
2009/08/28(金) 12:34:080474デフォルトの名無しさん
2009/08/28(金) 12:57:300475デフォルトの名無しさん
2009/08/28(金) 15:48:46DrawText関数はRECT構造体をあさんでいるため、浮動小数点での渡し方がわかりません。
どうすればよいのでしょうか?RECT構造体のメンバ(座標を表すLeft, Top, Right, Bottom)がintで定義されてしまっています。
0476デフォルトの名無しさん
2009/08/28(金) 15:54:280.以下のピクセルを指定したいならTextOutで一時ビットマップに出力してから、手動で欲しい出力を計算する
0477デフォルトの名無しさん
2009/08/28(金) 16:04:55TextOut関数は使おうとは思っていません。
DrawText関数は引数でRECT構造体を指定する必要があるので、RECT構造体の
座標が適用されます。しかしそれらのメンバはすべてintで定義されています。
intでメンバが定義されているとどうやってもdoubleを使うことはできないんですか?
0478デフォルトの名無しさん
2009/08/28(金) 16:08:02intしか受け取らないと表明している関数は、intしか受け取りません
0479デフォルトの名無しさん
2009/08/28(金) 16:10:27単純にソースの順序がおかしかっただけでした。すいません。
0480デフォルトの名無しさん
2009/08/28(金) 16:14:24環境はUNICODEを想定していますが、TCHAR型も渡したいです。
0481デフォルトの名無しさん
2009/08/28(金) 16:44:51_tcschr
_tcsrchr
0482デフォルトの名無しさん
2009/08/28(金) 17:06:520483デフォルトの名無しさん
2009/08/28(金) 18:08:09参考になるページをご存じないでしょうか?
0484デフォルトの名無しさん
2009/08/28(金) 18:11:36StrStrを呼びまくれば実現できるからでは?
0485デフォルトの名無しさん
2009/08/28(金) 18:14:010486デフォルトの名無しさん
2009/08/28(金) 18:15:49文字コード判定がめんどいけど
0487デフォルトの名無しさん
2009/08/28(金) 18:23:280488デフォルトの名無しさん
2009/08/28(金) 18:25:140489デフォルトの名無しさん
2009/08/28(金) 18:26:050490デフォルトの名無しさん
2009/08/28(金) 19:07:43つhttp://eternalwindows.jp/#security
0491デフォルトの名無しさん
2009/08/28(金) 19:43:36ありがとうございます.
無事解決しました.
0492デフォルトの名無しさん
2009/08/28(金) 20:26:06普通にできたけど
めんどくせえ…
0493デフォルトの名無しさん
2009/08/28(金) 23:29:10空実装ではあるが関数はあるので、わざわざLoadLibraryを使う必要はない。
処理を振り分けさえすれば動く。それでも面倒だが。
>>470
手軽に済ませるならunicows
ただし過度な期待は禁物。
0494デフォルトの名無しさん
2009/08/28(金) 23:30:03Unicodeがいいらしいけど、目に見えてメモリの使用量や軽さって分かる?
マルチバイトにすると、NT系のOSは常にUnicodeで保持しつるから
マルチバイトに変換するオーバーヘッドがかかるらしいが
0495デフォルトの名無しさん
2009/08/29(土) 00:24:10シングルバイト圏で作ったソフトが、マルチバイト圏で文字化けしたり、最悪セキュリティホールになったら困るでしょ
0496デフォルトの名無しさん
2009/08/29(土) 00:50:40OutputDebugStringWのような例外もあるから注意な。
0497dye kkmzqlm
2009/08/29(土) 00:52:04ge
r>>189
> >>1o88. mshw
> SATAgケーブル 電源ケーブル ポートを変えてやってみる
v> ae
> rIDEモードでF6指示無しは正常だろう
>
> マザーかHDDが壊れてるんじゃ
なpzいの
0498ddye kkmzqlm
2009/08/29(土) 00:53:25> >>4c90
> ありがとうございます.
> 無事解決しました.
0499ddye kgkkmqqzlqClmgdhgai
2009/08/29(土) 00:56:240500ncbddyie kgfwikkmqqzlqClm vgdhgtai
2009/08/29(土) 00:58:100501デフォルトの名無しさん
2009/08/29(土) 01:41:03鬼のような最適化がかかっていそうだ。
0502デフォルトの名無しさん
2009/08/29(土) 02:32:13吐き出すファイルがShiftJISになっちゃわない?
とてもこまる。
0503デフォルトの名無しさん
2009/08/29(土) 02:52:21だからUnicodeな文字が化けちゃうし、
OutputDebugStringWよりOutputDebugStringAの方がオーバーヘッドが小さいというw
0504デフォルトの名無しさん
2009/08/30(日) 20:59:160505デフォルトの名無しさん
2009/09/01(火) 06:40:04STATICコントロールなら分かりますが…
別の疑問で、ツールチップに使用するTOOLINFO構造体がありますが、
typedef struct tagTOOLINFO {
UINT cbSize;
UINT uFlags;
...中略...
#if (_WIN32_WINNT >= 0x0501)
void *lpReserved;
#endif
} TOOLINFO, NEAR *PTOOLINFO, *LPTOOLINFO;
最後のメンバlpReservedをわざわざ追加しているのはなぜでしょうか。
必要になった時に追加すればいいように思うのですが。
0506デフォルトの名無しさん
2009/09/01(火) 06:57:45常に追加しておかないと、構造体のサイズが変わってしまう。
変わっちゃうと、cbSizeの値を見てバージョンを判断しているようなコードが困る。
0507デフォルトの名無しさん
2009/09/01(火) 07:03:35コモンコントロールで、ツリービューやリストビュー、ページャー等
TreeView_*やListView_*、Pager_*といったマクロがヘッダで定義されているものと、
トラックバーやアップダウン等こういったマクロが定義されていないものがありますが、
なぜ全てのコントロールでマクロを定義しないのでしょうか。
0508デフォルトの名無しさん
2009/09/01(火) 07:08:050509デフォルトの名無しさん
2009/09/01(火) 07:14:30早速お答え頂いてありがとうございます。
>常に追加しておかないと、構造体のサイズが変わってしまう。
というのはどういうことでしょうか。追加するとサイズが変わると思うのですが。
また、
>cbSizeの値を見てバージョンを判断しているようなコードが困る。
とありますが、何のプログラムが、何のバージョンを、何のために判断するのでしょうか。
0510デフォルトの名無しさん
2009/09/01(火) 07:20:430511デフォルトの名無しさん
2009/09/01(火) 07:22:57何のプログラムが - Windows。
何のバージョンを - どのOSバージョンを対象にしたビルドか。
何のために - 以前のOSとの互換性をとるため。微妙に挙動が違っている可能性がある。
0512デフォルトの名無しさん
2009/09/01(火) 08:20:190513デフォルトの名無しさん
2009/09/01(火) 08:20:47プログラムがどのOSを対象にしたビルドであるかはmanifestで指定する仕組みなのではないかと思うのですが。
また、過去のOSとの互換性をとるために以下のように記述している場合も多いと思います。
TOOLINFO ti;
ti.cbSize=TTTOOLINFO_V2_SIZE;
このことから、プログラムがどのOSを対象にしているのか判断するのは無理ではないでしょうか。
それに、もしそうならOSのバージョンアップ毎にメンバを追加しなければならないはずですがそうではありませんし、
他の構造体はこのような余計のメンバが追加されてはいません。
0514デフォルトの名無しさん
2009/09/01(火) 08:32:42>STATICコントロールなら分かりますが…
これはもういいのか
0515デフォルトの名無しさん
2009/09/01(火) 08:34:51manifestが無かった時代を知らないのか?www
0516デフォルトの名無しさん
2009/09/01(火) 08:38:43どうでもいいだろが
0517デフォルトの名無しさん
2009/09/01(火) 09:01:20それが一番聞きたかったです。
>>515
このメンバはWindowsXPで追加されており、manifestが無かった時代を考慮に入れる必要はないと思います。
>>516
困ることはあります。
このようにメンバを追加されると、それに気付かずに互換性に問題が出ることがあります。
例えばTOOLINFO構造体のメンバに値を設定するのに以下のようなコードを書いていたとします。
TOOLINFO ti;
ti.cbSize=sizeof(ti);
ti.uFlags=TTF_SUBCLASS;
...他のメンバを設定。しかし、lpReservedは設定していない...
SendMessage(hwnd,TTM_ADDTOOL,0,(LPARAM)&ti);
この場合lpReservedが不定値になり、このメンバに実際に何か意味を持たされた時にプログラムが正常に動作しなくなる可能性があります。
また、構造体のサイズが変わっているので過去のバージョンのOSで動作しなくなってしまいます。
TVITEMやLVITEM等の構造体にはcbSizeのような構造体のサイズを設定するメンバは存在せず、
maskでどのメンバが有効であるかを指定するようになっています。
そのようにすれば上記の問題は起こりませんが、なぜかTOOLINFO構造体はそうなっていません。
0518デフォルトの名無しさん
2009/09/01(火) 09:07:210519デフォルトの名無しさん
2009/09/01(火) 09:21:07とMSDNで書かれてるのにNULLを設定しないお前の糞コーディングを改めろ
0520デフォルトの名無しさん
2009/09/01(火) 09:29:28OSが機能を追加したりするとき、構造体を拡張することはよくあることなのです。
そういう場合、新しいコードが古いものを適切に判断できるように、
cbSizeメンバを持たせることは、windowsAPIの一種のセオリーになっています。
ユーザーがそれを気に入ろうが入るまいが無関係です。
そういうルールなのだから、API利用者はそれを遵守するだけです。
なお、大抵のreservedメンバは0またはNULLで初期化します。must be となっているはずなので
そうしなければなりません。
0521デフォルトの名無しさん
2009/09/01(火) 09:35:540522デフォルトの名無しさん
2009/09/01(火) 09:45:35何のために_WIN32_IEや_WIN32_WINNTがあると思ってんだよ
0523デフォルトの名無しさん
2009/09/01(火) 09:48:08過去にサイズが変わったことのある構造体では気をつけますが、そうでない場合
WNDCLASSEX wcex;
wcex.cbSize=CCSIZEOF_STRUCT(WNDCLASSEX,hIconSm);
などとわざわざ書いている人は見たことがありません。
(SDKにも "Set this member to sizeof(WNDCLASSEX)." と書いてある)
>>520
だんだん質問の意図と変わっていますが、この場合は機能を追加していないのにメンバが増えているのが不思議だったのです。
0524デフォルトの名無しさん
2009/09/01(火) 09:49:510525デフォルトの名無しさん
2009/09/01(火) 09:51:01「よやく」って読むんだけど
辞書引いてみて
引いたらもう二度と戻ってこなくていいよ
0526デフォルトの名無しさん
2009/09/01(火) 10:01:58古いOSに無いAPI関数はDLLから動的に取得して利用したりしますが、
そういう場合その関数で使用する構造体や定数の定義を利用したいということはあると思います。
単純な関数ならまだしも、COMインターフェース等はもっと面倒ですし。
また、ある構造体を「新しいOSにも古いOSにも対応しているつもり」で書いたとしても、
実は他の構造体でもメンバが増やされていて気付かないという場合もあります。
変な流れになって申し訳ないですが、
これよりグループボックスがなぜBUTTONコントロールなのかの方が知りたかったり…
0527デフォルトの名無しさん
2009/09/01(火) 10:03:520528デフォルトの名無しさん
2009/09/01(火) 10:06:07コイツどこまで馬鹿なんだ?
0529デフォルトの名無しさん
2009/09/01(火) 10:06:420530デフォルトの名無しさん
2009/09/01(火) 10:08:210531デフォルトの名無しさん
2009/09/01(火) 10:20:190532デフォルトの名無しさん
2009/09/01(火) 10:22:110533デフォルトの名無しさん
2009/09/01(火) 10:25:570534デフォルトの名無しさん
2009/09/01(火) 10:26:380535デフォルトの名無しさん
2009/09/01(火) 10:30:180536デフォルトの名無しさん
2009/09/01(火) 10:33:38古いOS向けに定義すると、新しいOSに追加された機能を利用したい時にわざわざ
構造体等の定義をコピーしなければいけなくなります。
新しいOSではその機能を利用したい、でも古いOSでも動作するようにしたい、
という場合(この例の場合は逆ですが…)以下のようなコードを書くことがありますが、
OPENFILENAME ofn;
OSVERSIONINFO osvi;
ZeroMemory(&ofn,sizeof(ofn));
osvi.dwOSVersionInfoSize=sizeof(osvi);
GetVersionEx(&osvi);
if (osvi.dwMajorVersion>4 || (osvi.dwMajorVersion==4 && osvi.dwMinorVersion>=90)) {
ofn.lStructSize=OPENFILENAME_SIZE_VERSION_400;
} else {
ofn.lStructSize=sizeof(OPENFILENAME);
ofn.FlagsEx=OFN_EX_NOPLACEBAR;
}
この部分は問題ないが実は別の構造体のサイズも変わっていた…、ということがあると思います。
また、ここで出したOSVERSIONINFO構造体はdwOSVersionInfoSizeというサイズを指定するメンバがありますが、
構造体のメンバを増やした際にOSVERSIONINFOEXという別の構造体が定義されました。
それは dwOSVersionInfoSize=sizeof(OSVERSIONINFO); というコードを書いているプログラムが
過去のOSで動作しなくなるからでしょう。
0537デフォルトの名無しさん
2009/09/01(火) 10:37:000538デフォルトの名無しさん
2009/09/01(火) 10:45:070539デフォルトの名無しさん
2009/09/01(火) 10:46:00ボタンは歴史的経緯。そもそもラジオボタンをまとめるためのものだったし
0540デフォルトの名無しさん
2009/09/01(火) 11:04:56そうできれば楽ですが…
>>539
私がライブラリを作る場合は、構造体と一緒にサイズを表す定数を定義しておいて、
typedef struct Hoge_tag {
size_t Size;
int Member;
} Hoge;
#define HOGE_SIZE sizeof(Hoge)
ドキュメントで「sizeof(Hoge) ではなくて HOGE_SIZE を使ってください」のように書いています。
メンバを追加した時は、
#define HOGE_SIZE CCSIZEOF_STRUCT(Hoge,Member)
#define HOGE_SIZE_V2 sizeof(Hoge)
のように定義し直しています。
ボタンに関しては歴史的経緯ですか。元々はラジオボタンにしか使用していなかったのでしょうか?
ちょっと調べてみます。
0541デフォルトの名無しさん
2009/09/01(火) 11:15:44その程度を面倒がって手抜きするとこういう間抜けな結果になるんだよ
ttp://d.hatena.ne.jp/NyaRuRu/20080303/p1
0542デフォルトの名無しさん
2009/09/01(火) 11:29:360543デフォルトの名無しさん
2009/09/01(火) 11:43:49ガッ
0544デフォルトの名無しさん
2009/09/01(火) 11:52:21そのリンク先では要点として、
>サイズ拡張によるバージョニングが行われる構造体では,CCSIZEOF_STRUCT マクロを活用する.
と書かれており、私の書いている事と同じだと思うのですが。
「WINVERの定義を古いものにして、新しいOS向けの機能を利用したい場合は構造体等の定義をコピーする」か、
「WINVERの定義を新しいものにして、構造体のサイズが変わっていないか確認する」か、
いずれかの不便を選ばなければならないのが問題だと思っています。
構造体のサイズを表す定数は、構造体のサイズが変わった時ではなく、構造体を定義した時に同時に定義すべきだと思います。
しかし、Windowsの場合はドキュメントにも "Set this member to sizeof(WNDCLASSEX)." 等と書かれていて、
互換性の問題を誘発しています。
0545デフォルトの名無しさん
2009/09/01(火) 12:03:04古いOSに対応するのがどういう事なのか全く分かってないようだな
0546デフォルトの名無しさん
2009/09/01(火) 12:07:45構造体のサイズが変わったことによって問題が起こった事例を多く見てきましたので、
そういう問題を誘発している定義なりドキュメントなりに改善すべき点があるというまでの話です。
>>545
未だにWindows98からVistaまで対応するプログラムを作ってますが?
0547デフォルトの名無しさん
2009/09/01(火) 12:09:280548デフォルトの名無しさん
2009/09/01(火) 12:20:28相手にされなくなれば黙るよこの手の阿保は。
解決するかしないかじゃなくて褒めて欲しいだけだから。
0549デフォルトの名無しさん
2009/09/01(火) 12:22:03全ソースのHOGE_SIZEをHOGE_SIZE_V2にgrep置換するのか。
とても素晴らしいライブラリですね。
0550デフォルトの名無しさん
2009/09/01(火) 12:26:020551デフォルトの名無しさん
2009/09/01(火) 12:30:000552デフォルトの名無しさん
2009/09/01(火) 12:49:110553デフォルトの名無しさん
2009/09/01(火) 13:22:100554デフォルトの名無しさん
2009/09/01(火) 13:29:170555デフォルトの名無しさん
2009/09/01(火) 13:38:02みんな大人だ
0556デフォルトの名無しさん
2009/09/01(火) 13:50:36cbSizeとは??
0557デフォルトの名無しさん
2009/09/01(火) 13:56:040558デフォルトの名無しさん
2009/09/01(火) 15:12:45起動するには(UACの反転なしで)どうすればよいのでしょうか?
ttp://www.codeproject.com/KB/vista-security/VistaSessions.aspx?msg=2750630
↑のサイトを参考にサービスから winlogon.exe のトークンを複製して
CreateProcessAsUser すると、SYSTEM ユーザとしてプロセスが実行されてしまいます.
0559デフォルトの名無しさん
2009/09/01(火) 19:05:060560デフォルトの名無しさん
2009/09/01(火) 20:40:29書き換える必要は無いですが。
0561デフォルトの名無しさん
2009/09/01(火) 20:48:260562デフォルトの名無しさん
2009/09/01(火) 20:56:25タスクマネージャは起動時に最上位の特権を得ることはない。
0563デフォルトの名無しさん
2009/09/01(火) 21:45:01はいはいお前が正しいね
0564デフォルトの名無しさん
2009/09/01(火) 21:48:56お前天才だな
0565デフォルトの名無しさん
2009/09/01(火) 22:00:52お礼はトレニー銀貨1枚で
0566デフォルトの名無しさん
2009/09/01(火) 22:05:210567デフォルトの名無しさん
2009/09/01(火) 22:06:23しかし、>>516でメンバが追加されて困ることがあるかどうかを聞かれたために、
>>517で>>541のリンク先にあるような問題が起こる事を書いたのですが、
>>542のように「私が」困っていると思われたために齟齬を生んだのだと思います。
私の文章力が拙くうまく伝えられなかったのであれば率直に反省します。
しかし、このスレッドを後で見返した時に、>>521>>529>>547のような書き込みと私の書き込みのどちらが有用でしょうか?
それは自明でしょう。もし仮に私の書いている内容に誤りがあるとしても、です。
問題の本質は、
WNDCLASSEX wcx;
wcx.cbSize=sizeof(WNDCLASSEX);
のような書き方が、構造体のサイズが変わった時に、ソースを全く変更していないにも関わらず
(密かに)バイナリ互換性が失われ、またそのことに気付きにくいという点です。
>>563>>564
私は天才でも何でもありません。
初心者を馬鹿にして優越感を得る趣味も、自分の考えを広く知らしめて自己顕示欲を満たす趣味もありません。
0568デフォルトの名無しさん
2009/09/01(火) 22:08:310569デフォルトの名無しさん
2009/09/01(火) 22:09:510570デフォルトの名無しさん
2009/09/01(火) 22:12:40>WNDCLASSEX wcx;
>wcx.cbSize=sizeof(WNDCLASSEX);
>のような書き方が、構造体のサイズが変わった時に、ソースを全く変更していないにも関わらず
>(密かに)バイナリ互換性が失われ、またそのことに気付きにくいという点です。
これが質問スレの本質か? 何にも聞いてないじゃないか。
本質は
>最後のメンバlpReservedをわざわざ追加しているのはなぜでしょうか。
じゃないのか。それに対する回答は、>>506, 520 で終わってるだろ。
それ以外のことをgdgd書いているからこうなってるんだと思わないか?
0571デフォルトの名無しさん
2009/09/01(火) 22:24:18> wcx.cbSize=sizeof(WNDCLASSEX);
> のような書き方が、構造体のサイズが変わった時に、ソースを全く変更していないにも関わらず
> (密かに)バイナリ互換性が失われ、またそのことに気付きにくいという点です。
ソースを全く変更していない?嘘をつくなよ。
お前がPlatformSDKを更新したりWINVERや_WIN32_WINNTの宣言を変えない限り
バイナリ互換性が失われることはない。
0572デフォルトの名無しさん
2009/09/01(火) 23:15:20lpReservedだなんて使えないメンバが増えるだけの拡張にはちょっと疑問を抱くね。
もう少しなんとかならなかったかなあとは思う。
0573デフォルトの名無しさん
2009/09/01(火) 23:23:10TOOLINFO::cbSizeがlpReservedを含んだサイズだったら
TOOLINFO::uFlagsに設定されたTTF_PARSELINKSが「正しい」と判断できる。
TOOLINFO ti = { TTTOOLINFO_V2_SIZE, TTF_PARSELINKS }; //V2時代にTTF_PARSELINKSは存在しなかったので誤り
TOOLINFO ti = { TTTOOLINFO_V3_SIZE, TTF_PARSELINKS }; //正しい
comctl32.dllを逆汗すると内部で確保したヒープにTOOLINFOをコピーしたのち
lpReservedを使っているので、XPがβ版だった頃にはreservedでなかったのかも知れんが。
0574デフォルトの名無しさん
2009/09/02(水) 00:01:320575デフォルトの名無しさん
2009/09/02(水) 00:46:260576デフォルトの名無しさん
2009/09/02(水) 01:20:210578デフォルトの名無しさん
2009/09/02(水) 01:58:440579デフォルトの名無しさん
2009/09/02(水) 07:54:58どうやって破棄するつもりだ?
0580デフォルトの名無しさん
2009/09/02(水) 07:57:18変数の宣言やhMemDC = CreateCompatibleDC(hDC);などの部分は行数の関係で省略します。
今、下のようなソースがあるとします。今hMemDCのメモリデバイスコンテキスト内で描画を段階的に行い、
そこの描画が完成すると、hDCに転送して画面に描画するということをやりたいと思っています。
ところが、このソースでは画面に何も表示されてません。�@の部分を仮にhDCではなくhMemDCとしたところ
問題なく画面が表示されるため、転送部分やなんらかのメモリデバイスハンドルの扱い方の部分で間違いがある気がします。
どなたか解決方法がわかるかたがいらっしゃれば教えてください。もしくはこのソースがわかりにくい場合は、
何かソースを提示して、ダブルバッファリングの解説などしていただけませんか。よろしくお願いいたします。
case WM_PAINT:
hDC = BeginPaint(hWnd, &ps); //�@
hBrush = CreateSolidBrush(RGB(255, 255, 0));
InvalidateRect(hWnd, NULL, TRUE);
SelectObject(hMemDC, hBrush);
ExtFloodFill(hMemDC, 1, 1, RGB(255, 255, 255), FLOODFILLSURFACE);
SetBkMode(hMemDC, TRANSPARENT);
GetTextMetrics(hMemDC, &tm);
GetClientRect(hWnd, &rt);
DrawText(hMemDC, EndBuf, -1, &rt, DT_CENTER);
BitBlt(hDC, 0, 0, 640, 480, hMemDC, 0, 0, SRCCOPY);
DeleteObject(hBrush);
break;
0581デフォルトの名無しさん
2009/09/02(水) 08:09:150582デフォルトの名無しさん
2009/09/02(水) 08:30:520583デフォルトの名無しさん
2009/09/02(水) 08:38:12やっぱ俺天才だわ
0584デフォルトの名無しさん
2009/09/02(水) 09:05:34明白な答えが、ここで出せるわけ無いんだから。
あなたが欲しいのは同意なんじゃないの?だから荒れる。
0585デフォルトの名無しさん
2009/09/02(水) 09:06:23わからないなら正直にいっても誰もおこりやしないよ
ちなみに今回のバグのポイントはメモリデバイスコンテキストハンドルのhMemDCに
実は最初にHBITMAPのhMemBMPを割り当てとけよってな感じの話でした
ついでにCALLBACK関数内で定義してWM_PAINTは簡素な感じにしておきました
WM_PAINTで無効リージョン更新してたことがそもそもの間違いだったw
つっても何のことか君たちにはわからないか
0586デフォルトの名無しさん
2009/09/02(水) 09:59:270587デフォルトの名無しさん
2009/09/02(水) 10:20:40hMemDCは何処から来たのかとか
EndPaintが無いとか
元のブラシを戻していないからブラシの削除にも失敗してGDIオブジェクトリークするとか
他にもありそうだな
0588デフォルトの名無しさん
2009/09/02(水) 11:18:01>つっても何のことか君たちにはわからないか
初歩の初歩すぎる内容をこんなこと言うのは覚えたばかりだと丸わかり。
0589デフォルトの名無しさん
2009/09/02(水) 18:53:49InvalidateRectは無効リージョン作ってWM_PAINT呼ぶためよ
間違ってWM_PAINTの中に書いてるからおかしなことになったけど
>>588
涙拭けよ
0590580
2009/09/02(水) 19:00:00まずHBITMAP型のハンドル一個つくってそれに適用するための縦横の範囲のピクセルもったものをつくらにゃならん
そのあとにこれをSelectObjectで例えばhMemDCと宣言した、つまりメモリデバイスコンテキストに設定するものに
これを適応させる。よって、これでメモリデバイスコンテキストに縦横ピクセル範囲の仮想のビットマップがメモリ上に形成されるわけだ
ここからは普通のデバイスコンテキストハンドルに描画していくかたちでhMemDCに描画していく
描画が完成したらこのメモリ上の仮想的なビットマップを、ウィンドウのデバイスコンテキストにコピーするわけだ
もちろん、これらは互換性がないとだめだから最初にちゃんとデバイスコンテキストハンドルをメモリデバイスコンテキストハンドルに
合致させておけよって話しね。そしてまあ、あれこれ改良がいるわけでありますが、結局のところ、ここで問題になるのは
InvalidateRect関数ねこれはWM_PAINTのそとにやる。なぜならこれがWM_PAINTを呼ぶきっかけだからね。
これでおk。綺麗にちらつきなしのダブルバッファリングの完成よ。
0591デフォルトの名無しさん
2009/09/02(水) 19:38:590592デフォルトの名無しさん
2009/09/02(水) 21:07:03http://pc12.2ch.net/test/read.cgi/tech/1245382769/475
0593デフォルトの名無しさん
2009/09/02(水) 22:20:02お願いだから社会に出てこないでくれよ
0594デフォルトの名無しさん
2009/09/02(水) 22:41:140595580
2009/09/02(水) 22:59:53俺の言ったことの半分も理解してないくせに。
0596デフォルトの名無しさん
2009/09/02(水) 23:08:090597デフォルトの名無しさん
2009/09/02(水) 23:24:35opera9までは FindWindow と GetWindowText で
得られました。10になってからは得られません。
一体どう考えればいいんでしょうか?MDI、親ウィンドウとか
検索してますがさっぱり分かりません。
0598デフォルトの名無しさん
2009/09/02(水) 23:37:42FindWindowでちゃんとハンドルが取得できているかどうか確認して下さい。
とれているなら、spy++等で実際のopera10のウィンドウハンドルをチェックして
同じかどうかを比較して下さい。
0599デフォルトの名無しさん
2009/09/02(水) 23:46:40>>598
ハンドルは得られてます、OpWindowです。
タブを子ウィンドウと見なして親ウィンドウをどうこうって
考え方は間違ってるんですかね?
0600デフォルトの名無しさん
2009/09/02(水) 23:52:46IEはCOMを駆使すれば何とかできるけど。
0601デフォルトの名無しさん
2009/09/03(木) 03:39:27リバエン、対リバエンに役立ちそうなAPI教えてください。
それからこういう特殊なAPIの知識はゲーム改造本とかの実例をみて学ぶ以外他に手はないんでしょうか?
何処かリストをあげてくれているHPとかありませんか?
0602デフォルトの名無しさん
2009/09/03(木) 03:55:170603デフォルトの名無しさん
2009/09/03(木) 04:03:00って質問だったんですがわかりづらくてすみませんでした。
残りのデバック検知のAPI等についてもおねがいします。
0604デフォルトの名無しさん
2009/09/03(木) 04:04:100605デフォルトの名無しさん
2009/09/03(木) 04:10:290606デフォルトの名無しさん
2009/09/03(木) 04:15:240607デフォルトの名無しさん
2009/09/03(木) 04:27:210608デフォルトの名無しさん
2009/09/03(木) 04:35:43お前のほうがキモイよwwwwwwwwwwwwwwwwww
607 :デフォルトの名無しさん:2009/09/03(木) 04:27:21
さっさと教えろ!!コラ!!!
騙りたいなら他でやれ
0609デフォルトの名無しさん
2009/09/03(木) 04:45:57msdnみてみれば
0610デフォルトの名無しさん
2009/09/03(木) 04:55:42自作のカーソルをリソースから読み込んでSetCursorで設定した場合
カーソルに影が付かないのですが、影を付ける方法はありますでしょうか?
SystemParametersInfoにSPI_GETCURSORSHADOWを指定すると
カーソルに影を付けるかどうかを取得できると思いますが、
この設定に合わせてカーソルに影を付けたいと思っています。
0611デフォルトの名無しさん
2009/09/03(木) 04:57:24ここらへん参考になりそう
読んでみ
0612デフォルトの名無しさん
2009/09/03(木) 04:58:470613デフォルトの名無しさん
2009/09/03(木) 05:05:49新学期にそなえてはよ寝れ
0614デフォルトの名無しさん
2009/09/03(木) 05:14:23スルーしといてやれ。
>>610
最初から影付きのカーソル自作じゃだめなのか?
0615デフォルトの名無しさん
2009/09/03(木) 05:49:180616デフォルトの名無しさん
2009/09/03(木) 06:32:58やはりそうするしか無いのでしょうか。
ただ、Windows2000が32ビットのカーソルに対応していなかったと思います。
あと将来Windowsに影の濃さや大きさをカスタマイズする機能が付いたりしたら困るので、
Windowsの機能で実現できればベストなのですが。
純粋に見た目だけの問題なので、無理ならば仕方ないです。
0617デフォルトの名無しさん
2009/09/03(木) 06:41:19>Windowsの機能で実現できればベストなのですが。
ww
0618デフォルトの名無しさん
2009/09/03(木) 06:58:48神経質だねキミ
0619デフォルトの名無しさん
2009/09/03(木) 07:05:35OSをカスタマイズしてカーソルを変えちゃうのが一番てっとりばやいんじゃないの?
そーすればやりたいようなことはできる。
ただ今後の拡張についてはノーコメント。
0620デフォルトの名無しさん
2009/09/03(木) 07:14:32参考になります。
それとやっぱりデバッグ検知につかうAPIの一覧がのったサイトとか
技術tipsのサイトはないのでしょうか?
基本的なことは理解できるので応用例集があれば一番いいのですが、
書籍でもかまいませんので他にありませんか?
0621デフォルトの名無しさん
2009/09/03(木) 08:01:58自分のプロセスがデバッギーである事を調べたいのか、
特定のデバッガが起動しているかを調べたいのかハッキリしろ
それと改造したいゲームのデバッガチェックを回避するのが目的で質問してるなら消えろ
0622デフォルトの名無しさん
2009/09/03(木) 08:10:08ttp://dsas.blog.klab.org/archives/51434186.html
ここらへん参考になりそう
読んでみ
0623デフォルトの名無しさん
2009/09/03(木) 08:15:24参考になります。
それとやっぱりデバッグ検知につかうAPIの一覧がのったサイトとか
技術tipsのサイトはないのでしょうか?
基本的なことは理解できるので応用例集があれば一番いいのですが、
書籍でもかまいませんので他にありませんか?
0624デフォルトの名無しさん
2009/09/03(木) 08:35:06確かに細かい事が気になる方です。
>>619
調べてみたらSetSystemCursorなんてAPIがあるんですね。
これを使用してカーソルを変えてみたところ、確かに影が表示されました。
ただ慎重に使わないと他のアプリのカーソルまで変わってしまうので、気をつけないといけないですね。
どうもありがとうございます。
0625デフォルトの名無しさん
2009/09/03(木) 08:43:19誰も気にしない事まで神経質になってアクセシビリティが失われたら本末転倒
そういうおせっかいなプログラムは自分専用にしとけよ。
0626デフォルトの名無しさん
2009/09/03(木) 10:13:13ここの人はレベルが低いので、すぐ「ウイルスうんたら」とか言い出して
誤魔化すだけなので意味が無いのです。
これはもう何年も前から同じ状態。
0627デフォルトの名無しさん
2009/09/03(木) 10:17:240628デフォルトの名無しさん
2009/09/03(木) 10:21:55そう思ってるのはお前だけ
0629デフォルトの名無しさん
2009/09/03(木) 10:25:30ず〜と同じやりとりが繰り返されている
>>627-628 みたいなのも含めてな
0630デフォルトの名無しさん
2009/09/03(木) 10:33:250631デフォルトの名無しさん
2009/09/03(木) 10:36:38ここで無視されるのはAPI以下のレベルの話だから
不正行為を疑われるのは質問者が基礎知識すら身に付けていないから
0632デフォルトの名無しさん
2009/09/03(木) 10:37:24質問に答えられなくて誤魔化すために「ウイルスうんたら」と言い出した例を挙げてよ。
0633デフォルトの名無しさん
2009/09/03(木) 10:45:180634デフォルトの名無しさん
2009/09/03(木) 10:47:28は無い証拠
0635デフォルトの名無しさん
2009/09/03(木) 11:30:20ttp://dsas.blog.klab.org/archives/51434186.html
ここらへん参考になりそう
読んでみ
0636デフォルトの名無しさん
2009/09/03(木) 11:37:370637デフォルトの名無しさん
2009/09/03(木) 12:29:05名前がそのものズバリだろ
それに飽きたらパッカーとハッシュでも使え
ここでも読んでろ
http://hp.vector.co.jp/authors/VA028184/
0638デフォルトの名無しさん
2009/09/03(木) 13:06:51だったらIsDebuggerPresentで出来るしこんなのググればすぐ見つかるよね。
デバック検知なんて意味不明な単語を使ってる上にゲーム改造うんぬん言えば煽られても仕方ないでしょ。
0639デフォルトの名無しさん
2009/09/03(木) 13:58:25ttp://www.securityfocus.com/infocus/1893
0640デフォルトの名無しさん
2009/09/03(木) 14:48:50デバッガ検知してる有償ソフト等をクラックしたくて質問してると考える方が妥当である。
0641637
2009/09/03(木) 15:16:01「IsDebuggerPresentで足りなくなったらまたおいで」
とでも言っておけば良かったような気がするがな。
下手に煽らないで。
そこらへん君らの悪い癖だ。
0642デフォルトの名無しさん
2009/09/03(木) 15:51:16>>621が分からん事にはアドバイスしようが無いだろ。
0643デフォルトの名無しさん
2009/09/03(木) 16:03:08nProの動作原理が知りたいとかそんな所じゃね
0644デフォルトの名無しさん
2009/09/03(木) 18:18:060645デフォルトの名無しさん
2009/09/03(木) 20:32:260646デフォルトの名無しさん
2009/09/03(木) 20:59:54無駄な所でばかりエスパーしてんじゃねーぞ役立たず共
質問もせず会話にもさんかせずただ煽って荒らすだけの粘着に存在価値はない。
0647デフォルトの名無しさん
2009/09/03(木) 21:14:21よくあるパターン
0648デフォルトの名無しさん
2009/09/03(木) 22:48:270649デフォルトの名無しさん
2009/09/03(木) 22:51:490650デフォルトの名無しさん
2009/09/03(木) 22:56:00作成しています。
画面がフォアグラウンドで表示される場合にはタイトルなどの
非クライアント領域を含めたキャプチャが取得できるのですが、
バックグラウンドで動作している場合には、クライアント領域
しか取得することが出来ません。うまく取得出来る方法はあり
ますでしょうか?
以下がソースとなります。
IntPtr pUnk = GetDC(hWnd);
Graphics memg = Graphics.FromImage(tmp);
IntPtr dc = memg.GetDC();
//IntPtr dc = memg.GetWindowDC(); //これでも取れない
SendMessage(hWnd, WM_PRINT, dc, (IntPtr)(0x02 | 0x04 | 0x08 | 0x10));
0651デフォルトの名無しさん
2009/09/03(木) 22:57:10かまってちゃんなんだからいい加減スルーしろよ
このまま反応してたら延々と粘着してくるぞ
0652デフォルトの名無しさん
2009/09/03(木) 23:03:47バックグラウンド時に描画されてるんかな?
0653デフォルトの名無しさん
2009/09/03(木) 23:09:30すいません。あまり詳しくないのですが、
クライアント領域のキャプチャは取れるため、クライアント領域
については、描画されているようです。
0654デフォルトの名無しさん
2009/09/03(木) 23:10:51使ったことないけど、PrintWindow とか
0655デフォルトの名無しさん
2009/09/03(木) 23:53:43ありがとうございます。
PrintWindowを試してみましたが、うまくいきませんでした。
真っ黒な画像が取得されてしまうようです。
現在作成しているプログラムは、ブラウザを画面上には
表示させない状態でWebページのキャプチャを取得する
ものとなります。
0656デフォルトの名無しさん
2009/09/04(金) 00:17:140657デフォルトの名無しさん
2009/09/04(金) 00:34:30while(1)
{
dword = WaitForSingleObject( mutex0 );
if ( dword == WAIT_OBJECT_0 || dword == WAIT_ABなんとか )
{
break;
}
Sleep(0);
}
上記のスピンロック系?の処理と
INFINITEを指定した処理ではどっちが処理速度速いのでしょうか?
0658デフォルトの名無しさん
2009/09/04(金) 00:53:350659デフォルトの名無しさん
2009/09/04(金) 01:25:58WAIT_ABなんとか って何だよ
質問するならちゃんと書け
0660デフォルトの名無しさん
2009/09/04(金) 02:05:490661デフォルトの名無しさん
2009/09/04(金) 02:21:44たしか経験的に、しばらくスピンロックで待って、それでダメなら待ち状態に入るのが平均的には性能が良いのだったと思う。
Advanced WindowsのOptexがたしかそういう実装。
もちろん、プロセス内だけで同期を取る場合はクリティカルセクションを使えばいい。すでにそういう実装になっている。
あとそのコード、個人的には、WAIT_ABANDONEDが返ってきたら、
例外投げるなりエラー値返すなりして、とっととループから脱出してエラー処理に向かわせたほうがいいと思う。
0662デフォルトの名無しさん
2009/09/04(金) 02:35:04クリティカルセクションはWaitForSingleObjectのオーバーヘッドを減らすためにスピンロック使ってるから話が全然違う。
0663デフォルトの名無しさん
2009/09/04(金) 18:35:220664657
2009/09/04(金) 21:31:11回答ありがとうございます。
WAIT_ABなんとかに関していえば、
今回はどの同期オブジェクトを握って処理中の
プロセスが死んだ(WAIT_AB発生)したとしても他の
プロセスは走り続けなければいけない実装なので処理させています。
※小賢しい事にWAIT_ABなんとかを返したとしても非シグナルしてくるのでこのAPI
>>662
やはりクリティカルセクションのようにユーザモードでの実行じゃないので
あまりかわらないのでしょうか。ただ、今回はプロセス間の同期を目的としているので
セマフォなどのカーネル側に切り替えるハンドルを使わないとダメみたいです
※メータード実装するなら話は別ですがめんどくさいので。。
>>663
やはり使いませんかw
0666デフォルトの名無しさん
2009/09/05(土) 02:18:24メータードが面倒て、MSDNのソースコピペでいいだろ
・・・なんかバグがあるらしいがw
0667580
2009/09/05(土) 05:58:56>元のブラシを戻していないからブラシの削除にも失敗してGDIオブジェクトリークするとか
詳しく
0668デフォルトの名無しさん
2009/09/05(土) 06:16:35で、お前さんの立場は何なの?
0669デフォルトの名無しさん
2009/09/05(土) 06:53:390670デフォルトの名無しさん
2009/09/05(土) 06:59:420671580
2009/09/05(土) 07:45:34わからないならだまっとれ
0674587
2009/09/05(土) 08:06:330675580
2009/09/05(土) 08:16:520676580
2009/09/05(土) 08:17:44おいwwwwwwwwwなんだこいつwwwwww
やっぱただのアホだったか
わからんなら だまっとれいっ
0677デフォルトの名無しさん
2009/09/05(土) 09:53:370678デフォルトの名無しさん
2009/09/05(土) 10:12:49この手のアプリでは、COMを使ったDeskBandを使うのが定石だと思うのですが、
・一々デバッグするのにregsvr32を使って登録して、ダメならもう一度regsvr32で
登録解除して…とめんどくさい(そもそも、登録解除してもexplorerがdllを保持
し続けていて、再ビルドで失敗する (´・ω・`))
・なんとなく重たそう
ということで、COMを使わないで似たようなことができないかと色々調べてみた
のですが、ちょうどCodeProjectに
ttp://www.codeproject.com/KB/statusbar/taskbarctrl.aspx
なる記事を見つけ、まさにやりたいことだ!と思って早速ソースを見てみました。
ここで、WinXPですとタスクトレイの拡張?ボタン(“<”てやつ)を押下した場合
どうやって検知して移動とかしてるのかと思ってたら、タイマーを張ってタスクトレイの
サイズを監視しているようです。
ここ、なんとなくかっこ悪いなぁと思ってるんですが、他にいい方法ないでしょうか?
explorerにフックをしかける方法も考えたのですが、本末転倒な気もしてて…
0679デフォルトの名無しさん
2009/09/05(土) 10:27:54そんな事も知らないで行儀の悪い方法に手を出すのもどうかと思うよ。
0680デフォルトの名無しさん
2009/09/05(土) 10:42:31Windows7からはその方法が使えなくなってる
0681デフォルトの名無しさん
2009/09/05(土) 10:47:13taskkill /f /im explorer.exe
でも実行しとけ
0682デフォルトの名無しさん
2009/09/05(土) 10:49:540683デフォルトの名無しさん
2009/09/05(土) 11:00:47XP/2003までしか想定してない記事見て作ってるのに、
Windows7からは〜 とか関係あんの?
0684デフォルトの名無しさん
2009/09/05(土) 12:10:180685デフォルトの名無しさん
2009/09/05(土) 12:35:270686デフォルトの名無しさん
2009/09/05(土) 12:42:080687デフォルトの名無しさん
2009/09/05(土) 15:26:140688デフォルトの名無しさん
2009/09/05(土) 15:31:040689デフォルトの名無しさん
2009/09/05(土) 16:25:130690デフォルトの名無しさん
2009/09/05(土) 23:43:270691デフォルトの名無しさん
2009/09/06(日) 03:21:330692デフォルトの名無しさん
2009/09/06(日) 11:26:480693デフォルトの名無しさん
2009/09/06(日) 11:35:240694デフォルトの名無しさん
2009/09/06(日) 11:39:310695デフォルトの名無しさん
2009/09/06(日) 11:41:12でググるとこのスレが2件目にヒットするw
0696デフォルトの名無しさん
2009/09/06(日) 15:57:01自作のIDeskBandを エクスプローラだけ(もしくはIEだけ) でしか読み込まないようにする方法って無い?
0698デフォルトの名無しさん
2009/09/06(日) 16:22:330699デフォルトの名無しさん
2009/09/06(日) 17:10:320700デフォルトの名無しさん
2009/09/06(日) 18:47:27DllMainでexe名を判断しTRUEかFALSEを戻す
0701デフォルトの名無しさん
2009/09/06(日) 19:26:27その方法だと「見た目はIEだけどプロセスはexplorer.exe」の場合に対応できない。
0702デフォルトの名無しさん
2009/09/07(月) 20:08:28んで、「見た目はIEだけどプロセスはexplorer.exe」だとバグって誤動作してるw
うーん、何かいい方法は無いものか・・・。
0703デフォルトの名無しさん
2009/09/07(月) 20:40:33実際のテキストアニメーションの現場では用いられない関数?
0704デフォルトの名無しさん
2009/09/07(月) 21:01:180705デフォルトの名無しさん
2009/09/07(月) 21:17:460706デフォルトの名無しさん
2009/09/07(月) 21:20:07メモリやDCやfontとかの何らかのリソースを解放してないんじゃないの?
タスクマネジャで、メモリ、ハンドル、スレッド、USERオブジェクト、GDIオブジェクトなどを
監視して、増加しつづけてるものがないか見てみるとか
0707デフォルトの名無しさん
2009/09/07(月) 21:45:120708デフォルトの名無しさん
2009/09/07(月) 22:04:040709デフォルトの名無しさん
2009/09/07(月) 22:26:070710デフォルトの名無しさん
2009/09/07(月) 22:53:350711デフォルトの名無しさん
2009/09/07(月) 23:00:01グローバル変数かTLSスロットに保存しとけ
0712デフォルトの名無しさん
2009/09/07(月) 23:01:44同時にセットして使うことは不可能ですよね。
TLSセットについては良く知らないので、調べてみます。
ありがとうございます。
0713デフォルトの名無しさん
2009/09/07(月) 23:29:360714デフォルトの名無しさん
2009/09/08(火) 12:32:39リソースを見るとか
0715デフォルトの名無しさん
2009/09/08(火) 15:10:460716デフォルトの名無しさん
2009/09/08(火) 15:23:460717デフォルトの名無しさん
2009/09/08(火) 15:26:35deprecated: 知らないならレスしないで下さい。ウザいだけです。
今後は「わからんなら だまっとれいっ」を使用すること。
0718デフォルトの名無しさん
2009/09/08(火) 15:41:120719デフォルトの名無しさん
2009/09/09(水) 00:38:15かれこれ一ヶ月待ってるんだが
0720デフォルトの名無しさん
2009/09/09(水) 00:41:080721デフォルトの名無しさん
2009/09/09(水) 00:47:36Windows のサービスって、音を鳴らすことって
できるのでしょうか?
マシンにサービスを走らせて
たとえば時報とか鳴らしたいのです。
0722デフォルトの名無しさん
2009/09/09(水) 00:56:360723デフォルトの名無しさん
2009/09/09(水) 01:02:09タスクスケジューラでいいだろ
0725デフォルトの名無しさん
2009/09/09(水) 01:11:080726デフォルトの名無しさん
2009/09/09(水) 01:16:45・・・とか?w
0727デフォルトの名無しさん
2009/09/09(水) 01:18:510728721
2009/09/09(水) 01:18:56いやいや、時報を鳴らしたり、自動ビルドの結果を
ゆっくりしゃべらせたいだけです。
0729デフォルトの名無しさん
2009/09/09(水) 01:21:580730デフォルトの名無しさん
2009/09/09(水) 01:36:370731デフォルトの名無しさん
2009/09/09(水) 03:25:01そのアプリの実行に管理者権限が必要ということ?
そうだとして、ユーザが管理者権限を持っているのであれば、
タスクスケジューラでも管理者権限で実行できるよ(もちろんVista/7でも)。
(一般ユーザでも実行できるようにしたいならサービスの出番だろうけど)
0732デフォルトの名無しさん
2009/09/09(水) 12:23:58そのキャプチャした画像にどれくらいのピクセル数で赤系統の色が含まれているか調べたいとする
しかも、高速で
そういった場合、画面、または画像の色情報を取得するwin32apiはどんなものがあるだろうか
0733デフォルトの名無しさん
2009/09/09(水) 13:11:04そういう便利なAPIは無いから
GetDIBitsとかでピクセルデータ取得してマルチスレッドで走査線追うのがたぶん一番速いんじゃないのかなー
赤系統となると、あとはColorRGBToHLSなどでHue(色調)を調べるとかするのかな
0734デフォルトの名無しさん
2009/09/09(水) 13:38:340735デフォルトの名無しさん
2009/09/09(水) 20:11:42GetDIBitsで全体のピクセル取得したあと、
ピクセル単位に評価関数を使って判定するまではいいとして、
高速化のポイントは評価関数をテーブル化することかな
色に対して厳密な精度を求めないなら、
RGBの各8ビットのうち、下位4ビットをマスクするとRGB各4ビットになるから
(2^4)^3=4096
要素数4096のサイズの判定テーブルがあれば全色評価できることになる
判定テーブル自体は事前にColorRGBToHLSでも類似の関数でも使って作成しておけばよい
0736デフォルトの名無しさん
2009/09/09(水) 20:56:44どの程度のCPUでどの程度の時間なら高速なんだ?
0737デフォルトの名無しさん
2009/09/09(水) 21:12:110738デフォルトの名無しさん
2009/09/09(水) 21:34:32ステータスバー(っていうんでしたっけ?下の部分)に表示されているタイトルが変わりません。
これを変える方法を教えてください。
0739デフォルトの名無しさん
2009/09/09(水) 21:42:200740デフォルトの名無しさん
2009/09/09(水) 21:55:41日本語でおk
0741デフォルトの名無しさん
2009/09/09(水) 22:09:510742デフォルトの名無しさん
2009/09/09(水) 23:14:21ありがとうございます。。。しかしなんか大変なのがわかりました
というよりも意図が違ってるかもしれません
例えばゲームを起動するじゃないですか、そのときにステータスバーにタイトルが表示されますよね?
あのステータスバーのタイトルとゲーム画面のタイトルが同じタイミングに近い感じで変わって欲しいんですが>>741のやり方が必要なのでしょうか?
ゲーム画面を動したり最小化するとステータスバーのタイトルが更新させるのでこれを上手く使えばできそうなんですが
0743デフォルトの名無しさん
2009/09/09(水) 23:19:560744デフォルトの名無しさん
2009/09/09(水) 23:23:070745デフォルトの名無しさん
2009/09/09(水) 23:24:050746デフォルトの名無しさん
2009/09/09(水) 23:28:06ステータスバーのウインドウクラスはSTATUSCLASSNAMEだからこれをCreateWindowに与えてやればよい
そんで、タイトルの設定はステータスバーのウインドウにSB_SETTEXTを送ればよい
ステータスバーはメインウインドウを表示する前に作成しおくこと
0747デフォルトの名無しさん
2009/09/09(水) 23:39:12タスクバーはどうしたらいいでしょうか?
0748デフォルトの名無しさん
2009/09/09(水) 23:39:400749デフォルトの名無しさん
2009/09/09(水) 23:43:24監視ソフトが動作プロセス一覧を吸い上げて筒抜けになってるから無駄無駄
0750721
2009/09/09(水) 23:46:58>>730
>>731
ちょっと試行錯誤した結果、
リモートログインをした後にタスクが起動されると
タスクで起動した Media Player 系が
MCI の初期化に失敗する模様です。
リモートログイン → 切断 → タスク起動
「MCI の初期化に失敗」エラーダイアログ。
リモートログイン → ログオフ → タスク起動
エラーダイアログは出ないが、音は鳴らず。
マシンにキーボードをつないでログイン → ログオフ → タスク起動
音が鳴る。
次はサービスアプリケーションを作って試してみます。
ではまた後ほど。
0751デフォルトの名無しさん
2009/09/09(水) 23:48:46sndPlaySoundを呼ぶだけのプログラムを作ってタスクスケジューラに入れとけ
0752721
2009/09/09(水) 23:54:58winmm.dll の。
でも試してみますね。
0753デフォルトの名無しさん
2009/09/09(水) 23:56:080754デフォルトの名無しさん
2009/09/10(木) 01:26:08オフスクリーンバッファにはDDB、DIB、DIBSectionのどれを使うべきなのでしょうか
ググってみたところ、それぞれについて他より高速であるという記述が見つかってしまい、よく分かりません
ディスプレイDCへの転送時に掛かる時間を考えると、DDBが高速な気がしますが、バッファの編集はDIBが高速なようにも思えます
使い分けが必要ならば、そのあたりも含めて教えていただければ幸いです
0755デフォルトの名無しさん
2009/09/10(木) 01:30:050756デフォルトの名無しさん
2009/09/10(木) 07:14:08補間付き拡大縮小描画やYUV変換も絡むならDirect3Dか。
0757デフォルトの名無しさん
2009/09/10(木) 09:56:57あったら教えてください。
0758デフォルトの名無しさん
2009/09/10(木) 15:46:360759デフォルトの名無しさん
2009/09/10(木) 17:28:050760デフォルトの名無しさん
2009/09/10(木) 17:59:080761デフォルトの名無しさん
2009/09/10(木) 18:07:470762デフォルトの名無しさん
2009/09/10(木) 18:10:260763デフォルトの名無しさん
2009/09/10(木) 18:30:19RegisterWirelessLanSSIDAndPassphraseでググれ
0764デフォルトの名無しさん
2009/09/12(土) 01:01:21したいんですが
SendMessage((HWND)lp,WM_SETTEXT,0,(long)Str);
でできます?WM_SETTEXTはウィンドウタイトルへの
送信しかできないんですか?
0765デフォルトの名無しさん
2009/09/12(土) 01:04:55ていうかやってみろよ。1行なんだからさ。
0766デフォルトの名無しさん
2009/09/12(土) 01:11:490767デフォルトの名無しさん
2009/09/12(土) 01:26:02いや、すいません。いろいろ問題あるらしくてひとつずつ
解決してる最中なんです。
ウィンドウは自作のふつーのウィンドウです。ボタンなんか
配置してあるだけの。
0768デフォルトの名無しさん
2009/09/12(土) 01:35:23は取り消し、失礼しました。
>>765
ありがとうございました。
0769デフォルトの名無しさん
2009/09/12(土) 01:36:530770デフォルトの名無しさん
2009/09/12(土) 02:11:19CreateDesktopで作成したでデスクトップを
画面には非表示のままキャプチャしたいのですが
うまくいきません。
もちろんSwitchDesktopでアクティブにすれば
キャプチャできるのですが SetThreadDesktopで
割り付けてもキャプチャされた画面は黒いままです
そもそもこれは 仕組みとしてキャプチャできるのでしょうか?
仮想デスクトップの 非アクティブのプレビュー的な事が
したいのですが 難しいでしょうか?
0771デフォルトの名無しさん
2009/09/12(土) 02:13:42longではなくLPARAMへのキャストにしておきなさい、64ビット対応のために。
0772デフォルトの名無しさん
2009/09/12(土) 02:32:17なんで偉そうなんだよ
0773デフォルトの名無しさん
2009/09/12(土) 03:00:55少なくともlong使うような
0774デフォルトの名無しさん
2009/09/12(土) 05:24:53SetThreadDesktopを実行するのは正しいと思う
それによってGetDesktopWindowが返すハンドルがそのデスクトップのものになるだろうし
問題はこのデスクトップのHDCを取得して使用してもいいのかということだよね
画面が真っ黒なら無理ってことなのだろうけどキャプチャのコードを見ないことにはなんとも
というか、見えてないデスクトップのイメージがほしいなら見えなくなる前に保存するのはだめ?
0775デフォルトの名無しさん
2009/09/12(土) 08:58:15C#2008EEでスクリーンセーバーを作っています。
モニターの電源を切る方法は検索してわかったのですが、↓
PostMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, MONITOR_OFF);
HDDはどうやって止めるのでしょうか?
0776デフォルトの名無しさん
2009/09/12(土) 10:05:17これをコンパイルしたアプリってVISTA以前、というかXPでもWindowsアップデートやDirectXアップデート
すれば実行できるんだよね?
0777デフォルトの名無しさん
2009/09/12(土) 10:42:30いや、できんよ。Win7専用バイナリになるよ。
0778デフォルトの名無しさん
2009/09/12(土) 11:02:490779デフォルトの名無しさん
2009/09/12(土) 20:38:09ステータスバーでボーダー等の大きさは取得することができますが、
グリップの大きさを求めるにはどのようにすればいいのでしょうか。
0780デフォルトの名無しさん
2009/09/12(土) 21:14:490781デフォルトの名無しさん
2009/09/12(土) 21:30:23返事おそくなってすみません
仮想デスクトップは切り替える直前のスナップショットを表示しているようですね
業務でそれぞれの仮想画面をリアルタイムで監視したいものですから
ありがとうございます。
0782デフォルトの名無しさん
2009/09/13(日) 13:23:14フォントの文字セットごとに異なったサンプル文字列が表示されますが、
あの文字列を取得する方法はあるのでしょうか。
単にダイアログが全部リソースで持ってるだけなのかもしれませんが。
0783デフォルトの名無しさん
2009/09/13(日) 13:36:110784デフォルトの名無しさん
2009/09/13(日) 13:42:38日本語版だとSystem32\ja-JP\comdlg32.dll.muiの文字列リソースに入ってるね。
0785デフォルトの名無しさん
2009/09/13(日) 13:50:450786デフォルトの名無しさん
2009/09/13(日) 14:46:060787デフォルトの名無しさん
2009/09/13(日) 16:05:35ありがとうございます。
同じ文字列を自分のプログラムでもリソースで持つようにします。
0788デフォルトの名無しさん
2009/09/13(日) 23:50:10細かいファイルをシーケンシャルで読み込むため配置順にしたいです。
0789デフォルトの名無しさん
2009/09/14(月) 00:15:480790デフォルトの名無しさん
2009/09/14(月) 00:18:050791デフォルトの名無しさん
2009/09/14(月) 00:59:400792デフォルトの名無しさん
2009/09/14(月) 01:03:200793デフォルトの名無しさん
2009/09/14(月) 01:05:170794デフォルトの名無しさん
2009/09/14(月) 01:12:50無理、Windows自体は場所を求める方法を公開していない。
なのでやるとしたら、ドライブを直に開いてFAT/NTFSを自分で読み取って場所を調べることになる。
そして、順番に並べ替えまでしたら、>>790も言っているように、もはやデフラグソフトの域。
ほか、代案。
1. 1ファイルに固める、ZIPとかTARとか。
2. Superfetchとかに期待して自分は何もしない。
0795デフォルトの名無しさん
2009/09/14(月) 01:20:450796デフォルトの名無しさん
2009/09/14(月) 01:21:34>788が考えてることは根本的に無駄無意味だな。普通にパフォーマンス優先で
データ構造から考え直せ。
0797デフォルトの名無しさん
2009/09/14(月) 01:22:02NTFSならきにせんでよろし
0798デフォルトの名無しさん
2009/09/14(月) 01:23:550799デフォルトの名無しさん
2009/09/14(月) 09:55:05サービスアプリ自体を各クライアントから操作、データの送受信を行いたいのですが、
プロセス間通信のところで少し悩んでいます。ご教授お願いいたします。
サービスアプリでクライアントとの通信をメッセージ"WM_COPYDATA"を送受信して行うことは可能でしょうか?
サーバ側は、StartServiceCtrlDispatcher()で自作でサービスを作成していますが、この場合ウインド(非表示)
を作成してクラインととの通信をSendMessage()で行うことは可能でしょうか?
また、サービスアプリでウィンドを作成する自体は問題はないのでしょうか?
0800デフォルトの名無しさん
2009/09/14(月) 10:17:510801799
2009/09/14(月) 11:12:49返信ありがとうございます。
ダメというのは、サービスプログラムでウィンドを作成することがダメなのでしょうか?
0802デフォルトの名無しさん
2009/09/14(月) 11:42:580803デフォルトの名無しさん
2009/09/14(月) 14:05:26サービスのプロパティのログオンのとこで
デスクトップとの対話をサービスに許可にチェック入れる必要あるよ
0804デフォルトの名無しさん
2009/09/14(月) 15:17:510805デフォルトの名無しさん
2009/09/14(月) 15:32:17?
0806デフォルトの名無しさん
2009/09/14(月) 15:44:460807デフォルトの名無しさん
2009/09/14(月) 16:01:020808デフォルトの名無しさん
2009/09/14(月) 16:07:46少し上のレスも読まんのか
0809デフォルトの名無しさん
2009/09/14(月) 16:26:47少し上ならアンカーつけろよww
ああ、アンカー付け方知らない初心者でしたか
まずは1年くらいロムる事をお勧めする
0810デフォルトの名無しさん
2009/09/14(月) 16:30:530811デフォルトの名無しさん
2009/09/14(月) 16:32:030812デフォルトの名無しさん
2009/09/14(月) 16:39:440813デフォルトの名無しさん
2009/09/14(月) 16:48:20初心者丸出しワロタwwwwwwwwwwwwwwww
0814デフォルトの名無しさん
2009/09/14(月) 16:49:280815799
2009/09/14(月) 16:53:29ありがとうございます。
現状はパイプで通信を行っているのですが、サーバに対して複数のクライアントがメッセージを送信するため
”WM_COPYDATA”に変更できないかと思いましたがあきらめます。
パイプによるイベントドリブン式のクラスを自作して、対処したいと思います
0816デフォルトの名無しさん
2009/09/14(月) 16:57:570817デフォルトの名無しさん
2009/09/14(月) 16:59:11そっちの方が意外だよ
0818デフォルトの名無しさん
2009/09/14(月) 17:00:44専ブラ使え
いつの時代だよwwwwwwwwwwwwwwwwwwww
0819デフォルトの名無しさん
2009/09/14(月) 17:03:30他の手段で探してるのかな? ググレカスの1択 ってことは無いよな?
0820デフォルトの名無しさん
2009/09/14(月) 17:09:510821デフォルトの名無しさん
2009/09/14(月) 17:17:480822デフォルトの名無しさん
2009/09/14(月) 17:20:44せめて努力してみたけどわかりませんでしたというフリをしろ
0823デフォルトの名無しさん
2009/09/14(月) 17:22:14さてAPIの話に戻るか
0824デフォルトの名無しさん
2009/09/14(月) 17:24:12?
0825デフォルトの名無しさん
2009/09/14(月) 17:26:140826デフォルトの名無しさん
2009/09/14(月) 17:39:530827デフォルトの名無しさん
2009/09/14(月) 17:41:590828デフォルトの名無しさん
2009/09/14(月) 17:52:090829デフォルトの名無しさん
2009/09/14(月) 17:53:480830sage厨
2009/09/14(月) 17:55:010831デフォルトの名無しさん
2009/09/14(月) 17:57:12お前等みたいなクズにいわれたくねーよゴミのくせに
0832デフォルトの名無しさん
2009/09/14(月) 17:59:250833デフォルトの名無しさん
2009/09/14(月) 18:01:19ググれクズ
0834デフォルトの名無しさん
2009/09/14(月) 18:07:00少し上のレスを読まなかったお前が悪いんだから質問者に逆ギレするなよ。
0835デフォルトの名無しさん
2009/09/14(月) 18:10:530836デフォルトの名無しさん
2009/09/14(月) 18:12:54ハイハイsage厨のフリしなくていいよ坊や
0837デフォルトの名無しさん
2009/09/14(月) 18:16:560838デフォルトの名無しさん
2009/09/14(月) 18:28:030839デフォルトの名無しさん
2009/09/14(月) 18:28:39顔真っ赤ですよ
0840デフォルトの名無しさん
2009/09/14(月) 18:34:020841デフォルトの名無しさん
2009/09/14(月) 23:00:390842デフォルトの名無しさん
2009/09/14(月) 23:41:450843デフォルトの名無しさん
2009/09/14(月) 23:57:580844デフォルトの名無しさん
2009/09/15(火) 04:23:29Windowsでは.NetもWin32の上で動いてんだけど
0845デフォルトの名無しさん
2009/09/15(火) 08:00:120846デフォルトの名無しさん
2009/09/15(火) 10:00:250847デフォルトの名無しさん
2009/09/15(火) 10:01:270848デフォルトの名無しさん
2009/09/15(火) 10:08:57そういう嘘はいいから。
0849デフォルトの名無しさん
2009/09/15(火) 10:16:07Win32APIで出来ない事はスレ違いだと理解しろ
0850デフォルトの名無しさん
2009/09/15(火) 10:16:32システム寄りの知識を持ってないクソガキがそういう質問して叩かれてるのはよく見るがw
デバッグ検知?ステータスバー??
0851デフォルトの名無しさん
2009/09/15(火) 10:18:080852デフォルトの名無しさん
2009/09/15(火) 10:20:20なあ、叩かれて悔しかっただけだろ?
叩かれるのが嫌なら自分で勉強しようよ。
せめて用語は正しく使えるようになってから質問しようね。
0853デフォルトの名無しさん
2009/09/15(火) 10:22:500854デフォルトの名無しさん
2009/09/15(火) 10:45:250855デフォルトの名無しさん
2009/09/15(火) 11:00:240856デフォルトの名無しさん
2009/09/15(火) 11:05:160857デフォルトの名無しさん
2009/09/15(火) 11:15:56基地外sage厨はもうこのスレに来るな
0858デフォルトの名無しさん
2009/09/15(火) 11:20:10お前がもうこのスレに来るなよw
0859デフォルトの名無しさん
2009/09/15(火) 16:46:080860デフォルトの名無しさん
2009/09/15(火) 16:51:100861デフォルトの名無しさん
2009/09/15(火) 16:53:14. ,.'ニ.V _,-─ ,==、、く`>>859
,. /ァ'┴' ゞ !,.-`ニヽ、トl、:. ,
rュ. .:{_ '' ヾ 、_カ-‐'¨ ̄フヽ`'|::: ,.、
、 ,ェr<`iァ'^´ 〃 lヽ ミ ∧!::: .´
ゞ'-''ス. ゛=、、、、 " _/ノf:::: ~
r_;. ::Y ''/_, ゝァナ=ニ、 メノ::: ` ;.
_ ::\,!ィ'TV =ー-、_メ:::: r、
゙ ::,ィl l. レト,ミ _/L `ヽ::: ._´
;. :ゞLレ':: \ `ー’,ィァト.:: ,.
~ ,. ,:ュ. `ヽニj/l |/::
_ .. ,、 :l !レ'::: ,. "
0862デフォルトの名無しさん
2009/09/15(火) 20:48:15GetMessage/DispatchMessageは無しでダイアログにお任せでよいのでしょうか、よく分からんです
0863デフォルトの名無しさん
2009/09/15(火) 20:57:02ダイアログの表示にDialogBox類を使っているならそう。
DialogBoxの中でGetMessage/DispatchMessageが呼ばれていると思えばいい。
0864デフォルトの名無しさん
2009/09/15(火) 21:01:02|・ω・)ノ どもです
0865デフォルトの名無しさん
2009/09/15(火) 21:10:39|・ω・)ノ どもです
0866デフォルトの名無しさん
2009/09/15(火) 21:11:25|・ω・)ノ どもです
0867デフォルトの名無しさん
2009/09/15(火) 21:35:140868デフォルトの名無しさん
2009/09/15(火) 22:42:040869デフォルトの名無しさん
2009/09/15(火) 23:05:40|・ω・)ノ どもです
0870デフォルトの名無しさん
2009/09/16(水) 00:08:470871デフォルトの名無しさん
2009/09/16(水) 00:11:580872デフォルトの名無しさん
2009/09/16(水) 01:03:050873デフォルトの名無しさん
2009/09/16(水) 13:56:391000円で買うからうpしてくれないかな
0874デフォルトの名無しさん
2009/09/16(水) 14:00:450875デフォルトの名無しさん
2009/09/16(水) 18:08:370876デフォルトの名無しさん
2009/09/18(金) 03:30:270877デフォルトの名無しさん
2009/09/18(金) 06:08:53> 231 名前:221[sage] 投稿日:2008/11/18(火) 00:11:20
> あるよ。
> 時間も指定できるし。
>
> あと俺は指定した時間にMP3を再生する目覚ましと時計を作ったよw
> フリーソフトにすら公開してねーけどw
0878デフォルトの名無しさん
2009/09/18(金) 15:24:45なんで怒るんだよ、Win32APIにコンプレックス持ちすぎじゃねーか
.NETで目覚まし時計作れるなんてたいしたもんだと思うぞ
おれの友達で偏差値平均65ある奴いたけどそいつは結局何も作れずに挫折してるしさー
.NETだってむずかしくて挫折する奴多いんだから自信持ちなよ
API使いに茶化されたくらいでファビョるなよな
0879デフォルトの名無しさん
2009/09/18(金) 15:41:280880デフォルトの名無しさん
2009/09/18(金) 16:02:49だって.NETに使いたい機能がなかったんだもん
0881デフォルトの名無しさん
2009/09/18(金) 19:43:56うpできないならスレに書き込まなくて結構です。
0882デフォルトの名無しさん
2009/09/18(金) 21:27:55> 無理、Windows自体は場所を求める方法を公開していない。
ふぅん
0883デフォルトの名無しさん
2009/09/18(金) 21:30:24http://msdn.microsoft.com/en-us/library/aa364572(VS.85).aspx
0884デフォルトの名無しさん
2009/09/18(金) 22:53:430885デフォルトの名無しさん
2009/09/19(土) 04:50:24俺よりも低いやつはいないと思いたいところだけど、怪しい
0886デフォルトの名無しさん
2009/09/19(土) 04:54:190887デフォルトの名無しさん
2009/09/19(土) 05:52:480888デフォルトの名無しさん
2009/09/19(土) 07:18:310889デフォルトの名無しさん
2009/09/19(土) 10:02:290890デフォルトの名無しさん
2009/09/19(土) 10:54:080891デフォルトの名無しさん
2009/09/19(土) 14:14:27”目覚まし時計”だと思ってたら”目覚ましと時計”が正式名称だったのかよw
0892デフォルトの名無しさん
2009/09/19(土) 14:26:05を別に作ったのでは?
0893デフォルトの名無しさん
2009/09/19(土) 14:52:06.NET遅い()笑
0894デフォルトの名無しさん
2009/09/19(土) 14:56:400895デフォルトの名無しさん
2009/09/19(土) 19:39:46キャレット位置の取得の仕方について質問させて下さい。
使用しているエディタ(メモ帳、サクラエディタ等)のキャレットの位置に
ポップアップメニューを表示させたいのですが、
キャレット位置の取得の仕方が分かりません。
GetCaretPosという関数がそれに近いようなことをできるのかと思いましたが、
使ってみると、ポップアップメニューが毎回、画面左上に表示されます。
// キャレット位置
POINT pt;
//キャレット位置取得
GetCaretPos(&pt);
環境は
VC++2008 Express Editionです。
どのようにすればよいでしょうか。
よろしくお願いします。
0896デフォルトの名無しさん
2009/09/19(土) 20:55:14試したけど、GetCaretPos() を実行するスレッドがキャレット保持ウィンドウの入力状態を共有してればいけるみたい
int main(int argc, char* argv[]) {
for (;;) {
HWND hwndForeground = ::GetForegroundWindow();
if (hwndForeground == NULL) continue;
DWORD dwForegroundProcessID;
DWORD dwForegroundThreadID = ::GetWindowThreadProcessId(hwndForeground, NULL);
if (::AttachThreadInput(::GetCurrentThreadId(), dwForegroundThreadID, TRUE)) {
POINT pt;
if (GetCaretPos(&pt)) printf("%d, %d\n", pt.x, pt.y);
::AttachThreadInput(::GetCurrentThreadId(), dwForegroundThreadID, FALSE);
}
Sleep(500);
}
return 0;
}
0897デフォルトの名無しさん
2009/09/19(土) 21:12:31この質問者さんと私は別人ですが同じ事で困っています.マイドキュメントのアクセス権は普通のフォルダにアクセス権を与えたのとは
また別の設定をしなければならないのでしょうか?
0898デフォルトの名無しさん
2009/09/19(土) 21:27:500899897
2009/09/19(土) 21:42:131>一時ファイルを削除できませんでした。ファイルが開いていないこと、また書込み禁止になっていないことを確認してください。
このようなエラーが出たのでエラー番号で調べると下記URLで同じようなことで困ってる人がいました
http://social.msdn.microsoft.com/forums/en-US/Vsexpressvc/thread/71ff7f3f-48f3-44b1-b1a4-592409cae5f3/
Administratorでコンパイルすれば出来るはずみたいなことが書いていたのでアクセス権が関係するのかなと思い書きました.
リンク先は合っています.一度エラーで示されたフォルダまで行くとありました.しかし手作業でRSP〜〜.rspを消そうとすると
アクセスできませんと出ます.
0900デフォルトの名無しさん
2009/09/20(日) 12:03:08Unicode化がうまくいかない。どうして?
0901デフォルトの名無しさん
2009/09/20(日) 13:08:45うまくいかない、って曖昧にも程があるだろ。
とりあえずソースから一寸試してみたけど、
この書き方だと、DirList関数を呼ぶまではCロケールのままだろ。
0902デフォルトの名無しさん
2009/09/20(日) 13:13:23どうすればいいんですか?
0903デフォルトの名無しさん
2009/09/20(日) 13:19:18これですね。
http://d.hatena.ne.jp/s-kita/20080712/1215827470
ありがとうございます。
0904デフォルトの名無しさん
2009/09/20(日) 13:27:18Unicodeのファイル名が出力されない。
dirだと、出力できるのに。
0905デフォルトの名無しさん
2009/09/20(日) 13:38:30Unicodeでコンパイルしていない悪寒
0906デフォルトの名無しさん
2009/09/20(日) 13:43:04これでも駄目
http://www1.axfc.net/uploader/Sc/so/37857.zip
0907デフォルトの名無しさん
2009/09/20(日) 14:39:410908デフォルトの名無しさん
2009/09/20(日) 14:44:09sdirwを実行したら、音符のところが表示されないから駄目だと
判断した。
0909デフォルトの名無しさん
2009/09/20(日) 15:24:30要は、_putts()でWindowsのコンソールに♫を出力するにはどうすればいいか、
という質問?
0910デフォルトの名無しさん
2009/09/20(日) 15:30:06CRTが絡むと話がややこしくなるなあ。
ちなみに、今のコードだとマルチバイト文字に変換してから出力されることになるので、
Unicode側にしか無い文字があると、そこで出力が止められる。
0911デフォルトの名無しさん
2009/09/20(日) 15:42:22同じ文字列をファイルにしてBOMつけるとtypeコマンドでも出るねえ
0912デフォルトの名無しさん
2009/09/20(日) 16:18:39WriteConsole(GetStdHandle(STD_OUTPUT_HANDLE),...
やってるんじゃないの?
stdioとかiostream通す限りは無理なんじゃないの。
0913デフォルトの名無しさん
2009/09/20(日) 16:54:580914デフォルトの名無しさん
2009/09/20(日) 18:06:06じゃだめか?
0915デフォルトの名無しさん
2009/09/20(日) 18:48:32CP932に無いUNICODE文字をどう表示するかって話
0916デフォルトの名無しさん
2009/09/20(日) 18:54:51UTF-8だけかな
0917デフォルトの名無しさん
2009/09/20(日) 19:06:380918デフォルトの名無しさん
2009/09/20(日) 19:23:00それをstd::wcoutなどの代わりに使うことができる。
まあ、詳しいやり方はこのスレから外れる話だけど。
0919デフォルトの名無しさん
2009/09/20(日) 20:37:54ってことでOK?
0920デフォルトの名無しさん
2009/09/20(日) 23:09:240921デフォルトの名無しさん
2009/09/21(月) 01:17:32ウィンドウ列挙で↑みたいな0入れてる例がネット検索
したらありました。何か入れないと動作しないんじゃない
んですか?
0922デフォルトの名無しさん
2009/09/21(月) 01:20:170923デフォルトの名無しさん
2009/09/21(月) 01:20:400924デフォルトの名無しさん
2009/09/21(月) 01:29:55何か入れないと動作しない(引数が足りなくてコンパイルできない)ので0を入れてます。
0925デフォルトの名無しさん
2009/09/21(月) 01:35:02そうなんですか。ありがとうございました。
0926デフォルトの名無しさん
2009/09/21(月) 11:52:05どこの誰から呼ばれたのかを識別するために、
呼び元でそれと分かる値をのせて区別したり。
0927デフォルトの名無しさん
2009/09/21(月) 11:59:160928デフォルトの名無しさん
2009/09/21(月) 12:18:270929デフォルトの名無しさん
2009/09/21(月) 12:25:49WindowProcのことですね
0930デフォルトの名無しさん
2009/09/21(月) 13:56:370931デフォルトの名無しさん
2009/09/21(月) 15:10:29VistaからEnumCalendarInfoExExが出来たけど。
0932デフォルトの名無しさん
2009/09/21(月) 15:59:02WriteConsole(GetStdHandle(STD_OUTPUT_HANDLE), ...)
で成功しました。ありがとうございます。
0933デフォルトの名無しさん
2009/09/21(月) 16:09:54インストールされているアンチウイルスソフトの種類によらず
ファイル名を指定してウイルススキャンをかけられるAPIって
ありませんか?
0934デフォルトの名無しさん
2009/09/21(月) 16:15:19ありません
0935デフォルトの名無しさん
2009/09/21(月) 17:48:43locale::global( locale( "Japanese_Japan.65001" ) );
が通ってくれれば、Unicodeについて悩む必要ないのにね。
VC++ではJIS、EUC-JP、JISは使えるのにUTF系はどれも使えない。
0936デフォルトの名無しさん
2009/09/21(月) 18:02:590937デフォルトの名無しさん
2009/09/21(月) 18:29:11・WriteFileではコンソールにUnicodeを出力できない
・WriteConsoleではリダイレクトされた場合にまともに扱えない
という問題だろう?
0938デフォルトの名無しさん
2009/09/21(月) 19:19:54charより大きければよいとしか書かれてないから
UTF-8を納められるとは限らない。
ゆえにwstringやwfstreamなど、wchar_tを扱うどのライブラリも
せいぜいwchar_t = char = 1バイトがマトモに動けばいいくらいの作りになってる。
アルファベットを使う言語圏の人間による文字セットへの認識はその程度なのだ^^
0939デフォルトの名無しさん
2009/09/21(月) 21:26:11マルチバイト文字に変換するってモデルを想定していたように感じる。
C/C++以外では、.NET以前のVBもそんな感じだったし。
とりあえず多言語間で単一のソースコードを使えるようにするという点では、
それで一歩進んだつもりだったんだろう。
0940デフォルトの名無しさん
2009/09/21(月) 23:44:04コンパイラbcc5.5
DrawTextWでユニコード文字列のデコードがうまくいかない。
関数に渡した文字列がL"日本語"のようにLを付けた奴で2バイト文字だと一文字も出力されなくなる
おまけにchar*をmbstowcs関数でwchar_t*に変換したものを渡すと、文字列の描画はされるが、一文字ごとに改行されて表示される(DT_WORDBREAK付きの場合)
一応プログラムの最初で
std::locale loc( std::locale( "" ), "C", std::locale::numeric );
std::locale::global( loc );
ということはしていますが、他にもロケールを正しく指定しなきゃいけないところがあるのでしょうか?
宜しくお願い致します。
0941デフォルトの名無しさん
2009/09/21(月) 23:58:16プログラムのバイナリを覗いたら、char*の文字列は正しく出力されてましたが、ワイド文字の方は
やけに無茶苦茶な値で出力されてました。本来 "97 63"と出力されるべき文字が"00 00 00 63"のように
出力されるといった感じです。もしかしてコンパイラのスレに行くべきなのだろうか・・・
0942デフォルトの名無しさん
2009/09/22(火) 00:02:54DrawTextWはデコードなんてしない
L"文字列"
と
mbstowcsの変換結果
が違うならコンパイラの問題と思うけど
0943デフォルトの名無しさん
2009/09/22(火) 00:52:43うっ・・・変換結果と違いました・・・。
BCCスレに行ってきます・・・ありがとうございました。
[←樹海] トボトボ…
|| λ...
0944デフォルトの名無しさん
2009/09/22(火) 01:31:16一部のW系APIが失敗するとか聞いたことある
0945デフォルトの名無しさん
2009/09/22(火) 01:49:31規格を満たしてないところがあったりするので、
可能なら乗り換えた方がいいよな。
switch(0){putchar('A');}
で A が表示されてしまうとか。
スレ違いスマソ。
0946デフォルトの名無しさん
2009/09/22(火) 02:33:21('A');
顔文字にしか見えん
0947デフォルトの名無しさん
2009/09/22(火) 03:10:21フォールスルーしそうなもんだけど
0948デフォルトの名無しさん
2009/09/22(火) 05:03:56| | |
| ガンッ!! | |
| ,l ヽ
| / /
| 从/ / |
| _.,/ , / lノ
|_ //__' , i
/ (_(_`/- ,_, ノ
/ ゝ( 丿
0949デフォルトの名無しさん
2009/09/22(火) 06:40:500950デフォルトの名無しさん
2009/09/22(火) 08:40:440951デフォルトの名無しさん
2009/09/22(火) 08:55:250952デフォルトの名無しさん
2009/09/22(火) 09:41:590953デフォルトの名無しさん
2009/09/22(火) 09:54:300954デフォルトの名無しさん
2009/09/22(火) 09:56:050955デフォルトの名無しさん
2009/09/22(火) 09:57:34仕事で使ってるマシン、10種類以上コンパイラが入ってる
0956デフォルトの名無しさん
2009/09/22(火) 10:02:17俺のマシンなんて100種類以上コンパイラが入ってる
0957デフォルトの名無しさん
2009/09/22(火) 10:16:170958デフォルトの名無しさん
2009/09/22(火) 10:32:490959デフォルトの名無しさん
2009/09/22(火) 12:17:55VC6だけで9種類なんだが
VC5以下orVC2002以降とVC以外のコンパイラ加えると100種類ぐらい簡単に超えるよ
0960587
2009/09/22(火) 12:45:160961580
2009/09/22(火) 12:48:340962デフォルトの名無しさん
2009/09/22(火) 13:32:59VC6は異様に多いけど、2003/2005/2008なんてSP1だけだし。
MS系でWin32に対応したC/C++コンパイラはVC2.0からだっけか、たしか。
0963デフォルトの名無しさん
2009/09/22(火) 13:42:310964デフォルトの名無しさん
2009/09/22(火) 15:18:28「GUIプログラムはC言語では組めませんVC++(MFC)でしか組むことが出来ません。」
とかほざきやがって「それは違います」って言った事を思い出しちまったぜ
そこは内定もらえなかったw
0965デフォルトの名無しさん
2009/09/22(火) 15:20:49よかったなあなた
0967デフォルトの名無しさん
2009/09/22(火) 15:25:030968デフォルトの名無しさん
2009/09/22(火) 15:39:25APIを使うなってことだろ?
インラインアセンブラとかでシステムコール呼ぶしかないのかな?
0969デフォルトの名無しさん
2009/09/22(火) 15:47:19最初は楽な方法でやるがほしい機能がないと
せこせことAPIを調べはじめ自分でドンドンハードルを高くしたしまう。
出来ないと突っぱねると、会社からはじき飛ばされ、世間からもはじきとばされる。
0970デフォルトの名無しさん
2009/09/22(火) 15:52:380971デフォルトの名無しさん
2009/09/22(火) 16:07:310972デフォルトの名無しさん
2009/09/22(火) 16:18:280973デフォルトの名無しさん
2009/09/22(火) 16:33:50MFCもバージョンアップしてるんだぜ、いまだに
0974デフォルトの名無しさん
2009/09/22(火) 16:35:570975デフォルトの名無しさん
2009/09/22(火) 18:44:21次にWindowsを再インストールするまで、一度も起動しないやつのが多そう。
環境の再構築やってますって言いながら使いもしないコンパイラのインストールで何日もサボる言い訳か。
0976デフォルトの名無しさん
2009/09/22(火) 22:50:380977デフォルトの名無しさん
2009/09/23(水) 00:09:45コンパイラなんてコピーして環境変数設定するだけで動くだろが。
お前馬鹿じゃねーの?
0978デフォルトの名無しさん
2009/09/23(水) 00:22:35ウインドウ破棄のとき、ImmAssociateContextしなおす必要あるの、ないの、どっち
0979587
2009/09/23(水) 00:25:000980デフォルトの名無しさん
2009/09/23(水) 00:26:210981デフォルトの名無しさん
2009/09/23(水) 17:52:06誰かよろ
0982デフォルトの名無しさん
2009/09/23(水) 18:11:340983デフォルトの名無しさん
2009/09/23(水) 18:54:330984587
2009/09/23(水) 18:57:200985デフォルトの名無しさん
2009/09/23(水) 18:59:53http://pc12.2ch.net/test/read.cgi/tech/1253699773/
0986デフォルトの名無しさん
2009/09/23(水) 19:03:280987デフォルトの名無しさん
2009/09/23(水) 19:04:450988デフォルトの名無しさん
2009/09/23(水) 19:07:060989デフォルトの名無しさん
2009/09/23(水) 19:16:02エッチね♪
0990デフォルトの名無しさん
2009/09/23(水) 19:45:230991デフォルトの名無しさん
2009/09/23(水) 19:54:440992デフォルトの名無しさん
2009/09/23(水) 21:37:070993964
2009/09/23(水) 23:04:34亀だけどAPIはあり
つまりあっちはWindowsSDKのことを知らなかったんだよ
因みにそれを説明したら「ふーん」とちょっと引きつった感じの顔してたかな
その時「ああ、落とされたか」と思ったけど前述のC言語でGUIは組めないと
言われた時点で内定貰うもらわないにかかわらずその会社に行く気はなくなってた。
0994デフォルトの名無しさん
2009/09/23(水) 23:08:400995デフォルトの名無しさん
2009/09/23(水) 23:10:000996デフォルトの名無しさん
2009/09/23(水) 23:19:100997デフォルトの名無しさん
2009/09/23(水) 23:21:03_,..-'''"__ ※ `"'- 、 \
/>゙⌒ヽ ̄ ̄ ̄"'- 、 ※ \. \
/ ./ : :\ : :\ : : \ ∨ \
. / / : :ハ : :\ : : ヘ ※ ∨ _〆)
/ : :i : i: : :ト、 : : ヘ : :ヘ. | イ__/
/ : :i : : /,イ イ: :ト、\__,: :∧ : : :| ※゙|.八
l l : : :l_ // ル゙i: :ノィr‐─< 〉: :.,' .l: : \
l l. : :tノ.厶イ ル゙ (て刀ア.,': :./ ※ .l: : \
|∧ : :∨ (てカ` ゞ—゙ /: :/ .ト、 : : \
. ゝ : : \.ゞ┘ , ////,.イ ※ l: \ : : \
. `(>┬-ゝ// r 、 个 ∧.: : \ : : '.,
. ) 人.X゙\ `‐' / .| ※ /.: :',: : \: : l ですぅ
/./ : : )゙※/゙テ=r‐ャ<.___人. /: : ',: : \: : l
/./ : :/ /゙f .〉〉刀, 〉 〕 `X乃ミY)∧: : \/
/./ : :/./_「| Y| /\ ∧ ヘ\  ̄ハ.: : \
/./ : : ,イ 辷竺ミY .∧ 》 ∧ノ 〉 \. l.: : ヘ
. /./., -'"/ノ 廴_辷竺ミ乃ゝノ∧ノ / ※ / |.: : : : ',
/./ / ./^''^''廴___) ∧ノ 〈 〈 l: : : : l
. / ※ / Y / 人^''^''^∨ノ∠_.', ', l',.: : : : |
. / .弓ミxrュ/ /((∧. ', ', ※゙∨ ',.: : : : |
/ ※ 〈ゞ〃rr/ ,イ))/ ∧ てハ二) ヘ. ∨ l.: : : : |
/∨》 |.ト、 /|.|((廴_.∧ |.|.|ヘ. | ※ | |.: : : : /
\ / _∨゙|.| ゝノ |.|^Y^Y^人 .ノ|.|.|〉〉. | |.丿: : : : /
0998デフォルトの名無しさん
2009/09/23(水) 23:22:370999デフォルトの名無しさん
2009/09/23(水) 23:22:511000デフォルトの名無しさん
2009/09/23(水) 23:24:2610011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。