Win32API質問箱 Build69
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2008/08/02(土) 23:23:58やさしいお兄さんやお姉さんたちが答えてくれるかも。
過去スレ、関連リンクは>>2-10くらい。
■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。英語版(http://msdn2.microsoft.com/library/)の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで
- Win32API質問箱 wiki
http://wiki.livedoor.jp/program1/d/FrontPage
Win32API質問箱 Build68
http://pc11.2ch.net/test/read.cgi/tech/1215348804/
0002デフォルトの名無しさん
2008/08/02(土) 23:24:36http://www.microsoft.com/japan/msdn/
- MSDN ライブラリ
http://msdn.microsoft.com/library/
http://msdn.microsoft.com/library/ja/
- MSDN2 ライブラリ
http://msdn2.microsoft.com/en-us/library/
http://msdn2.microsoft.com/ja-jp/library/
- MSDN ライブラリ (ローカル版)
http://www.microsoft.com/downloads/details.aspx?familyid=6FF3BC60-32C8-4C22-8591-A20BF8DFF1A2&displaylang=ja
http://www.microsoft.com/downloads/details.aspx?familyid=B8704100-0127-4D88-9B5D-896B9B388313&displaylang=ja
- 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
0003デフォルトの名無しさん
2008/08/02(土) 23:25:10http://www.google.com/
- 猫でもわかるプログラミング
http://www.kumei.ne.jp/c_lang/
- Win32 API入門
http://wisdom.sakura.ne.jp/system/winapi/
- Win32 プログラミング入門
http://www7.plala.or.jp/keny01/
- Advanced Windows (書籍)
http://www.amazon.co.jp/dp/4756138055
0004デフォルトの名無しさん
2008/08/02(土) 23:25:4668 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/
0005デフォルトの名無しさん
2008/08/02(土) 23:26:2449 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/
0006デフォルトの名無しさん
2008/08/02(土) 23:27:2724 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
0007デフォルトの名無しさん
2008/08/02(土) 23:30:35乙
0008デフォルトの名無しさん
2008/08/02(土) 23:40:34参考になりました。
0009デフォルトの名無しさん
2008/08/02(土) 23:53:55MSDNライブラリでbeginthreadを引くと_beginthreadexと_endthreadex使えと書いてある罠。
0010デフォルトの名無しさん
2008/08/03(日) 00:33:31戻り値のハンドルが既に無効になってしまっている可能性があるからねえ。
_beginthreadexなら、終了してもハンドル自体は有効のままだから、
生死の確認等も問題なくできる。
0011デフォルトの名無しさん
2008/08/03(日) 01:18:000012デフォルトの名無しさん
2008/08/03(日) 02:28:39_beginthreadから帰ってきた瞬間にもうハンドルが死んでいるかもしれないと書かれている。
あと、_beginthreadexで始めるスレッドのエントリポイントは
CreateThreadと同じくstdcallなんで、キャストの追加だけで移行できるのもメリットと言える。
0013デフォルトの名無しさん
2008/08/03(日) 03:54:44ハンドルが無効ならGetExitCodeThreadがFALSEを返すから生死の確認ぐらいは可能でしょ
それとDLL版のCRTにリンクすればCreateThread/ExitThreadでもリークしない
0014デフォルトの名無しさん
2008/08/03(日) 07:53:050015デフォルトの名無しさん
2008/08/03(日) 10:39:140016デフォルトの名無しさん
2008/08/03(日) 10:55:090017デフォルトの名無しさん
2008/08/03(日) 13:25:02CreateProcess()が失敗するのはWindowsの仕様と聞いたのですが
これは本当ですが?
0018デフォルトの名無しさん
2008/08/03(日) 14:18:24「ウィンドウステーションがシャットダウン中のため〜」って出て失敗するやつじゃないの?
そもそもログオフのタイミングでCreateProcessって何がしたいのかねぇ
0019デフォルトの名無しさん
2008/08/03(日) 14:24:36シャットダウンするとそうなっていたな。
0020デフォルトの名無しさん
2008/08/03(日) 14:57:12WriteFile
0021デフォルトの名無しさん
2008/08/03(日) 22:38:34より誘導されて参りました。
どうかご教授の程お願いいたします。
0022デフォルトの名無しさん
2008/08/03(日) 22:57:56ここは初心者をバカにして優越感に浸って戯れるスレだ
0023デフォルトの名無しさん
2008/08/03(日) 23:11:46> SetWindowLong(HANDLE, GWL_STYLE, WS_POPUP | WS_MINIMIZEBOX | WS_VISIBLE);
> SetMenu(HANDLE, NULL);
> SetWindowPos(HANDLE, HWND_TOP, 0,0,1400,1052, SWP_FRAMECHANGED | SWP_NOCOPYBITS);
こんなソース書いてるようだからWin32の根本から分かってないみたいだね
とりあえず「勉強して一通り理解してから質問しろ」とだけ言っておく
0024デフォルトの名無しさん
2008/08/03(日) 23:14:420025デフォルトの名無しさん
2008/08/03(日) 23:20:57>>23に同じだけど、それ、コンパイル通る?
0026デフォルトの名無しさん
2008/08/03(日) 23:28:070027デフォルトの名無しさん
2008/08/03(日) 23:28:500028デフォルトの名無しさん
2008/08/03(日) 23:32:43ワロタ
0029デフォルトの名無しさん
2008/08/03(日) 23:53:26そんな事言うなら代わりに書いてください、お願いします。
Win32プログラムなんざやったことも無いが他に書く人が居ないのだから仕方ない。
0030デフォルトの名無しさん
2008/08/03(日) 23:54:09通らない。一応これでコンパイルは通ったけども、効果なし。はて、どうしたものか
#include <windows.h>
#include <stdio.h>
BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
static TCHAR processName[MAX_PATH];
HWND hWnd;
hWnd = GetActiveWindow();
switch(ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
GetModuleFileName(0, processName, MAX_PATH);
processName[MAX_PATH-1] = '\0';
OutputDebugString("補助DLLロード確認");
MessageBox(0, processName, "補助DLLロード確認", MB_OK);
SetWindowLong(hWnd, GWL_STYLE, WS_POPUP | WS_MINIMIZEBOX | WS_VISIBLE);
SetMenu(hWnd, NULL);
SetWindowPos(hWnd, HWND_TOP, 0,0,1400,1052, SWP_FRAMECHANGED | SWP_NOCOPYBITS);
break;
case DLL_PROCESS_DETACH:
OutputDebugString("補助DLLアンロード確認");
MessageBox(0, processName, "補助DLLアンロード確認", MB_OK);
break;
}
return TRUE;
}
0031デフォルトの名無しさん
2008/08/04(月) 00:04:270032デフォルトの名無しさん
2008/08/04(月) 00:50:320033デフォルトの名無しさん
2008/08/04(月) 00:58:08ここは宿題スレじゃない
自分で勉強して書く気が無いなら帰れ
0034デフォルトの名無しさん
2008/08/04(月) 01:03:50> Win32プログラムなんざやったことも無いが他に書く人が居ないのだから仕方ない。
何このゆとり世代・・・
0035デフォルトの名無しさん
2008/08/04(月) 01:41:23宿題スレは宿題しか取り扱ってくれないのですがどうしましょう?
>34
プログラマでもないならコード書きたくないのは当然だろうに。
頼めるところがあるならとうの昔に頼んでる。
第一対象のソフトが無いなら動作確認も取れないし、作れる人間自体が限られてしまう。
0036デフォルトの名無しさん
2008/08/04(月) 01:53:51どこの世界にお前の代わりに無償でコード書く馬鹿がいるんだよ
それともそれ相応の金額を支払ってくれるのか?
0037デフォルトの名無しさん
2008/08/04(月) 02:00:22プログラマなんて底辺の職業に就いてるクズが偉そうに・・・
何もしないなら迷惑だから黙っとけ
0038デフォルトの名無しさん
2008/08/04(月) 02:04:100039デフォルトの名無しさん
2008/08/04(月) 02:05:48http://www.engineersguide.jp/
0040デフォルトの名無しさん
2008/08/04(月) 02:09:430041デフォルトの名無しさん
2008/08/04(月) 02:11:010042デフォルトの名無しさん
2008/08/04(月) 02:13:24「古いエロゲーをフルスクリーンでやりたいです」と
0043デフォルトの名無しさん
2008/08/04(月) 02:17:480044デフォルトの名無しさん
2008/08/04(月) 03:02:590045デフォルトの名無しさん
2008/08/04(月) 03:16:08いつの間にここまでレベル落ちたんだよここ
0046デフォルトの名無しさん
2008/08/04(月) 03:23:520047デフォルトの名無しさん
2008/08/04(月) 04:53:210048デフォルトの名無しさん
2008/08/04(月) 07:43:04実際完動するものを作ってくれる人が居るなら少量の謝礼ぐらいは払っても良いとは思ってる。
とは言えその辺で募集できる類の物でもないだろうに。
別に会社組織として動かすわけでもないのだから。
>42
連絡取れるなら苦労しない。掲示板も動いてないし。
ついでに言うなら、元の書き込み見れば判るとおり、フルスクリーン化はエラー対策なのでフルスクリーンにこだわってるわけじゃない。
元のツールが窓化強制(設定はあるけど動いてないみたいだ)で色パレットエミュレート機能だけを利用できないので他のソフトのためにフルスクリーンできるようになるなら越したことは無いけど。
0049デフォルトの名無しさん
2008/08/04(月) 07:46:350050デフォルトの名無しさん
2008/08/04(月) 07:48:23だから、お前がエロゲーでオナニーする為になぜ俺達がコード書いてやらなきゃならんのだよ
自分のことなんだから自分で何とかしろよ
0051デフォルトの名無しさん
2008/08/04(月) 08:00:09だから何とかするために自分でやろうとして聞きにきたら「帰れ」じゃ話にならないわけで。
そもそも対象はエロゲだが目的は単に毛色の変わったローグライクやりたいだけだぞ。
0052デフォルトの名無しさん
2008/08/04(月) 08:06:39[プログラム板] 【初心者歓迎】C/C++室 Ver.57【環境依存OK】
http://pc11.2ch.net/test/read.cgi/tech/1216215558/
んじゃたらい回しとく。
0053デフォルトの名無しさん
2008/08/04(月) 09:12:500054デフォルトの名無しさん
2008/08/04(月) 09:13:510055デフォルトの名無しさん
2008/08/04(月) 09:50:25こんなソース書いてるようでは何とかできるレベルに程遠い訳だが、それすら理解できてないからなぁ・・・
0056デフォルトの名無しさん
2008/08/04(月) 09:55:51コード書きたくないんであればソフトウェア板に「作ってくださいスレ」があるし
ここはコード募集スレじゃないから
0057デフォルトの名無しさん
2008/08/04(月) 10:17:170058デフォルトの名無しさん
2008/08/04(月) 10:59:490059デフォルトの名無しさん
2008/08/04(月) 11:05:090060デフォルトの名無しさん
2008/08/04(月) 15:57:56そもそも>23の部分は>30で直してるんだけど。
全く学習する気が無い扱いされるのは心外。何とか出来る出来ない、じゃなくて今の所やる人間が自分しか居ないのだから。
まあ、つくってくださいスレ行くからいいけどさ。スレ見る限りじゃあっちのスレの方がこちらの需要に合ってるだろうし。
じゃあお邪魔しましたね。一応スレ混乱を招いたお詫び申し上げておくよ。
0061デフォルトの名無しさん
2008/08/04(月) 16:09:06もともとフックするためのDLLなのに、その中にコード書いてどうするんだ。
0062デフォルトの名無しさん
2008/08/04(月) 16:37:52何処がスレ違い。
元々は、
必要な機能があるが、コードを書く人間も居なければ頼めるところもない → 自分でやらざるを得ないのでど素人ながらも何とかそれっぽくして相談に来た
のだからスレ違いでも何でもないわけで。
結果としてより需要に合った、「頼める可能性のあるスレ」を紹介されたのでそちらに行く、といってどうして開き直りになるよ。
0063デフォルトの名無しさん
2008/08/04(月) 17:05:21| ̄``''- 、
| `゙''ー- 、 ________
| ,. -‐ ''´ ̄ ̄`ヽ、_ /
|, - '´ ̄ `ヽ、 /
/ `ヽ、ヽ /
_/ ヽヽ/
/ / / / / / ヽハ
く / /! | 〃 _/__ l| | | | | | | ||ヽ
\l// / | /|'´ ∧ || | |ー、|| | | l | ヽ
/ハ/ | | ヽ/ ヽ | ヽ | || /|ヽ/! |/ | ヽ
/ | ||ヽ { ,r===、 \| _!V |// // .! |
| || |l |ヽ!'´ ̄`゙ , ==ミ、 /イ川 |─┘
| ハ|| || | """ ┌---┐ ` / // |
V !ヽ ト! ヽ、 | ! / //| /
ヽ! \ハ` 、 ヽ、__ノ ,.イ/ // | /
┌/)/)/)/)/)/)/)/)/)/)lー/ ` ー‐┬ '´ レ//l/ |/
|(/(/(/(/(/(/(/(/(/(/│|| | \ 〃
r'´ ̄ヽ | |.ト / \
/  ̄`ア | | | ⌒/ 入
〉  ̄二) 知ってるが | | | / // ヽ
〈! ,. -' | | ヽ∠-----', '´ ',
| \| | .お前の態度が | |<二Z二 ̄ / ',
| | | _r'---| [ ``ヽ、 ',
| | | 気にいらない >-、__ [ ヽ !
\.| l. ヽ、 [ ヽ |
ヽ| \ r' ヽ、 |
ヽ、 |
0064デフォルトの名無しさん
2008/08/04(月) 17:08:13>>1
0065デフォルトの名無しさん
2008/08/04(月) 17:42:43一度そのウィンドウからカーソルを出すと、普通のカーソルに戻り、それからそのウィンドウの上にカーソルを持っていっても砂時計にはなりません。
ウィンドウクラスのhCursorにはNULLを入れています。
原因が予想できる方がいたら教えてください。
よろしくお願いします。
0066デフォルトの名無しさん
2008/08/04(月) 17:58:370068デフォルトの名無しさん
2008/08/04(月) 18:19:130069デフォルトの名無しさん
2008/08/04(月) 18:26:220070デフォルトの名無しさん
2008/08/04(月) 18:41:230071デフォルトの名無しさん
2008/08/04(月) 18:41:430072デフォルトの名無しさん
2008/08/04(月) 19:08:440073デフォルトの名無しさん
2008/08/04(月) 19:41:180074デフォルトの名無しさん
2008/08/04(月) 19:42:200075デフォルトの名無しさん
2008/08/04(月) 19:43:170076デフォルトの名無しさん
2008/08/04(月) 19:56:24クリックとして検知するならBUTTONDOWN+BUTTONUPにするかは状況次第
0077デフォルトの名無しさん
2008/08/04(月) 19:57:090078デフォルトの名無しさん
2008/08/04(月) 20:15:47メッセージの名称通り、コンテキストメニューを出すのに良いタイミングで送られてくるのに。
0079デフォルトの名無しさん
2008/08/04(月) 20:34:53大概そういう場合はAppキーにも対応する必要のある事が多い
というかその手のキーボード操作ができないソフトなんてゴミ
0080デフォルトの名無しさん
2008/08/04(月) 21:45:210081デフォルトの名無しさん
2008/08/04(月) 22:02:320082デフォルトの名無しさん
2008/08/04(月) 22:04:410083デフォルトの名無しさん
2008/08/04(月) 22:14:270084デフォルトの名無しさん
2008/08/04(月) 22:17:080085デフォルトの名無しさん
2008/08/04(月) 22:27:30あれってどうやって実装してるんですか?Win32APIとC言語だけでも実装できるんですか?
0086デフォルトの名無しさん
2008/08/04(月) 23:39:230087デフォルトの名無しさん
2008/08/05(火) 02:27:18SetScrollBarButtons(hwnd, SBB_BOTTOM | SBB_PLUS | SBB_MINUS, TRUE);
0088デフォルトの名無しさん
2008/08/05(火) 04:52:12お前氏ねよ
0089デフォルトの名無しさん
2008/08/05(火) 05:00:220090デフォルトの名無しさん
2008/08/05(火) 05:34:13>>87
要するに 自 作 し ろ ということ。
0091デフォルトの名無しさん
2008/08/05(火) 12:06:10あるいはuxthemeのテーマ描画API
0092デフォルトの名無しさん
2008/08/05(火) 12:10:38中身は一緒だけど単独で動作させたい場合とDLLとして動作させたい場合があるのです。
0093デフォルトの名無しさん
2008/08/05(火) 12:11:590094デフォルトの名無しさん
2008/08/05(火) 12:13:30009592
2008/08/05(火) 12:30:15それは考えましたが、単独実行用はexe一個にしたかったため別の方法を模索してました。
>>94
そうなんですか?
知りませんでした、色々と試してみます。
ありがとうございました。
0096デフォルトの名無しさん
2008/08/05(火) 13:31:24そのスピンコントロールの親ウィンドウにスクロールバーがあるんですが、
スクロールバーの動きを感知しようとして
WM_H(V)SCROLLメッセージを処理したら、
スピンコントロールを動かしても、WM_H(V)SCROLLメッセージが反応します。
WM_H(V)SCROLLメッセージが、
スクロールバーによるメッセージなのか、
スピンコントロールによるメッセージなのか、
区別する方法をご存知の方、教えて下さい。
0097デフォルトの名無しさん
2008/08/05(火) 13:40:460098デフォルトの名無しさん
2008/08/05(火) 16:50:410099デフォルトの名無しさん
2008/08/05(火) 16:55:590100デフォルトの名無しさん
2008/08/05(火) 17:21:180101デフォルトの名無しさん
2008/08/05(火) 17:25:490102デフォルトの名無しさん
2008/08/05(火) 17:40:090103デフォルトの名無しさん
2008/08/05(火) 17:41:170104デフォルトの名無しさん
2008/08/05(火) 17:46:29Platform SDKでいいんかな。
0105デフォルトの名無しさん
2008/08/05(火) 18:11:32になっているのですが、これはSetCommState()でdcb.BaudRateを設定するときCBR_115200を超えて好きな値を設定できるんですか?
CBR_のdefineがないので、230400を直接指定したのですが、SetCommStateでパラメータ異常になってしまいます。
通信速度230400を設定するにはどうすればいいんでしょうか?
0106デフォルトの名無しさん
2008/08/05(火) 18:36:19ツリービューにディレクトリ構造を表示させたいのですが
何かいいサンプルとか無いですか
0107デフォルトの名無しさん
2008/08/05(火) 18:44:48Windows Media Player 11 SDK
0108デフォルトの名無しさん
2008/08/05(火) 18:51:41できないからエラーリターンなんでしょ
0109デフォルトの名無しさん
2008/08/05(火) 18:56:01UART使ったほんとのCOMポートなら、ハードで上限決まるけど。
0110デフォルトの名無しさん
2008/08/05(火) 19:12:580111デフォルトの名無しさん
2008/08/05(火) 19:43:350112デフォルトの名無しさん
2008/08/05(火) 20:13:14になっているのですが、この関数の使い方の解釈は間違ってますか?
0113デフォルトの名無しさん
2008/08/05(火) 20:17:570114デフォルトの名無しさん
2008/08/05(火) 20:19:540115デフォルトの名無しさん
2008/08/06(水) 00:22:50プログラムで取り込みやすい形式になっているものがほしいんですが、
どなたかご存じないですか?
最悪,MSDNのWebページをパースするしかないですかね?
0116デフォルトの名無しさん
2008/08/06(水) 00:31:340117デフォルトの名無しさん
2008/08/06(水) 00:53:190118デフォルトの名無しさん
2008/08/06(水) 01:03:55大昔にradium softwareあたりで読んだけど
0119デフォルトの名無しさん
2008/08/06(水) 01:18:42win32api.csvって付かなくなったの?
0120デフォルトの名無しさん
2008/08/06(水) 02:56:340121デフォルトの名無しさん
2008/08/06(水) 04:59:560122120
2008/08/06(水) 09:16:02今チート対策研究中なんですが、オートマウス防止って難しいんだなあ。
0123デフォルトの名無しさん
2008/08/06(水) 09:40:380124デフォルトの名無しさん
2008/08/06(水) 10:45:17ありがとうございます。doxygenちょっと試してみます。
0125デフォルトの名無しさん
2008/08/06(水) 10:46:37XP以降になるけどRaw Input APIとかってどうなの?
0126デフォルトの名無しさん
2008/08/06(水) 12:24:31チートはされても問題ないシステムを作れ。つーか操作系はチートに分類すべきではないし基本的にブロックできない。
nProみたく頭の悪いことをしたら駄目だぞ。
0127デフォルトの名無しさん
2008/08/06(水) 12:38:470128デフォルトの名無しさん
2008/08/06(水) 13:14:10オンラインゲームでチートする馬鹿がいるからだろ
0129デフォルトの名無しさん
2008/08/06(水) 13:33:00正しいけど現実的じゃないような。
0130デフォルトの名無しさん
2008/08/06(水) 13:39:080131デフォルトの名無しさん
2008/08/06(水) 13:51:21チート御用達APIが一般アプリで使い放題というWindowsのセキュリティの甘さが問題
0132デフォルトの名無しさん
2008/08/06(水) 14:32:240133デフォルトの名無しさん
2008/08/06(水) 14:45:200134デフォルトの名無しさん
2008/08/06(水) 14:47:180135デフォルトの名無しさん
2008/08/06(水) 14:58:360136デフォルトの名無しさん
2008/08/06(水) 15:11:060137デフォルトの名無しさん
2008/08/06(水) 16:29:54そういえば、MAMEがRaw Input APIを使うようになって
JoyToKeyが使えなくなったという話を聞いたことがあるな。
0138デフォルトの名無しさん
2008/08/06(水) 17:15:360139デフォルトの名無しさん
2008/08/06(水) 17:18:410140デフォルトの名無しさん
2008/08/06(水) 17:38:17あれはComboBoxの機能だろ
0141デフォルトの名無しさん
2008/08/06(水) 18:59:42どうやら自分はサブクラス化とかわからないそうなので
ボンボボックスを代用したいと思います!
0142デフォルトの名無しさん
2008/08/06(水) 19:12:540点
0143デフォルトの名無しさん
2008/08/06(水) 19:14:12ワロスw
0144デフォルトの名無しさん
2008/08/06(水) 19:58:54そういう揚げ足取りいらないから。
0145デフォルトの名無しさん
2008/08/06(水) 20:01:330146デフォルトの名無しさん
2008/08/06(水) 20:51:42EN_SETFOCUSがきたらEM_SETSELするだけかと
0147デフォルトの名無しさん
2008/08/06(水) 21:04:55あげあしっていうか、ボンボでなけりゃスルーされたとこだけど、なにせボンボだからなぁ
0148デフォルトの名無しさん
2008/08/06(水) 21:16:350149デフォルトの名無しさん
2008/08/06(水) 21:56:58勝手に全選択されて、もう一度クリックしないといけないUIはイライラする
0150デフォルトの名無しさん
2008/08/06(水) 22:13:240151120
2008/08/06(水) 22:56:43>>123
それは考えてました。
判定に自分のセンスが試されそうな話ですね。
>>125
ざざっと調べてみましたが、使えそうな匂いがしますね。
これから詳しく調べてみます。
>>126
チートはされても問題ないシステムを作れ、との言葉、心に留めます。
今回はテーマが違うのであれですが。
0152デフォルトの名無しさん
2008/08/06(水) 23:32:24writefileで何を書き込めば良いんでしょうか?
createfileのときはドライブを開けば良いんですよね?
0153デフォルトの名無しさん
2008/08/06(水) 23:38:180154デフォルトの名無しさん
2008/08/06(水) 23:38:470155デフォルトの名無しさん
2008/08/07(木) 01:12:550156デフォルトの名無しさん
2008/08/07(木) 01:57:180157デフォルトの名無しさん
2008/08/07(木) 06:51:42rootkitのためのネイティブAPIのフックとか時間関係をいじれなくするためのAPIのフックとか、ソフトウェアからのキー入力をはじくためのフィルタドライバじゃね。
結果、サードパーティの特殊なハードが使えんし(6ボタン以上あるマウスとか自由に割り当て可能なキーのあるキーボードとか)
OSのバージョンがあがるたびにブルースクリーンだすような代物。
0158デフォルトの名無しさん
2008/08/07(木) 07:51:06子ウインドウ(ボタンやボックスなど)が多数存在する状況で、ウインドウ全体を再描画したいのですが、ちらついてしまいます。
まず子ウインドウの内容も全部まとめて一つのオフスクリーンに描画してからBitbltで画面に表示、ということが出来れば、と考えたのですが、方法が分かりません。
よろしければ方法を教えていただけないでしょうか。もしこの方法で無理なら、ちらつきを抑える代替案を挙げていただけないでしょうか。
よろしくお願いします。
0159デフォルトの名無しさん
2008/08/07(木) 07:56:20そもそもこういうの自体OSのバージョン上がった時にドライバ用意できないと動かない可能性高いが
0160デフォルトの名無しさん
2008/08/07(木) 09:09:48親にWS_CLIPCHILDRENをつければ、子をオフスクリーンに描く必要はないんでない
0161デフォルトの名無しさん
2008/08/07(木) 11:26:43Win32APIで、ゲームを作る上で必須な項目
ってなんですか?
自分で調べた結果必要だと思った↓
GDI描写、フォントとテキスト、入力処理、ウィンドウ操作、メニュー、ビットマップ、
アニメーション、を勉強しました。
他にこれはやったほうがいいよ、というのがあったら教えてください
Win32APIの基礎を覚えたらDirectXの勉強をしようと思います。
0162デフォルトの名無しさん
2008/08/07(木) 13:01:370163デフォルトの名無しさん
2008/08/07(木) 13:11:05気づいたときにはみんな大人になっていたというオチだ
0164デフォルトの名無しさん
2008/08/07(木) 13:26:40ファイルヘッダーを文字で表示することは出来たのですが、ここからどうしていいかが分かりません。
詳しい手順を教えてくれませんか?
0165デフォルトの名無しさん
2008/08/07(木) 13:37:59Gdiplus::Graphics g(hdc);
g.DrawImage(&img, 0, 0);
0166165
2008/08/07(木) 13:53:19ありがとうございます。
ただ、上手くいえないんですけど、そういうのって自分で書けないんですか?
CreateCompatibleDCとかLoadBitmapの中身が見てみたいんですけど、どこかで見れますか?
0167デフォルトの名無しさん
2008/08/07(木) 13:55:030168デフォルトの名無しさん
2008/08/07(木) 14:00:12それはそれで楽しいとは思うが実にはならないと思う
0169164
2008/08/07(木) 14:09:49紹介してもらったものを見てみましたが、自分には早すぎたみたいです。
何年後かに挑戦します。
0170デフォルトの名無しさん
2008/08/07(木) 17:03:200171デフォルトの名無しさん
2008/08/07(木) 17:05:020172デフォルトの名無しさん
2008/08/08(金) 00:46:48C++的には全然イケてないコードだったのは覚えてる
0173デフォルトの名無しさん
2008/08/08(金) 01:00:040174デフォルトの名無しさん
2008/08/08(金) 07:16:180175前スレVirAlloc相談者
2008/08/08(金) 07:51:49先ず、懸案の VirtualAlloc() などの件は無事終わった。いろいろに感謝。
チラ裏になるが、VirtualFree() の flag の指定が悪く、使った後の解放
が出来てなくて、5MBのJpeg写真を読み込んで、31MBのDIBを吐き出す操作
を27回繰り返すと、「この操作を行うにはメモリが足りません」とか宣
まわった。Jpeg解凍のDLLは、Dos時代から使っているソースから自分でコ
ンパイルしたもの。VirtualAlloc()関係のソース例は意外に少ない印象で
一時困ったが、お笑いなのは、自分のプログラム内にもう使用例があって
これで解決した次第。因みに、RamDisk操作で
//diskio.c Copyright (C) 1999-2003 K.Takata
#define AllocDiskIO(siz) VirtualAlloc(NULL, siz, MEM_COMMIT, PAGE_READWRITE)
#define FreeDiskIO(buf) VirtualFree(buf, 0, MEM_RELEASE)
がソースにあった。k.Takataさんに改めて感謝。
0176デフォルトの名無しさん
2008/08/08(金) 08:41:510177デフォルトの名無しさん
2008/08/08(金) 09:14:310178デフォルトの名無しさん
2008/08/08(金) 09:36:14前スレもそうだが、こいつって質問者を装って自己陶酔しまくった日記書いてるだけなんだよな
こういう自己中な奴ってリアルでも空気読めなくて周囲からウザがられてるんだろうな
0179デフォルトの名無しさん
2008/08/08(金) 09:44:38LSI86-C という脳内コンパイラについて教えてください。
0180デフォルトの名無しさん
2008/08/08(金) 11:33:140181デフォルトの名無しさん
2008/08/08(金) 11:41:36かまうなよ
かまう奴が居るからこの手のは居座る
0182デフォルトの名無しさん
2008/08/08(金) 11:42:100183デフォルトの名無しさん
2008/08/08(金) 11:47:43かまってほしくない人はレスしないでください
0184デフォルトの名無しさん
2008/08/08(金) 21:15:26#define APP_NAME TEXT("Sample_MainWindow")
typedef struct _ThreadParam {
HWND owner;
POINT point;
} ThreadParam;
DWORD WINAPI ThreadFunc(LPVOID vdParam){
HDC hdc;
RECT rect;
ThreadParam param;
_ThreadParam { の_って付けるとどういう意味があるんですか?
0185デフォルトの名無しさん
2008/08/08(金) 21:21:42構造体タグにそのような名前をつけるのはよくありません。
もしお読みの本かなにかにそのようなコードが載っているのであれば、
今すぐ窓から投げ捨ててください。
0186デフォルトの名無しさん
2008/08/08(金) 21:22:59焼き捨てるべきだ。
0187デフォルトの名無しさん
2008/08/08(金) 21:27:20専門学校の教科書なんですけど捨てるのはやばいので金庫に入れておきます。
学校で使うときに出します。
0188デフォルトの名無しさん
2008/08/08(金) 21:32:13人生終わったな。
悪いことは言わん。
今すぐやめてコンビニの店員にでもなるんだな。
0189デフォルトの名無しさん
2008/08/08(金) 21:36:39後の祭りですね・・・。
ゲームクリエイター学科なのにゲーム会社に就職は1割以下で
ほとんどが工場のベルトコンベアーの保守プログラム関係みたいです(最近知った)
愚痴ってすいません・・。
独学で勉強してがんばります!
それでは失礼します。
0190デフォルトの名無しさん
2008/08/08(金) 21:37:35typedef struct _FILETIME {
DWORD dwLowDateTime;
DWORD dwHighDateTime;
} FILETIME, *PFILETIME, *LPFILETIME;
Win32SDKのヘッダだってそうなってるんだが。
馬鹿じゃねーの?
0191デフォルトの名無しさん
2008/08/08(金) 21:38:20一応補足しとくと、
アンダースコア+(アンダースコア or 大文字) で始まる識別子は常に予約されている。
その他のアンダースコアで始まる識別子はファイルスコープで予約されている。
予約済み識別子を使用した場合の動作は未定義。
一般的な流儀として構造体タグは、
typedef struct ThreadParam_ { } ThreadParam; // お尻にアンダースコアつけるとか、
typedef struct tag_ThreadParam { } ThreadParam; // tag_ と書くとか、
typedef struct ThreadParam { } ThreadParam; // 何もつけない。
0192デフォルトの名無しさん
2008/08/08(金) 21:39:02ありがとうございます_の謎が少し理解できました
0193デフォルトの名無しさん
2008/08/08(金) 21:40:58学校なんて何も教えてくれないよ。就職斡旋するだけだからw
0194デフォルトの名無しさん
2008/08/08(金) 21:43:150195デフォルトの名無しさん
2008/08/08(金) 21:45:32処理系のために予約されているのだから処理系付属のライブラリが使用してもなんら問題はない。
0196デフォルトの名無しさん
2008/08/08(金) 21:56:18処理系付属のライブラリ=Win32SDKとでも言いたいのか
馬鹿丸出し
0197デフォルトの名無しさん
2008/08/08(金) 21:59:170198デフォルトの名無しさん
2008/08/08(金) 22:02:17MS自体そんな事なーんも考えてないのにねぇ
0199デフォルトの名無しさん
2008/08/08(金) 22:02:22コンパイラについてくるぐらいだから処理系付属といっても差し支えないだろ。
0200デフォルトの名無しさん
2008/08/08(金) 22:05:25処理系を作ったのと同じ組織が書いたコードが動作の未定義な部分を含んでいてもなんら差し支えない。
0201デフォルトの名無しさん
2008/08/08(金) 22:06:53こんなアバウトな俺様定義するくせにアンダースコアには拘るのか
0202デフォルトの名無しさん
2008/08/08(金) 22:13:440203デフォルトの名無しさん
2008/08/08(金) 23:28:35>#define FreeDiskIO(buf) VirtualFree(buf, 0, MEM_RELEASE)
あー、そのコードバグってますんで、以下のでよろしく。
#define FreeDiskIO(buf) VirtualFree(buf, 0, MEM_RELEASE | MEM_DECOMMIT)
0204デフォルトの名無しさん
2008/08/08(金) 23:39:00↓ ↓ ↓ ↓
0205デフォルトの名無しさん
2008/08/08(金) 23:43:19HCRYPTHASHオブジェクトは使いまわしていいのでしょうか?
CryptHashDataとかでハッシュ値生成して使い終わったら
一度CryptDestroyHashで開放すべきですか?
0206デフォルトの名無しさん
2008/08/08(金) 23:46:590207デフォルトの名無しさん
2008/08/08(金) 23:52:430208デフォルトの名無しさん
2008/08/08(金) 23:56:23リファレンス読めば理解できると分かっている
0209デフォルトの名無しさん
2008/08/09(土) 00:01:58>CryptHashData and CryptHashSessionKey cannot be called.
すみませんこの部分を見落としてました><;
どもです。
ちなみに>>207は私じゃないですw
0210デフォルトの名無しさん
2008/08/09(土) 00:09:260211デフォルトの名無しさん
2008/08/09(土) 00:12:39CreateWindow(Ex)
0212デフォルトの名無しさん
2008/08/09(土) 00:13:27そんなんじゃC++もたいしたレベルじゃねぇだろお前
ヒント:static
0213デフォルトの名無しさん
2008/08/09(土) 00:19:020214デフォルトの名無しさん
2008/08/09(土) 00:36:330215デフォルトの名無しさん
2008/08/09(土) 00:41:48ネット上の音声ファイルをソフト内で再生したいです。
0216デフォルトの名無しさん
2008/08/09(土) 00:45:450217デフォルトの名無しさん
2008/08/09(土) 00:46:450218デフォルトの名無しさん
2008/08/09(土) 00:52:160219デフォルトの名無しさん
2008/08/09(土) 00:52:570220デフォルトの名無しさん
2008/08/09(土) 00:55:040221デフォルトの名無しさん
2008/08/09(土) 00:57:210222デフォルトの名無しさん
2008/08/09(土) 01:00:02そういえばVC++6.0もあったのですが(使ってない)
やるなら何がいいのでしょう?
0223デフォルトの名無しさん
2008/08/09(土) 01:06:480224デフォルトの名無しさん
2008/08/09(土) 01:08:010225デフォルトの名無しさん
2008/08/09(土) 01:13:410226デフォルトの名無しさん
2008/08/09(土) 01:19:10俺の家にはたまたまVC6ProとVS2003ProとVS2005Proがあるけど
結局VC6しか使ってない
0227デフォルトの名無しさん
2008/08/09(土) 01:19:220228デフォルトの名無しさん
2008/08/09(土) 01:27:070229デフォルトの名無しさん
2008/08/09(土) 01:27:390230デフォルトの名無しさん
2008/08/09(土) 01:28:480231デフォルトの名無しさん
2008/08/09(土) 01:31:470232デフォルトの名無しさん
2008/08/09(土) 01:35:030233226
2008/08/09(土) 01:54:53VS2003ProとVS2005Proが学生の時にtheSpoke版が4kで買えて衝撃的だったんだが
今はDreamSparkなんてやってるんだよなぁ
もうMSが何をしたいのか分からなくなってきた・・・
0234デフォルトの名無しさん
2008/08/09(土) 01:56:420235デフォルトの名無しさん
2008/08/09(土) 01:58:450236デフォルトの名無しさん
2008/08/09(土) 02:05:21AC版でも学生がン万円出すのはそれなりにしんどいし、
そうして手に入れれば「よし頑張るぞー」って気持ちになれる
0237デフォルトの名無しさん
2008/08/09(土) 02:07:55手を出せなかったという人もいるんだろうけどなー
元々そんな奴は物になんねーよと言う意見は取り合えず置いといて
0238デフォルトの名無しさん
2008/08/09(土) 02:07:580239デフォルトの名無しさん
2008/08/09(土) 02:15:31ただでさえ無職ニートが多いこんなご時世に「いつかシェアウエアでガッポリ儲けてやる」とか
つまらない夢を抱く馬鹿が増えるだけ
0240デフォルトの名無しさん
2008/08/09(土) 02:33:40その馬鹿と同じ次元に居る奴にはつらいのかもしれんが
0241デフォルトの名無しさん
2008/08/09(土) 02:35:48もう死んでも治りそうに無いよ
0242デフォルトの名無しさん
2008/08/09(土) 02:49:430243デフォルトの名無しさん
2008/08/09(土) 02:56:590244デフォルトの名無しさん
2008/08/09(土) 10:57:281>リンクしています...
1>7.obj : error LNK2019: 未解決の外部シンボル __imp__timeGetTime@0 が関数 _ThreadFunc@4 で参照されました。
1>C:\Documents and Settings\****\My Documents\Visual Studio 2008\Projects\test\Debug\test.exe : fatal error LNK1120: 外部参照 1 が未解決です。
1>ビルドログは "file://c:\Documents and Settings\****\My Documents\Visual Studio 2008\Projects\test\test\Debug\BuildLog.htm" に保存されました。
1>test - エラー 2、警告 0
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
このエラーはどうやって直すんですか;;?
msimg32.libはリンカから追加しました。
0245デフォルトの名無しさん
2008/08/09(土) 11:03:14winmm ってライブラリは無い?
0246デフォルトの名無しさん
2008/08/09(土) 11:22:33追加したらできました
ありがとうございます
0247デフォルトの名無しさん
2008/08/09(土) 13:23:370248デフォルトの名無しさん
2008/08/09(土) 14:29:070249デフォルトの名無しさん
2008/08/09(土) 15:12:25貴方の気分を害したことを謝罪いたしますと同時に遺憾の意を表します。
誠に申し訳ございませんでした
0250デフォルトの名無しさん
2008/08/09(土) 15:35:530251デフォルトの名無しさん
2008/08/09(土) 16:12:190252デフォルトの名無しさん
2008/08/09(土) 16:41:06覚えたとは言えませんか?
0253デフォルトの名無しさん
2008/08/09(土) 16:46:170254デフォルトの名無しさん
2008/08/09(土) 16:47:480255デフォルトの名無しさん
2008/08/09(土) 16:48:00ペイントの方が一通りの要素が揃っている。
0256デフォルトの名無しさん
2008/08/09(土) 17:04:300257デフォルトの名無しさん
2008/08/09(土) 18:21:15傾斜・反転・回転以外はほぼGDIに丸投げっぽいし。
0258デフォルトの名無しさん
2008/08/09(土) 18:44:39どうして慇懃無礼なんでしょうか?
0259デフォルトの名無しさん
2008/08/09(土) 18:47:59俺のダチが世話になったな
今度群馬こいいい所紹介してやるからよ
0260デフォルトの名無しさん
2008/08/09(土) 21:08:00わろす
0261デフォルトの名無しさん
2008/08/09(土) 21:53:00詳しく言うと、
�@プログラムのボタンを押す
�A既定のブラウザで「ぬるぽ ガッ」という検索結果のページがブラウザが起動して結果が表示される
といった具合のものを作ろうと思っています。
既定のブラウザの取得方法は、
://www.atmarkit.co.jp/fdotnet/dotnettips/652getdefaultbrowser/getdefaultbrowser.html
でできましたが、その他ができません。
知恵を貸して頂けないでしょうか?
0262デフォルトの名無しさん
2008/08/09(土) 21:57:360263デフォルトの名無しさん
2008/08/09(土) 21:57:540264デフォルトの名無しさん
2008/08/09(土) 21:59:29こっちの方法でやればいいじゃんていうか.NETじゃん
0265デフォルトの名無しさん
2008/08/09(土) 21:59:46ShellExecute
0266デフォルトの名無しさん
2008/08/09(土) 22:04:39#include<windows.h>
int main(){
ShellExecute(NULL, "open", "http://www.google.co.jp/search?hl=ja&q=%E3%81%AC%E3%82%8B%E3%81%BD+%E3%82%AC%E3%83%83&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=", NULL, "", SW_SHOWNORMAL);
return 0;
}
0267デフォルトの名無しさん
2008/08/09(土) 22:06:16参考ページが.NETでしたね。
私の言語はPASCALです。
>>265
function ShellExecute(hWnd: HWND; // 親ウィンドウのハンドル
Operation : PChar // 操作
FileName : PChar // 操作対象のファイル
Parameters: PChar // 操作のパラメータ
Directory : PChar; // 作業ディレクトリ
ShowCmd : Integer)// 表示状態
: HINST;
ここでは操作がopen、ファイルがレジストリから取得したブラウザファイル、どこにそのアドレスを入れるのでしょう?
0268デフォルトの名無しさん
2008/08/09(土) 22:06:32クエリストリングのbtnGとか要らないんじゃね?
0269デフォルトの名無しさん
2008/08/09(土) 22:07:13っと私が打ち込んでいる間に・・・具体的なコードありがとうございます。
さっそく解決してしまいました。
ありがとうございました。
0270デフォルトの名無しさん
2008/08/10(日) 09:23:59これを VC++ で表現するならば
コントロール上にビットマップイメージを貼ってるだけに相当するんでしょうか?
よろしくお願いします
0271デフォルトの名無しさん
2008/08/10(日) 10:03:23Win32だとStatic Controlに相当するな。
IDEのダイアログエディタだと「Picture Control」と表記されているが、
これはダイアログリソース上の表現で、結局はStatic Controlが生成される。
0272デフォルトの名無しさん
2008/08/10(日) 11:24:30ありがとうございます
Static Control にスタイルが SS_BITMAP って感じですね
0273デフォルトの名無しさん
2008/08/10(日) 21:19:38SendMessageTimeout関数自体の戻り値に違いは出るのでしょうか?
お願いします。
0274デフォルトの名無しさん
2008/08/10(日) 21:21:460275273
2008/08/10(日) 21:24:47具体的にどういった違いなのでしょうか?
MSDNなどの資料には同じようなことしか書かれてなくて・・・
参考URLの掲示でもかまわないのでお願いします
0276デフォルトの名無しさん
2008/08/10(日) 21:29:03lpdwResultはSendMessageの戻り値相当じゃないか。
MSDNより
lpdwResult
1 個の DWORD 型変数へのポインタを指定します。関数から制御が返ると、この変数に、メッセージの処理結果が格納されます。意味は、送信したメッセージにより異なります。
戻り値
関数が成功すると、0 以外の値が返ります。
関数が失敗した場合や、タイムアウトが発生した場合は、0 が返ります。
0277デフォルトの名無しさん
2008/08/10(日) 21:29:13SendMessageTimeout の hwnd に無効なハンドルを入れた場合など
0278273
2008/08/10(日) 21:31:23なるほど納得がいきました
ありがとうございます
0279デフォルトの名無しさん
2008/08/10(日) 21:32:13pdwResultは送ったメッセージに対する戻り値。
メッセージを送った先のプロシージャが返した値。
SendMessageTimeoutの戻り値は、SendMessageTimeoutそのものの結果。
0280デフォルトの名無しさん
2008/08/11(月) 11:06:580281デフォルトの名無しさん
2008/08/11(月) 11:19:08つ GetClassInfo(Ex) で取得
0282デフォルトの名無しさん
2008/08/11(月) 13:52:411行または複数行,描画する場合はバックグランドDCに必要な文字を描画してから
画面を無効にしてWM_PAINTでBitBltを使い描画させる.
のバックグラウンドDCとは何を指してるのでしょうか?
直接画面DCに描画するのと、バックグラウンドDCを介して描画するのとでは
どのような違いがあるのでしょうか?
0283デフォルトの名無しさん
2008/08/11(月) 13:57:470284デフォルトの名無しさん
2008/08/11(月) 14:08:400285デフォルトの名無しさん
2008/08/11(月) 14:34:55掲示板の過去ログに載っていたので聞きようがありません。
>>284
今から調べてきます
0286デフォルトの名無しさん
2008/08/11(月) 15:54:00ちらつき防止でやってるだけ
直接DCに描画だと 消しているトコロ も目に見えちゃうからチラツク
0287デフォルトの名無しさん
2008/08/11(月) 19:45:180288デフォルトの名無しさん
2008/08/11(月) 21:36:18全然違うんじゃね?
GDI関数呼び出しをまとめて性能を上げるのと、一連の描きかけの絵を
バックバッファに描画しておいて描き終わったら前面をInvalidateRect
して(=WM_PAINT発生)からバックバッファから一気に転送(BitBlt)
するのでは見え方が違う。
>286 の言ってることが正解。さらに描画を1シーケンスで完了できない場合、
描画中の絵が見えないと言うメリットもある。
性能向上の方式ではないので性能あげたいならInvalidateRectの
範囲を描画更新したい場所に限定する必要があるし、そういうの
やりたいならGDIでなくDirectXで物理サーフィス×2面のFlipで
やるのが普通。
0289デフォルトの名無しさん
2008/08/11(月) 22:15:070290デフォルトの名無しさん
2008/08/11(月) 22:17:560291デフォルトの名無しさん
2008/08/11(月) 22:32:57最新のPCであっても、GDI関数で描画する時間は人間の一生のような
長い時間ってことが分からない素人かw
消しているトコロがリアルに人間に分からないように処理するには
液晶とグラボの垂直同期周期が60Hzとして、16.6666...msec 以内に
一連の描画処理を完了する必要があるけど?
もちろん一度もVSYNC跨がずに、だ。
0292デフォルトの名無しさん
2008/08/11(月) 23:24:410293デフォルトの名無しさん
2008/08/11(月) 23:30:170294デフォルトの名無しさん
2008/08/11(月) 23:40:15Windows標準のコントロールだって物によってはダブルバッファリングされてなくてちらつくけど誰もそんなの気にしてないし
0295デフォルトの名無しさん
2008/08/11(月) 23:42:13かかるでしょ。
・そのプロセスのプライオリティより高いスレッドやカーネルでの
より優先度の高い処理が行われる場合。
・そのプロセスのプライオリティより低いスレッドが一定周期で
ダイナミックブーストされる場合。
・そのプロセス自身が描画処理中に、HDD等の単一リソースにアクセスした場合。
・例えば1280x1024x32bit(フルカラー)の描画面(=5MBytes)をグラボに転送するのに、
DMA転送が使えなかった場合。
・使えたとしても、メモリと他のデバイス間で先にDMA転送の帯域を食いつぶされていた場合。
いくらでもある。292がMS-DOSでシングルタスクのプログラマか、カーネルの設計者と
いうなら謝るよ。ここWin32API質問箱なので勘違いしてた。
293は「もちろん一度もVSYNC跨がずに、だ。」を読み取ってくれたね。
0296デフォルトの名無しさん
2008/08/11(月) 23:44:45> 例えば1280x1024x32bit(フルカラー)の描画面(=5MBytes)をグラボに転送するのに
今時こんな描画にGDIなんて使わない
アンタだって暗にそう言ってるじゃん
> GDIでなくDirectXで物理サーフィス×2面のFlipでやるのが普通。
0297デフォルトの名無しさん
2008/08/11(月) 23:53:08こういうKYがいるとテスト工程が無駄に増えるよなw
0298デフォルトの名無しさん
2008/08/12(火) 00:00:55そうやってシステム見られない自称SEもいるね。
手戻り工数増えるんだよなw
後になって性能が出ない時に言い訳しないようにね。
0299デフォルトの名無しさん
2008/08/12(火) 00:09:350300デフォルトの名無しさん
2008/08/12(火) 00:11:580301デフォルトの名無しさん
2008/08/12(火) 00:21:400302デフォルトの名無しさん
2008/08/12(火) 00:25:250303デフォルトの名無しさん
2008/08/12(火) 00:25:46省略されて表示されているとき(例えば、あいう...)に、
その文字の上にカーソルを持っていくとツールチップが
表示されますが、これを無効に設定することはできない
のでしょうか?
0304デフォルトの名無しさん
2008/08/12(火) 00:36:49出来る。
0305デフォルトの名無しさん
2008/08/12(火) 00:46:450306デフォルトの名無しさん
2008/08/12(火) 01:26:44だと思うのですが、参考になるプログラムが
見つからなくて...
0307デフォルトの名無しさん
2008/08/12(火) 01:27:28なんで自分から動こうとしないんだよ
0308デフォルトの名無しさん
2008/08/12(火) 01:28:02普通にググれば見つかるのだが
0309デフォルトの名無しさん
2008/08/12(火) 10:19:12Version 5.80.
If a partially hidden label in any list view mode lacks ToolTip text, the list-view control will unfold the label.
If this style is not set, the list-view control will unfold partly hidden labels only for the large icon mode.
別に複雑な操作がいる訳でもなし
このくらい試してみようぜ
0310デフォルトの名無しさん
2008/08/12(火) 10:57:03猫でもをみたらちょっとだけメモリを消費するって書いてあったけど
タスクマネージャを見たけどあんまり変わってないっぽいけど
0311デフォルトの名無しさん
2008/08/12(火) 11:38:05確認したならそれを受け入れろ
0312デフォルトの名無しさん
2008/08/12(火) 13:35:460313デフォルトの名無しさん
2008/08/12(火) 13:40:120314デフォルトの名無しさん
2008/08/12(火) 15:00:59SetBkMode で OPAQUE 指定
{ SetBkColor して TextOut } を変えたい単位で分割呼び出し
複雑な背景をどうこうしたいなら
SetBkMode で TRANSPARENT 指定
先に背景を描画しきって
TextOut
0315デフォルトの名無しさん
2008/08/12(火) 15:58:29全プロセスにDLLにして注入ではなく、自プロセスのフックのみでやってる。適当なexeにDLLにして注入してもやっぱり違反。
他のAPIはフックできてる。環境はBCBなんだけど。
0316デフォルトの名無しさん
2008/08/12(火) 19:08:360317デフォルトの名無しさん
2008/08/12(火) 20:00:27俺VirtualProtectでやってるんだけど
WriteProcessMemoryのほうがいいわけ?
0319デフォルトの名無しさん
2008/08/12(火) 20:38:480320デフォルトの名無しさん
2008/08/12(火) 21:30:160321デフォルトの名無しさん
2008/08/12(火) 21:58:430322デフォルトの名無しさん
2008/08/12(火) 22:01:100323317
2008/08/12(火) 22:09:50俺別にエラーチェックしてないとは一言も言ってないんだがwwwww
>>320の言ってる通りアドレス違反で落ちてるんだから・・・・・
多分だけどやっぱ>>315はスタックオーバーフローしてるんじゃない?
GetProcAddressもあわせてAPIフックしてるならその辺を睨んだ方がよさげ
つーかコード掲示するかAdvancedWindowsのページがわからないと
これ以上なんともいえない
0324デフォルトの名無しさん
2008/08/12(火) 22:27:470325デフォルトの名無しさん
2008/08/13(水) 10:19:470326デフォルトの名無しさん
2008/08/13(水) 11:24:58どうやって選択範囲を計算してるのですか?
0327デフォルトの名無しさん
2008/08/13(水) 11:37:190328315
2008/08/13(水) 12:55:18なのに原因を見抜けるってのはもうすげぇな、感謝!例外は置き換えた関数が呼ばれたときにおきてた。
きちんとstdcallだってのを置き換え関数で宣言したら、うまく動くようになった。
BCBとかdelphiは標準だとcdeclとかfastcallとかだったっけ。
とにかくみんなサンクス!!
0329デフォルトの名無しさん
2008/08/13(水) 15:10:46キャレット位置をどうやって計算しているかわかりますか?
0330デフォルトの名無しさん
2008/08/13(水) 15:26:170331デフォルトの名無しさん
2008/08/13(水) 15:34:53クリック位置x.y座標取得
GetTextExtentPoint32関数で得られた文字列のサイズと比較していく、って事ですか?
0332デフォルトの名無しさん
2008/08/13(水) 19:09:190333デフォルトの名無しさん
2008/08/13(水) 20:11:50別プロセスからTCM_SETCURSELをSendMessageすると、タブの位置は
変化するものの、TCN_SELCHANGEなどの通知メッセージがアプリ側で
発生しないので、肝心の内容が置き換わりません。
仕方なく、別プロセスから続けてWM_NOTIFYを発生させる事を考えたのですが、
別プロセスからでは構造体(NMHDR)を渡すようなメッセージは
伝わらない様です。
別プロセスからうまくタブが変化した事を通知する方法はないでしょうか。
該当コード
SendMessage(htab, TCM_SETCURSEL, 3, 0);
{ NMHDR nmhdr;
nmhdr.hwndFrom = htab;
nmhdr.idFrom = GetDlgCtrlID(htab);
nmhdr.code = TCN_SELCHANGE;
SendMessage(hmain, WM_NOTIFY, GetDlgCtrlID(htab), (LPARAM)&nmhdr);
}
0334デフォルトの名無しさん
2008/08/13(水) 20:29:33WriteProcessMemory
0335デフォルトの名無しさん
2008/08/13(水) 20:41:43lpKey->type = INPUT_KEYBOARD;
inputKey[cnt].type = INPUT_KEYBOARD;
この -> と [ ].type はどう違うんですか?
0336デフォルトの名無しさん
2008/08/13(水) 20:53:59C言語スレ池
0337デフォルトの名無しさん
2008/08/13(水) 21:30:560338デフォルトの名無しさん
2008/08/13(水) 21:38:250339デフォルトの名無しさん
2008/08/13(水) 21:56:25分かりました。
0340デフォルトの名無しさん
2008/08/13(水) 22:14:10ありがとうございます。
できました。
かなり泥臭いですね・・
0341デフォルトの名無しさん
2008/08/14(木) 07:25:29あとディスプレイを2つつないでる環境でも、速度が結構落ちるんですが。
0342デフォルトの名無しさん
2008/08/14(木) 07:31:470343デフォルトの名無しさん
2008/08/14(木) 07:54:370344デフォルトの名無しさん
2008/08/14(木) 08:11:23典型的ゆとり発言
0345デフォルトの名無しさん
2008/08/14(木) 09:15:430346デフォルトの名無しさん
2008/08/14(木) 09:52:15ありがとうございました
0347デフォルトの名無しさん
2008/08/14(木) 11:19:44やっぱり教えてください
0348デフォルトの名無しさん
2008/08/14(木) 14:55:53気に入らない態度がお前の
0349デフォルトの名無しさん
2008/08/14(木) 15:50:410350デフォルトの名無しさん
2008/08/14(木) 17:42:44ありがとうございました
0351デフォルトの名無しさん
2008/08/14(木) 18:46:37_kbhitやPeekConsoleInputを試してみたのですが、リダイレクトされた場合に機能しないようです。
CreateFileでOVERLAPPEDが使えるかとも思ったのですが、Consoleでは無視されると説明されていて
実際試してもうまくいきませんでした。
0352デフォルトの名無しさん
2008/08/14(木) 19:22:580353デフォルトの名無しさん
2008/08/14(木) 19:41:47はグローバルで宣言しておくしかないですか?
0354デフォルトの名無しさん
2008/08/14(木) 19:48:42DialogBoxParam・CreateDialogParamの初期値で適当な構造体のポインタでも渡しとけ
0355デフォルトの名無しさん
2008/08/14(木) 20:00:22申し訳ありません、情報が足りませんでした。
入力がない間は他のことをしたいのです。
0356デフォルトの名無しさん
2008/08/14(木) 20:04:000357デフォルトの名無しさん
2008/08/14(木) 20:05:00出来ました。ありがとうございます
0358デフォルトの名無しさん
2008/08/14(木) 20:20:26元が*nixなコンソールプログラムの処理中に、
出来るだけ手を加えずにほんのちょっと通信したかっただけなんで
スレッド分けとかソケットは遠慮していたのですが、やはりそこまでやらないと駄目ですかね。
シグナルとかあればそれでもいいのですが。
0359デフォルトの名無しさん
2008/08/14(木) 20:40:50でお勧めのものがありましたら教えて下さい.
0360デフォルトの名無しさん
2008/08/14(木) 20:44:410361デフォルトの名無しさん
2008/08/14(木) 20:53:10これとか?
0362デフォルトの名無しさん
2008/08/14(木) 21:08:180363359
2008/08/14(木) 21:57:02自作ライブラリの参考にしたいので、
単純で解析しやすいのは無いでしょうか?
eGUI++は、相当頑張ればなんとか読めそうでしたが、
WTLの方は[!endif]とか変な記号があってわかりませんでした。
0364デフォルトの名無しさん
2008/08/14(木) 22:00:520365デフォルトの名無しさん
2008/08/14(木) 22:39:08STLSoft
0366デフォルトの名無しさん
2008/08/14(木) 23:43:56[!endif]はVSのプロジェクトテンプレートだろうがw
0367359
2008/08/15(金) 08:00:34があれば使えるようにできるといいなと思います。
つまり、リソースは使わずに、
マクロも極力避けるという感じで。
STLSoftも良さそうですね。
0368デフォルトの名無しさん
2008/08/15(金) 11:32:16system ('notepad.exe','abcde.txt');
↑これでメモ帳が開けるんだけど、
win32APIの観点から、なにか
アドバイスはありませんか?
0369デフォルトの名無しさん
2008/08/15(金) 11:42:450370デフォルトの名無しさん
2008/08/15(金) 12:23:23アドバイスって何よ
同じ事をしたいだけならShellExecute
0371デフォルトの名無しさん
2008/08/15(金) 13:47:360372351
2008/08/15(金) 22:39:32GetStdHandleなどで得たハンドルを直接WaitForSingleObjectに入れることが出来ます。
ただしそのままではKeyDownだけではなくKeyUpでもシグナル状態になってしまうため、
WaitForSingleObject+ReadFileまたはWaitForSingleObject+ReadConsoleの組み合わせだけではブロックします。
FlushFileBufferやCancelIOではキーボードイベントをフラッシュする事が出来ず、
他にフラッシュできそうなAPIを見つけることが出来ませんでしたので今回は採用を諦めます。
どうしても直接入力/リダイレクト両対応でノンブロッキングな標準入力を行いたい方は
シグナル状態になった際にPeekConsoleInputで無関係なシグナルを検出し、
その時だけReadConsoleInputでイベントを取り除いてください。
>>356さんの言うようにスレッド化するのも手だと思いますが、ブロックするのでスレッドを終了できなくなるはずです。
0373デフォルトの名無しさん
2008/08/15(金) 22:48:150374デフォルトの名無しさん
2008/08/16(土) 01:25:25指定するスタックサイズは皆さん「0」指定で使ってますか?
通常は「0」で問題は無いのでしょうが
もし仮に明示的なスタックサイズを指定している方がいれば
その利点などについて詳しく教えてもらえるとうれしいです。
0375デフォルトの名無しさん
2008/08/16(土) 01:46:410376デフォルトの名無しさん
2008/08/16(土) 01:49:05スタックがあふれるようなアルゴリズムが悪いんだが、やむを得ない場合があるかもしれない
・スタックを減らしてアドレス空間を節約する
スレッドを大量に作るとき、スレッド1個ごとに何MBも取ってると、アドレス空間の枯渇が早い
という利点は思いつくが、今のところ俺は0以外を指定したことはない
0377デフォルトの名無しさん
2008/08/16(土) 04:24:020378デフォルトの名無しさん
2008/08/16(土) 04:51:04アドレス空間足りねーよ。
0379デフォルトの名無しさん
2008/08/16(土) 12:18:140380374
2008/08/16(土) 12:24:45回答ありがとうございます。
>>376の言うとおりスタックを減らしてアドレス空間の
節約をした方がいいのか迷っていたので、
ほかの人の意見を聞いてみようと思って質問しました。
スレッドのスタックサイズに関しては特に意識する必要は無いという事ですね。
0381デフォルトの名無しさん
2008/08/16(土) 12:50:42現在keybd_eventを使用して実際のキー操作をシミュレートしようとしているのですが,
keybd_event( 'A', 0, 0, 0 );
のようなコードでは,実際にAをずっと押しているときのように,動作しません。
(例えば,テキストエディタをアクティブにしていたらAがいくつも入力される。
どうしたら,実際のキーボードを押しているように動作させることが出来るのでしょうか?
0382デフォルトの名無しさん
2008/08/16(土) 12:54:08最初は4KBぐらいしか確保されてなくて必要に応じて動的拡張されるとかじゃなかったっけ?
0383デフォルトの名無しさん
2008/08/16(土) 14:27:15対策もしくは代替手段て有りますか?
0384デフォルトの名無しさん
2008/08/16(土) 15:13:420385デフォルトの名無しさん
2008/08/16(土) 17:02:35ShellExecuteで、
notepad.exeを開きたい場合は
どう書けばいいの?
0386デフォルトの名無しさん
2008/08/16(土) 17:14:040387デフォルトの名無しさん
2008/08/16(土) 17:18:04試してみたら、確かにメモ帳が開きましたが、
それってShellExecuteで開いてるの?
0388デフォルトの名無しさん
2008/08/16(土) 21:23:53フックプロシージャの中からだとそういう制限は無かった気がする。
違ったらごめん。
>>387
ShellExecuteの中の人は、拡張子exeの関連付けに従ってプロセスを起動する。
何も特別なことはない。
0389デフォルトの名無しさん
2008/08/16(土) 21:52:03どういうAPIを使ってるのかは、それが仕様化されてるのでなければ
処理系の実装依存だろうな。
直接ShellExecuteを呼びたいのなら
ActivePerl Win32 API ShellExecute
とかでググれ。
それでわからなければPerlの人に訊け。
0390デフォルトの名無しさん
2008/08/16(土) 22:55:06真っ黒なDOSプロンプトが開いて、
そのDOS窓が残ったままで、
メモ帳も開く、という動作なのですが、
DOS窓が開かないで、
あるいは一瞬だけ開いて、
それでメモ帳が開く、というのを
するのに、shellexcuteを使えば
いいんでない?と思ったのですが、
違いますか?
0391デフォルトの名無しさん
2008/08/17(日) 00:09:09Perlが勝手にやってることなんだから、あっちで聞け。
0392デフォルトの名無しさん
2008/08/17(日) 06:24:19お前が勝手に聞いてろ
0393デフォルトの名無しさん
2008/08/17(日) 09:20:570394デフォルトの名無しさん
2008/08/17(日) 10:40:240395デフォルトの名無しさん
2008/08/17(日) 13:01:22active perl scriptを使えばいい
0396383
2008/08/17(日) 13:34:18フックプロシャージャ作って中でCDM_GETFILEPATH使っても
MAX_PATH以下になるようになってるみたいです。
CDM_GETFOLDERPATHやCDM_GETFOLDERIDLISTだと
フォルダまでがMAX_PATHであれば選択ファイル名を追加で
その分超えることは出来るみたいですがOKボタン押させて貰えない。
さらに深いフォルダにはアクセスさせてもらえないし
他の大半のアプリも触れない領域じゃ独自ダイアログにするほどのことでもない気がするので諦めます。
あとD&Dもメッセージが飛んでこないので駄目みたいです。
0397デフォルトの名無しさん
2008/08/17(日) 14:36:470398デフォルトの名無しさん
2008/08/17(日) 16:18:460399デフォルトの名無しさん
2008/08/17(日) 17:07:58チート厨は氏ね
0401デフォルトの名無しさん
2008/08/17(日) 17:33:55それでもBAN対象のゲームは多いはず
0402デフォルトの名無しさん
2008/08/17(日) 18:05:19ヒント
っKEYEVENTF_KEYUP
0404デフォルトの名無しさん
2008/08/17(日) 19:39:11シェルに依存しているコモンダイアログも必然的にMAX_PATHを超えられないのだろう
てかMAX_PATHを超えてしまうほど深い階層にファイル置くなよ
0405デフォルトの名無しさん
2008/08/17(日) 19:57:28「ユーザーがウィンドウサイズを変更している間は、WM_ERASEBKGNDメッセージを無効にする」
という処理を加えたいんですけれど、
処理の開始は、WM_NCLBUTTONDOWNメッセージを捕まえてそれで問題ありませんでした。
処理の終了(サイズ変更の終了)も、同様にWM_NCLBUTTONUPメッセージを捕まえれば良いのかと思ったんですが、
うまくいきませんでした。
この場合の、「ウィンドウサイズ変更が終了した」という情報を、
アプリケーションが取得するにはどうしたら良いでしょうか?
誰かご存知の人は教えてください。
0406デフォルトの名無しさん
2008/08/17(日) 20:03:490407デフォルトの名無しさん
2008/08/17(日) 22:22:33KEYEVENTF_KEYUPを引数としてキーが上がったということも書いているのですが,
>>400のやりたいことのように出来ません。。。
0408デフォルトの名無しさん
2008/08/18(月) 01:09:41実行ファイルのアイコンが指定通りに変わらず困っています。
WINDCLASSEX構造体には以下のように記述しています。
wcex.hIcon=(HICON)LoadImage(hInst,"ファイル名",IMAGE_ICON,
0,0,LR_DEFAULTSIZE|LR_LOADFROMFILE);
です。
リソースを使わずicoファイルにパスを通す方法で実現したいのですが、
表示されません。
hIconもNULLではない様なので問題ないと思うのですが・・・。
因みに、タイトルバーに表示される方は上手く表示されています。
ですので、ファイル名の指定でパスがおかしいということはないと
思います。
0409デフォルトの名無しさん
2008/08/18(月) 01:35:39実行ファイルのアイコンとかは何も変わらない
0410デフォルトの名無しさん
2008/08/18(月) 03:10:32exe のリソースに埋め込まれたアイコンの中で
一番番号の若い物が exe のアイコンになります
0411デフォルトの名無しさん
2008/08/18(月) 03:49:06そうだったんですか・・・。
前は普通にリソースで入れてたんで、気づきませんでしたが
そこに指定したらアイコンになるもんだと思ってました・・・。
>>410
409の方のを読んで色々と調べていたんですが、
やっぱり、リソースを埋め込むものなんですね。
>一番番号の若い物が exe のアイコンになります
知りませんでした・・勉強になります。
おかげさまで一応解決しました。
0412デフォルトの名無しさん
2008/08/18(月) 07:58:09タスクバーに表示されず
タスクトレイにアイコンを表示させるとこまできましたが、
タスクマネージャ−アプリケーションで見ると
タスクの欄にしっかり表示されてしまいます
他のアプリを見るとここには表示されていません
タスクマネージャ−アプリケーションに表示されないように
常駐アプリを作るにはどうすればいいですか
0413デフォルトの名無しさん
2008/08/18(月) 09:32:480414デフォルトの名無しさん
2008/08/18(月) 17:26:55PSHNOTIFY myLp={NULL,};
myLp.hdr.code = PSN_WIZNEXT;
SendMessage(hDlg,WM_NOTIFY,NULL,(LPARAM)&myLp);
↑のコードじゃ駄目なんですかねぇ??
case WM_NOTIFY:
LPPSHNOTIFY lppshN = (LPPSHNOTIFY)lp;
switch (lppshN->hdr.code){
...
}
↑のコードで、「戻る」「次へ」等のメッセージは取得できるので、
同様のメッセージを送ってみたのですが・・・。
ウィザードで、自動で次のページに移行させる方法
(「次へ」ボタンを押した場合と同じ効果を出す方法)
をご存知の方、ご教授下さい。
0415デフォルトの名無しさん
2008/08/18(月) 17:53:07MSDN読め
0416デフォルトの名無しさん
2008/08/18(月) 19:12:39入力送信後にSleep(100);とかしたらどうかに?
0417デフォルトの名無しさん
2008/08/18(月) 21:51:40WM_COMMAND投げたら?
0418デフォルトの名無しさん
2008/08/18(月) 22:37:30いれてみましたがだめでした><
0419デフォルトの名無しさん
2008/08/18(月) 23:03:290420デフォルトの名無しさん
2008/08/18(月) 23:12:330421デフォルトの名無しさん
2008/08/19(火) 13:21:090422デフォルトの名無しさん
2008/08/19(火) 13:30:320423 ̄ ̄ ̄ ̄ ̄ ̄V ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
2008/08/19(火) 13:33:11/ ̄ ̄ ̄ ̄\
( 人____)
|./ ー◎-◎-)
(6 (_ _) ) カタカタカタ
| .∴ ノ 3 ノ ______
ゝ ノ .| | ̄ ̄\ \
/ \__| | | ̄ ̄|
/ \___ | | |__|
| \ |つ |__|__/ /
/  ̄ ̄ | ̄ ̄ ̄ ̄| 〔 ̄ ̄〕
| | ̄
0424 ̄ ̄ ̄ ̄ ̄ ̄V ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
2008/08/19(火) 13:57:04( 人____)
|./ ー◎-◎-)
(6 (_ _) ) カタカタカタ
| .∴ ノ 3 ノ ______
ゝ ノ .| | ̄ ̄\ \
/ \__| | | ̄ ̄|
/ \___ | | |__|
| \ |つ |__|__/ /
/  ̄ ̄ | ̄ ̄ ̄ ̄| 〔 ̄ ̄〕
| | ̄
0425デフォルトの名無しさん
2008/08/19(火) 23:53:51またはタイマーIDかタイマー識別子を取得する方法があれば
KillTimerできるのでしょうけど・・・
0426デフォルトの名無しさん
2008/08/19(火) 23:58:51APIフック
0427デフォルトの名無しさん
2008/08/20(水) 00:02:400428デフォルトの名無しさん
2008/08/20(水) 00:03:23みたいに1バイト文字とマルチバイト文字が入り交じった文字列を、
1文字ずつのcharの固まりに分解したいんですが、
IsDBCSLeadByte でcharを1つずつ調べていくしかないでしょうか?
0429デフォルトの名無しさん
2008/08/20(水) 00:17:09別プロセスから、
タイマ停止させるためのメッセージ投げる。
それ受けたらタイマを止める。
0430デフォルトの名無しさん
2008/08/20(水) 00:19:00あるいはWideCharToMultiByteして1文字ずつMultiByteToWieeChar
0431デフォルトの名無しさん
2008/08/20(水) 00:20:58CharNextExA / CharPrevExA とか?
0432デフォルトの名無しさん
2008/08/20(水) 00:35:28>>431
どうもありがとうございます。
ググってみたところ、どっちも使えそうです。
>>430 はWideCharToMultiByteとMultiByteToWieeChar 逆ですよね。
0433デフォルトの名無しさん
2008/08/20(水) 02:28:26ITテスターで稼ぐための情報を交換するスレです。
☆派遣先は大企業じゃないと駄目です。中小だとテスターもプログラムの仕様が
わからないといけないとかテストプログラムを書けとか言われちゃいますよ。
大企業ならプログラムを触るだけのテスターでも大丈夫。
☆派遣先ではテスターはプログラムを触るだけでいい、
そんな空気を作っていきましょう。仕様書読んでください、
とか言われたら「なんでテスターが仕様書読むんですか」って食い下がって。
プログラムの仕様書を読んだり、テストの仕様書を書いたりするのは大変ですよ。
☆普通にプログラムを触ってテストしてると、何をテストしているのかわからない、
とか言い出す人、いるんですよ。プログラマとかってこういう人多いです。
そういう人は上司にあることないこと告げ口して追い出しちゃいましょ。
人事権のある人とは仲良くしておくことが大切。
☆納品して何かあったら大変だからとプログラムの仕様書を読んだり、
テスト仕様書を書いちゃうテスターがいますけど、
こっちもやることになるからすごく迷惑。
テスト結果の責任は担当の正社員にありますよね。
納品後のクレームは最終チェックを怠った正社員が悪いんだから
派遣は関係ないです。
0434デフォルトの名無しさん
2008/08/20(水) 02:32:010435デフォルトの名無しさん
2008/08/20(水) 03:06:310436デフォルトの名無しさん
2008/08/20(水) 03:24:130437デフォルトの名無しさん
2008/08/20(水) 04:24:170438デフォルトの名無しさん
2008/08/20(水) 07:00:22すくなくても、WaveDashは戻る。ここがWin32API質問箱である以上は。
0439デフォルトの名無しさん
2008/08/20(水) 07:17:190440デフォルトの名無しさん
2008/08/20(水) 07:26:08常に持ち続けるにはどうすればいいでしょうか。
0441デフォルトの名無しさん
2008/08/20(水) 07:46:26つ ttp://support.microsoft.com/kb/170559/ja
0442デフォルトの名無しさん
2008/08/20(水) 10:09:22スレッドの作成にCreateThreadが使用されていました。
スレッドはひとつしか作成されないのですが
そういう場合ならCreateThreadでもよいでしょうか?
_beginthreadに修正したほうがよいでしょうか?
0443デフォルトの名無しさん
2008/08/20(水) 10:14:14それだけで他人が判断できると思っているのなら、ヘルプの読み込みが全く足りない。
0444デフォルトの名無しさん
2008/08/20(水) 10:18:13ありがとうございました。
0445デフォルトの名無しさん
2008/08/20(水) 12:26:29CreateThreadでもいい。
0446デフォルトの名無しさん
2008/08/20(水) 12:30:190447デフォルトの名無しさん
2008/08/20(水) 12:47:320448デフォルトの名無しさん
2008/08/20(水) 13:08:50wininetのFindFirstUrlCacheEntryで、特定のキャッシュを探す場合、
第一引数のlpszUrlSearchPatternにどういったものを渡してやればいいのでしょうか。
ttp://msdn.microsoft.com/en-us/library/aa384026(VS.85).aspx (FindFirstUrlCacheEntry)
http://support.microsoft.com/kb/326201/ja
現状は、これを見ながらDeleteUrlCacheEntryの所を書き変えて検索していますが、
lpszUrl〜にURL文字列を直接渡してもnullを渡したときと動作が変わらず、毎回同じ順番で検索されてしまいます。
一応、言語はC#です。
0449440
2008/08/20(水) 13:56:170450デフォルトの名無しさん
2008/08/20(水) 20:21:51This parameter can only be set to "cookie:", "visited:", or NULL.
0451デフォルトの名無しさん
2008/08/20(水) 22:12:17日本語でおk
0452448
2008/08/20(水) 22:59:26ということは基本的に全数で探すしかないってことですか・・・。
それほど時間はかからないみたいなのでとりあえずこのままでいきます。
ありがとうございました。
0453デフォルトの名無しさん
2008/08/21(木) 00:30:000454デフォルトの名無しさん
2008/08/21(木) 01:41:28作成してるのですが、ユーザーがログインした段階で
Windowを作成しないと、コントロールなどの表示が崩れてしまうようです。
ユーザーがログインているかどうかを判定する方法があれば教えてください。
Windows XPです。
0455デフォルトの名無しさん
2008/08/21(木) 07:10:57もしかして一つのプログラムで全部やるつもりか?
HKLMのRunキーで起動したタスクトレイのプログラムがサービスと通信する、
というのが普通の作り方だと思うのだが。
0456デフォルトの名無しさん
2008/08/21(木) 08:25:06WebやAPI本とかの断片的な知識しかないので
できればその普通のやり方が載っている情報源を知りたいのですが。
MSのセミナーとかですか?
0457デフォルトの名無しさん
2008/08/21(木) 09:27:110458デフォルトの名無しさん
2008/08/21(木) 09:32:290459デフォルトの名無しさん
2008/08/21(木) 10:27:00やっぱり知ったかでしたか。
関係ない話を始めた段階から読めてました。
0460457
2008/08/21(木) 10:31:51ちなみに、サービスはNT4の頃から作ってる。
0461デフォルトの名無しさん
2008/08/21(木) 10:48:25ちなみに自己解決しました。
0462デフォルトの名無しさん
2008/08/21(木) 10:51:34わざわざ「デスクトップとの対話を許可する」がデフォルトでオフになっているわけがない。
0463デフォルトの名無しさん
2008/08/21(木) 10:53:270464デフォルトの名無しさん
2008/08/21(木) 10:54:140465デフォルトの名無しさん
2008/08/21(木) 10:57:22ウィンドウそのものを自分で作るようにはできてない。
無理やり後付けで作るのは勝手だが、普通じゃない。
0466デフォルトの名無しさん
2008/08/21(木) 10:58:44完全に知ったかの妄想なんだよ。
0467デフォルトの名無しさん
2008/08/21(木) 11:01:260468デフォルトの名無しさん
2008/08/21(木) 11:15:350469デフォルトの名無しさん
2008/08/21(木) 11:16:030470デフォルトの名無しさん
2008/08/21(木) 11:37:29ユーザーがログインているかどうかを判定する方法があれば教えてください。
0471デフォルトの名無しさん
2008/08/21(木) 11:47:320472デフォルトの名無しさん
2008/08/21(木) 11:54:220473デフォルトの名無しさん
2008/08/21(木) 11:55:57試さないとなんとも言えんな。
0474デフォルトの名無しさん
2008/08/21(木) 11:56:11サービスでって前提なかったら、GetUserNameでイイジャンって言われちゃうぜ?w
試してないけど、NetUserEnumで列挙してNetUserGetInfo
USER_INFO_2の最後のログオン/ログオフの時間取得してとかかなぁ
0475デフォルトの名無しさん
2008/08/22(金) 00:32:43プログラミングMicrosoft Windows 2000位読め
なぜWindowを持つサービスを作るべきでないかは読めば分かるから
0476デフォルトの名無しさん
2008/08/22(金) 08:05:360477デフォルトの名無しさん
2008/08/22(金) 11:48:400478デフォルトの名無しさん
2008/08/22(金) 11:51:320479デフォルトの名無しさん
2008/08/22(金) 14:40:460480デフォルトの名無しさん
2008/08/22(金) 14:48:060481デフォルトの名無しさん
2008/08/22(金) 15:29:09> ユーザーがログインているかどうかを判定する方法があれば教えてください。
これが質問内容だろ
「サービスについての質問」ではない
日本語が読めない奴は黙ってろ
0482デフォルトの名無しさん
2008/08/22(金) 15:31:30だってログインしているから
0483デフォルトの名無しさん
2008/08/22(金) 16:36:430484デフォルトの名無しさん
2008/08/22(金) 20:56:090485デフォルトの名無しさん
2008/08/22(金) 21:18:48ばーか
0486デフォルトの名無しさん
2008/08/22(金) 21:32:56なにが?w
0487デフォルトの名無しさん
2008/08/22(金) 21:43:410488デフォルトの名無しさん
2008/08/22(金) 22:05:08>>485は反例を一つ示せば>>484を完全否定できたのにね
これじゃ>>485の方が馬鹿に見える
0489デフォルトの名無しさん
2008/08/22(金) 22:06:370490デフォルトの名無しさん
2008/08/22(金) 22:10:44そのプログラムをタスクスケジューラに登録する場合はどうかな?
0491デフォルトの名無しさん
2008/08/22(金) 22:26:00タスクスケジューラは設定されたアカウントでログオンするよ。
0492デフォルトの名無しさん
2008/08/22(金) 22:34:00ユーザーのログインシェルがexplorer.exe以外の場合がある、
とか聞いたことある気がするけど、そんなケース無視しても良い気がするし。
>>484の方法でダメな場合って他に何かあったっけ。
0493デフォルトの名無しさん
2008/08/22(金) 22:48:470494デフォルトの名無しさん
2008/08/22(金) 23:21:25権限さえあれば取得できないわけがないと思うんだけど。
0495デフォルトの名無しさん
2008/08/22(金) 23:32:580496デフォルトの名無しさん
2008/08/22(金) 23:34:44http://www.atmarkit.co.jp/fwin2k/win2ktips/646logonuser/logonuser.html
プログラムでやる場合、やはりexplorer.exeの有無ぐらいしかないのかね?
0497デフォルトの名無しさん
2008/08/22(金) 23:51:24説明を読むと同じに見えるけど、違う値が返ってきて混乱してます。
0498デフォルトの名無しさん
2008/08/23(土) 00:03:54アンダー・オーバーハングに対応した文字だと違ってくるんじゃないかな。
0499デフォルトの名無しさん
2008/08/23(土) 00:46:12異常終了したらwinlogon.exeがexplorer.exeを再起動するぞ。
0500デフォルトの名無しさん
2008/08/23(土) 00:47:42タスクマネージャで終了したら再起動しない
0501デフォルトの名無しさん
2008/08/23(土) 01:02:590502デフォルトの名無しさん
2008/08/23(土) 01:19:260503デフォルトの名無しさん
2008/08/23(土) 01:45:23実際は通知領域の表示ができるかどうかの問題なわけよ。
だから、シェルとしてのexplorer.exeで判定するのが正しい。
あと、起動処理が終わったかどうか調べる必要があるのかもしれない。
WaitForInputIdle?
0504デフォルトの名無しさん
2008/08/23(土) 02:10:50ログオフ中はきちんとNULLが返るのかな?
適当な値が返ってきたらやだな。
0505デフォルトの名無しさん
2008/08/23(土) 02:49:50それならShell_NotifyIconが成功するまで適当な間隔で何度も呼び出せばいいだろ
そもそもXP以降はそうしろとMSのサイトにも載ってるし、ログオンとか関係ない話になる
0506デフォルトの名無しさん
2008/08/23(土) 07:53:52俺もなんか知らないけどWMIで取得できそうな気がする。
0507デフォルトの名無しさん
2008/08/23(土) 22:09:42それはWindowsが異常終了として扱わない。
explorer.exeが異常終了した場合はwinlogon.exe(MSGINA.DLL)がWlxStartApplicationで検出する。
そこでSHELLとしてのexplorer.exeが再度起動される。
0508デフォルトの名無しさん
2008/08/23(土) 23:08:460509デフォルトの名無しさん
2008/08/24(日) 01:15:500510デフォルトの名無しさん
2008/08/24(日) 01:19:59↑だからうぜーってば
0511デフォルトの名無しさん
2008/08/25(月) 18:46:42ミソギを兼ねて、つまんない質問を。
Debug バージョンで HeapFree() で落ちるのは、スタックなどの管理領域を
壊したからですか。一時メモリで取った領域でないところに書き込んでも、
運よく、そういう領域でないなら落ちませんか。それとも必ず落ちますか。
0512デフォルトの名無しさん
2008/08/25(月) 19:31:460513デフォルトの名無しさん
2008/08/25(月) 19:35:47普通はDebugランタイムのチェック対象ではないが
DebugランタイムがAPIフックするような開発環境ならその限りではない
0514デフォルトの名無しさん
2008/08/25(月) 19:54:21しかし運に頼ってプログラミングするのはやめてもらいたい
0515デフォルトの名無しさん
2008/08/25(月) 20:09:50バッファオーバーラン等は、ページ単位より細かくチェックが入るようになり、
HeapFree呼び出し時に例外(ブレークポイント)を発生させるようになった。
0516511
2008/08/25(月) 20:30:59>>514
Xp & VC++6.0 では落ちてなかったのに、Vista & VC++2008EE でだめになったからネ。
0517デフォルトの名無しさん
2008/08/25(月) 23:51:30ローカルエリア接続等で出ている送受信の総量などは
APIなどで所得出来るものですか?もし出来る場合どのようなAPIで可能
でしょうか?
0518デフォルトの名無しさん
2008/08/26(火) 00:13:06パスワード入力画面の最中は処理を行いたくないのですが、ログイン(?)したかどうかを調べることはできないでしょうか?
0519デフォルトの名無しさん
2008/08/26(火) 00:21:230520デフォルトの名無しさん
2008/08/26(火) 00:26:070521518
2008/08/26(火) 00:35:220522デフォルトの名無しさん
2008/08/26(火) 07:17:55http://www.geekpage.jp/programming/iphlpapi/
0523デフォルトの名無しさん
2008/08/26(火) 11:04:12それを取り出して複合したりといった処理を行いたいのですが、
なにかよいAPIやサンプルはありませんでしょうか。
0524デフォルトの名無しさん
2008/08/26(火) 11:15:080525デフォルトの名無しさん
2008/08/26(火) 11:17:04ttp://www.trustss.co.jp/
0526デフォルトの名無しさん
2008/08/26(火) 15:08:12MCEリモコン制御に対応させるためのsdkやらドキュメントの
手がかりってどの辺にありますでしょうか?
うまい検索単語が思いつかずに、開発とは関係ないページしか
引っかかりません
0527デフォルトの名無しさん
2008/08/26(火) 15:21:400528デフォルトの名無しさん
2008/08/26(火) 15:23:000529デフォルトの名無しさん
2008/08/26(火) 15:52:080530デフォルトの名無しさん
2008/08/26(火) 15:57:190531デフォルトの名無しさん
2008/08/26(火) 15:59:050532デフォルトの名無しさん
2008/08/26(火) 15:59:55DWORD PingToComputer(LPCTSTR HostAddress);
0533デフォルトの名無しさん
2008/08/26(火) 16:00:14ICMP プロトコル あたりでググればサンプルあるだろう
0534デフォルトの名無しさん
2008/08/26(火) 16:00:330535デフォルトの名無しさん
2008/08/26(火) 16:04:270536デフォルトの名無しさん
2008/08/26(火) 16:09:25IcmpSendEcho 居て XP も可能と書いてある
最新のは知らない
0537デフォルトの名無しさん
2008/08/26(火) 16:11:05いつものお前ららしくないぜ?
>>532-536
とりあえずさんくす。
何かその辺を調べてみますわ
0538デフォルトの名無しさん
2008/08/26(火) 16:24:210539デフォルトの名無しさん
2008/08/26(火) 16:25:230540デフォルトの名無しさん
2008/08/26(火) 16:26:46宣伝ご苦労様です
0541デフォルトの名無しさん
2008/08/26(火) 16:26:590542デフォルトの名無しさん
2008/08/26(火) 17:50:12ttp://download.microsoft.com/download/5/b/9/5b97017b-e28a-4bae-ba48-174cf47d23cd/MED001_WH06.ppt
0543デフォルトの名無しさん
2008/08/26(火) 21:38:10おおお!ありがとうございます!
0544デフォルトの名無しさん
2008/08/26(火) 22:03:51{
LPCTSTR lpszTxt = TEXT("猫でもわかるWindowsプログラミング");
HDC hdc;
hdc = GetDC(hWnd);
TextOut(hdc, 10, 10, lpszTxt, lstrlen(lpszTxt));
ReleaseDC(hWnd, hdc);
}
を張り付けても文字列が表示されないのはなぜでしょうか。
0545デフォルトの名無しさん
2008/08/26(火) 22:27:420546デフォルトの名無しさん
2008/08/26(火) 22:39:230547デフォルトの名無しさん
2008/08/26(火) 22:39:270548デフォルトの名無しさん
2008/08/27(水) 00:14:05IAT書き換えでWSARecvとrecvをフックしてみたんだけど、
どうやらフック先の関数が呼ばれていないみたいなんだ。
MessageBox表示だけのプログラムに割り込んで
MessageBoxをフックするのは出来たんでインジェ
クション部分に問題はないと思うんだけど…。
なんかアドバイスもらえませんか?
参考にしたサイト
ttp://ruffnex.oc.to/kenji/text/api_hook/
0549デフォルトの名無しさん
2008/08/27(水) 00:21:360550デフォルトの名無しさん
2008/08/27(水) 00:30:39Hookかけないとダメってことですか。
0551デフォルトの名無しさん
2008/08/27(水) 00:33:27あまり関係無いけど、その人の書いたこれ
ttp://ruffnex.oc.to/kenji/text/listexport/
DllMainの中でLoadLibrary呼び出すコードを出力してたのを思いだした。
0552デフォルトの名無しさん
2008/08/27(水) 00:36:18GetProcAddressもフックしてみては。
0553デフォルトの名無しさん
2008/08/27(水) 00:44:360554デフォルトの名無しさん
2008/08/27(水) 01:01:520555デフォルトの名無しさん
2008/08/27(水) 01:27:46>>552
GetProcAddressもフックして試してみます。
>>553
実装コード自体はiexplore.exeはもっていないんですね。
もう少し調べてみようと思います。
0556デフォルトの名無しさん
2008/08/27(水) 01:55:530557544
2008/08/27(水) 14:29:36ありがとうございます。
ウィンドウを生成した後にこのコードを載せたら
そのタイミングでは表示できるのに……
すぐに消えるのはなぜでしょうか。
できればもう少し詳しくお願いします。
0558デフォルトの名無しさん
2008/08/27(水) 14:57:54WM_CREATE の時点ではまだウィンドウが非表示だから
何描いても無駄。
0559デフォルトの名無しさん
2008/08/27(水) 15:00:140560デフォルトの名無しさん
2008/08/27(水) 15:14:130561デフォルトの名無しさん
2008/08/27(水) 15:55:23そして他のウィンドウを重ねると文字が消えると
0562デフォルトの名無しさん
2008/08/27(水) 16:07:24それが、Vistaだとなかなか消えないんだよねえ。
リサイズして描画範囲より小さくしてやるとか、最小ボタン押して戻すとかしないと消せなかった・・・
0563デフォルトの名無しさん
2008/08/27(水) 16:12:460564デフォルトの名無しさん
2008/08/27(水) 16:22:230565544
2008/08/27(水) 18:15:33このエラーで教えられながらいろいろ調べて
こんなに勉強になるとは思いませんでした。
もう一つ気になるエラーがあるのですが、
WM_PAINTの所で
hdc = BeginPaint(hWnd, &ps);
TextOut(hdc, 20, 20, (LPCTSTR)szStr, (int)strlen(szStr));
EndPaint(hWnd, &ps);
hdc = BeginPaint(hWnd, &ps);
TextOut(hdc, 90, 90, (LPCTSTR)szStr, (int)strlen(szStr));
EndPaint(hWnd, &ps);
とやると初めのTextしか表示されません。これはなぜなのでしょう。
0566デフォルトの名無しさん
2008/08/27(水) 18:17:48なんでBeginPaint と EndPaint は1回でおk
0567デフォルトの名無しさん
2008/08/27(水) 18:18:55デバイスコンテキストは無効領域の部分しか更新しない。
0568デフォルトの名無しさん
2008/08/27(水) 18:20:21BeginPaintとEndPaintは最初と最後に置くだけ。
一回のペアで無効領域(書き換えの必要な範囲)がなくなるから
2回目呼んでも書き換え範囲外になって何もかかない。
0569デフォルトの名無しさん
2008/08/27(水) 19:27:070570デフォルトの名無しさん
2008/08/27(水) 19:36:52DWIって何ですか?
0571デフォルトの名無しさん
2008/08/27(水) 19:50:060572デフォルトの名無しさん
2008/08/27(水) 20:02:110573デフォルトの名無しさん
2008/08/27(水) 20:51:18そして、またWM_PAINTが飛んできて無限ループするのですね。わかります。
0574デフォルトの名無しさん
2008/08/28(木) 01:30:33自分で考える力を養うためにしばらくそっとしてあげて!
0575デフォルトの名無しさん
2008/08/28(木) 01:56:180576デフォルトの名無しさん
2008/08/28(木) 03:00:520577デフォルトの名無しさん
2008/08/28(木) 21:13:250578デフォルトの名無しさん
2008/08/28(木) 23:16:23|`l`ヽ /ヽ/ <´`ヽ u ∨ u i レ' /
└l> ̄ !i´-) |\ `、 ヽ), />/ / 地 ほ こ
!´ヽ、 ヽ ( _ U !、 ヽ。ヽ/,レ,。7´/-┬―┬―┬./ 獄 ん れ
_|_/;:;:;7ヽ-ヽ、 '') ""'''`` ‐'"='-'" / ! ! / だ. と か
| |;:;:;:{ U u ̄|| u u ,..、_ -> /`i ! ! \ :. う ら
| |;:;:;:;i\ iヽ、 i {++-`7, /| i ! ! <_ の が
__i ヽ;:;:;ヽ `、 i ヽ、  ̄ ̄/ =、_i_ ! ! /
ヽ ヽ;:;:;:\ `ヽ、i /,ゝ_/| i  ̄ヽヽ ! ! ,, -'\
ヽ、\;:;:;:;:`ー、`ー'´ ̄/;:;ノ ノ ヽ| / ,、-''´ \/ ̄ ̄ ̄ ̄
 ̄ ̄ ̄ Y´/;:;:;\
0579デフォルトの名無しさん
2008/08/29(金) 00:38:270580デフォルトの名無しさん
2008/08/29(金) 00:43:58無理です
0581デフォルトの名無しさん
2008/08/29(金) 01:49:35例えばの話だが、
赤にする→文字を書く→緑にする→同じ位置に文字を書く
を目にも止まらぬ速さで繰り返せば理論上は黄色に見えるだろ。
ただポケモンショックでぶっ倒れても俺は知らん。
0582デフォルトの名無しさん
2008/08/29(金) 17:00:300583デフォルトの名無しさん
2008/08/29(金) 17:02:30差し替えた STARTUPINFO で 自アプリを CreateProcess して、自分自身は死ぬ とか?
0584デフォルトの名無しさん
2008/08/29(金) 17:06:470585デフォルトの名無しさん
2008/08/29(金) 17:55:23SetStartupInfo
0586デフォルトの名無しさん
2008/08/29(金) 17:58:380587デフォルトの名無しさん
2008/08/29(金) 18:08:44RTL_USER_PROCESS_PARAMETERS* p = (RTL_USER_PROCESS_PARAMETERS*)0x20000;
でアドレスが得られるから後は煮るなり焼くなり好きにしろ
0588デフォルトの名無しさん
2008/08/29(金) 18:21:31>>RTL_USER_PROCESS_PARAMETERS is located at address 0x20000 (for all processes created by call WIN32 API CreateProcess).
今はどのOSでもそうなのかもしれないが、将来はどうなるかわからん
まあ頑張れ
0589デフォルトの名無しさん
2008/08/29(金) 18:44:010590デフォルトの名無しさん
2008/08/29(金) 19:24:550591デフォルトの名無しさん
2008/08/29(金) 19:49:040592デフォルトの名無しさん
2008/08/29(金) 20:17:29方法がOS依存しようがそんな事どうでもいいだろ
0593デフォルトの名無しさん
2008/08/29(金) 21:40:15argvの書き換えが認められているから、こっちは許容されている感じがする……。
0594デフォルトの名無しさん
2008/08/29(金) 22:19:50TEXTMETRICのtmHeightじゃ高すぎて(上下の文字列と空間開きすぎ)
LOGFONTのlfHeightじゃ低すぎるんだけど(英語OSだとgとかpとかの下が切れた)
どうやったらいいのかな?
0595デフォルトの名無しさん
2008/08/29(金) 22:31:500596デフォルトの名無しさん
2008/08/29(金) 22:56:110597デフォルトの名無しさん
2008/08/29(金) 23:05:40そんなことでポケモンショックになるならDLPプロジェクタが発売禁止になってるて。
0598デフォルトの名無しさん
2008/08/29(金) 23:09:12やってみたら?
0599デフォルトの名無しさん
2008/08/29(金) 23:09:31TEXTMETRIC.tmHeightが開きすぎるように感じるのは、
むしろ日本語フォントが詰めて描画される傾向にあるから。
メイリオの話なら、それはフォント自体の仕様でそれが正常。
LOGFONT.lfHeightが低すぎるのは、
高さを決めたときのフォントと違うフォントで描画している。
とエスパーレスしてみる。
0600デフォルトの名無しさん
2008/08/29(金) 23:29:320601デフォルトの名無しさん
2008/08/30(土) 00:05:33CreateWindowで作ったウインドウの背景色を後から変更したら良い
0602デフォルトの名無しさん
2008/08/30(土) 00:25:41h ttp://winofsql.jp/VA003334/CprogSTD020726201337.htm
など
0604デフォルトの名無しさん
2008/08/30(土) 00:29:12コマンドで複数の引数を渡されるのではなく、開いた数だけプログラムが起動してしまうんだけど
これを何とか一つのプログラムで開けるようにできないですか?
0605デフォルトの名無しさん
2008/08/30(土) 00:32:28出来ます。
0606デフォルトの名無しさん
2008/08/30(土) 00:34:03mutex でググってみる?
0607デフォルトの名無しさん
2008/08/30(土) 00:34:120609デフォルトの名無しさん
2008/08/30(土) 00:39:40SetClassLong
0610デフォルトの名無しさん
2008/08/30(土) 01:40:31ExtTextOut使えとは流石に言わないけど。
0611デフォルトの名無しさん
2008/08/30(土) 02:09:48日本語OSだとMS UI Gothicで
外語OSだとMS Shell Dlgとかいうフォントがきてる
日本語OSだとLogFont.lfHeightはちょうどいい感じ
外語OSのときに狭い。tmHeightは広い。
lfHeightt+2か3くらいで出せるとよさげ。
tmExternalLeadingとかいうのが2できてるけど、
日本語だろうと外語だろうと関係なくきてるから根拠がわからん。
tmInternalは常に0だし(´・ω・‘)
情報が良くわかってなくてスマンコ
0612デフォルトの名無しさん
2008/08/30(土) 05:19:24昔はExtTextOut使った方が速かったんだけどね
0613デフォルトの名無しさん
2008/08/30(土) 09:03:08どーも。SetClassLongを使ったら無事できました。
0614デフォルトの名無しさん
2008/08/30(土) 10:03:19リッチエディットにアイコンまたはビットマップをテキストと混在させて
表示することはできるのでしょうか?
また、そのアイコンやビットマップをクリックしたことを検出することは
できるのでしょうか。
もし可能でしたら、参考になるサイトや資料へのポインタ等をお教えいただければ
ありがたいです。
0615604
2008/08/30(土) 12:11:09mutexで二重起動を防止しつつ既に起動しているなら
FindWindowでそのウィンドウを見つけてCOPYDATAメッセージでコマンド引数を渡し
読み込み、後起動のウィンドウを閉じる。
となりました。ありがとうございました。
0616デフォルトの名無しさん
2008/08/30(土) 12:58:30if(isFullScreen) { // フルスクリーン
int sw;
int sh;
// 画面全体の幅と高さを取得
sw = GetSystemMetrics(SM_CXSCREEN);
sh = GetSystemMetrics(SM_CYSCREEN);
画面全体の高さを幅を取得とありますが
今使っているディスプレイのサイズを取得するってことですか?
0617デフォルトの名無しさん
2008/08/30(土) 13:04:240618デフォルトの名無しさん
2008/08/30(土) 13:07:34シングルモニタの場合には解像度が得られる
マルチモニタ環境の時には思ってるものと違うものが返ってくるかもしれない
0619デフォルトの名無しさん
2008/08/30(土) 13:09:440620デフォルトの名無しさん
2008/08/30(土) 13:34:49リッチエディットにテキストとビットマップを混在させるのは可能。
ttp://www.codeguru.com/cpp/controls/richedit/article.php/c5383/
この辺が参考になるかと。
0621デフォルトの名無しさん
2008/08/30(土) 16:08:24自分自身を表すインデックスを取得するのにうまい方法は無いのでしょうか。
列挙するしか無いんですかね。
0622デフォルトの名無しさん
2008/08/30(土) 17:03:51WMI
0623デフォルトの名無しさん
2008/08/30(土) 17:26:42自分自身のプロセスのCPU使用率を取得したい、ということです。
>>622
すみません、ぐぐったのですが、具体的な方法が分かりませんでした、、、
0624デフォルトの名無しさん
2008/08/30(土) 20:34:180625デフォルトの名無しさん
2008/08/30(土) 21:31:17>ttp://www.codeguru.com/cpp/controls/richedit/article.php/c5383/
ありがとうございました。
同じ疑問を持った方のために要約しておきます。
リッチエディット(というよりもRTF)にテキストとビットマップを混在させるためには
1.MSDNの、"HOWTO: Insert a Bitmap Into an RTF Document Using the RichEdit Control"参照。
2.OLEを利用する。
3.IOleObjectを作成するために、ファイルからだと、OleCreateFromFile()が使える。
4.URLの先では、OleCreateStaticFromData()が用いられている。
もう一つの疑問であった、画像のクリックを判定できるかという問題ですが、
Oleなら当然ダブルクリックで再編集等の処理がかけるはずなので、可能ではないかと思われます。
0626デフォルトの名無しさん
2008/08/30(土) 23:08:20CreateCompatibleDCで取得したデバイスコンテキストを、アプリケーションが動いている間ずっと生かしておきたいのですが、
やはり終了時にはDeleteDCで開放しなくてはならないのでしょうか?
自作関数の中でstaticで宣言しているので、DeleteDCを呼ぶタイミングを作るのがすこし手間だなと感じているのです。
0627デフォルトの名無しさん
2008/08/30(土) 23:15:34APIとは無関係に、コンストラクタでDCを作成してデストラクタでDeleteDCするクラスAを作って
それをmain()の頭で作るなりstaticで作るなりすればいいんじゃないのか?
0628デフォルトの名無しさん
2008/08/30(土) 23:18:570629デフォルトの名無しさん
2008/08/31(日) 00:08:17レスありがとうございます。
せっかくcppで書いているので、デストラクタを作ることにします。
0630デフォルトの名無しさん
2008/08/31(日) 00:13:54DCの作成に失敗したらどうするんだよ
例外でも投げるのか?
0631デフォルトの名無しさん
2008/08/31(日) 02:09:56アプリケーションの作成に必ず必要みたいだからそれでもいいけど
気になるなら、作成してから登録すればいいんじゃないの?
int main(...) {
DCの作成
成功していたら、デストラクタでDCを破棄するオブジェクトをスタック上に作って登録。
}
0632デフォルトの名無しさん
2008/08/31(日) 02:11:23素直に例外投げればいいよ。
0633デフォルトの名無しさん
2008/08/31(日) 02:25:35>>630 が暗に言っているのは、コンストラクタ中で作成に失敗した結果例外を
投げるとデストラクタが呼び出されなくなることじゃないのか?
それを回避したいなら>>631ってことだろ。
0634デフォルトの名無しさん
2008/08/31(日) 02:36:19http://www.kijineko.co.jp/tech/superstitions/dont-throw-exception-from-constructor.html
そもそも、作成に失敗したものを開放できなくてもなんら問題ないだろ。
0635デフォルトの名無しさん
2008/08/31(日) 02:37:100636621
2008/08/31(日) 03:17:31どうも新しく同名のプロセスが起動したり終了したりするとインデックスが変わってしまうようです。
やっぱり確実な方法はWMIなのでしょうか、、、しかしなかなか情報が出てこない・・・orz
0637デフォルトの名無しさん
2008/08/31(日) 03:37:20中身読んでないから知らんけど
ttp://homepage1.nifty.com/kazubon/progdoc/tclock/sysinfo.html
0639デフォルトの名無しさん
2008/08/31(日) 04:02:24DCの作成時に例外はでないんだから、その頁に書かれているリークの回避と
631は同じことだろ。明示的なキャッチで破棄するか、unwindにまかせるかの
違いしかないと思うが。
最後まで必要なオブジェクトの寿命が管理できて、例外が送出されても
自然終了してもどちらでも削除忘れがなくて、try/catchの
コストまで場合によってはかからない。より良い気がするんだが。
そもそもコンストラクタから例外を出してもいいか悪いか、という話じゃないだろ。
〜だったら、という話がどうしてそんなところに行き着くんだ?
アンカーが 630への付け間違いなら、仰るとおり。
0640デフォルトの名無しさん
2008/08/31(日) 05:30:34GetProcessTimes で時間当たりのCPU時間消費量で求まる。
普通はこの方法だよ。
0641デフォルトの名無しさん
2008/08/31(日) 13:13:45CreateFile(m_szTempName, GENERIC_READ|GENERIC_WRITE, 0, NULL,
CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL|FILE_FLAG_RANDOM_ACCESS|FILE_FLAG_DELETE_ON_CLOSE, NULL);
でファイルを作成して、
SetFilePointer(m_hFile, 0, NULL, FILE_END);
WriteFile(m_hFile, lpBuffer, dwNumberOfBytesToWrite, &dwWriteLen, NULL);
FlushFileBuffers(m_hFile);
SetEndOfFile(m_hFile);
と書き込んで、この位置より前(ldOffset < EOF)を
SetFilePointer(m_hFile, (DWORD)(ldOffset & 0xffffffff), (LPLONG)&ldOffset, FILE_BEGIN);
ReadFile(m_hFile, lpBuffer, dwNumberOfBytesToRead, &dwReadLen, NULL);
で読み込むと、戻り値はすべて成功しますが、ReadFileでdwReadLenが0になり読めません。
なにがダメでしょうか。
0643デフォルトの名無しさん
2008/08/31(日) 14:18:08SetFilePointer
つーかエラー値調べろ
0644デフォルトの名無しさん
2008/08/31(日) 14:32:49SetFilePointerはWriteの前(追加しかしないので終端)と、readの前(開始位置)でしてます。
エラーは出てないですが、FileReadで1バイトも読めません。成功して0バイト(たぶんEOF)になります。
OSは、Vistaですが、Program Filesの下でもないです。
0645デフォルトの名無しさん
2008/08/31(日) 14:40:48> SetFilePointer(m_hFile, (DWORD)(ldOffset & 0xffffffff), (LPLONG)&ldOffset, FILE_BEGIN);
ldOffsetは64bit整数か?
リトルエンディアンだと (LPLONG)&ldOffset は上位DWORDを指してる事にはならないぞ。
0647デフォルトの名無しさん
2008/08/31(日) 16:00:012000以降で既に対応しているし。
0648デフォルトの名無しさん
2008/08/31(日) 19:53:47MS Shell Dlgの実体はたしかMS Sans Self。
レジストリに対応付けが書いてある。
0649デフォルトの名無しさん
2008/08/31(日) 21:10:420650デフォルトの名無しさん
2008/09/01(月) 01:06:37情報thx
見てみる
0651デフォルトの名無しさん
2008/09/01(月) 02:07:149xだとWindows NT→Windowsなのかな?
0652デフォルトの名無しさん
2008/09/01(月) 14:13:28そのーソース下され!
0653デフォルトの名無しさん
2008/09/01(月) 14:17:520654デフォルトの名無しさん
2008/09/01(月) 15:35:54つっても入力ダイアログ表示して戻り値で文字列返すだけだったと思うが
この程度だとソースも糞も無い
0655デフォルトの名無しさん
2008/09/01(月) 16:31:360656デフォルトの名無しさん
2008/09/01(月) 16:32:360657デフォルトの名無しさん
2008/09/01(月) 18:58:50移動先もファイル名まで指定しなければいけないようですけど、
移動先フォルダを渡すだけで済むAPI(名前を変えずに移動)は無いのでしょうか?
0658デフォルトの名無しさん
2008/09/01(月) 19:43:110659デフォルトの名無しさん
2008/09/01(月) 22:07:240660デフォルトの名無しさん
2008/09/02(火) 01:08:02そのコンソールの内容をWin32の起動元のアプリで受け取ることは
出来ますか?
0661デフォルトの名無しさん
2008/09/02(火) 01:11:140662デフォルトの名無しさん
2008/09/02(火) 01:20:590663デフォルトの名無しさん
2008/09/02(火) 02:34:35なんとなく出来そうです有難うございます
0664660
2008/09/02(火) 03:24:220665デフォルトの名無しさん
2008/09/02(火) 06:47:45Perlでコンソールアプリなら問題ないよ。
0666デフォルトの名無しさん
2008/09/02(火) 08:30:370667デフォルトの名無しさん
2008/09/02(火) 08:40:580668デフォルトの名無しさん
2008/09/02(火) 09:28:36IQ80でもわかるところがいいです。
0669デフォルトの名無しさん
2008/09/02(火) 10:00:48残念だが、IQ85ないとSetEventは理解できないんだわ。
0670デフォルトの名無しさん
2008/09/02(火) 10:18:42やっぱりそうですか・・・どこを見ても理解不能なのでorz
0671デフォルトの名無しさん
2008/09/02(火) 10:21:200672デフォルトの名無しさん
2008/09/02(火) 10:31:48使ったことあるけど、SetEventは無いや。
0673デフォルトの名無しさん
2008/09/02(火) 10:56:50「マルチスレッドプログラミング」 とか 「スレッド間」 「同期」 「通信」 あたりでググればそのうち巡りつく
0674デフォルトの名無しさん
2008/09/02(火) 11:17:43阿呆はマルチスレッドやプロセス間通信を使うべきではない
0675デフォルトの名無しさん
2008/09/02(火) 11:33:330676デフォルトの名無しさん
2008/09/02(火) 11:59:56いや、そういうのはスレッド使ってもロクでもないことになる可能性が
高いと思うが?
マルチスレッドの怖さは、外部にロックアップの原因となるイベント現を
持たない場合でもデザインが下手だとタイミング次第で固まる可能性が
あるってことさ。つまり、ちょっくら難しい。無論、悪ではない。
0677デフォルトの名無しさん
2008/09/02(火) 14:03:460678デフォルトの名無しさん
2008/09/02(火) 17:55:240679デフォルトの名無しさん
2008/09/02(火) 17:57:290680デフォルトの名無しさん
2008/09/02(火) 18:26:010681デフォルトの名無しさん
2008/09/02(火) 18:35:430682デフォルトの名無しさん
2008/09/02(火) 18:38:44それとも会心の一撃は会心の一撃なのでしょうか?
0683デフォルトの名無しさん
2008/09/02(火) 18:43:500684デフォルトの名無しさん
2008/09/02(火) 18:49:230685デフォルトの名無しさん
2008/09/02(火) 19:08:460686デフォルトの名無しさん
2008/09/02(火) 19:29:48昔、マルチスレッドをまともにテストするなら、
4CPUの環境を使えと書いてあるのを読んだことがあるな。
デュアルコア程度なら大丈夫だったコードも、コアが増え続けると厳しくなってくる予感。
アウトオブオーダーの罠とかも、あっさり踏んだりするようになるんだろうなあ。
0687デフォルトの名無しさん
2008/09/02(火) 19:45:26とある被所有型ウィンドウのプロセスが処理を終えるとウィンドウを最前面に出してくるのを無効化したいのですが、
WH_CBTのHCBT_ACTIVATEでウィンドウハンドル一致時にreturn 1返したり、
WH_CALLWNDPROCで同様にWM_WINDOWPOSCHANGING、WM_ACTIVATEの時にreturn 0にしても非アクティブ状態で最前面に出てきます。
Spy+で見る限りSetWindowPosでSWP_NOACTIVATEフラグでZオーダーのみ変更してるっぽいのですが、
どうしても指定プロセスと親に指定されたウィンドウが最前面に出させない方法が見つかりません。
最前面に出る時のSpy+のログは以下のような感じです。
WM_WINDOWPOSCHANGING>.WM_GETTEXT>WM_ERASEBKGND>WM_WINDOWPOSCHANGED
>WM_ACTIVATE(S)>.WM_SETFOCUS(S)>..WM_KILLFOCUS>.WM_SETFOCUS(R)>WM_WINDOWPOSCHANGING
>WM_PAINT(S)>.WM_ERASEBKGND>WM_PAINT(R)
(R):return, (S):send, 括弧無しは両方です。WM_TIMER等は省きました。
分かりづらい文章ですいません、、情報不足でしたら指摘していただけると幸いです。
フックのコードそのものは、殆ど猫でも〜の流用で動作自体は確認出来てます。
0688デフォルトの名無しさん
2008/09/02(火) 19:56:180689デフォルトの名無しさん
2008/09/02(火) 20:10:47XPの自動更新で再起動するかっていうダイアログを黙らせる方法みたいなもの?
[後で再起動する]を選んでも、しばらくすると、作業中に奴が出てきて妨害するから。
奴のせいで二回予期せぬ再起動をしたことがあるTT
0690687
2008/09/02(火) 20:22:06一応それも思いついてやってみました。
if(nCode == HC_ACTION){
if(wp == NULL){
pcwp = (CWPSTRUCT *)lp;
if(pcwp->message == WM_WINDOWPOSCHANGING){
lpwp = (WINDOWPOS *)lp;
lpwp->flags = SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE | SWP_NOZORDER;
}
}
}
return CallNextHookEx(hHook, nCode, wp, lp);
こんな感じにしましたが変化無しでした。(ウィンドウハンドル一致if文は省いて抜粋)
>>689
具体的に書くとTWAINウィンドウがスキャン後に最前面に出てくるって感じですね。
別のスキャナの時は勝手に出てくる事が無かったのでドライバ側が終了時に呼び出してると読んでるんですが。。
0691デフォルトの名無しさん
2008/09/02(火) 23:13:260692687
2008/09/02(火) 23:41:20確かそのようにどこかに記述があったので、
WM_WINDOWPOSCHANGINGやWM_ACTIVATEとハンドル一致の時だけreturn 0にしてみたのですが、ダメでした。
ちなみに、メッセージ条件にWM_PAINTを入れたら全ウィンドウ再描画がダメになったので止めました。orz
ウィンドウハンドルは一応メッセージボックス等で一致確認してあるんですが。。
0693デフォルトの名無しさん
2008/09/03(水) 00:34:14DefDialogProc使うべきなんですか?
0694デフォルトの名無しさん
2008/09/03(水) 00:56:33デフォルトの処理をさせたいときは0を返す
0695デフォルトの名無しさん
2008/09/03(水) 01:03:26昔(VC6の頃)はBOOL
最近(XP以降ぐらい?)はINT_PTR
つか、こういうの変えるなよなぁ
何のために大文字だらけのtypedefしてるんだか
0696デフォルトの名無しさん
2008/09/03(水) 05:23:23ちゃんと見てないんだけど、まさかフックして構造体を書き換えた後、
フックしたエントリーを呼び出してないよね?
ウィンドウを最前面に出すプロセスが、もう一度構造体を書き換えてるなんて
オチは・・・
0697デフォルトの名無しさん
2008/09/03(水) 11:24:190698デフォルトの名無しさん
2008/09/03(水) 11:35:160699デフォルトの名無しさん
2008/09/03(水) 13:03:33ソース公開されたらAPIの使い方の参考にしてみるか
0700デフォルトの名無しさん
2008/09/03(水) 13:12:42元MSの人にとってみれば得意分野だろうしなぁ。わくわく。
0701デフォルトの名無しさん
2008/09/03(水) 13:34:360702デフォルトの名無しさん
2008/09/03(水) 13:39:58ttp://msdn.microsoft.com/en-us/library/aa393936(VS.85).aspx
0703デフォルトの名無しさん
2008/09/03(水) 15:02:27API ってありますか。
EM_STREAMIN で Unicode 文書を読み込ませて、カーソルが出る前に画面を
クリックすると、「応答なし」になるんで、WAIT ポインタでも出して回避
したい。(時計も止まるんでそれを見ると 12 秒位かかっている。)
Vista SP1, 2.1GHz CPU, 2.0GB RAM です。文書は 450 KB 程度です。
0704デフォルトの名無しさん
2008/09/03(水) 15:32:15最初はChangeDisplaySettingsExでプライマリモニタにしたいモニタにCDS_SET_PRIMARYを指定すればいいと思ったのですが効果がありませんでした
次にプライマリモニタにしたいモニタ以外をデタッチした後、デタッチしたモニタをアタッチしなおしてみました
この場合、当然ですがデタッチした時点では目的のモニタがプライマリになっていたのですが、アタッチし直すと何故かデタッチする前にプライマリだったモニタがプライマリに戻ってしまいました
どこで道を誤ったのか、解決方法をご教示ください
0705デフォルトの名無しさん
2008/09/03(水) 17:08:41プライマリモニタを変更しようと思ったこと
0706デフォルトの名無しさん
2008/09/03(水) 18:03:36できれば、その解決方法もお願いします…
0707デフォルトの名無しさん
2008/09/03(水) 18:14:25プログラムで
0708687
2008/09/03(水) 18:52:31レス遅れました。大体以下のような感じです。最初から載せれば良かったですね。
上に有るとおり、構造体は修正出来ないので0を返してますが、それでも勝手に最前面に出てきますね。
プロセス自体が何をやってるのかが掴めたらもうちょっと何とかなるんですが。
HC_CBTでアクティブ化無効は出来たのだけど、Zオーダーのみ変更のメッセージらしく意味無しでした。。orz
ちなみにタイマーで実行ボタンをSendMessageで押すツールを使ってるとバグなのか、たまにぴたりと最前面に出てこなくなります。
if (nCode < 0 || nCode == HC_NOREMOVE) {
return CallNextHookEx(hHook, nCode, wp, lp);
}
if(nCode == HC_ACTION){
if(wp == NULL){
pcwp = (CWPSTRUCT *)lp;
if(pcwp->message == WM_WINDOWPOSCHANGING || pcwp->message == WM_ACTIVATE || pcwp->message == WM_SETFOCUS){
hw = FindWindow("__Canon_ScanGear_Main__", "ScanGear");
if(pcwp->hwnd == hw){
return 0;
}
}
}
}
return CallNextHookEx(hHook, nCode, wp, lp);
0709704
2008/09/03(水) 21:24:11スレ汚し申し訳ありませんでした
0710デフォルトの名無しさん
2008/09/03(水) 22:04:460711デフォルトの名無しさん
2008/09/03(水) 22:05:30CreateFileA、CreateFileMappingA、MapViewOfFileを使用してプロセス間での共有メモリの使用はできたのですが、
複数ユーザーでアプリケーションを実行し同じ共有メモリを使おうとするとCreateFileMappingAでエラー(ERROR_ACCESS_DENIED)が発生します。
どのようにパラメーターを指定すれば可能でしょうか?そもそもユーザー間で使用することは可能でしょうか??
0712デフォルトの名無しさん
2008/09/03(水) 22:07:26CreateFileA、CreateFileMappingA、MapViewOfFileを使用してプロセス間での共有メモリの使用はできたのですが、
複数ユーザーでアプリケーションを実行し同じ共有メモリを使おうとするとCreateFileMappingAでエラー(ERROR_ACCESS_DENIED)が発生します。
どのようにパラメーターを指定すれば可能でしょうか?そもそもユーザー間で使用することは可能でしょうか??
0713デフォルトの名無しさん
2008/09/03(水) 23:35:090714デフォルトの名無しさん
2008/09/03(水) 23:39:340715デフォルトの名無しさん
2008/09/03(水) 23:39:560716デフォルトの名無しさん
2008/09/03(水) 23:48:02プログラム中にでIPアドレスって変えれるんだよね?
0717デフォルトの名無しさん
2008/09/03(水) 23:52:420718デフォルトの名無しさん
2008/09/03(水) 23:55:540719デフォルトの名無しさん
2008/09/03(水) 23:55:570720デフォルトの名無しさん
2008/09/03(水) 23:55:580721デフォルトの名無しさん
2008/09/04(木) 00:02:01プライベートIPの話なのか、プロバイダから割り当てられたグローバルを変えたいのか、
やりたいことが全く説明されていない。
0722デフォルトの名無しさん
2008/09/04(木) 00:06:45同じサイトに違うIPで入りなおしたいんです
0723デフォルトの名無しさん
2008/09/04(木) 00:07:400724デフォルトの名無しさん
2008/09/04(木) 00:08:04>>720
ありがとうございます
0725デフォルトの名無しさん
2008/09/04(木) 00:10:29どの方法で取得されているのかによって変え方も変わって来る
そもそもそんな事すらわかってない奴にプログラムを書くのはとても無理
0726デフォルトの名無しさん
2008/09/04(木) 00:48:27プロバイダもうひとつ契約するとか外にサーバ借りて串置くとかしないと
0727デフォルトの名無しさん
2008/09/04(木) 01:20:41もう夏休みは終わったというのに
大学はまだだが
0728デフォルトの名無しさん
2008/09/04(木) 01:21:040729デフォルトの名無しさん
2008/09/04(木) 06:51:550730デフォルトの名無しさん
2008/09/04(木) 07:46:12EXEの場合ならCRTにダイナミックリンクする設定でビルドすればリークしない
0731デフォルトの名無しさん
2008/09/04(木) 07:52:250732デフォルトの名無しさん
2008/09/04(木) 07:53:020733デフォルトの名無しさん
2008/09/04(木) 08:24:280734デフォルトの名無しさん
2008/09/04(木) 08:49:00WM_TIMERとか
0735デフォルトの名無しさん
2008/09/04(木) 15:07:45strtokなんかは怪しいが、strcpyでリークするとも思えないし。
0736デフォルトの名無しさん
2008/09/04(木) 16:09:20スレッド生成/消滅時の作業とはまた別ではなかろうかと。
関数をスレッドセーフにする為の準備作業が全てではないだろうと予測するけど
_beginthread の中身見てみないとワカランよなぁ…
0737デフォルトの名無しさん
2008/09/04(木) 16:15:31ソースついてなかったっけ?
0738デフォルトの名無しさん
2008/09/04(木) 16:28:04ランタイムスタートアップ の ソース (crt0.c とかね)は付いてるのは見たけど
_beginthread の本体はソース付いてたっけ?
入口→ 最終的には CreateThread(Ex) →出口 となっているだろうけど
挟まれている部分で何やってるか次第だな
0739736
2008/09/04(木) 16:54:11ごめん VC6 には付いてた
CRT/thread.c と CRT/threadex.c
俺のスキルでは、追っかけて理解できるかどうかは怪しい
0740デフォルトの名無しさん
2008/09/04(木) 16:54:28CreateThreadExなんてあったか?
0741736
2008/09/04(木) 16:56:470742デフォルトの名無しさん
2008/09/04(木) 17:07:02ptd (per-thread data)がリークする
どのCRT関数が該当するかはソースを _getptd でgrepすれば分かる
リークするのが嫌ならCRTをダイナミックリンクにすれば済むので、
わざわざCreateThreadを避ける理由も無い
0743デフォルトの名無しさん
2008/09/04(木) 17:11:11わざわざ_beginthreadを避ける理由も無い
0744デフォルトの名無しさん
2008/09/04(木) 17:13:110745デフォルトの名無しさん
2008/09/04(木) 17:21:41_beginthread は
CreateThread に渡すコールバック関数で _getptd 〜 _freeptd で挟んでいる
CreateThread 単体呼び出し + CRTのダイナミックリンクだと
プロセス終了時に _calloc_crt で得たメモリを一気に返却するけど
スレッド作って終わってが頻発するようなやつだと あぶなくね?
0746デフォルトの名無しさん
2008/09/04(木) 17:22:19今どきのVCのCRTはDLLにしておくべきだろ。
VCのCRTのDLLは、DirectXのランタイムと違って、自由に同梱していいので、扱いは楽だし。
0747デフォルトの名無しさん
2008/09/04(木) 17:23:46スレッド終了時じゃないのか?
そのためのDLLだろ。
0748デフォルトの名無しさん
2008/09/04(木) 17:31:12最近のCRTはmanifestの関係でただ同梱するだけでは無理じゃなかったか?
そのせいか知らんがFirefox3は自前ビルドのCRTを用意してるみたいだが
0749デフォルトの名無しさん
2008/09/04(木) 17:32:16大変に申し訳ない
DLL_THREAD_DETACH で grep したら _freeptd あったわ
0750デフォルトの名無しさん
2008/09/04(木) 17:50:29話は逸れるけど、_beginthreadは勝手にCloseHandleしてくれるお節介付きだから、
_beginthreadexのほうがお勧めだよ。ラップすればCreateThreadと引数・戻り値同じにできるし。
0751デフォルトの名無しさん
2008/09/04(木) 18:15:060752デフォルトの名無しさん
2008/09/04(木) 19:10:020753デフォルトの名無しさん
2008/09/04(木) 19:15:45マルチメディアタイマ(timeSetEvent)、Waitable-timer、Timer-queueとかも。
他に何もするつもりがないなら、Sleep(120000)でループするのもあり。
受け狙いなら、Winsockのselect関数でfds全部NULLにしてタイムアウト待ち。
0754デフォルトの名無しさん
2008/09/04(木) 19:40:080755デフォルトの名無しさん
2008/09/04(木) 20:46:010756デフォルトの名無しさん
2008/09/04(木) 20:58:360757デフォルトの名無しさん
2008/09/04(木) 22:08:380758デフォルトの名無しさん
2008/09/04(木) 22:12:230759デフォルトの名無しさん
2008/09/04(木) 22:56:58OSがFlsAllocに対応してればそれでも結局は解放されるかな。
現実的には、XPが長生きするのでFlsAllocは当てにできないんだけど。
0760デフォルトの名無しさん
2008/09/04(木) 23:06:16挿しているJoyパッド n個全て独立して取り扱うとすると…
DirectInput のデバイス列挙で可変長個数 量的に突破する可能性があるかもないかも
0761デフォルトの名無しさん
2008/09/04(木) 23:07:58float.h inttypes.h iso646.h limits.h locale.h
math.h setjmp.h signal.h stdarg.h stdbool.h
stddef.h stdint.h stdio.h stdlib.h string.h
tgmath.h time.h wchar.h wctype.h
このへんを使わなければCreateThreadでもいいってことでおk?
0762デフォルトの名無しさん
2008/09/04(木) 23:12:12つうか、complex.hとか何時の時代だよ。
0763デフォルトの名無しさん
2008/09/04(木) 23:18:56FPエラー や シグナル C++例外ハンドラ を持っているんだよね
これ未初期化の状態で 例外発生したり、シグナル立ったりしたら どーなるんだろ?
0764デフォルトの名無しさん
2008/09/05(金) 05:24:34_getptdで同時に初期化も行ってるから問題ない。CRTのソース読め
てかダイナミックリンクすればCreateThreadとか_beginthreadexとか気にしなくて済むと何度も出てるだろうに
ランタイムの再配布権利が無いExpressEdition使ってる奴しかいないのか?
0765デフォルトの名無しさん
2008/09/05(金) 09:55:59いや 生成された新規スレッド側で CRT系未呼び出しの間のスキマの話
dllcrt0.c に DLL_THREAD_ATTACH ハンドリングしてなくて、_getptd 居ないのが気になるの
0766デフォルトの名無しさん
2008/09/05(金) 10:02:30ということで その詳細は気になるなら各自確認汁
0767デフォルトの名無しさん
2008/09/05(金) 10:48:33CRT関数が呼ばれてなければ未初期化とか関係ないだろうが
馬鹿ですか?
0768デフォルトの名無しさん
2008/09/05(金) 11:45:27スレッド作るときは、_beginthreadex 使え、以上。
って話じゃないの?
もの凄くコアの多いCPUで、もの凄く小さいスレッドを、
もの凄くたくさん作る場合で、オーバーヘッドが問題になるような
もの凄く特殊な場合を除いて、CreateThread を使わなければ
ならないようなシチュエーションはなさそうな気がするんだが。
0769デフォルトの名無しさん
2008/09/05(金) 11:55:040770デフォルトの名無しさん
2008/09/05(金) 12:03:020771デフォルトの名無しさん
2008/09/05(金) 12:28:292,028個/プロセス
ttp://msdn.microsoft.com/ja-jp/library/cc429080.aspx
0772デフォルトの名無しさん
2008/09/05(金) 13:10:01馬鹿は黙っててね
0773デフォルトの名無しさん
2008/09/05(金) 13:16:392032個まで作れたぞ。
DWORD i, d;
for(i=0; CreateThread(0,0,(LPTHREAD_START_ROUTINE)Sleep,(void*)INFINITE,0,&d); i++);
printf("%d\n", i);
0774デフォルトの名無しさん
2008/09/05(金) 13:42:16ひとつのスレッドにつき、MSVCのリンカーは、デフォルトで1MBのスタックサイズにするから。
32bitだと2GBだからな。
64bitコードならもっと作れるんじゃね?
0775デフォルトの名無しさん
2008/09/05(金) 13:45:44あと、C/C++でないので、CRTを使わない場合もCreateThreadにすると思う。
0776デフォルトの名無しさん
2008/09/05(金) 13:55:48馬鹿なんだからほっとけ
0777デフォルトの名無しさん
2008/09/05(金) 14:23:17それを外すにはどうすればいいですか?
Tabキー送信では隣の検索ボタンに移動してしまいますし…
0778デフォルトの名無しさん
2008/09/05(金) 14:25:020779デフォルトの名無しさん
2008/09/05(金) 15:24:49>>778
いやサイトによるでしょ?必ずしも検索サイト全てがTabキー押せば隣のボタンに移動って
限らない。
0780デフォルトの名無しさん
2008/09/05(金) 15:32:54JavaScript切ればいいだろ
0781デフォルトの名無しさん
2008/09/05(金) 22:01:44ゲームのロジックとか描画は別にスレッドを走らせて処理するんですか?
0782デフォルトの名無しさん
2008/09/05(金) 22:46:250783デフォルトの名無しさん
2008/09/05(金) 23:38:11PeekMessageでメッセージがあればそれの処理、メッセージがなければ1フレーム進めるという無限ループということ?
でもこれって移動用の方向キーを押しっぱなしにしてキャラを歩かせようとしたら
メッセージにWM_KEYDOWNが入りっぱなしになってゲームの処理がなかなか進まなくなるのでは?
0784デフォルトの名無しさん
2008/09/05(金) 23:39:40必要ないときは読み捨てればおk
0785デフォルトの名無しさん
2008/09/05(金) 23:44:45| ノ\ ヽ |
/ ●゛ ● | |
| ∪ ( _●_) ミ j
彡、 |∪| | J
/ ∩ノ ⊃ ヽ
( \ / _ノ | |
.\ “ /__| |
\ /___ /
0786デフォルトの名無しさん
2008/09/06(土) 00:04:260787デフォルトの名無しさん
2008/09/06(土) 00:07:11サンプルをコンパイルする程度しかやったことがないんだろうな
0788デフォルトの名無しさん
2008/09/06(土) 00:28:410789デフォルトの名無しさん
2008/09/06(土) 00:46:31Sleep(1);でも入れとけばいい
0790デフォルトの名無しさん
2008/09/06(土) 00:49:150791デフォルトの名無しさん
2008/09/06(土) 01:00:180792デフォルトの名無しさん
2008/09/06(土) 03:24:19全力で描画してどうするよ
0793デフォルトの名無しさん
2008/09/06(土) 03:41:13>>789
0794デフォルトの名無しさん
2008/09/06(土) 03:58:130795デフォルトの名無しさん
2008/09/06(土) 04:15:53?
0796デフォルトの名無しさん
2008/09/06(土) 08:49:360797デフォルトの名無しさん
2008/09/06(土) 08:56:09メッセージループで処理すると、その間ウインドウメッセージに反応出来ずに、
全く応答しない駄目アプリになる。
小規模なサンプルプログラムをいじっている程度なら気にならないが、
まともなものを作ろうとすると、そんな手法は使い物にならない。
0798デフォルトの名無しさん
2008/09/06(土) 09:03:480799デフォルトの名無しさん
2008/09/06(土) 09:06:44別スレッドでゲームループを回すの?
0800デフォルトの名無しさん
2008/09/06(土) 09:11:210801デフォルトの名無しさん
2008/09/06(土) 09:36:420802デフォルトの名無しさん
2008/09/06(土) 09:43:320803デフォルトの名無しさん
2008/09/06(土) 10:22:260804デフォルトの名無しさん
2008/09/06(土) 10:30:17小規模なものならメッセージループでやってもいいし、
負荷がかかるものならスレッドをわければいい。
0805デフォルトの名無しさん
2008/09/06(土) 11:23:50メッセージをwinmainで処理してゲームをスレッドで進めるのはどっちが素敵?
0806デフォルトの名無しさん
2008/09/06(土) 11:26:20後者
0807デフォルトの名無しさん
2008/09/06(土) 11:27:51マジレスすると、メッセージキューはスレッドごとに独立しているから、
ウインドウを作成したスレッド以外では処理できない。
0808デフォルトの名無しさん
2008/09/06(土) 13:23:130809デフォルトの名無しさん
2008/09/06(土) 13:24:550810デフォルトの名無しさん
2008/09/06(土) 14:01:100811デフォルトの名無しさん
2008/09/06(土) 15:45:13書き込みと書き込み、書き込みと読み込みだとやばいってのはわかるんだけど
読み込みと読み込みだったら別に安全な気がするんだけど、どうなんでしょう?やっぱりだめですか?
0812デフォルトの名無しさん
2008/09/06(土) 15:53:08安心しろ、大丈夫。
0813デフォルトの名無しさん
2008/09/06(土) 19:44:200814デフォルトの名無しさん
2008/09/06(土) 19:51:50volatileで十分w
0815デフォルトの名無しさん
2008/09/06(土) 19:59:300816デフォルトの名無しさん
2008/09/06(土) 22:17:28WM_SETTEXTメッセージのLPARAMが空になっていました。なぜなのでしょうか?
0817デフォルトの名無しさん
2008/09/07(日) 11:07:08細かい管理を考えなければHeapCleate(0, 0, 0)でいいってことでしょうか
0818デフォルトの名無しさん
2008/09/07(日) 12:12:54はい
0819デフォルトの名無しさん
2008/09/07(日) 14:03:100820デフォルトの名無しさん
2008/09/07(日) 14:31:59ちょっと玄人気取りで_endthreadexでスレッド終了してると、デストラクタ呼ばれないのな。
頭では分かっていたはずなのに、なんだこの体たらく。俺どんだけ素人なんだ・・
0821デフォルトの名無しさん
2008/09/07(日) 14:46:38アルファ付きPNGをアルファブレンドしながらウインドウと合成して表示するにはどうしたらよいでしょうか?
Win2000以降のレイヤードウインドウがそれかと思いましたが、
カラーキーを利用して一部のみをクリッピング?する、及び、
全体を透明度を指定して半透明化するサンプルしか見つかりませんでした。
0822デフォルトの名無しさん
2008/09/07(日) 14:48:58UpdateLayeredWindow
0823デフォルトの名無しさん
2008/09/07(日) 15:05:21thanx!!
UpdateLayeredWindowで32bit bitmapのDCを渡してやればいけそうです
0824デフォルトの名無しさん
2008/09/07(日) 16:04:34素直にreturnしなはれ
0825デフォルトの名無しさん
2008/09/07(日) 16:24:25TabCtrl_GetItemマクロで取得した時何故かTCITEM構造体のmaskメンバがとんでもなくでかい数に
なっています。表示等はされているのですが、どんな現象が起こっていると考えられるのでしょうか?
0826デフォルトの名無しさん
2008/09/07(日) 16:27:56debugビルドだと何も問題ないのにreleaseビルドになると作ったツールチップが上手く機能しない
Spy++で見てみるとreleaseだとツールチップのメッセージが全く無関係で親子関係のないツールチップから飛んできてるし
debugだと普通に自分で作ったツールチップから飛んできてるのに・・・
なんなんだこれは('A`)
0827デフォルトの名無しさん
2008/09/07(日) 18:05:57同じ処理を行なったときの時刻を求めたいと考えています。
GPSを用いて1msくらいの精度でPC間の時刻同期はできると思うんですけど
GetLocalTimeを用いてそれぞれのPCで特定の処理を行なった瞬間の時刻を求めても
10msくらいの精度でしか現在時刻を取得することができません。
timeGetTimeとかだと1ms精度のタイマとなるようですが
時刻を求めるような関数ではありません。
Windows上で、ms精度で現在時刻を求めるような方法ってありませんか?
0828デフォルトの名無しさん
2008/09/07(日) 18:12:20但し、精度はネットワーク品質に依存
0829827
2008/09/07(日) 18:29:27ありがとうございます。
時計合わせのほうはGPSを用いて1msくらいの精度は出せると思うんですけど
プログラム上での時刻取得の精度を上げたいと考えています。
0830デフォルトの名無しさん
2008/09/07(日) 18:39:26デバッグビルドで動作するがリリースビルドでこける現象の99%はワークの初期化忘れ。
0831デフォルトの名無しさん
2008/09/07(日) 18:40:15○>>826
×>>829
0832デフォルトの名無しさん
2008/09/07(日) 18:43:04ちょっとググってみたが、Windowsは15.625msか10.0144msおきの
クロック割込みで時刻を進めるという話ばかりだぞ。無理じゃないか?
>>828
SNTPじゃないNTPならネットワークの遅延も考慮して計算するはず。
0833デフォルトの名無しさん
2008/09/07(日) 18:44:37てか確保したメモリを自動的に0x00で埋めてくれるコンパイラオプションが欲しい
0834デフォルトの名無しさん
2008/09/07(日) 19:20:17short delta = GET_WHEEL_DELTA_WPARAM(wp);
if(delta > 0)
printf("UP!\n");
else
printf("DOWN!\n");
これでやるとホイールを上下どちらに動かしても常にDOWNしか取れません
正の値が上で負の値が下と思ってるんですが違うんでしょうか?
0835デフォルトの名無しさん
2008/09/07(日) 19:36:00GPSから時刻が得られるなら、GPSから得ればいいじゃないか。
0836デフォルトの名無しさん
2008/09/07(日) 19:51:2110MHz Outの出るGPSでをカウンタに突っ込むとか。
0837デフォルトの名無しさん
2008/09/07(日) 20:06:59ASSERT()にAPI突っ込んでいただなんて言えない・・・
0838デフォルトの名無しさん
2008/09/07(日) 20:18:040839デフォルトの名無しさん
2008/09/07(日) 20:18:300840デフォルトの名無しさん
2008/09/07(日) 20:51:530841デフォルトの名無しさん
2008/09/07(日) 21:44:510842デフォルトの名無しさん
2008/09/07(日) 22:36:28タブのマスクはTCIF_TEXTでは
0843デフォルトの名無しさん
2008/09/07(日) 22:36:470844デフォルトの名無しさん
2008/09/07(日) 22:45:18デバッグビルドで、0x00が格納されているならともかく、
0xccで埋められてるのに動作するってのは変じゃない?
0845デフォルトの名無しさん
2008/09/07(日) 23:01:34この「自分とは別のセッション」に任意のプロセスを生成することって出来ますか?
(CreateProcessにセッションIDを指定するようなイメージ)
よい方法があれば教えてもらえるとうれしいです
0846デフォルトの名無しさん
2008/09/07(日) 23:03:38俺はバッファオーバフローをおすね
0847デフォルトの名無しさん
2008/09/07(日) 23:18:18少々はみ出して書き込みしても大丈夫だけど。
リリースビルドだと、モロ、他の変数の値を破壊してしまうから、
だったかな。
0848デフォルトの名無しさん
2008/09/07(日) 23:21:42シグネチャを埋め込んであるもんだと思ったが
DEADBEEFとか
0849デフォルトの名無しさん
2008/09/07(日) 23:26:40cc をうっかり「実行」するとブレークするから cc で埋めるんだよ
0850デフォルトの名無しさん
2008/09/07(日) 23:32:180851デフォルトの名無しさん
2008/09/08(月) 00:08:03DeviceIoControlを使用して、
FSCTL_LOCK_VOLUME
IOCTL_DISK_SET_DRIVE_LAYOUT
IOCTL_DISK_VERIFY
FSCTL_UNLOCK_VOLUME
の順番で実行させてみましたがIOCTL_DISK_VERIFYが失敗し上手く作成できませんでした。
CreateFileでのデバイスハンドルは正常に取得出来ています。
また削除の方は、着手出来ていませんが
FSCTL_DISMOUNT_VOLUMEを使用すれば良いのでしょうか?
サンプルソースの情報などありましたらよろしくお願いいたします。
0852デフォルトの名無しさん
2008/09/08(月) 01:16:30CreateProcessAsUserとかCreateProcessWithLogonWとかでどぉ?
0853デフォルトの名無しさん
2008/09/08(月) 05:42:29どうもです
まだ試してないのですが
サービス経由で当該セッションのwinlogon.exeのトークンを取得してCreateProcessAsUser
で出来るみたいです
0854デフォルトの名無しさん
2008/09/08(月) 07:00:20ヒント:AUTO変数
0855デフォルトの名無しさん
2008/09/08(月) 08:31:00わが国のITはユーザに使用法を十分説明する時間がありません。
このため、初心者がベテランに疑問についてたずねる光景を目にすることがあります。
しかし本来は事故(情報漏えいなど)が発生した場合の責任は、
接続業者、サーバ運営者、システムを開発したエンジニアにあります。
メーカあるいは購入店にたずねるべきです。
利用者の仕事は自治(掲示板の秩序を守ること)です。助言を行ってはなりません。
素人が専門技術に言及するのは「親切」ではありません。「無責任」です。
海外のプロフェッショナルは、「私の仕事ではない」と答えるはずです。
0856デフォルトの名無しさん
2008/09/08(月) 08:36:140857デフォルトの名無しさん
2008/09/08(月) 12:44:30リリースビルドでも式を評価だけはするVERIFYってなかったっけ
あれはMFCか?
まあ無ければ自分で書きゃいいんだが
0858デフォルトの名無しさん
2008/09/08(月) 12:45:430859デフォルトの名無しさん
2008/09/08(月) 13:30:370860デフォルトの名無しさん
2008/09/08(月) 14:13:520861デフォルトの名無しさん
2008/09/08(月) 14:18:280862デフォルトの名無しさん
2008/09/08(月) 14:31:110863デフォルトの名無しさん
2008/09/08(月) 14:35:470864デフォルトの名無しさん
2008/09/08(月) 14:54:310865デフォルトの名無しさん
2008/09/08(月) 14:55:490866デフォルトの名無しさん
2008/09/08(月) 14:57:050867デフォルトの名無しさん
2008/09/08(月) 15:02:21HBITMAP hBackScrBMP, hFormerBMP;
ダブルバッファリングでアニメーションさせたいんですが
流れは↓見たいな感じで間違いないでしょうか?
hForeScrDC = GetDC(hWnd);
hBackScrDC = CreateCompatibleDC(hForeScrDC);
hBackScrBMP = CreateCompatibleBitmap(hBackScrBMP, width, height);
hFomerBMP = (HBITMAP)SelectObject(hBackScrDC, hBackScrBMP);
while(アニメーション中){
// hBackScrDCに描画
BitBlt(hForeScrDC, x, y, width, height, hBackScrDC , 0, 0, SRCCOPY);
}
SelectObject(hBackScrDC, hFormerBMP);
DeleteObject(hBackScrBMP);
DeleteDC(hBackScrDC);
ReleaseDC(hWnd, hForeScrDC);
0868デフォルトの名無しさん
2008/09/08(月) 15:04:01ダブルバッファリングでアニメーションさせたいんですが
流れは↓見たいな感じで間違いないでしょうか?
HDC hForeScrDC, hBackScrDC;
HBITMAP hBackScrBMP, hFormerBMP;
hForeScrDC = GetDC(hWnd);
hBackScrDC = CreateCompatibleDC(hForeScrDC);
hBackScrBMP = CreateCompatibleBitmap(hBackScrBMP, width, height);
hFomerBMP = (HBITMAP)SelectObject(hBackScrDC, hBackScrBMP);
while(アニメーション中){
// hBackScrDCに描画
BitBlt(hForeScrDC, x, y, width, height, hBackScrDC , 0, 0, SRCCOPY);
}
SelectObject(hBackScrDC, hFormerBMP);
DeleteObject(hBackScrBMP);
DeleteDC(hBackScrDC);
ReleaseDC(hWnd, hForeScrDC);
0869デフォルトの名無しさん
2008/09/08(月) 15:36:15エンターが押されたら次のコントロールに移動するようにしたいのですが
日本語変換して決定するときのエンターも取得されてしまいます。
今はフック関数の中でエンターが押されたかどうかで調べていますが
変換決定のエンターと移動する際に押すエンターを区別する方法はありますか?
.net2003 C++
0870デフォルトの名無しさん
2008/09/08(月) 15:45:190871デフォルトの名無しさん
2008/09/08(月) 16:21:29ありがとうございました。
0872デフォルトの名無しさん
2008/09/08(月) 16:54:020873デフォルトの名無しさん
2008/09/08(月) 17:05:46これのアンインストーラを自前で用意するんですが、AppData内のデータを削除するのに
例えばユーザーA・B・Cの3人がこれを使っていたとして、Aがアンインストールを実行すると、
A\AppDataはCSIDLでAppDataを拾えば消せますけど、B\AppDataやC\AppDataは簡単には
消せない(簡単にパスが拾えない)と思います。
これは自前で各ユーザーを列挙し、そのフォルダを消すように実装するしかないでしょうか?
アンインストーラは管理者権限を必要とさせますので削除権限は問題ないと考えられます。
WindowsInstallerのAPIなどにはこういう処理に対応するものがあるんでしょうか。
0874デフォルトの名無しさん
2008/09/08(月) 17:16:060875デフォルトの名無しさん
2008/09/08(月) 17:39:00再インストールのたびに初期化されたらたまらんw
0876デフォルトの名無しさん
2008/09/08(月) 23:53:24CreateCompatibleBitmapの引数がおかしい。
0877デフォルトの名無しさん
2008/09/09(火) 01:29:470878デフォルトの名無しさん
2008/09/09(火) 01:35:430879デフォルトの名無しさん
2008/09/09(火) 02:53:04ベンダーと組んで
専用マウス強制販売
それ以外はシャットアウト
0880デフォルトの名無しさん
2008/09/09(火) 03:14:59現在、__beginthreadを用いてスレッドを生成するユーティリティクラスを作り使用しています
これによって生成された任意のスレッド内でメモリアクセス違反などの例外が発生した場合に
SEHにて捕捉したいのですがどのようにすればいいのでしょうか?
0881デフォルトの名無しさん
2008/09/09(火) 07:29:41_beginthread や _beginthreadex なら見つかったが。
0882デフォルトの名無しさん
2008/09/09(火) 12:37:58普通にスレッド関数内で何とかすればいいだろ
0883デフォルトの名無しさん
2008/09/09(火) 12:49:210884デフォルトの名無しさん
2008/09/09(火) 14:51:160885デフォルトの名無しさん
2008/09/09(火) 15:36:150886デフォルトの名無しさん
2008/09/09(火) 15:42:460887デフォルトの名無しさん
2008/09/09(火) 15:49:210888デフォルトの名無しさん
2008/09/09(火) 15:53:150889デフォルトの名無しさん
2008/09/09(火) 15:55:090890デフォルトの名無しさん
2008/09/09(火) 19:49:34もしそうならば、PostQuitMessageでポストしたものが、メッセージループのGetMessageに届いたときには、
すでにウィンドウは存在しないということですか。
0891デフォルトの名無しさん
2008/09/09(火) 20:08:53まぁそのときにはウィンドウはすでに存在しないかもね
0892デフォルトの名無しさん
2008/09/09(火) 20:40:120893デフォルトの名無しさん
2008/09/09(火) 20:45:010894デフォルトの名無しさん
2008/09/09(火) 23:37:36この度ワイド液晶を導入したところ、ゲームの画面が横に伸びた感じで表示されてしまいます。
液晶ディスプレイがどちらでも4:3のときのように表示できるようにするにはどうしたらいいですか。
0895デフォルトの名無しさん
2008/09/09(火) 23:41:370896デフォルトの名無しさん
2008/09/09(火) 23:41:50ディスプレイが対応する適切な対応解像度にプログラム側が対応する
0897デフォルトの名無しさん
2008/09/10(水) 00:39:00WM_GETFONTメッセージでHFONT取得したあとに
SelectObjectしなきゃいけなかったらしいです
GetDCとSendDlgMessageで同じHWND使ってるのに
関連付けを自分でやんなきゃダメってちょっと納得いかない(´・ω・`)
で、これすることで正確なTEXTMETRIC構造体がとれるようになった
いじょ
0898デフォルトの名無しさん
2008/09/10(水) 09:43:15そんな事は 常 識 です
0899デフォルトの名無しさん
2008/09/10(水) 12:10:020900デフォルトの名無しさん
2008/09/10(水) 13:34:390901デフォルトの名無しさん
2008/09/10(水) 13:44:250902デフォルトの名無しさん
2008/09/10(水) 13:53:040903デフォルトの名無しさん
2008/09/10(水) 15:09:340904デフォルトの名無しさん
2008/09/10(水) 16:49:020905デフォルトの名無しさん
2008/09/10(水) 17:15:000906デフォルトの名無しさん
2008/09/10(水) 17:23:400907デフォルトの名無しさん
2008/09/10(水) 17:27:420908デフォルトの名無しさん
2008/09/10(水) 17:29:14Unko();
}
0909デフォルトの名無しさん
2008/09/10(水) 17:35:20exit(EXIT_SUCCESS);
}
0910デフォルトの名無しさん
2008/09/10(水) 17:41:440911デフォルトの名無しさん
2008/09/10(水) 18:59:12ReportArchive ってフォルダにクラッシュ情報がどんどん溜まるんですが、
あれはいつか排泄されるんもんでしょうか。下剤とかあるなら教えて下さい。
0912デフォルトの名無しさん
2008/09/10(水) 19:07:510913デフォルトの名無しさん
2008/09/10(水) 19:09:070914デフォルトの名無しさん
2008/09/11(木) 08:38:200915デフォルトの名無しさん
2008/09/11(木) 08:45:190916デフォルトの名無しさん
2008/09/11(木) 08:59:24_ ( ゚ω゚ ) お断りします
◎ー) / \
| | (⌒) (⌒二 ) ブッ!ブバァァ!!ビチビチィィ!!
~~~ /⌒ヽ( ̄、 ヽ プシャァァ!!ブチャブチャァァ!!!
/ Lヽ \ノ ゲリゲリー!!ブリュッブリュブリュゥゥ!!!
゙ー―――(__)
0917デフォルトの名無しさん
2008/09/11(木) 10:35:590918デフォルトの名無しさん
2008/09/11(木) 11:43:16たまに残像というか微妙なちらつきが現れます
ゲームボーイのようにロゴマークを画面外から中央まで落とすといった白黒のアニメーションなんですが・・・
これは画面のリフレッシュレートの問題なのでしょうか?
0919デフォルトの名無しさん
2008/09/11(木) 11:52:45まあVsync跨いでんじゃないかとは思うが。
0920デフォルトの名無しさん
2008/09/11(木) 11:58:08本当にありがとうございました
0921デフォルトの名無しさん
2008/09/11(木) 12:19:09DirectXかOpenGLあたりならできるみたいですけど・・・
勉強することが増える一方で作りたいものがなかなか進まないよ
0922デフォルトの名無しさん
2008/09/11(木) 12:48:09一人で何でもかんでも作れたらゲーム会社なんか必要ない
0923デフォルトの名無しさん
2008/09/11(木) 12:54:540924デフォルトの名無しさん
2008/09/11(木) 13:00:03GDIならInvalidateRect()+WM_PAINTで描画してれば、ある程度ティアリングは抑えられるんじゃないか。
他のイベントでGetDC()して描画してるとティアリングが起きやすい気がする
0925デフォルトの名無しさん
2008/09/11(木) 13:09:420926デフォルトの名無しさん
2008/09/11(木) 13:32:44知らないならレスしないでくださいうざいです
0927デフォルトの名無しさん
2008/09/11(木) 14:40:04いるんですか?
0928デフォルトの名無しさん
2008/09/11(木) 14:40:33WPFの世界においで
0929デフォルトの名無しさん
2008/09/11(木) 14:54:050930デフォルトの名無しさん
2008/09/11(木) 14:59:030931デフォルトの名無しさん
2008/09/11(木) 15:02:16マジレスすると、GDIなら問題外でも何でもない。
WM_PAINTの更新領域を、ダブルバッファの完成してる方から画面に
BitBltするのは、当たり前の技法だ。
WM_PAINTじゃなくてWM_DRAWだろとかいうんなら、それはまた別の話。
WM_PAINTでダブルバッファの裏側を描画するとか言うなら、確かに論外。
>>921
windows3.1/95時代に、Inside windowsあたりで、GDIの描画はちゃんと
VSYNC見てるとかいう話が出てたような気がする。だから無いのかも。
>>924
GDIは、スレッドセーフに出来ていないので、複数スレッドで同期を取らずに
描画したりすると、画面が変になるかも。あとGDIの実行キャッシュをフラッシュ
せず、CreateDIBSectionあたりで取得したサーフェスに直接書き込んでも変になる。
0932デフォルトの名無しさん
2008/09/11(木) 17:05:43ホントに何も知らないんだな
0933デフォルトの名無しさん
2008/09/11(木) 17:07:38知らないならレスしないでくださいうざいです
0934デフォルトの名無しさん
2008/09/11(木) 17:19:23もしかしてMFCのOnDraw()はWM_DRAWというメッセージのハンドラだと思ってるのか?
0935デフォルトの名無しさん
2008/09/11(木) 17:24:37知らないならレスしないでくださいうざいです
0936デフォルトの名無しさん
2008/09/11(木) 17:25:00知らないならレスしないでくださいうざいです
0937931
2008/09/11(木) 17:25:330938デフォルトの名無しさん
2008/09/11(木) 19:02:20複数のモードレスダイアログがある場合はその全てについてチェックすべきなん?
0939デフォルトの名無しさん
2008/09/11(木) 19:07:340940デフォルトの名無しさん
2008/09/11(木) 20:06:15そんなことはない。
コントロールの柔軟性が高さは一度体験してみるべき。
0941デフォルトの名無しさん
2008/09/11(木) 20:22:570942デフォルトの名無しさん
2008/09/11(木) 20:53:56そのようなaものが全くありません。
コントロールの柔軟性は一度高さになるべきです。
0943デフォルトの名無しさん
2008/09/11(木) 21:28:06アクティブになっているダイアログだけチェックすればおk
0944デフォルトの名無しさん
2008/09/11(木) 21:40:24ところで自作ウィンドウクラスのイベントハンドラを呼び出す時SetProp/GetPropを使って
ポインタを取り出すのと、std::mapで関連付けた物を使うのとではどっちの方がいいんだろうか
使い分けってことだろうけど・・・
0945デフォルトの名無しさん
2008/09/11(木) 21:53:30開発環境は、XP SP2、VS2005 Standard Edition
VC++ 2005、Win32API + SDKでプログラミングしおります。
時計アプリを作っています。
クイック起動にある「デスクトップの表示」をクリックして
全ウィンドウがデスクトップから最小化されますが、時計アプリだけ
ウィンドウを表示したままにしたいのです。
時計アプリを最前面にすると「デスクトップの表示」をクリックしても
時計アプリのウィンドウが表示されたままになりますが、時計アプリの
ウィンドウの最前面を解除するとどうしても隠れます。
何かウィンドウメッセージが来ればいいのですが、それらしきメッセージが
来ません。
アドバイスをお願いいたします。
0946デフォルトの名無しさん
2008/09/11(木) 21:55:450947デフォルトの名無しさん
2008/09/11(木) 22:03:320948デフォルトの名無しさん
2008/09/11(木) 23:22:41グローバル変数でmap使うと、
登録とかで書き込み処理するし排他制御がいる分、面倒そうな感じがする。
0949デフォルトの名無しさん
2008/09/12(金) 00:08:08まーためしに土日で両方書いてみたら楽しいんじゃない?
0950デフォルトの名無しさん
2008/09/12(金) 00:15:58map使わずにInterlockedPushEntrySList辺りで書けば排他制御無くせそうだな
0951デフォルトの名無しさん
2008/09/12(金) 00:35:21>>948,950
とりあえず
mapはマルチスレッドで使う時は排他制御がいる。要素数が増えてくるとメッセージ毎のポインタ検索の
負荷が大きくなる。→シングルスレッド・少数起動向け
32APIはマルチスレッドでも使える。ハンドルからポインタを得るのは要素数に対してはO(1)で済む。
→本格的(?)にする場合はこっち?
という感じでしょうか?当面はmapでやってみます。ありがとうございました。
0952デフォルトの名無しさん
2008/09/12(金) 00:50:16#define HWND2INDEX(hWnd) (((INT_PTR)(hWnd) >> 2) & 0x3fff)
こんな感じでいいだろ。
table[HWND2INDEX(hWnd)]でアクセスできるし排他制御も不要でO(1)だ。
最大の欠点は、Win9x系でしか正常動作しない事ぐらいか。
0953デフォルトの名無しさん
2008/09/12(金) 00:52:420954デフォルトの名無しさん
2008/09/12(金) 02:38:050955デフォルトの名無しさん
2008/09/12(金) 09:25:040956デフォルトの名無しさん
2008/09/12(金) 12:20:010957デフォルトの名無しさん
2008/09/12(金) 12:29:17これは大嘘だろ
0958デフォルトの名無しさん
2008/09/12(金) 13:29:30要素をウィンドウハンドルの数と考えたらO(1)じゃないの?他のウィンドウは関係ないんだから
0959デフォルトの名無しさん
2008/09/12(金) 13:52:31要素をウィンドウハンドルの数と考えたらO(1)じゃないの?他のウィンドウは関係ないんだからってこと?
0960デフォルトの名無しさん
2008/09/12(金) 14:07:43はあ?
0961デフォルトの名無しさん
2008/09/12(金) 21:34:270962デフォルトの名無しさん
2008/09/12(金) 21:36:540963デフォルトの名無しさん
2008/09/12(金) 22:13:13GUIDFromStringのような名前のものが欲しいのですが、
StringFromGUID2というGUIDから文字列を取得する関数しかありません。
ご教授願います。
0964デフォルトの名無しさん
2008/09/12(金) 22:15:21mapを唯一にするにはどうしたらいいの
0965デフォルトの名無しさん
2008/09/12(金) 22:28:49つ IIDFromString
0966デフォルトの名無しさん
2008/09/13(土) 00:21:41「map」が何のことか分からないが
exe dll 共に static library をリンクするなら実体は複数になる
exe と dll で
データを共有したい?
コードを共有したい?
0967デフォルトの名無しさん
2008/09/13(土) 00:48:31ひとつのプロセス内のexeとdllでデータを共有したいです。
また、exeが当該static libを使っていない場合もdllを使いたいです。
0968デフォルトの名無しさん
2008/09/13(土) 00:50:420969デフォルトの名無しさん
2008/09/13(土) 00:58:07CLSIDFromStringも忘れないで。
GUIDFromStringもあるにはあるけど、使ってほしくないみたい。
http://msdn.microsoft.com/en-us/library/bb776431.aspx
0970デフォルトの名無しさん
2008/09/13(土) 01:02:01こんなもんsscanfで出来るだろ
0971デフォルトの名無しさん
2008/09/13(土) 01:07:23よく寝たほうがいい
0972デフォルトの名無しさん
2008/09/13(土) 01:10:060974デフォルトの名無しさん
2008/09/13(土) 13:16:18とはいえ、素直に共有DLL使ってシングルトンした方が良いような気もするけど。
0975デフォルトの名無しさん
2008/09/13(土) 15:19:200976デフォルトの名無しさん
2008/09/13(土) 15:30:44ってどういうこと?
同一プロセスならアドレス空間が同じだから共有も何も無いんじゃね?
0977デフォルトの名無しさん
2008/09/13(土) 20:38:210978デフォルトの名無しさん
2008/09/13(土) 20:39:46何を渡したのかも分からないのかよw
0979デフォルトの名無しさん
2008/09/13(土) 20:49:32何を渡したのかも正確に書けない馬鹿がプログラムを作ったせい
0980デフォルトの名無しさん
2008/09/13(土) 21:37:460981デフォルトの名無しさん
2008/09/13(土) 21:48:34そして俺の胸の中に飛び込んでこい
0982デフォルトの名無しさん
2008/09/13(土) 22:06:32DCもたぶんそう
0983デフォルトの名無しさん
2008/09/13(土) 22:07:58無理。臭い
>>982
ありがとう
0984967
2008/09/13(土) 22:26:22共有したいデータはstatic libraryの中にあり、
exeとdllはこのlibraryを使っています。
別のexeはこのlibraryを使うけどdllは使わない、
さらに別のexeはこのlibraryを使わないけどdllは使う。
上記のいずれでもデータを一意にする方法を教えてください。
0985デフォルトの名無しさん
2008/09/13(土) 22:32:22>さらに別のexeはこのlibraryを使わないけどdllは使う。
使っていないのならデータが多重にならないんだから、その時点で一意だろ。
頭は大丈夫か?
0986デフォルトの名無しさん
2008/09/13(土) 23:03:430987デフォルトの名無しさん
2008/09/14(日) 01:29:510988デフォルトの名無しさん
2008/09/14(日) 01:32:230989デフォルトの名無しさん
2008/09/14(日) 01:36:570990デフォルトの名無しさん
2008/09/14(日) 02:12:48お前が未熟なだけだ
0991デフォルトの名無しさん
2008/09/14(日) 02:22:51http://pc11.2ch.net/test/read.cgi/tech/1217687038/
0992デフォルトの名無しさん
2008/09/14(日) 02:24:02http://pc11.2ch.net/test/read.cgi/tech/1217687038/
0993デフォルトの名無しさん
2008/09/14(日) 07:34:180994821
2008/09/14(日) 07:55:07UpdateLayeredWindowを使ってみているのですが、
UpdateLayeredWindowに渡すDCのビットマップは
もしかして、表示されるときに加算っぽくされますか?
各ピクセルにアルファを掛けないと上手く表示されません。
(実際には、Color * Alpha / 255)
これってビットマップを合成させるとか、アニメーションさせたいととか思ったら、
オフスクリーン用のBitmapをもう1枚用意して
最後にUpdateLayeredWindowに渡す用に変換するという感じで使うのかな・・・
ネットのサンプルとか見ても、各ピクセルにアルファを掛けないと上手く表示されない件に関して、
記述がなくハマったんですが・・・
0995デフォルトの名無しさん
2008/09/14(日) 08:13:35ttp://msdn.microsoft.com/en-us/library/ms532306(VS.85).aspx
まあその通りなんだが。
0996821
2008/09/14(日) 08:23:36りgたとう
0997デフォルトの名無しさん
2008/09/14(日) 17:41:58最近のヘルプは重いです。
0998デフォルトの名無しさん
2008/09/14(日) 18:06:40CPUとHDDを新しい物に取り替えたら軽くなるよ
0999デフォルトの名無しさん
2008/09/14(日) 18:11:081000デフォルトの名無しさん
2008/09/14(日) 18:21:4910011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。