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


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

Win32API質問箱 Build13
1 名前:前スレ953 :03/07/30 16:15
.NET Framework!? 知らんな!!
そんなヤル気のあるネィティブプログラマ集まれ!
スレ立てるまでもない、Win32APIについての質問はこちらへどうぞ。
やさしい お兄ちゃん 達が答えてくれるかも。
でも、質問する前に検索ぐらい汁!!
過去スレ・参考は>>2 ぐらい...

2 名前:前スレ953 :03/07/30 16:15
● MSDN Online
http://www.microsoft.com/japan/msdn/default.asp
● 猫でもわかるプログラミング
http://www.kumei.ne.jp/c_lang/index.html

● 過去スレ
Win32API 質問箱 Build12
http://pc2.2ch.net/test/read.cgi/tech/1056033645/
Win32API 質問箱 Build11
http://pc2.2ch.net/test/read.cgi/tech/1052651750/
Win32API 質問箱 Build10
http://pc2.2ch.net/test/read.cgi/tech/1047819779/
Win32API 質問箱 Build9
http://pc2.2ch.net/test/read.cgi/tech/1044929160/
Win32API 質問箱 Build8
http://pc2.2ch.net/test/read.cgi/tech/1040964626/
Win32API 質問箱 Build7
http://pc3.2ch.net/test/read.cgi/tech/1036654893/
Win32API 質問箱 Build6
http://pc3.2ch.net/test/read.cgi/tech/1032548635/
Win32API 質問箱 Build5
http://pc3.2ch.net/test/read.cgi/tech/1028580373/
Win32API 質問箱 Build4
http://pc3.2ch.net/test/read.cgi/tech/1023361418/
Win32API 質問箱 Build3
http://pc.2ch.net/tech/kako/1006/10067/1006783012.html
Win32API【2】
http://pc.2ch.net/tech/kako/1006/10067/1006783012.html
Win32API 質問箱
http://pc.2ch.net/tech/kako/991/991576947.html

3 名前:あぼーん :あぼーん
あぼーん

4 名前:_ :03/07/30 16:25
http://homepage.mac.com/hiroyuki44/kaz04.html

5 名前:デフォルトの名無しさん :03/07/30 17:38
もつかれ

6 名前:デフォルトの名無しさん :03/07/30 18:08
>>1

早速だけど、質問。

コントロールパネル → マウス → ポインタとたどっていくと、
表示可能なシステムカーソル一覧が表示されるけど、
その中の 「手書き」とかかれているカーソルをシステムカーソルとして
呼び出すことは可能ですか?

SetCursor( LoadCursor( 0, IDC_WAIT ) );
のように呼び出したいのですが。

7 名前:_ :03/07/30 18:11
http://homepage.mac.com/hiroyuki44/hankaku09.html

8 名前:デフォルトの名無しさん :03/07/30 19:26
>>6
勘と試行錯誤の結果IDは32631らしい。
LoadCusor(0, MAKEINTRESOURCE(32631))
しかし32631や7F77で検索してもドキュメントが見つからない。
使用は控えるべきかも。

9 名前:デフォルトの名無しさん :03/07/30 19:38
APIでいいのかなぁ。適切なスレがあったら誘導お願いします。

仮想リストコントロール(オーナーデータ)なるものに手を出してみたんですが、
LVN_GETDISPINFOでテキストを返す正しい方法がわからないでつ。

LPNMLVDISPINFOのitem.pszTextに指定するというのは分かるんですが、
文字列へのポインタを指定するのか、こいつにコピーしていいのかが分からないのです。

なんでこんなところで詰まってるかというと……
MSDNの仮想リストコントロールのページ(日本語)のサンプルコードはlstrcpyしてる。
一方、MSDNからDirlv.exeっつーサンプルを落としてみると、
staticなバッファのポインタを渡している。

という実体でして。どっちが正しいんですか?(つД`)
間違ったらかなり痛い事態を引き起こしそうだよ……


10 名前:9 :03/07/30 19:57
sageてるし……

解には辿り着いてないんですが、少し見えてきました。

item.cchTextMaxを覗いてみると260, 264, 1024の3種類が入ってくるようです。
列挙時に260、マウスでポイントすると264と1024という感じ。
pszTextの方もその3種類毎に固定のアドレスが入ってる模様。

これはバッファが用意されてると考えてよいのでしょうか。


となると別のアドレスを突っ込むと勝手に解放されたりする危険が
ありそうなんですが、用意されているバッファが固定なところから察するに
逐一確保/解放してるわけではなさそうなので大丈夫なのかな。


11 名前:デフォルトの名無しさん :03/07/30 20:14
>>9
MSDNの説明だと、どっちでもいいみたいだね。
ただ、ポインタを突っ込む場合は、その項目が削除されるまで
文字列を解放したり中身を変更しちゃいけないと。

>>8
penwin.hに入ってるIDC_PENってのがそれっぽい。

12 名前:9 :03/07/30 20:48
>>11
むぅ、どっちでもいいんですか。
とりあえずlstrcpynする方向で進めてみます。

13 名前:デフォルトの名無しさん :03/07/30 20:52
俺はアイテムのlparamにnewした文字列へのポインタを入れといて、
そのポインタを突っ込んでる。

14 名前:デフォルトの名無しさん :03/07/30 20:56
LVM_INSERTITEMで自分で設定したのがコピーされるのではないのか?

15 名前:9 :03/07/30 21:20
>>13-14
LVS_OWNERDATAなので、LVM_INSERTITEMとかはしないです。


16 名前:デフォルトの名無しさん :03/07/30 23:03
外部アプリのメニューを操作するプログラムを作りたいのですが、
どうすればいいでしょうか?
具体的には「既に起動しているプログラムをひとつ選んで
ファイル(F)→開く(O)を実行する」みたいなことができるプログラムです。
keybd_event以外で作りたいのですが、いい方法があったら教えてください。
お願いします。

17 名前:名無し@沢村 :03/07/30 23:08
学校のおじさんのつくったWin32APIでプログラミングしている、へたれたちのいるスレはここですか?

18 名前:  :03/07/30 23:08
WM_COMMANDでもポストすれば?

19 名前:デフォルトの名無しさん :03/07/31 02:01
Win32 APIじゃ無いかもしれませんが
以下のソースがコンパイルできないのはなぜなのでしょうか?

struct S_STR
{
const int i;
} g_i[] ={
1,2,

};

// エラー
error C2440: 'initializing' : 'const int' から 'struct S_STR' に変換することはできません。(新しい動作 ; ヘルプを参照)
コンストラクタはソース型を持てません、またはコンストラクタのオーバーロード レゾリューションがあいまいです。

環境
DEV VC++6.0
OS Windows2000
C++ソース

20 名前:19 :03/07/31 02:03
もうチョット判りやすくしました.
(違うものになってる気が...)

struct S_STR
{
const int i;
const int j;
} g_ij[] ={
{1,1},
{2,2}
};

//エラー
error C2440: 'initializing' : 'const int' から 'struct S_STR' に変換することはできません。(新しい動作 ; ヘルプを参照)
コンストラクタはソース型を持てません、またはコンストラクタのオーバーロード レゾリューションがあいまいです。


21 名前:デフォルトの名無しさん :03/07/31 02:46
思い切りスレ違いじゃないですか。何考えてんですか。

22 名前:デフォルトの名無しさん :03/07/31 02:53
いいですよ、コンパイルしてください。勘違いソースを。それで満足したら帰って下さい。

23 名前:デフォルトの名無しさん :03/07/31 03:40
C++の入門書を30回ぐらい読み直せ。

24 名前:6 :03/07/31 09:57
>>8, >>11
出来ました。Thanks!
確かに penwin.h に IDC_PEN で定義されていますね。
でも英語版のMSDNにも書いてないうえに、penwin.h が PlatformSDK に無い
ところを見ると、あまり推奨されていないんでしょうか…

25 名前:デフォルトの名無しさん :03/07/31 12:36
>>19
みたいなのにも>>23のようにマジレスしてくれるならこのスレも安心だ

26 名前:デフォルトの名無しさん :03/07/31 12:44
>>1
.NETもWin32も両方やっているのですが、出入りしてもいいですか?

27 名前:デフォルトの名無しさん :03/08/01 03:33
.NETの質問をしなければ許す

28 名前:1 :03/08/01 05:39
>>26
前スレの1をコピペしただけだから、
あまり深く気にしないでくれ

29 名前:1 :03/08/01 06:49
>>26
出入り禁止
くせーぞ豚が

30 名前:26 :03/08/01 09:09
>>27
回答ばかりしているので、たぶん質問はしないと思います。

31 名前:デフォルトの名無しさん :03/08/01 16:22
すみません、NETって南下の略なんですか?

32 名前:デフォルトの名無しさん :03/08/01 16:35
日本教育テレビ。

今のテレビ朝日のことだよ。

33 名前:デフォルトの名無しさん :03/08/01 18:04
コマンドプロンプトからWin32アプリケーションを起動して
起動もとのコマンドプロンプトに文字を出力するにはどうすればいいのですか?



34 名前:デフォルトの名無しさん :03/08/01 18:12
>>33
AllocConsole

35 名前:デフォルトの名無しさん :03/08/01 22:05
>>33
main

36 名前:デフォルトの名無しさん :03/08/01 22:37
勉強に何か作ってみようと思ってるんですけど
いろんなことを含んでて、勉強で作る定番みたいなプログラムってないですかね?

37 名前:デフォルトの名無しさん :03/08/01 22:43
Win32APIを使用した数当てゲーム

38 名前:デフォルトの名無しさん :03/08/01 22:54

 永 


39 名前:名無しさん@Linuxザウルス :03/08/01 23:00
hello world


40 名前:デフォルトの名無しさん :03/08/01 23:44
>>36
C:\windows\System32\calc.exe
C:\windows\System32\mspaint.exe
どちらもサブセットでいい
「それっぽいの」作ってみそ


41 名前:デフォルトの名無しさん :03/08/01 23:53
フルパスなのがいやらしい

42 名前:山崎 渉 :03/08/02 02:05
(^^)

43 名前:デフォルトの名無しさん :03/08/02 05:18
>>34
それ、サービスから使える?

44 名前:デフォルトの名無しさん :03/08/02 05:19
>>41
%windir%\system32\calc.exe
%windir%\system32\mspaint.exe


45 名前:デフォルトの名無しさん :03/08/02 06:57
>>36
2chブラウザ

46 名前:デフォルトの名無しさん :03/08/02 23:31
>>43
サービスから何か出力したいならイベントログを使うのが定番
デバッグ目的ならOutputDebugString

47 名前:デフォルトの名無しさん :03/08/02 23:47
>>46
> サービスから何か出力したいならイベントログを使うのが定番

はぁ ?
普通にファイルに吐いときゃいいと思うが。
イベントログはあくまでもイベントを記録するもんだから、処理結果なんか吐いてどうするつもりだ ?

48 名前:デフォルトの名無しさん :03/08/03 04:03
質問の仕方が不味かったかな
つまり、
@コンソール上から起動した時はそのコンソール上に文字を出力したい
Aエクスプローラーなどから直接起動した時はコンソールを作りたくない
というようなことをやりたいんです

>>34
AllocConsole 使うとコンソールが強制的にできてしまって
そこには文字を出力出来るけど起動もとのコマンドプロンプトに
文字を出力できません

>>35
コンソールアプリケーションにするとコンソール以外から起動した時に
コンソールができてしまいます

説明へたですみません

49 名前:_ :03/08/03 04:10
http://homepage.mac.com/hiroyuki44/

50 名前:デフォルトの名無しさん :03/08/03 07:19
>48
不可能。
Subsystem:consoleと、Subsystem:windowsの
動作の違いは何によるものか考えれ。
それぞれ、スタートアップルーチン以前に、
起動元/subsys console     windows
console    なにもしない コンソールからデタッチ
windows   AllocConsole なにもしない
という動作が、Windowsによって行われる。

51 名前:デフォルトの名無しさん :03/08/03 12:36
>>50
よくわかりました。ありがとうございます。


52 名前:デフォルトの名無しさん :03/08/03 12:38
XP以降なら
AttachConsole(ATTACH_PARENT_CONSOLE)
できるかも(未確認)

53 名前:デフォルトの名無しさん :03/08/03 13:14
>>52
調べて見ます。ありがとうございます。

54 名前:デフォルトの名無しさん :03/08/03 15:11
アプリケーションが終了する前にファイルに書き込む方法を教えて下さい。
以下の関数をWM_CREATEやWM_TIMERの所に置いた場合上手く書き込めるのですが、
WM_DESTROY,WM_QUITの所に置いた場合何故か上手くいかないのです。

void func(){
HANDLE hf;char str[]="てすと";DWORD WriteByte;

hf=CreateFile("a,dat",(省略));
SetFilePointer(hf,0,NULL,FILE_END);
WriteFile(hf,(LPVOID)&str, (lstrlen(str)+1)*sizeof(char), &WriteByte, NULL);
CloseHandle(hf);
}

55 名前:デフォルトの名無しさん :03/08/03 16:25
WM_QUITはそれを見てメッセージループの終了を判定するためのものだから
ウィンドウプロシージャにcase WM_QUITとか書いても一生飛んでこないぞ

56 名前:デフォルトの名無しさん :03/08/03 17:00
windows ってコンソールもウィンドウも一緒くたになってるんだな
unix にみたいになってる訳じゃないのね

57 名前:デフォルトの名無しさん :03/08/03 17:01
>>56
×windows ってコンソールもウィンドウも一緒くたになってるんだな
○windows ってコンソールもターミナルも一緒くたになってるんだな


58 名前:デフォルトの名無しさん :03/08/03 17:01
WM_DESTROYなら、PostQuitMessageの前に呼べばうまくいくはず。

59 名前:デフォルトの名無しさん :03/08/03 17:38
>58
上手くいきませんでした・・・

60 名前:デフォルトの名無しさん :03/08/03 17:40
DestroyWindowしていない悪寒

61 名前:デフォルトの名無しさん :03/08/03 17:58
>60
その通りでした
有難うございます

62 名前:デフォルトの名無しさん :03/08/03 18:01
http://www.shitamachi.net/ranking/cgi23/ranklink/ranklink.cgi?id=23top
.

63 名前:デフォルトの名無しさん :03/08/03 22:26
STATICコントロールとかのフォントって変更できますか?
HFONT font=〜;
HWND HwndStatic;
SetFont(HwndStatic,font);
こんなメソッド一発でそれ以降ずっとそのフォントで描画されつづける関数はないのでしょうか。
サブクラス化してWM_Paintをオーバーロードしないとダメですか?

64 名前:デフォルトの名無しさん :03/08/03 22:39
>>63
WM_SETFONT送れ。
フォントは親ウィンドウのWM_CREATEで作って、
WM_DESTROYで消すのがオススメ。

65 名前:デフォルトの名無しさん :03/08/03 22:48
>>64
できました。どうもありがとうございました。

66 名前:デフォルトの名無しさん :03/08/04 20:50
Win32APIではなかったかもしれないんですが
キーボード入力を簡単にエミュレートする関数を教えてください

確か1行でキー入力をエミュレート出来たんですけど
忘れてしまったんです
お尻でしたら教えてください

67 名前:デフォルトの名無しさん :03/08/04 20:57
keybd_event()

68 名前:デフォルトの名無しさん :03/08/04 21:18
>>67さん ありがとうございまーす(^^@

69 名前:デフォルトの名無しさん :03/08/04 22:25
FindWindowで他のアプリのハンドルをゲットしたんですけど

hwnd = FindWindow("CAPP",NULL);
if( hwnd =! NULL) { ← この処理

この後hwndの値が変わってしまうんですけど何ででしょうか?

70 名前:デフォルトの名無しさん :03/08/04 23:00
>>69
ネタ?

71 名前:デフォルトの名無しさん :03/08/04 23:10
>>69
C/C++演算子
http://www.microsoft.com/japan/developer/library/vccore/_langref_C.2f.C.2b2b_.Operators.htm

72 名前:デフォルトの名無しさん :03/08/04 23:24
>>all
何でDelphiつかわないの??

73 名前:69 :03/08/05 00:40
>>70
ネタじゃなくって本当に間違えました
ビックリマークは反対に付けるんですね
>>71さん ありがとう

74 名前:デフォルトの名無しさん :03/08/05 00:53
ほんのりワロタ

75 名前:デフォルトの名無しさん :03/08/05 02:33
>>72
ネタ?

76 名前:デフォルトの名無しさん :03/08/05 03:47
>>72
初心者用だから

77 名前:デフォルトの名無しさん :03/08/05 03:48
おっぱい!おっぱい!おっぱい!
巨乳すぎる程の美女たち
おっぱい好き集まれ!!
http://www.exciteroom.com/


78 名前:デフォルトの名無しさん :03/08/05 04:07
仮想キーコードに付いて教えてください
 _ ← このキーは VK_ 何でしょう? 16進数でも良いので教えてください

106日本語キーボード使ってます

79 名前:_ :03/08/05 04:10
http://homepage.mac.com/hiroyuki44/hankaku09.html

80 名前:デフォルトの名無しさん :03/08/05 04:36
VK_OEM_102 = 0xE2;

81 名前:デフォルトの名無しさん :03/08/05 05:40
>>80
出来ました、ありがとうございます〜♪

82 名前:デフォルトの名無しさん :03/08/05 13:52
ウィンドウズのスタートメニューがあるバー、タスクバーって言うのでしょうか?
これの位置と幅を取得する方法を教えて下さい。

83 名前:デフォルトの名無しさん :03/08/05 14:18
>>82
正式じゃないと思うけど、調べるのも面倒なので

GetWindowRect(FindWindow('Shell_TrayWnd', nil), l_rcTaskbar);

で取得してる。

84 名前:デフォルトの名無しさん :03/08/05 14:29
正式にはこれかな
SHAppBarMessage(ABM_GETTASKBARPOS, pabd);

85 名前:デフォルトの名無しさん :03/08/05 15:29
スタートメニュー呼び出す方法教えて
って、あれってメニューなのカナ?

86 名前:デフォルトの名無しさん :03/08/05 15:41
>>85
お約束だが、SendInput

87 名前:デフォルトの名無しさん :03/08/05 15:43
keybd_eventでウィンドウズキーを送る

88 名前:デフォルトの名無しさん :03/08/05 17:18
>>86-87 それだと、キーコードを送るだけですよね?
スタートメニューを任意の位置に表示するには、
Windowsキーコード送った後に、スタートメニューウィンドウが
生成されるのを待って、SetWindowPos とかでいいんでしょうか?

89 名前:デフォルトの名無しさん :03/08/05 17:26
>>88
SHAppBarMessageで任意の場所に移動してからキーコード送るとか

90 名前:デフォルトの名無しさん :03/08/05 20:18
>>88
なんでそんなわけのわからんことをしたいのか素朴な疑問

91 名前:デフォルトの名無しさん :03/08/05 21:53
>>90
そんなわけのわからんことの出来るツールが一時期出回ってたような。
デスクトップの任意の場所をダブルクリックでスタートメニューを表示、とか。

92 名前:yoko :03/08/06 15:27
http://www.kumei.ne.jp/c_lang/sdk2/sdk_127.htm
のサンプルを VS2003 で作っているのですが、コンパイルが
127 error LNK2019: 未解決の外部シンボル __imp__InitCommonControlsEx@4 が関数 _WinMainN@16 で参照されました。
とでてとまってしまいます。
#pragma comment(lib, "ScrnSave.Lib")もいれているのに・・・
ちなみにVC6だと問題なくコンパイルできてしまいます。いったいどこを
ちぇっくすればいいでしょう・・・?

93 名前:デフォルトの名無しさん :03/08/06 16:40
>>92
MSDNライブラリで、
「InitCommonControlsEx」に必要なインポートライブラリを調べて、
そのライブラリをプロジェクトに追加する


94 名前:デフォルトの名無しさん :03/08/06 21:10
>>92
それって最新のSDK使ったときも同じエラーが出るんだよね

95 名前:デフォルトの名無しさん :03/08/07 16:20
壁紙の部分に描画をしたいのですが良い方法ご存知ないですか?
GetDesktopWindow()を使ってやってみたんですがデスクトップ上の
アイコンやウィンドウの上にも描画されてしまいます。

96 名前:デフォルトの名無しさん :03/08/07 16:45
>>95
壁紙に直接描いて、壁紙入れ替えればいいんでない?
壁紙にカレンダー描画する奴とかそんな感じだよ。

97 名前:デフォルトの名無しさん :03/08/07 20:44
>>95
デスクトップのリストビューをフックして、WM_ERASEBKGNDで……ダメかな

98 名前:デフォルトの名無しさん :03/08/08 01:23
なんかGUIガリガリ作っていくうちに
HSPみたいになっていくのは俺だけ?

99 名前:デフォルトの名無しさん :03/08/08 02:57
その形容が伝わらん

100 名前:デフォルトの名無しさん :03/08/08 16:29
>>96 >>97
レス有難う御座いました。

レスを参考にしてデスクトップのリストビューをフックして
サブクラス化してWM_ERASEBKGNDのとこで描画したら
出来ました。助かりました。


101 名前:デフォルトの名無しさん :03/08/08 18:25
>>98
簡単なツールならHSPが便利だよな〜
サクっと作れる


102 名前:デフォルトの名無しさん :03/08/08 19:04
嘘だ。

103 名前:デフォルトの名無しさん :03/08/08 19:12
_beginthread でクラスのメンバ関数を呼ぼうとするとコンパイルが通らないんだけど、

とタバコ屋のおばあさんに言われたんですけどわかりません。

_beginthread(void,int,int)' に一致するものが見つからない

と言われるんだそうです。コンパイラは BCC 5.5 です。

どなたかお分かりになるでしょうか。

104 名前:デフォルトの名無しさん :03/08/08 19:19
ネタ無視

105 名前:デフォルトの名無しさん :03/08/08 19:28
_beginthreadは*WIN32APIじゃない*ので該当の処理系のスレへ。

106 名前:デフォルトの名無しさん :03/08/08 19:40
そう。ここやったら、CreateThreadとかやな。

107 名前:デフォルトの名無しさん :03/08/08 20:38
101だがHSPの話は本当
簡単なツールやスクリーンセーバーとかはHSPが楽
今やDirectXによる3Dネット対戦ゲーすら作れるからね

APIを使うときは微妙に面倒だったり
プログラムファイルサイズがでかい
実行速度が遅い

など問題もあるが

108 名前:デフォルトの名無しさん :03/08/08 21:04
>>107
スレ違いマジレスは去れ

109 名前:デフォルトの名無しさん :03/08/08 22:38
>>107

その辺のバランスがけっこう取れているのがVCL(特にDelphi)なんだよね。


110 名前:デフォルトの名無しさん :03/08/08 23:56
CreateWindowで(HMENU)の欄に0を入れるとVC上からはウインドウは作られますが、
エクスプローラーからはウインドウは作られません。NULLだと作れます。
仕様ですか?
原因が解ったけど、いまいち納得(理解)出来ないです…

111 名前:デフォルトの名無しさん :03/08/09 00:22
アクセラレータキーの設定についてです。
LoadAccelerators は問題ないのですが、アクセラレータキーを押して
TranslateAccelerator で WM_COMMAND にいった時に
wParam の値が 40001 になるはずが 10557 なんです。
そのためにswitch文を何もせずに一気に抜けてしまうんですよ・・・(涙)
どこがおかしいのかさっぱりワケワカメっす。
何かしらの指南をお願いします。

112 名前:デフォルトの名無しさん :03/08/09 00:26
おっとぅっ、あげるっす。

113 名前:デフォルトの名無しさん :03/08/09 02:39
>>111
10557じゃなくて105537(=0x19C41)っしょ。
wNotifyCode = HIWORD(wParam);
wID = LOWORD(wParam);
wNotifyCodeはアクセラレータの時1になります。

114 名前:デフォルトの名無しさん :03/08/09 08:42
>>110
ふーん
WM_CREATEで
GetMenu() <ぬるぽ
return ガッ
みたいなことになってるのかな?

115 名前:デフォルトの名無しさん :03/08/09 09:24
>>110
MSDN読め
http://www.microsoft.com/japan/msdn/library/ja/jpwinui/html/_win32_createwindow.asp

116 名前:デフォルトの名無しさん :03/08/09 09:58
>>115
ここにNULLと0の違いが書いてあんの?

117 名前:デフォルトの名無しさん :03/08/09 10:34
別に引数のhMenuにNULL入れようが、0を入れようが、
動作が変わるとは思えないし、試しても変わらないんだが・・・

どんな環境でやってんだろ・・・

118 名前:デフォルトの名無しさん :03/08/09 11:13
>>117
どっかじぶんのヘッダで#defineし直してるとか?

119 名前:111 :03/08/09 12:15
>>113
確かに 10557->105537 です。

ありがとうございます
LOWORDしてなかっただけなんですね。

恥ずかしい。もっと勉強しないと・・・

120 名前:デフォルトの名無しさん :03/08/09 13:16
EnumDisplaySettingsで得られる画面モードが
画面のプロパティで選択できるものよりも少ないのですが
どうすれば全ての設定を列挙できるのでしょうか?

121 名前:110 :03/08/10 00:12
RegisterClass()とCreateWindow()をDLLにしています。
*.EXEも*.DLLもリリースモードでコンパイルしています。
#defineは特に使っていません。
#pragma comment(linker, "/opt:nowin98")を使っています。
ttp://www.geocities.co.jp/SiliconValley-Bay/1021/dame.zipにファイルを置いてみました。


122 名前:デフォルトの名無しさん :03/08/10 00:29
hmenuが初期化されていないようだが、、、

123 名前:110 :03/08/10 01:47
hmenuは初期化は必要ですか?
とりあえず0が入っているみたいなのですが?

124 名前:デフォルトの名無しさん :03/08/10 02:07
いずれにせよ、ふつうにWindowsは出てきたわけだが。(W2Ksp4)

125 名前:デフォルトの名無しさん :03/08/10 02:12
Windowsか

126 名前:デフォルトの名無しさん :03/08/10 02:20
2つ起動させば2つ出てくるしね。

127 名前:デフォルトの名無しさん :03/08/10 03:06
> hmenuは初期化は必要ですか?
必要。
> とりあえず0が入っているみたいなのですが?
たまたま偶然運良く0が入ってるのを見ていつもそうだと
思う馬鹿はC/C++使うな。

128 名前:デフォルトの名無しさん :03/08/10 04:34
・あるパスの親ディレクトリの取得方法
・あるパスがファイルかどうかの判断
・ファイルでそれがリンクだった場合参照先パスの取得方法

をそれぞれどうやってやるのか教えてください。
できればCOMは使いたくないです。。。

129 名前:_ :03/08/10 04:52
http://homepage.mac.com/hiroyuki45/

130 名前:デフォルトの名無しさん :03/08/10 10:30
>>128
ちっとはググれよ。

> ・あるパスの親ディレクトリの取得方法
".."

> ・あるパスがファイルかどうかの判断
GetFileAttributes

> ・ファイルでそれがリンクだった場合参照先パスの取得方法
はぁ? リンク? ショートカットの間違いじゃねーの?
WindowsCEならCOM使わずに(少なくとも表面的には)できるAPIがあるが。


131 名前:128 :03/08/10 10:53
>>130
すみません、ありがとうございました。

132 名前:デフォルトの名無しさん :03/08/10 11:15
130=ショートカットの拡張子が.lnk=linkなことを知らないやつ

133 名前:デフォルトの名無しさん :03/08/10 11:36
リンクというとちょっと違うような・・・

134 名前:デフォルトの名無しさん :03/08/10 11:37
ハードリンクはNTFSに限り許されているが。

135 名前:110 :03/08/10 12:58
>たまたま偶然運良く0が入ってるのを見ていつもそうだと
>思う馬鹿はC/C++使うな。
馬鹿です。
VC上では0が入り、エクスプローラーからは783647430が入るみたいです。


136 名前:デフォルトの名無しさん :03/08/10 13:16
参照先パスの取得方法や「リンク」と「ショートカット」の違いを知らないくせして
トンチンカンなこと言ってる知ったか厨が紛れ込んでいるな。
まぁ、仕方がないか。今は夏休みだからな。


137 名前:デフォルトの名無しさん :03/08/10 13:34
>>128
COMはイヤ、ってSH_*系もダメなの?

138 名前:デフォルトの名無しさん :03/08/10 14:29
コンソールを表示しないようにして
batファイルを実行してその戻り値を利用したいのですが、
system関数のコンソールを表示しない版の関数を教えて下さい。

139 名前:デフォルトの名無しさん :03/08/10 14:49
>>138
CreateProcess API の何番目かの引数に何かしら設定すればよいはず。

140 名前:デフォルトの名無しさん :03/08/10 15:48
>>139
漏れ、昔それを色々と試したけど、結局ダメだった。
どうやっても、起動直後に一瞬だけ表示されてしまうのは防げなかった。
漏れのやり方がヘボかったのかも知れんが...。


141 名前:デフォルトの名無しさん :03/08/10 16:46
>>140
CREATE_NO_WINDOW で問題ないはずだけど?
あ、Win9xだとダメだが。

142 名前:デフォルトの名無しさん :03/08/10 23:17
SetStdHandleで標準出力を匿名パイプかなんかにすればいい気がするが、
手元にWin9xがないので検証不能だな。

143 名前:138 :03/08/11 12:15
>>139-142
報告遅れましてすいません。MSDNで
CreateProcessについて調べて、exeファイルだと
コンソールを表示せずに実行することができるようになったみたいですが、
(WinXP Home)batファイルでは、実行自体がされません。
CreateProcessは非0を返しているのですが・・・

↓が試したソースです。間違えていれば教えてください。

144 名前:デフォルトの名無しさん :03/08/11 12:20
↑試したソース(馬鹿には見えない)
>>143
CreateProcessのコマンドラインに
cmd /c <batファイル名>
を渡してる? CreateProcessはそこまで面倒見てくれなかったはず

145 名前:138 :03/08/11 12:22
>>144
もうちょっと落ち着いて〜っでヽ(`Д´)ノ ウワァァァン

146 名前:138 :03/08/11 12:37
やっぱりできない。↓に該当部分のソースをうpしましたので
間違いがあれば教えてください。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1060403548&res=6

147 名前:デフォルトの名無しさん :03/08/11 13:15
第2引数を NULL にして
第1引数を "Cmd /c test.bat" にしてみてはどうじゃろ?


148 名前:138 :03/08/11 14:07
>>147
試してみました。…が、プロセス自体が起動できないようです。
(CreateProcessが0を返します。)


149 名前:デフォルトの名無しさん :03/08/11 15:04
ハンドルリークやGDIリソースリーク個所を特定できる方法ってありませんか?

タスクマネージャで「ハンドル」や「GDIオブジェクト」を観察することで、検出は
できるみたい(増えつづけてるからリークしてるな、と)ですが...

150 名前:デフォルトの名無しさん :03/08/11 16:26
Win32API氏ね、時代は.NETFramework様んだよ!

151 名前:デフォルトの名無しさん :03/08/11 16:49
すみません、MFC/SDKどちらでも、
他のアプリケーションが起動する直前にそれを検出する方法はないでしょうか。
特定のアプリケーションの起動を一時的に抑止させるようなことがしたいです。

監視するアプリケーションはユーザーがウインドウなどでダブルクリックで
起動した物だけで結構ですが、何かいい方法はないでしょうか?


152 名前:デフォルトの名無しさん :03/08/11 17:04
>>150
だったら.NETFrameworkスレ立ててよ

153 名前:デフォルトの名無しさん :03/08/11 17:12
ニヤニヤ

154 名前:デフォルトの名無しさん :03/08/11 18:10
>>151
CreateProcessをフックするとか。


155 名前:デフォルトの名無しさん :03/08/11 20:11
>>154
他アプリのAPI関数の呼び出しをフックすることが出来るとでも??

156 名前:デフォルトの名無しさん :03/08/11 20:18
>>155
出来るよ。

157 名前:デフォルトの名無しさん :03/08/11 21:51
>>149
使ったことないけどGetGuiResourcesなんてどうよ?

158 名前:デフォルトの名無しさん :03/08/11 22:32
>>155-156
ってゆーかNorton Anti VirusはWin9x/MEでは正にそういうことやってるらしい。


159 名前:デフォルトの名無しさん :03/08/11 23:03
>>157
憶測でしゃべんな

160 名前:デフォルトの名無しさん :03/08/11 23:52
EDITBOXの背景にBITMAPを貼るにはどうしたらいいですか?


161 名前:デフォルトの名無しさん :03/08/11 23:56
>>156
全く情報が見つからないんですが
やっぱり荒技?

162 名前:_ :03/08/11 23:56
http://homepage.mac.com/hiroyuki45/

163 名前:デフォルトの名無しさん :03/08/12 00:03
>>161
「Advanced Windows」でも買えばええんやなかろうか

164 名前:デフォルトの名無しさん :03/08/12 00:10
>>163
Windows2000AdvancedServerのこと?

165 名前:デフォルトの名無しさん :03/08/12 00:39
>>164


166 名前:デフォルトの名無しさん :03/08/12 03:13
すいません質問です

コマンドで
ftp -s:ftpcmd.txt>>ftplog.txt
とやっているのと同じことをプログラムから動作させたいのですがうまくいきません

ちなみにftpcmd.txtの内容は
open ****** <--サーバアドレス
*******   <--ユーザー名
********  <--パスワード
ascii
put ******  <--アップするファイル
bye
です

プログラムは
ShellExecute( NULL, "open", "ftp.exe", "-s:ftpcmd.txt>>ftplog.txt", NULL, SW_SHOWNORMAL);
でうまくいくと思ったんですが…

戻り値は32より大きな値が帰ってきているので関数自体は成功しているようです…

どなたかご教授お願いします

167 名前:デフォルトの名無しさん :03/08/12 03:26
>>166
ヒントだけ。
リダイレクトを処理しているのは cmd.exe や command.com です。


168 名前:デフォルトの名無しさん :03/08/12 03:31
%COMSPEC%

169 名前:166 :03/08/12 04:08
あ、リダイレクトはftp.exeの機能じゃないからあそこに記述しても意味がないですね
そりゃそうだ…
ご指摘ありがとうございます


170 名前:非常に抽象的 :03/08/12 13:25
>>149
あらかじめオブジェクト生成・破棄をラッピングしておいてそれ以外の生成・破棄を行わないようにしておく。

171 名前:デフォルトの名無しさん :03/08/12 13:34
>>158
ってゆーかウィルスは正にそういうことやってるらしい。
あとデバッガの類もか。

>>161
ぐぐってみたらこんなの出てきた。

ttp://f4.aaacafe.ne.jp/~madprog/memo/200302.html#08_t2
ttp://www.codeproject.com/dll/hookimport.asp
ttp://www.naughter.com/hookimportfunction.html

>>169
まだ微妙に判ってない悪寒。

172 名前:デフォルトの名無しさん :03/08/12 17:07
他のスレッドが作り出したウインドウがアクティブかどうかを
調べるにはどうすれば良いでしょうか?
GetActiveWindow()の場合、他のアプリではだめで
自分側の一番アクティブなハンドルを返して来てしまいます

相手側のウインドウ ハンドルは、FindWindowで分かっているのですが
簡単に一番アクティブかどうか知る方法はないでしょうか?

173 名前:172 :03/08/12 17:17
すいません、難しくてもありましたら教えてください

174 名前:デフォルトの名無しさん :03/08/12 17:22
>>172
いっそのこと自分でアクティブにしてしまうというのはどうか。

175 名前:デフォルトの名無しさん :03/08/12 17:37
>>172
GetWindowInfoでどう?

176 名前:デフォルトの名無しさん :03/08/12 17:38
GetForegroundWindow ?

177 名前:デフォルトの名無しさん :03/08/12 17:39
>>174
そうですね、その方が簡単で良いのかも知れないです
それにはGetForegroundWindow、SetForegroundWindowが良さそうなのですが
これは優先度が高いようで、アプリにかなり負担があります
出来れば負荷をかけないよう調べたいのですが


178 名前:デフォルトの名無しさん :03/08/12 18:07
Win98/NT4.0SP3以降にはGetGUIThreadInfoとかいうのもあるが

179 名前:デフォルトの名無しさん :03/08/12 18:20
>>177
> それにはGetForegroundWindow、SetForegroundWindowが良さそうなのですが
> これは優先度が高いようで、アプリにかなり負担があります
> 出来れば負荷をかけないよう調べたいのですが

初耳だな。どこにそんなこと書いてあった?

180 名前:デフォルトの名無しさん :03/08/12 18:33
もしかしてこれ?
>The system assigns a slightly higher priority to the thread that creates the foreground window than it does to other threads.
いや、まさかね

181 名前:デフォルトの名無しさん :03/08/12 19:02
>>179
SetActiveWindowの所にSetForegroundWindowは強制的にって
なっていたのでそう思いました
出来れば、自然にアクティブになるのを待っていたかったので

ありがとうございます、GetGUIThreadInfoは難しそうなので
GetForegroundWindowでやってみたいと思います

182 名前:デフォルトの名無しさん :03/08/12 19:06
ダイアログのエディットコントロールを自動で
入力状態にするにはどうすれば良いでしょうか?

183 名前:デフォルトの名無しさん :03/08/12 20:01
>>182
入力状態とはなんぞや

184 名前:デフォルトの名無しさん :03/08/12 20:02
フォーカス・・・か?

185 名前:デフォルトの名無しさん :03/08/12 20:24
>>184
そうです、DOSで言うとプロンプト上で点滅状態に
自動でしたいんですけど出来ますか?

186 名前:デフォルトの名無しさん :03/08/12 20:32
>>185
SetFocus()

187 名前:デフォルトの名無しさん :03/08/12 21:59
>>182
http://black.sakura.ne.jp/~third/system/winapi/win86.html
ここに書いてあるが、ダイアログ開始時にSetFocus()を使うなら、
WM_INITDIALOG の返り値をFALSEにする。
TRUEにすると、SetFocus()は無視されて、Tabストップのある一番
最初のコントロールにフォーカスが行く。



188 名前:デフォルトの名無しさん :03/08/13 02:15
矩形を描画したいのですが、例えば線幅が5のとき
線が矩形内にぴったり収まるようにしたいのですが
いいAPIとかあるのでしょうか?
計算してRectangleするしかないでしょうか?

189 名前:デフォルトの名無しさん :03/08/13 02:26
>>188
PS_INSIDEFRAMEスタイルでCreatePen()

190 名前:デフォルトの名無しさん :03/08/13 02:31
>>188
CreatePen(PS_INSIDEFRAME

191 名前:188 :03/08/13 02:49
>>189-190
できますた!
いつも助けてもらって
ありがとうございます。m(__)m

192 名前:185 :03/08/13 05:57
>>186,>>187
ありがとうございます m(_)m
バッチリできました

193 名前:デフォルトの名無しさん :03/08/13 23:10
winxp VB6
今wininetで簡単なブラウザ作ってるんですけど

hHttpRequest = HttpOpenRequest( _
hHttpSession, _
"GET", _
0, _
"HTTP/1.0", _
"http://www.yahoo.com/", _
vbNullString, _
0, _
0)

でhHttpRequestがemptyだよってエラーが出ます(´・ω・`)ショボーン
どうしたらいいっすかね?

194 名前:デフォルトの名無しさん :03/08/14 00:12
どうしようもないね。

195 名前:デフォルトの名無しさん :03/08/14 00:15
>>194
そうっすか。どうしようもない質問なのかどうしようもない症状なのかどっちなんすかね?
それすらもわからないと手が出ない・・・

196 名前:デフォルトの名無しさん :03/08/14 00:19
>>195 夏厨だと思われ

197 名前:デフォルトの名無しさん :03/08/14 00:24
>>196
もしかしてスレ違い?

198 名前:v :03/08/14 00:26
長瀬愛、白石ひより、かたせ美優から
なつかしのAV女優まで勢揃い。
セーラー服シリーズも大好評!
モロみえだから無料ムービー見にきてよ。
http://www.ncdonald.com/

199 名前:無料動画直リン :03/08/14 00:29
http://homepage.mac.com/miku24/

200 名前:デフォルトの名無しさん :03/08/14 07:32
気を取り直して、次の方どうぞ↓

201 名前:デフォルトの名無しさん :03/08/14 09:54
↑おまえがな

202 名前:↑↑↑↑↑↑↑↑ :03/08/14 09:58
おまえがな

203 名前:デフォルトの名無しさん :03/08/14 12:38
娘にオナニーみられてしまった

204 名前:デフォルトの名無しさん :03/08/14 12:44
氏ねw

205 名前:デフォルトの名無しさん :03/08/14 13:15
↑おまえがな

206 名前:デフォルトの名無しさん :03/08/15 01:06
HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
この後に
CloseHandle(hStdOut);
の必要はありますか?

207 名前:デフォルトの名無しさん :03/08/15 03:42
その後、決して使わないのならいいんじゃない?

208 名前:デフォルトの名無しさん :03/08/15 09:36
「決して使わない」にはprintfとかも含まれることに注意

209 名前:デフォルトの名無しさん :03/08/15 12:35
質問お願いします。市販品では、子モードレスダイアログ操作中でも
メインウィンドウのフォーカスは、失われないものが良くあります。

円滑な操作に必須なので、私もとりあえず、子モードレスダイアログの
操作中以外は、即座にメインウィンドウにフォーカスを移すようにしてみました。

しかし、これではメインウィンドウのタイトルが、灰色になったり元に戻ったりと
点滅してしまい、落ち着きませんでした(市販品は微動だにしません)。

綺麗に実装する方法を、教えていただければ幸いです。

210 名前:デフォルトの名無しさん :03/08/15 12:42
アクティブウィンドウが2つになるわけないし
自分でウィンドウ描くしかないでしょ

211 名前:デフォルトの名無しさん :03/08/15 12:54
ダイアログバーでないの

212 名前:デフォルトの名無しさん :03/08/15 13:12
ツールウィンドウとも言う

213 名前:209 :03/08/15 13:17
皆さんレスありがとうございます!

>>210
大体、クラスがダイアログだったのですが、
仰るとおり、自前描画してるのもいくつかありますね。

>>211-212
まさにこれみたいです。感謝感激。ダイアログの
スタイル変えただけで簡単に実現できました…よかったよかった。

なるほど…だから市販品子ウィンドウのタイトルは、どれも後付けだったのか…。

214 名前:keiko :03/08/15 13:49
例えばメモ帳のエディット コントロールを横取りしてサブクラス化かなにかして(意味不明でごめん)、秀丸みたいに改行記号とかタブ記号を表示できるようにしたいです。
そうゆうことって可能ですか? 自分でメモ帳を作るのではなくて、既存のアプリな内のコントロールに干渉したいのです。OE メール エディタとかエクセルのセル内に改行記号をひょ時させてみたいのですが・・・
ウィンドウタイトルを変えることはできたけれど・・

215 名前:デフォルトの名無しさん :03/08/15 14:13
可能です

216 名前:デフォルトの名無しさん :03/08/15 14:15
でも、あなたには無理。

217 名前:デフォルトの名無しさん :03/08/15 14:18
だって、あなたは

218 名前:デフォルトの名無しさん :03/08/15 14:25
妖怪人間♪

219 名前:デフォルトの名無しさん :03/08/15 14:37
>>218
つまらんことをいうのはYouかい?

220 名前:デフォルトの名無しさん :03/08/15 14:54
なにこのスレ(AA略

221 名前:山崎 渉 :03/08/15 15:11
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン

222 名前:keiko :03/08/15 15:37
言葉足らずですみません。
ヒントやサンプルなどをおしえていただけると幸いです。よろしくお願いします

223 名前:デフォルトの名無しさん :03/08/15 17:28
GetDCして描くとか

224 名前:デフォルトの名無しさん :03/08/15 17:50
ちょっとヒントやサンプルが貰えれば実現できるほど簡単な事では
無いと思うんだが、いかがなものか?

225 名前:206 :03/08/15 20:46
それでは、質問を少し変えて聞きたいのですが、
GetStdHandle()は対象のカーネルオブジェクトの
参照数を変更(1ふやす)しますか?

226 名前:デフォルトの名無しさん :03/08/16 07:09
age

227 名前:>>2ちゃんねらーの皆さん :03/08/16 07:14
2ちゃんねらーなどの間で、人気のある寺院が有ります。
これらの寺院にて諸願成就を祈願しましょう。(爆)

(1-4件目)  http://www.z-shoten.or.jp/
http://www.tctv.ne.jp/matuti/
http://www5b.biglobe.ne.jp/~ryumyoin/
http://www1.ocn.ne.jp/~tatsueji/
(5件目)
--------------------------------------------------------------
寺院名    吉祥山唐泉寺
通称     江戸川不動尊
所属宗派  真言宗泉涌寺派
住所     〒133−0051
        東京都江戸川区北小岩七丁目10−10
        京成電鉄の小岩駅から徒歩約15分
        (JR線の小岩駅は、
        京成電鉄の小岩駅とはもの凄く離れているので不可。)
電話番号  03−3658−4192
住職     高田正圓
        (女住職で、先代住職(高田真快)の奥さんであった模様。) 
本尊     不動明王
祈祷日及び祈祷時刻
        通常は毎日午前6時より(150分前後かかる模様)
        行われるが、毎月28日には(不動明王縁日として)
        午前11時にも(2時間ほどかかる模様)行われる。
祈祷料
(普通護摩)   3000円 5000円 10000円
(特別護摩)   30000円(21日間) 100000円(108日間)
          300000円(365日間)
--------------------------------------------------------------

228 名前:デフォルトの名無しさん :03/08/16 19:54
ボタンやチェックボックス、ラジオボタンなんかを押したときに出てくる、
憎々しいあの点線枠を消す方法ってありますか?

小さいコントロールとかだと、文字見えづらくなり邪魔で邪魔で
ぜひともご教授を

229 名前:>>2ちゃんねらーの皆さん :03/08/16 19:54
(1-4件目)  http://www.z-shoten.or.jp/
http://www.tctv.ne.jp/matuti/
http://www5b.biglobe.ne.jp/~ryumyoin/
http://www1.ocn.ne.jp/~tatsueji/
(5件目)
寺院名    吉祥山唐泉寺
通称     江戸川不動尊
所属宗派  真言宗泉涌寺派
住所     〒133−0051
        東京都江戸川区北小岩七丁目10−10
        京成電鉄の小岩駅から徒歩約15分
        (JR線の小岩駅は、
        京成電鉄の小岩駅とはもの凄く離れているので不可。)
電話番号  03−3658−4192
住職     高田正圓
        (女住職で、先代住職(高田真快)の奥さんであった模様。) 
本尊     不動明王
祈祷日及び祈祷時刻
        通常は毎日午前6時より(150分前後かかる模様)
        行われるが、毎月28日には(不動明王縁日として)
        午前11時にも(2時間ほどかかる模様)行われる。
祈祷料
(普通護摩)   3000円 5000円 10000円
(特別護摩)   30000円(21日間) 100000円(108日間)
          300000円(365日間)

230 名前:デフォルトの名無しさん :03/08/16 20:29
>>228
あれがないとキーボードで操作するのに困るんだが
どうしてもと言うなら、オーナードローボタンにして何もかも自分で描く。

231 名前:デフォルトの名無しさん :03/08/16 20:33
サブクラス化してWM_SETFOCUSを無視するという手も。
だが消さないで欲しい。理由は>>230と同じ。

232 名前:デフォルトの名無しさん :03/08/16 21:15
>>230
それは面倒なのでカスタムドロー推奨。

やはり同じ理由によりフォーカス時は差別化希望。
色を変えるとか。

233 名前:228 :03/08/16 21:44
>>230-232
レスありがとうございます。皆さんの操作性に対する配慮には頭が下がる思いです

最初からこう訊けば良かったのですが、ペイントの左にあるような、
ツール選択のボタンみたいなのを作りたくて…
見栄えのため点線枠ではなく、ボタンのへこみのみでFocusしたかったんです
マウス主体の、簡単なグラフィックエディタなので、お見逃しを…

早速試してみようと思います、感謝です

234 名前:デフォルトの名無しさん :03/08/17 03:24
ディスクの遅延書き込みを DeviceIoControlでフラッシュしたいんですけど...

9xでは Interrupt 21h Function 710Dh(Flushes file system buffers and caches)
を使えばいけそうなんですが、NTでそれに相当する FSCTL_〜 は無いのでしょうか?
フラッシュするにはヴォリュームのロック/アンロックを行うしかない?

235 名前:デフォルトの名無しさん :03/08/17 03:27
>>234
NT,2k,XPは直接デバイスに触ることはできない。

236 名前:あひゃ :03/08/17 10:33
外部アプリケーションが使用しているメモリの内容を書き換えたいと
思っています.市販ゲームの改造が目的です.
ゲームが使用しているメモリ空間からnバイトのバイナリデータ列を
検索してヒットするすべてのアドレスを調べたいのですが,
ヒープ領域でのアドレスを調べることができなくて悩んでいます.

今やってる方法は,ゲームを起動した状態でプロセスIDを取得し,
それをOpenProcess()で開き,ReadProceccMemory()を使って
ある程度のブロックごとに読み取り,memcmpで検索したいデータ列と
比較して下のアドレスから順番にアクセスしています.
ゲームを何度起動しても下からある程度までのアドレスは毎回同じで,
そこまではアクセスも順調なのですが,ある程度上に来ると
アクセスできなくなり,さらにゲームもフリーズしてしまいます.

プロセスメモリエディタ系で有名なExStandやねこまんま等で
そのゲームのプロセスを開いてみると,ヒープ領域のアドレスが
飛び飛びで存在しており,間にアクセスできないアドレスが存在しています.
上記の方法で下から順番にアクセスしていくと,そのアドレスにどうしても
途中でぶち当たってしまいます.単ににReadProcessMemory()が失敗して
返ってくるだけなら無視してどんどんアクセスしていけばいいと思うの
ですが,その時にゲームも止まってしまいます.

PC環境が変わるとアドレスが変わってしまいます.環境の違いにも
対応したいので,下からデータを検索していって,アクセス不可能な
領域があれば,次にアクセスできる領域まで飛んで検索を続行する
という処理を行いたいです.そのために,APIを使って
外部プロセスのヒープ領域のアドレス範囲を取得するといったことは
できないでしょうか.
プロセスメモリエディタなどはどういう処理をしているんでしょうか.


237 名前:デフォルトの名無しさん :03/08/17 10:54
Heap32ListFirst

238 名前:7 :03/08/17 11:06
▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼
 ☆★ 無修正DVD★☆なら 新宿歌舞伎町直送 ☆★

人気爆発新作ベスト9入荷
  堤さやか引退特集 憂木瞳 プロジェクトX No8 ベイビーフェイスをやっちまえ
 白石ひより・愛葉るび SNAPSHOT 地下映像陵辱援交 すぎはら美里痴女教師
 店頭販売の売れ筋のみ厳選してみました 安心の後払い
     http://book-i.net/moromoro/
   白石ひとみ 小森詩 山田まり 長瀬愛
@@ 及川奈央 レジェンド @@ 堤さやか 東京バーチャル 依然大好評
    
  サンプル画像充実  見る価値あり  最高画質
▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ 


239 名前:デフォルトの名無しさん :03/08/17 13:33
>>234
真っ正直な方法じゃ無理。

これでも使っとけ。ほれ。
ttp://www.sysinternals.com/ntw2k/source/misc.shtml#Sync


240 名前:234 :03/08/17 19:40
>>239
どうもです。そのページもチェック済みでした。がそのツールはソースが無いんで
すよね。惜しい。
DeviceIoControlで FSCTL_(UN)LOCK_VOLUME 使って一応できたんですが、やっぱ
これしかないのかな。

winioctl.h 眺めたら FSCTL_INVALIDATE_VOLUMEなんていう怪しいのがあったけど
どこにも情報がない(´・ω・`)

241 名前:236 :03/08/17 19:57
>>237
ありがとうございます
ただツールヘルプ関数はNT系OSで使えないようなのですが
その場合はどうしたらいいでしょう

242 名前:デフォルトの名無しさん :03/08/17 20:19
>Heap32ListFirst
>included in Windows XP, Windows 2000 Professional, Windows Me, Windows 98, and Windows 95

>CreateToolhelp32Snapshot
>Included in Windows XP, Windows 2000 Professional, Windows Me, Windows 98, and Windows 95.

MSDNもずいぶん非道い嘘を付くんだな。

243 名前:デフォルトの名無しさん :03/08/18 01:44
XP Pro の kernel32.dll の中には
Dependency Walker で見る限りは
Heap32ListFirst,CreateToolhelp32Snapshot
共に入ってるんだが…


244 名前:236 :03/08/18 06:09
>>242-243
すいません
MSDNの対応情報には確かに書いてあるんですが
どこかのページでNT系OSでツールヘルプ関数を使うと不具合があるため
psapiのEnumProcess等を使うとか書いてあったので

Heap32ListFirst/Nextを用いてやってみます
ありがとうございました

245 名前:デフォルトの名無しさん :03/08/18 12:20
お勧めの書籍教えてください

246 名前:デフォルトの名無しさん :03/08/18 12:28
>>245
書店に行って片っ端から立ち読み汁!重複するトピックが多分重要な部分だ。
その重要そうな部分を一番分かりやすくかつ深く書いてる本を買え。大切な
ことはその一冊で満足するなってことだ。買った本を読み終わったら上に書いた
ことを何度か繰り返せ。最初の印象とはずい分違っているはずだ。それは君が
成長したことに他ならない。健闘を祈る。

247 名前:デフォルトの名無しさん :03/08/19 00:20
>244
>どこかのページでNT系OSでツールヘルプ関数を使うと不具合があるため
>psapiのEnumProcess等を使う

たとえば、http://www.galliver.co.jp/writing/msdn/msdn15/
ここに、似たようなことが書いてあるが、使えないのは「NT4.0」であり
XPや2Kも含む「NT系OS」ではない。そのあたりを勘違いしていた?

248 名前:236 :03/08/19 08:48
>>247
まさにその通りです
自分の見たページにもNTとしか書いてなかったんですが
つい2000やXPも含めて考えていました

249 名前:デフォルトの名無しさん :03/08/19 09:54
NT4.0を単にNTと表記されると混乱の元だよな。

250 名前:デフォルトの名無しさん :03/08/19 15:30
「横書きテキスト+任意の"横幅"を持つアイコン画像」
と、言うデータを、リストとして表示したいのですが、
適当なコモンコントロールや、方法を教えて頂けないでしょうか。

アイコン付きリストビューが、最適かと思っていたのですが、
これはアイコンサイズが16x16(32x32)で固定のようで…無念です。


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