なーんも変わらんな。
C++ かつラッパークラス作るあたりで、
暗黙でスタックに詰まれる this をどう始末するかで迷うだろうが。
釣りだから釣られないように
955 :
デフォルトの名無しさん:2007/02/16(金) 18:43:21
あるフォルダの内容が変更されたら(ファイルが追加されたり削除されたり)
それを察知するにはどうすればいいですか
CreateFontで作ったフォントを使い終えたら元のフォントに戻す理由って何なんでしょうか。
色々調べてもそうした方が良い、そうするべき、としか書いてないので・・・
DCのSelectObject話なら戻す必要ないぞ
あの辺をブラックボックスとみなす派が何が起きるかわからないと言ってるだけ
malloc/free論争に近い
>>955 FindFirstChangeNotification
FindNextChangeNotification
理由聞いてたはずなのに自分に都合のいい意見なら理由はいらないんだ
961 :
945:2007/02/16(金) 19:56:01
>>946 返信が無いな
まあ、おそらくKENJI氏のサイトなんだろうけどw
962 :
946:2007/02/16(金) 19:59:22
>>961 そのサイトであってる
C++のコードだったがCでも書くこともできるので何の問題もない
それすらできないやつがAPIフックなんて考えないほうがいい
APIフックでググって最初の10件に、C言語で他プロセスにAPIフックを
仕込む日本語サンプルがあったんだが。
そもそもAPIフックって自プロセスのAPIフックして何が楽しいの?
親近相姦
>>malloc/free論争に近い
違う。全プロセスのGDIオブジェクトの合計はシステムで制限がされている(レジストリで指定されている)。
ビットマップとか DC に Select されたままだと DeleteObject しても
解放されないしね。
7FFE0000について今頃知った。
そうか、チート小僧だったのか。
>>966-967 そういう理由だったんですか・・・
丁寧にSelectObjectの戻り値は取っておいて戻しておくべきなんですね。
ありがとうございました。
970 :
945:2007/02/17(土) 00:17:17
>>962 違うなー。サイトがあってる?俺は当初質問しただけで
サイト教えてとは一言もいってないんだけどな。
そもそも誰一人としてまとも(技術的)な返事が帰ってこなかった。
これじゃあ質問スレの存在意義が。。。(答えられる人がいないっていったらそれまでだけど)
ともかくなんとか自分で解決できたんだけどね。
「それすらできない」ってお前さん言ってるが、じゃあ有言実行
KENJI氏のC++コードを同じ動作をCで組んでごらん?
大変だから。解決はしたが、少なくとも知識の乏しい俺はここに
たどり着くまでにかなりの時間かかったけどな。
まあ、苦労したなりに得るものはかなり大きかったが。
それに動機(実現したいと考える)があるからものすごい努力するんであって
「それすらできない奴は考えない方がいい」という発言はおかしな話だと思わないか?。
恥を覚悟で言うがAPIフックをターゲット(単一)プロセスに実現できるように
なるまでにかかった時間は実に2ヶ月だ。今日はじめてできたんだ笑えよw
>違うなー。
まで読んだ。
>>966 ごめん「全プロセス」っていっているてことは
GDIProcessHandleQuotaやUSERProcessHandleQuotaとは別のものがリミットとして存在するってこと?
↑のやつの制限って「1つのプロセス」の制限値だよね?
よろしければ、教えてください。
>>970 質問に対する答えとしてググれとかどこそこのページを見ればいいというのは認めないのか。
あと、そんなあのようなC++のコードをCにするのが大変なら、
拡張子cppでC++のままにしておいて、
自分の書くコードはCのコードのように書くという手段では駄目か?
974 :
945:2007/02/17(土) 00:57:08
>>973 それはもはやCとはいえない気が。
ググれとかどこそこのページを参考にとはわかるんだが
既にそのページを見て参考にしてでもわからないとなると
いったいどうすればいいんだろうという話を俺はしてたつもり。
まあなんにしろ何とか実現できたんで満足
975 :
945:2007/02/17(土) 00:57:52
これ以上いるとウザイからこれを最後に名無しに戻る。
976 :
928:2007/02/17(土) 01:04:20
皆様、反応ありがとうございます。
一応、GetTickCountをフックしてピンボールを早くすることくらいはできますw
kernel32.dllのGetTickCountはご存知の通り
0x7FFE0000を参照しているだけです。
>>944 OSが使う領域ということは
カーネルモードでしか書き込みできないのでしょうか。
>>976 ふむふむ、確かに
MyGetTickCountとGetTickCountが同じ結果となる。
>>974 そういうときはどこがどうわからないか具体的にはっきりと書いておいて、
後は誰か説明してくれる親切な人が現れるのを待つしかないよ。
APIフックで思い出したけど、カーネルのSeAccessCheckを
フックして常にTRUEを返すようにしたら、あらゆるアクセス権を
無視して自由にアクセスできたな‥‥
(゚Д゚)
こっち見んな
982 :
966:2007/02/17(土) 13:20:23
972さま、わたくしのかんちがいでありました。
全部で約16K個という制限は固定であります。
つけくわえると、Vistaは所持しておらず不明であります。
983 :
デフォルトの名無しさん:2007/02/17(土) 18:47:12
特定のネットワークアダプタの有効化/無効化を、
プログラムやバッチファイル等から制御する方法はあるでしょうか?
netsh.exeで簡単にできるのかと思っていたんですけど無理みたいです。
,、‐ " ̄:::゙:丶、
,r: ,' 3゙ :::::::/ハヽ:ヽ::::、:ヽ
{::://:::::::// ヽ\ト、:::::::!
ヾ l:::::::/ 丶 `ヾ ィ、:::|
|;:r::| O` 'O ゙ハ| < ないない
ヽハ :.:. :.: レ
´\ r‐--‐、,ノ
r、 r、/ヾ ̄下ヘ
ヽヾ 三 |:l1、_ヽ/__ .ィヽ
\>ヽ/ |` } n_n| |
ヘ lノ `'ソ l゚ω゚| |
/´ /  ̄|. |
\. ィ ___ | |
| ノ l | |
| | i:| |
985 :
983:2007/02/17(土) 20:27:54
自己解決しました。
984にカチンときたので教えません。
バーカ!
986 :
983:2007/02/17(土) 20:35:25
ほんとに使えねえクズどもだな。
次すれまだぁ?
CTRL+ALT+DELをプログラムからPCに送る方法ありませんか?
keybd_eventやVNCがやってる方法では期待する動作になりませんでした。
単にタスクマネージャーを出したいわけではなく、割り込みを発生させたいのです。
wsprintfW(&Buff[0], TEXT("%s"), lpStr);
cds.cbData = lstrlen(Buff) * sizeof(TCHAR) + 1;
これで表示させた時、途中から文字が化けるんだが。
どうしてかわかる人いますか?
UNICODEだからかな。
lpStrは固定長でWCHARで9バイトになります。
cds.cbData(COPYDATASTRUCT)に9を指定するとちゃんと表示されるんですが・・・・
APIの不具合なんですかね?
WCHARで9バイト?
先頭1バイトが長さを指定したりする方式なのかなぁ?
cds.cbData = lstrlen(Buff) * (sizeof(TCHAR) + 1);
トレイラーも二バイトなんじゃないの?
標準C++ではワイドのヌルキャラクターはやっぱりワイド。
994 :
990:2007/02/17(土) 21:35:23
>>991 !!!!!!!!!!!!!!
ありがとうございます!
メモリにあるzip形式で圧縮されたデータを解凍するのにベストな方法は?
UnZip.dllだと1回ファイル作らないといけない??
何かフリーでライブラリないかな。
>>995 ファイルに書き出しさえすれば色んな解凍ツールが使える
余計なコーディングはしないという点からはベスト!
おいらはzlib付属のminizipみて、メモリ展開するようなのをつくったけど。
APIの質問しろやああああああああああああああああああああああああああああ
ああああああああああああああああああああああああああああああああああああ
1000 :
1000:2007/02/17(土) 22:37:41
自己解決しました。
>>1-999にカチンときたので教えません。
バーカ!
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。