Win32API質問箱 Build49

このエントリーをはてなブックマークに追加
952デフォルトの名無しさん:2007/02/16(金) 18:40:52
>>950
違わない
953デフォルトの名無しさん:2007/02/16(金) 18:41:12
なーんも変わらんな。

C++ かつラッパークラス作るあたりで、
暗黙でスタックに詰まれる this をどう始末するかで迷うだろうが。
954デフォルトの名無しさん:2007/02/16(金) 18:43:07
釣りだから釣られないように
955デフォルトの名無しさん:2007/02/16(金) 18:43:21
あるフォルダの内容が変更されたら(ファイルが追加されたり削除されたり)
それを察知するにはどうすればいいですか
956デフォルトの名無しさん:2007/02/16(金) 18:54:15
CreateFontで作ったフォントを使い終えたら元のフォントに戻す理由って何なんでしょうか。
色々調べてもそうした方が良い、そうするべき、としか書いてないので・・・
957デフォルトの名無しさん:2007/02/16(金) 19:02:47
DCのSelectObject話なら戻す必要ないぞ
あの辺をブラックボックスとみなす派が何が起きるかわからないと言ってるだけ
malloc/free論争に近い
958デフォルトの名無しさん:2007/02/16(金) 19:35:36
>>955
FindFirstChangeNotification
FindNextChangeNotification
959デフォルトの名無しさん:2007/02/16(金) 19:44:50
>>957
なるほど。ありがとう。
960デフォルトの名無しさん:2007/02/16(金) 19:51:42
理由聞いてたはずなのに自分に都合のいい意見なら理由はいらないんだ
961945:2007/02/16(金) 19:56:01
>>946
返信が無いな
まあ、おそらくKENJI氏のサイトなんだろうけどw
962946:2007/02/16(金) 19:59:22
>>961
そのサイトであってる
C++のコードだったがCでも書くこともできるので何の問題もない
それすらできないやつがAPIフックなんて考えないほうがいい
963デフォルトの名無しさん:2007/02/16(金) 20:04:08
APIフックでググって最初の10件に、C言語で他プロセスにAPIフックを
仕込む日本語サンプルがあったんだが。
964デフォルトの名無しさん:2007/02/16(金) 20:10:10
そもそもAPIフックって自プロセスのAPIフックして何が楽しいの?
965デフォルトの名無しさん:2007/02/16(金) 20:16:20
親近相姦
966デフォルトの名無しさん:2007/02/16(金) 20:30:46
>>malloc/free論争に近い
違う。全プロセスのGDIオブジェクトの合計はシステムで制限がされている(レジストリで指定されている)。
967デフォルトの名無しさん:2007/02/16(金) 20:51:10
ビットマップとか DC に Select されたままだと DeleteObject しても
解放されないしね。
968デフォルトの名無しさん:2007/02/16(金) 20:55:33
7FFE0000について今頃知った。
そうか、チート小僧だったのか。
969デフォルトの名無しさん:2007/02/16(金) 22:36:12
>>966-967
そういう理由だったんですか・・・
丁寧にSelectObjectの戻り値は取っておいて戻しておくべきなんですね。
ありがとうございました。
970945:2007/02/17(土) 00:17:17
>>962
違うなー。サイトがあってる?俺は当初質問しただけで
サイト教えてとは一言もいってないんだけどな。
そもそも誰一人としてまとも(技術的)な返事が帰ってこなかった。
これじゃあ質問スレの存在意義が。。。(答えられる人がいないっていったらそれまでだけど)

ともかくなんとか自分で解決できたんだけどね。

「それすらできない」ってお前さん言ってるが、じゃあ有言実行
KENJI氏のC++コードを同じ動作をCで組んでごらん?
大変だから。解決はしたが、少なくとも知識の乏しい俺はここに
たどり着くまでにかなりの時間かかったけどな。
まあ、苦労したなりに得るものはかなり大きかったが。

それに動機(実現したいと考える)があるからものすごい努力するんであって
「それすらできない奴は考えない方がいい」という発言はおかしな話だと思わないか?。

恥を覚悟で言うがAPIフックをターゲット(単一)プロセスに実現できるように
なるまでにかかった時間は実に2ヶ月だ。今日はじめてできたんだ笑えよw
971デフォルトの名無しさん:2007/02/17(土) 00:18:56
>違うなー。
まで読んだ。
972デフォルトの名無しさん:2007/02/17(土) 00:31:18
>>966
ごめん「全プロセス」っていっているてことは
GDIProcessHandleQuotaやUSERProcessHandleQuotaとは別のものがリミットとして存在するってこと?
↑のやつの制限って「1つのプロセス」の制限値だよね?
よろしければ、教えてください。
973デフォルトの名無しさん:2007/02/17(土) 00:41:10
>>970
質問に対する答えとしてググれとかどこそこのページを見ればいいというのは認めないのか。

あと、そんなあのようなC++のコードをCにするのが大変なら、
拡張子cppでC++のままにしておいて、
自分の書くコードはCのコードのように書くという手段では駄目か?
974945:2007/02/17(土) 00:57:08
>>973
それはもはやCとはいえない気が。

ググれとかどこそこのページを参考にとはわかるんだが
既にそのページを見て参考にしてでもわからないとなると
いったいどうすればいいんだろうという話を俺はしてたつもり。

まあなんにしろ何とか実現できたんで満足
975945:2007/02/17(土) 00:57:52
これ以上いるとウザイからこれを最後に名無しに戻る。
976928:2007/02/17(土) 01:04:20
皆様、反応ありがとうございます。
一応、GetTickCountをフックしてピンボールを早くすることくらいはできますw

kernel32.dllのGetTickCountはご存知の通り
0x7FFE0000を参照しているだけです。

>>944
OSが使う領域ということは
カーネルモードでしか書き込みできないのでしょうか。
977デフォルトの名無しさん:2007/02/17(土) 01:11:06
>>976
ふむふむ、確かに
MyGetTickCountとGetTickCountが同じ結果となる。
978デフォルトの名無しさん:2007/02/17(土) 01:17:32
>>974
そういうときはどこがどうわからないか具体的にはっきりと書いておいて、
後は誰か説明してくれる親切な人が現れるのを待つしかないよ。
979デフォルトの名無しさん:2007/02/17(土) 03:13:43
APIフックで思い出したけど、カーネルのSeAccessCheckを
フックして常にTRUEを返すようにしたら、あらゆるアクセス権を
無視して自由にアクセスできたな‥‥
980デフォルトの名無しさん:2007/02/17(土) 05:14:12
(゚Д゚)
981デフォルトの名無しさん:2007/02/17(土) 05:29:20
こっち見んな
982966:2007/02/17(土) 13:20:23
972さま、わたくしのかんちがいでありました。
全部で約16K個という制限は固定であります。
つけくわえると、Vistaは所持しておらず不明であります。
983デフォルトの名無しさん:2007/02/17(土) 18:47:12
特定のネットワークアダプタの有効化/無効化を、
プログラムやバッチファイル等から制御する方法はあるでしょうか?

netsh.exeで簡単にできるのかと思っていたんですけど無理みたいです。
984デフォルトの名無しさん:2007/02/17(土) 19:40:28
      ,、‐ " ̄:::゙:丶、
    ,r: ,' 3゙ :::::::/ハヽ:ヽ::::、:ヽ
    {::://:::::::// ヽ\ト、:::::::!
    ヾ l:::::::/ 丶   `ヾ ィ、:::|
     |;:r::|  O`  'O ゙ハ|   < ないない
      ヽハ :.:.    :.: レ
        ´\ r‐--‐、,ノ
 r、     r、/ヾ ̄下ヘ
 ヽヾ 三 |:l1、_ヽ/__ .ィヽ
  \>ヽ/ |` }    n_n| |
   ヘ lノ `'ソ     l゚ω゚| |
    /´  /      ̄|. |
    \. ィ   ___ |  |
        | ノ     l |  |
      | |      i:|  |
985983:2007/02/17(土) 20:27:54
自己解決しました。
984にカチンときたので教えません。
バーカ!
986983:2007/02/17(土) 20:35:25
ほんとに使えねえクズどもだな。
987デフォルトの名無しさん:2007/02/17(土) 20:36:56
>>983
m9
988デフォルトの名無しさん:2007/02/17(土) 21:02:10
次すれまだぁ?
989デフォルトの名無しさん:2007/02/17(土) 21:05:02
CTRL+ALT+DELをプログラムからPCに送る方法ありませんか?
keybd_eventやVNCがやってる方法では期待する動作になりませんでした。
単にタスクマネージャーを出したいわけではなく、割り込みを発生させたいのです。
990デフォルトの名無しさん:2007/02/17(土) 21:30:41
wsprintfW(&Buff[0], TEXT("%s"), lpStr);
cds.cbData = lstrlen(Buff) * sizeof(TCHAR) + 1;

これで表示させた時、途中から文字が化けるんだが。
どうしてかわかる人いますか?
UNICODEだからかな。

lpStrは固定長でWCHARで9バイトになります。
cds.cbData(COPYDATASTRUCT)に9を指定するとちゃんと表示されるんですが・・・・
APIの不具合なんですかね?
991デフォルトの名無しさん:2007/02/17(土) 21:34:06
WCHARで9バイト?
992デフォルトの名無しさん:2007/02/17(土) 21:35:20
先頭1バイトが長さを指定したりする方式なのかなぁ?
993デフォルトの名無しさん:2007/02/17(土) 21:35:22
cds.cbData = lstrlen(Buff) * (sizeof(TCHAR) + 1);

トレイラーも二バイトなんじゃないの?
標準C++ではワイドのヌルキャラクターはやっぱりワイド。
994990:2007/02/17(土) 21:35:23
>>991
!!!!!!!!!!!!!!
ありがとうございます!
995デフォルトの名無しさん:2007/02/17(土) 21:48:45
メモリにあるzip形式で圧縮されたデータを解凍するのにベストな方法は?
UnZip.dllだと1回ファイル作らないといけない??
何かフリーでライブラリないかな。
996デフォルトの名無しさん:2007/02/17(土) 21:52:39
>>995
ファイルに書き出しさえすれば色んな解凍ツールが使える
余計なコーディングはしないという点からはベスト!
997デフォルトの名無しさん:2007/02/17(土) 22:00:48
おいらはzlib付属のminizipみて、メモリ展開するようなのをつくったけど。
998デフォルトの名無しさん:2007/02/17(土) 22:35:27
APIの質問しろやああああああああああああああああああああああああああああ
999デフォルトの名無しさん:2007/02/17(土) 22:35:58
ああああああああああああああああああああああああああああああああああああ
10001000:2007/02/17(土) 22:37:41
自己解決しました。
>>1-999にカチンときたので教えません。
バーカ!
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。