■過去ログ置き場に戻る■ 1- 前250 次250 最新50


[memo] "9999999999_00.html#R20" という感じで、URLの最後に "#RレスNo" を追加すると幸せになれます。

Win32API質問箱 Build48
251 名前:デフォルトの名無しさん :2006/12/24(日) 01:13:58
>>248
VsCompletorPaneっていうクラス名のウィンドウを出してる。確認してみよ。

252 名前:デフォルトの名無しさん :2006/12/24(日) 01:51:47
>>238
シェル名前空間を通せば普通のフォルダと同じように扱える。
http://pc8.2ch.net/test/read.cgi/tech/1124559962/252-253

253 名前:248 :2006/12/24(日) 01:59:34
いろいろ試してみます。
ありがとうございました。

254 名前:199 :2006/12/24(日) 02:36:41
ありがとうございました。

255 名前:デフォルトの名無しさん :2006/12/24(日) 02:44:18
スレッドが実行中かどうか調べられるAPIありますか?

SuspendThreadやResumeThreadの戻り値であるサスペンドカウントを
スレッドの状態を変えることなく調べたいです

256 名前:201 :2006/12/24(日) 04:09:58
zipfldr.dll は使い方がよくわからなかったので
zlib を使うことにしました。
お答え頂いた方々、ありがとうございました。

257 名前:デフォルトの名無しさん :2006/12/24(日) 04:14:38
>>255
WaitForSingleObject

258 名前:デフォルトの名無しさん :2006/12/24(日) 04:27:47
>>257
WaitForSingleObjectはスレッドが終了したかどうかの判定には使えるけど
実行中か一時停止中(SuspendThreadなどによる)かの判定には使えない希ガス

259 名前:デフォルトの名無しさん :2006/12/24(日) 08:57:25
>>255
http://pc8.2ch.net/test/read.cgi/tech/1157814833/38

260 名前:デフォルトの名無しさん :2006/12/24(日) 12:04:02
( ´,_ゝ`)プッ ねーのかよ

261 名前:デフォルトの名無しさん :2006/12/24(日) 12:20:26
そうすると.netのSystem.Threading.Thread.ThreadStateはどうやって提供されてるんだ?
秘蔵のAPIってやつ?

262 名前:デフォルトの名無しさん :2006/12/24(日) 12:27:45
>>261
自分でカウントしてんじゃねーの?

263 名前:デフォルトの名無しさん :2006/12/24(日) 14:00:29
CSliderCtrlでスライダーのページエリア(?)をクリックするとページサイズだけそちらに移動しますよね?
そうじゃなくてクリックした位置にジャンプして欲しいのですが、どのようにやったらよいか教えていただけますか?
よろしくお願いします

264 名前:255 :2006/12/24(日) 14:36:41
GetThreadContextって関数の説明に

You cannot get a valid context for a running thread.
Use the SuspendThread function to suspend the thread before calling GetThreadContext.

って書いてあってこれを利用したらいけるかと思ったらSuspendThread呼び出さなくても成功しちゃってるorz

265 名前:デフォルトの名無しさん :2006/12/24(日) 14:52:00
1CPUだったら必ず成功する気がせんでもない

266 名前:デフォルトの名無しさん :2006/12/24(日) 15:00:04
アプリケーション自身がアクティブかどうかって、どうやって判断するんだっけ・・・

267 名前:デフォルトの名無しさん :2006/12/24(日) 16:01:20
BOOL __stdcall AmIActive?(void)

268 名前:デフォルトの名無しさん :2006/12/24(日) 16:15:39
>>263
やったことないが、pageup/downが来たらマウスの位置調べてthumbtrack投げなおすとかどう?

269 名前:デフォルトの名無しさん :2006/12/24(日) 16:38:41
>>266
(1)フォアグラウンドウィンドウが自プロセスのものかどうかを見る
(2)WM_ACTIVATEAPPだかなんだかを拾う
のどちらかじゃねえかな
他に簡単な手があったら教えて

270 名前:266 :2006/12/24(日) 16:46:03
これでできたっぽいっす
GetActiveWindow() == GetTopLevelWindow(hWnd)

271 名前:デフォルトの名無しさん :2006/12/24(日) 16:49:32
いまだに__stdcallの意味が理解できない俺

272 名前:デフォルトの名無しさん :2006/12/24(日) 17:32:45
おれも

273 名前:デフォルトの名無しさん :2006/12/24(日) 17:59:57
じゃあ __pascal と __cdecl はわかるのか

274 名前:271 :2006/12/24(日) 18:26:54
わからないぜw
ただpascalは16ビット時代のなんちゃらって記憶がかすかに
cdeclはランタイムライブラリ?

わかんねwwwwwwww

275 名前:271 :2006/12/24(日) 18:27:29
クリスマスに俺何してんだろうなorz

276 名前:デフォルトの名無しさん :2006/12/24(日) 18:44:13
>>274
引数の積み方と後処理をどっちでやるか、という話

277 名前:255 :2006/12/24(日) 18:51:14
GetThreadTimesって関数見つけたんですけどSleep(0)くらいじゃ変化なしorz
bool is_run(HANDLE h) {
 FILETIME create, exit, kernel1, kernel2, user;
 GetThreadTimes(h, &create, &exit, &kernel1, &user);
 Sleep(0);
 GetThreadTimes(h, &create, &exit, &kernel2, &user);
 returnkernel1.dwLowDateTime != kernel2.dwLowDateTime ||
     kernel1.dwHighDateTime!=kernel2.dwHighDateTime;
}

278 名前:デフォルトの名無しさん :2006/12/24(日) 19:01:56
手段が目的に変わりつつある予感。
サスペンドカウントを調べたい理由って何?

279 名前:255 :2006/12/24(日) 19:07:11
>>278
プロセスのHANDLEをラップしたクラスを作ってます

280 名前:デフォルトの名無しさん :2006/12/24(日) 19:22:55
>>279
理由になってねー

281 名前:デフォルトの名無しさん :2006/12/24(日) 20:49:27
>>279
だからなんでそんなのを作ってんだよって話なわけだが。

282 名前:255 :2006/12/24(日) 20:50:51
ビールスを作ってます

283 名前:デフォルトの名無しさん :2006/12/24(日) 21:00:21
>>264
ヒント: valid

284 名前:デフォルトの名無しさん :2006/12/25(月) 01:43:19
>271
呼出規約でぐぐれ
パラメータの渡し方とスタックのクリーンアップの責任の所在

285 名前:デフォルトの名無しさん :2006/12/25(月) 02:08:36
>>268
ありがとうございます。
やってみます。


286 名前:デフォルトの名無しさん :2006/12/25(月) 02:29:35
>271
シグネチャの不一致を利用した地味で効果的な嫌がらせ

287 名前:デフォルトの名無しさん :2006/12/25(月) 02:35:04
ごちゃごちゃ言ってるとNearポインタ&Farポインタ復活さすぞ!

288 名前:デフォルトの名無しさん :2006/12/25(月) 02:46:49
ごめんなさいもうしないので許して

289 名前:デフォルトの名無しさん :2006/12/25(月) 13:07:01
変声機を作りたいのですが、どなたかそれに関しての良いAPIを知っていますでしょうか。

290 名前:デフォルトの名無しさん :2006/12/25(月) 13:54:46
APIつーか、SDKのサンプルに無かったっけ

291 名前:デフォルトの名無しさん :2006/12/25(月) 14:40:24
なんちゃってエクスプローラを作るのですが、
普通のエクスプローラの様に、

デスクトップ
 マイ ドキュメント
 マイ コンピュータ
  A:
  C:
  H:
  コントロール パネル
 マイ ネットワーク
 ゴミ箱
  :

のリストを列挙する関数とかあります?
あるなら、その関数名を教えてください・・・

292 名前:デフォルトの名無しさん :2006/12/25(月) 15:31:32
SHGetDesktopFolder
名前の通りデスクトップ(へのインタフェース)を返す。

293 名前:デフォルトの名無しさん :2006/12/25(月) 17:33:23
ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/programmersguide/shell_basics/namespace.asp
これもよく読んどくといいよ

294 名前:291 :2006/12/25(月) 18:26:27
>>292
>>293
どうもありがとうございます!
調査していきます。

295 名前:デフォルトの名無しさん :2006/12/25(月) 23:45:16
x64では呼び出し規約が統一されてめでたい限り。
というかもともとx86以外は1つしかないんだけど(x86のみ過去とのしがらみで
ごちゃごちゃあった)

296 名前:124 :2006/12/26(火) 00:58:00
ええと、ヘンなコードだったかもしれないですが
EnableWindowはそれほど関係なかったみたいです。

x.cをこういうのにしてみたら、結局同じような現象が起きます。
ただ、戻ってきてもディスエーブルされなくなりましたが・・・
WaitForSingleObjectの間にシステムから
ウィンドウプロシージャが呼び出されてるのか、と思って
チェック用のBeepを入れてみたんですが鳴りません。

少し時間を置いた時にディスエーブルになる、
というが何とも不思議・・・

システムが2つのウィンドウが同時にイネーブルにならないように
定期的にチェックしているのだろうか?

<<x.c>>
#include <windows.h>

void execute(HWND hwnd){
    STARTUPINFO si;
    PROCESS_INFORMATION pi;
    ZeroMemory(&si, sizeof(si));
    CreateProcessA(NULL, "C:\\DATA\\PROG\\WIN32\\ディスエーブル\\msgbox.exe", NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);
    WaitForSingleObject(pi.hProcess, INFINITE);
}

LRESULT CALLBACK MyWindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam){
    LRESULT lr;
    Beep(200, 100);
    lr = DefWindowProcA(hWnd, uMsg, wParam, lParam);
    return lr;

297 名前:124 :2006/12/26(火) 00:59:07
124
#pragma argsused
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE b, LPSTR c, int d){
    WNDCLASSA wc;
    HWND hWndMain;
    MSG msg;

    ZeroMemory(&wc, sizeof(wc));
    wc.lpfnWndProc = MyWindowProc;
    wc.hbrBackground = (HBRUSH)COLOR_BACKGROUND;
    wc.lpszClassName = "MyClass";
    RegisterClassA(&wc);
    hWndMain = CreateWindowExA(0, "MyClass", "", WS_VISIBLE | WS_SYSMENU, 0, 0, 100, 100, NULL, NULL, hInstance, NULL);
    for(;;){
        if (!IsWindow(hWndMain)){
            break;
        }
        GetMessageA(&msg, NULL, 0, -1);
        TranslateMessage(&msg);
        DispatchMessageA(&msg);
        if (msg.message == WM_KEYDOWN){
            if (msg.wParam == VK_RETURN){
                execute(hWndMain);
            }
        }
    }
    return 0;
}

298 名前:デフォルトの名無しさん :2006/12/26(火) 01:04:26
>ディスエーブル
>イネーブル

それはギャグで言っているのか。

299 名前:デフォルトの名無しさん :2006/12/26(火) 01:06:52
ほんとはなんて読むの?

300 名前:デフォルトの名無しさん :2006/12/26(火) 01:07:29
エナブレ
ディサブレ

301 名前:デフォルトの名無しさん :2006/12/26(火) 01:24:05
ディスエーブル、イネーブルであってるぞ?


302 名前:デフォルトの名無しさん :2006/12/26(火) 01:26:52
カタカナに直すより原語表記か和訳の方が*俺*は見やすい。

303 名前:デフォルトの名無しさん :2006/12/26(火) 01:32:42
メッセージループを止めた状態をディスエイブルとは呼ばない。

304 名前:デフォルトの名無しさん :2006/12/26(火) 02:42:16
タスクマネジャで状態を監視し、応答なしの場合、
他のアプリケーションウィンドウをかぶせてぐりぐりしてみる。
 -->フレームが再描画描されるならゴーストが出来ている

305 名前:デフォルトの名無しさん :2006/12/26(火) 03:43:41
いねぼー
ディせーぼー


306 名前:デフォルトの名無しさん :2006/12/26(火) 05:55:57
最近、マウスをダブルクリックするとパソコンから猫の鳴き声
みたいなのが聞こえてきます(キッキッみたいな感じ)
猫の鳴き声を消すAPI教えてください

307 名前:デフォルトの名無しさん :2006/12/26(火) 07:29:49
ニャー

308 名前:デフォルトの名無しさん :2006/12/26(火) 09:33:52
ディセーブルキャットサウンド(フォールス);

309 名前:デフォルトの名無しさん :2006/12/26(火) 10:21:56
>>306
ExitWindowsEx(EWX_POWEROFF, 0)

310 名前:デフォルトの名無しさん :2006/12/26(火) 10:47:58
KillCats( lpCATS );

311 名前:デフォルトの名無しさん :2006/12/26(火) 11:12:55
case WM_KILLCATS:
/* :P */
return (0);


312 名前:デフォルトの名無しさん :2006/12/26(火) 11:15:58
>>308
ディセーーーーブルをファルセだと有効になるにゃん


313 名前:デフォルトの名無しさん :2006/12/26(火) 14:33:11
CDからCD-TEXTを読み出す方法を教えてください
Win32APIでできませんか?

314 名前:デフォルトの名無しさん :2006/12/26(火) 14:37:18
できる

315 名前:デフォルトの名無しさん :2006/12/26(火) 15:07:17
どうやって?

316 名前:デフォルトの名無しさん :2006/12/26(火) 15:37:19
ググレ

317 名前:デフォルトの名無しさん :2006/12/26(火) 15:44:33
質問するとこなんだから、知ってるんなら答えてやればいいじゃん
俺ぁ知らんけど

318 名前:デフォルトの名無しさん :2006/12/26(火) 17:03:44
>>317
>>1

319 名前:デフォルトの名無しさん :2006/12/26(火) 17:22:07
普通に↓とかでは。
fopen("E\hoge.txt", "r");

320 名前:デフォルトの名無しさん :2006/12/26(火) 17:23:20
>>319
ちょwwwCD-TEXTの意味わかってるかwww
気になったからググって見たが「CD-TEXT API」だのじゃそれらしい情報も見当たらんなぁ

321 名前:デフォルトの名無しさん :2006/12/26(火) 17:38:45
red book

322 名前:デフォルトの名無しさん :2006/12/26(火) 17:39:15
ドライブによって読めたり読めなかったりするとこみると
ASPIドライバ直接呼ぶんじゃね?

323 名前:デフォルトの名無しさん :2006/12/26(火) 17:42:23
ぶっちゃけ>>1に書いてある通りにすれば20秒で見つかる件について

324 名前:デフォルトの名無しさん :2006/12/26(火) 17:45:19
なんだよAPIドライバってw

325 名前:デフォルトの名無しさん :2006/12/26(火) 17:47:52
>>324

326 名前:デフォルトの名無しさん :2006/12/26(火) 17:52:11
>>324

327 名前:デフォルトの名無しさん :2006/12/26(火) 17:53:00
>>324

328 名前:デフォルトの名無しさん :2006/12/26(火) 18:03:32
>>324

329 名前:デフォルトの名無しさん :2006/12/26(火) 18:04:39
>>313
DeviceIoControlを使え。

それ以上はWin32apiでは無いので。


330 名前:デフォルトの名無しさん :2006/12/26(火) 18:05:44
何でもクラス化するのが好きな俺ですがウィンドウシステムを
サブクラス化するときにSetWindowLongにメンバ関数をいれる
ことが出来なくなってしまいました。?

331 名前:デフォルトの名無しさん :2006/12/26(火) 18:12:32
エスパーの方出番です

332 名前:デフォルトの名無しさん :2006/12/26(火) 18:14:15
>>324には今年一番ワロタ

>>331
無理www

333 名前:エスパー :2006/12/26(火) 18:30:41
>>330
???
staticメンバ関数(静的メンバ関数)にしてみれば?
http://techtips.belution.com/ja/vc/0009/

334 名前:デフォルトの名無しさん :2006/12/26(火) 18:38:57
使用しているPCが。Windows日本語版かどうかを判別することはできますでしょうか?
VC++6.0です。


335 名前:デフォルトの名無しさん :2006/12/26(火) 19:08:38
>>334
何を要求しているかわからないけど、
GetSystemDefaultLangIDとかじゃだめ?

LCIDを求めるんじゃなく?

336 名前:330 :2006/12/26(火) 20:15:45
>>333
それです!。
私の文が読みにくかったけど答えてくれてありがとうございます!!。

337 名前:デフォルトの名無しさん :2006/12/26(火) 21:42:38
SDKのプログラミングでグリッドコントロール(読み取り専用でよい)を使うにはどうすればいいですか?
リストビューを使うのでしょうか?

XP、VC6


338 名前:デフォルトの名無しさん :2006/12/26(火) 21:53:14
はい

339 名前:デフォルトの名無しさん :2006/12/26(火) 21:56:19
他にはそういったコントロールは用意されていないのでしょうか?

340 名前:デフォルトの名無しさん :2006/12/26(火) 21:58:04
1. リストビュー
2. Excelワークシート
3. 自作

341 名前:デフォルトの名無しさん :2006/12/26(火) 22:01:09
やはりリストビューですか。自作できるほどのスキルはありませんし。
MSFlexGridというのはVB用ですか?

342 名前:デフォルトの名無しさん :2006/12/26(火) 22:06:38
技術的にはVC++でも使えるはず。
ライセンスがどうなっているか俺は知らないから、適当に調べてくれ。

343 名前:デフォルトの名無しさん :2006/12/26(火) 22:17:56
ダイアログエディタでMsFlexGridを貼り付けるところまでは出来ました。
実行すると表示されませんけど。

344 名前:デフォルトの名無しさん :2006/12/26(火) 22:30:32
やっぱりリストビューでなんとか頑張ります

345 名前:デフォルトの名無しさん :2006/12/26(火) 22:48:45
>>344
MFCスレで、CListCtrlをレポート形式で扱う方法を質問したほうがいいかもね。

346 名前:デフォルトの名無しさん :2006/12/26(火) 22:51:27
>>345
>>337
>SDKのプログラミングで

347 名前:デフォルトの名無しさん :2006/12/26(火) 23:14:03
MFC(笑)

348 名前:デフォルトの名無しさん :2006/12/27(水) 00:37:02
VS2005でのMFCへの対応を見ると笑われてもしょうがない気がするけど
作るのに最低一ヶ月は要するようなWindowsアプリを作る場合、みんな
どのライブラリ使ってるの?

349 名前:デフォルトの名無しさん :2006/12/27(水) 00:40:56
>>348
UIなら、WTLを使ってます。MFCは今更使わないです。

350 名前:デフォルトの名無しさん :2006/12/27(水) 01:01:13
おれ描画能力とかいらんアプリしかつくんないからC#でつくる。

351 名前:デフォルトの名無しさん :2006/12/27(水) 02:06:21
open source に dot netですか。
ぐぐってちょっとソース見た限りMFCと似てる気がするけど、ちょっとWTLで遊んでみるね。
ありがとう >349-350

352 名前:デフォルトの名無しさん :2006/12/27(水) 09:19:33
GDI+で日本語のOpenTypeフォントは使えないんですか?
まさか流石にそんなことないと思いますが、自分の環境だと使えなかったので、質問してみます。

353 名前:334 :2006/12/27(水) 11:04:57
>>335
言語IDを取得できました。
ありがとうございました。


354 名前:デフォルトの名無しさん :2006/12/27(水) 11:20:54
>>352
Font名を指定するタイプのコンストラクタを使うと
でたらめのフォントを作って平然としてるっぽい。

LOGFONTを受け取る方のコンストラクタに、GDIで作った
Fontから取り出したLOGFONT構造体を渡してみたら
TrueTypeじゃないというエラーになった。
駄目なのかもね。

355 名前:デフォルトの名無しさん :2006/12/27(水) 11:40:14
>>352
FontFamily::GetFamilies でも OpenTypeのフォントは出てこないな。


356 名前:306 :2006/12/27(水) 11:49:17
>>307-3012
ありがとうございました。ドライバーで本体を分解したところ
子猫がでてきました。解決しました

357 名前:デフォルトの名無しさん :2006/12/27(水) 12:00:33
>>3012に期待

358 名前:デフォルトの名無しさん :2006/12/27(水) 12:02:12
>>3012期待してるぞ

359 名前:デフォルトの名無しさん :2006/12/27(水) 12:15:39
(´Д`;)無理

360 名前:3012 :2006/12/27(水) 13:08:19
呼んだ?

361 名前:デフォルトの名無しさん :2006/12/27(水) 14:19:32
先生方に質問です!

デスクトップなどから(マウスクリックなど普通の方法で)アプリケーションを起動するとき、
WinXPだとAPIフックで、explorer.exeからCreateProcess(W)が呼ばれているのが検知できますが、
Win2Kだと同じコードでも監視に引っかかりません。

madCodeHookライブラリのサンプルではWinExecとCreateProcessで監視に成功しているようなので、
呼ばれていないわけではないと思うのですが、
Win2Kでプロセスの起動を監視するのはXpとは違う細工が必要なんでしょうか?
(2kはVMPlayer上ですけど権限は両方adminで、MessageBoxなどはちゃんと検知出来てます)

362 名前:デフォルトの名無しさん :2006/12/27(水) 15:49:06
APIってバッファのサイズを指定しないといけないのが
いっぱいありますけど、あれはなんで必要なんでしょうか?
自分で関数作るときにはやったことないんですが。

363 名前:デフォルトの名無しさん :2006/12/27(水) 15:52:10
ばっふぁおーばーふろーしたらこまるでしょ

364 名前:デフォルトの名無しさん :2006/12/27(水) 15:58:46
パターン1 引数に大きさを渡すやつ
 APIを呼ぶ言語が C/C++ とは限らないから。

パターン2 構造体に構造体の大きさを必要とするメンバを持つやつ
 構造体サイズでバージョン分けするトリックをかますため。

365 名前:デフォルトの名無しさん :2006/12/27(水) 16:04:09
配列.lengthが使えるって便利だよな

366 名前:デフォルトの名無しさん :2006/12/27(水) 16:32:09
その場合、配列.num[i]とかやらなくても大丈夫?

367 名前:デフォルトの名無しさん :2006/12/27(水) 17:20:27
>>364
1の場合は、むしろCのため。
C++ならどうにでもできるが、どうにもしていない(== Cとして使っている)やつも多いと思う。

368 名前:364 :2006/12/27(水) 17:25:14
>>367
ごめん そのとおりだわ。

APIは呼ばれる言語が確定的でないから、できる限り低級な言語で呼び出せるように設計されている
+ばっふぁおーばーふろー対策
ってことだね

369 名前:デフォルトの名無しさん :2006/12/27(水) 19:21:47
べんきょうになるなぁ

370 名前:デフォルトの名無しさん :2006/12/27(水) 19:48:31
質問させてください。
Overlappedを使った(非同期?重複?)なI/Oを使う場合、
メモリ上にどんどんリクエストがキューイングされていって、
バックグラウンドで逐次実行されている、みたいな感じで理解しているのですが、
これで正しいのでしょうか?
処理の完了を気にせず、ボコボコ連続でWriteFile()なんかをしても
OSが後で仕事しといてくれる、みたいな。

371 名前:デフォルトの名無しさん :2006/12/27(水) 21:43:28
>>370
おりはそう認識してる。

DebugViewでトレースできるんだっけ?

372 名前:デフォルトの名無しさん :2006/12/27(水) 22:13:26
> でたらめのフォントを作って平然としてるっぽい。
CreateFontの仕様そのまんまなのか
> 処理の完了を気にせず、ボコボコ連続でWriteFile()なんかをしても
前の完了は待たないとエラーが起きたとか一部しか書けなかった場合に
まずいんじゃ?

373 名前:デフォルトの名無しさん :2006/12/27(水) 22:32:11
ものすごーく初歩的なことだろうと思うのですが、
ダイアログにIDOKという名前のボタンがあって
これのハンドルを取得するにはどうすればいいんでしょうか?

VC++ & SDK

374 名前:デフォルトの名無しさん :2006/12/27(水) 22:47:15
>>373
この中に答えがあるよ。
ttp://msdn2.microsoft.com/en-us/library/ms644994.aspx
ttp://msdn2.microsoft.com/en-us/library/ms644995.aspx

375 名前:デフォルトの名無しさん :2006/12/27(水) 22:54:23
>>374
異国の言葉で書かれていて読めません

376 名前:デフォルトの名無しさん :2006/12/27(水) 22:58:33
>>375
だからなに?

377 名前:デフォルトの名無しさん :2006/12/27(水) 23:05:58
英語読めない奴はプログラマ辞めちまえ

378 名前:デフォルトの名無しさん :2006/12/27(水) 23:09:53
>>371
レスどうもです。トレースの話は初耳かもしれません。

>>372
確かにそうなんですが、そもそも「リクエストを溜めてくれるのか」が
いまいちハッキリしなかったもので…

どうせなら非同期処理を頼んだ時の成否で判断、ぐらい楽したいですね。
渡した送信バッファ消しちゃったりした時にえらいことになるんでしょうけど。

379 名前:デフォルトの名無しさん :2006/12/28(木) 01:39:11
>>352
OpenTypeフォントにもアウトライン情報がTrueTypeベースな物とPostScriptベースな物があり、
GDI+でサポートされるのは前者だけのようだ。
Office2003あたりについてくるHG正楷書-Proとかが前者のフォント (Office 2000に付いてくるのは
ただのTrueTypeフォントなので話が違う)

ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/fontext_1wmq.asp
にも「ClearType antialiasing は TrueTypeフォントかTrueTypeアウトラインなOpenTypeフォントでしか
効かない」と書かれてるし、「WindowsはOpenTypeをサポートしてます」と言ってる割に、
全然ダメなんじゃねーのという感じだな。たぶんGDIのGetGlyphOutlineも使えないんだろう。

>>354
>でたらめのフォントを作って平然としてるっぽい。

ttp://msdn2.microsoft.com/en-us/library/system.drawing.font.aspx
「Remarks」参照。


380 名前:デフォルトの名無しさん :2006/12/28(木) 02:40:32
APIフックってLoadLibrary関連とGetProcAddressのフックしないとできないんでしょうか?

381 名前:デフォルトの名無しさん :2006/12/28(木) 02:43:48
日本語でおk

382 名前:デフォルトの名無しさん :2006/12/28(木) 06:42:41
>>378
> どうせなら非同期処理を頼んだ時の成否で判断、ぐらい楽したいですね。
エラーが起きたかどうかの判断には時間がかかるかもしれないから
頼んだ時点ではすべて判定できないよ

383 名前:デフォルトの名無しさん :2006/12/28(木) 06:48:22
なんでGetProcAddressをフックする必要があるのか。
APIフックっていうのは本来のAPIの処理を横取りする手法の事。
IAT書き換えとかDLLExportTableの書き換えとかラッパプログラミングとか
APIフックを実現するための方法はいくらでもある。


384 名前:373 :2006/12/28(木) 09:26:16
"コントロールのハンドル"で検索して答えを見つけました

キタ━(゚∀゚)━ ← GetDlgItem(ダイアログのハンドル, IDOKとか);



385 名前:デフォルトの名無しさん :2006/12/28(木) 09:26:25
advanced 嫁と>>1が申しております

単純に、フックを回避してコールされるのを防ぐだけって書いてあるだろうが

386 名前:デフォルトの名無しさん :2006/12/28(木) 10:25:51
流れをぶった切ってスマソ

EnumWindowsで取得したハンドルのプロセス、また実行パスを
取得する方法はありますか?

宜しくお願いします。

387 名前:デフォルトの名無しさん :2006/12/28(木) 10:39:11
>>380
GetProcAddressのフックの必要性を判断できない程度の能力しか無いなら
APIフックなんて危険だから使わない方がいいよ

388 名前:デフォルトの名無しさん :2006/12/28(木) 10:43:04
>>386
GetWindowThreadProcessId
GetWindowModuleFileName

389 名前:デフォルトの名無しさん :2006/12/28(木) 10:49:14
>>388
ありがd。

その二つで試しているのですが、取得できるものとできないものがあり
こまっていますた。

もう少し、ぐぐってみます。


390 名前:デフォルトの名無しさん :2006/12/28(木) 11:24:21
MSがA/Wのマクロ化だけじゃなくてchar/wchar_tもサポートしてくれてたら
ちょっとだけ楽だよなぁと思う年の瀬

#ifdef UNICODE
LoadLibrary(arg) LoadLibraryW(TEXT(arg))
#else
LoadLibrary(arg) LoadLibraryA(TEXT(arg))
#endif

391 名前:デフォルトの名無しさん :2006/12/28(木) 11:28:06
おまえは何がやりたいんだ?

392 名前:デフォルトの名無しさん :2006/12/28(木) 11:34:39
多分 API と STL の共存で std::string 周辺の UNICODE マクロ対応あたりかと…

393 名前:デフォルトの名無しさん :2006/12/28(木) 11:43:17
#ifdef UNICODE
typedef std::wstring string;
#else
typedef std::string string;
#endif

じゃだめなのか?

394 名前:デフォルトの名無しさん :2006/12/28(木) 11:45:15
inline HMODULE LoadLibrary(LPCSTR p) { return ::LoadLibraryA(p); }
inline HMODULE LoadLibrary(LPCWSTR p) { return ::LoadLibraryW(p); }

こんなんなってくれてるとありがたいんだが。

395 名前:デフォルトの名無しさん :2006/12/28(木) 11:55:16
要はwindows.hppなんかが欲しいのか。

うっかりLoadLibrary("hoge")とLoadLibrary(L"hoge")が
混在する可能性もあってお勧めできないな。

NT系は内部WCSだから、ANSI/MBCS版のAPI呼ぶと
中で文字型変換されるからオーバーヘッドが発生するし。

結局TEXTマクロ使うのが一番いいと俺は思う。

396 名前:デフォルトの名無しさん :2006/12/28(木) 14:27:07
>>361
Windows 2000 の SP3 以降(だったっけ?)だと、
互換モードの機能で Explorer の IAT がすでに aclayers.dll の関数に
上書きされてたりする場合があったようななかったような…


397 名前:デフォルトの名無しさん :2006/12/28(木) 15:47:38
SP2だお

398 名前:デフォルトの名無しさん :2006/12/28(木) 15:59:39
>>396
いま確認したら激しくアタリです

仮想マシンで開発環境なんて動かせねえし(ライセンス問題もあるし)
どうあがいても年内に解決できる問題ではありません orz
ほんとうにありがとうございました

399 名前:デフォルトの名無しさん :2006/12/28(木) 16:09:44
と思ったけどjmpの書き換えでなんとかなるっぽい(たぶん
ともあれ、どうもです

400 名前:デフォルトの名無しさん :2006/12/28(木) 16:26:23
LoadLibrary(_T("hoge.dll"));

と書くことに
何の不満があるのか分らない。

こうすりゃ、A/W どっちでも適応できるべ。

401 名前:400 :2006/12/28(木) 16:27:57
リロードしてなかった。すまん。

402 名前:デフォルトの名無しさん :2006/12/28(木) 17:25:06

template<typename Char> void foo(const Char* p)
{
・・・
// Charがcharの場合はA版、wchar_tの場合はW版のAPIを呼びたい
・・・
}

こんなとき>>394みたいなのを用意しないといけないのが面倒くさいよね。

403 名前:デフォルトの名無しさん :2006/12/28(木) 18:17:45
もうAは要らんやろ・・・

404 名前:デフォルトの名無しさん :2006/12/28(木) 18:21:08
工工エエエ(´д`)エエエ工工

405 名前:デフォルトの名無しさん :2006/12/28(木) 19:31:53
フックを勉強しているのですが、下記の例ではIEの最小化ボタンを押下すると
イベントが始まります、これをCtrl+Fが押下された時にフックをかけるように
するにはどのように書いたらいいでしょうか?

// フックするプロシジャー
LRESULT CALLBACK MyCallWndProc(int nCode,WPARAM wParam,LPARAM lParam)
{
 CWPSTRUCT* lp = (CWPSTRUCT*)lParam;
if( nCode == HC_ACTION ){
  switch (lp->message){
   case WM_SYSCOMMAND:
    if ( lp->wParam == SC_MINIMIZE ){
     MessageBox( NULL , "IEを最小化するメッセージの送出2","確認" , MB_OK | MB_TOPMOST );
     lp->wParam = 0;
     lp->message = WM_CLOSE;
    }
    break;
  }
 }
 if ( lp->message == WM_SYSCOMMAND && lp->wParam == SC_MINIMIZE ) lp->message = WM_CLOSE;
 return CallNextHookEx(g_hHookWnd, nCode, wParam, lParam); //次のフックを呼ぶ
}

406 名前:デフォルトの名無しさん :2006/12/28(木) 19:34:19
実際Windows CEではとっくの昔に全廃したし。
>>389
GetWindowModuleFileNameはNT系では他プロセスが作成したウィンドウには使えない
GetWindowThreadProcessIdが失敗することはないはず。

407 名前:デフォルトの名無しさん :2006/12/28(木) 20:01:50
んで、マドンナのrainのPV

http://www.youtube.com/watch?v=KHFxj84aTEk

登場人物に注目ww

408 名前:407 :2006/12/28(木) 20:02:49
スレ間違い
気にしないで

409 名前:デフォルトの名無しさん :2006/12/28(木) 20:03:37
Win32 :FARPROC GetProcAddress( HMODULE hModule, LPCSTR lpProcName);
WinCE:FARPROC GetProcAddress( HMODULE hModule, LPCWSTR lpProcName);

410 名前:デフォルトの名無しさん :2006/12/28(木) 20:28:17
空気読まずに書きこ

NT
EnumProcesses->EnumProcessModules
9X
CreateToolhelp32Snapshot->Module32First->Module32Next
の使い分けとか?

だめかなぁ

411 名前:デフォルトの名無しさん :2006/12/28(木) 20:29:04
おまけ
WinCE version 3.0 and later:FARPROC GetProcAddressA( HMODULE hModule, LPCSTR lpProcName);

412 名前:デフォルトの名無しさん :2006/12/28(木) 20:37:17
>>393
typedef std::basic_string<TCHAR> string;じゃだめなのか?

>>404
MSLU

413 名前:デフォルトの名無しさん :2006/12/28(木) 20:43:11
複数のスクロールバーがある場合
どのバーを動かしたのかを調べるにはどうしたらよいのでしょうか??
よろしくお願いします。

414 名前:デフォルトの名無しさん :2006/12/28(木) 20:47:48
どんな環境での話か書いてくれよ。
WindowsならWindowsとかさ。

415 名前:デフォルトの名無しさん :2006/12/28(木) 20:52:36
>>414
スレタイ嫁。

416 名前:デフォルトの名無しさん :2006/12/28(木) 21:07:26
>>405です
お願いします、これだとコンパイルは通るのですが無反応なのですが・・・・・・
どうしたらいいでしょうか、よろしくオナガイシマス
// フックするプロシジャー
LRESULT CALLBACK MyCallWndProc(int nCode,WPARAM wParam,LPARAM lParam)
{
if(( GetKeyState( VK_CONTROL ) & 0x80 ) > 0)
{
  MessageBeep(0xffffffff); //ビープ
}
return CallNextHookEx(g_hHookWnd, nCode, wParam, lParam); //次のフックを呼ぶ
}


417 名前:413 :2006/12/28(木) 21:08:20
どうもすいません。
環境はWindowsでVisualStudioを使ってC++で書いてます。

418 名前:デフォルトの名無しさん :2006/12/28(木) 21:12:36
>>416
×MessageBeep(0xffffffff); //ビープ
○MessageBox( NULL , "IEを最小化するメッセージの送出2","確認" , MB_OK | MB_TOPMOST );
です、スマソ


419 名前:デフォルトの名無しさん :2006/12/28(木) 21:15:03
ただ単にキーボードフック(WH_KEYBOARD)にすればいいだけじゃないの?

420 名前:デフォルトの名無しさん :2006/12/28(木) 21:25:19
WH_GETMESSAGEのほうが汎用性あるだろ


421 名前:デフォルトの名無しさん :2006/12/28(木) 21:46:42
>>416
>GetKeyState( VK_CONTROL ) & 0x80

GetKeyStateの返り値は16bitでわ?


422 名前:421 :2006/12/28(木) 21:52:55
それと省いているみたいだけど、FキーのメッセージをチェックしてからCtrlキーのチェックだよね…


423 名前:デフォルトの名無しさん :2006/12/28(木) 22:09:14
405=416=418です
よろしくです
>>421
MSDNを見ますと返り値はintなので16ビットだとおもいますが、まずいですか?
>>422
逆で、CtrlをチェックしてからFキーのチェックです

424 名前:デフォルトの名無しさん :2006/12/28(木) 22:09:47
またフックの話題かよ

そんなにおまえらは何をフックしたいんだ

425 名前:デフォルトの名無しさん :2006/12/28(木) 22:18:11
個人的にはかわいい娘か、技術系の会話のできるかわいい娘をf(ry

426 名前:デフォルトの名無しさん :2006/12/28(木) 22:22:29
intが16bitっていつの時代の人間だ?

427 名前:デフォルトの名無しさん :2006/12/28(木) 22:25:08
>>426
あそうか
32ビットですね

428 名前:デフォルトの名無しさん :2006/12/28(木) 22:41:00
>>427
>>420


429 名前:デフォルトの名無しさん :2006/12/28(木) 22:47:36
>>417
WM_VSCROLLかWM_HSCROLLのhwndScrollBarはスクロールバーのウィンドウハンドル。
それをGetDlgCtrlID関数を利用してIDに変換。
なお、IDはCreateWindowのhmenu。

430 名前:デフォルトの名無しさん :2006/12/28(木) 23:37:18
>( GetKeyState( VK_CONTROL ) & 0x80 ) > 0
本気でこれで Ctrl と F が押下されているかの判定になると思っているのか。

431 名前:デフォルトの名無しさん :2006/12/28(木) 23:47:11
フックが苦手なんですが、どうすれば強烈なフックが撃てますか?

432 名前:デフォルトの名無しさん :2006/12/28(木) 23:54:46
>>431
腕だけでなく、腰を捻ってチカラを貯めこんで打つべし

433 名前:デフォルトの名無しさん :2006/12/29(金) 01:36:37
これならばと思い試していますが今だに解決できません、コンパイルでエラーが出れば
いいのですが・・・・
下記のコードで悪いところを指摘してもらえませんか、タノンマス
// フックするプロシジャー
LRESULT CALLBACK MyCallWndProc(int nCode,WPARAM wParam,LPARAM lParam)
{
 CWPSTRUCT* lp = (CWPSTRUCT*)lParam;
if( nCode == HC_ACTION ){
  switch (lp->message){
   case WM_KEYDOWN:
    if( wParam == 0x46 ) // このメッセージがFキーのものか
    {
     if( GetKeyState( VK_CONTROL ) & 0x46 ) // Ctrlキーが押されているか
     {
      MessageBox( NULL ,CTRL+Fだ "ゴ━━━━(# ゚Д゚)━━━━ルァ!","確認" , MB_OK | MB_TOPMOST );
      lp->wParam = 0;
      return 0;
      //lp->message = WM_CLOSE;
     }
    }
    break;
  }
 }
 return CallNextHookEx(g_hHookWnd, nCode, wParam, lParam); //次のフックを呼ぶ
}

434 名前:デフォルトの名無しさん :2006/12/29(金) 01:56:27
>GetKeyState( VK_CONTROL ) & 0x46
GetKeyState の説明をもう一度読み直せ。

435 名前:デフォルトの名無しさん :2006/12/29(金) 01:58:58
しばしば VirtualProtectEx を実行してもアクセス保護が変更されない気がします

戻り値は1が返されてOldProtectは0なのに、直後にVirtualQueryExで調べると
PAGE_EXECUTE_WRITECOPYを返してきて矛盾しちゃってます

436 名前:デフォルトの名無しさん :2006/12/29(金) 02:30:43
>>433です
>>GetKeyState の説明をもう一度読み直せ。
if( wParam == 0x46 )
 {
   if( GetKeyState( VK_CONTROL ) & 0x80 )
読んでこうしてみましたが・・・・・なぜ悪いのか
それからここの書き方は間違っていませんでしょうか?
CWPSTRUCT* lp = (CWPSTRUCT*)lParam;

437 名前:デフォルトの名無しさん :2006/12/29(金) 02:45:52
>>436
0x80(>>433では0x46だが) は何処から出てきたんだ?

438 名前:デフォルトの名無しさん :2006/12/29(金) 02:46:58
>>437
433は間違えていました、0x46はASCIIのFのことです

439 名前:デフォルトの名無しさん :2006/12/29(金) 02:53:26
>>438
>GetKeyState( VK_CONTROL ) & 0x80
ここはCtrlキーの判定だろ。
Fキーは関係無い。
GetKeyStateの *戻り値* の説明を読んで来い。

440 名前:デフォルトの名無しさん :2006/12/29(金) 02:54:27
WH_CALLWNDPROC でWM_KEYDOWN 拾えたんだっけ?

441 名前:デフォルトの名無しさん :2006/12/29(金) 02:58:51
たぶん「最上位ビットが 1 」なSHORTは2進数で1000000000000000 16進数で0x8000て感じで
GetKeyState( VK_CONTROL ) & 0x80 て書いたんだとおもた

442 名前:デフォルトの名無しさん :2006/12/29(金) 03:00:19
>>439
確かにそうなのですがここ↓を参考にしているのですが・・・・
ttp://www.geocities.jp/ky_webid/win32c/026.html

443 名前:デフォルトの名無しさん :2006/12/29(金) 03:00:34
何でそんなに遠回しに教えるんだ?
普通に回答教えれば一発で解って、教える側も教わる側も気持ち良く終われるのに

444 名前:デフォルトの名無しさん :2006/12/29(金) 03:10:22
つまりこのスレ一番の馬鹿は>>430=>>437=>>439>>433は一方的な被害者って事か。

445 名前:435 :2006/12/29(金) 03:14:40
いくつか解説まわってみたが
GetKeyState(VK_CONTROL) < 0
という書き方のほうが一般的みたいな感じだった

ってことで435もよろしくお願いします

446 名前:デフォルトの名無しさん :2006/12/29(金) 06:39:05
API の文字列関数に strstr の API 版が無いですが、
みなさんはどのように検索していますか?

447 名前:446 :2006/12/29(金) 06:41:00
すいません、C言語に限定された話です。

448 名前:デフォルトの名無しさん :2006/12/29(金) 06:44:54
開発中に見つけた不具合
以下のようなGetIconInfoを数ミリ秒毎に呼ぶルーチンがあるのですが、

OnTimer(){
...
ICONINFO iconinfo;
GetIconInfo(hicon, &iconinfo);
}

どうもこのAPIがメモリリークを起こしているらしく、
数万回呼び出された時点でアプリケーション毎に割り当てられる
GUI領域のメモリを使い切って画面表示に不具合を発生させました。

環境はVS2005です。
APIのバグでしょうか?

449 名前:デフォルトの名無しさん :2006/12/29(金) 06:46:21
shlwapi.dllにStrStrというAPIがあるよ

450 名前:446 :2006/12/29(金) 07:40:49
>>449
ありがとうございます。

451 名前:デフォルトの名無しさん :2006/12/29(金) 07:43:38
>GetIconInfo creates bitmaps for the hbmMask and hbmColor members of ICONINFO.
>The calling application must manage these bitmaps and delete them
>when they are no longer necessary.

452 名前:デフォルトの名無しさん :2006/12/29(金) 08:12:07
資料を読まない香具師ほど自分の愚かさを棚に上げて他人の所為にしたがる好例だな。

453 名前:デフォルトの名無しさん :2006/12/29(金) 09:41:58
質問があります。

WindowsXPなのですが、zip圧縮、ゴミ箱に捨てる等のオペレーションを行うと、
プログレスダイアログがあがりますがあれはAPIを使用しているのでしょうか?

454 名前:デフォルトの名無しさん :2006/12/29(金) 09:55:14
>>448
開発中に見つけた不具合wwwwwwwwwwwwwwwww

君の頭が不具合なのは良くわかった

455 名前:デフォルトの名無しさん :2006/12/29(金) 10:58:36
>>453
ゴミ箱に捨てる→SHFileOperation関数
圧縮はどうなんだろ?

456 名前:453 :2006/12/29(金) 11:46:57
>>455
ありがとうございます。

もう一つ、あのダイアログだけを取得する事は可能でしょうか?

457 名前:デフォルトの名無しさん :2006/12/29(金) 11:48:44
>>456
くわしく

458 名前:448 :2006/12/29(金) 11:53:24
うわ、死にてぇorz
単純な情報取得で勝手にメモリアロケートされるなんて
ハンドルを返したりするAPIだけと思い込んでました。
日本語のMSDNにも明記されてるし。ちょっと吊ってきます・・・

459 名前:453 :2006/12/29(金) 11:53:31
>>457
文盲ですみません。

SHFileOperation関数を実行すると、処理が長い場合に自動で
プログレスバーが表示されます。

あのプログレスバーを取得し、タイトル、メッセージ等を変えて自分で
使用したいとおもいまして、そのようなAPIはあるのかなと。

460 名前:デフォルトの名無しさん :2006/12/29(金) 12:01:42
vistaのこともあるし、難しいんじゃね?

461 名前:デフォルトの名無しさん :2006/12/29(金) 12:28:23
スレッド2ついるのかな? 
つい昨日出鱈目にプログレス作って失敗したけど。

462 名前:デフォルトの名無しさん :2006/12/29(金) 12:32:13
SDKサンプルにaviあるからそれ貼り付ければそれらしくなる
バーも入れたいなら投げっぱなしじゃ無理なのはわかるよな

463 名前:デフォルトの名無しさん :2006/12/29(金) 12:35:53
shell32.dllのDialog1020と任意のAVI(160〜170)を組み合わせてるだけで出来るだろ。

464 名前:デフォルトの名無しさん :2006/12/29(金) 14:05:15
インターフェイスにIProgressDialogってのがあるけど、
ME以降なんで注意かも

465 名前:453 :2006/12/29(金) 14:13:11
>>462
リソース使わずにAPIだけで済むのならと思い、質問しました。

>>463
ありがとうございます。検討します。

>>464
まさにこれです。
API使う時点でOSのターゲットを絞るので十分です。
ありがとうございました。

466 名前:デフォルトの名無しさん :2006/12/30(土) 02:16:13
今IMEで入力中の文字に外部から細工を施したいプログラムを作ろうとしております。
IMEで入力中の文字列を取るには
ImmGetCompositionStringにGCS_COMPSTRを引数に渡せばいいことは分かったのですが、
その前にIMEのコンテキストを得るための
ImmGetContext
の引数のウィンドウハンドルをどうしたら良いのか分からなくて困っています。
現在アクティブなウィンドウの入力を操作したいので、
ForegroundWindowの子ウィンドウのいずれかを指定すればよいのですが、
その中で現在IMEが入力しようとしている子ウィンドウの判定の仕方をどなたか教えて頂けないでしょうか。
よろしくお願い致します。

467 名前:デフォルトの名無しさん :2006/12/30(土) 05:20:38
ImmEnumInputContext

468 名前:デフォルトの名無しさん :2006/12/30(土) 07:03:13
>>465
もはや聞く耳持ちそうにないけど
公開されてないダイアログリソースがいつまでもあると思うな
http://blogs.msdn.com/oldnewthing/archive/2005/10/26/485133.aspx

469 名前:デフォルトの名無しさん :2006/12/30(土) 13:54:56
GetFocusでよくね

470 名前:デフォルトの名無しさん :2006/12/30(土) 14:12:49
>>468
読めないっつーの

471 名前:デフォルトの名無しさん :2006/12/30(土) 17:19:48
>>470
フォントサイズ小さくしてない?
私の環境なら最小じゃなければ読めるよ。

472 名前:デフォルトの名無しさん :2006/12/30(土) 17:24:59
日本語じゃない情報はゴミ

473 名前:デフォルトの名無しさん :2006/12/30(土) 17:27:39
ゴミグラマ

474 名前:デフォルトの名無しさん :2006/12/30(土) 17:46:46
東京ゴミグラマ

475 名前:デフォルトの名無しさん :2006/12/31(日) 00:28:45
WIn32 APIスレで英語読めませんとか堂々と言われても。
msdn2で日本語情報が大幅に拡充されたせいかなあ

476 名前:デフォルトの名無しさん :2006/12/31(日) 08:21:54
無料配布の影響

477 名前:デフォルトの名無しさん :2006/12/31(日) 09:00:24
英語が読める読めないの問題じゃないと思うけどな。

浅はかだ。

478 名前:デフォルトの名無しさん :2006/12/31(日) 09:17:15
誰に対してどんな内容がどんな理由で浅はかなのか説明してもらおうか

479 名前:デフォルトの名無しさん :2006/12/31(日) 11:08:29
アプリの二重起動を監視するのに、FindWindow関数や、Mutex法を使うとよさげなのですが
単純にGetKeyState使った関数の呼出しで、呼出された関数が一回のキーボード押下で
二回呼出されるのは、単なるバグと考えていいですよね?

480 名前:デフォルトの名無しさん :2006/12/31(日) 11:20:53
単なる仕様です。

481 名前:デフォルトの名無しさん :2006/12/31(日) 13:59:30
日本語でおk

482 名前:デフォルトの名無しさん :2006/12/31(日) 14:05:32
1行目と2,3行目の関係がわからないんだが

483 名前:デフォルトの名無しさん :2006/12/31(日) 14:38:02
GetKeyStateは関数を呼出しません。

484 名前:デフォルトの名無しさん :2006/12/31(日) 15:40:38
>>483
スマソ、GetKeyStateの取得したキーイベントをトリガーとして、
関数を呼出すってことね

485 名前:デフォルトの名無しさん :2006/12/31(日) 15:48:18
二重起動の監視とキーの状態にどんな関係が?!

486 名前:デフォルトの名無しさん :2006/12/31(日) 16:07:16
>>484
単にあなたが2回その関数を呼出しているだけです。
拠ってその動作がバグか使用かはあなたが決めてください。

487 名前:デフォルトの名無しさん :2006/12/31(日) 17:25:54
CSSプレイヤーにチートしてない人はいないよ

488 名前:デフォルトの名無しさん :2006/12/31(日) 18:38:27
IEEとかメモ帳の検索窓のコンテキストってどうしたら取得できますか?

489 名前:デフォルトの名無しさん :2006/12/31(日) 19:32:34
除夜の鐘を鳴らすAPIを教えてください。

490 名前:デフォルトの名無しさん :2006/12/31(日) 19:41:28
Beep()

491 名前:デフォルトの名無しさん :2006/12/31(日) 20:13:09
HitBell(108);

492 名前:デフォルトの名無しさん :2007/01/01(月) 00:14:50
for(;;){
Eat(Toshikoshisoba);
}

493 名前:デフォルトの名無しさん :2007/01/01(月) 00:21:11
>>492
太るぞ…

494 名前: 【大吉】 【1163円】 :2007/01/01(月) 00:32:01
あけまして、おめでとうございます。
今年も上手に残業代を稼ぎましょう。

495 名前:デフォルトの名無しさん :2007/01/01(月) 00:33:15
try {
 for(;;)
  Eat(Toshikoshisoba);
} catch(gero_exception &e) {
 
}

496 名前:デフォルトの名無しさん :2007/01/01(月) 00:40:58
'0xdeadbabe' の命令が '0xbaadf00d' のモチを参照しました。 モチが "swallowed" になることはできませんでした。

ライフを終了するには [OK] をクリックしてください
ライフをデバッグするには [キャンセル] をクリックしてください

497 名前:デフォルトの名無しさん :2007/01/01(月) 08:57:02
別におもしろくないから

498 名前:デフォルトの名無しさん :2007/01/01(月) 10:44:31
メッセージループの基本的な仕組みについて質問です

WinMain()
{
  MessageLoop()
  {
  while( 1 )
  {
  GetMessage();

  DispatchMessage() → WndProc()
  {

  }
  }
  }
}

こんな感じのプログラムで、DispatchMessageのあたりの処理は

DispatchMessage関数呼び出し

WndProc関数呼び出し

WndProc関数終了

DispatchMessage関数終了

という流れになっているという考えであっているでしょうか?



499 名前:デフォルトの名無しさん :2007/01/01(月) 11:31:08
>>498
まあ、それでおけ。
ほかにも、いくつかあるけど。

GetMessageが0か-1を返したときは、ループを抜けること。
TranslateMessageを使うこと。
WM_CHARなどがいらないなら、使わないというのもありかもしれないが、
コモンコントロールなどは使うから、まず必要になる。

500 名前:デフォルトの名無しさん :2007/01/01(月) 11:57:49
どうもです。

>GetMessageが0か-1を返したときは、ループを抜けること。
>TranslateMessageを使うこと。

猫でも〜本で勉強しているのですが
よく見るとそのあたりのことも書いてありました。ありがとうございました


■過去ログ置き場に戻る■ 1- 前250 次250 最新50
DAT2HTML 0.33f Converted.