Win32API質問箱 Build66
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2008/05/14(水) 23:33:42やさしいお兄さんやお姉さんたちが答えてくれるかも。
過去スレ、関連リンクは>>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質問箱 Build65
http://pc11.2ch.net/test/read.cgi/tech/1208847084/
0002デフォルトの名無しさん
2008/05/14(水) 23:33:57http://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/05/14(水) 23:34:12http://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
-おまけ
Build19が見たい人で余裕のある人は●でも買ってくれ。
0004デフォルトの名無しさん
2008/05/14(水) 23:34:4863 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/
50 ttp://pc11.2ch.net/test/read.cgi/tech/1171721448/
49 ttp://pc10.2ch.net/test/read.cgi/tech/1168708801/
48 ttp://pc10.2ch.net/test/read.cgi/tech/1166172047/
47 ttp://pc8.2ch.net/test/read.cgi/tech/1163375772/
46 ttp://pc8.2ch.net/test/read.cgi/tech/1159158014/
45 ttp://pc8.2ch.net/test/read.cgi/tech/1156032806/
44 ttp://pc8.2ch.net/test/read.cgi/tech/1151501925/
43 ttp://pc8.2ch.net/test/read.cgi/tech/1148005509/
42 ttp://pc8.2ch.net/test/read.cgi/tech/1144962549/
0005デフォルトの名無しさん
2008/05/14(水) 23:35:0140 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/
25 ttp://pc5.2ch.net/test/read.cgi/tech/1101393155/
24 ttp://pc5.2ch.net/test/read.cgi/tech/1098967135/
23 ttp://pc5.2ch.net/test/read.cgi/tech/1095534704/
22 ttp://pc5.2ch.net/test/read.cgi/tech/1092524669/
0006デフォルトの名無しさん
2008/05/14(水) 23:35:1220 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/05/14(水) 23:43:300008デフォルトの名無しさん
2008/05/15(木) 00:13:19コントロールをペタペタ乗せるときはダイアログ。
どっちも使うぜってときは、俺の場合CreateWindow(Ex)で作ったウィンドウに
子ウィンドウとしてダイアログを貼り付けることが多いかな。
ただし、うまくやらないとコントロールとの通信がやや煩雑になるかもしれない諸刃の剣。
0009デフォルトの名無しさん
2008/05/15(木) 00:17:29独立したボタン扱いになって画面外に置き去りになったことは良い思い出
0010デフォルトの名無しさん
2008/05/15(木) 01:35:28?
0011デフォルトの名無しさん
2008/05/15(木) 02:04:27↓
口
┏━━━━━━┓
┃
┃ window
┗━━━━━━┛
0012デフォルトの名無しさん
2008/05/15(木) 02:06:070013デフォルトの名無しさん
2008/05/15(木) 03:43:32おいらどんなときでもダイアログで作ってた…
0014デフォルトの名無しさん
2008/05/15(木) 07:30:05ダイアログエディタでボタンを配置していてそんな事になるか?
0015デフォルトの名無しさん
2008/05/15(木) 07:59:590016デフォルトの名無しさん
2008/05/15(木) 16:40:56これで制御停止させても Ctrl+Alt+Delete で解除されてしまう
BlockInput(TRUE);の間Ctrl+Alt+Deleteを無効にするにはどうすればいい?
RegisterHotKeyではダメだった
0017デフォルトの名無しさん
2008/05/15(木) 16:49:10ExpressEditionを使ってる貧乏人ですか?
0018デフォルトの名無しさん
2008/05/15(木) 16:53:080019デフォルトの名無しさん
2008/05/15(木) 16:56:280020デフォルトの名無しさん
2008/05/15(木) 17:11:060021デフォルトの名無しさん
2008/05/15(木) 17:45:28そこまで無効にする必要ないだろ
0022デフォルトの名無しさん
2008/05/15(木) 17:58:260023デフォルトの名無しさん
2008/05/15(木) 17:59:42別のキーストロークでBlockInputを解除する設定にしたいんだ
自分しか解除できないように
デフォでCtrl+Alt+Delete=解除・再起動
とか設定されてるから他の誰かがCtrl+Alt+Delete押すかもしれないし
0024デフォルトの名無しさん
2008/05/15(木) 18:17:33そんなあほな事がしたければ。
0025デフォルトの名無しさん
2008/05/15(木) 18:18:190026デフォルトの名無しさん
2008/05/15(木) 19:52:27ここの住人はアホか?
0027デフォルトの名無しさん
2008/05/15(木) 19:55:32不可解だと思う場合は理由を聞きたくもなる
そんなところでしょ
0028デフォルトの名無しさん
2008/05/15(木) 19:58:380029デフォルトの名無しさん
2008/05/15(木) 20:01:350030デフォルトの名無しさん
2008/05/15(木) 20:19:310031デフォルトの名無しさん
2008/05/15(木) 20:36:38再起動とかのボタンを無効にするだけならグループポリシー。
0032デフォルトの名無しさん
2008/05/15(木) 20:37:03/* 処理 */
}
こんな感じにスレッドの終了を感知したいんですがうまくいきません。
WaitForSingleObjectの返り値を見てみたら258などとなってしまいます。
待ち時間をINFINITEにすれば感知できるのですが、
0にして毎フレーム調べる、などはどうすればいいんでしょうか?
0033デフォルトの名無しさん
2008/05/15(木) 20:40:08GetExitCodeThread
0034デフォルトの名無しさん
2008/05/15(木) 20:49:202. Ctrl+Alt+Deleteを押しても解除できない
3. 「PCがおかしいんだ!助けてくれ」と言われる
4. 自分だけが知ってる方法で解除
5. 「やっぱ○○さん凄いね」と周囲から尊敬の眼差し
0035デフォルトの名無しさん
2008/05/15(木) 20:58:32GINAかグループポリシー調べてみる、ありがとう
0036デフォルトの名無しさん
2008/05/15(木) 21:15:330037デフォルトの名無しさん
2008/05/15(木) 21:18:45なるほどなぁと思ったよ
>>26みたいに「ただただ回答してれば良いのに」
っておもってたけど、そういう考え方もあるよな
Win32APIとなんも関係ないけど感動した
0038デフォルトの名無しさん
2008/05/15(木) 21:23:04>不可解だと思う場合は理由を聞きたくもなる
わかるけど、己の欲望でレスするなよと
0039デフォルトの名無しさん
2008/05/15(木) 21:44:570040デフォルトの名無しさん
2008/05/15(木) 21:46:490041デフォルトの名無しさん
2008/05/15(木) 21:49:56欲望というか「質問には全く関係ない事」な
0042デフォルトの名無しさん
2008/05/15(木) 22:07:26258はWAIT_TIMEOUTだよ。スレッドがまだ終了してないってだけ。
0043デフォルトの名無しさん
2008/05/15(木) 22:10:480044デフォルトの名無しさん
2008/05/15(木) 23:43:52試しに
while(1){
if(WaitForSingleObject(handle, 0) == WAIT_OBJECT_0){
break;
}
}
としてもずっと検出できず、どうも上手くいきませんでした。
スレッド自体は1秒Sleepするだけなので終わらないはずはないのですが。
>>33
別に状態を見る関数があったんですね。
試してみます。
0045デフォルトの名無しさん
2008/05/16(金) 00:00:23CreateWindowEx関数で作ったリストコントロールとタブコントロールの拡張ウィンドウスタイルに
WS_EX_CLIENTEDGEを指定しているのですが、タブコントロールがリストコントロールのようになりません。
原因が分からず苦労しておりまして、
どのようにすればリストコントロールのような縁になるのかご教授お願いします。
0046デフォルトの名無しさん
2008/05/16(金) 00:03:490047デフォルトの名無しさん
2008/05/16(金) 00:12:010048デフォルトの名無しさん
2008/05/16(金) 01:35:11それで検出できないはずはないんだが。
もしかして_beginthreadでスレッド作ってないか?
それだとスレッドが終了すると自動でハンドルが閉じられて使えなくなるぞ。
0049デフォルトの名無しさん
2008/05/16(金) 08:00:41ああ、なるほど。
確かに_beginthreadでした。
exのほうで試してみます。
0050デフォルトの名無しさん
2008/05/16(金) 11:20:39VB6でメニューコマンドを太字にしようと思って、
ポップアップだったら組み込みで入ってたんですが通常メニューはできないので
hMenu = GetMenu(Me.hWnd)
hFileMenu = GetSubMenu(hMenu, 0)
Dim MII As MENUITEMINFO
MII.cbSize = Len(MII) ' Len = sizeof
MII.fMask = MIIM_STATE
GetMenuItemInfo hFileMenu, 0, MF_BYPOSITION, MII ' 場所は仮
MII.fState = MII.fState Or MFS_DEFAULT ' Or = |
SetMenuItemInfo hFileMenu, 0, MF_BYPOSITION, MII
て書いて実現させました。
ところが、太字を解除しようと思って、上記の下から2行目を
MII.fState = MII.fState And Not MFS_DEFAULT
にしてみたのですが解除されません。
どうしたら解除できますか?
0051デフォルトの名無しさん
2008/05/16(金) 11:53:45DrawMenuBarしてみた?
0052デフォルトの名無しさん
2008/05/16(金) 19:34:14オンラインゲームではJoyToKeyみたいに発動しないんだ
なんで?
0053デフォルトの名無しさん
2008/05/16(金) 19:46:21SendInputでKEYEVENTF_SCANCODE使って送れ。
DirectInputでも使える。
//実は昔JoyToKeyを調べたことがあって、JoyToKeyはkeybd_eventを使っている。
//ドキュメント化されていないが、第二引数にスキャンコードを渡すと、
//SendInputでスキャンコードを渡したのと同じ動作をする。
//ただし、ドキュメントにない仕様だから絶対使うな。SendInputを使え。
酷いゲームは、チート防止機能と称して、ルートキットまがいのことをやっているがな。
まあそんなWindowsがバージョンアップしたら自爆するようなゲームは無視していいだろ。
0054デフォルトの名無しさん
2008/05/16(金) 20:05:11別プログラムで、IEプロパティ内の「**削除」をキー操作でやらせてるんだけど
削除中もキー送信してしまう
削除処理が終わるまで待つのって可能?
0055デフォルトの名無しさん
2008/05/16(金) 20:46:290056デフォルトの名無しさん
2008/05/16(金) 21:33:00テキストかバイナリのベクタデータを、
一エレメントを長方形にしてベクタを連続して表示させ、
かつエレメントの値を色で表現・表示したい(短期ゴール)のですが、
どのようにコーディングすれば、またどのような関数を使えばいいのでしょうか。
例:
8ビット幅のエレメントについて、これを8ビットグレースケールに対応させて、
0h0000
0h0001
0h0002
......
0hFFFF
で256個のエレメントを256個のモノトーン長方形
□
.
.
.
■
で表示させたいのです。参考になるサイトや本をご存知でしたら教えていただけないでしょうか。
よろしくお願いいたします。
0057デフォルトの名無しさん
2008/05/16(金) 21:47:18エレメントって何?ベクタデータを構成する部分曲線ってこと?
0058デフォルトの名無しさん
2008/05/16(金) 21:53:12単なる値をエレメント、同じビット幅(レンジ)でその連続したデータをベクタといっています。
ベクトル演算とかのベクタです。
曲線データではなく、単なる値です。
0059デフォルトの名無しさん
2008/05/16(金) 22:08:490060デフォルトの名無しさん
2008/05/16(金) 22:22:18宿題スレに行った方がよくね?
0061デフォルトの名無しさん
2008/05/16(金) 22:24:36サンプルplz
0062デフォルトの名無しさん
2008/05/16(金) 22:28:20はじめそう思いましたが、上記は第一歩目ということで。。。
はじめは単なるプロットするだけですが、
それを最終的に各エレメント(要素)毎に操作できるようにしたいので、
よろしくお願いいたします。
0063デフォルトの名無しさん
2008/05/16(金) 22:34:470064デフォルトの名無しさん
2008/05/16(金) 22:36:52SetPixelでも使えばいいよ
0065デフォルトの名無しさん
2008/05/16(金) 22:41:350066デフォルトの名無しさん
2008/05/16(金) 22:43:550067デフォルトの名無しさん
2008/05/16(金) 22:49:37MSDNを読め。構造体と共用体を深く学べ。
ここでサンプルを与えてしまうのはためにならん。
実際、それほど難しくない。
戸惑うとしたら、Cの知識が十分ではない場合だけだ。
スキャンコードはMapVirtualKeyで取得できる。
0068デフォルトの名無しさん
2008/05/16(金) 22:57:00SendInputが宣言されてるヘッダ見た
→構造体とさらにunionが使われてるのを知る
→それらの値を設定
→キーストローク設定
→SendInput呼び出しでストローク実行
INPUT name[N];
SendInput(N, name, sizeof(name));
ありがと、なんとかなりそう
0069デフォルトの名無しさん
2008/05/16(金) 23:11:32SetPixelですか。調べてみます。最低数千の長方形(内側色付き)をプロットすることになるのですが、
その遅さはネックにならないでしょうか。
正直遅いと聞いたら使う気にはなれませんが・・・。
0070デフォルトの名無しさん
2008/05/16(金) 23:25:300071デフォルトの名無しさん
2008/05/16(金) 23:28:51作ってそれを描画するって形にすればいい。
0072デフォルトの名無しさん
2008/05/16(金) 23:45:480073デフォルトの名無しさん
2008/05/16(金) 23:57:47#include<stdio.h>
#include<windows.h>
#define NUMBER 2
int main(void)
{
int i;
MSG msg;
INPUT SendKey[NUMBER];
for(i=0;i<NUMBER;i++) {
SendKey[i].type = INPUT_KEYBOARD;
SendKey[i].ki.wVk = 'A';
SendKey[i].ki.wScan = MapVirtualKey('A', 0);
if(i == 0) {
SendKey[i].ki.dwFlags = 0;
}
else {
SendKey[i].ki.dwFlags = KEYEVENTF_KEYUP;
}
SendKey[i].ki.time = 0;
SendKey[i].ki.dwExtraInfo = 0;
}
RegisterHotKey(NULL,0,NULL,'B');
RegisterHotKey(NULL,1,NULL,'A');
while(0<GetMessage(&msg,NULL,0,0)) {
0074デフォルトの名無しさん
2008/05/16(金) 23:58:36switch(msg.message) {
case WM_HOTKEY:
switch(msg.wParam) {
case 0:
i=SendInput(NUMBER, SendKey,sizeof(SendKey));
printf("B %d\n",i);
break;
case 1:
puts("A");
i=1;
break;
}
break;
}
if(i==1) break;
}
UnregisterHotKey(NULL,0);
UnregisterHotKey(NULL,1);
return 0;
}
SendInputが0を返してしまう、なんで?
0075デフォルトの名無しさん
2008/05/17(土) 00:07:13どこかにうpしろ
0076デフォルトの名無しさん
2008/05/17(土) 00:13:05なんであかんのかkwsk
0077デフォルトの名無しさん
2008/05/17(土) 00:17:400078デフォルトの名無しさん
2008/05/17(土) 00:21:21バグが怖いから
0079デフォルトの名無しさん
2008/05/17(土) 00:23:31dwFlagsにKEYEVENTF_SCANCODEを忘れている。
0080デフォルトの名無しさん
2008/05/17(土) 00:27:100081デフォルトの名無しさん
2008/05/17(土) 00:30:43話逸らしてすまんが。
0082デフォルトの名無しさん
2008/05/17(土) 00:38:370083デフォルトの名無しさん
2008/05/17(土) 00:57:35puts("A");
↑
なにこの顔、ふざけてるの!?
0084デフォルトの名無しさん
2008/05/17(土) 01:03:12ちょwww
0085デフォルトの名無しさん
2008/05/17(土) 01:18:35不覚にもワロスwwwwwwwwwwwwwwwww
0086デフォルトの名無しさん
2008/05/17(土) 02:44:450088デフォルトの名無しさん
2008/05/17(土) 03:16:08'c'
'o'
'-'
こういうのが顔文字に見えないようなフォント誰か教えてくれ
0089デフォルトの名無しさん
2008/05/17(土) 04:05:010090デフォルトの名無しさん
2008/05/17(土) 04:06:340091デフォルトの名無しさん
2008/05/17(土) 07:20:14Set/GetWindowLongPtr を使って GWLP_USERDATA をいじってよいのでしょうか?
MSDNには一応
「This data is intended for use by the application that created the window.」
と書いてあるのですが、WM_USERと同じで使っちゃいかんと言う人もいるみたいで……
0092デフォルトの名無しさん
2008/05/17(土) 07:36:55サブクラスならSetWindowSubclassが安全
0094デフォルトの名無しさん
2008/05/17(土) 16:56:510095デフォルトの名無しさん
2008/05/17(土) 17:02:250096デフォルトの名無しさん
2008/05/17(土) 17:15:260097デフォルトの名無しさん
2008/05/17(土) 17:23:47ありがと 次それやってみる
0098デフォルトの名無しさん
2008/05/17(土) 17:36:28009994
2008/05/17(土) 18:11:43楽しいと思えるならBOTでもなんでもいいと思うんだがな。(勉強という意味で)
実際俺がそうだったわけだしフック、APIフック、逆汗は
そういった「目的」があったからこそ覚えたわけで。
まあ、全てが俺みたいな考え方してるわけじゃないし、
やる上でどう感じるかは人それぞれか。
0100デフォルトの名無しさん
2008/05/17(土) 18:14:49ま、俺はどうでもいいがね。
0101デフォルトの名無しさん
2008/05/17(土) 18:16:15アンカミス?
0103デフォルトの名無しさん
2008/05/17(土) 19:43:46どうやれあ反応するのか
これに興味持ったからやってるだけだよ
JoyToKey+PPJoyじゃないとうまく動作しないのも関係あるんかな
0104デフォルトの名無しさん
2008/05/17(土) 19:44:59>どうやれば ○
ホットキーしてたかB認識しなかった
0105デフォルトの名無しさん
2008/05/17(土) 19:48:020106デフォルトの名無しさん
2008/05/17(土) 19:54:20当事者以外にも不快感与えるから独り言は書き込むなよ
精神年齢幼いの曝け出してるようなもんだぞ
0107デフォルトの名無しさん
2008/05/17(土) 19:58:010108デフォルトの名無しさん
2008/05/17(土) 20:09:05それ今度から使うわw
0109デフォルトの名無しさん
2008/05/17(土) 21:30:23それが独り言
0110デフォルトの名無しさん
2008/05/17(土) 22:34:32>>109が独り言
0111デフォルトの名無しさん
2008/05/17(土) 22:36:21という独り言ですね。 わかります。
0112デフォルトの名無しさん
2008/05/17(土) 22:37:120113デフォルトの名無しさん
2008/05/17(土) 22:45:460114デフォルトの名無しさん
2008/05/17(土) 22:47:17簡単に出来るよ。
0115デフォルトの名無しさん
2008/05/17(土) 22:48:16while('A'){
BlocInput(TRUE);
Sleep(500);
BlocInput(FALSE);
Sleep(500);
}
0116デフォルトの名無しさん
2008/05/17(土) 22:59:33MSがだいぶ前にそれ作ってるよ
0117デフォルトの名無しさん
2008/05/17(土) 23:08:07ShowWindow(hwnd, SW_HIDE);
>>115
BlocInput(笑)
0118デフォルトの名無しさん
2008/05/17(土) 23:59:200119デフォルトの名無しさん
2008/05/18(日) 00:04:33ワロスwwwwwwwwwwwwwwwwwwwwwwwww
0120デフォルトの名無しさん
2008/05/18(日) 00:10:44社会に貢献するようなソース書けよ
0121デフォルトの名無しさん
2008/05/18(日) 00:30:18ExitWindowsEx(EWX_SHUTDOWN, 0);
実行すると自動でPCをシャットダウンしCO2削減に貢献
(SeShutdownPrivilegeの取得等は省略)
0122デフォルトの名無しさん
2008/05/18(日) 01:01:58そのファイルの名称等を知りたい。
検索してみたところ、ReadDirectoryChangesW() や
SHChangeNotifyRegisterあたりを使えば良さそうな感じ。
winXP+vb6.0でもいけるだろうか?
0123デフォルトの名無しさん
2008/05/18(日) 01:38:250124デフォルトの名無しさん
2008/05/18(日) 01:58:060125デフォルトの名無しさん
2008/05/18(日) 02:41:220126デフォルトの名無しさん
2008/05/18(日) 04:24:08TerminateThread( http://pc11.2ch.net/test/read.cgi/tech/1210775622/ );
0127デフォルトの名無しさん
2008/05/18(日) 04:40:24コンパイルエラー: 引数が足りません
0128デフォルトの名無しさん
2008/05/18(日) 11:34:430129デフォルトの名無しさん
2008/05/18(日) 13:50:130130デフォルトの名無しさん
2008/05/18(日) 13:53:220131デフォルトの名無しさん
2008/05/18(日) 14:50:290132デフォルトの名無しさん
2008/05/18(日) 17:24:370133デフォルトの名無しさん
2008/05/18(日) 18:57:10コンパネからショートカット引っ張り出して.lnkアクセスするしかない?
0134デフォルトの名無しさん
2008/05/18(日) 19:05:51リモートPCのCOMを呼び出す簡単なコードを作成したんですが、
思ったように動いてくれませんでした。
CoCreateInstanceEx()にリモートPCのIPを渡してやるんですが
この関数から戻ってくるのに時間がかかって失敗します。
ためしにローカルのIPを渡してやると成功するんですが。
以下にソースを記載します。
どこかおかしなところがないか教えていただけないでしょうか。
::CoInitialize(NULL);
COSERVERINFO serverInfo = { 0, "192.168.1.2", NULL, 0 };
MULTI_QI qi = { &__uuidof(ITest), NULL, S_OK };
HRESULT hr = CoCreateInstanceEx(
__uuidof(Test),
NULL,
CLSCTX_REMOTE_SERVER,
&serverInfo,
1,
&qi);
ITestPtr p;
p.Attach(reinterpret_cast<ITest*>(qi.pItf));
p->func();
p = NULL;
::CoUninitialize();
0135デフォルトの名無しさん
2008/05/18(日) 19:13:00Shell32.Shell.TrayProperties
0136デフォルトの名無しさん
2008/05/18(日) 19:34:42サーバ側の用意ができていないんじゃね?
時間がかかって失敗といえば、たいてい接続のタイムアウトだし。
サーバ側のDCOM関連の設定を見直しだな。
0137デフォルトの名無しさん
2008/05/18(日) 19:38:460138デフォルトの名無しさん
2008/05/18(日) 19:49:24そのあたりの詳しいやり方が説明されてるサイトとか知りませんか?
0139デフォルトの名無しさん
2008/05/18(日) 20:12:110140デフォルトの名無しさん
2008/05/18(日) 20:59:40MSDNで探してもリファレンスは見つかるけど
これを使う目的やメリットがわからなくて・・・・
0141デフォルトの名無しさん
2008/05/18(日) 21:03:32START shell:::{0DF44EAA-FF21-4412-828E-260A8728E7F1}
0142デフォルトの名無しさん
2008/05/18(日) 22:32:40多分GDIがソフトウェアレンダラになったから、これまでみたいにGDIだけで同じ事をすると
XPより重くなるので専用のAPIを用意して誤魔化したのだと予想
0143デフォルトの名無しさん
2008/05/18(日) 22:50:05自動ダブルバッファリングみたいな感じ?
Vistaだとパフォーマンス上げるのに必須だから、楽に使えるAPIを用意した、ってところかな。
一通り目を通してみたが、Animation系は結構使えそうだ。
0144140
2008/05/18(日) 23:56:23一応使ってみた感じだと画像がちらつかないのでダブルバッファリング用のAPIだと思うのだけど、
今までのようなメモリDCを使わずに、専用のAPIを用意した、という認識でいいのかどうかちょっと不安。
メモリDC使うのと大して手間はかからないような気がしないでもない。
Alpha値セット用のBufferedPaintSetAlphaとかも用意されてるみたいだけど。
こういう時に使うと便利!っていう説明が欲しいなぁ。
0145デフォルトの名無しさん
2008/05/19(月) 00:01:15従来の方法(CreateCompatibleBitmapで作ったDDBに描画してからBitBltする)だと
XP以前のDDBは大抵VRAM上に確保されてVGAの恩恵を得られたが、Vistaではそうは行かなくなったので
その辺を解決する専用APIを用意したのじゃないかと
0146デフォルトの名無しさん
2008/05/19(月) 13:35:23なるほどね。
Animation系のも使ってみた。
アニメーションの前後のDCを一度のAPI呼び出しで取得できるんだ。
実際に描画してみたら軽いフェードアウト効果?みたいなぼわっとした残像も描画された。
VistaっぽいちゃぁVistaっぽいな。
0147デフォルトの名無しさん
2008/05/19(月) 23:22:49CoInitialize / CoUninitialize しても大丈夫なのでしょうか?
注入先のプロセス内ですでに呼ばれていたらまずそうな気がします。
0148デフォルトの名無しさん
2008/05/19(月) 23:31:09全く問題ないわけではないけど。
0149デフォルトの名無しさん
2008/05/19(月) 23:36:03これがフォーカスを失っても青のままにしたいのですがどのようにすればよいのでしょうか?
普通のWM_NOTIFYではフォーカスを失ったときブレークポイントにかからなくて、
WM_ACTIVATEではNMHDR構造体がなくてカスタムドローできません。
いい方法があったらご教授願います。
0150デフォルトの名無しさん
2008/05/19(月) 23:58:14GetGUIThreadInfo(GetWindowThreadProcessId(NULL, &fwid), >info);
HideCaret(gtinfo.hwndCaret);
CreateCaret(gtinfo.hwndCaret, NULL, widht, height);
ShowCaret(gtinfo.hwndCaret);
とやってみましたが上手くいきません、
hwndCaretまでは取れいるようだし、
自プロセスであれば変更されます。
何が間違えているのか教えてください。
やはり、いくつかあるキャレット変更ソフトのように
DLLをフックさせなければ無利なのでしょうか?
0151デフォルトの名無しさん
2008/05/20(火) 00:28:13別スレッドのUIを操作するのは無理だと思う
0152デフォルトの名無しさん
2008/05/20(火) 00:32:57LVS_SHOWSELALWAYSスタイル付ければいいような気がする
0153デフォルトの名無しさん
2008/05/20(火) 01:22:59試したところ上手くいきました。ありがとうございます。
検証コード
#include <windows.h>
#include <msxml2.h>
#include <stdio.h>
#pragma comment(lib, "ole32")
#pragma comment(lib, "msxml2")
void examine() {
static int counter = 0;
IXMLDOMDocument* pv = NULL;
HRESULT hr = CoCreateInstance(CLSID_DOMDocument2, NULL, CLSCTX_INPROC_SERVER, IID_IXMLDOMDocument, (void**)&pv);
printf("%d : hr=%08lx\r\n", ++counter, hr);
if (SUCCEEDED(hr) && pv) { pv->Release(); }
}
void main () {
examine(); CoInitialize(NULL);
examine(); CoInitialize(NULL);
examine(); CoInitialize(NULL);
examine(); CoUninitialize();
examine(); CoUninitialize();
examine(); CoUninitialize();
examine();
}
0154デフォルトの名無しさん
2008/05/20(火) 04:48:05DllMainでCoInitializeを呼ばないように注意して書いた方がいいぞ
0155デフォルトの名無しさん
2008/05/20(火) 20:02:02それはすでにやっていて、フォーカスが外れても灰色にはなるのですが
その灰色になる時に青いままにしたいのですが無理でしょうか?
0156デフォルトの名無しさん
2008/05/20(火) 20:08:520157デフォルトの名無しさん
2008/05/20(火) 20:17:540158デフォルトの名無しさん
2008/05/20(火) 21:32:45そうなんですかね、
あきらめてフックしなきゃダメか。
0159デフォルトの名無しさん
2008/05/20(火) 22:40:29それはアパートメントはどーなるんだ?
MTAとか混じってたら死亡でないのか?
0160デフォルトの名無しさん
2008/05/20(火) 22:48:05>>51
やってみたんですがダメでした。成功したらまた来ます。
0161デフォルトの名無しさん
2008/05/20(火) 23:02:34エラーになってRPC_E_CHANGED_MODEが返ってくる。
http://msdn.microsoft.com/en-us/library/ms695279(VS.85).aspx
0162デフォルトの名無しさん
2008/05/21(水) 09:34:44〔背景BMP+新BMP〕HDC hdcBmp = 背景BMP
HDC hdcBmp3 = CreateCompatibleDC(hdcBmp);
HBITMAP hBMP3 = CreateCompatibleBitmap(hdcBmp,300,300);
SelectObject(hdcBmp3,hBMP3);
BitBlt(hdcBmp3背景BMPの上に新BMPを描画);
case WM_PAINT:
BitBlt(GetDC(hWnd),hdcBmp3を描画);
背景BMPに新BMPをくっつけたものを描画したいのですが
背景BMPが黒で塗り潰されてしまいます。
┏━━━━━━━━━┓
┃背景BMP ┃
┃┏━━━━━━━┓┃
┃┃新BMP ┃
0163デフォルトの名無しさん
2008/05/21(水) 09:46:000164デフォルトの名無しさん
2008/05/21(水) 09:48:550165デフォルトの名無しさん
2008/05/21(水) 09:53:39その疑似コードだけ見ると、hdcBmp3に背景BMPを描画していないように
思えるが。
0166デフォルトの名無しさん
2008/05/21(水) 09:58:47BltBlt(hdcBMP3,背景BMP);
BltBlt(hdcBMP3,新BMP);
これで大丈夫でしょうか?
0167デフォルトの名無しさん
2008/05/21(水) 10:50:26CreateCompatibleBitmapにメモリDCを指定しては駄目。
あと
>case WM_PAINT:
>BitBlt(GetDC(hWnd),hdcBmp3を描画);
これは駄目だろ
0168デフォルトの名無しさん
2008/05/21(水) 10:57:03CreateCompatibleBitmapには何を指定すればよいのでしょうか?
0169デフォルトの名無しさん
2008/05/21(水) 12:25:510170デフォルトの名無しさん
2008/05/21(水) 12:30:010171デフォルトの名無しさん
2008/05/21(水) 12:39:18突込みどころ満載のソースだな
まぁ頑張れw
0172デフォルトの名無しさん
2008/05/21(水) 12:43:18背景と前景を自前で合成して描画すればおk
0173デフォルトの名無しさん
2008/05/21(水) 12:50:050174デフォルトの名無しさん
2008/05/21(水) 13:05:19MFCとかプログラミングじゃねーよ。あれ
0175デフォルトの名無しさん
2008/05/21(水) 13:44:17突っ込んで下さい。
0176デフォルトの名無しさん
2008/05/21(水) 14:33:550177デフォルトの名無しさん
2008/05/21(水) 15:00:09MFCなんて一皮剥けばバリバリWin32APIじゃないか
0178デフォルトの名無しさん
2008/05/21(水) 17:22:34プログラミングスタイルが受け付けない
TODO:ここにプログラム書いてね。みたいなのばかり。
しかも、いちいち用意されてる関数調べて、くっつけるだけ。
それで動かしてみて、動いてよかった。で終わり。
こんな状況でバグが出たら、生き地獄だ。
0179デフォルトの名無しさん
2008/05/21(水) 17:27:430180デフォルトの名無しさん
2008/05/21(水) 17:33:160181デフォルトの名無しさん
2008/05/21(水) 17:39:51Win32APIの勉強始めた頃は俺もそう思ってた。
今じゃGUIライブラリ無しで作る気起きませんサーセン
0182デフォルトの名無しさん
2008/05/21(水) 18:01:25HDC hdc, hdcBmp[1], hBack[1];
HBITMAP hBmp[1];
BITMAP bm;
hdc = GetDC(hWnd);
hdcBmp[0] = CreateCompatibleDC(hdc); //背景BMP
hdcBmp[1] = CreateCompatibleDC(hdc); //新BMP
hBack[0] = CreateCompatibleDC(hdc); //合成BMP
hBmp[0] = (HBITMAP)LoadImage(hInst,MAKEINTRESOURCE(IDB_BITMAP1),IMAGE_BITMAP,0,0,LR_DEFAULTCOLOR);
hBmp[1] = (HBITMAP)LoadImage(hInst,MAKEINTRESOURCE(IDB_BITMAP2),IMAGE_BITMAP,0,0,LR_DEFAULTCOLOR);
SelectObject(hdcBmp[0],hBmp[0]);
SelectObject(hdcBmp[1],hBmp[1]);
// バックBMP
hBack[0] = hdcBmp[0];
BitBlt(hBack[0],0,20,bm.bmWidth,40,hdcBmp[1],0,20,SRCCOPY);
ReleaseDC(hWnd,hdc);
case WM_=PAINT:
BitBlt(hdc,0,100,bm.bmWidth,bm.bmHeight,hBack[0],0,0,SRCCOPY);
hdcBmp[0]とhdcBmp[1]に背景と新BMPを読み込み、背景と新BMPを合成したものをhBack[0]に読み込む。
そしてWM_PAINT時に合成した画像を描画する。という事ですか?
0183デフォルトの名無しさん
2008/05/21(水) 18:15:460184デフォルトの名無しさん
2008/05/21(水) 19:16:48アダルトアニメやゲームを規制すべき」というものです。もしもこれらが規制されてしまうことに
なれば、全国のモテない童貞男子諸君にとって大打撃です。
この嘆願が提出された理由ですが、ちょっとひどい。
街中に氾濫(はんらん)している美少女アダルトアニメ雑誌やゲームは、小学生の少女を
イメージしているものが多く、このようなゲームに誘われた青少年の多くは知らず知らず
のうちに心を破壊され、人間性を失っており、既に幼い少女が連れ去られ殺害される事件
が起きている。これらにより、幼い少女たちを危険に晒(さら)す社会をつくり出していること
は明らかで、表現の自由以前の問題である。社会倫理を持ち合わせていない企業利潤追
求のみのために、幼い少女を危険に晒している商品を規制するため、罰則を伴った法律
の制定を急ぐ必要がある。
ついては、美少女アダルトアニメ雑誌及び、美少女アダルトアニメシミュレーションゲーム
製造及び販売規制の罰則を伴った法律を制定されたい。
物凄く分かり易く要約すると、「エロゲーをする奴は心が壊れていて人間じゃないから幼女を
強姦する。だからエロゲーを規制しろ」ということになります。ええと、円議員あなたの血は何色
ですか?
だいいち嘆願理由にしても私から言わせて貰えば、「ゲームをしているうちに心が破壊される」
のではなく、「現実世界で心が破壊されたからゲームに逃げた」のです。よくよく考えれば普通の
人は分かるはずです。あれはタダの絵だ、と。
この「美少女アダルトアニメ雑誌及び美少女アダルトアニメシミュレーションゲームの製造・販
売を規制する法律の制定に関する請願」に賛同している議員は、円より子参議院議員のほかに
は、同じく民主党の下田敦子参議院議員がいます(5月21日現在)。増えないことを祈るばかりです。
http://digimaga.net/200805/adult-game-user-is-not-human.html
0185デフォルトの名無しさん
2008/05/21(水) 20:09:47まずは分かりやすい変数名を付ける事から学べ
0186デフォルトの名無しさん
2008/05/21(水) 20:19:12すみませんでした。
背景用変数 = 背景BMP;
貼付けるBMP用変数 = 新BMP;
上部二つの合成用変数 = 合成したBMP(背景BMP+新BMP);
BitBlt(上部二つの合成用変数);
0187デフォルトの名無しさん
2008/05/21(水) 20:46:35まずは分かりやすい変数名を付ける事から学べ
0189デフォルトの名無しさん
2008/05/21(水) 20:55:16お前はプログラマに向いていない
転職をおすすめする
0190デフォルトの名無しさん
2008/05/21(水) 21:03:26そのゴミソース引き継いだ奴はめちゃくちゃ苦労するんだよボケがw
0191デフォルトの名無しさん
2008/05/21(水) 21:05:56WM_PAINTがきたときに背景BMPと重ねるBMPを
自前で合成して一度のBiBlt呼び出しで描画するという意味。
それぞれのBMPはメモリ上にあるんでしょ?
とりあえずこれで動くものを作ってから原因とか考えながらゆっくりAPIの使いかた覚えればいいと思うよ。
0192デフォルトの名無しさん
2008/05/21(水) 21:36:47テキストエディタまがいのものでもつくってみようと始めたはいいのですが、
GETOPENFILENAME 関数を使ってファイルを開くダイアログを作ろうとしたところ、
"OPENFILENAME構造体が定義されていない"
とエラーが出ます。
てっきり windows.h で定義されていると思っていたのですが、
これでないならなんのヘッダをインクルードすればいいのでしょうか?
0193デフォルトの名無しさん
2008/05/21(水) 21:48:53Declared in Commdlg.h, include Windows.h
てっか、WindowsSDK入れてる?
0194デフォルトの名無しさん
2008/05/21(水) 22:00:45WIN32_LEAN_AND_MEAN
0195デフォルトの名無しさん
2008/05/21(水) 22:02:04WM_CREATE等最初に合成したものを
WM_PAINT時に使うということですか?
0196デフォルトの名無しさん
2008/05/21(水) 22:14:25ソースが突込み所満載なんだがまさか釣りじゃないよな?
本気で書いたソースならC言語についてもやばいぞ
0197デフォルトの名無しさん
2008/05/21(水) 22:20:08早く突っ込んでくれ
0199デフォルトの名無しさん
2008/05/21(水) 22:27:37なんでやねん
0200デフォルトの名無しさん
2008/05/21(水) 22:39:34じゃあケツ出せよ
0201デフォルトの名無しさん
2008/05/21(水) 22:41:15WM_ACTIVATEでフォーカスを失った時にブレークにはかかったのですが、
カスタムドローするのに必要なパラメータがなかったのでできませんでした。
オーナードローで頑張ればできるのでしょうか?
0202デフォルトの名無しさん
2008/05/21(水) 22:52:33BITMAPの合成はどうやればよいのですか?
0203デフォルトの名無しさん
2008/05/21(水) 23:33:54別にWM_CREATE時じゃなくていいよ。
ちらつきを抑えたいからダブルバッファしたいんだろうからBMPは常にメモリ上にあるという仮定で、
WM_CREATEがきたときに別途mallocでもnewでもいいからバッファを確保して
そのバッファに背景BMPと表示したいBMPを合成したものを作成。
それをBitBltやStretchDIBitsのような描画関数で表示。
0204デフォルトの名無しさん
2008/05/22(木) 00:00:22HANDLE_MSG() マクロを WM_COMMAND に対して使うとき、なんで return 0; になるんだ?
HANDLE_MSG() に渡すfn は void func(HWND...) でvoid型だし、HANDLE_MSG() 自体も
#define HANDLE_MSG(hwnd, message, fn) ¥
case message):return ((fn)(hwnd,...),0L)
でマクロ展開で「return 0;」が出てくる理由がよく解らん。
case message: return func(hwnd,...); //func() はvoid型
になるんじゃないの?
0205デフォルトの名無しさん
2008/05/22(木) 00:10:42return a, b;
returnされるのはbの値。
0206デフォルトの名無しさん
2008/05/22(木) 06:15:18WM_DRAWITEMとか、
> If an application processes this message, it should return TRUE.
って書かれてるのにvoidでreturn 0;されてるし
0207デフォルトの名無しさん
2008/05/22(木) 06:17:56カンマ演算子、か。K&Rの演算子の表の一番下に確かにそんなのあるな。いままで意識した事無かった
ありがと
0208デフォルトの名無しさん
2008/05/22(木) 08:01:40間違っています。
以上。
↓次の方どうぞ
0209デフォルトの名無しさん
2008/05/22(木) 08:58:290210デフォルトの名無しさん
2008/05/22(木) 09:05:150211デフォルトの名無しさん
2008/05/22(木) 10:19:57外部アプリからメモリ内サーチして書き換えるやつ防止したい。助言よろ。
0212デフォルトの名無しさん
2008/05/22(木) 10:34:360213デフォルトの名無しさん
2008/05/22(木) 11:03:18オンラインゲームじゃないなら、改造対策は不要では?
俺もゲーム作ってるんだが、ブログで改造対策のこと書いたら、
「改造対策する時間があるなら、ゲームのボリュームを増やすこととか、
もっとまともなことに使って欲しい」ってコメントが多かったよ。
改造するかはユーザーの自由なんだし、ユーザーとしては当然のコメントだが。
あと、いまどきの改造は、プロセスメモリエディタ+ルートキットで
やるから、改造を防止するなら、ユーザーから非難されることを覚悟のうえで
ルートキットじみたことをするしかないでしょうね。
0214デフォルトの名無しさん
2008/05/22(木) 12:37:49そのような外観の(ダイアログでない)ウィンドウを、
ウィンドウクラスで作ったウィンドウに、コントロールぺたぺた貼って作ろうと思ったら、
(CWndではなく、RegisterClassEx、CreateWindow使って)
・ウィンドウの背景色は何故かCOLOR_BTNSHADOWが(ダイアログと)等しい
・エディットボックスはCreateWindowExの第1引数にWS_EX_CLIENTEDGEにしないと立体の縁にならない
・フォントはWM_SETFONT使ってサイズを変更しないと文字がでかい
・そもそもデフォルトのフォントが当然MS shell dlgではないようで、よくわからない
(ただ、画面のプロパティから、故意にダイアログとウィンドウのフォントを違うものにした覚えはない…)
実際CreateDialogマクロでダイアログが作られるとき、ここら辺の設定ってどうなっているのですか?
このマクロもCreateWindowExを使ってウィンドウを作ると書いてあるので、
同じようなことが再現できるのではと思ったのですが…
(CreateDialogがウィンドウの大きさを決めるとき、フォントを元に作ってあるのはわかったのですが…)
0215デフォルトの名無しさん
2008/05/22(木) 13:05:33どうもGetWindowTextで取得できるものとは別物らしく、
Process ExplorerでJuneブラウザのWindow Titleを見ると、
GetWindow〜で取得した名前とは違うものを表示しているのがわかります。
一体Process Explorerで表示できるWindow Titleとは何者か、
どうすれば取得できるのでしょうか?
0216デフォルトの名無しさん
2008/05/22(木) 13:19:39ttp://msdn.microsoft.com/en-us/library/ms633520.aspx
> GetWindowText cannot retrieve the text of a control in another application.
0217デフォルトの名無しさん
2008/05/22(木) 13:34:18そうするとWindow Titleってなんだろうという話になりまして、
たとえばJaneブラウザを表示したとき、以下のようになります。
・キャプションバー、およびProcessExplorer上WindowTile列の表示
→”Jane Doe Style 【プログラム】 - Win32API質問箱 Build66”
・GetWindowText、およびタスクマネージャ上の表示
→”Jane”
”Jane Doe Style 【プログラム】 - Win32API質問箱 Build66”の文字列を取得したいわけですが、
その方法はご存知でしょうか?
0218デフォルトの名無しさん
2008/05/22(木) 13:44:310219デフォルトの名無しさん
2008/05/22(木) 14:00:33VBアプリもそんな感じだったな
だからタスクバーに表示しないプロパティなんてのがあるんだけど
0220デフォルトの名無しさん
2008/05/22(木) 14:07:520221デフォルトの名無しさん
2008/05/22(木) 14:14:12メインウィンドウに見えたのは子ウィンドウで、だから取得できなかったと。
子ウィンドウのウィンドウタイトルの取得とか、そのあたりを調べてみます。
ありがとうございます
0222デフォルトの名無しさん
2008/05/22(木) 14:14:17こんなんでいいのかな?
#include<windows.h>
#include<stdio.h>
int main(void){
char title_buf[256], *class_name="TMainWnd";
int title_len;
HWND hwnd;
hwnd=FindWindow(class_name, NULL);
if(hwnd==NULL){
printf("Window not found. class name [%s]\n", class_name);
return 1;
}
title_len=GetWindowText(hwnd, title_buf, sizeof(title_buf)-1);
if(title_len>=0) printf("%s\n", title_buf);
return 0;
}
0223デフォルトの名無しさん
2008/05/22(木) 14:59:33どうもです
実行結果とSpy++を併せて見て、おおよそ理解できました。
デルファイでもVBでもデフォルトのクラス名でウィンドウを検索したのち、
目的の名前を取得する事ができました
ありがとうございます
0224デフォルトの名無しさん
2008/05/22(木) 15:05:000225デフォルトの名無しさん
2008/05/22(木) 16:22:09今時こんなソース書く奴はJavaか.NETで開発してろよと思う
0226デフォルトの名無しさん
2008/05/22(木) 16:25:53この場合同書くのがいいのかも示して欲しいです
0227デフォルトの名無しさん
2008/05/22(木) 16:28:58>>226に同意
どう書けばよいのでしょう?
TCHARの話でしょうか?
0228デフォルトの名無しさん
2008/05/22(木) 16:29:51あたりじゃない?
0229デフォルトの名無しさん
2008/05/22(木) 16:54:54(使用しているのは MinGW)
0230デフォルトの名無しさん
2008/05/22(木) 16:59:28ARRAY_SIZE と countof はあったの?
0231デフォルトの名無しさん
2008/05/22(木) 17:01:22無いです
0232デフォルトの名無しさん
2008/05/22(木) 17:12:16SDKにはwinnt.hにRTL_NUMBER_OFがある
いずれにしろ>>222は人に教えられる立場で無いのは確か
0233デフォルトの名無しさん
2008/05/22(木) 17:20:270234デフォルトの名無しさん
2008/05/22(木) 17:24:19>222もエラーチェックにしか使ってないようだし、>228によればナルターミネートはしてくれているようだし。
つーか、溢れたかどうかは単純には判らないのね。
0235デフォルトの名無しさん
2008/05/22(木) 17:27:19if(title_len>=0) printf("%s\n", title_buf);
を
if(title_len>0) printf("%s\n", title_buf);
にしないとエラーチェックになってない
0236デフォルトの名無しさん
2008/05/22(木) 18:18:19GetWindowTextLengthで事前にバッファ長を調べておけば済むだろ
0237デフォルトの名無しさん
2008/05/22(木) 18:27:58この逆のことをするAPI、つまりグリフインデックスから文字列に変換する方法って解りますか?
0238デフォルトの名無しさん
2008/05/22(木) 18:28:29そうだとしても戻り値にNULL文字は数えないって書いてあるから
指定サイズ==戻り値ならあふれてるのでは。
0239デフォルトの名無しさん
2008/05/22(木) 18:31:24馬鹿丸出し
0240デフォルトの名無しさん
2008/05/22(木) 18:37:47しかし長さを調べた直後には別のウィンドウタイトルに変わっているかもしれない
そのアプリケーションがどう振舞うか想定できない
0241デフォルトの名無しさん
2008/05/22(木) 18:50:52(そろそろフックネタ出す奴が現れる頃か)
0242デフォルトの名無しさん
2008/05/22(木) 18:50:58その間にタイトルが書き換わっていたら溢れたかどうかは判らないのね。
0243デフォルトの名無しさん
2008/05/22(木) 19:10:58必要十分なサイズのバッファを渡せば溢れる可能性は無くなる。
LPTSTR buffer = (LPTSTR)malloc(sizeof(TCHAR) * 0x7fffffff);
if (buffer == NULL) {
MessageBox(NULL, _T("この環境では使用できません"), _T("メモリ買いましょう"), 0);
exit(-1);
}
GetWindowText(hwnd, buffer, 0x7fffffff);
0244デフォルトの名無しさん
2008/05/22(木) 20:36:32VirtualAllocのMEM_RESERVEでアドレスだけ確保して、
SEHで動的にメモリを割り当てるのが現実解だな。
0245デフォルトの名無しさん
2008/05/22(木) 20:59:090246デフォルトの名無しさん
2008/05/22(木) 21:19:35ヒント:お前は馬鹿
0247デフォルトの名無しさん
2008/05/22(木) 21:23:100248デフォルトの名無しさん
2008/05/22(木) 21:34:080249デフォルトの名無しさん
2008/05/22(木) 21:51:370250デフォルトの名無しさん
2008/05/22(木) 21:58:090251デフォルトの名無しさん
2008/05/22(木) 22:06:480252デフォルトの名無しさん
2008/05/22(木) 22:25:190253デフォルトの名無しさん
2008/05/22(木) 23:38:500254デフォルトの名無しさん
2008/05/22(木) 23:47:160255デフォルトの名無しさん
2008/05/22(木) 23:49:580256デフォルトの名無しさん
2008/05/22(木) 23:57:590257デフォルトの名無しさん
2008/05/23(金) 00:07:370258デフォルトの名無しさん
2008/05/23(金) 00:35:25溢れる可能性など皆無だが?
溢れるとかなに言ってるんだ?
0259デフォルトの名無しさん
2008/05/23(金) 00:47:090260デフォルトの名無しさん
2008/05/23(金) 06:45:560261デフォルトの名無しさん
2008/05/23(金) 10:20:450262デフォルトの名無しさん
2008/05/23(金) 10:22:110263デフォルトの名無しさん
2008/05/23(金) 10:30:46#include<windows.h>
int main(void)
{
/**/MSG msg;
/**/while(0 < GetMessage(&msg,NULL,0,0)){
/******/switch(msg.message){
/**********/case WM_KEYDOWN:
/**************/puts("keydown");
/**************/break;
/******/}
/**/}
/**/return 0;
}
これで何かkey押してもダメなんだけどどうすればいい?
0264デフォルトの名無しさん
2008/05/23(金) 11:01:410265デフォルトの名無しさん
2008/05/23(金) 11:06:590266デフォルトの名無しさん
2008/05/23(金) 11:52:020267デフォルトの名無しさん
2008/05/23(金) 12:31:48コンソールの場合はどうやるのか気になって
0268デフォルトの名無しさん
2008/05/23(金) 13:12:02テキストの背景色を透過したいんだけど、いい方法ありませんか?
hStatic = CreateWindowEx(0, "STATIC", cString, WS_VISIBLE | WS_CHILD | SS_SIMPLE,
X, Y, Width, Height, hWnd, (HMENU)Static, (HINSTANCE)hInst, NULL);
0269デフォルトの名無しさん
2008/05/23(金) 13:20:550270268
2008/05/23(金) 13:31:00ダメでした。。
レバーコントロールに入れたツールバーにスタティックテキスト置いてます。
hStatic = CreateWindowEx(WS_EX_TRANSPARENT, "STATIC", cString, WS_VISIBLE | WS_CHILD | SS_SIMPLE,
X, Y, Width, Height, hWnd, (HMENU)Static, (HINSTANCE)hInst, NULL);
0271デフォルトの名無しさん
2008/05/23(金) 13:39:400272デフォルトの名無しさん
2008/05/23(金) 13:40:070273デフォルトの名無しさん
2008/05/23(金) 14:12:150274デフォルトの名無しさん
2008/05/23(金) 14:20:000275デフォルトの名無しさん
2008/05/23(金) 14:21:190276デフォルトの名無しさん
2008/05/23(金) 14:23:18"リバーコントロール" の検索結果 約 185 件中 1 - 10 件目 (0.13 秒)
0277デフォルトの名無しさん
2008/05/23(金) 14:27:41それ「レバー」「コントロール」別単語として検索した結果だから
0278デフォルトの名無しさん
2008/05/23(金) 14:27:450279デフォルトの名無しさん
2008/05/23(金) 14:28:42もしかして: レバーコントロール
と出るなw
0281デフォルトの名無しさん
2008/05/23(金) 14:41:49馬鹿
0282デフォルトの名無しさん
2008/05/23(金) 15:02:53リバー ReBar に一致する日本語のページ 約 277 件中 1 - 30 件目 (0.24 秒)
0283デフォルトの名無しさん
2008/05/23(金) 15:28:05つまりレバーと読みたいならパーチーとかボデーとか言ってろってこった
0284デフォルトの名無しさん
2008/05/23(金) 15:33:150285デフォルトの名無しさん
2008/05/23(金) 15:35:160286デフォルトの名無しさん
2008/05/23(金) 15:36:330287デフォルトの名無しさん
2008/05/23(金) 15:39:090288デフォルトの名無しさん
2008/05/23(金) 15:40:320289デフォルトの名無しさん
2008/05/23(金) 15:41:460290デフォルトの名無しさん
2008/05/23(金) 15:43:10という意味だろ
さすが大馬鹿
0291デフォルトの名無しさん
2008/05/23(金) 15:45:370292デフォルトの名無しさん
2008/05/23(金) 15:49:00はずれ
0293デフォルトの名無しさん
2008/05/23(金) 15:51:190294デフォルトの名無しさん
2008/05/23(金) 15:59:11定着していません。
ほとんどの日本人はレバーと聞くと肝臓の事だと認識します。
0295デフォルトの名無しさん
2008/05/23(金) 16:05:500296デフォルトの名無しさん
2008/05/23(金) 16:09:360297デフォルトの名無しさん
2008/05/23(金) 16:11:51Win API ReBar リバー 100件
Yahoo
0298デフォルトの名無しさん
2008/05/23(金) 16:13:410299デフォルトの名無しさん
2008/05/23(金) 16:17:03語源的には同じ
0300デフォルトの名無しさん
2008/05/23(金) 16:17:510301デフォルトの名無しさん
2008/05/23(金) 16:19:220302デフォルトの名無しさん
2008/05/23(金) 16:23:40カタカナ読みに拘ると面倒事になるだけだ
0303デフォルトの名無しさん
2008/05/23(金) 16:27:03このスレで「レバー」だとliverやleverよりは「rebarのことなんだろうなぁ」だろう。
0304デフォルトの名無しさん
2008/05/23(金) 16:27:550305デフォルトの名無しさん
2008/05/23(金) 16:35:18別モノだったのかw
0306デフォルトの名無しさん
2008/05/23(金) 16:44:39では一応「リバー コントロール」でも他のページに見当たらない
0307デフォルトの名無しさん
2008/05/23(金) 16:44:40WM_DISPLAYCHANGEでWM_PAINTを投げたりInvalidateRectを投げたりしましたが再描画されません。
SW_MINIMIZEとSW_NORMALを立て続けに投げる方法は表示される時とされない時があり駄目なようです。
どうすれば解像度変更直後にきちんと再描画出来るようになるのでしょうか。
0308デフォルトの名無しさん
2008/05/23(金) 16:52:59雑談はこれまでだ
0309デフォルトの名無しさん
2008/05/23(金) 16:55:21WM_PAINTで描画してるんだよな?
再描画されないことは無いと思うが、いったいどうやってんの?
再描画されないとは具体的にどうなんのの?
>WM_PAINTを投げたり
まあこれ見て怪しいのはわかるが。
0310デフォルトの名無しさん
2008/05/23(金) 17:01:560311309
2008/05/23(金) 17:02:18WM_PAINTを投げたくなったら、
InvalidateRect → UpdateWindow のコンボで。
InvalidateRect自体は投げてるみたいだから、この場合は解決策じゃないけど。
0312デフォルトの名無しさん
2008/05/23(金) 17:10:39RedrawWindowにRDW_UPDATENOWを指定すればいい
0313デフォルトの名無しさん
2008/05/23(金) 17:17:340314デフォルトの名無しさん
2008/05/23(金) 17:21:43const char* msg[] = {
"↑話を理解してない馬鹿",
"知らないならレスしないでください",
"それぐらい察してほしかったってのが本音"
};
for(;;) post2ch(msg[rand()%3]);
0315デフォルトの名無しさん
2008/05/23(金) 17:32:59スレタイ
0316307
2008/05/23(金) 18:17:10UpdateWindow(hWnd);
RedrawWindow(hWnd, NULL, NULL, RDW_UPDATENOW);
これらを投げても駄目でした。
画像のみを表示するソースはウィンドウを透過すれば(SetLayeredWindowAttributes)特に何もしなくても表示されました。
透過しないとやはり何も表示されません。
CreateWindowExでボタン、ステータスバー、ツールチップを追加している問題のソースではこれらコントロールは再描画されるのに画像が表示される場所はまるで非表示にしたかのように背景色のみになっています。
もう訳が分からないですo...rz。
もしかしたらウィンドウプロシージャの書き方に問題があるのかも知れませんが、以下の各caseのbreak;をreturn 0;に書き換えると何故かウィンドウの挙動も表示もおかしくなり、CPU使用率も100%になってしまいます。
因みに今回の場合はreturn 0;に書き換えても症状は改善しません。
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
{
switch (msg)
{
(中略)
case WM_PAINT:
SetStretchBltMode(hDC, STRETCH_DELETESCANS);
StretchBlt(hDC, 10, 10, 256, 192, hCompatDC, 0, 0, bmp.bmWidth, bmp.bmHeight, SRCCOPY);
break;
(中略)
}
return DefWindowProc(hWnd, msg, wp, lp);
}
0317デフォルトの名無しさん
2008/05/23(金) 18:25:29・・・BeginPaintとEndPaintは・・?
hDCはどこからきたの?
0318デフォルトの名無しさん
2008/05/23(金) 18:28:020319デフォルトの名無しさん
2008/05/23(金) 18:34:01的を射ている
0320デフォルトの名無しさん
2008/05/23(金) 18:44:10いったい何を見て勉強してるんだ?
0321デフォルトの名無しさん
2008/05/23(金) 18:45:070322デフォルトの名無しさん
2008/05/23(金) 19:04:370323デフォルトの名無しさん
2008/05/23(金) 19:18:070324デフォルトの名無しさん
2008/05/23(金) 19:19:40クラス程度は作っておくと便利よ。
0325デフォルトの名無しさん
2008/05/23(金) 19:27:380326デフォルトの名無しさん
2008/05/23(金) 19:30:540327デフォルトの名無しさん
2008/05/23(金) 19:33:07死ぬほど面倒じゃん
0328316
2008/05/23(金) 19:39:21(中略)
BeginPaint(hWnd, &ps);
SetStretchBltMode(hDC, STRETCH_DELETESCANS);
StretchBlt(hDC, 10, 10, 256, 192, hCompatDC, 0, 0, bmp.bmWidth, bmp.bmHeight, SRCCOPY);
EndPaint(hWnd, &ps);
return 0;
にしたら正常に表示されました。本当にありがとうございました。
一見正常に動いていたのはDefWindowProcに処理を回していたからなんですね。
因みに参考にしたサイトはこちらです。
Programing Place
ttp://www.geocities.jp/ky_webid/index.html
>>324-327
VC++2008EEでC及びC++の勉強中です。
まだC++はまともに使えないのでクラスの使い方も(VB.NETやC#はともかく)分かりません。
今後の課題としてクラスの勉強を始めようと思います。
0329デフォルトの名無しさん
2008/05/23(金) 19:43:13>描画の処理を行うとき、必ずBeginPaint()とEndPaint()を使って、描画処理を挟み込む形を取っていましたが、これは必ずそうしなければなりません。
って書いてるじゃん
0330デフォルトの名無しさん
2008/05/23(金) 19:44:22そこ、前スレにもトンデモサイトとして出てたよ
特にこれ
ttp://www.geocities.jp/ky_webid/win32c/022.html
以下を次スレからテンプレ化キボン
●参考すべきでない所
Programing Place
ttp://www.geocities.jp/ky_webid/index.html
0331デフォルトの名無しさん
2008/05/23(金) 19:44:23志村!足りない!足りない!
0332デフォルトの名無しさん
2008/05/23(金) 19:45:320333デフォルトの名無しさん
2008/05/23(金) 19:46:420334デフォルトの名無しさん
2008/05/23(金) 19:47:04hDCはBeginpaintの戻り値かps.hdc 使う
0335デフォルトの名無しさん
2008/05/24(土) 06:15:24ただ、これ一回の呼び出しで行われる処理内容を考慮すると、使わない理由が無いな。
0336デフォルトの名無しさん
2008/05/24(土) 07:17:06それよりお勧めサイト書いてくれたほうがうれしい
0337デフォルトの名無しさん
2008/05/24(土) 07:52:52英語版MSDN
0338デフォルトの名無しさん
2008/05/24(土) 10:56:51CreateMenuでよくアプリケーション上部にあるFile(F)とか表示(V)のようなメニュー作成しています。
メインウィンドウのサイズを変更したとき、Menuのサイズを変更しないようにしたいです。
メニューの横幅固定で。この場合、メニューサイズを固定するAPIか、メニューの構造体に横幅指定することができるとか
方法がありましたら、ご教示ください。よろしくおねがいします。
環境はVC + SDKです。
0339デフォルトの名無しさん
2008/05/24(土) 10:58:480340デフォルトの名無しさん
2008/05/24(土) 11:35:06苦労の割に見返りがサイズ固定だけって泣けるけど
0341デフォルトの名無しさん
2008/05/24(土) 11:44:030342338
2008/05/24(土) 11:48:09勉強中なので間違ってるかもしれないですが、CreateMenuで作成してもWNDCLASSEXで
wc.lpszMenuName=MAKEINTRESOURCE( IDR_MENU);登録にしても、
結局はメインウィンドウの再描画に巻き込まれる形になるので、ちらつきます。
Janeとかのメニューはどうやって実現してるのかなぁ。。
0343338
2008/05/24(土) 12:54:04お騒がせしました。
0344デフォルトの名無しさん
2008/05/24(土) 12:57:53IEのメニューはツールバーで出来てるが
コマンドバーって呼ばれてる
WTLにCCommandBarCtrlってクラスがあるけどこれはバグが多すぎてあまり使えない
0345デフォルトの名無しさん
2008/05/24(土) 14:20:04CCommandBarCtrlのバグって例えばどんな?
0346デフォルトの名無しさん
2008/05/24(土) 15:09:32とりあえず致命的なのを2点ほど
メニューをクリックするとCommandBarにフォーカスを持って行かれる
→フォーカスを元に状態設定を行っていると正常に機能しなくなる
IEのようなReBar上で右クリックメニューを出すようなのを作っていると
メニューが出ているときにメニュー項目上で右クリックすると落ちることがある
→DoTrackPopupMenuに再入してしまうのが原因なので適当にフラグ立てて回避するしかない
Donut系ブラウザはこの辺のバグを回避するためにCCommandBarCtrlを使っていない
俺もこの辺のバグを回避するためにDonutのソースを参考にして自作した
0347デフォルトの名無しさん
2008/05/24(土) 15:10:10>メインウィンドウのサイズを変更したとき、Menuのサイズを変更しない
??
ウインドウを小さくした時メニューがはみ出してもいいの?
変なアプリーw
0348デフォルトの名無しさん
2008/05/24(土) 15:15:160349デフォルトの名無しさん
2008/05/24(土) 15:15:46そういうのはコマンドバーって言うんだよっていうのが以後の流れ
0350デフォルトの名無しさん
2008/05/24(土) 15:40:07Windows XPで外部信号に対して±10mS程度以内で
応答を返すことは可能なのでしょうか?
0351デフォルトの名無しさん
2008/05/24(土) 15:51:280352デフォルトの名無しさん
2008/05/24(土) 16:26:25近頃のWindowsは糞だなぁ
0353デフォルトの名無しさん
2008/05/24(土) 16:31:120354デフォルトの名無しさん
2008/05/24(土) 16:53:26それはさておき、「何らかのインターネット接続が存在するかどうか」を知る方法はありますか?
今は自分のグローバルIPアドレスに対してpingを打っているのですが、激しく間違っている気がします。
0355デフォルトの名無しさん
2008/05/24(土) 16:58:33ネットワーク相談室の方がいい気がする。。
0356デフォルトの名無しさん
2008/05/24(土) 17:05:24wininetでonline/offlineをとるとか
0357デフォルトの名無しさん
2008/05/24(土) 17:31:55InternetGetConnectedStateEx だろう。
0358デフォルトの名無しさん
2008/05/24(土) 17:50:12インターネット環境が無いと使えない某ソフトが確かそのAPIでチェックしてたような
勿論nopで埋めうわ何をするやmくぁwせdrftgyふじこlp
0359デフォルトの名無しさん
2008/05/24(土) 18:02:39日本語でそっち関連の情報を提供してるとこある?
中国語とかならわんさかあるんだけど...
0360デフォルトの名無しさん
2008/05/24(土) 18:06:37スレ違いな上にグレーゾーンな事をここで聞くな馬鹿
0361デフォルトの名無しさん
2008/05/24(土) 18:09:26英語を苦にしないならMSDN。
ていうか、なんで日本語版にはwininet関数が載ってないんだ。
0362デフォルトの名無しさん
2008/05/24(土) 18:22:47そもそもMSKBですら最近は機械翻訳だらけだし、中国語とかの方が翻訳されてるなんておかしい
もう日本のIT技術者は世界から見捨てられてるという事?
0363デフォルトの名無しさん
2008/05/24(土) 18:23:14デバイスドライバならともかく、
一介のアプリケーションで100%確実の保証は絶対無理だな。
0364デフォルトの名無しさん
2008/05/24(土) 18:24:59おかげで、英語を読むことの抵抗感がなくなったから感謝しているw
日本のIT技術者はもっと世界に羽ばたけということだよ。
0365デフォルトの名無しさん
2008/05/24(土) 18:26:49正解
0366デフォルトの名無しさん
2008/05/24(土) 18:32:43日本のプログラマはもう用済みなんだろうな
0367デフォルトの名無しさん
2008/05/24(土) 18:39:150368デフォルトの名無しさん
2008/05/24(土) 18:41:12すぐにプログラマから足を洗って商売でも始めるんだ。
0370デフォルトの名無しさん
2008/05/24(土) 18:47:08そのくらいの精度なら、大抵の環境で余裕だろ。
0371デフォルトの名無しさん
2008/05/24(土) 18:47:3650±10ms ぐらいなら可能なはず。
Windows のタイマの精度が 16ms ぐらいだから結構ギリだがな。
リアルタイム性を Windows に求めるのは少しつらいかも知れん。
0372デフォルトの名無しさん
2008/05/24(土) 18:48:520373デフォルトの名無しさん
2008/05/24(土) 19:16:19http://msdn.microsoft.com/en-us/library/ms712704(VS.85).aspx
0374デフォルトの名無しさん
2008/05/24(土) 19:34:05SS_BITMAPを指定してスタティックコントロールを作って画像を表示した場合、画像がウィンドウより大きいとはみ出しますが、StretchBlt()のように固定サイズ内での縮小表示は出来ますか。
事前に何処かで縮小処理を行ったビットマップを読むしかないのでしょうか。
0375デフォルトの名無しさん
2008/05/24(土) 19:38:28つ SS_REALSIZECONTROL
XP以降でダイアログのビットマップやアイコンが潰れてる元凶
0376350
2008/05/24(土) 19:50:25出来たとしても15mSくらいが限界なんでしょうな。
全然分ってないけど、デバイスドライバーにすればタイムスライスの
壁は越えられるのでしょうか。。
0377デフォルトの名無しさん
2008/05/24(土) 19:51:39手書きでリソースファイルを修正したら出来ました、ありがとうございます。
ResEdit1.4.3のバグでSS_REALSIZECONTROLをtrueにしてもリソースファイルに反映されないのが原因だったようです。
0378デフォルトの名無しさん
2008/05/24(土) 20:04:34何故か、自動的にCreateWindowExAと解釈されてしまうのですが……。
ちなみに環境はVC++2008ExpOSはXP使ってます。
0379デフォルトの名無しさん
2008/05/24(土) 20:08:38マクロのコンパイルエラーだった。
0380デフォルトの名無しさん
2008/05/24(土) 20:21:55タイムスライスの壁は越えられないこともないが下手な実装だと Windows 全体が不安定になるわな。
デバイス側から割り込みをかけられる機構があるなら手っ取り早い。(割り込みはほぼ最大優先度で処理されるため。)
0381デフォルトの名無しさん
2008/05/24(土) 20:51:01?等が入っている場合があるのですが、これは問題ないのですか?
0382デフォルトの名無しさん
2008/05/24(土) 20:58:11問題あり
ウイルスに感染していると自動的に?等が入る仕組みなので中身を見る前に捨てましょう
0383デフォルトの名無しさん
2008/05/24(土) 21:02:10例えば
.cgi?name=abcd等では?
0384デフォルトの名無しさん
2008/05/24(土) 21:07:510385デフォルトの名無しさん
2008/05/24(土) 21:12:11ファイルの新規作成では?使えないのに
CreateFileが?使えるのは何故ですか?
0386デフォルトの名無しさん
2008/05/24(土) 21:14:13> Windows XPで外部信号に対して
今実装してる方法では、どうやって信号取得してるの?
もうちょっと話が具体的にならないと、これ以上アドバイスできない。
0387デフォルトの名無しさん
2008/05/24(土) 21:14:41Explorerのバグだろ
".htaccess"とかも作成できない
0388デフォルトの名無しさん
2008/05/24(土) 21:17:57バグですか、
?をファイル名に含むファイルをプログラムが生成する事に何か問題はありますか?
0389デフォルトの名無しさん
2008/05/24(土) 21:19:35MSに聞け
0390デフォルトの名無しさん
2008/05/24(土) 21:20:20あなたの予想で構いません
0391デフォルトの名無しさん
2008/05/24(土) 21:21:51それについてはこういう理由
ttp://blogs.msdn.com/oldnewthing/archive/2008/04/14/8389268.aspx
0392デフォルトの名無しさん
2008/05/24(土) 21:25:46ありがとうございます。
0393デフォルトの名無しさん
2008/05/24(土) 21:34:14以前その記事を見てバグだと確信した
・拡張子を表示しない設定にしていても".txt"のようなファイル名は拡張子含めて表示すればいい
・拡張子を表示する設定にしていれば".txt"のようなファイルを作成できるようにすればいい
・そもそも拡張子を表示しない設定なんて不要 (セキュリティ的に)
選択肢は色々あるし、.htaccessなんて比較的PCに詳しくない人間でも作る時代なのに
Win95以来から今に至るまで放置状態なんて開発者の傲慢だろ
自分でシェル拡張作れとか、もうアホかと
0394デフォルトの名無しさん
2008/05/24(土) 21:39:210395350
2008/05/24(土) 21:39:23未だ具体的な実装レベルの話にはなっていません。
Windowsで10mS応答は無理(?)なのでリアルタイム処理が必要な
部分は機器側で実装しないと無理〜・・・のような話をしている段階です。
0396デフォルトの名無しさん
2008/05/24(土) 21:41:23Macみたいにファイルの先頭にゴミ付けて識別するのもどうかと思う
0397デフォルトの名無しさん
2008/05/24(土) 21:41:52APサーバからファイルサーバ上の複数のFTPサイトに対して、ファイルをFTP PUTするサービスがあるのですが、
特定のFTPサイトだけ「550 access denied」になってしまいます。
ファイルサーバ上のFTPサイトは「書き込み:可」になっていますし、フォルダの権限も同様です。
新規ファイルのPUTなので上書きに失敗している訳でもありません。
使用しているユーザーは共通のものを使っているので、他のFTPサイトにPUTできることから、
権限は足りていると判断しています。でも、アクセス拒否エラーが発生してしまいます。
ファイルサーバを再起動しても改善しません。
このような場合、他にどの点を疑って調査すれば良いでしょうか?
0398デフォルトの名無しさん
2008/05/24(土) 21:41:520399デフォルトの名無しさん
2008/05/24(土) 21:42:41いつの話?
0400デフォルトの名無しさん
2008/05/24(土) 21:44:260401デフォルトの名無しさん
2008/05/24(土) 21:45:27つExplorer
0402デフォルトの名無しさん
2008/05/24(土) 21:47:09Vistaで間に合わなかったアレか
0403デフォルトの名無しさん
2008/05/24(土) 21:49:16いやちょっとまて、一体どこを読んだらそういう解釈になるんだよ。
そりゃまあ、世の中には.htaccessぐらい余裕で書ける婆ちゃんがいるかもしれんさ。
でもな、世の中はそーじゃねーんだよ。
だから一番バカに合わせておくんだ。
0404デフォルトの名無しさん
2008/05/24(土) 21:49:440405デフォルトの名無しさん
2008/05/24(土) 21:54:14いやMS以外で
0406デフォルトの名無しさん
2008/05/24(土) 21:54:27バカはPCを使わなくていい
バカに合わせると使いづらくなるだけ
バカは紙と鉛筆で十分
0407デフォルトの名無しさん
2008/05/24(土) 21:55:390408デフォルトの名無しさん
2008/05/24(土) 21:56:410409デフォルトの名無しさん
2008/05/24(土) 22:03:45Windowsのファイルシステム系APIを使うほぼ全てのアプリがそうじゃない?
バイナリフォーマットを扱うアプリであれば、最初に拡張子で選別して、次に中身を見るだろうけど。
(適切かつ安全に見ることができないアプリも多いが)
0410デフォルトの名無しさん
2008/05/24(土) 22:09:350411デフォルトの名無しさん
2008/05/24(土) 22:16:110412デフォルトの名無しさん
2008/05/24(土) 22:18:000413デフォルトの名無しさん
2008/05/24(土) 22:21:45NTFSなら副次ストリームとか使えるけど、
古いファイルシステムも捨てられない。
Windowsは互換性をけっこう気にするからな。
0414デフォルトの名無しさん
2008/05/24(土) 22:27:31USBメモリやSD/CFカードではまだまだ現役バリバリだろ
0415デフォルトの名無しさん
2008/05/24(土) 22:30:02CreateWindowとCreateWindowExだったら、
どっちでもいいときは好きなほうを使えばいい。
仮に、CreateWindowが実在したとしても、どうせ中でCreateWindowExを呼ぶだけ。
それだったらCreateWindowはヘッダでCreateWindowExに展開する今の方式なら、
システムDLLがCreateWindowの実装を省ける分サイズ削減できる。
0416デフォルトの名無しさん
2008/05/24(土) 23:24:53大抵内部で〜Exを呼んでる (LoadLibraryとか)
むしろマクロで済ませてるCreateWindowが特殊
0417デフォルトの名無しさん
2008/05/24(土) 23:50:2110mS精度ぐらいならおおむねできるけど、ほかの処理で数百ミリ遅れることは多々ある。だからリアルタイムを現実的に無理。デバイスドライバでも同じ。
でもHALでリアルタイム実行させたり、windowsを仮想化させてリアルタイム実行させるるソフトがあるから、リアルタイムHALやRTXでググってみれれ
0418デフォルトの名無しさん
2008/05/25(日) 09:35:17ほかのFTPソフトを使うとそのサイトにはうpできるんんか?
0419デフォルトの名無しさん
2008/05/25(日) 09:53:000420デフォルトの名無しさん
2008/05/25(日) 10:01:00w
0421デフォルトの名無しさん
2008/05/25(日) 10:02:13実行させるるソフト
ググってみれれ
今時カナ打ちかよw
0422デフォルトの名無しさん
2008/05/25(日) 10:41:500423デフォルトの名無しさん
2008/05/25(日) 10:45:000424デフォルトの名無しさん
2008/05/25(日) 10:47:130425デフォルトの名無しさん
2008/05/25(日) 10:51:250426デフォルトの名無しさん
2008/05/25(日) 10:56:240427デフォルトの名無しさん
2008/05/25(日) 11:07:290428デフォルトの名無しさん
2008/05/25(日) 11:09:03いくら読みがなを早く入力できたからといって、それほど早くはならない気がする。
完璧に変換してくれるIMEは存在しないし。
0429デフォルトの名無しさん
2008/05/25(日) 11:28:270430デフォルトの名無しさん
2008/05/25(日) 12:54:12それともひまわりでプログラミングしてるのか?
0431デフォルトの名無しさん
2008/05/25(日) 12:57:080432デフォルトの名無しさん
2008/05/25(日) 13:04:24とりあえず君がカナ入力マンセーなのは分かったからもういいよ
0433431 = 424 = 422;
2008/05/25(日) 13:07:11違う。俺はローマ字入力。事実を伝えただけ。スレ違いなので終わる。
0434デフォルトの名無しさん
2008/05/25(日) 13:08:420435デフォルトの名無しさん
2008/05/25(日) 13:14:17/* ここまで雑談 */
0436デフォルトの名無しさん
2008/05/25(日) 13:15:51431 = 424 = 422;
↑
こうやって反射的にセミコロンを付けてしまう事ってよくあるよねw
0438デフォルトの名無しさん
2008/05/25(日) 13:23:080439デフォルトの名無しさん
2008/05/25(日) 13:31:24リアルでも空気読めなくて周囲からウザく思われてるんだろうな
0440デフォルトの名無しさん
2008/05/25(日) 13:34:53いい加減ウザイよ君
0441デフォルトの名無しさん
2008/05/25(日) 15:33:05質問来ても、その調子なら邪魔以外の何者でもないが・・・
0442デフォルトの名無しさん
2008/05/25(日) 16:37:35Win32API使わないとだめ?
0443デフォルトの名無しさん
2008/05/25(日) 17:05:300444デフォルトの名無しさん
2008/05/25(日) 18:55:52DOSアプリからなら使えるよ。32ビットアプリだとクラッシュ。
9x系だと確か一部のものはクラッシュしなかったような?
動かないだろうけど
0445デフォルトの名無しさん
2008/05/25(日) 19:09:09後半二行の不確かな情報は要りません
0446デフォルトの名無しさん
2008/05/25(日) 20:43:34DOSアプリのみということは、
Win32 コンソールアプリではだめなのか
なるほど
0447デフォルトの名無しさん
2008/05/25(日) 20:46:32問題あるってことですよね?XPのペイントで書いてみたのが問題ですか?
0448デフォルトの名無しさん
2008/05/25(日) 20:48:03決まりがあったような気がする。
0449デフォルトの名無しさん
2008/05/25(日) 20:50:56icon≠windows bitmap
そもそもフォーマットが違います
アイコンエディタを使いましょう
0450デフォルトの名無しさん
2008/05/25(日) 20:57:13それはgoogle検索で出てきたので、32×32にしてます。
>>449
そうなんですか、分かりました。
皆さんありがとうございました。
0451デフォルトの名無しさん
2008/05/25(日) 21:23:51最近のバージョンのRC.EXEでは直ってるの?
0452デフォルトの名無しさん
2008/05/25(日) 21:48:199xで、32ビットアプリケーションからファンクションコールをするとしたら、
DeviceIoControlを呼ぶのが正式な手段。全部使えるわけではないけど、
ディスクを直接読み書きするときとかに使った。
0453デフォルトの名無しさん
2008/05/25(日) 22:00:330454デフォルトの名無しさん
2008/05/26(月) 00:19:42なんかできないんだよね。
SetClassLong(hWnd, GCL_WNDPROC, (LONG)AnotherMyWindowProc);
この関数を用いる上でなんか注意点ある?
マウスやアプリのアイコン変更も反映されないんだけど。
0455デフォルトの名無しさん
2008/05/26(月) 00:33:580456デフォルトの名無しさん
2008/05/26(月) 00:43:49そのオッサンのやりとりにお前が絡む必要はないのに、何が乙なんだ
0457デフォルトの名無しさん
2008/05/26(月) 00:45:430458デフォルトの名無しさん
2008/05/26(月) 01:04:430459デフォルトの名無しさん
2008/05/26(月) 01:06:410460デフォルトの名無しさん
2008/05/26(月) 01:09:56わろた
0461デフォルトの名無しさん
2008/05/26(月) 01:17:490462454
2008/05/26(月) 01:24:30ここみてる限り間違ってないと思うんだがナー
0463デフォルトの名無しさん
2008/05/26(月) 01:33:14それは良かったですね
0464デフォルトの名無しさん
2008/05/26(月) 01:37:500465デフォルトの名無しさん
2008/05/26(月) 01:53:01赤字で書いてるとこと違う事をしてるのは、分かっててやってるの?
変更したクラスから新しくウィンドウを作るってんなら、それでいいんだけど。
0466デフォルトの名無しさん
2008/05/26(月) 11:46:16SetWindowLong、SetWindowLongPtr、SetWindowSubclass使えよ
0467デフォルトの名無しさん
2008/05/26(月) 11:53:56ぱっと見てスルーしてたけど、SetClassLong使ってたのか
0468デフォルトの名無しさん
2008/05/26(月) 12:56:47VS2005なら、Windows SDK6.0だか6.1入れてCLやRCをそちら付属品を
使うようにすればVista圧縮形式に対応できる。
VS2008はRCでもMSDEVリソースエディタでも標準サポート
0469デフォルトの名無しさん
2008/05/26(月) 15:43:249xだと本当にDOSが動いてるからね。
NTだと単なるエミュだし
0470デフォルトの名無しさん
2008/05/26(月) 15:52:02さんくす
RC.EXEだけでも入れ替えておけばビルド後のイベントでゴニョゴニョする必要は無さそうだw
IDEのリソースエディタでアイコンなんて作らないからそっちはまぁいいや
0471デフォルトの名無しさん
2008/05/26(月) 16:26:48VS2005だと、圧縮形式アイコンが含まれる.rcファイルがMSDEVで開けないんで注意
0472デフォルトの名無しさん
2008/05/26(月) 16:35:26そんな俺はVC6ユーザー
0473デフォルトの名無しさん
2008/05/26(月) 17:01:52このような四角いボタンってどうやって作るんですか?
0474デフォルトの名無しさん
2008/05/26(月) 17:03:040475デフォルトの名無しさん
2008/05/26(月) 17:09:140476デフォルトの名無しさん
2008/05/26(月) 17:25:532. ImageList を作る
3. [×] のビットマップを作る
4. 3. のビットマップを 2. の ImageList に追加する
5. ImageList を Toolbar にセットする
6. Toolbar に 3. のビットマップを持つボタンを追加する
0477デフォルトの名無しさん
2008/05/26(月) 18:08:230478デフォルトの名無しさん
2008/05/26(月) 18:08:570479デフォルトの名無しさん
2008/05/26(月) 18:55:43lpAppNameにセクション名
lpKeyNameにキー名
lpStringにNULL
lpFileNameにiniファイルのパスを指定すると
指定したセクション内のキーが消える
0480デフォルトの名無しさん
2008/05/26(月) 19:04:01まじっすか^^
WritePrivateProfileStringで値をNULLにすると消えるんですね
これは知らなかった。ありがとうございます!
0481479
2008/05/26(月) 19:04:520482デフォルトの名無しさん
2008/05/26(月) 19:05:090483デフォルトの名無しさん
2008/05/26(月) 19:05:36そこに説明もあると思うんだがなあ
0484デフォルトの名無しさん
2008/05/26(月) 19:33:34ここで質問するだけで丁寧な解説が日本語で得られる
お人好しな人間ほどうまく扱えば便利なものは無い
というのが俺の妄想
一応言っとくが俺はちゃんとMSDNで調べる派だからな
0485デフォルトの名無しさん
2008/05/26(月) 19:36:570486デフォルトの名無しさん
2008/05/26(月) 19:40:390487デフォルトの名無しさん
2008/05/26(月) 19:45:040488デフォルトの名無しさん
2008/05/26(月) 20:31:16ビルドは通るが、CreateWindowExでウィンドウ作成した時点で、'hoge, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' から
型 '_IMAGELIST' を読み込めません。って出て落ちるんだけど・・・
0489デフォルトの名無しさん
2008/05/26(月) 20:37:28このコマンドに限らずブート領域を書き込めるのって同じやり方だと思うんだけぢ
少なくともfoutやCopyFileではなさそう。
0490デフォルトの名無しさん
2008/05/26(月) 20:39:08どこの方言でぢか?
0491デフォルトの名無しさん
2008/05/26(月) 20:43:520492デフォルトの名無しさん
2008/05/26(月) 20:47:15知らんけど
0493デフォルトの名無しさん
2008/05/26(月) 20:55:32DDKを見ましょうね。
0494デフォルトの名無しさん
2008/05/26(月) 21:04:430495デフォルトの名無しさん
2008/05/26(月) 23:06:57NTならCreateFileで"\\\\.\\A:"のようにすると生のドライブを開ける。SDKにも書いてある。
9xなら>>452。KB125712やKB174569など。
0496デフォルトの名無しさん
2008/05/26(月) 23:10:480497デフォルトの名無しさん
2008/05/26(月) 23:27:500498デフォルトの名無しさん
2008/05/26(月) 23:56:37クラスのメンバ関数をウィンドウプロシージャにできないのが、
理屈ではよくわかるんですけど、なんか納得できなくてw
static使って場合分けするのもなんか反則的というか、やりたいことと違う気がして…
クラスのコンストラクタで関数を動的に作ってコントロールのプロシージャとして使い、
デストラクタでコントロールは期すると共に関数も破棄できないかなぁと。
…ゴメンナサイ、なんかもう投げやりです。
0499デフォルトの名無しさん
2008/05/27(火) 00:06:12各クラス内の自作プロシージャにそれぞれ処理を割り振ったりすれば良いんじゃない?
0500デフォルトの名無しさん
2008/05/27(火) 00:09:060501デフォルトの名無しさん
2008/05/27(火) 00:10:070502489
2008/05/27(火) 00:11:11DeviceIoControl
WriteFile
でなんかフロッピーに出してるのは判った
しかしこの方法でフロッピーの中にファイルを作る方法がわからなう
0503デフォルトの名無しさん
2008/05/27(火) 00:13:470504デフォルトの名無しさん
2008/05/27(火) 00:14:44http://web.archive.org/web/20070810174250/http://techtips.belution.com/ja/vc/0009/
ようするに、静的メンバ関数の中から
何らかの方法でウィンドウに対応するオブジェクトを得て、
そのオブジェクトの非静的メンバ関数に処理を渡せばいい。
ウィンドウクラスの場合、次のようなものを使って
オブジェクトへのポインタを保存する例が多い。
Get/SetProp
Get/SetWindowLongPtrとウィンドウクラスごとの追加データ
Get/SetWindowLongPtrとGWLP_USERDATA
ちなみに、ATLは本当に動的に関数を作って対処している。
http://hp.vector.co.jp/authors/VA022575/c/msgmap.html
0505デフォルトの名無しさん
2008/05/27(火) 00:16:02逆に、ファイルがある状態のフロッピーディスクを
吸い出して中身を眺める、もちろんFATの構造の解説と一緒に。
0506デフォルトの名無しさん
2008/05/27(火) 02:10:13検索で調べると必ず .rc への記述方法が紹介されてますが、
.rc を経由せずに .cpp のプログラムのみで設定って出来るんでしょうか?
よろしくお願い致します。
0507デフォルトの名無しさん
2008/05/27(火) 03:17:45何がしたいのかよくわからんが
フロッピーの中にファイルを作るのならばCreateFileでいいと思うが。
diskcopyだったらセクタを全部コピーすればいい
0508デフォルトの名無しさん
2008/05/27(火) 07:09:570509デフォルトの名無しさん
2008/05/27(火) 07:58:260510デフォルトの名無しさん
2008/05/27(火) 08:25:20atlthunk.cppが凄い
てかこんなのMSの中の人でないと書けないだろw
0511デフォルトの名無しさん
2008/05/27(火) 08:45:38MFCはHWNDとベースクラスへのポインタを、
いわば、std::map< HWND, Hoge >的なもので管理していて、メッセージが来るたびに検索してると聞いたが。
0512デフォルトの名無しさん
2008/05/27(火) 09:33:10実際に中身を見てから言って欲しいね
0513デフォルトの名無しさん
2008/05/27(火) 09:46:490514デフォルトの名無しさん
2008/05/27(火) 09:52:23いいから当該ソースを見ろ
0515デフォルトの名無しさん
2008/05/27(火) 10:24:54DialogProc内から例外をthrow(あるいはRaiseException)したところ、
WinMainで正常にcatch出来ました。
ところがDialogProcからさらに孫ダイアログを作成し、
孫ダイアログのDialogProc内から例外をthrowしたところ、
子ダイアログのDialogProcでcatch出来たのですが、
return後にAccess violationで落ちてしまいました。
どうすればreturn後に処理を続行できるのでしょうか?
0516デフォルトの名無しさん
2008/05/27(火) 10:27:53INT_PTR CALLBACK proc2(HWND wnd, UINT msg, WPARAM w, LPARAM) {
switch (msg) {
case WM_INITDIALOG: return TRUE;
case WM_COMMAND:
switch (LOWORD(w)) {
case IDOK:
EndDialog(wnd, LOWORD(w));
throw std::exception("HOGE!"); // 例外をthrow
case IDCANCEL: EndDialog(wnd, LOWORD(w)); return TRUE;
} break; } return FALSE;
}
INT_PTR CALLBACK proc1(HWND wnd, UINT msg, WPARAM w, LPARAM) {
switch (msg) {
case WM_INITDIALOG: return TRUE;
case WM_COMMAND:
switch (LOWORD(w)) {
case IDOK:
try {
DialogBox(GetModuleHandle(0), MAKEINTRESOURCE(IDD_2), wnd, proc2);
} catch (const std::exception&) {}
return TRUE; // return後にAccess violation
case IDCANCEL: EndDialog(wnd, LOWORD(w)); return TRUE;
} break; } return FALSE;
}
int WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPSTR, int) {
try {
DialogBox(GetModuleHandle(0), MAKEINTRESOURCE(IDD_1), 0, proc1);
} catch (const std::exception&) {
} catch (...) {} return 0;
}
0517デフォルトの名無しさん
2008/05/27(火) 10:44:00C++以外のスタックフレームを飛び越えるthrow〜catchって
頭の悪いlongjmpと同じだと思うがどうか
0518デフォルトの名無しさん
2008/05/27(火) 11:01:230519デフォルトの名無しさん
2008/05/27(火) 11:07:350520デフォルトの名無しさん
2008/05/27(火) 11:11:360521デフォルトの名無しさん
2008/05/27(火) 11:13:220522デフォルトの名無しさん
2008/05/27(火) 11:17:36どうせ知らないだろーけど
0523デフォルトの名無しさん
2008/05/27(火) 11:36:08VarR8FromStr
0524デフォルトの名無しさん
2008/05/27(火) 12:23:01wsscanfならMSのFTP鯖にソースが置いてある
Win16時代の物みたいだから今でも使えるかどうかは知らん
0525デフォルトの名無しさん
2008/05/27(火) 12:30:580526デフォルトの名無しさん
2008/05/27(火) 12:52:430527デフォルトの名無しさん
2008/05/27(火) 13:07:360528デフォルトの名無しさん
2008/05/27(火) 14:28:31可変長なのにどうやって呼び出し先でスタックポインタを戻せるんだよ
0529デフォルトの名無しさん
2008/05/27(火) 15:10:260530デフォルトの名無しさん
2008/05/27(火) 15:13:58キモいよ
0531デフォルトの名無しさん
2008/05/27(火) 15:14:000532デフォルトの名無しさん
2008/05/27(火) 15:16:090533デフォルトの名無しさん
2008/05/27(火) 15:23:220534デフォルトの名無しさん
2008/05/27(火) 15:31:180535デフォルトの名無しさん
2008/05/27(火) 15:35:03ノ
(゚Д゚)
( (7
< ヽ
0536デフォルトの名無しさん
2008/05/27(火) 15:38:250537デフォルトの名無しさん
2008/05/27(火) 15:44:25なんだその態度は!!
0538デフォルトの名無しさん
2008/05/27(火) 16:42:51デバッグビルドなら呼び出し後にchkstkでESPがチェックされるから大抵気付く
0539デフォルトの名無しさん
2008/05/27(火) 18:25:05SendMessage関数でWM_MOVEを送っても移動しないことがあります。
0540デフォルトの名無しさん
2008/05/27(火) 18:26:36それで動くウインドウがあるのか?
0541デフォルトの名無しさん
2008/05/27(火) 18:28:350542デフォルトの名無しさん
2008/05/27(火) 18:29:27MoveWindow 関数で
0543デフォルトの名無しさん
2008/05/27(火) 18:30:300544デフォルトの名無しさん
2008/05/27(火) 18:32:300545デフォルトの名無しさん
2008/05/27(火) 19:17:01WM_SIZEを送ると動くウィンドウならあるよ
0546デフォルトの名無しさん
2008/05/27(火) 19:29:000547デフォルトの名無しさん
2008/05/27(火) 19:49:39遅レスすいません。
プロシージャ内で気軽にSTLなどを使いたかったのですが、邪道だったでしょうか・・・。
とりあえずプロシージャをreturnする前に全てcatchする方向で再考してみます。
0548デフォルトの名無しさん
2008/05/27(火) 19:50:200549デフォルトの名無しさん
2008/05/27(火) 19:53:30面白くないよ
0550デフォルトの名無しさん
2008/05/27(火) 20:02:120551デフォルトの名無しさん
2008/05/27(火) 20:07:350552デフォルトの名無しさん
2008/05/27(火) 20:09:170553デフォルトの名無しさん
2008/05/27(火) 20:09:49はいはいわろす
0554デフォルトの名無しさん
2008/05/27(火) 20:11:58ワロタw
0555デフォルトの名無しさん
2008/05/27(火) 20:41:01VC++ではC++例外を構造化例外で実装してるようだから捕まえられるかもしれないけど
C++言語的には未定義動作だからやめた方がいい
0556デフォルトの名無しさん
2008/05/27(火) 20:56:03今時VC++以外でWin32開発してる奴の方が悪い
0557デフォルトの名無しさん
2008/05/27(火) 20:57:480558デフォルトの名無しさん
2008/05/27(火) 21:27:35というか終わりません
0559デフォルトの名無しさん
2008/05/27(火) 22:08:580560デフォルトの名無しさん
2008/05/27(火) 22:13:150561デフォルトの名無しさん
2008/05/27(火) 22:13:380562デフォルトの名無しさん
2008/05/27(火) 22:39:04その場合はエラーログ書いたりメッセージ出したりして、
とっととExitProcessするだけだな。
0563デフォルトの名無しさん
2008/05/28(水) 11:16:090564デフォルトの名無しさん
2008/05/28(水) 18:11:400565デフォルトの名無しさん
2008/05/28(水) 18:21:520566デフォルトの名無しさん
2008/05/28(水) 19:41:40C、C++に挫折した馬鹿しか使わない言語という事ですね?
0567デフォルトの名無しさん
2008/05/28(水) 20:34:14{
HMODULE hModule;
HBITMAP hBitmap;
int count = 0;
std::wcout.imbue(std::locale("japanese"));
while (1)
{
hModule = LoadLibrary(L"hoge.exe"); //単一で数MBのBMPリソースのあるファイル
hBitmap = LoadBitmap((HINSTANCE)hModule, L"#200"); //そのリソース番号
if (!hBitmap)
{
FreeLibrary(hModule);
std::wcout << L"画像読み込み失敗" << std::endl;
return 1;
}
FreeLibrary(hModule);
count++;
std::cout << count << std::endl;
}
return 0;
}
大した回数(自分の環境では45回)も行かない内に画像リソースの読み込みに失敗します。
原因は何でしょうか。
環境はWinXP Home SP3、VC++2008EEです。
上記はあくまで耐久テスト用ですが、実際のソフトも仕様上ファイルのロード→アンロード回数は予測出来ません。
0568デフォルトの名無しさん
2008/05/28(水) 20:43:12MSDNライブラリでLoadBitmap引いたらちゃんと注意書きがあるから嫁。
0569デフォルトの名無しさん
2008/05/28(水) 20:43:21DeleteObject(hBitmap)してないからでは?
0570デフォルトの名無しさん
2008/05/28(水) 21:05:120571デフォルトの名無しさん
2008/05/28(水) 21:24:59アプリの仮想アドレス空間が枯渇するぜ?
0572デフォルトの名無しさん
2008/05/28(水) 21:27:54形のままで普通のカーソルの形に戻りません。
CreateWindowEx、WS_OVERLAPPEDWINDOW 以外に何かいるんですか?
0573デフォルトの名無しさん
2008/05/28(水) 21:29:04製作者が引数に渡す値をしくじった時に失敗するのは当然ですが
絶対に動作するはずの引数で、OSが何かしらの問題で失敗する事ってありますか?
他人が書かれているコードを見ても、成功する事が前提で書かれているものばかりで問題ないのか疑問です
このような関数が失敗する時は、OSが動いているのも不思議なくらいの状態で いつOSが止まってもおかしくない状況なので
アプリケーションで取得できなかった値を使用して不具合が出るよりOSの方が重症なのでエラーチェックを行っていないという事なのでしょうか?
誰か詳しい方 教えてください
0574567
2008/05/28(水) 21:33:00耐久テストのコードではその方法で解決しました。
実際のコードはhBitmapをウィンドウプロシージャのスタティックなローカル変数として宣言し、メッセージ処理先(LBN_SELCHANGE)で画像リソースを呼び出しています。
これを止めてメッセージの処理先で
static HBITMAP hBitmap;
と宣言したら以下のコンパイルエラーが出てしまい、どうにも出来ません。
error C2065: 'hBitmap' : 定義されていない識別子です。
0575デフォルトの名無しさん
2008/05/28(水) 21:35:28WNDCLASS の hCursor にカーソルを設定する
あるいは WM_SETCURSOR メッセージで SetCursor を呼びカーソルを設定する
0576デフォルトの名無しさん
2008/05/28(水) 21:42:58ありがとうございました。
0577デフォルトの名無しさん
2008/05/28(水) 21:43:16Win32API以前の問題だ。
自分でなんとかしろ。
0578デフォルトの名無しさん
2008/05/28(水) 22:04:56ダイアログに画像を表示したらDeleteObject()しても良かったんですね…。
VB.NETで同じようなコードをBitmapオブジェクトで行ったらエラーが出たのでWin32APIでもそうだと勘違いしていました。
C++でGUIアプリを作り始めてまだ1週間ですが、少し背伸びし過ぎました。
0579デフォルトの名無しさん
2008/05/28(水) 22:05:280580デフォルトの名無しさん
2008/05/28(水) 22:07:060581デフォルトの名無しさん
2008/05/28(水) 22:37:55罵るしか能の無い奴は消えろ
0582デフォルトの名無しさん
2008/05/28(水) 22:45:510583デフォルトの名無しさん
2008/05/28(水) 22:47:120584デフォルトの名無しさん
2008/05/28(水) 22:50:050585デフォルトの名無しさん
2008/05/28(水) 23:01:230586デフォルトの名無しさん
2008/05/28(水) 23:02:540587デフォルトの名無しさん
2008/05/28(水) 23:03:23って書こうと思ったのに
0588デフォルトの名無しさん
2008/05/28(水) 23:09:080589デフォルトの名無しさん
2008/05/28(水) 23:09:13この言葉だけでは解決できない事がどれだけ溢れてると思ってるんだ
0590デフォルトの名無しさん
2008/05/28(水) 23:10:09なら「MSDN読め」でいい、独り言を言うように罵り煽る奴はいらん
0591デフォルトの名無しさん
2008/05/28(水) 23:13:03MSDN読め
0592デフォルトの名無しさん
2008/05/28(水) 23:21:300593デフォルトの名無しさん
2008/05/28(水) 23:25:430594デフォルトの名無しさん
2008/05/29(木) 03:55:500595デフォルトの名無しさん
2008/05/29(木) 08:10:11カウンタ1の無名セマフォとクリティカルセクションではどちらの使用が適切なのでしょうか?
0596デフォルトの名無しさん
2008/05/29(木) 08:30:480597デフォルトの名無しさん
2008/05/29(木) 08:48:08まあVBだとネイティブなAPI使わない事が
多いだろうから少ないかもね
0598デフォルトの名無しさん
2008/05/29(木) 09:51:070599デフォルトの名無しさん
2008/05/29(木) 10:14:39ありがとうございます。
0600デフォルトの名無しさん
2008/05/29(木) 12:47:240601498
2008/05/29(木) 13:22:09質問しといて、亀でゴメンナサイ…
やはりキーとなるデータ使ってマップみたいなことするのが一般的なんですね…
…動的に関数作れるのならちょっと試してみます
ありがとうございました。
0602デフォルトの名無しさん
2008/05/29(木) 14:34:110603デフォルトの名無しさん
2008/05/29(木) 16:15:070604デフォルトの名無しさん
2008/05/29(木) 16:32:520605デフォルトの名無しさん
2008/05/29(木) 21:53:12例えばIEだと、HPを表示する部分とお気に入り・履歴などが分かれていますが、あれも子ウィンドウを使っているのでしょうか?
0606デフォルトの名無しさん
2008/05/29(木) 21:56:59そうだと思うよ。
SPYとかで調べてみたらいいんじゃないかな。
0608デフォルトの名無しさん
2008/05/29(木) 22:56:43てか、今やWin32/C++使いから見ると商用版VisualStudioの価値って
リソースエディタとCRT/ATL/MFCのソースコードとSpy++ぐらいなんだよなー
0609デフォルトの名無しさん
2008/05/29(木) 23:00:110610デフォルトの名無しさん
2008/05/29(木) 23:05:040611デフォルトの名無しさん
2008/05/29(木) 23:25:350612デフォルトの名無しさん
2008/05/30(金) 00:23:140613デフォルトの名無しさん
2008/05/30(金) 00:28:050614デフォルトの名無しさん
2008/05/30(金) 00:33:25ソース付きで、Spy++のちょっとショボくなったやつ。
今はそういうサンプル全部無くなってるな。
0615デフォルトの名無しさん
2008/05/30(金) 00:46:35あれ、ちょっとどころか相当ショボイだろ
URL忘れたけど、MSサイトのどこかに
解凍すると130MBのchmが出てきて大量にSDKサンプルの入ってるやつがあった
その中におまいさんの言ってるSpyのソースコードも入ってるよ
0616デフォルトの名無しさん
2008/05/30(金) 00:49:07見たの10年くらい前だから、もうよく覚えてないな。
0617デフォルトの名無しさん
2008/05/30(金) 01:23:01歳がばれるぞw
0618デフォルトの名無しさん
2008/05/30(金) 01:42:320619デフォルトの名無しさん
2008/05/30(金) 02:33:330620デフォルトの名無しさん
2008/05/30(金) 08:56:51MIIMって何の略ですか?
Menu* だとは思うのですが.
0621デフォルトの名無しさん
2008/05/30(金) 09:35:020622デフォルトの名無しさん
2008/05/30(金) 11:41:50コンソールアプリだとこれで引数渡せるけど
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
APIじゃこう宣言されてるよね
非コンソールアプリを実行する時に
プログラム名 -オプション
ってやるにはどうすればいい?
0623デフォルトの名無しさん
2008/05/30(金) 11:43:40探したけどみつからないお><
もうなくなちゃったのかな?
0624デフォルトの名無しさん
2008/05/30(金) 11:44:00lpCmdLineに引数が入ってる
0625デフォルトの名無しさん
2008/05/30(金) 12:28:020626デフォルトの名無しさん
2008/05/30(金) 12:29:150627デフォルトの名無しさん
2008/05/30(金) 12:46:090628デフォルトの名無しさん
2008/05/30(金) 12:47:43VC2の頃なんか普通にあったなSpy。アイコンもスパイ風の男で、VC4だかの初代Spy++は
そのアイコンに++の絵が付いただけ。
というかSpyの強化版だから「Spy++」になったわけだし
0629デフォルトの名無しさん
2008/05/30(金) 13:05:350630デフォルトの名無しさん
2008/05/30(金) 13:15:190631デフォルトの名無しさん
2008/05/30(金) 15:21:580632デフォルトの名無しさん
2008/05/30(金) 15:28:330633デフォルトの名無しさん
2008/05/30(金) 16:22:32Set/GetWindowLongがあるように
スレッドとかプロセス別に値収納する奴ってありますか?
0634デフォルトの名無しさん
2008/05/30(金) 16:35:56スレッドはスレッドローカルストレージってやつでスレッド固有の値を保持できるよ。詳細はmsdnみろ
プロセスは普通にグローバル変数使えばいいんでは…?
0635デフォルトの名無しさん
2008/05/30(金) 16:40:020636デフォルトの名無しさん
2008/05/30(金) 17:11:13プロセスについては、自分以外のプロセスを管理する上でそれぞれに値を割り当てたいなら、
HPROCESS取得・VirtualAllocExで確保してRead/WriteProcessMemoryでアクセスという手はある。
用途が全く見えないが。
0637デフォルトの名無しさん
2008/05/30(金) 17:15:30HPROCESS
HPROCESS
0638デフォルトの名無しさん
2008/05/30(金) 20:17:10ディスプレイの水平解像度を超える長い文字列を表示するとツールチップがはみ出してしまいます。
これを折り返す方法はないのでしょうか。
SendDlgItemMessage(hDlg, IDC_STAT1, TTM_SETMAXTIPWIDTH, 0, (LPARAM)(int)320);
などとしても駄目でした。
0639デフォルトの名無しさん
2008/05/30(金) 20:45:15RECT rc;
SystemParametersInfo(SPI_GETWORKAREA, 0, &rc, 0);
SendMessage(hToolTip, TTM_SETMAXTIPWIDTH, 0, rc.right - rc.left);
0640デフォルトの名無しさん
2008/05/30(金) 21:22:52試してみましたが駄目でした。
ステータスバーに初めから備わったツールチップ機能を使用しているので、独自にツールチップをCreateWindowEx()している訳ではありません。
VB.NETやC#に例えるなら以下のプロパティを設定した場合とほぼ同じです。
これらの言語では特に何もしなくても折り返し表示されました。
ToolStatusStripLabel1.AutoToolTip = False
ToolStatusStripLabel1.ToolTipText = "表示する内容"
0641デフォルトの名無しさん
2008/05/31(土) 01:37:42そもそもステータスバーにそんな長いツールチップを出すのがUIとして間違い
とは言え
ToolStripとその派生コンポーネントって便利杉だよなー
まぁ.NET2.0のウリだったからな
0642デフォルトの名無しさん
2008/05/31(土) 02:41:560643デフォルトの名無しさん
2008/05/31(土) 02:51:430644デフォルトの名無しさん
2008/05/31(土) 04:52:35WTLのソース覗いてみたら、5000行近くあって吹いた。
0645デフォルトの名無しさん
2008/05/31(土) 05:02:49ツールバー化したら、メニュー文字間隔が変だし。どうにかしてメニューをレバーに突っ込めないかな
0646デフォルトの名無しさん
2008/05/31(土) 05:14:30つうかReBar化って何だよ
ReBarに入れるって意味ならそう言え
0647デフォルトの名無しさん
2008/05/31(土) 05:20:58WTLのはメニュー項目にアイコン付ける為のオーナードロー込みだからデカいだけ
純粋にCommandBarだけなら2000行ぐらいだ
0648↑
2008/05/31(土) 05:22:460649デフォルトの名無しさん
2008/05/31(土) 05:30:190650デフォルトの名無しさん
2008/05/31(土) 05:32:54Rebar化で十分通じるわマヌケ
0651デフォルトの名無しさん
2008/05/31(土) 05:34:57開き直るなマヌケ
0652デフォルトの名無しさん
2008/05/31(土) 05:51:37ごめんなさいマヌケ
0653デフォルトの名無しさん
2008/05/31(土) 05:52:52どういたしましてマヌケ
0654デフォルトの名無しさん
2008/05/31(土) 05:53:390655デフォルトの名無しさん
2008/05/31(土) 05:56:44俺もかまってちゃんなんだよ
0656デフォルトの名無しさん
2008/05/31(土) 06:03:170657デフォルトの名無しさん
2008/05/31(土) 09:21:20漏れ、レバーはキライなんだよ。
0658デフォルトの名無しさん
2008/05/31(土) 11:52:200659デフォルトの名無しさん
2008/05/31(土) 12:00:210660デフォルトの名無しさん
2008/05/31(土) 12:01:110661デフォルトの名無しさん
2008/05/31(土) 13:46:510662デフォルトの名無しさん
2008/05/31(土) 13:49:020663デフォルトの名無しさん
2008/05/31(土) 13:50:560664デフォルトの名無しさん
2008/05/31(土) 15:00:48そんなの見たことも聞いたこともないから。
なにみんな脳内妄想語ってるの?ってカンジ?みたいな〜。
0665デフォルトの名無しさん
2008/05/31(土) 15:07:310666デフォルトの名無しさん
2008/05/31(土) 19:15:37頭悪い奴が増えたな
0667デフォルトの名無しさん
2008/05/31(土) 19:18:130668デフォルトの名無しさん
2008/05/31(土) 19:58:34(出来る限り英語の発音に合わせたため一般的なカタカナ語とは表記に違いがあります)
Common Control カムン ケントロウル
Button バテン
Static ステァティク
Edit エディト
ListBox リスト バクス
ComboBox カンボゥ バクス
ScrollBar スクロウル バー
Toolbar トゥール バー
Status Bar ステイテス バー
TrackBar トラェック バー
Progress Bar プラグレス バー
TreeView トゥリーヴュー
ListView リストヴュー
HotKey ハット キー
Header ヘダー
Tab テァブ
Animate エァネメイト
ToolTip トゥール ティプ
Month Picker マンス ピカー
DateTime Picker デイト タイム ピカー
ReBar リバー
UpDown アプ ダウン
Pager ペイヂア
Native Font ネイティヴ ファント
Chevron シェヴラン
ImageList イミヂ リスト
0669デフォルトの名無しさん
2008/05/31(土) 20:04:27Common Control カマン カンチョロォ
Button バトゥン
とかの方が正確だろ
0670デフォルトの名無しさん
2008/05/31(土) 20:10:11の方が正確かも
0671デフォルトの名無しさん
2008/05/31(土) 20:10:520672デフォルトの名無しさん
2008/05/31(土) 20:12:050673デフォルトの名無しさん
2008/05/31(土) 20:13:39OleLoadPicture
IImgCtx
0674デフォルトの名無しさん
2008/05/31(土) 23:28:22ワロタwww
0675デフォルトの名無しさん
2008/05/31(土) 23:41:500676デフォルトの名無しさん
2008/05/31(土) 23:52:320677デフォルトの名無しさん
2008/06/01(日) 00:00:510678デフォルトの名無しさん
2008/06/01(日) 00:04:420679デフォルトの名無しさん
2008/06/01(日) 00:13:43ネッツで調べても見つからなくて
0680デフォルトの名無しさん
2008/06/01(日) 00:14:490681デフォルトの名無しさん
2008/06/01(日) 00:35:59○サンポゥ
0682デフォルトの名無しさん
2008/06/01(日) 00:42:150683デフォルトの名無しさん
2008/06/01(日) 00:43:510684デフォルトの名無しさん
2008/06/01(日) 00:45:240685デフォルトの名無しさん
2008/06/01(日) 00:50:130686デフォルトの名無しさん
2008/06/01(日) 00:52:250687デフォルトの名無しさん
2008/06/01(日) 00:52:530688デフォルトの名無しさん
2008/06/01(日) 00:54:510689デフォルトの名無しさん
2008/06/01(日) 02:58:410690デフォルトの名無しさん
2008/06/01(日) 03:00:430691689
2008/06/01(日) 03:02:16kaette kitakoto naindaga
maa hinnpannnitukaumonojanaikara doudemoiika
0692デフォルトの名無しさん
2008/06/01(日) 03:04:450693デフォルトの名無しさん
2008/06/01(日) 03:15:440694デフォルトの名無しさん
2008/06/01(日) 04:28:20Yes, sir.
0695デフォルトの名無しさん
2008/06/01(日) 04:30:56Okay.
0696デフォルトの名無しさん
2008/06/01(日) 04:48:58ming bai le
0697デフォルトの名無しさん
2008/06/01(日) 10:10:52daga kotowaru
0698デフォルトの名無しさん
2008/06/01(日) 10:36:430699デフォルトの名無しさん
2008/06/01(日) 10:54:510700デフォルトの名無しさん
2008/06/01(日) 11:10:450701デフォルトの名無しさん
2008/06/01(日) 11:42:38nanigodetuka?
0702デフォルトの名無しさん
2008/06/01(日) 11:47:500703デフォルトの名無しさん
2008/06/01(日) 11:56:07[明白了] chugoku go desu yo
0704デフォルトの名無しさん
2008/06/01(日) 12:01:510705デフォルトの名無しさん
2008/06/01(日) 12:07:210706デフォルトの名無しさん
2008/06/01(日) 12:10:570707デフォルトの名無しさん
2008/06/01(日) 12:49:18abusett teno's anu cincit unegun sent skipet?
0708デフォルトの名無しさん
2008/06/01(日) 12:52:160709デフォルトの名無しさん
2008/06/01(日) 12:54:420710デフォルトの名無しさん
2008/06/01(日) 12:55:300711デフォルトの名無しさん
2008/06/01(日) 12:56:150712デフォルトの名無しさん
2008/06/01(日) 12:57:47黙れないなら死ね
0713デフォルトの名無しさん
2008/06/01(日) 12:59:480714デフォルトの名無しさん
2008/06/01(日) 13:00:340715デフォルトの名無しさん
2008/06/01(日) 13:01:300716デフォルトの名無しさん
2008/06/01(日) 13:02:31ローマ字で会話するのを止めろ
0717デフォルトの名無しさん
2008/06/01(日) 13:03:350718デフォルトの名無しさん
2008/06/01(日) 13:04:120719デフォルトの名無しさん
2008/06/01(日) 13:05:350720デフォルトの名無しさん
2008/06/01(日) 13:05:510721デフォルトの名無しさん
2008/06/01(日) 13:06:460722デフォルトの名無しさん
2008/06/01(日) 13:08:100723デフォルトの名無しさん
2008/06/01(日) 13:09:140724デフォルトの名無しさん
2008/06/01(日) 13:09:16isshoni asobo-
0725デフォルトの名無しさん
2008/06/01(日) 13:10:120726デフォルトの名無しさん
2008/06/01(日) 13:10:510727デフォルトの名無しさん
2008/06/01(日) 13:11:32son-nani kakka sinai hou ga ii to omou na
0728デフォルトの名無しさん
2008/06/01(日) 13:23:310729デフォルトの名無しさん
2008/06/01(日) 13:24:050730デフォルトの名無しさん
2008/06/01(日) 13:26:190731デフォルトの名無しさん
2008/06/01(日) 13:26:440732デフォルトの名無しさん
2008/06/01(日) 13:33:380733デフォルトの名無しさん
2008/06/01(日) 13:36:560734デフォルトの名無しさん
2008/06/01(日) 13:59:070735デフォルトの名無しさん
2008/06/01(日) 14:10:520736デフォルトの名無しさん
2008/06/01(日) 14:38:340737682
2008/06/01(日) 15:43:35スマソ
0738デフォルトの名無しさん
2008/06/01(日) 16:00:040739デフォルトの名無しさん
2008/06/01(日) 16:07:37二度と来るなカス
0740デフォルトの名無しさん
2008/06/01(日) 16:10:59ごめんねカス
0741デフォルトの名無しさん
2008/06/01(日) 16:41:05win32APIスレに居て欲しいタイプじゃないから、別スレに移動してくれませんか?
0742デフォルトの名無しさん
2008/06/01(日) 16:44:35言葉の揚げ足取ってうれしがる奴は邪魔。
もうこないでほしい
0743デフォルトの名無しさん
2008/06/01(日) 16:45:220744デフォルトの名無しさん
2008/06/01(日) 16:51:330745デフォルトの名無しさん
2008/06/01(日) 16:52:410746デフォルトの名無しさん
2008/06/01(日) 17:00:210747デフォルトの名無しさん
2008/06/01(日) 17:03:450748デフォルトの名無しさん
2008/06/01(日) 17:07:590749デフォルトの名無しさん
2008/06/01(日) 17:16:13煽る奴も邪魔
スルー覚えろよ
0750デフォルトの名無しさん
2008/06/01(日) 17:22:36そういうあなたがスルーを覚えられていないようなので
スルーを覚えるつもりはありません。
0751デフォルトの名無しさん
2008/06/01(日) 17:23:530752デフォルトの名無しさん
2008/06/01(日) 17:28:400753デフォルトの名無しさん
2008/06/01(日) 17:31:180754デフォルトの名無しさん
2008/06/01(日) 17:34:440755デフォルトの名無しさん
2008/06/01(日) 17:35:230756デフォルトの名無しさん
2008/06/01(日) 17:36:140757デフォルトの名無しさん
2008/06/01(日) 17:36:54海外サイトでもおk
0758デフォルトの名無しさん
2008/06/01(日) 17:40:56いい加減しつこい
MSDNに説明があるだろうが
あれ読んで分からなかったら猫の糞サンプルでも見て勝手にやってろ
0759デフォルトの名無しさん
2008/06/01(日) 17:51:50ワロスwwwwwwwwwwwww
0760デフォルトの名無しさん
2008/06/01(日) 18:33:11そういうお前がな ←顔真っ赤な奴
↑お前もな ←呆れた奴
無限ループになるし終われw
0761デフォルトの名無しさん
2008/06/01(日) 18:35:510762デフォルトの名無しさん
2008/06/01(日) 19:48:440763デフォルトの名無しさん
2008/06/01(日) 20:13:320764デフォルトの名無しさん
2008/06/01(日) 21:07:050765デフォルトの名無しさん
2008/06/01(日) 21:11:20同じIDのままならNGで終了だし
0766デフォルトの名無しさん
2008/06/01(日) 21:14:470767デフォルトの名無しさん
2008/06/01(日) 21:18:030768デフォルトの名無しさん
2008/06/01(日) 21:26:460769デフォルトの名無しさん
2008/06/01(日) 21:41:040770デフォルトの名無しさん
2008/06/01(日) 21:47:34掲示板とかによくあるIDの変え方を教えてください
0771デフォルトの名無しさん
2008/06/01(日) 22:11:570772proxy10.microsoft.com
2008/06/01(日) 22:22:490773デフォルトの名無しさん
2008/06/01(日) 22:29:530774デフォルトの名無しさん
2008/06/01(日) 22:44:400775デフォルトの名無しさん
2008/06/01(日) 22:46:46ハンドルというのは、中身を意識してはいけないもの。
操作対象のオブジェクトを一意に識別する単なるID。
0776デフォルトの名無しさん
2008/06/01(日) 22:50:23インターネットでいうとIPアドレス
学校でいうと何年何組何番とか
0777デフォルトの名無しさん
2008/06/01(日) 22:53:09何年何組何番は時とともに変化するから学籍番号のほうが的確かと。
0778デフォルトの名無しさん
2008/06/01(日) 23:03:130779デフォルトの名無しさん
2008/06/01(日) 23:05:570780デフォルトの名無しさん
2008/06/01(日) 23:08:020781デフォルトの名無しさん
2008/06/01(日) 23:10:590782デフォルトの名無しさん
2008/06/01(日) 23:15:350783デフォルトの名無しさん
2008/06/01(日) 23:16:58何でハンドルって言うようになったんだ。
0784デフォルトの名無しさん
2008/06/01(日) 23:20:29「適当な固有の値」ぐらいに思ってればいいじゃないの
0785デフォルトの名無しさん
2008/06/01(日) 23:21:250786デフォルトの名無しさん
2008/06/01(日) 23:35:420787デフォルトの名無しさん
2008/06/01(日) 23:37:160788デフォルトの名無しさん
2008/06/02(月) 00:55:00もっとやれ
0789デフォルトの名無しさん
2008/06/02(月) 01:32:490790デフォルトの名無しさん
2008/06/02(月) 01:39:27基地外を消去するAPIを教えてください
0791デフォルトの名無しさん
2008/06/02(月) 02:14:140792デフォルトの名無しさん
2008/06/02(月) 02:42:57今までCreateCompatibleBitmapで書いていたコードをCreateDIBSectionで作り変えたら、
今まで精々数%しかCPU食っていなかったのに、数十%もCPUを食うようになってしまいました。
CreateDIBSectionで吐き出されたHBITMAPを使って描画するのは、重い処理なのでしょうか。
教えてください。
0793デフォルトの名無しさん
2008/06/02(月) 03:07:100794デフォルトの名無しさん
2008/06/02(月) 03:29:450795デフォルトの名無しさん
2008/06/02(月) 03:48:400796デフォルトの名無しさん
2008/06/02(月) 03:56:340797デフォルトの名無しさん
2008/06/02(月) 04:53:140798デフォルトの名無しさん
2008/06/02(月) 06:16:250799デフォルトの名無しさん
2008/06/02(月) 07:13:21CreateCompatibleBitmapは内部でVRAMにメモリを確保してる
CreateDIBSectionはシステムメモリに確保してる
あとは調べれ
0800デフォルトの名無しさん
2008/06/02(月) 07:17:220801デフォルトの名無しさん
2008/06/02(月) 08:08:37そういう嘘を堂々と書かないように
0802デフォルトの名無しさん
2008/06/02(月) 08:22:210803デフォルトの名無しさん
2008/06/02(月) 10:38:12Vista以降ではドライバに依存しなくなった
0804デフォルトの名無しさん
2008/06/02(月) 12:11:210805デフォルトの名無しさん
2008/06/02(月) 12:15:27DDB → VRAMに確保
DIB → システムメモリに確保
ATIとかVistaとかそんな少数派は無視でおk
0806デフォルトの名無しさん
2008/06/02(月) 14:22:180807デフォルトの名無しさん
2008/06/02(月) 14:45:570808デフォルトの名無しさん
2008/06/02(月) 15:11:380809デフォルトの名無しさん
2008/06/02(月) 15:24:31セキュ板がまさにそれ
0810デフォルトの名無しさん
2008/06/02(月) 15:28:24試しに半透明ウィンドウを被せてみたら文字がかすんで使えません。
背景色を変更できないページやフリーソフトはまぶしくてしょうがないです
0811デフォルトの名無しさん
2008/06/02(月) 15:30:080812デフォルトの名無しさん
2008/06/02(月) 15:32:590813デフォルトの名無しさん
2008/06/02(月) 15:42:41つ ユーザーCSS
>背景色を変更できないフリーソフト
配色の設定(COLOR_WINDOWとか)に基づいていない糞フトなんて
作者に文句言って修正してもらうか使わなければいいのでは
ってか、最近の液晶って輝度が高すぎなんだよな
モニターの設定で最も暗くしてもまだ眩しかったりするし
0814デフォルトの名無しさん
2008/06/02(月) 15:50:27いいえ、液晶は発光しませんから。
バックライトが眩しいのは、劣化で暗くなることを想定して明る過ぎる光源を使っているからですね。
0815810
2008/06/02(月) 16:12:58まぶしくない程度に下げると他が暗くなりすぎたりとなかなか難しいですが
ちょっと調整してみました。どうもでした
>>813
一応設定はしているんですが、変更を受け付けないページやpdfなんかが
目下最大の敵です。
0816デフォルトの名無しさん
2008/06/02(月) 17:21:02その辺でグレースケールでも拾ってきて調べてみるといい。
0817デフォルトの名無しさん
2008/06/02(月) 17:24:450818デフォルトの名無しさん
2008/06/02(月) 17:47:01ハード板かCG板にお帰りください
0819デフォルトの名無しさん
2008/06/02(月) 18:58:150820デフォルトの名無しさん
2008/06/02(月) 19:03:03>>819
0821デフォルトの名無しさん
2008/06/02(月) 23:19:19まさがグレーの半透明被せてないか?
たぶん純黒で不透明度低めのウィンドウを被せれば文字もくっきりするよ
0822810
2008/06/03(火) 00:18:58はい、グレーのやつでした。さっそく試してみます。
やはり半透明ウィンドウでやるのがよさげなようですね。
ありがとうございました。そしてお騒がせしました
0823デフォルトの名無しさん
2008/06/03(火) 00:34:07俺のPCは少数派(笑)のATIだけどドライバの設定でそういう調節ができる。
0824デフォルトの名無しさん
2008/06/03(火) 09:47:34必ず届くのでしょうか?・・・不安で不安で・・・
共有メモリとかファイル化して渡した方が良いでしょうか?
0825デフォルトの名無しさん
2008/06/03(火) 09:53:590826デフォルトの名無しさん
2008/06/03(火) 09:56:340827デフォルトの名無しさん
2008/06/03(火) 11:56:17ハングしてるスレッドにSendMessage投げてごらん?
投げた側もハングするから。
0828デフォルトの名無しさん
2008/06/03(火) 13:43:34お前たちのような蛆虫はレスするなってことで
0829デフォルトの名無しさん
2008/06/03(火) 14:10:08エラー時にはちゃんとGetLastErrorの値も見るように。
0830デフォルトの名無しさん
2008/06/03(火) 18:18:29// この間にhwndがDestroyされると届かなくなるので必ず届くなんて不可能
SendMessage( hwnd, ... );
昔9x使ってたら、DestroyしたHWNDが割と近い時間で他のウィンドウに使用されて困ったことがあったけど
NTだと確か上位16ビットが再利用カウンタだからそういう衝突は無いかな
0831デフォルトの名無しさん
2008/06/03(火) 18:31:580832デフォルトの名無しさん
2008/06/03(火) 19:26:560833デフォルトの名無しさん
2008/06/03(火) 19:50:470834デフォルトの名無しさん
2008/06/03(火) 21:30:080835デフォルトの名無しさん
2008/06/03(火) 22:18:24SendMessageをもらって、ウインドウプロシージャが走ってから
そいつが返事をSendMessageするまでの間に、
ReplyMessageしとけばいけるんでない。
0836デフォルトの名無しさん
2008/06/03(火) 22:38:110837デフォルトの名無しさん
2008/06/03(火) 22:39:320838デフォルトの名無しさん
2008/06/03(火) 22:59:010839デフォルトの名無しさん
2008/06/03(火) 23:17:41>フォーカスを失っても青のままにしたい
subclass化して WM_KILLFOCUS をブロック
0840デフォルトの名無しさん
2008/06/04(水) 00:01:07大丈夫。SendMessageの戻り待ちで止まっているスレッドのウィンドウへSendMessageが送られると、
Windowsが直接ウィンドウプロシージャを呼び出す。
Advanced Windows辺りに書いてあったはず。
0841デフォルトの名無しさん
2008/06/04(水) 03:47:02BitBltでビットマップの転送を行うとして、、
転送先のビットマップの大きさの範囲を超えるように引数を指定した場合、
この動作の定義はどうなっているのでしょうか?
はみ出たところにあったデータが壊れる心配はないのでしょうか?
0842デフォルトの名無しさん
2008/06/04(水) 04:03:42GDIはそういう心配する必要なし
0844デフォルトの名無しさん
2008/06/04(水) 16:32:06テキストは開いた順に配列に入れて、たとえば2番目のタブを選択したら
配列の2番目から取り出して表示するという方法でいいんですか?
0845デフォルトの名無しさん
2008/06/04(水) 16:36:41メモリ食ってもいいのか、なるべく食わない方がいいのかとか
つかAPI関係ないだろ
0846デフォルトの名無しさん
2008/06/04(水) 16:36:520847デフォルトの名無しさん
2008/06/04(水) 16:44:400848デフォルトの名無しさん
2008/06/04(水) 16:46:36しね
0849デフォルトの名無しさん
2008/06/04(水) 16:49:520850デフォルトの名無しさん
2008/06/04(水) 16:55:550851デフォルトの名無しさん
2008/06/04(水) 16:58:400852844
2008/06/04(水) 17:00:22この方法だとメモリを食いそうなんでこれでいいのか、
他に良いスタンダードな方法があるのかと疑問に思ったので。
タブとかeditコントロールはAPIなのでここで質問してみました
>>846
よさそうならこれで作ってみます。どうもです
0853デフォルトの名無しさん
2008/06/04(水) 20:34:54ステータスバーに現在のキャレット位置を表示するために
下記のコードを書いてみたのですが,列の表示が上手くできません.
何か良い方法をご存知でしたら教えて下さい. m(_ _)m
caretPos = (DWORD)SendMessage(hEdit, EM_CHARFROMPOS, 0, MAKELPARAM(pt.x, pt.y));
pt.y = HIWORD(caretPos) + 1;
caretPos = (DWORD)SendMessage(hEdit, EM_CHARFROMPOS, 0, MAKELPARAM(pt.x, 0));
pt.x = LOWORD(caretPos) + 1;
wsprintf(str, " %d 行, %d 列", pt.y, pt.x);
SendMessage(hStatusbar, SB_SETTEXT, 1, (LPARAM)str);
0854デフォルトの名無しさん
2008/06/04(水) 20:57:59メモリの使用量なんて作ってみたらわかることだ。
初心者なら、作る前に答えを欲しがらずに、作って考えることだ。
0855デフォルトの名無しさん
2008/06/04(水) 22:03:32偉そうに上級者面するな
0856デフォルトの名無しさん
2008/06/04(水) 22:12:230857デフォルトの名無しさん
2008/06/04(水) 22:39:060858デフォルトの名無しさん
2008/06/04(水) 22:41:490859デフォルトの名無しさん
2008/06/04(水) 23:20:18PayPalで送金するのか?w
0860デフォルトの名無しさん
2008/06/05(木) 00:11:050861デフォルトの名無しさん
2008/06/05(木) 01:42:29MSDN Premium Subscriptionをパッケージで50本くらい買えばおk
0862デフォルトの名無しさん
2008/06/05(木) 02:25:19Vistaなんてイラネーヨ
>>861
おk
明日買ってくる
0863デフォルトの名無しさん
2008/06/05(木) 19:14:29キャレット位置ならEM_GETSELから調べ始めればいいんじゃね?
0864いのぶー
2008/06/05(木) 22:58:59クリックできません。
C#の板でスルーされたのでやってきました、お願いいたします、教えていただけませんでしょうか? 。
[DllImport("USER32.DLL")]
public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("USER32.DLL")]
public static extern bool SetForegroundWindow(IntPtr hWnd);
[DllImport("user32.dll", CharSet = CharSet.Unicode)]
public static extern IntPtr FindWindowEx(IntPtr hWnd, IntPtr hwndChildAfter, String lpszClass, String lpszWindow);
[DllImport("user32.dll", CharSet = CharSet.Unicode)]
public static extern bool PostMessage(IntPtr hWnd, UInt32 Msg, Int32 wParam, Int32 lParam);
[DllImport("user32.dll", CharSet = CharSet.Unicode)]
public static extern bool GetWindowRect(IntPtr hWnd, ref RECT lpRect);
[StructLayout(LayoutKind.Sequential)]
public struct RECT {
public int left;
public int top;
public int right;
public int bottom;
}
const uint WM_LBUTTONDOWN = 0x201;
const uint WM_LBUTTONUP = 0x202;
public void RemotePaint() {
IntPtr hWnd = FindWindow("MSPaintApp", null);
SetForegroundWindow(hWnd);
hWnd = FindWindowEx(hWnd, IntPtr.Zero, "AfxFrameOrView42u", null);
RECT winRect = new RECT();
GetWindowRect(hWnd, ref winRect);
PostMessage(hWnd, WM_LBUTTONDOWN, winRect.right - winRect.left, winRect.bottom - winRect.top);
PostMessage(hWnd, WM_LBUTTONUP, winRect.right - winRect.left, winRect.bottom - winRect.top);
}
0865デフォルトの名無しさん
2008/06/05(木) 23:03:24PostMessageでDOWNした後UPする前にスリープを入れる
0866いのぶー
2008/06/05(木) 23:16:45Sleepを入れてみたんですが、点を打ってくれませんでした。 (T_T)
PostMessage(hWnd, WM_LBUTTONDOWN, winRect.right - winRect.left, winRect.bottom - winRect.top);
System.Threading.Thread.Sleep(500);
PostMessage(hWnd, WM_LBUTTONUP, winRect.right - winRect.left, winRect.bottom - winRect.top);
0867デフォルトの名無しさん
2008/06/05(木) 23:53:40public static extern bool SetForegroundWindow(IntPtr hWnd);
C丼はあまり詳しくないが、この辺のAPI宣言って合ってるのか?
Win32のBOOLとC++や.NET系のboolって別物のはずだが
0868デフォルトの名無しさん
2008/06/05(木) 23:58:22C#のboolは1バイトだけど、Platform呼び出しの際は、
特に指定しなければデフォルトで4バイトBOOLにマーシャリングされる。
0869いのぶー
2008/06/06(金) 00:01:48この辺りとかでは、
public static extern bool SetForegroundWindow(IntPtr hWnd);
って書いたサンプルがあったので、それを参考にしています。
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/151winshow/winshow.html
0870デフォルトの名無しさん
2008/06/06(金) 00:06:43へ〜そうなんだ
VB6とかBooleanじゃなくてLongにする必要があったのに、便利な時代になったなぁ
0871デフォルトの名無しさん
2008/06/06(金) 00:21:52GetWindowRectの結果使ったらボーダーの分だけはみ出さないかい?
そもそもその右下の点に画像はあるのか
0872いのぶー
2008/06/06(金) 03:49:20hWnd = FindWindowEx(hWnd, IntPtr.Zero, "AfxFrameOrView42u", null);
で、hWndにドローイングエリアのウィンドウハンドルをセットしなおしていますが、
それではダメでしょうか?
hWndを使いまわしていて、汚くてごめんなさい。
0873いのぶー
2008/06/06(金) 03:55:58PostMessage(hWnd, WM_LBUTTONDOWN, 100, 100);
System.Threading.Thread.Sleep(500);
PostMessage(hWnd, WM_LBUTTONUP, 100, 100);
0874デフォルトの名無しさん
2008/06/06(金) 06:26:020875デフォルトの名無しさん
2008/06/06(金) 07:13:290876853
2008/06/06(金) 07:37:22回答ありがとうございます.
EM_GETSEL は有力ですよね.
実は自分も最初はそれを考えて,
pt.x = LOWORD(SendMessage(hEdit , EM_GETSEL , NULL , NULL));
として列の位置を求めようとしていたのですが,
↓(1行,1列)
1234\r\n
6
↑(2行,1列)になってほしいけど,
実際には(2行,6列)... ORZ
という結果になってハマってしまったので,
ここで質問してみました.
結構メジャーな目的なので,どなたかご存知の方が
いらっしゃいましたら良い方法をお願いします. m(_ _)m
後の人のためにも.
(できればWin32APIで,テキスト全体をバッファに入れて改行を数えるとかは
最後の手段かなと思っています.)
0877853
2008/06/06(金) 08:11:01offset = LOWORD(SendMessage(hEdit, EM_CHARFROMPOS, 0, MAKELPARAM((WORD)0, pixPt.y)));
を設定して引いてやるだけでした.
前にこの方法も試していたのですが,pix での位置と char型 での位置が
きちんと区別されていなかったために失敗していました.
お騒がせしました.
0878デフォルトの名無しさん
2008/06/06(金) 14:45:22なんでこんな書き方するのか分からん
0879デフォルトの名無しさん
2008/06/06(金) 15:22:280880デフォルトの名無しさん
2008/06/06(金) 15:38:140881デフォルトの名無しさん
2008/06/06(金) 15:41:370882デフォルトの名無しさん
2008/06/06(金) 16:14:320883デフォルトの名無しさん
2008/06/06(金) 16:17:570884デフォルトの名無しさん
2008/06/06(金) 16:23:21なんでこんな書き方するのか分からん
0885デフォルトの名無しさん
2008/06/06(金) 16:25:280886デフォルトの名無しさん
2008/06/06(金) 16:59:070887いのぶー
2008/06/06(金) 22:01:53sendInputというキーワードのおかげで、下記のページを見つけることができました。
http://homepage3.nifty.com/midori_no_bike/CS/index.html?userIO.268
おかげで、sendInputを使って、点が打てました。
これを取っ掛かりになんとかやってみたいと思います。
0888デフォルトの名無しさん
2008/06/06(金) 23:10:33GetClientRectでとれるのが「クライアント領域」、早い話がウィンドウ内部の領域
マウスイベントで指定する座標系はこれが基準。
GetWindowRectでとれるのは「ウィンドウ領域」、境界線とかも含んでいるので
一般にクライアント領域より大きい。
ちなみにRectで指定する座標は「右と下が1大きい」ものなので(理由は省略)
>866の計算だと、GetClientRectの結果使ったとしてもやはり1ドットはみだす。
以上参考までに。
0889いのぶー
2008/06/06(金) 23:31:46GetClientRectでとれる「クライアント領域」が基本とのことなのですが、
GetWindowRectでドローイングエリアの座標領域を取って、Cursorを動かして、
SendInputクリックで左ボタンダウンとアップイベントを作ってクリックしているのですが、
「クライアント領域」を使った、いい方法があるのでしょうか?
当方、「クライアント領域」の有効な使い方が解っていないので、
よろしければご教授願えませんでしょうか。教えていただけると
うれしいのですが・・・
0890デフォルトの名無しさん
2008/06/07(土) 00:16:53有効とかどうとかじゃなくて、基本的な区別がわかってない
君がいう「ドローイングエリアの座標領域」の外側と内側とか
座標系の基準の違いとか色々ごっちゃにしてるって話
ここで説明できるような内容じゃないので入門書読め
0891いのぶー
2008/06/07(土) 00:25:150892いのぶー
2008/06/07(土) 00:31:04// ドローイングエリアの真ん中へ移動
Cursor.Position = new Point((winRect.left + winRect.right) / 2, (winRect.top + winRect.bottom) / 2);
//クリック
INPUT[] input = new INPUT[2]; // 計2イベントを格納
input[0].mi.dwFlags = MOUSEEVENTF_LEFTDOWN;
input[1].mi.dwFlags = MOUSEEVENTF_LEFTUP;
SendInput(2, input, Marshal.SizeOf(input[0]));
0893いのぶー
2008/06/07(土) 00:46:46466の記述時点では、Rectで何の値が取れるか分かっていなかったのですが、
デバッグプリントして、理解して、887の時点では、なんとか好きな所に点が打てるように
なっていました。
(おそらく、入れ違いになってしまったのでは・・・と思っています。)
ただ、この場合に、ウィンドウ内の座標を使って何ができるのかが知りたいのです。
この場合、テンプレの本を薦められても対象が高域過ぎるのでお勧めのURLや書籍
でもあれば、明日にでも探しに行きたいと思います。
0894デフォルトの名無しさん
2008/06/07(土) 02:01:28Win32スレなのか.NETスレなのか分かりません><
0895デフォルトの名無しさん
2008/06/07(土) 02:16:31言語が.NETだろうとWin32の話なら全然構わないと思います><
0896デフォルトの名無しさん
2008/06/07(土) 03:27:14開放する順番以外に。windowsスレッドって、ExitThread(true)で
自動で開放されたりしない?ハンドルクローズしないとダメ?
0897デフォルトの名無しさん
2008/06/07(土) 03:45:01windows板なら分かるが
0898デフォルトの名無しさん
2008/06/07(土) 04:47:09何ができるかとかいう問題じゃなくて
┏━┓
┗━┛
この枠の内側測るのと外側測るのじゃ大きさが違うだろ?
内側から測れって言われてるのに外側から測った数字使ってたりしたら
細かいところで計算が合わないからちゃんと意識しろってこと。
0899896
2008/06/07(土) 06:05:37Linuxのプロセスみたいにゾンビプロセスが残るのかとか
windows のスレッドはexitThread(true)でスレッド開放されるのかとか
0900デフォルトの名無しさん
2008/06/07(土) 06:41:38どのスレッドによって作られたか、などということは一切関係ない。
また、そのスレッドを参照しているすべてのスレッドハンドルをCloseHandleしなければならない。
スレッドハンドルを閉じていないということは、まだ使うということだから。
スレッドがシグナル状態になっているかどうかを見るなど。
pthreadだって、明示的にpthread_joinかpthread_detachしなきゃならんだろ。
0901いのぶー
2008/06/07(土) 06:56:28取れる数字に対する注意点を教えていただいたと理解しました。
894さんとか、うざがってる方もいることですので、この話題を終了したいと思います。
ありがとうございました。
0902デフォルトの名無しさん
2008/06/07(土) 08:06:34> ExitThread(true)
こんな事を書いてるということはMSDN読んでないのがバレバレ
0903デフォルトの名無しさん
2008/06/07(土) 14:06:32そんなこと言ったら、ここの質問全てmsdn嫁で終わるw
0904デフォルトの名無しさん
2008/06/07(土) 14:25:25//tmpgenc.pegasys-inc.com/ja/download/tp.html
TMPGEncの支援ツールを作りたいと思ってます。
主に自動で次々と縁故してくれるように支援するツールです。
そこで、まずファイルをドロップしてファイル名を渡すところですが、ここはどんなAPIを使ってドロップしたことにしてやればよろしいでしょうか?
0905デフォルトの名無しさん
2008/06/07(土) 14:27:010906デフォルトの名無しさん
2008/06/07(土) 14:29:15そのTMGENCの画面にファイルをドロップするところを、他のアプリから操りたいのです・・・。
0907デフォルトの名無しさん
2008/06/07(土) 14:47:120908デフォルトの名無しさん
2008/06/07(土) 14:47:550909904
2008/06/07(土) 14:50:36わかりにくいですか?
0910デフォルトの名無しさん
2008/06/07(土) 14:53:400911デフォルトの名無しさん
2008/06/07(土) 14:54:300912デフォルトの名無しさん
2008/06/07(土) 14:55:06わかりにくいですか?
0913デフォルトの名無しさん
2008/06/07(土) 15:10:01画面へのドロップ動作をさせたいならOLE D&Dとマウス動作のシミュレートで良いんじゃね
コマンドライン使えるならそっちの方がいいと思うけど
0914デフォルトの名無しさん
2008/06/07(土) 15:12:180915デフォルトの名無しさん
2008/06/07(土) 15:12:52指定してロードした特定のモジュールのファイル名を、GetModuleFileName で取得できません。
(GetModuleFileName の戻り値は0だが、GetLastError の戻り値は ERROR_SUCCESS)
具体的に言うと、下のページの mxdrv.dll が該当します。
ttp://gorry.haun.org/mx/
どういったケースでそれが起こるのか、誰かおわかりになりませんか。
0916デフォルトの名無しさん
2008/06/07(土) 15:27:25レスありがと。
ただOLE D&Dって初見なんだけど、これってつまりAPIでファイルを対象のウィンドウにドロップするやつはないってことですか?
0917916
2008/06/07(土) 15:38:46自己解決しました、ありがとうございます
0918デフォルトの名無しさん
2008/06/07(土) 16:21:57This function is obsolete and should not be used.
と書いてた。
ってことは、IME使うにはどうすればいいんだ?
0919デフォルトの名無しさん
2008/06/07(土) 16:28:20質問です。
対象のアプリのボタン(OKと書かれたボタン)が操作不可かどうかを判断したいのですが、
なにか手はありますでしょうか?
0920デフォルトの名無しさん
2008/06/07(土) 16:29:480921デフォルトの名無しさん
2008/06/07(土) 16:37:460922デフォルトの名無しさん
2008/06/07(土) 17:07:40Imm〜関数群などを使う。
0923デフォルトの名無しさん
2008/06/07(土) 17:16:070924デフォルトの名無しさん
2008/06/07(土) 18:31:42> TSFとは、異性への性転換を扱うフィクションのジャンルにおける略称である。
ttp://ja.wikipedia.org/wiki/TSF
???
0925デフォルトの名無しさん
2008/06/07(土) 18:38:050926デフォルトの名無しさん
2008/06/07(土) 18:51:280927デフォルトの名無しさん
2008/06/07(土) 19:26:35どうすればいいですか?Thread.currentThread()みたいなやつ
0928デフォルトの名無しさん
2008/06/07(土) 19:33:05GetCurrentThreadId
0929デフォルトの名無しさん
2008/06/07(土) 19:33:19スレッドハンドルの事を言っているなら、_beginthreadexの戻り値がまさにそれだ。
必要ないなら、ちゃんとCloseHandleしておけ。
スレッドIDの事を言っているのなら、スレッドハンドルに対してGetThreadIdを呼べ。
0930デフォルトの名無しさん
2008/06/07(土) 19:37:06GetCurrentThread
0932デフォルトの名無しさん
2008/06/07(土) 19:49:55え……?性転換ネタでいくの?キョン子はやめたほうが……
0934デフォルトの名無しさん
2008/06/07(土) 20:08:520935デフォルトの名無しさん
2008/06/07(土) 20:31:21Text Services Frameworkですよとマジレス
0936デフォルトの名無しさん
2008/06/07(土) 20:37:32燃える仕事か。
0937デフォルトの名無しさん
2008/06/07(土) 20:40:20一応言っておくと、GetCurrentThreadで得られるのは擬似ハンドルで
自分自身のスレッドを示す事にしか使えないからな。
0939デフォルトの名無しさん
2008/06/07(土) 20:55:32仕事熱心でいいじゃないか
0940デフォルトの名無しさん
2008/06/07(土) 21:01:530941デフォルトの名無しさん
2008/06/07(土) 21:04:22なんか書いてありましたね。でも
_beginthreadexの最後の引数に入るDWORDのIDはGetCurrentThreadIdのものと一致しますよね?
あと関係ないと思うんですが、MSDNの
_endthread と _endthreadex によって、C++ デストラクタはスレッドで保留状態になり、呼び出されません。
という日本語の意味がよく分からないんですが、どういうこと?
0942デフォルトの名無しさん
2008/06/07(土) 21:14:46{
CMyClass hoge;
kansuu();
}
kansuu()
{
_enthreadex(0);
}
hogeのデストラクタは呼ばれませんよということ
素直にreturnしとけ
0943デフォルトの名無しさん
2008/06/07(土) 21:16:00そもそも日本語版なんてWin95時代から更新止まってるのにそんなの見るなって
0944デフォルトの名無しさん
2008/06/07(土) 21:22:00This function is obsolete and should not be used.
と書いてた。
ってことは、IME使うにはどうすればいいんだ?
0945デフォルトの名無しさん
2008/06/07(土) 21:25:06This function is obsolete and should not be used.
と書いてた。
ってことは、IME使うにはどうすればいいんだ?
0946918
2008/06/07(土) 21:27:22何事ですか?
0947デフォルトの名無しさん
2008/06/07(土) 21:28:37This function is obakadesu and should not be used.
と書いてた。
ってことは、IME使うにはどうすればいいんだ?
0948デフォルトの名無しさん
2008/06/07(土) 22:10:57ウィンドウを含むスレッドでは、DispatchMessage 関数、PeekMessage 関数、または TranslateMessage 関数を使ってください。
てあるけど、どうやんのかね?
0949デフォルトの名無しさん
2008/06/07(土) 22:20:170950デフォルトの名無しさん
2008/06/07(土) 22:31:290951デフォルトの名無しさん
2008/06/07(土) 22:57:140952デフォルトの名無しさん
2008/06/08(日) 00:37:080953デフォルトの名無しさん
2008/06/08(日) 00:42:090954デフォルトの名無しさん
2008/06/08(日) 00:44:290955デフォルトの名無しさん
2008/06/08(日) 00:49:12PeekMessageでぐぐればいろいろ例が見つかるはずだから、そのとおりにやればいい。
0956デフォルトの名無しさん
2008/06/08(日) 00:55:24CreateThreadで作ったのが糞スレッドかどうか判断するAPIを教えてください
0957デフォルトの名無しさん
2008/06/08(日) 00:58:060958デフォルトの名無しさん
2008/06/08(日) 08:19:20前回シャットダウンした日時を取得する方法ってありますか?
0959デフォルトの名無しさん
2008/06/08(日) 09:05:590960デフォルトの名無しさん
2008/06/08(日) 10:58:25>>959のとおり、イベントログに情報がある。
ただ、OS起動やシャットダウンイベントはデフォルト設定だと記録されないはずなので、
設定を変えるか、もっと簡単にやりたいなら正確ではないけどイベントログサービスの
起動/停止時間をOS起動/シャットダウン時間とみなしてしまうやり方もある。
例がWin32APIでなくて申し訳ないけど、以下WMIのインタフェース使うスクリプトの例。
var query =
"Select * from Win32_NTLogEvent where " +
"LogFile = 'System' and SourceName = 'EventLog'";
var systemlogs = GetObject("winmgmts:!\\\\.\\root\\cimv2").ExecQuery(query);
var e = new Enumerator(systemlogs);
for (; ! e.atEnd(); e.moveNext()) {
var log = e.item();
if (log.EventCode == 6005) {//イベントログサービス起動
WScript.Echo("起動: "+log.TimeGenerated);
}
else if (log.EventCode == 6006) {//イベントログサービス停止
WScript.Echo("停止: "+log.TimeGenerated);
}
}
0961デフォルトの名無しさん
2008/06/08(日) 11:00:37質問者じゃないけど、感心した
0962デフォルトの名無しさん
2008/06/08(日) 14:26:310963デフォルトの名無しさん
2008/06/08(日) 15:22:530964デフォルトの名無しさん
2008/06/08(日) 18:23:100965デフォルトの名無しさん
2008/06/08(日) 19:07:44初期表示状態が微妙に縦幅が太くなるんだけぢ
どうやって元に戻すんdねすか?
中身の太さ(高さ)は↓で細くできたんです
void CColorComboBox::MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct)
{
lpMeasureItemStruct->itemHeight = 14;
}
0966デフォルトの名無しさん
2008/06/08(日) 19:07:580967965
2008/06/08(日) 19:15:42オーナードローを可変にすると(CBS_OWNERDRAWVARIABLE)
ボックス内でマウスホイール動かしたときに意味不明な動きをします。
ホイールを下に回してるのに上からビローンって一回転して正しい
位置に回ってきます。なんだこれ。
0968デフォルトの名無しさん
2008/06/08(日) 19:46:30独り言消えろ
0969デフォルトの名無しさん
2008/06/08(日) 19:48:080970デフォルトの名無しさん
2008/06/08(日) 19:53:080971デフォルトの名無しさん
2008/06/08(日) 19:57:410972デフォルトの名無しさん
2008/06/08(日) 19:58:331. 「IDがあればなぁ」などと書く
2. 自演で荒らす
3. 「やっぱID欲しいな」などと書く
0973デフォルトの名無しさん
2008/06/08(日) 20:08:590974デフォルトの名無しさん
2008/06/08(日) 20:09:320975デフォルトの名無しさん
2008/06/08(日) 20:29:070976デフォルトの名無しさん
2008/06/08(日) 20:29:140977デフォルトの名無しさん
2008/06/08(日) 20:30:04二人以上なのか確実
おれ以外にも居るから
0978デフォルトの名無しさん
2008/06/08(日) 20:30:32○ なのは
0979デフォルトの名無しさん
2008/06/08(日) 20:32:580980デフォルトの名無しさん
2008/06/08(日) 20:54:180981デフォルトの名無しさん
2008/06/08(日) 21:05:340982デフォルトの名無しさん
2008/06/08(日) 21:10:01コメント
/*/
スイッチ
//*/
0983デフォルトの名無しさん
2008/06/08(日) 21:20:31いや一人だ
俺と、俺の中の別人格(=お前)
0984デフォルトの名無しさん
2008/06/08(日) 21:24:400985デフォルトの名無しさん
2008/06/08(日) 21:38:27なんでム板はないんだっけ?
0986デフォルトの名無しさん
2008/06/08(日) 21:40:040987デフォルトの名無しさん
2008/06/08(日) 21:45:51人が多く荒れる事が多い板。今までム板では現状のこのスレみたいな
事がほとんどなかったから必要なかっただけかな
0988デフォルトの名無しさん
2008/06/08(日) 21:52:300989デフォルトの名無しさん
2008/06/08(日) 21:56:250990デフォルトの名無しさん
2008/06/08(日) 22:06:490991デフォルトの名無しさん
2008/06/08(日) 22:11:400992デフォルトの名無しさん
2008/06/08(日) 22:12:330993デフォルトの名無しさん
2008/06/08(日) 22:18:11Win32API質問箱 Build67
スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんやお姉さんたちが答えてくれるかも。
過去スレ、関連リンクは>>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質問箱 Build66
http://pc11.2ch.net/test/read.cgi/tech/1210775622/
0994デフォルトの名無しさん
2008/06/08(日) 22:27:48http://pc11.2ch.net/test/read.cgi/tech/1212931246/
0995デフォルトの名無しさん
2008/06/08(日) 22:40:150996デフォルトの名無しさん
2008/06/08(日) 22:40:350997デフォルトの名無しさん
2008/06/08(日) 22:41:110998デフォルトの名無しさん
2008/06/08(日) 22:42:180999デフォルトの名無しさん
2008/06/08(日) 22:43:161000デフォルトの名無しさん
2008/06/08(日) 22:43:2510011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。