トップページ⇒tech
1001コメント243KB

Win32API質問箱 Build67

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2008/06/08(日) 22:20:46
スレ立てるまでもない、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/
0002デフォルトの名無しさん2008/06/08(日) 22:21:25
- MSDN ホームページ
http://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/06/08(日) 22:22:16
- Google
http://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/06/08(日) 22:23:57
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/
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/06/08(日) 22:24:32
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/
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/06/08(日) 22:25:49
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/06/08(日) 22:30:20
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
0008デフォルトの名無しさん2008/06/08(日) 22:32:10
>>1-7乙
0009前スレ9582008/06/08(日) 22:37:52
960 名前:デフォルトの名無しさん[sage] 投稿日:2008/06/08(日) 10:58:25
>>958
>>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);
}
}


めちゃ助かりました。ありがとうございます。
0010前スレ9582008/06/08(日) 22:39:52
参考にして書いた.NETバージョンです

public static DateTime イベントログの前回停止時間()
{
EventLog[] logs = EventLog.GetEventLogs("."); // ローカルコンピュータ
DateTime result = DateTime.MinValue;
bool ok = false;

foreach (EventLog log in logs)
{
if (log.Log != "System") continue;

foreach (EventLogEntry e in log.Entries)
{
if (e.EventID != 6006) continue;

if (e.TimeGenerated > result)
{
result = e.TimeGenerated;
ok = true;
}
}
}

if (!ok)
{
throw new ApplicationException("イベントログの前回停止時間の取得失敗");
}

return result;
}
0011デフォルトの名無しさん2008/06/08(日) 22:50:52
>>10
スレ違い。邪魔。
0012デフォルトの名無しさん2008/06/08(日) 22:55:09
>>1
おつ
0013デフォルトの名無しさん2008/06/08(日) 23:03:03
英語だらけ
0014デフォルトの名無しさん2008/06/08(日) 23:05:46
>>11
スルーしとけ お前も邪魔
0015デフォルトの名無しさん2008/06/08(日) 23:06:56
>>14
ごめんなさい
0016デフォルトの名無しさん2008/06/08(日) 23:36:20
過去ログの横の★って何?
0017デフォルトの名無しさん2008/06/08(日) 23:46:50
datが行方不明って事では
0018デフォルトの名無しさん2008/06/08(日) 23:47:00
↑「いやー ごめんなさい。」に巻き込まれてログなし
0019デフォルトの名無しさん2008/06/09(月) 00:01:46
>>17-18
�d
0020デフォルトの名無しさん2008/06/09(月) 12:45:41
誰もまともに答えてないところにちょっと情けなくも思ったが
>>前スレ904
ファイルをD&Dで渡す動作を再現するならTMPGEncのHWNDを検索で見付け、
HDROPを自前で作ってWM_DROPFILESを投げればいい
HDROPの作り方は検索すれば出てくる
0021デフォルトの名無しさん2008/06/09(月) 12:54:24
訳) やっと私に分かる質問を見つけて、喜び勇んでやってまいりました。
0022デフォルトの名無しさん2008/06/09(月) 13:13:38
訳:かまってほしいな
0023デフォルトの名無しさん2008/06/09(月) 14:47:22
オンラインゲームにキーストロークを送るツールを作ろうと思い、
全スレ>>73 を参考にコードを書いてみたのですが、まったく反応なし。
>>53で非推奨されている
keybd_event(0, MapVirtualKey(DIK_A) ,KEYEVENTF_SCANCODE ,0)
とかやってみたけどダメだった.
JoyToKeyではちゃんと送れているので、方法がない訳じゃないとは思うんだけど...
他のやり方があれば教えてくれ。
0024デフォルトの名無しさん2008/06/09(月) 15:08:30
ま た チ ー ト か
0025デフォルトの名無しさん2008/06/09(月) 15:15:15
全スレw
0026デフォルトの名無しさん2008/06/09(月) 15:33:23
やめときなさい、普通に遊びなさい。
0027デフォルトの名無しさん2008/06/09(月) 15:47:27
能書きはいいからさっさと教えろ
知らないならレスするなカス
0028デフォルトの名無しさん2008/06/09(月) 15:51:47
知ってても誰も教えてくれないよ。ニートちゃん。
0029デフォルトの名無しさん2008/06/09(月) 18:26:08
やり方知ってるよ
当然教えないよ
ゴミ君
0030デフォルトの名無しさん2008/06/09(月) 18:49:18
>>24-29
※すべて同一人物です
0031デフォルトの名無しさん2008/06/09(月) 19:05:17
↑これも俺
0032デフォルトの名無しさん2008/06/09(月) 19:12:22
↑これも私
0033デフォルトの名無しさん2008/06/09(月) 19:22:58
↑これも↓これも僕
0034デフォルトの名無しさん2008/06/09(月) 19:25:42
呼んだ?
0035デフォルトの名無しさん2008/06/09(月) 20:16:50
                | ̄``''- 、
                |      `゙''ー- 、  ________
                |    ,. -‐ ''´ ̄ ̄`ヽ、_        /
                |, - '´ ̄              `ヽ、     /
              /               `ヽ、ヽ   /
             _/                    ヽヽ/
           / / /   /  /  /            ヽハ
          く  / /!   |   〃 _/__ l|   | |   |  |  | | ||ヽ
           \l// / |  /|'´ ∧  ||   | |ー、||  |  | l | ヽ
            /ハ/ |  | ヽ/ ヽ | ヽ  | || /|ヽ/!  |/ | ヽ
            / |  ||ヽ { ,r===、   \| _!V |// //  .!   |
            | ||   |l |ヽ!'´ ̄`゙   ,  ==ミ、 /イ川  |─┘
            | ハ||  || | """ ┌---┐  `  / //  |
            V !ヽ ト! ヽ、    |     !    / //| /
               ヽ! \ハ` 、 ヽ、__ノ    ,.イ/ // | /
    ┌/)/)/)/)/)/)/)/)/)/)lー/ ` ー‐┬ '´ レ//l/ |/
    |(/(/(/(/(/(/(/(/(/(/│||      |\  〃
  r'´ ̄ヽ.              | | ト    /    \
  /  ̄`ア             | | |  ⌒/     入
  〉  ̄二) 呼んでないが  | | |  /     // ヽ
 〈!   ,. -'                | | ヽ∠-----', '´    ',
  | \| |   .お前の態度が   | |<二Z二 ̄  /     ',
  |   | |               _r'---|  [ ``ヽ、      ',
  |   | |   気に入らない >-、__    [    ヽ      !
  \.| l.              ヽ、      [     ヽ    |
    ヽ|              \    r'     ヽ、    |
0036デフォルトの名無しさん2008/06/09(月) 20:47:57
ウィンドウのメニューの背景色を変えたいのですが、
どうすれば出来ますか?
0037デフォルトの名無しさん2008/06/09(月) 22:06:58
オーナードロー
0038デフォルトの名無しさん2008/06/09(月) 22:16:36
質問です。
case WM_SYSCOMMAND:
 switch(LOWORD(wp)) {
 case SC_RESTORE:
 result = ::AnimateWindow(hWnd, 1000, AW_ACTIVATE | AW_CENTER);
 if(!result) {
 LPWSTR lpMessage = 0;
DWORD error = ::GetLastError();
CONSOLEMSG(L"ERROR:[%d]\n", error);
if( ::FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |FORMAT_MESSAGE_FROM_SYSTEM,
NULL, error, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
lpMessage, 0, NULL) ) {
if(!lpMessage)
MessageBox(hWnd, lpMessage, NULL, MB_OK);
} else {
error = ::GetLastError();
CONSOLEMSG(L"ERROR:[%d]\n", error);
}
}
break;
case SC_MINIMIZE:
::AnimateWindow(hWnd, 500, AW_HIDE | AW_CENTER);
ShowWindow(hWnd, SW_MINIMIZE);
return TRUE;
}
break;
0039382008/06/09(月) 22:19:08
ウィンドウを最小化時と元に戻すときにアニメーションさせようと
上記のように元に戻すときのアニメーション書いたんですがうまくいきません。
原因が分かる方教えてください
0040デフォルトの名無しさん2008/06/09(月) 22:40:42
オードーナロー
0041デフォルトの名無しさん2008/06/09(月) 22:48:43
>>39
うまくいかない、じゃなくて具体的な現象を書けよ。
原因究明の重要な情報なんだからさ。
0042382008/06/09(月) 22:59:19
>>41
説明足がたらず、すみません。
最小化時はウィンドウのアニメーションが実行されるんですが、
元に戻すときにAnimateWindowが失敗してアニメーションが実行されないんです。
GetLastErrorでエラーをチェックすると正常終了のIDがセットされているので原因がよく分からないのです。
ちなみにCONSOLEMSGはOutputDebugStringのマクロです。
0043デフォルトの名無しさん2008/06/09(月) 23:00:57
LVS_REPORTなリストビューで、カラムの文字列の左右のマージンを知りたいのですが、
どのように計算すればいいのでしょうか?
0044デフォルトの名無しさん2008/06/09(月) 23:12:39
>>43
以下の関数を使う。
int ListView_GetColumnMargin(HWND hwnd) { return 4; }

ListView_GetColumnMargin はおおよそのマージンを返します。
0045デフォルトの名無しさん2008/06/09(月) 23:45:33
>>44
これはひどい
0046デフォルトの名無しさん2008/06/09(月) 23:49:56
ワロタ
0047442008/06/10(火) 00:18:38
すまん間違えた。
int ListView_GetColumnMargin(HWND hwnd) { return 6; }

>>45-46
一応マジレスなんだが。
正確には GetSystemMetrics(SM_CXEDGE) * 3 らしいが。
0048デフォルトの名無しさん2008/06/10(火) 00:26:55
こいよ、ベネット
0049デフォルトの名無しさん2008/06/10(火) 00:32:17
こいよ、ベネット
0050デフォルトの名無しさん2008/06/10(火) 00:44:55
>>42
AW_ACTIVATEは非表示状態から表示させるもので、Restoreさせるものではないから。
0051382008/06/10(火) 01:37:26
>>50
なるほど!
ということは、Restoreさせた後にウィンドウのアニメーションをさせたい場合は、
独自メッセージを飛ばす必要があるのでしょうか?
それともRestoreされたことを通知するメッセージがあるのでしょうか?

WM_ACTIVEをキャッチすることも考えたんですが、
Restoreされたときだけを抜き出す方法が思いつかなかったのでアドバイスお願いします。

また、アニメーションさせるとき1度SW_HIDEで非表示にしてAW_ACTIVATEで表示させるという流れでいいのでしょうか
0052デフォルトの名無しさん2008/06/10(火) 03:43:33
少しは自分で調べろ
0053デフォルトの名無しさん2008/06/10(火) 06:09:59
>>47
間違っています。
以上。
はい次の方。
0054デフォルトの名無しさん2008/06/10(火) 08:00:26
>>53
間違ってないよ
知らないならレスしないでね
0055デフォルトの名無しさん2008/06/10(火) 08:03:19
Win32APIによるファイルの入出力を実装しています.
入出力自体はできた(と思う)のですが,最後の
CloseHandle(hFile); の戻り値を HRESULT result としてデバッガで
追いかけてみると, 正常終了したはずなのに S_FALSE が返ってきます.
下記のサイトのサンプルでも試してみたのですが,同じでした.
同様の問題をご存知の方がいらっしゃいましたら教えて下さい.

http://wisdom.sakura.ne.jp/system/winapi/win32/win113.html

0056デフォルトの名無しさん2008/06/10(火) 08:05:40
CloseHandleの戻り値の型はBOOL。
0が偽(失敗)で、それ以外の値は真(成功)。

ちなみにS_FALSEの値ははたしか1のはず。
0057552008/06/10(火) 08:40:38
>> 56
すみません.
調べてみたらその通りでした.

CloseHandle() で F1 押して
CBlobCache::CloseHandle
の説明を見てました.

それにしても, 戻り値の 1, 0, -1
の区別は統一性が無いですね.
(自分が知らないだけで良い覚え方とかあるのかな.)
素早い返信ありがとうございました.
さすが2ch.

0058デフォルトの名無しさん2008/06/10(火) 09:08:46
Win32APIは統一性の無さがウリ
0059デフォルトの名無しさん2008/06/10(火) 09:58:59
HRESULTはCOMまわり
0060デフォルトの名無しさん2008/06/10(火) 10:05:17
>>56
それ、せめてMSDNには "戻り値はTRUE, FALSE" って書いてほしい
戻り値がnonzeroとか書かれると、if文で戻り値を判定するときにそういう条件文を書くべきなのか迷う
0061デフォルトの名無しさん2008/06/10(火) 10:13:43
いや、最初からC/C++のifその他の判定は0か非0かだろ
0062デフォルトの名無しさん2008/06/10(火) 10:24:00
if (Hoge() == TRUE)
なんてやってる人のコードは信用できないよな
0063デフォルトの名無しさん2008/06/10(火) 10:40:28
BOOLでTRUE/FALSE以外を返す関数の方が信用できない
どういう設計なんだよ
0064デフォルトの名無しさん2008/06/10(火) 10:48:10
おっとGetMessageの悪口はそこまでだ
0065デフォルトの名無しさん2008/06/10(火) 10:54:53
所詮はDWORDさ。
0066602008/06/10(火) 11:28:06
>>62
そういうコードを書きたくないから言ってるんだよ…

BOOLを戻すと宣言してあるなら、それ以上の判定は必要ないのはわかるよ。実際書かないし。
nonzero(数値)を戻すなら、せめて "ブール値の真として..." くらい書いてくれないかなってこと

CのAPIである以上、数値のnonzeroとブール値の真は同じだからどっちが書いてあっても気にするなってことなのかな
0067デフォルトの名無しさん2008/06/10(火) 11:44:39
Cの特徴だしな
0068デフォルトの名無しさん2008/06/10(火) 11:57:25
>CのAPIである以上、数値のnonzeroとブール値の真は同じだからどっちが書いてあっても気にするなってことなのかな
間違いだらけだ。
0069602008/06/10(火) 12:13:01
>>68
マジか
規格の少なくともifやwhileの項にはブール値なんて存在しないとかそういうこと?
0070デフォルトの名無しさん2008/06/10(火) 12:45:31
C++ならboolがあるが、C99でないCにブール値なんて概念自体存在してるのか?
0071デフォルトの名無しさん2008/06/10(火) 13:00:18
>>70
ブール値の概念は存在しているが規格には書かれていない ってところかな
0072デフォルトの名無しさん2008/06/10(火) 15:45:32
初歩的な質問なのですが、CreateWindowExでボタンを作りました。
そのボタンにアクセラレータ?(SHIFT+'A')をつけたいのですが、
CreateWindowExで作成したボタンにアクセラレータをつけるにはどうすればいいのでしょうか?
環境はVC+SDKです。よろしくお願いします
0073デフォルトの名無しさん2008/06/10(火) 15:49:07
>>72
CreateAcceleratorTable
0074722008/06/10(火) 17:07:40
>>73
レスありがとうございます。
CreateAcceleratorTableで作った場合、
ボタンアクションがありません ><。
0075デフォルトの名無しさん2008/06/10(火) 17:16:00
BM_CLICKでも投げとけ
0076デフォルトの名無しさん2008/06/10(火) 17:18:48
>>74
まさかとは思うが、「ボタン(A)」(Alt+A)のことじゃないだろうな?
こっちはボタンのキャプションを「ボタン(&A)」にすれば勝手に機能するぞ。
0077デフォルトの名無しさん2008/06/10(火) 17:23:27
アクセラレータは発動したときにあくまでWM_COMMANDを発行するものであって、
ボタンのクリックをシミュレートするものではない。
0078デフォルトの名無しさん2008/06/10(火) 17:34:29
>>66
Win95で適当に試した結果

EnableWindow(hwnd, TRUE) で成功するとTRUEではなく 8 が返ってくる。
EnableWindow(hwnd, 0x10000) は失敗する。(下位16ビットしか見ていないらしい)

GetWindowRect(hwnd, &rect) で成功するとTRUEではなく 500 〜 599 が返ってくる。
ShowWindow(hwnd, SW_SHOW) で直前に表示されているとTRUEではなく 16 が返ってくる。

こういう謎な仕様は9x系で終わっていてほしい。
とりあえず上のAPIはNTでは大丈夫っぽいが。
0079デフォルトの名無しさん2008/06/10(火) 17:35:43
76が正解の予感
0080デフォルトの名無しさん2008/06/10(火) 17:37:41
TranslateAcceleratorしてないだけだろ
0081デフォルトの名無しさん2008/06/10(火) 17:45:39
>>78
APIのリファレンスに、引数はTRUE/FALSEを指定するとある。
zero/nonzeroとは書いてない。

戻り値は、zero/nonzeroと書いてある。
TRUE/FALSEを返すなんて書いてない。

説明は正しい。
0082デフォルトの名無しさん2008/06/10(火) 17:54:05
>>81
>>78は、仕様がおかしいって言いたいんだろ?
0083デフォルトの名無しさん2008/06/10(火) 17:58:44
>>81
説明の正しさ、じゃなくてBOOLなのにTRUE/FALSE以外を返すなということ。
GetMessageのように意味があってTRUE/FALSE以外を返すわけでも無さそうだし。
0084デフォルトの名無しさん2008/06/10(火) 18:27:39
Win16のときの、1バイトでも節約、て状況のせいなのかもな。
そして互換性のためにうっかり変えられない、と。
0085デフォルトの名無しさん2008/06/10(火) 18:30:17
8や500を返すのが互換性ってのもおかしな話だなぁ
0086デフォルトの名無しさん2008/06/10(火) 18:33:22
if(GetOpenFileName(&ofn) == IDOK) { 〜 } とか書いてたら正常動作していたので間違いに気付かなかった事ならある
0087722008/06/10(火) 18:37:18
>>75-77 >>79-80
レスありがとうございます
>>77 が僕が今詰まってる問題に一番近いっぽいです ><。
アクセラレータは動いてるのですが、ボタンシミュレートが問題です。
0088デフォルトの名無しさん2008/06/10(火) 18:38:51
だからSendMessage(hButton,BM_CLICK,0,0)でいいだろうが
0089722008/06/10(火) 18:52:00
>>88
おおっ
ボタンシミュレートできました
>>88さん、どうもです。感謝ですー ><。
0090デフォルトの名無しさん2008/06/10(火) 19:48:36
人の話を聞かない性格の典型的パターンだな
0091デフォルトの名無しさん2008/06/10(火) 23:50:18
>>83
実装効率を考えると真の際 TRUE 以外の値を返した方がいい場合もある。
TRUE しか返さない、としてしまうと、その効率のいい実装が取れなくなってしまう。
例えば is 系関数の戻り値を戻り値にしたい場合とか。
is 系関数はメモリ効率のため全ての関数で1つのテーブルを共有し、
ビット演算を使ってそれぞれの関数の戻り値を決めるよう実装されている場合がある。
int isalpha(int letter) { return table[letter] & 1; }
int isdigit(int letter) { return table[letter] & 2; }
int isalnum(int letter) { return table[letter] & 3; }
みたいな感じで。
こういう関数を戻り値に直接指定したい場合とか、0/1 にならないことがある。

そして、果たして BOOL の戻り値を作成する際に使った関数が
全て真偽を 0/1 で返すと確かめることはできるだろうか?
もしかしたら急に仕様が変えられるかもしれない。
それを考えて常に isalpha(ch) ? TRUE : FALSE のように書く事はできるかもしれないけど、
無駄も多いし書き忘れるミスを犯す事もあるだろう。
結局、bool 型のように true/false の2値性を保証する型で typedef されていない以上、
BOOL は 0/1 の2値性を保証しない方が安全ということになる。

TRUE や FALSE は真偽値を与える箇所で
条件式を書く事無くダイレクトに真か偽かを指定するために使う物であって、
比較に使う物ではない。
そもそも真偽値をさらに比較するという発想自体が
二度手間の無駄な発想としか言いようが無い。
0092デフォルトの名無しさん2008/06/10(火) 23:53:36
C言語なんだから0/1じゃなくて
0/非0で考えろ
0093デフォルトの名無しさん2008/06/11(水) 00:28:41
C言語で考えるとむしろ0/1じゃね?
比較とかの評価結果は0/1で返すと決まってるし。
どちらかというと、アセンブラレベルの話だな。

BOOLを0/1へ変換するなら !!value で一応はできるな。
見た目が宜しくないのでお勧めはしないけど。
0094デフォルトの名無しさん2008/06/11(水) 00:31:39
HTMLを解析したいのでIHTMLDocument2を使おうと思っています

CComPtr<IHTMLDocument2> aDoc;
aDoc.CoCreateinstance(CLSID_HTMLDOCUMENT);
aDoc->put_URL(CComBSTR("http://~")); //URLの読み込み(のつもり)
aDoc->get_images()


この put_URL を使うとブラウザで引数のURLを開いてしまい、また、get_imagesで取得したイメージコレクションのサイズが0になっています。
まず、「ブラウザを開かないでHTMLを解析したい」のと、「get_images で取得できていない」理由がよく解りません。

コマンドラインから使うツールのつもりなのでCUIの方がうれしいのですが、ダイアログかなにかで表示させる必要があるのでしょうか?
#イメージとしてはURLを引数で渡すとそのページのIMG src="***" を抽出するプログラムです。
0095デフォルトの名無しさん2008/06/11(水) 00:38:26
>>93
条件式は 0/1 を返すが、
if 文や while 文などの中身は 0/非0 で判定するから
C で考えるなら 0/非0 だな。
0096デフォルトの名無しさん2008/06/11(水) 00:50:47
>比較とかの評価結果は0/1で返すと決まってるし。
処理系依存
0097デフォルトの名無しさん2008/06/11(水) 00:52:54
↑馬鹿
0098デフォルトの名無しさん2008/06/11(水) 02:58:43
はあぁ?
0099デフォルトの名無しさん2008/06/11(水) 03:00:22
妄想は日記の中でしてね。
0100デフォルトの名無しさん2008/06/11(水) 08:44:32
馬鹿かお前
Win32なんて基本的に妄想が中心だろ
MSDNに載ってないような事をしたければ妄想するしかないし
0101デフォルトの名無しさん2008/06/11(水) 08:45:32
↑馬鹿
0102デフォルトの名無しさん2008/06/11(水) 09:56:18
↑阿呆
0103デフォルトの名無しさん2008/06/11(水) 10:03:46
↑馬鹿
0104デフォルトの名無しさん2008/06/11(水) 10:07:05
↑阿呆
0105デフォルトの名無しさん2008/06/11(水) 10:08:20
↑馬鹿
0106デフォルトの名無しさん2008/06/11(水) 10:08:55
↑ば、馬鹿じゃないのっ
0107デフォルトの名無しさん2008/06/11(水) 10:10:01
↑阿呆
0108デフォルトの名無しさん2008/06/11(水) 10:21:25
↑あ、阿呆じゃないのっ
0109デフォルトの名無しさん2008/06/11(水) 10:25:26
↑馬鹿
0110デフォルトの名無しさん2008/06/11(水) 10:26:12
↑ば、馬鹿じゃないのっ
0111デフォルトの名無しさん2008/06/11(水) 10:33:12
訳:かまってほしいな
0112デフォルトの名無しさん2008/06/11(水) 10:36:37
かまってほしくない人はレスしないでください
0113デフォルトの名無しさん2008/06/11(水) 10:39:16
>>94
IHTMLDocument2 を使うことが絶対条件なの?
0114デフォルトの名無しさん2008/06/11(水) 12:32:55
必要条件
0115デフォルトの名無しさん2008/06/11(水) 12:36:22
BOOLを返すAP(Iは必ず

bool Successed = Hoge(...) != 0;

としてる。
0116デフォルトの名無しさん2008/06/11(水) 12:40:17
だから?
0117602008/06/11(水) 12:57:43
ちょっとした愚痴のつもりだったんだが…
いまさらMSDN書き替えられても困るし


で、結局>>68の指摘してる間違いってなんなんだ?
すごく気になるんだけど
0118デフォルトの名無しさん2008/06/11(水) 13:06:50
単なるかまって厨でFA
0119デフォルトの名無しさん2008/06/11(水) 13:13:40
http://www.open-std.org/jtc1/sc22/wg14/www/standards.html
0120デフォルトの名無しさん2008/06/11(水) 14:21:09
>>68の指摘は分からんが、CのAPIではないなw
API自体は言語関係ないからね。
そう考えると、Cの文法や流儀を元に議論するのはナンセンスかもしれん。
0121デフォルトの名無しさん2008/06/11(水) 14:31:32
馬鹿だなあ
文字列がナルターミネートな時点でC前提だろ
0122デフォルトの名無しさん2008/06/11(水) 14:35:03
↑馬鹿
0123デフォルトの名無しさん2008/06/11(水) 14:54:48
↑阿呆
0124デフォルトの名無しさん2008/06/11(水) 14:58:36
呼び出し規約そのものは、cdeclとpascalの中間だけど
まあC用だな、他の言語はそれにあわせてるだけ。
0125デフォルトの名無しさん2008/06/11(水) 15:05:18
そもそもwin32API自体がCで書かれているのだからC前提で当然
そんな事もわからない素人が増えちゃったんだね・・・
0126デフォルトの名無しさん2008/06/11(水) 15:17:41
↑馬鹿
0127デフォルトの名無しさん2008/06/11(水) 15:19:19
↑阿呆
0128デフォルトの名無しさん2008/06/11(水) 15:20:51
↑馬鹿
0129デフォルトの名無しさん2008/06/11(水) 15:21:36
馬鹿も阿呆も漏れだけでいい
0130デフォルトの名無しさん2008/06/11(水) 15:29:14
↓馬鹿
0131デフォルトの名無しさん2008/06/11(水) 15:29:52
え?おれも?
0132デフォルトの名無しさん2008/06/11(水) 15:41:59
まとめ:かまってほしいな
0133デフォルトの名無しさん2008/06/11(水) 15:53:55
(・ω・` )ヾ(・ω・* )ネェネェ カマッテヨ
0134デフォルトの名無しさん2008/06/11(水) 16:34:53
「↑馬鹿」と「↑阿呆」はそれぞれ同一人物による書き込み
つまり荒らしは2名
0135デフォルトの名無しさん2008/06/11(水) 16:51:30
↑はずれ
0136デフォルトの名無しさん2008/06/11(水) 17:02:54
1人だったのか
0137デフォルトの名無しさん2008/06/11(水) 17:06:37
↑はずれ
0138デフォルトの名無しさん2008/06/11(水) 17:15:14
答え:多重人格(一人)
0139デフォルトの名無しさん2008/06/11(水) 17:23:45
↑はずれ
0140デフォルトの名無しさん2008/06/11(水) 17:43:15
現在の稼動状況
人格1: >>135
人格2: >>137
人格3: >>139
人格4〜16: Idle

最大16人格まで拡張可能
それぞれの人格は並列動作
(例えば人格1から人格2〜16のレスを見ても同一人物であるという認識は本人には無い)
記憶装置(脳)は16人格で共有されるため、正常な人間に比べて人格それぞれの知識は16分の1
0141デフォルトの名無しさん2008/06/11(水) 17:54:06
>>140みたいな事を平気で書き込めちゃう奴って本気で近づきたくない
0142デフォルトの名無しさん2008/06/11(水) 17:57:37
↑馬鹿
0143デフォルトの名無しさん2008/06/11(水) 18:01:29
↑阿呆
0144デフォルトの名無しさん2008/06/11(水) 18:06:05
ビリーミリガンよりは少ないな
0145デフォルトの名無しさん2008/06/11(水) 18:20:27
かまってほしいな
0146デフォルトの名無しさん2008/06/11(水) 18:43:19
(・ω・` )ヾ(・ω・* )ネェネェ カマッテヨ
0147942008/06/11(水) 18:45:28
>>113
> >>94
> IHTMLDocument2 を使うことが絶対条件なの?

いえ、HTMLの解析が簡単にできればIHTMLDocument2でなくても問題ないです。
MSDNの中を探してたらそれらしいメソッドがIHTMLDocument2に見つかったので使っている所です。

ブラウザを開かないのはIHTMLDocument4::CreateDocumentFromURLを使えばいいのかなぁ
0148デフォルトの名無しさん2008/06/12(木) 00:36:01
>>147
もし、htmlソースが文字列として得られるのなら、
・空のドキュメントにhtmlをwriteしてDOMを作ったことはあるなあ。
・普通に文字列処理で何とかするのも手。
・TidyとかでXHTMLにしてXMLパーサに読ませるとか。

URLがあるんなら、そういう時のためのいいやり方が別にあるような気はするけど。

あと、こっちのスレの方が詳しいかもしれない。
 IEコンポーネントを使い倒すスレ Ver.2
 http://pc11.2ch.net/test/read.cgi/tech/1145189322/
0149デフォルトの名無しさん2008/06/12(木) 02:24:06
>>147
用途が分からないから判断が難しいけど、

IHTMLDocument2だとブラウザは開くねぇ。隠したとしても音が残る。
XMLパーサーだと規約に沿ってないとエラーになる。

簡単なのはWinInetを使って、正規表現を使って解析することかなぁ。
0150デフォルトの名無しさん2008/06/12(木) 03:14:42
>>149
APIフックして音を消せば?ってのがこのスレ的な回答かな
0151デフォルトの名無しさん2008/06/12(木) 07:03:47
全角半角キーをスイッチのように使いたいのですが
押しても全角モードに切り替わらない良い方法はありませんか
0152デフォルトの名無しさん2008/06/12(木) 12:21:13
フック
0153デフォルトの名無しさん2008/06/12(木) 14:41:05
>>152
詳しく
0154デフォルトの名無しさん2008/06/12(木) 14:53:39
クック
0155デフォルトの名無しさん2008/06/12(木) 15:06:35
ドゥ
0156デフォルトの名無しさん2008/06/12(木) 15:16:20
訳:かまってほしいな
0157デフォルトの名無しさん2008/06/12(木) 15:20:03
訳:ググレ
0158デフォルトの名無しさん2008/06/12(木) 15:33:13
いちごみるくうめぇ
0159デフォルトの名無しさん2008/06/12(木) 15:45:14
ヾ(@⌒¬⌒@)ノ ウマヒィ
0160デフォルトの名無しさん2008/06/12(木) 16:49:07
社会から自分が必要とされていないのではないかと思っているから荒らす
少しでも反応があれば自分は必要とされているんだと勝手に勘違いして納得する
それがかまってちゃん

こうして俺たちがかまってあげているうちは街中で無差別殺人なんてしないだろうから
人助けの一つだと考えて適当に相手してあげておいた方がいいかもな
0161デフォルトの名無しさん2008/06/12(木) 16:54:19
>>160
こうですか!わかりません><
0162デフォルトの名無しさん2008/06/12(木) 16:55:35
探すのが面倒だから荒らすんですね(>ω<
0163デフォルトの名無しさん2008/06/12(木) 18:52:04
フックについてググってもvbやらdelphiやらc++やらapiやら混在してる割に
ヒット数が意外と少ないんですがとりあえず
SetWindowsHookEx WH_KEYBOARD WM_INITDIALOG
あたりを使う方法でいいのでしょうか?
0164デフォルトの名無しさん2008/06/12(木) 18:53:22
最後は関係ない希ガス
0165デフォルトの名無しさん2008/06/12(木) 19:20:16
>>164
どうもです。そのものずばりの情報はなかなか見つかりませんね。
範囲があまりにも広いのですが絞るとほとんどhitせず・・・もう少し調べてみます
0166デフォルトの名無しさん2008/06/12(木) 21:02:18
動的に追加したリストボックスをDestroyWindow()する時に予めLB_RESETCONTENTする必要はありますか?
0167デフォルトの名無しさん2008/06/12(木) 21:14:24
>>166
deleteする時に予めデストラクタを呼んでおく必要はありますか?
って聞いてるようなモンだぞ
0168デフォルトの名無しさん2008/06/12(木) 21:26:55
>>167
DestroyWindow()するだけで良いのですね。
ありがとうございました。
0169デフォルトの名無しさん2008/06/12(木) 21:52:18
スレ違いのような気もするけど、気にせず教えてください。

kbdacc とか 秀Caps のようなキーリピートの高速化ってどうやって実現してるんでしょうか?
SystemParametersInfo で設定できる値よりずっと速くできるようですが。
0170デフォルトの名無しさん2008/06/12(木) 22:15:27
>>165
自プロセスへのフックは簡単だと思うけど‥‥他プロセスやグローバルフックになると共有メモリとかの処理が必要になってくるけど
0171デフォルトの名無しさん2008/06/12(木) 22:17:16
>>169
気にせず教えてください…?頭わいてんのか?
0172デフォルトの名無しさん2008/06/12(木) 22:29:33
お忙しい中すみませんが、気にせず教えてください。
0173デフォルトの名無しさん2008/06/12(木) 22:33:16
教えを乞う言葉じゃない気がしますが、気にせず教えてください。
0174デフォルトの名無しさん2008/06/12(木) 22:54:35
>>169
ずっと速くできるようですが気にせず設定してください
0175デフォルトの名無しさん2008/06/12(木) 23:12:31
流れがおかしいようですが気にせず質問してください
0176デフォルトの名無しさん2008/06/12(木) 23:15:39
ツールバーの表示位置を変えたいのですが、どのようにすればいいですか?
0177デフォルトの名無しさん2008/06/12(木) 23:21:10
movewindow
0178デフォルトの名無しさん2008/06/13(金) 00:14:46
>>177
レスありがとうございます。
後一つわからないことがありまして、
ツールバーの高さを変えるにはどうすればいいですか?
0179デフォルトの名無しさん2008/06/13(金) 00:15:13
>>177
APIの大文字小文字は区別されます。嘘を書くのをやめましょう。
0180デフォルトの名無しさん2008/06/13(金) 00:16:35
>>178
ボタンを大きくする
0181デフォルトの名無しさん2008/06/13(金) 00:28:58
>>180
ありがとうございます。
御礼に私の集めた女子高生画像10枚ほどぅpしようと思うのですが
0182デフォルトの名無しさん2008/06/13(金) 00:33:42
>>181
早く汁
ttp://www.uploda.org/
0183デフォルトの名無しさん2008/06/13(金) 01:00:03
>>181-182
偽者&自作自演乙
0184デフォルトの名無しさん2008/06/13(金) 01:10:32
↑はずれ
0185デフォルトの名無しさん2008/06/13(金) 01:13:02
http://mbup.net/p.php?p=44502.jpg
http://mbup.net/p.php?p=44503.jpg
こんな感じのでよいでしょうか?
0186デフォルトの名無しさん2008/06/13(金) 01:36:20
訳:かまってほしいな
0187デフォルトの名無しさん2008/06/13(金) 02:35:45
>>186
かまってほしいです。
実のところMoveWindowでツールバーの移動が出来ませんでした。
0188デフォルトの名無しさん2008/06/13(金) 02:55:07
自プロセスのUIスレッドのIDを取得したいのですが、方法はありますかね?
0189デフォルトの名無しさん2008/06/13(金) 03:12:29
>>188
ググッたらその辺のサンプルは、見つかると思うよ
0190デフォルトの名無しさん2008/06/13(金) 05:09:14
ツールバー移動出来ない……
クローズボタンなんかだと移動出来てるぽいから出来ると思うのですが…
0191デフォルトの名無しさん2008/06/13(金) 10:24:01
Windows Media Playerの埋め込みについて質問させてください。

親ウィンドウ(レイヤードウィンドウ)にメディアプレイヤーを埋め込んでいるのですが、
WS_EX_Layeredで親ウィンドウを生成し、SetLayeredWindowAttributesで透明度を設定すると、
メディアプレイヤーの動画部分が黒く表示されます(再生はされているみたいです)
親ウィンドウを動かしてみると、一瞬だけ動画が表示され、動かすのをやめるとまた消えてしまいます。
これはどういった原因があるでしょうか。
親ウィンドウをレイヤードウィンドウにしなかった場合は、そのまま表示されます。
0192デフォルトの名無しさん2008/06/13(金) 11:24:59
WS_CLIPCHILDRENとかその辺?
0193デフォルトの名無しさん2008/06/13(金) 11:28:43
タブのグレイ表示ってできないんですか?
0194デフォルトの名無しさん2008/06/13(金) 13:57:22
>>190
>>190
>>190
>>190
>>190
>>190
>>190
0195デフォルトの名無しさん2008/06/13(金) 14:12:25
聞きたいのは、何故ツールバーをMoveWindowで移動出来ないのか
です。
0196デフォルトの名無しさん2008/06/13(金) 15:19:53
最近、いろいろなサイトでTEXT("aaa");見たいなの見かけますが
文字型charには代入できなくなったのですか?新しい型?
0197デフォルトの名無しさん2008/06/13(金) 15:21:14
意味不明
0198デフォルトの名無しさん2008/06/13(金) 15:27:26
TEXT("aaa")とか_T("aaa")は、ユニコード対応だったけか?
ググれば、その辺はすぐ見つかるよー
0199デフォルトの名無しさん2008/06/13(金) 15:28:16
最近のVC++はデフォがUnicode版API使うようにマクロ定義さてるんじゃなかったっけ?
2003で止まってるから知らんが。
0200デフォルトの名無しさん2008/06/13(金) 15:39:25
WM_KEYUPでwParamと数値を比較すると警告メッセージがでるのですが
wParamをintでキャストするような方法でいいのでしょうか
0201デフォルトの名無しさん2008/06/13(金) 15:40:25
おk
0202デフォルトの名無しさん2008/06/13(金) 15:41:20
>>201
秒殺レスさんくす
0203デフォルトの名無しさん2008/06/13(金) 16:05:45
>>191
WMPが動画をオーバーレイで表示してるなら、不思議な挙動ではないな。
ビデオオーバーレイは画面上のビデオ表示領域にあるピクセルが特定の色だった場合に、そのピクセルに動画を表示する。
よって半透明にした結果、そのピクセルの色が変わってしまえば動画が表示されなくてもおかしくはない
0204デフォルトの名無しさん2008/06/13(金) 16:20:56
なかなか深い読みだな
0205デフォルトの名無しさん2008/06/13(金) 16:27:34
>>203
アプリの背景色をその色にすると面白い事になるよね
0206デフォルトの名無しさん2008/06/13(金) 16:32:23
自己解決しちゃったぜ!!?
気分がいいので
今から写メを20枚ぅpしてやんよ!!!
0207デフォルトの名無しさん2008/06/13(金) 16:50:01
http://mbup.net/d/44545.jpg
http://mbup.net/d/44547.jpg
http://mbup.net/d/44549.jpg
http://mbup.net/d/44552.jpg
http://mbup.net/d/44554.jpg
0208デフォルトの名無しさん2008/06/13(金) 16:54:40
基地外が沸いてるな
0209デフォルトの名無しさん2008/06/13(金) 17:53:16
>>191
WMPでオーバーレイを使わない設定にすれば見えなくなることはなくなるけど、透けないしちらつくんだよな。
0210デフォルトの名無しさん2008/06/13(金) 20:52:48
ツールチップをCreateWindowEx()してTOOLINFO構造体のlpszTextにLPSTR_TEXTCALLBACKを指定した後、

case WM_NOTIFY:
switch (((LPNMHDR)lp)->code)
{
case TTN_NEEDTEXT:
LPTOOLTIPTEXT ptt = (LPTOOLTIPTEXT)lp;
lstrcpy(ptt->lpszText, 表示するテキスト);
break;

default:
return FALSE;
}

とすると、数十字程度の場合は正常に動作しますが、300文字等文字数を増やすとデバッグ実行時でもエラーが出ずに突然落ちてしまいます。
原因は何でしょうか。
因みにTTM_UPDATETIPTEXTでは正常に動作しました。

>>196
所謂TCHAR型だから、プロパティでマルチバイトを選択すればchar、Unicodeを選べばwchar_tとコンパイラは解釈する。
0211デフォルトの名無しさん2008/06/13(金) 21:18:19
TTN_NEEDTEXT 通知メッセージを処理する場合は、表示する文字列を次のいずれかの方法で指定します。

szText メンバで指定したバッファにテキストをコピーする。

テキストが入っているバッファのアドレスを lpszText メンバにコピーする。

文字列リソースの識別子を lpszText メンバにコピーし、そのリソースが入っているインスタンスのハンドルを hinst メンバにコピーする。

MSDNくらいちゃんと確認汁
0212デフォルトの名無しさん2008/06/13(金) 21:24:54
>>210
バッファオーバーラン

今時そんなバグを平気で出しちゃうCプログラマは
偉そうにTCHAR型の講釈している場合じゃないよ
0213デフォルトの名無しさん2008/06/13(金) 21:25:28
俺も>>211 が正解な気がする
0214デフォルトの名無しさん2008/06/13(金) 21:31:45
タスクの切り替え(アクティブウィンドウを切り替える)のをエミュレートしたいんですけどどうすればいいですかね?

ある条件を満たしたとき、(タスクバーの)(右)隣のウィンドウに切り替えたいんですけど。

Alt+Tabのキーボードエミュレートだと、直前のやつにしか切り替え不可ですよね・・?
Tabの押す回数をうまく制御すればいいんですかね?
他にもっとスマートな方法ありますか??

あと、上記のような不特定多数のタスクがある状況で動くものと、
特定の(例えばWMPとか、決まったアプリをアクティブにする)をアクティブにするものも知りたいです。
ちなみにC++(VC2008ExpressEdition)です。
ご教授のほどお願いします。
0215デフォルトの名無しさん2008/06/13(金) 21:36:05
>>214
FindWindow
GetWindowThreadProcessId
SetActiveWindow
SetForegroundWindow
0216デフォルトの名無しさん2008/06/13(金) 21:36:28
>>210
80文字分しかないバッファに300文字コピーしたら
バッファオーバーランするに決まってるだろ。
0217デフォルトの名無しさん2008/06/13(金) 22:08:45
(誰が決めたのだろう・・・?)
0218デフォルトの名無しさん2008/06/13(金) 22:09:50
俺
0219デフォルトの名無しさん2008/06/13(金) 22:11:45
そいやXPのPowerToyのAlt+TAB乗っ取りプログラムはWS_EX_TOOLWINDOWとかマスクしてなくてPhotoshopとか起動してるとかなり格好悪いことになるんだよな。
0220デフォルトの名無しさん2008/06/13(金) 22:31:36
>>215
単純明快かつわかりやすい回答、ありがとうございます。
0221デフォルトの名無しさん2008/06/13(金) 22:34:57
どういたしまして
0222デフォルトの名無しさん2008/06/13(金) 22:39:30
>>221
騙りウザイ
0223デフォルトの名無しさん2008/06/13(金) 22:40:53
>>192
>>203
>>209
埋め込んだメディアプレイヤーを透明にするということは難しいということですね。。
別の方向で検討します。
レスありがとうございました。
0224デフォルトの名無しさん2008/06/13(金) 22:45:30
どういたしまして
02252142008/06/13(金) 22:48:41
すいません、また質問させてください。
>>215でプロセスIDを習得する意味は何でしょうか?
0226デフォルトの名無しさん2008/06/13(金) 22:49:29
習得?
0227デフォルトの名無しさん2008/06/13(金) 22:54:07
取得、です。
0228デフォルトの名無しさん2008/06/13(金) 22:55:29
同じプロセスで動いてるやつを飛ばすとか?
0229デフォルトの名無しさん2008/06/13(金) 23:10:01
>>225
> 例えばWMPとか、決まったアプリをアクティブにする
とあったので、特定のアプリをアクティブにするならプロセスIDから逆引きすればいいよってこと。
0230デフォルトの名無しさん2008/06/13(金) 23:43:22
GDIのPolygon関数は、与えられた引数によっては交差した図形を描くのですが、
どんな引数を与えられても交差しない図形を描くことは出来ないのでしょうか。
0231デフォルトの名無しさん2008/06/13(金) 23:56:05
>>230
交差しない順で自分で頂点を並べればいいだろう。
ちょっと考えれば、順不同で与えられた頂点から、辺が交差しない図形は
一意で求まらないことくらい分かりそうなもんだが。
0232デフォルトの名無しさん2008/06/13(金) 23:56:42
そんなAPIがあることを初めて知った。。。

質問の意味はよくわからんが、細かく制御したいなら自分でやれば。
0233デフォルトの名無しさん2008/06/14(土) 00:10:18
分からないならレスしないでください
0234デフォルトの名無しさん2008/06/14(土) 00:22:14
>>191のやつをVista DWM有効下で動かすとどうなるんだろうと気になった。
0235デフォルトの名無しさん2008/06/14(土) 00:29:56
オーバーレイは使えないが、動画は表示され、ちらつきも無くなって万々歳と予想
0236デフォルトの名無しさん2008/06/14(土) 00:36:56
それってXPで出力をVMR9にしたのと同じような状況じゃねーの?
0237デフォルトの名無しさん2008/06/14(土) 00:46:13
個人的に、レイヤードウィンドウとDWMの違いがハッキリしないんだけど。
レイヤードウィンドウでもWM_PAINTがほとんど飛んでこなくなるし、DirectXベースっぽいし。

思うに、レイヤードウィンドウがDX7だったのに対してDWMがDX9になっただけな気がする。
もちろん色々と変わってるだろうけど(GDIをソフトレンダラ化とか)、DWMでやってる事って
半分ぐらいはWindows2000で既に実現できていたんじゃないのかなぁ。
02382142008/06/14(土) 01:21:17
あーできません助けてください!

「今アクティブなウィンドウ(アプリ)の、“タスクバーにおける(右)隣”のウィンドウへアクティブを移す」を実現したいのですが、
要はこれって「タスクバーでいうと隣」のウィンドウのハンドルを取得、それを使ってアクティブにすればいいんですよね?

だけど「タスクバーで隣」っていうのをどう条件設定すればよいのかわからず・・・。タスクバーを右に右に推移(+右端だったら左端に動くように)させたいのですが・・。

なんかヒントください!
0239デフォルトの名無しさん2008/06/14(土) 01:25:08
>>238
タスクバーをフックする


そして次のバージョンのWindowsで死亡
0240デフォルトの名無しさん2008/06/14(土) 08:27:48
fprintf等でUTF-8 LF形式で出力したいのですが、どうしてもできません。
どうかご教授おねがいします
。

FILE* fp;
_tfopen_s( &fp, _T("hoge.txt"), _T("w,ccs=UTF-8"));
fseek(fp, 0, SEEK_SET );
_ftprintf_s( fp, _T("hogehoge"));
_setmode( _fileno( fp ), _O_BINARY );
_ftprintf_s( fp, _T("\n"));
_setmode( _fileno( fp ), _O_TEXT );
_ftprintf_s( fp, _T("あいうえお"));
fclose(fp);

MSDN見る限りではこう作れってかいてあるのですが、どうも_setmodeの挙動がおかしいようで...
0241デフォルトの名無しさん2008/06/14(土) 09:14:00
どうせccs=UTF-8なんてVC++限定なんだから、
自分でメモリ上にUTF-8, LF改行のデータを作って、
ただのバイナリモードで一気に書きこんだらどうかと思う。

というかスレ違い。
0242デフォルトの名無しさん2008/06/14(土) 10:13:39
>>240
_setmode( _fileno( fp ), _O_U8TEXT);
0243デフォルトの名無しさん2008/06/14(土) 10:53:27
リッチエディットの背景に画像を表示したいのですが方法はあるのでしょうか?
ググってみても背景色の変更はあるのですが背景に画像を埋め込む方法は見つかりません。
0244デフォルトの名無しさん2008/06/14(土) 10:57:51
>>243
無理。IEコンポーネントでも使え
02452432008/06/14(土) 11:01:49
やっぱりそうですか・・・。ありがとうございます。
0246デフォルトの名無しさん2008/06/14(土) 11:24:30
どういたしまして
0247デフォルトの名無しさん2008/06/14(土) 14:21:30
リッチエディットコントロールで右クリックしても
エディットコントロールと違って何も表示されないんだけど
どうすればいいんでしょか
0248デフォルトの名無しさん2008/06/14(土) 14:54:24
>>241

間違えてここに書いちゃいました。
C++相談室で聞いてきます。

>>242
実はこれはいろいろためしてたときのソースがそのまま残ってました。
_setmode( _fileno( fp ), _O_U8TEXT);
もすでに試してたけど、なぜかCRLFになるので、ダメでした。
0249デフォルトの名無しさん2008/06/14(土) 15:10:51
C++相談室もスレ違いだけどな
0250デフォルトの名無しさん2008/06/14(土) 15:20:35
・スレ違いの質問でも丁寧に答えてくれます。
・かまってちゃんの煽りにもきちんとかまってくれます。

をテンプレに追記汁
0251デフォルトの名無しさん2008/06/14(土) 15:45:05
CreateThreadで作成したスレッドがサスペンドになるまで待機するような関数はありませんか。
WaitForInputIdleのスレッド版、のようなモノです。

自前でフラグでも立てて調べ続けるしかないのでしょうか。
0252デフォルトの名無しさん2008/06/14(土) 15:50:57
訳:おしえてほしいな
0253デフォルトの名無しさん2008/06/14(土) 15:55:11
>>251
サスペンドにする設計はよしたほうがいい。
同期オブジェクトを使うべき。

0254デフォルトの名無しさん2008/06/14(土) 16:11:46
自前で Win32API のラッパーライブラリ作って使い回してる人どれくらいいます?
windowsx.h みたいなマクロの集合から本格的なクラスライブラリまで含めて。
0255デフォルトの名無しさん2008/06/14(土) 16:35:10
>>254
自分が使う分はラップしてから使う。
0256デフォルトの名無しさん2008/06/14(土) 16:53:37
そのコードにsetmodeは要らないと思うが。
0257デフォルトの名無しさん2008/06/14(土) 16:58:06
>>254
WTLでいいだろ
0258デフォルトの名無しさん2008/06/14(土) 17:35:31
WTLは糞すぎるんで、
自作の、ATLをラップしたテンプレートクラスライブラリでやってるよ。
0259デフォルトの名無しさん2008/06/14(土) 17:48:36
VCLで間に合ってます
0260デフォルトの名無しさん2008/06/14(土) 18:13:08
>>258
どう糞すぎるの?
0261デフォルトの名無しさん2008/06/14(土) 21:14:18
TCHAR[]な文字列のバイト数はどうやったら求められるのでしょうか
0262デフォルトの名無しさん2008/06/14(土) 21:15:27
あ、lstrlenでいけるっぽいですね。スレ汚しすみません。
0263デフォルトの名無しさん2008/06/14(土) 21:32:21
わかってるかもしれんけど、
「バイト数」は lstrlen(str) * sizeof(TCHAR) じゃないと求まらんよ
0264デフォルトの名無しさん2008/06/14(土) 21:33:36
>>263
おまい、優しいな
0265デフォルトの名無しさん2008/06/14(土) 21:35:55
strlenとlstrlenて何が違うんだ?ずっとstrlen使ってたんだけぢ
0266デフォルトの名無しさん2008/06/14(土) 21:36:19
引数の型が違う
0267デフォルトの名無しさん2008/06/14(土) 21:44:09
やっぱり違いが判らない

lstrlenのLPCTSTRって
strlenのconst char* と同じでしょ?
0268デフォルトの名無しさん2008/06/14(土) 21:45:39
#define UNICODE
0269デフォルトの名無しさん2008/06/14(土) 21:49:57
じゃあ
lstrlen=_tcslenなわけ?
0270デフォルトの名無しさん2008/06/14(土) 21:50:34
>>265
lstrlenはスレ違いじゃないけどstrlenはスレ違い
0271デフォルトの名無しさん2008/06/14(土) 21:54:04
_tcslenもスレ違い
0272デフォルトの名無しさん2008/06/14(土) 21:54:16
>>269
lstrlen (lstrlenA, lstrlenW) は Win32API (ダイナミックリンク)
_tcslen (strlen, wstrlen) は C Runtime (スタティックリンク)
この違い重要な
0273デフォルトの名無しさん2008/06/14(土) 21:56:17
> C Runtime (スタティックリンク)
馬鹿は黙っててね
0274デフォルトの名無しさん2008/06/14(土) 21:58:20
>>272
CRTもダイナミックリンクできるが?

つーか基本的にwsprintfとかlstrlenとかWin16でメモリが厳しくてCRTなんか使ってられるかって時代の遺物なんだから気にするな。使うな。
0275デフォルトの名無しさん2008/06/14(土) 22:06:41
Win32API はスタティックリンクできないが
C Runtime は普通スタティックリンクで使うので間違ってはいない
0276デフォルトの名無しさん2008/06/14(土) 22:09:08
>>275
VC8はダイナミックリンクがデフォ設定になってたなぁ
02772722008/06/14(土) 22:34:54
>>276
あ、確かにデフォルトで /MD (msvcr80.dll) になってるわ
普段 cl.exe とか nmake.exe とかでやってるから libcmt.lib が当たり前だと思ってた

あと誰もつっこんでくれないけど wstrlen じゃなくて wcslen
また多分 strlen ぐらいならコンパイラがインライン展開してくれると思う
0278デフォルトの名無しさん2008/06/15(日) 00:23:16
msvcrt.dllはKnownDLLsだから、これを使うならCRTもWin32APIみたいな物じゃね
まーそのせいで最近のVC++はmsvcrt.dllが使用できないが
0279デフォルトの名無しさん2008/06/15(日) 01:08:48
リストボックスに横スクロールバーを追加したのですが、項目の文字列の幅を正確に取得出来ないのか全ての文字が表示される所までスクロール出来ません。

GetTextExtentPoint32()は

> デバイスの中には、通常のセル配列に文字を配置しないデバイス(すなわちカーニングを実行するデバイス)もあるため、文字列内の個々の文字のサイズの総計と文字列全体のサイズとが一致しないことがあります。

の解説から等幅しか正しく計算出来ないようですが、プロポーショナルフォントで正しく計算する方法はないのでしょうか。
※これとは別に垂直スクロールバー分のGetSystemMetrics(SM_CXVSCROLL)は足しています。
0280デフォルトの名無しさん2008/06/15(日) 01:18:08
その説明は関係ないだろ
(もし1文字分ずつ別々に測って足してったら正しい結果は出ないよって意味だ)
ちゃんとDCにフォントを選択したか?
0281デフォルトの名無しさん2008/06/15(日) 01:32:32
>>280
誤解を解いてくれてありがとうございます。

> DCにフォントを選択したか
選択したら、未選択の時より短くなってしまいました。

追加したコード

HFONT hFont = CreateFont(-MulDiv(9, GetDeviceCaps(hDC, LOGPIXELSY), 72), 0, 0, 0, 400, 0, 0, 0, DEFAULT_CHARSET, OUT_OUTLINE_PRECIS, CLIP_DEFAULT_PRECIS, ANTIALIASED_QUALITY, VARIABLE_PITCH, L"MS UI Gothic");
SelectObject(hDC, hFont);

:

DeleteObject(hFont);
0282デフォルトの名無しさん2008/06/15(日) 02:50:21
>>281
それはリストボックスと同じフォントか?
というかWM_GETFONTでフォントもらえ
0283デフォルトの名無しさん2008/06/15(日) 11:24:09
>>282
遅レスすみません。
リストボックスのフォント(ダイアログのフォントと同じ)はMS UI Gothic 9ptですが、WM_GETFONTで取得したフォントは何故かArialの12pt(?)になっていました。
更にウィンドウ上の文字もそれに変わって表示が滅茶苦茶に…。
勿論Arialなんて何処にも使用していません。

何処に原因があるのか解らないので一度Win32APIから離れて.NETでGraphicsオブジェクトを作りMeasureString()で幅を取得してHorizontalExtentプロパティに設定したら、こちらは上手くいきました。

結局の所、正しいフォントが選択されていない事が最大の原因でしょうか。
そうだとしたら何故フォントが正しく取得出来ないのでしょうか。
0284デフォルトの名無しさん2008/06/15(日) 13:08:11
>>282
もらえるのはHFONTだが、それがArialだってのはどうやって調べた
(というか調べる必要があった)んだ? DCにハンドル選択するだけなのに。
本当にArialとやらだったら、取得に失敗してシステムフォントが返ってるんだろ。

他のウィンドウのフォントが崩れたのは、
このスレにコード念写できる人はおらんから確かなことは言えんが
おおかたもらったフォントをDeleteObjectでもしたんでないの。
0285デフォルトの名無しさん2008/06/15(日) 13:24:08
> それがArialだってのはどうやって調べた
ウィンドウに表示される文字で判別しました。

> もらったフォントをDeleteObjectでも〜
思い切りしていました…。
削除する事でフォントは正常に戻りましたが、やはり文字列の最後までスクロール出来ません。
文字コードは全てワイド文字で処理していますが、これが関係しているのでしょうか。
0286デフォルトの名無しさん2008/06/15(日) 13:48:23
> ウィンドウに表示される文字
それほど信頼できん調べ方はないだろうがw
フォントリンクとかでぐぐっとけよ
0287デフォルトの名無しさん2008/06/15(日) 13:52:08
>>285
あなたにWin32APIは無理です。
諦めて.NETを使いましょう。いい時代になりましたね。
0288デフォルトの名無しさん2008/06/16(月) 01:30:35
>>285
>ウィンドウに表示される文字で判別しました。
フォント名がほしいなら GetTextFace() とか使ってくれ

とりあえず GetTextExtentPoint32() のリファレンス読み直すとか、
DrawText() に DT_CALCRECT 渡すなどの方法で代用するとか
0289デフォルトの名無しさん2008/06/16(月) 07:54:20
Advanced Windows っていい本ですね
高いけど
0290デフォルトの名無しさん2008/06/16(月) 09:13:10
>>288
情報小出しする奴はスルーしとけ
0291デフォルトの名無しさん2008/06/16(月) 12:13:15
テキストエディタ作りたいんですけど、
どうやって日本語入力するんでしょうか?
0292デフォルトの名無しさん2008/06/16(月) 12:17:26
テキストボックスでも貼っとけ
0293デフォルトの名無しさん2008/06/16(月) 12:27:58
日本人なら日本語ぐらい入力できるだろ
0294デフォルトの名無しさん2008/06/16(月) 12:32:31
http://msdn.microsoft.com/ja-jp/library/cc422019.aspx
0295デフォルトの名無しさん2008/06/16(月) 12:40:26
>>292
すごく・・・
完了しました
0296デフォルトの名無しさん2008/06/16(月) 13:15:54
今時Edit貼っただけのテキストエディタなんて需要ゼロだろ
0297デフォルトの名無しさん2008/06/16(月) 14:25:39
コンソールで作るんだろ?
0298デフォルトの名無しさん2008/06/16(月) 14:29:25
SEDやEDLINのx64コンソール対応版か
0299デフォルトの名無しさん2008/06/16(月) 14:56:54
HTREEITEMのハンドルの比較はどのようにやればいいですか?
0300デフォルトの名無しさん2008/06/16(月) 15:12:45
==
0301デフォルトの名無しさん2008/06/16(月) 15:26:44
冗談抜きで==以外にアイテム同一の比較する方法はない
0302デフォルトの名無しさん2008/06/16(月) 15:37:52
>>288
遅レスすみません、DrawText()にDT_CALCRECTを渡す方法で出来ました。

上記方法での取得値 - リストボックスの幅 + 縦スクロールバーの幅

で正確なスクロール幅が算出出来ました。
本当にありがとうございました。
0303デフォルトの名無しさん2008/06/16(月) 16:20:15
一瞬>>300が何のレスか分からないw
0304デフォルトの名無しさん2008/06/16(月) 17:49:15
Cから呼び出したDLL内でEXCEPTION_ACCESS_VIOLATION (0xc0000005)
が発生した場合、それをC側から補足できますでしょうか?
例外が発生したことを上の関数に返したいのですが
難しいでしょうか?

よろしくお願いいたします。
0305デフォルトの名無しさん2008/06/16(月) 17:50:49
VC++なら___try - ___catch(EXCEPTION_EXECUTE_HANDLER)
0306デフォルトの名無しさん2008/06/16(月) 17:51:01
___じゃない、__
0307デフォルトの名無しさん2008/06/16(月) 18:17:43
>>305
ありがとうございます。
スーパー助かりました。
0308デフォルトの名無しさん2008/06/16(月) 19:33:49
コンビニどういたしまして。
0309デフォルトの名無しさん2008/06/16(月) 19:43:32
まさか全く関係ない奴が、どういたしましてなんて言ってないよなw
0310デフォルトの名無しさん2008/06/16(月) 19:51:31
私には心の分身が居るので彼らがどういたしましてを言っています
0311デフォルトの名無しさん2008/06/16(月) 19:54:08
たとえ心が離れていても僕たちはいつもひとつ!
0312デフォルトの名無しさん2008/06/16(月) 20:21:42
それ多重人格じゃね?
0313デフォルトの名無しさん2008/06/16(月) 21:40:53
このスレには人工無脳が搭載されてるのを知らないのか?
「ありがとうございます」に対して自動で「どういたしまして」と返信して回答者の煩わしさを軽減してくれてるんだよ。

ただあまり賢くないから、たまに暴走して意味不明なレスで荒れたり
「なぜこんな設計にするのか理解できない」→「分からないならレスしないでください」
と煽ったりして荒れる原因になって迷惑な一面もある。
0314デフォルトの名無しさん2008/06/16(月) 21:51:45
説明ありがとうございます
0315デフォルトの名無しさん2008/06/16(月) 21:53:25
どういたしまして
0316デフォルトの名無しさん2008/06/16(月) 22:48:13
質問です。

CreateProcessでメモ帳(notepad.exe)を起動する際に、
ユーザーがCtrlキーを押しながら起動しても最前面にメモ帳を表示させたいのですが、
試行錯誤を繰り返していますが上手くいきません。
ご教授お願いいたします。
0317デフォルトの名無しさん2008/06/16(月) 22:49:43
お断りします
0318デフォルトの名無しさん2008/06/16(月) 22:51:32
お断りじゃあ仕方ないよな
あきらめろ
0319デフォルトの名無しさん2008/06/16(月) 23:26:58
AttachThreadInputとかかね?
0320デフォルトの名無しさん2008/06/16(月) 23:30:10
>>243
規制に巻き込まれて遅レスだが
WS_EX_TRANSPARENTスタイルを追加してWM_ERASEBKGNDで背景画像をBitBlt。
ちらつくので親ウィンドウにWS_CLIPCHILDREN追加して
RichEditのカーソル付近の表示がおかしくなるので親ウィンドウのWM_PAINTで
RichEditのUpdateWindow追加でいけると思う。
0321デフォルトの名無しさん2008/06/16(月) 23:56:19
>>291
IME対応を何もしなくても、確定した文字列は最悪WM_CHARで1文字ずつ送られてくる (IME-unaware)。
ANSIモードだとShift_JISの2バイト文字も1バイトずつ送られてくる。

それだとあまりにも不便すぎるから、IMM APIを使って取得する。
確定文字列の取得はWM_IME_COMPOSITIONかつlParam & GCS_RESULTSTRのとき。
詳しくはググれ。あと、再変換対応も忘れるな。

現在はIMMからTSFへ移ろうとしているんだが、
IMMでしか使えない変換エンジンの1つにATOKもあるし、
XPまでだと様々な理由でTSFをオフにしたり、そもそもTSFが入っていなかったりするので、
TSFのみの対応のアプリケーションは非現実的。IMMのみかIMM/TSF両対応にすべき。
0322デフォルトの名無しさん2008/06/17(火) 00:40:38
> ユーザーがCtrlキーを押しながら起動しても

今頃こんな機能があることを知った

ありがとう2ちゃんねらー
0323デフォルトの名無しさん2008/06/17(火) 00:44:18
Ctrlキー押して起動してみたけど
なんもならないぞ
0324デフォルトの名無しさん2008/06/17(火) 01:06:34
>>322
マジだ・・・今まで知らんかった
0325デフォルトの名無しさん2008/06/17(火) 01:13:50
Shiftを押しながらだと・・・
0326デフォルトの名無しさん2008/06/17(火) 01:17:19
shift 最小化して起動
alt  プロパティ

知りませんでした
0327デフォルトの名無しさん2008/06/17(火) 01:25:42
すげぇマジだ。
Windowsのプログラマは只者じゃねーな。
0328デフォルトの名無しさん2008/06/17(火) 04:20:05
スタートメニューやクイック起動からだと
Ctrl+クリック  バックグラウンドで起動 (メモ帳だけ?)
Shift+クリック メニューが勝手に消えない

Shift+クリックなんて知らなかった。これ結構便利だな。
0329デフォルトの名無しさん2008/06/17(火) 10:01:57
> Shift+クリック メニューが勝手に消えない

うおおおお
すげえ、これすげえ
感激した
0330デフォルトの名無しさん2008/06/17(火) 10:03:29
感激したので、これからは
WinMainのnCmdShow引数をまじめに処理しようと思う
0331デフォルトの名無しさん2008/06/17(火) 10:55:21
で、結局Ctrl押しながら起動でZオーダー最前面にする方法は誰も分からんのか、、、
0332デフォルトの名無しさん2008/06/17(火) 11:03:25
便利な機能を殺すのか。
ウィンドウハンドルをどうにか持って来れれば何とかならんか?
0333デフォルトの名無しさん2008/06/17(火) 11:58:07
メモ帳のソースコードが公開されていて改修できるなら可能だと思うが、
それが出来ないならちょっと思いつかないな。
0334デフォルトの名無しさん2008/06/17(火) 12:09:26
notepad.exeを改造すればいいじゃない
その程度のクラック知識も無い人はWin32APIで開発なんてやめた方がいいと思うよ
0335デフォルトの名無しさん2008/06/17(火) 12:10:27
STARTUPINFOに仕込んでてもダメかな…
0336デフォルトの名無しさん2008/06/17(火) 12:15:25
流出はしてたかもしれんなw
0337デフォルトの名無しさん2008/06/17(火) 12:16:32
別に変な事をしなくてもThreadIDから窓を列挙して前面に移動すればいいだけじゃないか
0338デフォルトの名無しさん2008/06/17(火) 12:22:58
実際にやってみれ
多分無理
0339デフォルトの名無しさん2008/06/17(火) 12:27:54
メモ帳限定でいいなら
CreateProcess→WaitForInputIdle→ウィンドウ列挙してプロセスIDから該当のメモ帳を探す
→AttachThreadInputでアクティブプロセスのコンテキストを割り当て→SetForegroundWindow
こうかな?
0340デフォルトの名無しさん2008/06/17(火) 14:18:04
メモ帳をフックすればいいだろ
0341デフォルトの名無しさん2008/06/17(火) 14:31:43
ソレダ!
0342デフォルトの名無しさん2008/06/17(火) 14:34:47
んー
Process32FirstとProcess32Nextを使ってNotePad.exeと親のプロセスIDとを取得。
AttachThreadInputでアタッチして制御をもらって、終わったらデタッチ。

ただ、NotePad.exeのウインドウハンドルはどうやって取得するんだろう。
それが出来ればSetActiveWindowなりSetForegroundWindowを呼べるんだが。
0343デフォルトの名無しさん2008/06/17(火) 14:41:59
CreateProcess したのに、わざわざそうやってプロセスID取得するの?
EnumWindows()とGetWindowThreadProcessId()を組み合わせて探すのが
バージョン依存しなくていいかも。
03443432008/06/17(火) 14:42:45
下2行はプロセスIDからウィンドウハンドル探す方法ね。
0345デフォルトの名無しさん2008/06/17(火) 16:53:06
バージョン依存ってProcess32FirstがNT4で使えないとかそういう事かね?
0346デフォルトの名無しさん2008/06/17(火) 16:57:07
メモ帳側が変わるかということじゃね
0347デフォルトの名無しさん2008/06/17(火) 19:19:45
変わらねーよw

・タブ対応
・正規表現grep
・構文ハイライト
・ソース折り畳み
ぐらいは対応して欲しいけどな
0348デフォルトの名無しさん2008/06/17(火) 19:33:24
そんな高機能なメモ帳なんてメモ帳じゃないやい・゚・(つД`)・゚・

でも、Vistaのメモ帳ではCtrl+Gで行番号指定移動に対応していたりと
結構侮れなかったりもする。
0349デフォルトの名無しさん2008/06/17(火) 19:36:52
メモ帳はタブ幅を4に変更可能にしてくれればもう何も言うことはない
0350デフォルトの名無しさん2008/06/17(火) 19:45:13
comctl32を設計した馬鹿をひっぱたきたい。
0351デフォルトの名無しさん2008/06/17(火) 19:54:15
メモ帳に関連づけてるファイルがなくて試せない俺は負け組
0352デフォルトの名無しさん2008/06/17(火) 19:57:05
>>350
つうほうしまたし
0353デフォルトの名無しさん2008/06/17(火) 20:18:29
メモ帳というかEditコントロールが貧弱すぎ。
無制限UNDO/REDOやドラッグドロップぐらい標準で対応しろと。
マウス乗せたらボワっと色が変わるようなくだらん機能つけるぐらいなら基本機能を充実させろと。
0354デフォルトの名無しさん2008/06/17(火) 20:22:41
そんなもの標準でつけられても、結局は込み入ったことするには不足で、自前で実装することになるのが目に見えてる。
0355デフォルトの名無しさん2008/06/17(火) 21:31:19
SetWindowHookEx で、WH_MOUSE を指定し、プライマリスレッドへのローカルフックを
設定しているのですが、MOUSEHOOKSTRUCT.dwExtraInfoは常に0になります。
XBUTTONの番号やホイールの回転量が取れなくて困るのですが、これは仕様なんでしょうか。
03563552008/06/17(火) 21:47:41
すみません。ググったらすぐわかりました。MOUSEHOOKSTRUCTEXを使うべきなんですね。
0357デフォルトの名無しさん2008/06/17(火) 21:54:32
Editコントロールを改良してくれるというなら、TSFに対応してほしかった。
ただ、MS-IMEナチュラルインプットがフェードアウト気味で、どうでもいいと思うようになってきたけど。
0358デフォルトの名無しさん2008/06/17(火) 21:59:44
時代はATOKです
0359デフォルトの名無しさん2008/06/17(火) 22:27:14
SS_BITMAPを指定したスタティックコントロールにStretchBlt()した画像を貼り付ける方法が判りません。

(WM_PAINT以外)
hBmp = (HBITMAP)LoadImage(NULL, L"test.bmp", IMAGE_BITMAP, 640, 480, LR_LOADFROMFILE);
HDC hDC = GetDC(hwnd);
hMemDC = CreateCompatibleDC(hDC);
SelectObject(hMemDC, hBmp);
hBackDC = CreateCompatibleDC(hMemDC);
hBackBmp = CreateCompatibleBitmap(hMemDC, 256, 192);
SelectObject(hBackDC, hBackBmp);
SetStretchBltMode(hBackDC, STRETCH_HALFTONE))
StretchBlt(hBackDC, 0, 0, 256, 192, hMemDC, 0, 0, 640, 480, SRCCOPY);
ReleaseDC(hwnd, hDC);

(WM_PAINT内)
BeginPaint(hwnd, &ps);
SendDlgItemMessage(hwnd, IDC_BITMAP1, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM)hBackBmp);
EndPaint(hwnd, &ps);

このようにしてみましたが、スタティックコントロール上には何も表示されません。
何が原因でしょうか。
※便宜上WM_〜と書いていますが、実際はメッセージクラッカーを使用しています。
0360デフォルトの名無しさん2008/06/17(火) 22:42:44
WM_PAINT内
0361デフォルトの名無しさん2008/06/17(火) 23:38:47
マインスイーパの(ニコニコマークの)ボタンのようなものを押そうとしているんですが、

HWND hwnd = FindWindow(NULL,TEXT("マインスイーパ"));
POINT pos = {87,27};
int lparam = (pos.y<<16) + pos.x;
PostMessage(hwnd,WM_LBUTTONDOWN,0,lparam);
PostMessage(hwnd,WM_LBUTTONUP,0,lparam);

で押したことにできません。
pos={100,100}とかで下の領域部分は押したことにできます。
調べた感じ、ボタンっぽい部分はハンドルも持ってなさそうなのですが、
どうすれば押せるのでしょうか?
0362デフォルトの名無しさん2008/06/17(火) 23:40:11
>>361
F2を押したことにするんじゃだめなの?
0363デフォルトの名無しさん2008/06/17(火) 23:43:35
>>362
マインスイーパをプログラムで操作したいというよりは、
ハンドルを持っていないボタンを押したいということなんです。
03643622008/06/17(火) 23:43:36
よく考えたらF2よりメニューのID調べてWM_COMMAND送ったほうが楽かも
0365デフォルトの名無しさん2008/06/17(火) 23:46:23
>>363
SendInput
0366デフォルトの名無しさん2008/06/17(火) 23:54:28
>>365
やっぱりそれしかないんですかね?
PostMessageでなんとかしたかったけど、SendInputでいってみます。
ありがとうございました。
0367デフォルトの名無しさん2008/06/18(水) 00:31:14
「チートのためのSendInput」
という本を書いたら売れますか?
0368デフォルトの名無しさん2008/06/18(水) 02:50:24
チート専門ならWin32APIなんかよりAHKでも薦めるかな
0369デフォルトの名無しさん2008/06/18(水) 13:13:44
すみません、ちょっとお聞きしたいんですが、
CreateFileMappingAの戻り値のHANDLEから
_open_osfhandle()と_fdopen()とで
FILE*を取得することは出来るんでしょうか?
どうもやってみても_open_osfhandle()が-1を返すんですが、
失敗する理由が自分のコーディングミスなのか仕様なのか分からないです。
0370デフォルトの名無しさん2008/06/18(水) 14:27:41
そのハンドルは別のものだから使えないよ
0371デフォルトの名無しさん2008/06/18(水) 17:25:33
>>360
遅レスすみません、漸く解りました。
ありがとうございます。

(WM_PAINT以外)
hBmp = (HBITMAP)LoadImage(NULL, L"test.bmp", IMAGE_BITMAP, 640, 480, LR_LOADFROMFILE);
HDC hDC = GetDC(hwnd);
hMemDC = CreateCompatibleDC(hDC);
SelectObject(hMemDC, hBmp);
hBackDC = CreateCompatibleDC(hMemDC);
hBackBmp = CreateCompatibleBitmap(hMemDC, 256, 192);
hPrevBmp = SelectObject(hBackDC, hBackBmp);
SetStretchBltMode(hBackDC, STRETCH_HALFTONE))
StretchBlt(hBackDC, 0, 0, 256, 192, hMemDC, 0, 0, 640, 480, SRCCOPY);
ReleaseDC(hwnd, hDC);

(WM_PAINT内)
BeginPaint(hwnd, &ps);
HBITMAP hTempBmp = (HBITMAP)SelectObject(hBackDC, hPrevBmp);
SendDlgItemMessage(hwnd, IDC_BITMAP1, STM_SETIMAGE, (WPARAM)IMAGE_BITMAP, (LPARAM)hBackBmp);
SelectObject(hBackDC, hTempBmp);
EndPaint(hwnd, &ps);
0372デフォルトの名無しさん2008/06/18(水) 17:27:16
>>371
そのソースじゃ何も解っていないようだな
0373デフォルトの名無しさん2008/06/18(水) 17:28:40
WM_PAINTの度にSTM_SETIMAGEを送る必要はない気がするんだけど、自分の勘違いか?
0374デフォルトの名無しさん2008/06/18(水) 17:40:35
てかStretchBlt自体が不要。SS_REALSIZECONTROLでいいじゃん。
それとも、XP未満にも対応する必要でもあるの?
0375デフォルトの名無しさん2008/06/18(水) 20:02:36
戦略からコードの細部にいたるまで間違いだらけだな、感動した。
またクライアント領域の人か?基礎からちゃんと勉強しないと話にならんぞ。
0376デフォルトの名無しさん2008/06/18(水) 20:40:19
今更Win32の基礎を勉強するなんて馬(ry
0377デフォルトの名無しさん2008/06/19(木) 00:06:43
開発環境は、XP SP2、VS2005 Standard Edition
Win32API + SDKでプログラミングしおります。

プロパティシートで質問です。

5個のタブがあるプロパティシートのダイアログを表示させて
各種設定を行うようにしました。

一番はじめにプロパティシートのダイアログを表示させた時に
1個目のタブが表示されています。
例えば2個目、3個目のタブを選択するとします。
いったんダイアログを閉じて、再びプロパティシートのダイアログを
表示させた時に、デフォルトで2個目や3個目のタブを選択した
状態にしたいのですが。
アドバイスよろしくお願いします。

一番最後に選んだタブを取得できればいいのですが。
そのタブの位置を変数でもって次回にスタートページを設定したいのです。
0378デフォルトの名無しさん2008/06/19(木) 00:41:11
質問が連続して申し訳ないです

あるウィンドウのテキストが変更されたことを知る方法はありますか?
サブクラス化してWM_SETTEXTを捕まえればよいのですが、他にスマートな解法は無いものかと・・・
0379デフォルトの名無しさん2008/06/19(木) 01:08:39
XP SP2、VC2003 Pro、現在mp3のデコード・再生プログラムを作っています。

DWORD MP3Size; BYTE* MP3Data;
DWORD WaveSize; BYTE* WaveData;
WAVEFORMATEX WF; MPEGLAYER3WAVEFORMAT MF;
//ファイルを開く
HMMIO hmmio;
MMRESULT mmr;
MMCKINFO mmckRiff;
MMCKINFO mmckFmt;
MMCKINFO mmckData;
hmmio = mmioOpen(const_cast<LPSTR>(FileName.c_str()), NULL, MMIO_READ);
if(hmmio==NULL){
  return(false);
}
mmckRiff.fccType = mmioStringToFOURCC("WAVE", 0);
mmr = mmioDescend(hmmio, &mmckRiff, NULL, MMIO_FINDRIFF);
if(mmr!=MMSYSERR_NOERROR){
  mmioClose(hmmio, 0);
  return(false);
}

今のところこんな感じで作っているのですが、mmioDescendで必ずエラーが発生します。
エラーコードを調べたところ272でした、MMIOERR_CHUNKNOTFOUNDではないようです(ifでチェックしてみました)
エラーの原因は何でしょうか?ご教授願えればと…。
0380デフォルトの名無しさん2008/06/19(木) 01:20:27
>>379
開こうとしてるファイルはRIFF/WAVE形式なの?
普通はmp3と言ったら、違うフォーマットだけど。
0381デフォルトの名無しさん2008/06/19(木) 01:50:24
>>380
ありがとうございます、調べてみたところRIFF/WAVE形式を再生するプログラムを書いてたようですね。
開こうとしていたファイルは普通のmp3形式でしたorz
0382デフォルトの名無しさん2008/06/19(木) 07:19:10
おいw
0383デフォルトの名無しさん2008/06/19(木) 08:25:50
mp3なんてMCIかIGraphBuilderにぶち込んでしまえ。
後者なら波形も引っ張り出せたはずだし。
0384デフォルトの名無しさん2008/06/19(木) 08:41:04
#define HWND_DESKTOP ((HWND)0)
と
HWND hWndDesktop = GetDesktopWindow();
は値が違うのに,
実行させてみるとアプリケーションは
どちらでも正常に動作する(ように見える)
のは何故なんでしょうか?
03853842008/06/19(木) 09:04:52
自己レスです.
おそらく,

HWND_DESKTOP は,引数として NULL を渡しているのと同じ.
各API内では, NULL が渡された場合に, GetDesktopWindow() で
デスクトップのウィンドウハンドルが取得されるようになっている.

ということですね.
0386デフォルトの名無しさん2008/06/19(木) 11:36:09
>>384=>>55でおk?

,.ってなんか違和感あるなぁw
理系じゃ割と普通だけど
0387デフォルトの名無しさん2008/06/19(木) 11:48:37
ATOKのデフォじゃなかったっけ。
それにしちゃたまにしか見ないな。
0388デフォルトの名無しさん2008/06/19(木) 14:04:08
カナ入力だと面倒だからそういう人多いんじゃなかったっけか?
0389デフォルトの名無しさん2008/06/19(木) 14:43:27
fopen_s(&fp, Name.c_str(), "w+TD");
とかしたときの
「可能な限りディスクにフラッシュしない」って「メモリが許す限り」って意味か?
0390デフォルトの名無しさん2008/06/19(木) 14:51:13
このスレで話したいならCreateFileのフラグに読み替えて書いた方がいいと思われ
0391デフォルトの名無しさん2008/06/19(木) 14:54:31
I/Oバッファサイズが許す限り。
0392デフォルトの名無しさん2008/06/19(木) 19:12:55
ダイアログベースアプリで文字を表示する部分について質問なのですが、
現在
buffer += updateMessage;
buffer += "\r\n";
::SetWindowTextA(GetDlgItem(IDC_LOG)->GetSafeHwnd(),buffer.c_str());
::SendMessage(GetDlgItem(IDC_LOG)->GetSafeHwnd(), EM_LINESCROLL, 0, 65536);
こんな感じで追加して行ってるのですが、
追加する1行ごとにフォントの色を変えたい場合どうすればいいでしょうか?
全体ならできるのですが・・・
HTMLの<font></font>みたいに範囲指定できないもんですか?
0393デフォルトの名無しさん2008/06/19(木) 19:14:52
オーナードロー
0394デフォルトの名無しさん2008/06/19(木) 20:15:17
Windows Vista で新しく追加されたAPIの一覧はどこで見られますか?
MSDNを探したのですがそれらしいのは見当たらず...
0395デフォルトの名無しさん2008/06/19(木) 20:18:00
その質問スレの中に必ずひとつはあるぞ。
ちゃんと探せ。
ttp://msdn.microsoft.com/en-us/library/aa383687(VS.85).aspx
0396デフォルトの名無しさん2008/06/19(木) 21:25:10
>>395
どうもありがとうございました。
0397デフォルトの名無しさん2008/06/19(木) 22:47:54
HTTP接続の時のダイジェスト認証はどのようにすればよいのでしょうか?
基本認証は401が返った後、InternetSetOption関数を使えばよいのですが、
ダイジェスト認証のほうはどの関数をどう使えばよいのかよくわかりません。

どうも、digest.dll内の関数を使えばよいようですが、これだけでは手も足も出ない・・・

ソケットを直接操作するのはできれば避けたし、MD5暗号化する処理は自前で行い、HTTPのヘッダに追加する必要があるのでしょうか?
環境は.NetではないC++です。
0398デフォルトの名無しさん2008/06/19(木) 22:57:38
>>393
Editコントロールにオーナードローなんてねーよ
知らないならレスするな

>>392
RichEdit
0399デフォルトの名無しさん2008/06/19(木) 23:18:37
>>385
ちなみに、Old New Thingでには、GetDesktopWindowの戻り値を渡すべきではないときでも
それを渡す人が多いと書かれている。要注意な。
http://blogs.msdn.com/oldnewthing/archive/2004/02/24/79212.aspx
0400デフォルトの名無しさん2008/06/19(木) 23:47:17
APIの内部でモーダル化する為にEnableWindow(hwnd, FALSE)してるやつとかな
ずっと前に何かのAPIでGetDesktopWindow()を渡したらCtrl+Alt+Del以外効かなくなってびびった事があるw
0401デフォルトの名無しさん2008/06/20(金) 05:45:22
ファイル名を他のウィンドウに渡すことってできますか?
0402デフォルトの名無しさん2008/06/20(金) 05:55:01
>>401
WM_COPYDATA
0403デフォルトの名無しさん2008/06/20(金) 06:13:24
環境の保存処理はWM_CLOSE、WM_DESTROYどちらで行うべきですか?
0404デフォルトの名無しさん2008/06/20(金) 09:29:14
CLOSEで
0405デフォルトの名無しさん2008/06/20(金) 09:34:10
じゃあ俺はDESTROYで
0406デフォルトの名無しさん2008/06/20(金) 10:31:34
>>403
環境設定の類は、変更したら即保存の方がいい。
ウインドウの位置やサイズのようなものは、WM_DESTROYかな。
(WM_CLOSEでも構わないが)
編集中のドキュメントはWM_CLOSEで保存する。

メッセージが来るタイミングは、WM_CLOSEは閉じるボタンを押した直後で
まだこの段階では閉じるのを拒否もできる。(保存するか聞くのはここ)
WM_DESTROYは画面からウインドウが消えたが実体は残っている状態。
0407デフォルトの名無しさん2008/06/20(金) 10:31:58
なら俺はCREATEで
0408デフォルトの名無しさん2008/06/20(金) 10:39:57
ログオフ等はWM_CLOSEは送られないので
WM_QUERYENDSESSIONも処理
0409デフォルトの名無しさん2008/06/20(金) 10:56:54
なら俺はPAINTで
0410デフォルトの名無しさん2008/06/20(金) 14:21:08
タスクマネージャからプロセスの終了が実行されたことを
そのプロセスが感知できるものでしょうか?
0411デフォルトの名無しさん2008/06/20(金) 14:44:01
>>411
できない。他のプロセスから状態を監視する (確実なのは WaitForSingleObject) しかない。
0412デフォルトの名無しさん2008/06/20(金) 15:37:16
>>412
無限再帰はスタックオーバーフローするぞ
0413デフォルトの名無しさん2008/06/20(金) 15:51:52
>>412
0414デフォルトの名無しさん2008/06/20(金) 15:53:35
"PHP"を展開しようとしてもスタックオーバーフローしますよね
0415デフォルトの名無しさん2008/06/20(金) 16:57:35
>>412の安価辿っていったらPCがオーバーフローした。謝罪と賠sh(ry
0416デフォルトの名無しさん2008/06/20(金) 17:37:59
>>416
>>411>>412
0417デフォルトの名無しさん2008/06/20(金) 17:38:01
winsockで一定時間応答なかったら、タイムアウトするにはどうすればいいの?
0418デフォルトの名無しさん2008/06/20(金) 19:42:30
ioctlsocketでFIONBIOを使うと非ブロッキングモードにできる。
そこから後は好きなように実装するといい。
0419デフォルトの名無しさん2008/06/21(土) 01:20:30
>>417
そんくらいググれカス
0420デフォルトの名無しさん2008/06/21(土) 01:25:29
>>417
http://www.kt.rim.or.jp/~ksk/wskfaq-ja/newbie.html#timeout
0421デフォルトの名無しさん2008/06/21(土) 04:21:23
CriticalSectionをstaticなメンバ変数に持つってありですか?
0422デフォルトの名無しさん2008/06/21(土) 04:33:34
現在実行しているアプリ自身の
メモリ使用容量って取得できますか?

タスクマネージャのメモリ使用量みたいな数値です
0423デフォルトの名無しさん2008/06/21(土) 04:44:38
☑
0424デフォルトの名無しさん2008/06/21(土) 05:16:19
メモリ使用量を取得する方法なんて無いと思うが
ワーキングセットのサイズを取得する方法ならあるけど
0425デフォルトの名無しさん2008/06/21(土) 11:11:02
>>421
別に構わないと思うが、いつ初期化するかが問題
0426デフォルトの名無しさん2008/06/21(土) 11:16:17
>>425
CRITICAL_SECTIONをラップしたクラスのインスタンスをstaticにすれば、コンストラクタで初期化できる。
0427デフォルトの名無しさん2008/06/21(土) 13:52:23
そのコンストラクタが起動するタイミングが問題になるかもな
0428デフォルトの名無しさん2008/06/21(土) 14:12:55
>>427
staticにするとコンストラクタはmainの前に呼ばれる
0429デフォルトの名無しさん2008/06/21(土) 14:27:54
staticの存在意義がいまいちよくわからない
globalじゃだめなの?
0430デフォルトの名無しさん2008/06/21(土) 14:28:41
>>428
mainの前に初期化するかは処理系定義(3.6.2)
初めて使用するまで初期化を遅らせられる場合もある。
0431デフォルトの名無しさん2008/06/21(土) 14:57:39
VC++依存でおk
0432デフォルトの名無しさん2008/06/21(土) 16:57:45
一度だけ初期化を実行する機能を、自前で実装してみるのも良い経験になるかもしれないな。
InterlockedCompareExchangeの存在理由が良く判るようになる。
0433デフォルトの名無しさん2008/06/21(土) 17:26:20
そんな経験いりません
04344172008/06/21(土) 21:54:41
非ブロッキングモードにしたら、accept貫通しだしました。
acceptの戻り値がWSAWOULDBLOCKならcontinueの力技です。
他に何かいい方法ないですか?
0435デフォルトの名無しさん2008/06/21(土) 22:05:16
非ブロッキングモードをやめれば?
0436デフォルトの名無しさん2008/06/21(土) 22:07:08
>>434
WSAEventSelect
0437デフォルトの名無しさん2008/06/21(土) 22:20:02
>>436
ありがとうございます。。
調べてみます。
0438デフォルトの名無しさん2008/06/21(土) 22:26:00
Winsockで非同期やりたいなら、こんなとこで一問一答してないで、
ttp://www.amazon.co.jp/dp/4797330449/
とか買ったほうが早いと思うぞ。
0439デフォルトの名無しさん2008/06/21(土) 22:55:48
お前が¥ 5,460くれれば買ってやんよ
0440デフォルトの名無しさん2008/06/21(土) 23:40:50
同期の方が理解できているなら、買うほどじゃないな。
接続タイムアウト程度の処理ならMSDN読んでるだけで十分。
0441デフォルトの名無しさん2008/06/22(日) 00:35:30
環境変数を含むパス名を展開してくれるAPIはありますでしょうか?
変数名:HOGE 変数値:C:\hogeという変数があったとして、
Get〜("%HOGE%\abc.txt")で"C:\hoge\abc.txt"を取得できるような…。
0442デフォルトの名無しさん2008/06/22(日) 00:49:39
HOGEがC:\hoge;C:\hageだったらどうすんのさ
0443デフォルトの名無しさん2008/06/22(日) 00:50:36
ExpandEnvironmentStrings
0444デフォルトの名無しさん2008/06/22(日) 01:23:26
DoEnvironmentSubstの方が楽
0445デフォルトの名無しさん2008/06/22(日) 01:31:03
>>443-444
助かりました。ありがとうございます。
0446デフォルトの名無しさん2008/06/22(日) 08:02:02
>>434
それくらいはググろうぜ
0447デフォルトの名無しさん2008/06/22(日) 14:48:26
(3+2.5)/4-3*2
みたいな文章を計算するAPI教えてください
0448デフォルトの名無しさん2008/06/22(日) 14:51:44
電卓相手にコピペでもしてろ
0449デフォルトの名無しさん2008/06/22(日) 14:55:51
んなもんない。以上。
0450デフォルトの名無しさん2008/06/22(日) 14:59:30
448が以外ないい答えかも
0451デフォルトの名無しさん2008/06/22(日) 15:06:11
>>447
宿題スレへどうそ。
なお、この手の問題は頻出です。
0452デフォルトの名無しさん2008/06/22(日) 16:07:41
宿題スレへ行ってもそんなAPIはないと言われないだろうか
0453デフォルトの名無しさん2008/06/22(日) 16:39:06
bison/flex 使うと意外と簡単に作れるぜ
0454デフォルトの名無しさん2008/06/22(日) 16:40:27
もうboost::spiritでよくね?
0455デフォルトの名無しさん2008/06/22(日) 16:56:37
またboost厨か
0456デフォルトの名無しさん2008/06/22(日) 17:00:08
boost::spiritはコンパイルで死ねる
0457デフォルトの名無しさん2008/06/22(日) 17:16:53
リッチエディットボックスを作ったんですけどミギクリックメニューが
表示されません。助けてください!!
0458デフォルトの名無しさん2008/06/22(日) 17:19:09
WM_CONTEXTMENU
0459デフォルトの名無しさん2008/06/22(日) 18:11:38
> ミギクリックメニュー
なんでカタコト?
0460デフォルトの名無しさん2008/06/22(日) 18:18:01
ミギクリ!
0461デフォルトの名無しさん2008/06/22(日) 19:04:01
>>460
それなんてエロゲ?
0462デフォルトの名無しさん2008/06/22(日) 19:39:17
キミグリ
0463デフォルトの名無しさん2008/06/22(日) 19:40:48
はまぐり
0464デフォルトの名無しさん2008/06/22(日) 19:45:01
(´д` ;)ハァハァ・・・
0465デフォルトの名無しさん2008/06/22(日) 19:49:18
ギクリッ
0466デフォルトの名無しさん2008/06/22(日) 22:15:58
>>459-465
訳:かまってほしいな
0467デフォルトの名無しさん2008/06/22(日) 22:30:32
>>466
訳:かまってほしいな
0468デフォルトの名無しさん2008/06/22(日) 22:31:28
>>467-468
訳:かまってほしいな
0469デフォルトの名無しさん2008/06/22(日) 22:43:51
>>1-1001
かまってほしいな
0470デフォルトの名無しさん2008/06/22(日) 23:00:39
win2kからOSをXPpro sp2にうpグレードしたら
今まで使えてたツールが使えなくなってたからデバッグしたら
CreateWindow関数の戻り値のところでヌルポッポーが返るようになってたんだけど
この場合どこ直せばいいの?msdnみたら対応情報OSにXPが含まれてないのは
わかったけど使えないってこと?代替の関数とかあんの?
0471デフォルトの名無しさん2008/06/22(日) 23:10:47
何ふざけてんの?
0472デフォルトの名無しさん2008/06/22(日) 23:15:34
ごめん、ほかのツールは動いてたから原因は他にありそうだ
0473デフォルトの名無しさん2008/06/22(日) 23:16:16
今まで使えてたツールの具体名キボン
0474デフォルトの名無しさん2008/06/22(日) 23:17:42
>>470
訳:かまってほしいな
0475デフォルトの名無しさん2008/06/22(日) 23:25:22
ただ単にエラー出してる箇所すっとばしてブレークポイント貼ってたから勘違いしてたわ
0476デフォルトの名無しさん2008/06/22(日) 23:52:29
訳:かまってもらえて嬉しいな
0477デフォルトの名無しさん2008/06/23(月) 00:04:36
Windows2000って、
DrawIcon()で32bitアルファチャネル付きのアイコンを表示出来たっけ?
XPからだったかな。
0478デフォルトの名無しさん2008/06/23(月) 11:01:46
XPから
0479デフォルトの名無しさん2008/06/23(月) 11:34:51
>>447
ScriptingRuntimeのEvalが楽
PSDKに入っていたりいなかったりWin32APIからは逸脱しそうだが
0480デフォルトの名無しさん2008/06/23(月) 12:10:41
>>479
トークナイズと逆ポーランド変換とスタック計算程度なんだから自分で作ればいいだろが
0481デフォルトの名無しさん2008/06/23(月) 12:37:57
わかったわかった。自分が作れるのをアピールしなくていいから。そんな程度のもので。
0482デフォルトの名無しさん2008/06/23(月) 12:40:47
自分が作れない悔しさをアピールしなくていいから。(プ
0483デフォルトの名無しさん2008/06/23(月) 12:45:12
わかったわかった。生暖かい目で見ててやるから。
0484デフォルトの名無しさん2008/06/23(月) 17:18:31
知らないならレスしないでください
0485デフォルトの名無しさん2008/06/23(月) 17:42:29
死なないならデスしないでください
0486デフォルトの名無しさん2008/06/23(月) 18:06:58
いまいち効かねぇよなあ、デスって。
0487デフォルトの名無しさん2008/06/23(月) 18:23:38
そこでバニッシュですよ
0488デフォルトの名無しさん2008/06/23(月) 18:35:46
ばかばっか
0489デフォルトの名無しさん2008/06/23(月) 18:52:13
訳:かまってほしいな
0490デフォルトの名無しさん2008/06/23(月) 19:04:56
訳:こ、この私があんたに構ってあげてるんだから感謝しなさいよね!///
0491デフォルトの名無しさん2008/06/23(月) 19:25:19
>>490
こういう奴って自分では面白いことを書いてるとでも思ってるのか?
0492デフォルトの名無しさん2008/06/23(月) 19:27:51
少なくとも490>491ではある。
0493デフォルトの名無しさん2008/06/23(月) 19:28:25
>>491
こういう奴って自分では格好いい指摘をしてるとでも思ってるのか?
0494デフォルトの名無しさん2008/06/23(月) 19:46:24
>>490=>>492=>>493
つまんね
0495デフォルトの名無しさん2008/06/23(月) 19:53:30
涙目の>>491と見せかけて、実は赤の他人と見た。
0496デフォルトの名無しさん2008/06/23(月) 19:59:04
(´д` ;)ハァハァ・・・
0497デフォルトの名無しさん2008/06/23(月) 20:25:15
かまってちゃんしかいないスレだな
0498デフォルトの名無しさん2008/06/23(月) 20:39:58
訳:ぼくもかまってほしいな
0499デフォルトの名無しさん2008/06/23(月) 21:00:40
Windowsって、タイトルバーの最小化/最大化/閉じボタンを押しっぱなしにしてると、
何のメッセージも飛んでこなくなるんだな。

どこのDOSプログラムだよって思った。

スレッド化するのめんどくせ・・・
0500デフォルトの名無しさん2008/06/23(月) 21:20:47
なんか困るの?
0501デフォルトの名無しさん2008/06/23(月) 21:22:46
キャプチャされてるだけじゃないの
0502デフォルトの名無しさん2008/06/23(月) 22:07:29
> Windowsって、タイトルバーの最小化/最大化/閉じボタンを押しっぱなしにしてると、
> 何のメッセージも飛んでこなくなるんだな。

それのどこがDOSプログラムなんだよ
Windowsのメッセージキューについて勉強しなおせ
0503デフォルトの名無しさん2008/06/23(月) 22:08:22
>>499
スレッド化するところを間違えるなよwww
0504デフォルトの名無しさん2008/06/23(月) 22:33:26
>>500-502

ためしてみなよ。
押してる間はタイマーやMMSYSTEM系のメッセージが全く来ないから。
そもそも押してる間はWinProcに来ないっぽいよ。

WM_PAINTが来なくなるのは、
裏になってるウィンドウの最小・最大化ボタンなんかを押しっぱなしにした時、
フォアグラウンドになったウィンドウの中身が描かれない事でも判る。

タイトルバークリックの時は、ダブルクリック待ち時間だけ止まるみたいだなw
0505デフォルトの名無しさん2008/06/23(月) 22:47:58
あ、今手元にあるのはXPだけだからVISTAはどうだか判らない。
Macで試してみたいなw
0506デフォルトの名無しさん2008/06/23(月) 22:48:11
仕様なのに、自分の思い通りにならないからって不具合みたいに言うなよw
0507デフォルトの名無しさん2008/06/23(月) 22:59:05
なんだ、マカーか
0508デフォルトの名無しさん2008/06/23(月) 22:59:38
厨房の典型的な例です
0509デフォルトの名無しさん2008/06/23(月) 23:05:10
てか、なんでわざわざそんなボタン押しっぱなしにするんだ
0510デフォルトの名無しさん2008/06/23(月) 23:26:03
まあマヌケな仕様ではあるわな
きっとリアルタイム性を重視しない奴が設計したんだろう
Winでリアルタイムも無いけどw
0511デフォルトの名無しさん2008/06/23(月) 23:26:45
馬鹿のマカーがWindowsの仕様にいちゃもん付けてるだけか

かまってちゃんといい基地外マカーといい、ホント碌な人間がいないスレだな
0512デフォルトの名無しさん2008/06/23(月) 23:27:09
タイトルバー非表示にすりゃいいんじゃね?
0513デフォルトの名無しさん2008/06/23(月) 23:35:58
>>510
Windows 1.0の時代にリアルタイムも何もないだろう
0514デフォルトの名無しさん2008/06/23(月) 23:45:46
うーん、さすがにタイトルバーをクリックしただけで
ちょこっと止まるのは知らなかったぞ。
いや、ボタンも知らなかったけどw
0515デフォルトの名無しさん2008/06/23(月) 23:57:50
常識だろ
使ってりゃ判るじゃん
馬鹿?
0516デフォルトの名無しさん2008/06/24(火) 00:10:59
使ってないから(=マカーだから)分からないんだろ
0517デフォルトの名無しさん2008/06/24(火) 00:18:21
>>515
視野狭w
0518デフォルトの名無しさん2008/06/24(火) 01:01:28
うっかりボタンとか押しちゃって、でもすんでのところで気がついて
ホールド→ドラッグで助かった経験は誰にでもあるはず
だから今の仕様でいいんじゃね?
0519デフォルトの名無しさん2008/06/24(火) 01:08:09
本来は押してる間エネルギーチャージして放した瞬間に爆速で最大化するという仕様になるはずだったそうだ。
0520デフォルトの名無しさん2008/06/24(火) 01:11:20
>>499,>>504,>>505,>>510,>>514,>>517 ∈ キモいマカー
こんな所までわざわざ出張ご苦労様
0521デフォルトの名無しさん2008/06/24(火) 01:12:22
>>518
そういう話とは違うだろw
0522デフォルトの名無しさん2008/06/24(火) 01:13:25
↑話を理解してない馬鹿
0523デフォルトの名無しさん2008/06/24(火) 01:21:34
訳:かまってほしいな
0524デフォルトの名無しさん2008/06/24(火) 01:31:57
かまってほしくない人はレスしないでください
0525デフォルトの名無しさん2008/06/24(火) 02:28:21
>>524
訳:かまってほしいな
0526デフォルトの名無しさん2008/06/24(火) 03:00:16
喧嘩すんな馬鹿ども
0527デフォルトの名無しさん2008/06/24(火) 03:02:25
(・ω・` )ヾ(・ω・* )ネェネェ カマッテヨ
0528デフォルトの名無しさん2008/06/24(火) 10:13:21
相変わらず粘着質なやつが常駐してるな
0529デフォルトの名無しさん2008/06/24(火) 10:38:04
>>528
お前がな
0530デフォルトの名無しさん2008/06/24(火) 10:40:19
もうやだこのスレ
0531デフォルトの名無しさん2008/06/24(火) 12:36:25
無理して居なくてもいいんじゃよ
0532デフォルトの名無しさん2008/06/24(火) 13:50:41
それはそうだ
0533デフォルトの名無しさん2008/06/24(火) 19:18:58
フリーやシェアウェアに限らず、エディタって特定部分の色を自動で変えますよね。
あれどうやってるのでしょうか?
タグで囲んで色を変えたいのですが・・・
MFCのコントロール変数とリッチエディタで該当文字がでたら色を変えるってのを試したのですが、
重すぎて話になりませんでした。
画面にログをどんどん表示していくのですが、
リッチエディタだと差分更新できないので、毎回全文字検索になってしまいます。
部分的に色を変えるって結構利用されると思うのですが、
便利なラッパーってないもんですかね?
0534デフォルトの名無しさん2008/06/24(火) 19:21:32
・人が作ったのを利用
・完全自作
0535デフォルトの名無しさん2008/06/24(火) 19:21:35
自作してる
0536デフォルトの名無しさん2008/06/24(火) 19:46:35
MFCwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
0537デフォルトの名無しさん2008/06/24(火) 19:47:25
なんてやってるからメッセージの細部がわからないのだよ
0538デフォルトの名無しさん2008/06/24(火) 19:51:58
差分更新できない?
0539デフォルトの名無しさん2008/06/24(火) 20:26:01
Scintilla
0540デフォルトの名無しさん2008/06/24(火) 20:29:33
粗チンチラ
0541デフォルトの名無しさん2008/06/24(火) 20:36:52
>>533
差分更新できるし全文検索はいらないし部分的に色を変えるのなんて
非常に簡単だ。
0542デフォルトの名無しさん2008/06/24(火) 20:41:18
Q:あれどうやってるのでしょうか?
A:非情に簡単だ。
0543デフォルトの名無しさん2008/06/24(火) 20:42:12
もはや質問に対する回答じゃないなw
0544デフォルトの名無しさん2008/06/24(火) 21:02:54
Q. ○○なことやりたいのですが・・・

A. どうしてそんなことをする必要があるのか疑問だ

もう回答じゃねぇwww
0545デフォルトの名無しさん2008/06/24(火) 21:16:43
プログラム組む奴は人の揚げ足(批判)とるの好きだよな
俺もその一人なのかorz
0546デフォルトの名無しさん2008/06/24(火) 22:20:11
揚げ足取りしかできない無知なんだろ
0547デフォルトの名無しさん2008/06/24(火) 22:30:32
非常に簡単なんですか・・・いつも思いますが2ch見てる方々どんだけすごい人達なんですか。
エディタって一定以上の大量の文字列を入れるとそれ以上はいらなくなりますよね。
そうなると、古いログを消して追加していかないといけないと思うんですが、
そのとき、消して追加した分、文字列の並びがずれるので、
リッチエディタで色を変える部分を検索しなおさないといけないと思うのですが、
やり方頭おかしいですか?
差分更新できないのでってのはちょっと言葉がおかしかったです。
とりあえず>>539さんが紹介してくれたのを調べてみます。ありがとです。
0548デフォルトの名無しさん2008/06/24(火) 23:10:57
>>547
非常に簡単ってのは言い過ぎだと思う。
理屈としてはそんなに難しいわけじゃないが、作るとなると面倒な作業はいっぱい。
エディタで重要なのはデータをどのような形で扱うか、という点で、それだけでもいくつもの研究がある。
おおざっぱな理念としては↓の記事がとっかかりになると思うので紹介しておく。
http://d.hatena.ne.jp/propella/20080420/p1
0549デフォルトの名無しさん2008/06/24(火) 23:12:40
所詮プログラマなんて底辺の職業だからな

毎日ストレス溜め込んで帰宅して、このスレで人の揚げ足取るぐらいでしか
それを発散できない可哀想な人々なんだろ
0550デフォルトの名無しさん2008/06/24(火) 23:15:00
訳:揚げ足取られて悔しいな
0551デフォルトの名無しさん2008/06/24(火) 23:21:31
自分より下だと思ってる奴に侮られると頭に来るよねw
0552デフォルトの名無しさん2008/06/24(火) 23:27:11
一行の文字数なんて知れてるから結構std::vectorとかでもいけるんだよね
0553デフォルトの名無しさん2008/06/25(水) 00:01:00
std::vectorとかでもいける
std::vectorとかでもいける
std::vectorとかでもいける
std::vectorとかでもいける
std::vectorとかでもいける
std::vectorとかでもいける
std::vectorとかでもいける
std::vectorとかでもいける
std::vectorとかでもいける
std::vectorとかでもいける
std::vectorとかでもいける
std::vectorとかでもいける
std::vectorとかでもいける
std::vectorとかでもいける
std::vectorとかでもいける
std::vectorとかでもいける
std::vectorとかでもいける
std::vectorとかでもいける
std::vectorとかでもいける
std::vectorとかでもいける
std::vectorとかでもいける
std::vectorとかでもいける
std::vectorとかでもいける
std::vectorとかでもいける
std::vectorとかでもいける
0554デフォルトの名無しさん2008/06/25(水) 00:04:01
↑話を理解してない馬鹿
0555デフォルトの名無しさん2008/06/25(水) 00:15:08
話を理解してないのは>>548だと思うが。
リンク先はエディタの色分けとは関係ないし。
0556デフォルトの名無しさん2008/06/25(水) 00:29:09
いや、話を理解してないのは俺だと思うが。
0557デフォルトの名無しさん2008/06/25(水) 00:34:51
それはない
0558デフォルトの名無しさん2008/06/25(水) 00:48:38
もうどうすんのこのスレ
0559デフォルトの名無しさん2008/06/25(水) 01:08:13
SendMessage(http://pc11.2ch.net/test/read.cgi/tech/1212931246/)でWM_DESTROY
0560デフォルトの名無しさん2008/06/25(水) 02:29:17
アッー!
0561デフォルトの名無しさん2008/06/25(水) 12:39:31
TerminateThread()だろう
0562デフォルトの名無しさん2008/06/25(水) 13:38:06
まさにw
0563デフォルトの名無しさん2008/06/25(水) 16:56:22
もう次スレ立てるなよ
0564デフォルトの名無しさん2008/06/25(水) 16:58:16
そうだ!絶対に立てるなよ!
0565デフォルトの名無しさん2008/06/25(水) 17:17:37
KamatteHoshina();
0566デフォルトの名無しさん2008/06/25(水) 17:19:30
かまってほしな?
0567デフォルトの名無しさん2008/06/25(水) 17:50:29
出ていく人はExitThread()
あ、これだと終わっちゃうか
0568デフォルトの名無しさん2008/06/25(水) 18:35:19
DuplicateThread()
0569デフォルトの名無しさん2008/06/25(水) 19:04:47
このグループ(スレッド)に入りたいな。PostThreadMessage()
0570デフォルトの名無しさん2008/06/25(水) 19:28:21
訳:俺のギャグセンスは最高
0571デフォルトの名無しさん2008/06/25(水) 19:29:41
createwindowした画面に文字表示する時に
フォント指定して表示するにはどの関数使ったらいい?
0572デフォルトの名無しさん2008/06/25(水) 19:31:33
printf
0573デフォルトの名無しさん2008/06/25(水) 19:43:23
CreateFont or CreateFontIndirect
SelectObject (or SelectFont @ <widnowsx.h>)
TextOutか何か
0574デフォルトの名無しさん2008/06/25(水) 19:45:39
>>573
ありがとう
0575デフォルトの名無しさん2008/06/25(水) 22:08:04
ちゃんと俺様の質問に答えろよ、人間不合格共が。
それとも姦国人か?シナチクか?
0576デフォルトの名無しさん2008/06/25(水) 22:18:21
>>575
そのレスへ安価したら誰かが答えてくれるかもよ
0577デフォルトの名無しさん2008/06/25(水) 22:50:47
>>575
そもそも質問に答えられる人なんていませんが、何か?
0578デフォルトの名無しさん2008/06/25(水) 23:22:09
CreateMeteredSectionとかのAPIは
どのヘッダをインクルードすれば使えますか?

それとも動的にAPIアドレスを取得しないと使えないのでしょうか?
0579デフォルトの名無しさん2008/06/25(水) 23:23:53
char szString[256];
sprintf(szString, "%d", rand()%(100-1)+1);
ExtTextOut(,,,,, szString,,);

1行目のcharをTCHARに変えてこんな感じの処理できない?
やろうとしたら
C2664: 'sprintf' : 1 番目の引数を 'TCHAR [2]' から 'char *' に変換できません。
ってエラーでる
0580デフォルトの名無しさん2008/06/25(水) 23:24:50
>>579
wsprintf(szString, TEXT("%d"), rand()%(100-1)+1);
0581デフォルトの名無しさん2008/06/25(水) 23:29:36
_T("aaa")
と
TEXT("aaa")
ってなにが違うの?
0582デフォルトの名無しさん2008/06/25(水) 23:30:29
>>580
ありがとう
05835802008/06/25(水) 23:33:02
>>581
定義ヘッダが違う?w
俺は詳しくはしらんから調べてみればいい

それよりメータードセクションの定義ヘッダを俺は知りたい
05845802008/06/25(水) 23:46:38
調べたら自分で実装しろということだったらしいorz
0585デフォルトの名無しさん2008/06/25(水) 23:55:33
調べてから質問しろ
0586デフォルトの名無しさん2008/06/25(水) 23:57:55
>>578-584
http://msdn.microsoft.com/en-us/library/ms810428.aspx
ここのAppendixがソースだから、それをコピペしろ。
0587デフォルトの名無しさん2008/06/26(木) 00:00:14
>>585
何か違うだろ
0588デフォルトの名無しさん2008/06/26(木) 00:01:14
>>585
いや、自分なりに調べてわからなかったから質問した。
その後、続けて調べていくうちに自分で実装しないと
いけないという事がわかったんだ。

誤解を招いた言い方だったな。すまん。
05895882008/06/26(木) 00:03:04
>>586
ありがとう。俺もさっきそこみてわかったんだw
0590ハッカーの神様2008/06/26(木) 00:11:32
おまいら皆この屑(>>588)を見習えよ
0591デフォルトの名無しさん2008/06/26(木) 00:17:01
Terminate590(TRUE)
0592デフォルトの名無しさん2008/06/26(木) 00:19:10
>>591
何がTRUEなんだ?
0593デフォルトの名無しさん2008/06/26(木) 00:41:42
ウィンドウをフルスクリーンにするにはどうすればいい?
0594デフォルトの名無しさん2008/06/26(木) 00:49:36
DirectX
タイトルバーや枠を消して最大化
0595デフォルトの名無しさん2008/06/26(木) 01:05:47
>>594
ありがとう
0596デフォルトの名無しさん2008/06/26(木) 16:04:06
他のアプリケーションのウィンドウの名前を得るにはどうすればいいですか?
0597デフォルトの名無しさん2008/06/26(木) 16:39:32
>>596
質問文すべて英語にしてググってみ
0598デフォルトの名無しさん2008/06/26(木) 16:41:08
その名前を得るための、事前にわかってる情報は何?
何も無いなら、EnumWindows()でハンドル列挙して、GetWindowText()かな。
0599デフォルトの名無しさん2008/06/26(木) 17:44:08
>>597
ttp://www.google.com/search?lr=lang_en&q=How+should+I+do+to+obtain+the+name+of+the+window+of+other+applications%3F

IE8とWMP11がトップに出てくるぞ
どういうSEOしてるんだよMSはw
0600デフォルトの名無しさん2008/06/26(木) 19:32:02
どういう思考してんだ>>599は
そんな英文じゃなくて説明文に書いてあるであろう単語並べるだけでいい
0601デフォルトの名無しさん2008/06/26(木) 21:34:40
>>600
> 説明文に書いてあるであろう単語
それが判ってるなら質問なんかするかぼけ
0602デフォルトの名無しさん2008/06/26(木) 21:47:48
訳:構ってほしいな。
こうですか?><
0603デフォルトの名無しさん2008/06/26(木) 21:56:58
かまってほしくない人はレスしないでください
0604デフォルトの名無しさん2008/06/26(木) 23:28:35
>>601
アホなんですねわかります
0605デフォルトの名無しさん2008/06/26(木) 23:36:14
VC++2008ExpressEditionでフォームアプリケーション作成時はダイアログエディタ(?)あるけど
Win32プロジェクトでもダイアログエディタ使うにはどうすればいい?
0606デフォルトの名無しさん2008/06/26(木) 23:40:01
気合でRCを手書き。いやマジで。
0607デフォルトの名無しさん2008/06/27(金) 01:11:55
>>605
Standard以上のエディションを買えってゲイツが言ってた
0608デフォルトの名無しさん2008/06/27(金) 01:39:35
リソースエディタも無いようなゴミ配布するなって思う
それなら正直コマンドラインコンパイラだけでいいよ
0609デフォルトの名無しさん2008/06/27(金) 01:49:05
どっかにフリーでGUIなリソースエディタぐらい転がってるんじゃないか。
0610デフォルトの名無しさん2008/06/27(金) 01:52:38
ExpressEditionは、WebKitのビルドで使ったりするけどな
0611デフォルトの名無しさん2008/06/27(金) 02:04:41
ExpressEditionなんてイランからToolkit配布してくれればなー
まあコマンドラインコンパイラが目当てならDDKでもインスコすればいいけどさ
0612デフォルトの名無しさん2008/06/27(金) 03:52:16
意表をついてeVC4のリソースエディタ
0613一瞬目を疑った罠2008/06/27(金) 05:57:35
>>611
イスラエルなら兎も角、イランからの配布はないだろ。
0614デフォルトの名無しさん2008/06/27(金) 07:52:48
>>606-612
ありがとう
そこらへん明後日みる
0615デフォルトの名無しさん2008/06/27(金) 09:36:52
ダイアログリソースならBCCFormとか使えばいいじゃない
0616デフォルトの名無しさん2008/06/27(金) 09:49:42
>>615
- 動作に必要なソフト -
Borland C++ 5.51(必須), BCC Developer(推奨)
0617デフォルトの名無しさん2008/06/27(金) 10:56:25
>>596 です。
>>597-598
分かりました、ありがとうございます。
0618デフォルトの名無しさん2008/06/27(金) 12:16:25
>>616
brccもrcもほぼ互換だし、なんならリンク時にresでリンクすればいい。
0619デフォルトの名無しさん2008/06/27(金) 12:33:53
つーか、今時ダイアログベースなソフトなんか作るな。
0620デフォルトの名無しさん2008/06/27(金) 12:40:43
別にダイアログベースのアプリなんて質問者は言ってないけど
0621デフォルトの名無しさん2008/06/27(金) 14:02:18
XN Resource Editor
0622デフォルトの名無しさん2008/06/27(金) 14:52:38
フレームを消すにはどの関数調べたらいい?
0623デフォルトの名無しさん2008/06/27(金) 15:04:31
フレームとだけ言われても分からん
ウィンドウのフレームとか動画のフレームとか色々あるだろう
0624デフォルトの名無しさん2008/06/27(金) 15:07:17
ああ、ごめん
createwindowで作成されたウィンドウのフレーム
0625デフォルトの名無しさん2008/06/27(金) 15:15:35
DestroyWindow?
それとも枠なしウィンドウを作りたいという意味?
0626デフォルトの名無しさん2008/06/27(金) 15:19:37
分からないならレスするな
0627デフォルトの名無しさん2008/06/27(金) 15:26:23
SetWindowLong
0628デフォルトの名無しさん2008/06/27(金) 15:26:45
>>626
分からないならレスするな
0629デフォルトの名無しさん2008/06/27(金) 15:31:40
フルスクリーンにしたくてメニュー消す所まではいけたけど
フレーム消すので躓いてて

Destroyしたら全部消えた
0630デフォルトの名無しさん2008/06/27(金) 15:33:46
スタイル変更してBORDER無しのウィンドウにしたら
0631デフォルトの名無しさん2008/06/27(金) 15:38:17
WS_CAPTION と WS_THICKFRAME を外してみろ
0632デフォルトの名無しさん2008/06/27(金) 15:51:35
シリアルポートをReadFileで読んでいたら、
バッファには内容が入っているのに、
第三引数pNumberOfBytesReadがずっと0のままだったんだけど、どうしてかな?
http://yokohama.cool.ne.jp/chokuto/urawaza/api/ReadFile.html
Vistaとか関係ある?

あと、SendFileがどうしてもうまくいかないんだけど。。。
CreateFileのとき、FILE_FLAG_OVERLAPPEDフラグを立ててるんだけど、
第四引数pOverlappedをOVERLAPPED 構造体をすべて0にセットして、
APIを叩いた前後0x30100000が入ってくるんだけど、そういうもん?
0633デフォルトの名無しさん2008/06/27(金) 16:04:32
フルスクリーン無理だった

聞きすぎるのも悪いから出てきたキーワードでなんとかしてみる
ありがとう
0634デフォルトの名無しさん2008/06/27(金) 16:18:25
がんばれー
0635デフォルトの名無しさん2008/06/27(金) 19:12:29
SendFileってどのAPI? 手持ちのWindowsSDKには載ってないが。
0636デフォルトの名無しさん2008/06/27(金) 19:13:55
あと、とりあえずOVERLAPPEDのhEventはセットしといたら。
0637デフォルトの名無しさん2008/06/27(金) 19:17:51
>>632
それだけじゃ分からん。
まさか第3引数に渡している変数の型がLPDWORDじゃないだろうな?
0638デフォルトの名無しさん2008/06/27(金) 19:18:08
>>635
たぶんこれでは?
http://msdn.microsoft.com/en-us/library/ms740565(VS.85).aspx
0639デフォルトの名無しさん2008/06/27(金) 21:22:37
>>632
非同期モードで読んでるからじゃないの?

そのページに非同期での読み取られたバイト数取得方法書いてあるじゃん。
0640デフォルトの名無しさん2008/06/28(土) 09:21:40
JPG を表示しようとして

CreateStreamOnHGlobal(hGlobal,TRUE,&iStream);
OleLoadPicture(iStream,0,0,IID_IPicture,(void**)&iPicture);
iPicture->get_Handle((OLE_HANDLE*)&hBitmap);
iStream->Release(); GlobalFree(hGlobal); return hBitmap;

のようにしたら、メモリーリークが起こるのですが、
解決策を知っている方がいたら教えてください。
0641デフォルトの名無しさん2008/06/28(土) 09:55:46
WS_OVERLAPPEDとかを設定する時に使うビット演算子の質問です
WS_A | WS_B = WS_AとWS_Bのスタイルを持つ
WS_A ~ WS_B = WS_Aのスタイルを持ち、WS_Bのスタイルを解除
この覚え方で問題ないですか?

また & ^ の場合はそれぞれどう覚えたらいいですか?
0642デフォルトの名無しさん2008/06/28(土) 09:58:56
WS_A ~ WS_B って構文エラーやろ
0643デフォルトの名無しさん2008/06/28(土) 10:55:38
Style = WS_A | WS_B | WS_C
Styleは AとBとC

Style = Style & ~(WS_A | WS_C)
StyleはB
0644デフォルトの名無しさん2008/06/28(土) 10:57:27
タスクバーを外す(非表示にする)にはどうすればいいですか?
0645デフォルトの名無しさん2008/06/28(土) 11:20:46
POPUPスタイルにすればいい

ウソだけど
0646デフォルトの名無しさん2008/06/28(土) 13:57:17
☠ฺ☠ฺ☠ฺ☠ฺ☠ฺ☠ฺ☠ฺ毎日新聞社による日本人女性への誹謗中傷☠ฺ☠ฺ☠ฺ☠ฺ☠ฺ☠ฺ☠ฺ

・母親は受験勉強をする息子の学力向上のためにフェラチオをする
・日本人女性の55%は、出会ったその日に男と寝る
・ファストフードは女子高生たちを性的狂乱状態におとしいれる
・ティーンたちはバイアグラを使ってウサギのようにセックスをする
・女子高生は、刺激のためにノーブラ・ノーパンになる
・日本の最新の流行 : 70歳の売春婦
・老人の売春婦の人気にもかかわらず、日本では小学生の売春婦にも仕事がある
・日本の若い看護婦は売春婦に勝る
・24時間オルガズムが止まらない病気で苦しむ日本人女性の数が増えている
・15未満の子供を対象とした疑似ポルノが日本に蔓延している
・OLの72%が、セックスをより堪能するために何らかのトレーニングを受けている
・人妻は気分転換の目的で昔の恋人に抱かれに行く
・主婦は郊外のコイン・シャワーで売春をしている
・日本男子は柔道や空手の部活で男相手に童貞を捨てている
・ほとんどすべての漁師は海でマンタとSEXしている
・まだ10代の少年から退職した老人までみんな2980円の手コキを利用している
・六本木のあるレストランでは、食事の前にその材料となる動物と獣姦する

※同社が全年齢向けコーナーで七年以上にわたり世界に向けて配信していたものの一部です
※同社の行為は日本人への偏見や人種差別、婦女暴行、幼児虐待を助長するものです

◆毎日新聞の英語版サイトがひどすぎる まとめ@wiki
 http://www9.atwiki.jp/mainichiwaiwai/
◆毎日新聞問題の情報集積wiki
=@http://www8.atwiki.jp/mainichi-matome/

つまり日本国民は
http://www.vipper.net/vip552788.jpg
0647デフォルトの名無しさん2008/06/28(土) 15:38:05
>>640
iPicture->Release();

hBitmapも一緒に破棄されるので、注意。、
0648デフォルトの名無しさん2008/06/28(土) 15:40:15
四回目にしてようやくローカル版msdnのダウンロードに成功したようだ
インストール途中で ほにゃらら.cab を取得できませんとか勘弁してくれ
MD5SUM くらいページにかいておけってんだ
0649デフォルトの名無しさん2008/06/28(土) 16:39:48
MSDNサブスクリプションの方なら、SHA1とCRC付いてるのだけどねえ。
とはいえ、サイズを見れば正常にダウンロードできたか判る気もするけど。
今時、通信途中でデータが壊れたなんて滅多にないんじゃね?
PC側のメモリやHDDの不調で内容が壊れるほうがよっぽど多い気がする。
06506402008/06/28(土) 17:47:38
>>647

ありがとう
0651デフォルトの名無しさん2008/06/28(土) 18:20:13
TCHAR szString[20];
strcmp(szString, "abcde");

これを実行するにはどうすればいい?
0652デフォルトの名無しさん2008/06/28(土) 18:22:32
>>651
> TCHAR szString[20];
> strcmp(szString, "abcde");
>
> これを実行するにはどうすればいい?

TCHAR対応の関数をつかえばいいんじゃね?
_tstrcmp() とか、(←適当にかいたから多分別の名前)
0653デフォルトの名無しさん2008/06/28(土) 18:23:08
strcmp((const char *)szString, "abcde");
0654デフォルトの名無しさん2008/06/28(土) 18:26:39
典型的な悪い見本ですね
0655デフォルトの名無しさん2008/06/28(土) 18:27:00
>>652は間違い
>>653が正解だな
0656デフォルトの名無しさん2008/06/28(土) 18:30:28
TCHAR szString[20];
_tcscmp(szString, _T("abcde"));
0657デフォルトの名無しさん2008/06/28(土) 18:32:02
szStringが不定だから、どちらにしろ間違ってるな。
0658デフォルトの名無しさん2008/06/28(土) 18:41:24
TCHAR szString[20];
_tcscpy(szString, _T("これを実行するにはどうすればいい?"));
_tcscmp(szString, _T("abcde"));

注: UNICODEビルド専用
0659デフォルトの名無しさん2008/06/28(土) 18:49:46
注: UNICODEビルド専用って?
ANSIビルドとUNICODEビルドの両方に対応させるのが、
汎用テキストマッピングなんだけど。
0660デフォルトの名無しさん2008/06/28(土) 18:56:52
ANSIだと文字数オーバーってことじゃ?w
0661デフォルトの名無しさん2008/06/28(土) 19:06:46
>>660
正解
0662デフォルトの名無しさん2008/06/28(土) 19:29:32
>>652-
ありがとう
#define _tcscmp wcscmpってなってた
wcscmp(szString, TEXT("abcde"));
で解決
0663デフォルトの名無しさん2008/06/28(土) 19:34:06
>>662
お前は根本的に分かっていない
Win32の前にもっとC言語を勉強しろ
0664デフォルトの名無しさん2008/06/28(土) 19:41:28
根本的に kwsk
ただ関数を知らなかっただけだろ
0665デフォルトの名無しさん2008/06/28(土) 19:55:33
>>662
明示的にUTF-16を扱うのならwcscmpでいいけど、
それならTCHAR型じゃなくて、WCHAR型じゃないといけない。

基本的に、TCHARには汎用テキスト関数を使うべき。
0666デフォルトの名無しさん2008/06/28(土) 19:58:21
UTF-8で開発したいなぁ
0667デフォルトの名無しさん2008/06/28(土) 20:12:44
>>662
#ifndef _UNICODE
#define _tcscmp strcmp
#else
#define _tcscmp wcscmp
#endif
0668デフォルトの名無しさん2008/06/28(土) 20:23:42
>>666
漢字はバイトになるんだがな。
0669デフォルトの名無しさん2008/06/28(土) 20:24:35
>>668
漢字は3バイト

肝心な1文字抜けてた
0670デフォルトの名無しさん2008/06/28(土) 20:32:06
ツールバーの区切りを塗りつぶすコードなんか
書きたくないよ・・・
もう、Windows 2000での見栄えなんて
考えなくてもいいよね?
0671デフォルトの名無しさん2008/06/28(土) 20:42:57
2kはまだサポート対象OSですが何か?
0672デフォルトの名無しさん2008/06/28(土) 20:57:57
>>670
それは仕様ですで乗り切れ
0673デフォルトの名無しさん2008/06/28(土) 21:13:11
>>669
UTF-16だって、漢字は2か4バイトじゃん
0674デフォルトの名無しさん2008/06/28(土) 21:29:45
でも大体の感じは2バイトだよ。
0675デフォルトの名無しさん2008/06/28(土) 22:18:03
擦れたい嫁 lstrcmp
0676デフォルトの名無しさん2008/06/28(土) 22:30:15
いくらWin32つってもわざわざ糞遅いlstr〜系を使う奴はアホ
0677デフォルトの名無しさん2008/06/28(土) 23:21:42
知らなかったんだが、lstr*系って遅いのか?

よければ具体的な理由を教えてほしい。
後、それに変わる高速なAP(CRTじゃない)Iを教えてくれると助かる。
0678デフォルトの名無しさん2008/06/28(土) 23:48:13
その条件でなら最速でいいんじゃね?
shlwapiのより速いかどうかは流石に保障しかねるが。
0679デフォルトの名無しさん2008/06/29(日) 01:41:03
lstrcmpと速度比較するならstrcmp系じゃなくてstrcoll系だろ
0680デフォルトの名無しさん2008/06/29(日) 02:12:25
そもそもlstr〜系なんてWin16時代の遺物だろ
今更CRTを一切使わないプログラムなんて制限多すぎるだけだしそんな事して何になるんだ?
0681デフォルトの名無しさん2008/06/29(日) 02:31:10
Str系はどうですか
0682デフォルトの名無しさん2008/06/29(日) 02:54:56
基本的にCRTを使った方がいい。最近のVC++だとセキュリティ強化されているし
lstr系やStr系を使うのは、CRTが対応していないWin9x用のソフトを作るときぐらいに
した方がいいし、実際そんな機会はほとんど無かろう
0683デフォルトの名無しさん2008/06/29(日) 03:37:13
ドライバ類ってCRT使えたっけ?
0684デフォルトの名無しさん2008/06/29(日) 04:40:00
使える
0685デフォルトの名無しさん2008/06/29(日) 04:48:20
strsafe使えってことで
0686デフォルトの名無しさん2008/06/29(日) 05:41:16
>>685
strcmpとかねーだろばか
0687デフォルトの名無しさん2008/06/29(日) 11:08:13
話ぶった切るけど、ゲイツ引退か。
何かにつけて叩かれてたけど
なんだかんだですごい人だったよな
0688デフォルトの名無しさん2008/06/29(日) 11:12:08
ゲイツが引退したのでWin32APIは廃止します
0689デフォルトの名無しさん2008/06/29(日) 11:53:14
それは困る
0690デフォルトの名無しさん2008/06/29(日) 12:38:38
Win33APIになるんだよ
0691デフォルトの名無しさん2008/06/29(日) 12:59:03
WIN64APIってあるの?
0692デフォルトの名無しさん2008/06/29(日) 13:17:07
流石利益には聡い男、windowsの暗雲を察知していち早く逃げたか
0693デフォルトの名無しさん2008/06/29(日) 17:30:25
>>686
最近のVCなら、/Oiでインライン展開されるから使っても平気。
0694デフォルトの名無しさん2008/06/29(日) 18:00:53
なあここってWin32APIだから別にlstrで問題ないんじゃないか?
速度を議論するスレじゃないだろw
0695デフォルトの名無しさん2008/06/29(日) 18:18:58
Win32 APIスレだから、無条件にWin32 APIを使えというのはどうかと思う。
さて、俺はshlwapiのStrCmpを使おうか。
0696デフォルトの名無しさん2008/06/29(日) 18:26:56
シェル系はどうかとおもうぜ
0697デフォルトの名無しさん2008/06/29(日) 18:41:24
> 今更CRTを一切使わないプログラムなんて制限多すぎるだけだしそんな事して何になるんだ?
「一切」とは想わないが、コンパイラ依存や_mbs系とかは避けたい
文字列比較がSBCS/MBCSとUNICODEで異なってていいのかとも思う
0698デフォルトの名無しさん2008/06/29(日) 21:02:48
gccで通らないコードはクソ
0699デフォルトの名無しさん2008/06/29(日) 21:19:13
Win32なんて実質VC++専用みたいな物だろうが
他のコンパイラがVC++に合わせればいいんだよ
0700デフォルトの名無しさん2008/06/29(日) 21:31:04
EU諸国のお偉いさん方はそれを許さないわけです
0701デフォルトの名無しさん2008/06/29(日) 21:58:31
Ctrl+Alt+Deleteを押したらタスクマネージャが出てくるけど
あれを一時的に解除(タスクマネージャが出てこないように)するにはどうすればいい?
0702デフォルトの名無しさん2008/06/29(日) 22:13:03
タスクマネージャはCtrl+Shit+Esc
0703デフォルトの名無しさん2008/06/29(日) 22:14:25
VistaではCtrl+Alt+Delete押してもタスクマネージャは出ないが
それはどうするつもりだ?(もっと凄いものが出てきちゃう)
0704デフォルトの名無しさん2008/06/29(日) 22:15:05
↑w
0705デフォルトの名無しさん2008/06/29(日) 22:24:26
>>702
キーボードに Shit キーが無いのでタスクマネージャが出せません><
0706デフォルトの名無しさん2008/06/29(日) 22:30:01
クソ!どうしてShitキーが見当たらないんだ!
0707デフォルトの名無しさん2008/06/29(日) 22:32:31
>>701
そのホットキーはセキュリティ確保のため変更するべきではないとおもうな。
0708デフォルトの名無しさん2008/06/29(日) 22:37:26
>>701
APIフック
0709デフォルトの名無しさん2008/06/29(日) 22:43:22
そのコマンドは乗っ取り不可じゃなかったっけ?
できるのか?
07107012008/06/29(日) 22:46:48
ありがとう
俺の環境はWinXP Home SP3
Ctrl+Alt+Deleteでタスクマネージャでてくるよ

msg.message見てみたけどCtrl+Altまではメッセージ受信してるけど
次にDelete押しても受信せずにタスクマネージャ起動してた

>>707
ねんのために別のキーストロークに同じ動作セットしてから解除してみる

>>708
一応調べるだけ調べてみる
0711デフォルトの名無しさん2008/06/29(日) 22:47:36
そもそもタスクマネージャを出したくない理由は何?
マルウェアでも作ってて変なプロセスが起動してるのを見られたくないとか?
0712デフォルトの名無しさん2008/06/29(日) 23:07:59
その理由を言ったところで>>711は教えないだろうな
0713デフォルトの名無しさん2008/06/29(日) 23:12:35
タスクマネージャを、起動して終了するだけの自作プログラムに置き換え。
0714デフォルトの名無しさん2008/06/29(日) 23:15:07
フックよりも高度な技が必要になる
できないことはないけど通常のアプリケーションの範疇からすこしはずれる
http://nienie.com/~masapico/doc_DisableSAS.html
07157012008/06/29(日) 23:30:53
スクリーンセーバーもどきを作ってて、それをタスクマネージャから終了されたくないんだ
キー・マウスの信号を受信しても終了しないようにしてる
終了するためにはパスが必要で、例外が右上の×ボタン・タイトルバーandタスクバー右クリックの閉じる
フルスクリーンからウィンドウスクリーンへ切り替える(メニューから)のにもパスが必要にしてある

フルスクリーン時のメニューはマウスポインタがメニューが表示される位置にきたら表示するようにしてる
0716デフォルトの名無しさん2008/06/29(日) 23:41:11
>>706-707
なんかワロタwwwwwwwwwwwww
07177162008/06/29(日) 23:42:02
ミスった
>>706-707 ×
>>705-706 ○
0718デフォルトの名無しさん2008/06/29(日) 23:52:46
そりゃセキュリティツールの類か?
07197012008/06/30(月) 00:02:34
うん、セキュリティ類
0720デフォルトの名無しさん2008/06/30(月) 01:00:17
なんだ、ただの悪戯ソフトか

他人のPCに仕込んでおいて

*「うわ〜、パソコンがおかしくなった><」
701「ほら、こうすれば直るよ」
*「さすが701さんすごい!」

こういう流れだな
0721デフォルトの名無しさん2008/06/30(月) 01:20:33
単純に技術的な勉強したいってだけなら
そういうの知っててもいいんじゃね?
0722デフォルトの名無しさん2008/06/30(月) 01:55:42
自前の通信をするプログラムでWinsockのLSPを通さない方法はありますか?
セキュリティソフトが通信の邪魔をしてしまうケースがあるのでWinsockを直接使うようにしたいです。
レジストリの操作はしないで特定のプログラム起動時に使わないようにできるでしょうか。
0723デフォルトの名無しさん2008/06/30(月) 02:10:32
お前の仕業か?
ttp://pc11.2ch.net/test/read.cgi/tech/1210170833/684
07247012008/06/30(月) 02:13:48
>>714
ありがとう
なんとか再現はできたけど
レジストリいじらないでand.exeファイル単体でやる方法はない?
0725デフォルトの名無しさん2008/06/30(月) 02:19:42
なんで>>720みたいなくだらん事言う奴がいるんだろな
0726デフォルトの名無しさん2008/06/30(月) 02:37:39
そうです。そちらは過疎ってたのでこちらにしました。二重ですいません。
0727デフォルトの名無しさん2008/06/30(月) 03:37:32
>>725
くだらん質問する奴がいるから
0728デフォルトの名無しさん2008/06/30(月) 03:59:04
一時退席してる時にそのプログラム実行しといて誰に触られてもおkなようにしたいんだろ
いくらフルにしてパスつけたってtskmgrから終了されたら意味ないしな
0729デフォルトの名無しさん2008/06/30(月) 05:22:11
馬鹿か?
ロックしとけばいいだけだろうが
0730デフォルトの名無しさん2008/06/30(月) 07:00:58
一般アプリがSAS触れるなら、全然SASじゃねーじゃん。
あれは「確実にログイン画面であること(どっかのアプリが
出した偽ウインドウではないこと)」の保証のためにあるんだから。
 それと、ユーザー画面で「ようこそ画面を使用する」を切ったり
ドメイン環境にあれば、直接はタスクマネージャでないから。
0731デフォルトの名無しさん2008/06/30(月) 07:11:26
どいつもこいつも能書きはいいからさっさと教えろよ
分からないならレスするな
0732デフォルトの名無しさん2008/06/30(月) 07:16:31
わからないなら黙っててください
0733デフォルトの名無しさん2008/06/30(月) 07:20:47
知らない奴がどうでもいい知識をひけらかすのは目障りなんだよな
0734デフォルトの名無しさん2008/06/30(月) 09:35:01
スクリーンセーバーのパスワードロックだけじゃ安心出来ない環境の方を
どうにかするべきだろう。
0735デフォルトの名無しさん2008/06/30(月) 09:48:31
スクリーンセーバーのパスワードロックを知らないんだろう
0736デフォルトの名無しさん2008/06/30(月) 10:34:42
知らないならレスしないでください
0737デフォルトの名無しさん2008/06/30(月) 10:40:29
すいません
0738デフォルトの名無しさん2008/06/30(月) 14:56:39
SetWindowPosのZ順って、
特定ウィンドウのすぐ手前を指定する方法は無いのでしょうか?

A,B,CのウィンドウがZ順に並んでいる際、CをBのすぐ手前に移動したいとすると、
わざわざAのウィンドウを探して、hWndInsertAfterに使うしか無いのでしょうか?
0739デフォルトの名無しさん2008/06/30(月) 15:08:11
わざわざ探すといっても、GetWindowで一発では
0740デフォルトの名無しさん2008/06/30(月) 15:51:52
C++ & VS2008 でメモリマップドファイルについての質問です。
以下のようなメンバ関数を持つクラスを定義し、そのクラスのオブジェクトを2つ作って
それぞれ異なるファイルを開こうとするとMapViewOfFile がエラーを返してきます。
2つのプログラムで1つのメモリを共有する手段としてあちこちで紹介されていますが、
逆に1つのプログラムで2つ開くことはできないんでしょうか?

void MemoryMappedFile::Open(const std::string& FILENAME)
{
filehandle_ = CreateFileA(FILENAME.c_str(), GENERIC_READ|GENERIC_WRITE,
0, 0, OPEN_EXISTING, 0, 0);
if(filehandle_ == INVALID_HANDLE_VALUE)
{
// エラー1
}
map_ = CreateFileMapping(filehandle_, 0, PAGE_READWRITE, 0, 0
,reinterpret_cast<LPCWSTR>(FILENAME.c_str()));
if(map_ <= 0)
{
// エラー2
}
SYSTEM_INFO system_info;
GetSystemInfo(&system_info);
view_ = static_cast<void*>(MapViewOfFile(map_, FILE_MAP_ALL_ACCESS
, 0, system_info.dwAllocationGranularity, 0));
if(view_ == NULL)
{
// エラー3
}
}
0741デフォルトの名無しさん2008/06/30(月) 16:00:25
>>740
MapViewOfFileの引数がおかしくないか?
07427402008/06/30(月) 16:08:18
追加です。
「1つ目のファイルは開けるけど2つ目のファイルは開けない」状態です。
開く順序を変えても、2回目のMapViewOfFileでNULLが帰ってきます。
0743デフォルトの名無しさん2008/06/30(月) 16:10:49
GetLastErrorの戻り値くらい書こうよ
0744デフォルトの名無しさん2008/06/30(月) 16:19:38
>>743それぐらい自分で試して下さい
0745デフォルトの名無しさん2008/06/30(月) 16:23:16
FILE_SHARE_READ
と
FILE_SHARE_WRITE
は?
0746デフォルトの名無しさん2008/06/30(月) 17:48:05
>>745
別のファイルを開こうとしてるんじゃまいか
0747デフォルトの名無しさん2008/06/30(月) 18:17:13
排他モードで開いてるから、ファイルが閉じられるまで誰も開けない。
07487012008/06/30(月) 18:50:08
オリジナルのものを表示させてたいからスクリーンセーバーは使わない
オリジナルのものを表示したままパス入力させる
パス入力失敗したら入力された時間・文字列を表示させる

仕様もオリジナルにしたいからスクリーンセーバーは使うつもりはない
0749デフォルトの名無しさん2008/06/30(月) 18:51:14
後出しのクセに偉そうですね。
スクリーンセーバーをろくに知らないから使わないだけだろ?
07507012008/06/30(月) 18:57:25
>>748は偽者
0751デフォルトの名無しさん2008/06/30(月) 19:03:41
>>749
何も答えて無いクセに偉そうですね
APIもろくに知らないから煽るだけだろ?
0752デフォルトの名無しさん2008/06/30(月) 19:08:04
訳:かまってほしいな
0753デフォルトの名無しさん2008/06/30(月) 19:13:27
>>742
その2つ目のファイルは同じ?
1つ目と2つ目逆にしてみるとどうなる?

一応試したが、2つ開けないなんてことは無かった。
0754デフォルトの名無しさん2008/06/30(月) 19:15:22
って順序変えてるって書いてるな。
ファイルのサイズは十分な大きさがある?
0755デフォルトの名無しさん2008/06/30(月) 19:20:59
もう一度言うけど、MapViewOfFileの引数はそれでいいのか?
オフセットの意味わかってる?
そういう風にマップしたいなら、それでいいんだけど。
0756デフォルトの名無しさん2008/06/30(月) 19:22:46
とにかく GetLastError()の結果が無いと何ともいえない。
0757デフォルトの名無しさん2008/06/30(月) 21:07:05
>>701
Ctrl+Alt+Delete・タスクマネージャ無効にしなくても
タスクマネージャから終了メッセ受信したら弾いたらいいんでないの
07587012008/06/30(月) 22:27:06
方法を知らない人が答えないでくれよ
0759デフォルトの名無しさん2008/06/30(月) 22:29:22
訳:かまってほしいな
0760デフォルトの名無しさん2008/06/30(月) 22:39:19
>>759
かまってほしいのはお前の方だろ
0761デフォルトの名無しさん2008/06/30(月) 22:41:09
↑かまうなクズ
0762デフォルトの名無しさん2008/06/30(月) 22:50:40
スクリーンセイバーなんてライブラリ使えよ。
Vista専用だけど。
0763デフォルトの名無しさん2008/06/30(月) 23:06:50
>>762
>>748
0764デフォルトの名無しさん2008/06/30(月) 23:32:30
>>762
レスも読まず無知のくせにどうでもいい知識ひけらかすな
キモイんだよ
0765デフォルトの名無しさん2008/06/30(月) 23:41:13
いやあ照れるねw
さあ遠慮せずにもっと褒めたまえ。
0766デフォルトの名無しさん2008/06/30(月) 23:46:57
タスクマネージャから終了したら

WM_DESTROY:
MessageBox(0,0,0,0);

って記述してもウィンドウが消えてからメッセージボックス表示されるね
07677012008/06/30(月) 23:48:52
質問に答える気が無いなら黙っていてくれないか
0768デフォルトの名無しさん2008/06/30(月) 23:50:12
DirectXで最大化+描画になるよね・・・たぶん
0769デフォルトの名無しさん2008/06/30(月) 23:50:26
回答を理解しなかったゴミは黙っていてくれないか
07707012008/07/01(火) 00:14:21
>>750,758,767は俺じゃない

その他の人ありがとう
とりあえず今の所は
WM_CLOSE:
break;
で回避した

でもタスクマネージャから終了した場合しばらくして
「このプログラムは応答していません」って出るんだが
出なくなるようにできない?
0771デフォルトの名無しさん2008/07/01(火) 00:22:55
>>770
できねーよ

つうかタスクマネージャで終了できないプロセスなんて常識で考えれば不可能な事ぐらい分かるだろ
ウザイからもう二度と来るなクズ
0772デフォルトの名無しさん2008/07/01(火) 00:23:32
さっさと消えろ
07737012008/07/01(火) 00:27:13
できないのか、ありがとう
0774デフォルトの名無しさん2008/07/01(火) 00:28:40
>>773
一日前に結論でてるだろうが
お前のせいでスレが荒れたのだから責任取れ
0775デフォルトの名無しさん2008/07/01(火) 00:29:16
>>771
お前が昨日の時点で答えてたらこんなに長引く事にはなってなかったのにな
俺からすればお前がウザイから二度と来るなよクズw
0776デフォルトの名無しさん2008/07/01(火) 00:34:10
>>774
お前は>>701に何を求めてるんだ?
どう責任とれと?

一部異常者いますね
0777デフォルトの名無しさん2008/07/01(火) 00:34:54
(荒らしてた張本人がよく言うわ)
07787012008/07/01(火) 00:35:45
責任ってなあw そもそも釣りだったんだがw
まあここの連中の知識レヴェルの低さが分かったし悪く思わないでくれよ
0779デフォルトの名無しさん2008/07/01(火) 00:36:41
いちいち構うな黙れ
↓
0780デフォルトの名無しさん2008/07/01(火) 00:49:38
すいません
0781デフォルトの名無しさん2008/07/01(火) 01:08:04
乗り遅れたか
0782デフォルトの名無しさん2008/07/01(火) 01:11:45
なりすまししてる奴口調でばればれw
0783デフォルトの名無しさん2008/07/01(火) 01:12:00
       ____
     /      \
   /  _ノ  ヽ、_  \
  / o゚((●)) ((●))゚o \  ほんとは技術的な話がしたいんだお…
  |     (__人__)'    |
  \     `⌒´     /

       ____
     /      \
   /  _ノ  ヽ、_  \
  /  o゚⌒   ⌒゚o  \  でも知識がなくて話に入れないお…
  |     (__人__)    |
  \     ` ⌒´     /

       ____
     /⌒  ⌒\
   /( ●)  (●)\
  /::::::⌒(__人__)⌒::::: \   だから荒らすお!
  |     |r┬-|     |
  \      `ー'´     /
0784デフォルトの名無しさん2008/07/01(火) 01:21:07
タスクマネージャのexe削除すればよくね?
0785デフォルトの名無しさん2008/07/01(火) 01:26:54
それじゃ一時的解除にならんだろ
0786デフォルトの名無しさん2008/07/01(火) 01:45:37
>>785
解除するときは「WindowsのCDを入れてください」でおk
0787デフォルトの名無しさん2008/07/01(火) 01:45:53
>>782
俺のレス番当ててみ
0788デフォルトの名無しさん2008/07/01(火) 01:48:54
>>787
>>787
>>787
>>787
>>787
>>787
>>787
>>787
>>787
>>787
>>787
>>787
>>787
>>787
>>787
>>787
>>787
>>787
>>787
>>787
0789デフォルトの名無しさん2008/07/01(火) 01:51:09
つまらんよ
0790デフォルトの名無しさん2008/07/01(火) 01:52:09
訳:かまってほしいな
0791デフォルトの名無しさん2008/07/01(火) 02:07:05
>>790
かまってほしいのはお前の方だろ
0792デフォルトの名無しさん2008/07/01(火) 02:21:34
ループすんなボケ
0793デフォルトの名無しさん2008/07/01(火) 02:50:16
HaltEbbThread(&this);
0794デフォルトの名無しさん2008/07/01(火) 03:10:19
>>793
こういうの書く奴って面白いと思ってるのか?
0795デフォルトの名無しさん2008/07/01(火) 03:13:51
ってか、タスクマネージャの有効無効を一時的に切り替えたらいい
DisableTaskMgr DWORD 0 or 1
0796デフォルトの名無しさん2008/07/01(火) 03:15:20
終了されたくないならプロセス隠すか
適当なプロセスにdllインジェクションでもしちゃえばいいのに
0797デフォルトの名無しさん2008/07/01(火) 03:17:40
試してから言え
0798デフォルトの名無しさん2008/07/01(火) 03:33:19
>>796
こういうのって最近のセキュリティソフトだと警告出たり妨害されないか?
0799デフォルトの名無しさん2008/07/01(火) 03:34:31
っていうか、自分でOS作ったらいいんじゃね?
0800デフォルトの名無しさん2008/07/01(火) 03:44:31
>>799
そうだよな。
Windowsと完全互換で、Ctrl+Alt+Deleteでタスクマネージャが出ない以外は同じに作っておけばいいだけだし。
0801デフォルトの名無しさん2008/07/01(火) 04:37:56
795の方法が一番手っ取り早いんじゃね?
08027012008/07/01(火) 05:40:00
レジストリいじってタスクマネージャON・OFF切り替える事にした
>>795ありがと

void TaskMgrOFF(DWORD dwValue) // dwValue 0でON、1でOFF
{
HKEY hReg;

RegCreateKeyEx(HKEY_CURRENT_USER, TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System"), 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hReg, NULL);
RegSetValueEx(hReg, TEXT("DisableTaskMgr"), 0, REG_DWORD, (const BYTE *)&dwValue, 4);
RegCloseKey(hReg);
}
0803デフォルトの名無しさん2008/07/01(火) 05:42:26
>>771
無知晒し乙

>>802
ソース貼るなよw
0804デフォルトの名無しさん2008/07/01(火) 05:54:09
↑話を理解してない馬鹿
0805デフォルトの名無しさん2008/07/01(火) 05:56:35
>>802はタスクマネージャを呼べなくした
>>771はタスクマネージャから終了ry
0806デフォルトの名無しさん2008/07/01(火) 06:20:01
>>803
うわ・・・w
0807デフォルトの名無しさん2008/07/01(火) 06:25:02
>>803
これはひどい
0808デフォルトの名無しさん2008/07/01(火) 06:28:52
>>803
アホ?w
0809デフォルトの名無しさん2008/07/01(火) 06:39:48
>>804-808
馬鹿はレスしなくていいよ
0810デフォルトの名無しさん2008/07/01(火) 06:42:36
↑馬鹿
0811デフォルトの名無しさん2008/07/01(火) 06:55:05
ttp://www.microsoftpdc.com/Agenda/Sessions.aspx
>Windows 7: Graphics Advances
>Windows 7 enables you to advance the graphics capabilities of your applications while carrying forward existing investments in your Win32 codebase, including GDI and GDI+.
>New enhancements to DirectX let Win32 applications harness the latest innovations in GPUs and LCD displays, including support for scalable, high-performance, 2D and 3D graphics, text, and images.
>Also learn how to leverage the GPU’s parallelism for general-purpose computation such as image processing.

どう思う?
Windows 7で、GDIやGDI+にGPUによるサポートがくるように読めるんだけど、
XP以前のようにドライバレベルではなく、
DirectXを使って汎用的に実装されるのだろうか。

だとして、既存のバイナリがそのまま恩恵を受けられるのか、
あるいは修正が必要なのか。
0812デフォルトの名無しさん2008/07/01(火) 07:07:04
>>811
それはここで質問する事か?
0813デフォルトの名無しさん2008/07/01(火) 07:11:12
はい
0814デフォルトの名無しさん2008/07/01(火) 07:15:32
>>812
いや、他に適当なスレもないし。
0815デフォルトの名無しさん2008/07/01(火) 10:04:32
>>811
Vistaで統合されると思っていたのにガッカリしてたところだよ

>既存のバイナリがそのまま恩恵を受けられるのか

M$的には原則そのままだろう
最適化ヒントをアプリが与えるためのAPIが追加されるかもしれない
Vistaはそう
0816デフォルトの名無しさん2008/07/01(火) 11:08:56
701を叩いてた奴等、701が解決したらもう叩かないんだな
自分は無知だから解決されたら頭が上がりませんってかw

そんな奴がレスするなよ目障りだから
08178112008/07/01(火) 12:30:59
>>815
問題は下位互換性なんだよね。
Vistaのリリースによって、世の中には、
一度GetDCして、その後ReleaseDCせずに使いまわしている、
糞なソフトウェアがたくさんあると判明したし(Aeroではうまく動かない)

まあ、MSのことだから、気の毒なぐらい努力するんだろうけど。
0818デフォルトの名無しさん2008/07/01(火) 12:40:13
>>817
Releaseせずに使いまわしてみたら指定したフォントじゃなくなったしな
わかりやすく言うと バグった
0819デフォルトの名無しさん2008/07/01(火) 12:51:36
>>817
それってvistaのバグじゃないの?
0820デフォルトの名無しさん2008/07/01(火) 12:54:27
>>819
だから「Vistaのリリースによって」って書いてあるじゃん
0821デフォルトの名無しさん2008/07/01(火) 13:07:59
UACと同様に、行儀の悪いコードを粛清するために
わざと入れたんじゃないのか?w
0822デフォルトの名無しさん2008/07/01(火) 13:08:06
>>819
ちげーよ。
Vista以前から、GDIはバッチ処理されるものだったんだよ。
どのくらい溜め込むかを設定するAPIもあったはず。
EndPaint、ReleaseDCを呼び出したということは、
Windowsに溜め込んでる描画も全部実行していいと伝えるということだ。

Vistaでは、一般的なPCのVRAM容量も増えたし、
デスクトップコンポジションのために、すべてのトップレベルウインドウにVRAMからバッファ割り当ててる。
問題は、あるウインドウがいつ描画を完了したのか(スクリーンに反映して良いのかどうか)、どうやって知れば良いのかということだ。
EndPaint、ReleaseDCがそのタイミングなわけだ。

なにもVistaで実装が変わったとはいえ、意味を変えたわけじゃない。
0823デフォルトの名無しさん2008/07/01(火) 13:26:02
ときどきでいいからGdiFlushのことも思い出してください
0824デフォルトの名無しさん2008/07/01(火) 13:31:16
>>823
一度も使ったことない
0825デフォルトの名無しさん2008/07/01(火) 13:50:26
Microsoft Visual C++ 2008 Express EditionでSpy++を実行するにはどうすればいい?
0826デフォルトの名無しさん2008/07/01(火) 13:56:19
MSからフリーでダウンロードできる Windows Server 2003 SP1 Platform SDK には
ついてた気がした。これ入れてみては。
0827デフォルトの名無しさん2008/07/01(火) 14:22:08
SDKのは無印Spyじゃなかったっけ?
0828デフォルトの名無しさん2008/07/01(火) 16:28:33
>>817
俺の知る限りCS_OWNDCフラグを指定していれば使いまわしても問題なかったはずだが、それもダメになってるのか?
0829デフォルトの名無しさん2008/07/01(火) 19:28:23
>>811
本の虫のヒキコモデブオタニートが沸いていたのか
0830デフォルトの名無しさん2008/07/01(火) 20:32:31
>>811
10月過ぎた頃にはMVPがネタにするだろうなと書き込もう思ったら早速書いててワロタ
0831デフォルトの名無しさん2008/07/01(火) 21:25:56
NYARURUさんがそんなん書いてたな
0832デフォルトの名無しさん2008/07/01(火) 21:38:06
ぶっちゃけVista以降の「GPUを有効活用する描画」ってほとんどが.NET (WPF)でないと意味無い気がする

てかWindows7でGDIにもGPUサポートが入るなら、少なくともWin95以降の歴代Windowsの中で
Vistaが唯一ソフトウェア処理って事になるけど、結局MSは何がしたかったのだろうか
0833デフォルトの名無しさん2008/07/01(火) 21:56:05
Ctrl+Aが押されたくない場合はどうしてる?
ホットキーで空回してる?
他のやり方も場合はどんなやりかたしてる?
0834デフォルトの名無しさん2008/07/01(火) 22:00:54
>>832
ドライバに依存するから、サポートしてなけりゃXP以前でもソフトウェア処理
最近のオンボードVGAだとサポートされてないものもあったり
0835デフォルトの名無しさん2008/07/01(火) 22:07:36
オンボードVGA なんてゴミです
0836デフォルトの名無しさん2008/07/01(火) 22:16:07
そうはいうがな、大佐
0837デフォルトの名無しさん2008/07/01(火) 22:22:27
貧乏ライトユーザを切り捨てるんですか!
0838デフォルトの名無しさん2008/07/01(火) 22:28:35
全く関係ないがGPUとはNVIDIA語であってATI(AMD)は特に呼称は決めていなかったはず
0839デフォルトの名無しさん2008/07/01(火) 22:28:43
ULPCなんかだと悲惨なことになりそう
0840デフォルトの名無しさん2008/07/01(火) 22:35:49
>>838
つーか元ネタ的にはPSのCPU,GPU,SPUなんだろうかやっぱり。
0841デフォルトの名無しさん2008/07/01(火) 22:44:21
ha?
0842デフォルトの名無しさん2008/07/01(火) 22:46:48
HA?
0843デフォルトの名無しさん2008/07/01(火) 22:59:04
>>838
ATIはVPUって言ってなかったか?
0844デフォルトの名無しさん2008/07/01(火) 23:07:17
いまはAMDATIもGPUを使ってる
0845デフォルトの名無しさん2008/07/02(水) 00:01:21
目を凝らさないとCとGの区別が付かないから
別の名前付けてほしいんだよなぁ
0846デフォルトの名無しさん2008/07/02(水) 00:03:35
CBU
0847デフォルトの名無しさん2008/07/02(水) 00:06:05
>>845
お前の視力の方が問題だろ
0848デフォルトの名無しさん2008/07/02(水) 00:06:27
VPU、VGA、PPU、GPU
Video、Picture、Graphic
どう使い分けたら良いのかさっぱりだ。
0849デフォルトの名無しさん2008/07/02(水) 00:59:32
VPGAPU (Video Picture Graphics Accelerator Processor Unit) でおk
0850デフォルトの名無しさん2008/07/02(水) 01:57:07
>>847
人の身体の障害の事をそう簡単に言うなボケ
0851デフォルトの名無しさん2008/07/02(水) 02:05:44
>>850
お前一人の為に世界中の"GPU"の表記が変わるかボケ
0852デフォルトの名無しさん2008/07/02(水) 02:52:01
とりあえずGとCの区別のつけやすいフォントでも探したほうが良くね?
0853デフォルトの名無しさん2008/07/02(水) 08:50:19
小利口ではあるが、アンマリ利口ではない振る舞いだな。
0854デフォルトの名無しさん2008/07/02(水) 09:45:32
名前を変えるのではなく、「G」の形をまるっきり変えてしまうのがいいだろう。
ЮPU とか
0855デフォルトの名無しさん2008/07/02(水) 09:46:34
>>854
10 に見えるから却下
0856デフォルトの名無しさん2008/07/02(水) 09:57:57
老眼は文字サイズ大きくしとけ
0857デフォルトの名無しさん2008/07/02(水) 12:27:42
>>851
誰も変えろとは言ってないw
0858デフォルトの名無しさん2008/07/02(水) 15:20:30
>>857
>>845
0859デフォルトの名無しさん2008/07/02(水) 15:59:02
〜〜してほしいって言ってるだけだろ
煽り目的なら消えろ
0860デフォルトの名無しさん2008/07/02(水) 16:31:06
子供の喧嘩かよw
0861デフォルトの名無しさん2008/07/02(水) 16:42:53
↑馬鹿
0862デフォルトの名無しさん2008/07/02(水) 16:49:12
馬鹿ってゆうやつのがバカなんだもん
0863デフォルトの名無しさん2008/07/02(水) 17:03:50
↑普通
0864デフォルトの名無しさん2008/07/02(水) 18:02:34
.NETを普及させたいMSの陰謀なんだろうか
0865デフォルトの名無しさん2008/07/02(水) 18:37:20
>>864
今や.NETベースの方がWin32SDKベースでの開発よりも普及してるだろ
0866デフォルトの名無しさん2008/07/02(水) 18:57:24
フルスクリーンゲームとかしてる時に間違ってウィンドウズキー押したら最小化してしまうんだが
なんとかしてゲーム中だけウィンドウズキー無効にできない?

RegisterHotKeyでは無理だった
0867デフォルトの名無しさん2008/07/02(水) 18:59:51
>>866
ゲーム中だけウィンドウズキーを取り外せばいいんじゃね
0868デフォルトの名無しさん2008/07/02(水) 19:04:13
そのゲームを書いてる人の立場なのか、Winキー無効にするソフト作りたいのか、
単にゲームのプレーヤーで方法が知りたいだけなのかどれ?
0869デフォルトの名無しさん2008/07/02(水) 19:09:51
>>866
実行したいだけならKeySwapでググると吉
0870デフォルトの名無しさん2008/07/02(水) 19:46:32
>>865
じゃあWin32を抹殺したいMSの陰謀
0871デフォルトの名無しさん2008/07/02(水) 19:53:33
マウスカーソルの形を自分の作った絵のものに変えるにはどうすればいいですか?
0872デフォルトの名無しさん2008/07/02(水) 20:03:23
.NETはWin32APIのラッパー
Win32APIが無けりゃ動かない
0873デフォルトの名無しさん2008/07/02(水) 20:05:00
>>871
http://www.google.co.jp/search?hl=ja&q=%E3%82%AB%E3%83%BC%E3%82%BD%E3%83%AB+WINAPI&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=
0874デフォルトの名無しさん2008/07/02(水) 20:17:27
>>872
現状は、でしょ。
0875デフォルトの名無しさん2008/07/02(水) 21:08:54
無くなる計画もない
0876デフォルトの名無しさん2008/07/02(水) 21:39:53
>>866
できる。がんがれ。

ttp://msdn.microsoft.com/en-us/library/bb219746.aspx
ttp://msdn.microsoft.com/ja-jp/library/cc351899.aspx
↑DISCL_NOWINKEY
0877デフォルトの名無しさん2008/07/02(水) 23:33:27
ありがとう

>>868
自分はプレイヤーで、Winキーを押しても最小化しないように(WINキーに反応しないように)したいんだ
WinAPIでなんとかなるんかなと思って

>>866
こっちの方法も一応手つけてみる
0878デフォルトの名無しさん2008/07/03(木) 00:22:11
APIフック
0879デフォルトの名無しさん2008/07/03(木) 04:10:23
>>878
全角厨は黙ってろ
0880デフォルトの名無しさん2008/07/03(木) 06:37:51
>872
monoの立場っていったい・・・
0881デフォルトの名無しさん2008/07/03(木) 10:31:08
グローバルフックで殺せなかったっけ?
0882デフォルトの名無しさん2008/07/03(木) 12:18:15
殺すとか・・・もっとマシな表現できないのかねぇ
0883デフォルトの名無しさん2008/07/03(木) 12:19:54
殺害?
0884デフォルトの名無しさん2008/07/03(木) 12:22:50
キルする
0885デフォルトの名無しさん2008/07/03(木) 12:47:10
キルる
0886デフォルトの名無しさん2008/07/03(木) 12:49:42
デストローイ
0887デフォルトの名無しさん2008/07/03(木) 12:55:13
あぼーん
0888デフォルトの名無しさん2008/07/03(木) 15:07:35
ぶっ死ろす
0889デフォルトの名無しさん2008/07/03(木) 15:21:30
投す
0890デフォルトの名無しさん2008/07/03(木) 15:28:34
キルビル
0891デフォルトの名無しさん2008/07/03(木) 16:29:19
全員通報しますた
0892デフォルトの名無しさん2008/07/03(木) 17:59:58
>>880
monoだってWin32APIの代替としてWINEを使ってるから。
0893デフォルトの名無しさん2008/07/03(木) 18:20:05
何年前の話だよ
0894デフォルトの名無しさん2008/07/03(木) 18:36:40
今
0895デフォルトの名無しさん2008/07/03(木) 18:38:53
C++相談室でこっちと言われたので転載しちゃいます。。

現在プログラムでマウスクリックをさせるものを作っていて、
ボタンのクリックなどはできるようになったのですが、
タブ(TabControl)の切り替えができません。

だれかご存知の方がいましたらご教授いただけると助かります。。

以下プログラム抜粋----------------------------------
POINT pt = {任意の座標X , 任意の座標Y};
HWND hWnd = ::WindowFormPoint(pt.x , pt.y);

// マウスを任意の位置に移動
SetCursorPos(pt.x , pt.y);
// クリック (Down -> UP)
::SendMessage(hWnd , WM_LBUTTONDOWN , 0 , MAKELPARAM(pt.x , pt.y));
::SendMessage(hWnd , WM_LBUTTONUP , 0 , MAKELPARAM(pt.x , pt.y));

よろしくお願いします。
0896デフォルトの名無しさん2008/07/03(木) 19:00:09
>>895
SendMessageする前に、
::ScreenToClient(hWnd, &pt);
してみ
0897デフォルトの名無しさん2008/07/03(木) 19:03:37
SetCursorPosも無くてもいい気がするが、まあそれはプログラムの目的によるか。
0898デフォルトの名無しさん2008/07/03(木) 19:30:39
勝手にカーソルを移動するソフトなんて迷惑極まりない
0899デフォルトの名無しさん2008/07/03(木) 19:35:09
>>898
PC使えない人向けにいろいろとワンタッチにしたいと思うこともある
texとワープロソフトとレタッチソフトと出力ごとにプリンタ出力先と出力設定の変更

ハードウェアを直接触る部分は諦めるしかないけど
それ以外の操作を誰でもできるようにとか
0900デフォルトの名無しさん2008/07/03(木) 19:37:54
でもVNCとかシナジーみたいなのを
作ってるのかもしれないし
0901デフォルトの名無しさん2008/07/03(木) 23:24:54
ちょっとお尋ねしたいのですが、テキストエディタソフトを作っていたら、何にもそういう風に意図していないのにCtrl+Vでクリップボードからコピーできてしまうという現象に遭遇しました。
サクラエディタでも試してみたところ、サクラエディタの貼り付けのショートカットキーはF9と書いてあるのに、Ctrl+Vで貼り付けできてしまいました。
これってどういうことなのでしょうか??
0902デフォルトの名無しさん2008/07/03(木) 23:32:14
君は何を言っているの?
0903デフォルトの名無しさん2008/07/03(木) 23:34:09
>>901
WM_PASTE を握りつぶしてないって事では?
0904デフォルトの名無しさん2008/07/04(金) 01:03:27
将来的には、Win32APIでゴリゴリ書いたものよりも
.NET Framework使った方が軽くなったりするんだろうか

別に.NET Frameworkが基底になるのは構わないが
既存のアプリを修正するのが面倒くさい
0905デフォルトの名無しさん2008/07/04(金) 01:24:01
>>904
CPUがx86でなくなって、x86コードがエミュレーションになったら、
そうなるかもしれん。10年以上先だと思うが。
0906デフォルトの名無しさん2008/07/04(金) 08:46:51
現状のx64版Windowsで、x86アプリと.NETアプリだとどっちが軽いの?
09078952008/07/04(金) 09:01:21
>>896
ScreenToClient試しましたがだめでした。
ボタンクリックの位置もずれてしまいました。

>>897
MSDNか何かを見ていた時にカーソルがコントロール上にあることを
確認しているととれる文章をどこかで見た気がしたから一文入れてみた

>>898
連続試験をやらせるアプリなんで誰も使わないPCでやるんですわぁ

某ソフトだとタブも切り替えられているんでできるとは思うんだけど
どうやるのかわかりませぬ。。。
0908デフォルトの名無しさん2008/07/04(金) 09:02:19
x86アプリ
0909デフォルトの名無しさん2008/07/04(金) 09:38:41
>>907
何がどう駄目だったんだよ。
こっちは実際に検証して動作確認した上で答えてるんだぜ。

駄目ならこっちで再現できるだけの情報出せよ。
0910デフォルトの名無しさん2008/07/04(金) 09:39:51
優しいなあ
0911デフォルトの名無しさん2008/07/04(金) 09:40:23
あとクリックがずれるって何だ?
マウスの位置指定はScreen座標、コントロールへのメッセージはクライアント座標だぜ?
09128952008/07/04(金) 10:04:03
>>909
動作確認までして頂いて助かります。

>駄目ならこっちで再現できるだけの情報出せよ。
・足りない情報を記述すると、製作しているアプリAで他のアプリBの操作を自動で行う。
上記記述が無くて申し訳なかったです。

ちなみに
ScreenToClientを使用前はアプリBのボタンの上にカーソルが動いたが
使用後はアプリBのボタンとは違う場所にカーソルが動く。
0913デフォルトの名無しさん2008/07/04(金) 10:13:18
ちょっとはスクリーン座標とクライアント座標の違いを調べろ
SendMessageの前ってのは、

SetCursorPos(・・・
::ScreenToClient(・・・  ←ここに入れるんだぞ?
::SendMessage(・・・
0914デフォルトの名無しさん2008/07/04(金) 10:14:33
つーか座標使いまわすなら保存しとけや
0915デフォルトの名無しさん2008/07/04(金) 10:21:16
>・足りない情報を記述すると、製作しているアプリAで他のアプリBの操作を自動で行う。
>上記記述が無くて申し訳なかったです。

もうバカかと。
そのくらいわかってるよ。
足りないのは、具体的に失敗したコードをだしたり、
そのアプリBで使ってるタブコントロールは標準のものなのかとか、

なんでタブコントロールで動作しないかというと、
タブコントロールはボタンクリックしたらどのタブが押されたのか調べるために
メッセージ内のマウス座標を使ってるのに、その座標指定が間違ってるから。
で、こっちでアプリAとアプリBをつくり、実際に>>895のコードにScreenTo・・・を
追加してちゃんと動くことを確認してるんだっての。
09168952008/07/04(金) 10:21:29
うわぁ〜めっちゃもうしわけないっす。
ご指摘どおりやったらできました。。。

勉強になりました。ありがとうございます。。。。。。。。。
09178952008/07/04(金) 10:57:33
>>915
最初にScreenToClientを指摘受けた時に
WindowFromPointの後、SetCursorPosの前に追加して動作しなかったのは
マウスカーソルの位置が問題ですか?

マウスカーソルの位置以外は同じ動作すると思ったのですが。。。
0918デフォルトの名無しさん2008/07/04(金) 11:28:20
わからん、SetCursorPosそのものを無くしても動作するけどな。
0919デフォルトの名無しさん2008/07/04(金) 12:27:55
Windows+Rで表示される「ファイル名を指定して実行」はどのようなAPIを使って指定されたファイル名を実行しているのですか?
0920デフォルトの名無しさん2008/07/04(金) 12:33:59
ShellExecuteじゃね?
0921デフォルトの名無しさん2008/07/04(金) 13:46:00
ShowWindow(SW_HIDE)を
SendMessageを使って書くにはどうすればいいでしょう。
0922デフォルトの名無しさん2008/07/04(金) 13:50:29
ShowWindow(hWnd, SW_HIDE)だべ?
SendMessageじゃ無理だと思うけど、
メッセージにしたい理由はなによ。
0923デフォルトの名無しさん2008/07/04(金) 13:52:33
SendMessage(hwnd, WM_CLOSE, 0, 0);
0924デフォルトの名無しさん2008/07/04(金) 14:07:14
OutputDebugString関数で出力ウィンドウに文字列を出力できますが、
このウィンドウをクリアするAPIはあるでしょうか?
Visual C++ 2008 Express Editionを使っています。
09259212008/07/04(金) 14:29:46
ありがとうございます。

>>922
無理ですかね。
それっぽい、SendMessage(hWnd, WM_SHOWWINDOW, SW_HIDE, 0)ではダメでした。
子ウィンドウを非表示にした瞬間に親ウィンドウに
再描画メッセージが来て欲しく質問しました。

>>923
それで行けますかね。実験してみます。
0926デフォルトの名無しさん2008/07/04(金) 14:33:16
>>925
再描画が欲しければInvalidateRect
急ぎならその直後にUpdateWindow
09279212008/07/04(金) 14:51:22
>>926
UpdateWindowでできました。
InvalidateRectは使わなくても表示されました。
SW_HIDEでPostされた無効リージョンを、
UpdateWindowにより前倒しでSendの形で行われる感じなんですかね。

お答えくださったみなさま、ありがとうございました。
0928デフォルトの名無しさん2008/07/04(金) 16:34:23
>>920
どうもありがとうございます。
第3引数に"notepad hoge.txt"を渡したときになにもおきないのですが態々分割してやらなきゃいけないのでしょうか?
http://homepage1.nifty.com/bee/diary/2004b.htmlにはパラメータはひとまとめで指定できると書いてあったのですが。
0929デフォルトの名無しさん2008/07/04(金) 16:39:09
>>928
カレントディレクトリとか大丈夫かね
0930デフォルトの名無しさん2008/07/04(金) 16:39:44
c:\に置いて
notepad c:\hoge.txt
とかやってみては
0931デフォルトの名無しさん2008/07/04(金) 16:51:55
>>924
Standard以降ならOutputDebugString(_T("$COMMAND(clear)"))で出来るからお金出して買おうね
0932デフォルトの名無しさん2008/07/04(金) 16:55:51
SelectObjectって、使った後は、
以前のオブジェクトに戻せってあるけど、
CreateCompatibleDCで作った、
そのウィンドウ専用のメモリDCでも戻さないといけないの?
0933デフォルトの名無しさん2008/07/04(金) 17:08:38
>>932
つべこべ考えないで「戻せ」と書かれていればそれに従って戻しておけばいいんだよ
余計な詮索をしてたまたま規定外の動作が通ったとしても将来のWindowsで動くとは限らないだろ
0934デフォルトの名無しさん2008/07/04(金) 18:34:16
いちいち戻すのが面倒なら最初にSaveDCしといて最後にRestoreDCしてから破棄すればOK
0935デフォルトの名無しさん2008/07/04(金) 19:24:08
知らないならレスしないでください
0936デフォルトの名無しさん2008/07/04(金) 21:44:21
int len = GetWindowTextLength(handle)

これでリッチエディット"RICHEDIT"から文字数取得しようと思ったんだけど
大きい文字列だと32767とか間違った値がでるんだけど
どうすればいい?
0937デフォルトの名無しさん2008/07/04(金) 22:00:17
>>932
DCに選択したままのオブジェクトはDeleteObjectできない。
だからDeleteObjectするために選択を外さないといけないんだけど、
そのためには「何か別のものを選択する」しか方法がない。
一番手っ取り早い方法が、元あったものを戻すことだってだけのこと。

元のオブジェクトじゃなくて適当なシステムオブジェクト戻しても構わないし
極端な話、DeleteObjectする気がなければそのまま放っといてもいい。
0938デフォルトの名無しさん2008/07/04(金) 22:17:33
> 元のオブジェクトじゃなくて適当なシステムオブジェクト戻しても構わないし
> 極端な話、DeleteObjectする気がなければそのまま放っといてもいい。

こういうお馬鹿な考えだとOSがバージョンアップした時に動かなくなるんだよな。
0939デフォルトの名無しさん2008/07/04(金) 22:23:03
てか、ちゃんとデリートするなりしないとリソースリークするんじゃね?
0940デフォルトの名無しさん2008/07/04(金) 23:36:07
当たり前
0941デフォルトの名無しさん2008/07/05(土) 00:24:39
極端な話、ウンコする気がなければトイレ作らなくてもいい。
0942デフォルトの名無しさん2008/07/05(土) 00:50:01
必ずしもDeleteする必要があるとは限らないだろう。
たとえばGetStockObjectしたものだったらDelete不要だから
DCに選択したままでも問題ない。

まあ、いるいらないにかかわらず「必ず元に戻す」と
作法として徹底するのはありだし、俺もそうしてるけどさ。
何でそうするのかって原理を知っといて損はないよ。
0943デフォルトの名無しさん2008/07/05(土) 04:23:06
> DCに選択したままのオブジェクトはDeleteObjectできない。
いつの時代の話だ
0944デフォルトの名無しさん2008/07/05(土) 04:44:03
1万年後
0945デフォルトの名無しさん2008/07/05(土) 12:19:28
一万年と二千年後も
0946デフォルトの名無しさん2008/07/05(土) 12:21:21
え?出来ないんじゃないの?
俺、いつも、ちゃんとオブジェクト戻してからデリってるけど。
0947デフォルトの名無しさん2008/07/05(土) 12:54:30
Windowsをログオフできなくする裏技ない?
0948デフォルトの名無しさん2008/07/05(土) 12:55:02
>>947
電源OFF
0949デフォルトの名無しさん2008/07/05(土) 12:58:04
そんな穴、天下のMS殿の製品には存在しないのですよ
0950デフォルトの名無しさん2008/07/05(土) 13:04:01
>>949
ログオンは自動にできるけどな。
0951デフォルトの名無しさん2008/07/05(土) 17:36:44
>>947
ポリシーとかレジストリでログオフメニューを消せたような気がするけど、自信ない。
クエリエンドセッションで断ったらどうなるんだっけ?
0952デフォルトの名無しさん2008/07/05(土) 19:50:35
ウィンドウメッセージ (WM_xxx) をカタカナで書く人って頭悪そうに見えちゃうよね。
0953デフォルトの名無しさん2008/07/05(土) 20:20:13
ウインドウメッセージ_クリエイトが来たところで、なんて見たこと無いが……
0954デフォルトの名無しさん2008/07/05(土) 20:24:22
WM_QUERYENDSESSION
0955デフォルトの名無しさん2008/07/05(土) 21:09:58
全角アルファベットよりましな気がするのはなぜだろう
0956デフォルトの名無しさん2008/07/05(土) 21:20:52
WM_QUITとかWM_CREATEとか?
0957デフォルトの名無しさん2008/07/05(土) 21:38:40
Unicodeに設定してコマンドライン引数で文字列を与えて表示させると、
■■みたいなのがでて、表示がおかしくなります。
マルチバイト文字だとうまくいくのですが。
何がおかしいのでしょうorz

ソースはこんなの。
wsprintf(GlobalLock(hMem), TEXT("コマンドライン引数=%s"), lpCmdLine);
0958デフォルトの名無しさん2008/07/05(土) 21:42:14
もしかしなくてもコマンドライン引数がLPSTRだったりしてるかな?
0959デフォルトの名無しさん2008/07/05(土) 21:47:30
>>958
その通りです……何か変更できたりするんですか?
0960デフォルトの名無しさん2008/07/05(土) 21:56:14
WinMainのウニコード版ってあったっけ?
0961デフォルトの名無しさん2008/07/05(土) 22:05:25
wWinMainかな。
0962デフォルトの名無しさん2008/07/05(土) 22:10:01
>>960
wWinMain
09639012008/07/05(土) 23:32:55
>>903
ありがとうございます!なんとなく分かりました。
0964デフォルトの名無しさん2008/07/06(日) 00:09:38
>>961-962
ありがとうございました。
解決しました。
0965デフォルトの名無しさん2008/07/06(日) 09:05:48
草生やすなー
0966デフォルトの名無しさん2008/07/06(日) 09:23:44
草生 やす って誰?
0967デフォルトの名無しさん2008/07/06(日) 09:28:55
草生 やすな だよ。
0968デフォルトの名無しさん2008/07/06(日) 12:02:11
私は今C++を勉強中で、WIN32を使ったアプリをC++のクラスなどを使った形式でコーディングしたいと考えています。
そこでgoogle検索してみたところ、C言語形式のコーディング(関数形式?)の解説サイトばかりでした。

どなたかC++のクラス機能を上手く使ったWINDOWSプログラミングを公開しているサイト、もしくはサンプルなどをご紹介頂けないでしょうか。
0969デフォルトの名無しさん2008/07/06(日) 12:03:25
>>968
C#おすすめ
0970デフォルトの名無しさん2008/07/06(日) 12:17:54
たいてのサンプルはCで解説してあるから
それが使えないようだと先やって行けない。
最初から別の道へ進むことをお勧めします。
0971デフォルトの名無しさん2008/07/06(日) 12:33:55
Win32はCから呼ばれることを前提に作られてるからねー
0972デフォルトの名無しさん2008/07/06(日) 12:38:41
WTL使えばC++で組んだ気になれる。
0973デフォルトの名無しさん2008/07/06(日) 13:00:10
eGUI++という名前通りエグイ物もあるぞ
0974デフォルトの名無しさん2008/07/06(日) 13:06:38
>>966
いったい誰だよwwwww w
0975デフォルトの名無しさん2008/07/06(日) 13:08:32
>>968
Win32APIをC++でラップすることから始めてみることを勧める。
0976デフォルトの名無しさん2008/07/06(日) 13:25:23
「メッセージハンドリングの実装で躓く」に1セント
0977デフォルトの名無しさん2008/07/06(日) 13:54:50
MFCがあるだろうが
0978デフォルトの名無しさん2008/07/06(日) 14:01:58
>>968
今からC++/Win32を勉強するなんて馬鹿
時間を無駄にするなよ
0979デフォルトの名無しさん2008/07/06(日) 14:07:50
じゃあなにすればいいのさ
0980デフォルトの名無しさん2008/07/06(日) 14:08:42
Dでもやっとけ
0981デフォルトの名無しさん2008/07/06(日) 15:23:33
C++/Win32もやっといた方がいいでしょ
0982デフォルトの名無しさん2008/07/06(日) 15:30:08
この流れ嫌いじゃないw

ところでちょっと聞きたいことがあるんだが、
設定ファイルとかの定義ファイルを扱うとき
レジストリ弄りたく無くて、GetPrivateProfile*使ってたんだけど
処理速度が少し低速気味でもう少し処理速度を早くしたいと
思っているんだが。。。
※但し、Reg*系APIを使わない前提

こういう時って皆どうやってる?
※例えば、独自のバイナリ構成して
それを設定ファイルとして触ってるとか。
0983デフォルトの名無しさん2008/07/06(日) 15:39:38
内容が数値とかBOOLなんかメインなら構造体作ってベタ書き。
文字列主体ならsqliteとか適当に。

場合によってはスクリプト言語組み込んで設定スクリプトで吐き出す
09849822008/07/06(日) 15:45:07
>>983
数値系は構造体で一気に読み出せばいいとは考えてたんだが、
文字列はなるほど。スクリプトを組み込むと言う手があったか

0985デフォルトの名無しさん2008/07/06(日) 16:03:03
こうして統一性の無い設定ファイルが生まれるのであった。
09869822008/07/06(日) 16:05:06
ちょwwwwwwwwwwwwwww
0987デフォルトの名無しさん2008/07/06(日) 16:06:40
いやほんと。設定ファイルみたいなものにOS標準のサービス/APIを使わないのはどうかと思うよ。
0988デフォルトの名無しさん2008/07/06(日) 16:13:00
OS標準ならレジストリ一択だろ。
INI弄る関数は互換性のために残ってるだけだし。
09899822008/07/06(日) 16:17:36
>>987,988
なるほどそうか。
レジストリは一部のユーザが嫌がりそうだから
極力使わないようにって感じだったんだが。。。


ともかく設定ファイルアクセスによるオーバヘッドは
無視できるレベルだから独自で云々とかやめる事にして
現状のままでいくことにするよ。
教えてくれてありがとう
0990デフォルトの名無しさん2008/07/06(日) 16:26:30
今時レジストリを嫌がる奴なんてWin16時代のオッサンだろ
0991デフォルトの名無しさん2008/07/06(日) 16:33:03
端末ごとに関連付けされているエディタを
識別して開くにはどうすればいいんでしょうか?

【 例 】
*.txtが秀丸に関連付けされていた場合
秀丸エディタでオープンする
逆にnotepadに関連付けされている場合・・・略

お願いします
0992デフォルトの名無しさん2008/07/06(日) 16:38:32
クソバレーの所為でコードギアスが遅れそうじゃねーか!!!!!!!!
0993デフォルトの名無しさん2008/07/06(日) 16:38:44
ShellExecute
0994デフォルトの名無しさん2008/07/06(日) 16:43:34
設定とかXMLでいいじゃん
0995デフォルトの名無しさん2008/07/06(日) 16:44:51
>>993
ありがとうございます
0996デフォルトの名無しさん2008/07/06(日) 16:54:42
日本バレーってほんとホームグラウンドじゃないと
勝てないんだな 7連敗とかwwwwwwwwwwwwww
0997デフォルトの名無しさん2008/07/06(日) 16:58:09
俺はレジストリ弄りたくないな。なんか間違えてたら怖い。
0998デフォルトの名無しさん2008/07/06(日) 17:02:59
ギアスおもしれええええええええええええええええ
おまいらもみようぜwwwwwwwwwwwwww
0999デフォルトの名無しさん2008/07/06(日) 17:04:46
俺んちにはテレビなんていう南朝鮮の侵略兵器は置いてねーんだよ!
1000デフォルトの名無しさん2008/07/06(日) 17:08:57
ゴミソフトにレジストリ汚されたくないというのがあるからな
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。