Win32API質問箱 Build116
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2013/10/30(水) 17:17:04.92■過去スレ
Win32API質問箱 Build115
http://toro.2ch.net/test/read.cgi/tech/1373671389/
■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。
英語版( http://msdn.microsoft.com/en-us/library/ )の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで
0596デフォルトの名無しさん
2014/01/26(日) 04:18:04.30これのどこがWin32APIの質問なんだよ
スレタイも読めない愚図か
0597デフォルトの名無しさん
2014/01/27(月) 04:41:51.290598デフォルトの名無しさん
2014/01/27(月) 04:53:31.64ほんとにキチガイだな
別スレで散々指摘されたのに文章そのままでマルチか
0599デフォルトの名無しさん
2014/01/27(月) 13:39:06.370600デフォルトの名無しさん
2014/01/27(月) 14:26:55.710601デフォルトの名無しさん
2014/01/27(月) 19:11:16.26本当に救いようがないなwww
0602デフォルトの名無しさん
2014/01/27(月) 20:48:33.08なんで消されてるんだろう。
まぁ結局GCallocでマネージメモリを固定すれば
ポインタも取れるのでWIN32APIを使うときの問題はないことがわかった。
勉強になったよ
0603デフォルトの名無しさん
2014/01/28(火) 02:48:37.60http://stackoverflow.com/questions/20303380/virtualprotect-and-kernel32-dll-attempt-to-access-invalid-address
0604デフォルトの名無しさん
2014/01/28(火) 02:55:38.19http://mimumimu.net/blog/2011/11/17/c%E3%82%B3%E3%83%BC%E3%83%89%E4%B8%AD%E3%81%AB%E3%83%9E%E3%82%B7%E3%83%B3%E8%AA%9E%E3%82%92%E5%9F%8B%E3%82%81%E8%BE%BC%E3%82%93%E3%81%A7%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B%E3%80%82/
0605デフォルトの名無しさん
2014/01/28(火) 16:45:09.28WritePrivateProfileStringは、
書き込み中にiniファイルが破損したり、
ファイルが無くなるようなことは
あるのでしょうか?
要はアトミックかどうか知りたいです。
よろしくお願いします。
0606デフォルトの名無しさん
2014/01/28(火) 17:27:34.85分からないものを使うな気違い
0607デフォルトの名無しさん
2014/01/28(火) 17:35:19.61大丈夫だ、そういう心配はない。
つーかレジストリの前はINIファイルを使ってたから、INIファイルの操作にはレジストリと同レベルの信頼性が必要で
そのために通常のファイル操作用APIとは別にINIファイル操作用のAPIが用意された。
とかもっともらしいレス付けておけば愚図の>>605は鵜呑みにするんだろうなw
0608片山博文MZ無能 ◆T6xkBnTXz7B0
2014/01/28(火) 17:50:00.960609デフォルトの名無しさん
2014/01/28(火) 17:57:54.80>>608 25点
>>607は最後の一文により10点減点
嘘回答選手権はまだまだ続きます
どなたでも参加は自由
0610デフォルトの名無しさん
2014/01/28(火) 18:47:20.50死ねばいいのに
0611デフォルトの名無しさん
2014/01/28(火) 18:56:52.240612片山博文MZ無能 ◆T6xkBnTXz7B0
2014/01/28(火) 19:05:35.93破損するといった旨の記述はない。
昔のwinならバグあったかも。
0613デフォルトの名無しさん
2014/01/28(火) 19:16:22.630614デフォルトの名無しさん
2014/01/29(水) 09:33:52.140615デフォルトの名無しさん
2014/01/29(水) 10:36:04.310616デフォルトの名無しさん
2014/01/30(木) 17:02:04.530617デフォルトの名無しさん
2014/01/30(木) 18:08:03.900618デフォルトの名無しさん
2014/01/31(金) 05:59:21.660619デフォルトの名無しさん
2014/01/31(金) 12:55:14.61ピアノ五重奏曲「ます」とか聞いたことあんだろ
0620デフォルトの名無しさん
2014/01/31(金) 15:39:05.980621デフォルトの名無しさん
2014/01/31(金) 17:15:45.430622デフォルトの名無しさん
2014/01/31(金) 17:17:00.600623デフォルトの名無しさん
2014/01/31(金) 17:23:36.01FreeOTFE
0624デフォルトの名無しさん
2014/01/31(金) 17:25:43.55署名ドライバーが付属してないゴミとか薦めてどうするの?
死にたいの?お前
手伝った方がいい?
0625デフォルトの名無しさん
2014/01/31(金) 17:45:54.04人を教唆し若しくは幇助して自殺させ、又は人をその嘱託を受け若しくはその承諾を得て殺した者は、6月以上7年以下の懲役又は禁錮に処する。
0626デフォルトの名無しさん
2014/01/31(金) 17:47:28.380627デフォルトの名無しさん
2014/01/31(金) 18:49:42.50http://toro.2ch.net/test/read.cgi/tech/1385604796/
0628デフォルトの名無しさん
2014/01/31(金) 20:00:26.550629デフォルトの名無しさん
2014/01/31(金) 22:25:47.61全然意味が分からない。
解説よろ。
0630デフォルトの名無しさん
2014/01/31(金) 23:53:42.43「そろそろ生本番の性交がしたい」
0631デフォルトの名無しさん
2014/02/01(土) 01:39:58.850632デフォルトの名無しさん
2014/02/01(土) 17:07:03.130633デフォルトの名無しさん
2014/02/01(土) 18:34:12.630634デフォルトの名無しさん
2014/02/01(土) 19:36:46.180635デフォルトの名無しさん
2014/02/01(土) 22:58:26.610636デフォルトの名無しさん
2014/02/02(日) 04:21:51.360637デフォルトの名無しさん
2014/02/02(日) 10:42:29.89#include <stdio.h>
typedef unsigned int uint;
typedef unsigned char uchar;
extern int __stdcall VirtualProtect(void *, size_t, uint, uint *);
int main()
{
uchar x86[] = {
0x8B, 0x44, 0x24, 0x04, // mov eax, dword ptr [esp+4]
0x8B, 0x4C, 0x24, 0x08, // mov ecx, dword ptr [esp+8]
0x8B, 0x54, 0x24, 0x0C, // mov edx, dword ptr [esp+C]
0x0F, 0xAF, 0xC0, // imul eax, eax
0x0F, 0xAF, 0xC9, // imul ecx, ecx
0x0F, 0xAF, 0xD2, // imul edx, edx
0x03, 0xC1, // add eax, ecx
0x2B, 0xC2, // sub eax, edx
0xC3 // ret
};
uint dw;
fprintf(stdout, "%d\n", VirtualProtect(x86, sizeof(x86), 0x40, &dw)); //※ここ
fprintf(stdout, "%d\n", ((int (*)(int, int, int))x86)(3, 4, 5));
fprintf(stdout, "%d\n", ((int (*)(int, int, int))x86)(3, 3, 5));
return 0;
}
※ここ ← この行が無くても正常に実行出来てしまうのです。
実行時保護違反例外が出ると思ったのですが。><
0638デフォルトの名無しさん
2014/02/02(日) 12:25:16.980639デフォルトの名無しさん
2014/02/02(日) 12:38:43.660640デフォルトの名無しさん
2014/02/02(日) 12:40:31.40All pages in the specified region must be within the same reserved region allocated when calling the VirtualAlloc or VirtualAllocEx function using MEM_RESERVE.
The pages cannot span adjacent reserved regions that were allocated by separate calls to VirtualAlloc or VirtualAllocEx using MEM_RESERVE.
0641デフォルトの名無しさん
2014/02/02(日) 12:48:16.510642デフォルトの名無しさん
2014/02/02(日) 13:28:52.50ここみてまねしたんです。><
http://mimumimu.net/blog/2011/11/17/Cコード中にマシン語を埋め込んで実行する。/
0643デフォルトの名無しさん
2014/02/02(日) 13:42:05.060644デフォルトの名無しさん
2014/02/02(日) 14:10:03.68そのサイトに書いてあるのは全部でたらめ
三平方の定理の計算のアセンブラも間違えてるしω
0645デフォルトの名無しさん
2014/02/02(日) 14:31:19.64ゴキブリホイホイみたいなものだ
そんなものに引っ掛かる奴は生きてる価値なし
スキルも知識もないゴミが何でできもしないことに手を出すのかね
0646デフォルトの名無しさん
2014/02/02(日) 14:33:52.05見苦しい。去れ
0647デフォルトの名無しさん
2014/02/02(日) 14:51:40.190648デフォルトの名無しさん
2014/02/02(日) 15:06:25.07そういうのは名前欄に書くものだ
0649デフォルトの名無しさん
2014/02/02(日) 15:19:28.680650デフォルトの名無しさん
2014/02/02(日) 19:13:11.79けど下手にアセンブラ出来るともっと簡単にやれるのに余計な事やっちゃうやつっているよね
このスレのバカには無縁すぎる話題。。。
0651デフォルトの名無しさん
2014/02/02(日) 19:49:18.65アセンブラなんかより節分の豆のほうが重要なんだってばよ
0652デフォルトの名無しさん
2014/02/02(日) 20:01:16.540653デフォルトの名無しさん
2014/02/02(日) 20:05:20.090654デフォルトの名無しさん
2014/02/02(日) 20:55:04.370655デフォルトの名無しさん
2014/02/03(月) 00:48:44.72FORMATETCのetcってなによ
0656デフォルトの名無しさん
2014/02/03(月) 01:01:55.680657デフォルトの名無しさん
2014/02/03(月) 01:31:20.24ブログ主を責めるのは筋違いだろ
0658デフォルトの名無しさん
2014/02/03(月) 01:42:43.260659デフォルトの名無しさん
2014/02/03(月) 01:55:29.110660デフォルトの名無しさん
2014/02/03(月) 01:58:12.440661デフォルトの名無しさん
2014/02/03(月) 02:40:10.780662デフォルトの名無しさん
2014/02/03(月) 12:20:59.58なにか解決策になりそうなアプローチないかな?
表示されていれば問題無く取れている。
隠れているから描画されていないのかと思って、
RedrawWindow(hwnd, 0,0, RDW_INVALIDATE | RDW_VALIDATE | RDW_UPDATENOW )
とか叩いてみたけど、効果がない模様。
RedrawWindowって、他に何か必要だったりする?
0663デフォルトの名無しさん
2014/02/03(月) 12:31:23.51描画していないんじゃね?
0664デフォルトの名無しさん
2014/02/03(月) 12:58:08.87それが本来のwindowsの描画処理だし。
なんとか再描画させて、更新後のpixelデータを取りたいんだけど、なんか無いかな。
クライアント領域に、自分は表示されていると思わせる設定とかって、どうするんだろう?
0665デフォルトの名無しさん
2014/02/03(月) 13:02:53.93typedef unsigned int uint;
typedef unsigned char uchar;
extern int __stdcall VirtualFree(void *addr, size_t len, uint f);
extern int __stdcall VirtualAlloc(void *addr, size_t len, uint f, uint p);
extern int __stdcall VirtualProtect(void *addr, size_t len, uint f, uint *old);
#define PAGE_READONLY 0x02
#define PAGE_READWRITE 0x04
#define PAGE_EXECUTE_READWRITE 0x40
#define MEM_COMMIT 0x1000
#define MEM_RELEASE 0x8000
0666デフォルトの名無しさん
2014/02/03(月) 13:03:37.10{
uchar *code;
uchar x86[] = {
0x8B, 0x44, 0x24, 0x04, // mov eax, dword ptr [esp+4]
0x8B, 0x4C, 0x24, 0x08, // mov ecx, dword ptr [esp+8]
0x8B, 0x54, 0x24, 0x0C, // mov edx, dword ptr [esp+C]
0x0F, 0xAF, 0xC0, // imul eax, eax
0x0F, 0xAF, 0xC9, // imul ecx, ecx
0x0F, 0xAF, 0xD2, // imul edx, edx
0x03, 0xC1, // add eax, ecx
0x2B, 0xC2, // sub eax, edx
0xC3 // ret
};
uint dw;
int i;
code = (uchar *)VirtualAlloc(0, sizeof(x86), MEM_COMMIT, PAGE_READONLY);
fprintf(stdout, "%d\n", VirtualProtect(code, sizeof(x86), PAGE_READWRITE, &dw));
for(i = 0; i < sizeof(x86); ++i) code[i] = x86[i];
fprintf(stdout, "%d\n", VirtualProtect(code, sizeof(x86), PAGE_READONLY, &dw));
fprintf(stdout, "%d\n", ((int (*)(int, int, int))code)(3, 4, 5));
fprintf(stdout, "%d\n", ((int (*)(int, int, int))code)(3, 3, 5));
VirtualFree(code, 0, MEM_RELEASE);
return 0;
}
READONLY(EXECUTEなし)でも動きました。本当にありがとうございました。
0667デフォルトの名無しさん
2014/02/03(月) 13:32:24.550668デフォルトの名無しさん
2014/02/03(月) 14:00:07.10こういうゴミコードを継続的にばらまいて
ネット上の情報の総合的な質を下げてるのか
0669デフォルトの名無しさん
2014/02/03(月) 14:00:14.50システムのデフォルト設定によるけど、リンカーでDEPをオフにしないと実行できないだろ
0670uy
2014/02/03(月) 14:40:55.99require 'DL'
p DL::CFunc.new(["\x8B\x44\x24\x04\x8B\x4C\x24\x08\x8B\x54\x24\x0C\x0F\xAF\xC0\x0F\xAF\xC9\x0F\xAF\xD2\x03\xC1\x2B\xC2\xC3"].pack("P").unpack("l!").first, DL::TYPE_INT).call([10,2,5])
0671デフォルトの名無しさん
2014/02/03(月) 14:42:40.63について語るスレですどうぞ
0672デフォルトの名無しさん
2014/02/03(月) 14:43:40.250673デフォルトの名無しさん
2014/02/03(月) 19:23:56.120674デフォルトの名無しさん
2014/02/03(月) 19:57:42.81通報しました
0675デフォルトの名無しさん
2014/02/04(火) 08:12:34.70そもそもビットマップが他と実質共有されてたりしたら取りようがない
コンパチなビットマップを割り当てたメモリDCを直接ウィンドウプロシージャにぶん投げるか、
勝手にレイヤードウィンドウに変換してしまおう(レイヤードウィンドウのビットマップは専用)。
前者は想定外のWM_PAINTとか発行して無理やり処理する事になるし、
後者はレイヤードウィンドウへの変換で挙動が変化するって副作用があるから注意
0676デフォルトの名無しさん
2014/02/04(火) 13:47:24.960677デフォルトの名無しさん
2014/02/04(火) 14:49:53.070678デフォルトの名無しさん
2014/02/04(火) 17:38:06.98ウィルススキャナには引っかからないんだな
0679デフォルトの名無しさん
2014/02/05(水) 06:17:58.16描画されてないところにあるウィンドウも
メモリ上のどこかにはその座標と色情報があるわけじゃん
世の中のどこかにはそれを行うソースコードかアプリはあるだろうけど探すのめんどっちぃ
0680デフォルトの名無しさん
2014/02/05(水) 06:39:12.64騙くらかす方法がLayered
0681デフォルトの名無しさん
2014/02/05(水) 10:33:44.46ほんとに知ったかしかいないのな
0682デフォルトの名無しさん
2014/02/05(水) 14:24:44.43色情報なんて描画直前にしかねーよ
0683デフォルトの名無しさん
2014/02/05(水) 15:34:11.270684デフォルトの名無しさん
2014/02/05(水) 15:42:37.470685デフォルトの名無しさん
2014/02/05(水) 16:16:37.99ハァ?wwww
グラボ OS プログラム ディスプレイ
それぞれ順序だてて説明してWinAPIはどっから色とってるか言ってみ
0686デフォルトの名無しさん
2014/02/05(水) 16:17:54.04ほんとにゴミしかいねえな
0687デフォルトの名無しさん
2014/02/05(水) 17:18:46.710688デフォルトの名無しさん
2014/02/05(水) 17:35:36.220689デフォルトの名無しさん
2014/02/05(水) 17:44:04.010690デフォルトの名無しさん
2014/02/05(水) 19:05:15.15できるとしたら
重なってる上のウインドウをわずかに透過属性持たせて
なおかつ下のウインドウのDCをダミーにすり替えておくってとこじゃないの
0691デフォルトの名無しさん
2014/02/05(水) 19:17:24.330692デフォルトの名無しさん
2014/02/05(水) 22:27:56.250693デフォルトの名無しさん
2014/02/05(水) 22:32:57.120694デフォルトの名無しさん
2014/02/06(木) 02:00:00.59ここでマナー求めんなし
0695デフォルトの名無しさん
2014/02/06(木) 10:31:04.17■ このスレッドは過去ログ倉庫に格納されています