08/08/03 22:38:34
スレリンク(tech板:197-198番)
より誘導されて参りました。
どうかご教授の程お願いいたします。
22:デフォルトの名無しさん
08/08/03 22:57:56
ここの住人にそんな高度なこと判るわけないだろ
ここは初心者をバカにして優越感に浸って戯れるスレだ
23:デフォルトの名無しさん
08/08/03 23:11:46
>>21
> SetWindowLong(HANDLE, GWL_STYLE, WS_POPUP | WS_MINIMIZEBOX | WS_VISIBLE);
> SetMenu(HANDLE, NULL);
> SetWindowPos(HANDLE, HWND_TOP, 0,0,1400,1052, SWP_FRAMECHANGED | SWP_NOCOPYBITS);
こんなソース書いてるようだからWin32の根本から分かってないみたいだね
とりあえず「勉強して一通り理解してから質問しろ」とだけ言っておく
24:デフォルトの名無しさん
08/08/03 23:14:42
知らないならレスしないでください
25:デフォルトの名無しさん
08/08/03 23:20:57
>>21
>>23に同じだけど、それ、コンパイル通る?
26:デフォルトの名無しさん
08/08/03 23:28:07
試せばいいだろ
27:デフォルトの名無しさん
08/08/03 23:28:50
コンパイルってぷよぷよのことですか><
28:デフォルトの名無しさん
08/08/03 23:32:43
>>27
ワロタ
29:デフォルトの名無しさん
08/08/03 23:53:26
>23
そんな事言うなら代わりに書いてください、お願いします。
Win32プログラムなんざやったことも無いが他に書く人が居ないのだから仕方ない。
30:デフォルトの名無しさん
08/08/03 23:54:09
>25
通らない。一応これでコンパイルは通ったけども、効果なし。はて、どうしたものか
#include <windows.h>
#include <stdio.h>
BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
static TCHAR processName[MAX_PATH];
HWND hWnd;
hWnd = GetActiveWindow();
switch(ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
GetModuleFileName(0, processName, MAX_PATH);
processName[MAX_PATH-1] = '\0';
OutputDebugString("補助DLLロード確認");
MessageBox(0, processName, "補助DLLロード確認", MB_OK);
SetWindowLong(hWnd, GWL_STYLE, WS_POPUP | WS_MINIMIZEBOX | WS_VISIBLE);
SetMenu(hWnd, NULL);
SetWindowPos(hWnd, HWND_TOP, 0,0,1400,1052, SWP_FRAMECHANGED | SWP_NOCOPYBITS);
break;
case DLL_PROCESS_DETACH:
OutputDebugString("補助DLLアンロード確認");
MessageBox(0, processName, "補助DLLアンロード確認", MB_OK);
break;
}
return TRUE;
}
31:デフォルトの名無しさん
08/08/04 00:04:27
何をしたいのかさっぱりわかんね
32:デフォルトの名無しさん
08/08/04 00:50:32
リッチエディットコントロールの文字入力に上限はありますか?
33:デフォルトの名無しさん
08/08/04 00:58:08
>>29
ここは宿題スレじゃない
自分で勉強して書く気が無いなら帰れ
34:デフォルトの名無しさん
08/08/04 01:03:50
> そんな事言うなら代わりに書いてください、お願いします。
> Win32プログラムなんざやったことも無いが他に書く人が居ないのだから仕方ない。
何このゆとり世代・・・
35:デフォルトの名無しさん
08/08/04 01:41:23
>33
宿題スレは宿題しか取り扱ってくれないのですがどうしましょう?
>34
プログラマでもないならコード書きたくないのは当然だろうに。
頼めるところがあるならとうの昔に頼んでる。
第一対象のソフトが無いなら動作確認も取れないし、作れる人間自体が限られてしまう。
36:デフォルトの名無しさん
08/08/04 01:53:51
>>35
どこの世界にお前の代わりに無償でコード書く馬鹿がいるんだよ
それともそれ相応の金額を支払ってくれるのか?
37:デフォルトの名無しさん
08/08/04 02:00:22
能書き垂れるぐらいなら書いてやればいいだろ
プログラマなんて底辺の職業に就いてるクズが偉そうに・・・
何もしないなら迷惑だから黙っとけ
38:デフォルトの名無しさん
08/08/04 02:04:10
>>37のことですね.わかります
39:デフォルトの名無しさん
08/08/04 02:05:48
ここで募集すればいいじゃん。時給1500円の底辺PGが作ってくれるよ
URLリンク(www.engineersguide.jp)
40:デフォルトの名無しさん
08/08/04 02:09:43
結局このスレにコード書ける人間は居ないみたいだな
41:デフォルトの名無しさん
08/08/04 02:11:01
煽ってもコードは出てこないぞ
42:デフォルトの名無しさん
08/08/04 02:13:24
つうか元のツールの製作者に聞けよ
「古いエロゲーをフルスクリーンでやりたいです」と
43:デフォルトの名無しさん
08/08/04 02:17:48
自分のオナニーの為に他人にコード書かせるのかw
44:デフォルトの名無しさん
08/08/04 03:02:59
エラー値くらい調べるのは基本だぜ
45:デフォルトの名無しさん
08/08/04 03:16:08
誰一人まともなアドバイスができてなくてワロタw
いつの間にここまでレベル落ちたんだよここ
46:デフォルトの名無しさん
08/08/04 03:23:52
質問者のレベルに合わせております^^
47:デフォルトの名無しさん
08/08/04 04:53:21
ケチってないでリクナビで募集でもかけろよ
48:デフォルトの名無しさん
08/08/04 07:43:04
>39, 47
実際完動するものを作ってくれる人が居るなら少量の謝礼ぐらいは払っても良いとは思ってる。
とは言えその辺で募集できる類の物でもないだろうに。
別に会社組織として動かすわけでもないのだから。
>42
連絡取れるなら苦労しない。掲示板も動いてないし。
ついでに言うなら、元の書き込み見れば判るとおり、フルスクリーン化はエラー対策なのでフルスクリーンにこだわってるわけじゃない。
元のツールが窓化強制(設定はあるけど動いてないみたいだ)で色パレットエミュレート機能だけを利用できないので他のソフトのためにフルスクリーンできるようになるなら越したことは無いけど。
49:デフォルトの名無しさん
08/08/04 07:46:35
そもそもAPIの話なの?これ…
50:デフォルトの名無しさん
08/08/04 07:48:23
>>48
だから、お前がエロゲーでオナニーする為になぜ俺達がコード書いてやらなきゃならんのだよ
自分のことなんだから自分で何とかしろよ
51:デフォルトの名無しさん
08/08/04 08:00:09
>50
だから何とかするために自分でやろうとして聞きにきたら「帰れ」じゃ話にならないわけで。
そもそも対象はエロゲだが目的は単に毛色の変わったローグライクやりたいだけだぞ。
52:デフォルトの名無しさん
08/08/04 08:06:39
>>51
[プログラム板] 【初心者歓迎】C/C++室 Ver.57【環境依存OK】
スレリンク(tech板)
んじゃたらい回しとく。
53:デフォルトの名無しさん
08/08/04 09:12:50
どうゆうことなの・・・
54:デフォルトの名無しさん
08/08/04 09:13:51
これはもうだめかもわからんね
55:デフォルトの名無しさん
08/08/04 09:50:25
>>23
こんなソース書いてるようでは何とかできるレベルに程遠い訳だが、それすら理解できてないからなぁ・・・
56:デフォルトの名無しさん
08/08/04 09:55:51
分からないなら初心者スレで学習してからやればいい
コード書きたくないんであればソフトウェア板に「作ってくださいスレ」があるし
ここはコード募集スレじゃないから
57:デフォルトの名無しさん
08/08/04 10:17:17
ゆとり世代の辞書には学習や勉強って言葉は無いからね
58:デフォルトの名無しさん
08/08/04 10:59:49
ここの住人もスルーするということを学習しないよね
59:デフォルトの名無しさん
08/08/04 11:05:09
ここの住人もゆとり世代だからね
60:デフォルトの名無しさん
08/08/04 15:57:56
>55-57
そもそも>23の部分は>30で直してるんだけど。
全く学習する気が無い扱いされるのは心外。何とか出来る出来ない、じゃなくて今の所やる人間が自分しか居ないのだから。
まあ、つくってくださいスレ行くからいいけどさ。スレ見る限りじゃあっちのスレの方がこちらの需要に合ってるだろうし。
じゃあお邪魔しましたね。一応スレ混乱を招いたお詫び申し上げておくよ。
61:デフォルトの名無しさん
08/08/04 16:09:06
スレ違いを開き直りかよ。
もともとフックするためのDLLなのに、その中にコード書いてどうするんだ。
62:デフォルトの名無しさん
08/08/04 16:37:52
>61
何処がスレ違い。
元々は、
必要な機能があるが、コードを書く人間も居なければ頼めるところもない → 自分でやらざるを得ないのでど素人ながらも何とかそれっぽくして相談に来た
のだからスレ違いでも何でもないわけで。
結果としてより需要に合った、「頼める可能性のあるスレ」を紹介されたのでそちらに行く、といってどうして開き直りになるよ。
63:デフォルトの名無しさん
08/08/04 17:05:21
| ̄``''- 、
| `゙''ー- 、 ________
| ,. -‐ ''´ ̄ ̄`ヽ、_ /
|, - '´ ̄ `ヽ、 /
/ `ヽ、ヽ /
_/ ヽヽ/
/ / / / / / ヽハ
く / /! | 〃 _/__ l| | | | | | | ||ヽ
\l// / | /|'´ ∧ || | |ー、|| | | l | ヽ
/ハ/ | | ヽ/ ヽ | ヽ | || /|ヽ/! |/ | ヽ
/ | ||ヽ { ,r===、 \| _!V |// // .! |
| || |l |ヽ!'´ ̄`゙ , ==ミ、 /イ川 |─┘
| ハ|| || | """ ┌---┐ ` / // |
V !ヽ ト! ヽ、 | ! / //| /
ヽ! \ハ` 、 ヽ、__ノ ,.イ/ // | /
┌/)/)/)/)/)/)/)/)/)/)lー/ ` ー‐┬ '´ レ//l/ |/
|(/(/(/(/(/(/(/(/(/(/│|| | \ 〃
r'´ ̄ヽ | |.ト / \
/  ̄`ア | | | ⌒/ 入
〉  ̄二) 知ってるが | | | / // ヽ
〈! ,. -' | | ヽ∠-----', '´ ',
| \| | .お前の態度が | |<二Z二 ̄ / ',
| | | _r'---| [ ``ヽ、 ',
| | | 気にいらない >-、__ [ ヽ !
\.| l. ヽ、 [ ヽ |
ヽ| \ r' ヽ、 |
ヽ、 |
64:デフォルトの名無しさん
08/08/04 17:08:13
>>62
>>1
65:デフォルトの名無しさん
08/08/04 17:42:43
プログラムを起動してウィンドウが作られた時、マウスカーソルがそのウィンドウの上にあると、砂時計になってしまいます。
一度そのウィンドウからカーソルを出すと、普通のカーソルに戻り、それからそのウィンドウの上にカーソルを持っていっても砂時計にはなりません。
ウィンドウクラスのhCursorにはNULLを入れています。
原因が予想できる方がいたら教えてください。
よろしくお願いします。
66:デフォルトの名無しさん
08/08/04 17:58:37
LoadCursor(NULL, IDC_ARROW)
67:65
08/08/04 18:10:25
>>66
直りました。
ありがとうございます。
NULLじゃダメなんですね。
68:デフォルトの名無しさん
08/08/04 18:19:13
ほんと、このスレは初心者をボコボコに叩いて遊びたいだけの性格悪い奴が多いなー
69:デフォルトの名無しさん
08/08/04 18:26:22
このスレっていうか、この板
70:デフォルトの名無しさん
08/08/04 18:41:23
この板っていうか、2ちゃんねる
71:デフォルトの名無しさん
08/08/04 18:41:43
2ちゃんねるというか世の中
72:デフォルトの名無しさん
08/08/04 19:08:44
世の中っていうか、世の末
73:デフォルトの名無しさん
08/08/04 19:41:18
ウインドウの中で右クリックしたら別の矩形ウインドウがポップアッップしてくるようにしたいです。
74:デフォルトの名無しさん
08/08/04 19:42:20
続き どうすればいいか教えてください。
75:デフォルトの名無しさん
08/08/04 19:43:17
右クリックしたら別の矩形ウインドウがポップアッップしてくるようにすればいいんじゃね?
76:デフォルトの名無しさん
08/08/04 19:56:24
WM_RBUTTONDOWNでCreateWindow
クリックとして検知するならBUTTONDOWN+BUTTONUPにするかは状況次第
77:デフォルトの名無しさん
08/08/04 19:57:09
WM_CONTEXTMENUだろjk
78:デフォルトの名無しさん
08/08/04 20:15:47
WM_CONTEXTMENUって知名度低いよね。
メッセージの名称通り、コンテキストメニューを出すのに良いタイミングで送られてくるのに。
79:デフォルトの名無しさん
08/08/04 20:34:53
WM_RBUTTON~だとマウスで右クリした場合にしか対応できない
大概そういう場合はAppキーにも対応する必要のある事が多い
というかその手のキーボード操作ができないソフトなんてゴミ
80:デフォルトの名無しさん
08/08/04 21:45:21
マウスカーソルをドラッグ中だけウインドウの外に出せないようにしたいんだけどどうすればいいのですか?
81:デフォルトの名無しさん
08/08/04 22:02:32
ClipCursor
82:デフォルトの名無しさん
08/08/04 22:04:41
BOOL OnDragMauseOutOfWindow(HWND hWnd)
83:デフォルトの名無しさん
08/08/04 22:14:27
Mause
84:デフォルトの名無しさん
08/08/04 22:17:08
Mausuでした
85:デフォルトの名無しさん
08/08/04 22:27:30
スクロールバーの下部分に+とか-とかのボタンがついてるソフトってあるじゃないですか!
あれってどうやって実装してるんですか?Win32APIとC言語だけでも実装できるんですか?
86:デフォルトの名無しさん
08/08/04 23:39:23
ボタン描くAPIある
87:デフォルトの名無しさん
08/08/05 02:27:18
>>85
SetScrollBarButtons(hwnd, SBB_BOTTOM | SBB_PLUS | SBB_MINUS, TRUE);
88:デフォルトの名無しさん
08/08/05 04:52:12
>>87
お前氏ねよ
89:デフォルトの名無しさん
08/08/05 05:00:22
誰か分かる人居ないのですか?
90:デフォルトの名無しさん
08/08/05 05:34:13
>>89
>>87
要するに 自 作 し ろ ということ。
91:デフォルトの名無しさん
08/08/05 12:06:10
DrawFrameControl
あるいはuxthemeのテーマ描画API
92:デフォルトの名無しさん
08/08/05 12:10:38
アプリケーション(.exe)をDLLとして動作させる方法ってありませんか?
中身は一緒だけど単独で動作させたい場合とDLLとして動作させたい場合があるのです。
93:デフォルトの名無しさん
08/08/05 12:11:59
基本的にDLLとして全部実装して、単独実行用にそのDLLを呼ぶだけのexeを作る
94:デフォルトの名無しさん
08/08/05 12:13:30
EXEでも関数のエクスポートはできるよ。
95:92
08/08/05 12:30:15
>>93
それは考えましたが、単独実行用はexe一個にしたかったため別の方法を模索してました。
>>94
そうなんですか?
知りませんでした、色々と試してみます。
ありがとうございました。
96:デフォルトの名無しさん
08/08/05 13:31:24
スピンコントロールを使ってて、
そのスピンコントロールの親ウィンドウにスクロールバーがあるんですが、
スクロールバーの動きを感知しようとして
WM_H(V)SCROLLメッセージを処理したら、
スピンコントロールを動かしても、WM_H(V)SCROLLメッセージが反応します。
WM_H(V)SCROLLメッセージが、
スクロールバーによるメッセージなのか、
スピンコントロールによるメッセージなのか、
区別する方法をご存知の方、教えて下さい。
97:デフォルトの名無しさん
08/08/05 13:40:46
LPARAMに入るウィンドウハンドルを見なさい
98:デフォルトの名無しさん
08/08/05 16:50:41
いやです
99:デフォルトの名無しさん
08/08/05 16:55:59
お断りします
100:デフォルトの名無しさん
08/08/05 17:21:18
じゃあ俺が見るよ
101:デフォルトの名無しさん
08/08/05 17:25:49
いや、俺が見る
102:デフォルトの名無しさん
08/08/05 17:40:09
いやいや、ここは俺が
103:デフォルトの名無しさん
08/08/05 17:41:17
もうそういうのいいから
104:デフォルトの名無しさん
08/08/05 17:46:29
Windows Media Player 11のプラグイン作りたいんだが、そういうのはどのSDKが必要なんだ?
Platform SDKでいいんかな。
105:デフォルトの名無しさん
08/08/05 18:11:32
COMポートのGetCommPropertiesを実行したところ、LPCOMMPROP構造体dwMaxBaudがBAUD_USER ユーザー設定可変値
になっているのですが、これはSetCommState()でdcb.BaudRateを設定するときCBR_115200を超えて好きな値を設定できるんですか?
CBR_のdefineがないので、230400を直接指定したのですが、SetCommStateでパラメータ異常になってしまいます。
通信速度230400を設定するにはどうすればいいんでしょうか?
106:デフォルトの名無しさん
08/08/05 18:36:19
エクスプローラのフォルダツリーペインみたいに
ツリービューにディレクトリ構造を表示させたいのですが
何かいいサンプルとか無いですか
107:デフォルトの名無しさん
08/08/05 18:44:48
>>104
Windows Media Player 11 SDK
108:デフォルトの名無しさん
08/08/05 18:51:41
>>105
できないからエラーリターンなんでしょ
109:デフォルトの名無しさん
08/08/05 18:56:01
COMポートは何?
UART使ったほんとのCOMポートなら、ハードで上限決まるけど。
110:デフォルトの名無しさん
08/08/05 19:12:58
マザボについてるCOM1シリアルです。
111:デフォルトの名無しさん
08/08/05 19:43:35
その制御チップで上限が決まるって話でしょ?
112:デフォルトの名無しさん
08/08/05 20:13:14
それで上限を知りたくてGetCommPropertiesを実行したところ、LPCOMMPROP構造体dwMaxBaudがBAUD_USER ユーザー設定可変値
になっているのですが、この関数の使い方の解釈は間違ってますか?
113:デフォルトの名無しさん
08/08/05 20:17:57
エラーが返ってきたらその速度で使えないってことでいいじゃん。
114:デフォルトの名無しさん
08/08/05 20:19:54
そうか!すごいわかりやすい。それでいいやありがと!
115:デフォルトの名無しさん
08/08/06 00:22:50
APIの情報(関数名,戻り値の型,引数名,引数の型)の一覧がCSVとか、
プログラムで取り込みやすい形式になっているものがほしいんですが、
どなたかご存じないですか?
最悪,MSDNのWebページをパースするしかないですかね?
116:デフォルトの名無しさん
08/08/06 00:31:34
ヘッダファイルをパースする方がまだマシじゃね
117:デフォルトの名無しさん
08/08/06 00:53:19
前はwin32api.csvってのがあったな
118:デフォルトの名無しさん
08/08/06 01:03:55
doxygenに食わすと判りやすい形でだしてくれる、ってな話を
大昔にradium softwareあたりで読んだけど
119:デフォルトの名無しさん
08/08/06 01:18:42
>>117
win32api.csvって付かなくなったの?
120:デフォルトの名無しさん
08/08/06 02:56:34
通常のマウス操作とmouse_event等で擬似的に生成されたマウス操作とを判別するにはどうしたらいいんでしょうか。
121:デフォルトの名無しさん
08/08/06 04:59:56
不可能
122:120
08/08/06 09:16:02
おお、ばっさり切られました。
今チート対策研究中なんですが、オートマウス防止って難しいんだなあ。
123:デフォルトの名無しさん
08/08/06 09:40:38
マウスの軌道でも監視してて不自然な挙動してたら撥ねるとか
124:デフォルトの名無しさん
08/08/06 10:45:17
>>116-118
ありがとうございます。doxygenちょっと試してみます。
125:デフォルトの名無しさん
08/08/06 10:46:37
>>120
XP以降になるけどRaw Input APIとかってどうなの?
126:デフォルトの名無しさん
08/08/06 12:24:31
>>122
チートはされても問題ないシステムを作れ。つーか操作系はチートに分類すべきではないし基本的にブロックできない。
nProみたく頭の悪いことをしたら駄目だぞ。
127:デフォルトの名無しさん
08/08/06 12:38:47
nProtectのようなコードを書いたらプログラマとして終わりだよな。
128:デフォルトの名無しさん
08/08/06 13:14:10
というかそんなソフトの需要がある現状が問題じゃないのか
オンラインゲームでチートする馬鹿がいるからだろ
129:デフォルトの名無しさん
08/08/06 13:33:00
そりゃ、泥棒がいるから鍵つけなきゃならない世の中がおかしい、と言うようなもんで
正しいけど現実的じゃないような。
130:デフォルトの名無しさん
08/08/06 13:39:08
OS側で細かく権限制御できないんだからサードパーティでやるしかないだろ
131:デフォルトの名無しさん
08/08/06 13:51:21
そもそもCreateRemoteThreadとかRead/WriteProcessMemoryなんて
チート御用達APIが一般アプリで使い放題というWindowsのセキュリティの甘さが問題
132:デフォルトの名無しさん
08/08/06 14:32:24
オープンソースのOSで動かすもののほうが、何でもやりたい放題にできるべ。
133:デフォルトの名無しさん
08/08/06 14:45:20
↑話を理解してない馬鹿
134:デフォルトの名無しさん
08/08/06 14:47:18
理解できないとそれしか貼り付けられないバカがまた来たか
135:デフォルトの名無しさん
08/08/06 14:58:36
↑話を理解してない大馬鹿
136:デフォルトの名無しさん
08/08/06 15:11:06
チョン製だから仕方ない・・・
137:デフォルトの名無しさん
08/08/06 16:29:54
>>125
そういえば、MAMEがRaw Input APIを使うようになって
JoyToKeyが使えなくなったという話を聞いたことがあるな。
138:デフォルトの名無しさん
08/08/06 17:15:36
アドレスバーみたいにエディットボックスにいくと自動で全選択させるエディットボクスをつくるAPIを教えてくださいm(_ _)m
139:デフォルトの名無しさん
08/08/06 17:18:41
自分でイベントをハンドルしてEM_SETSELでも送れ
140:デフォルトの名無しさん
08/08/06 17:38:17
>>138
あれはComboBoxの機能だろ
141:デフォルトの名無しさん
08/08/06 18:59:42
レスありがとうございますm(^ ^)m
どうやら自分はサブクラス化とかわからないそうなので
ボンボボックスを代用したいと思います!
142:デフォルトの名無しさん
08/08/06 19:12:54
>ボンボボックス
0点
143:デフォルトの名無しさん
08/08/06 19:14:12
>ボンボボックス
ワロスw
144:デフォルトの名無しさん
08/08/06 19:58:54
>>142-143
そういう揚げ足取りいらないから。
145:デフォルトの名無しさん
08/08/06 20:01:33
ここは面白い発言に笑うことも許されない陰気なインターネットですね
146:デフォルトの名無しさん
08/08/06 20:51:42
>>138
EN_SETFOCUSがきたらEM_SETSELするだけかと
147:デフォルトの名無しさん
08/08/06 21:04:55
>>144
あげあしっていうか、ボンボでなけりゃスルーされたとこだけど、なにせボンボだからなぁ
148:デフォルトの名無しさん
08/08/06 21:16:35
お礼レスなんてスルーでいいだろ
149:デフォルトの名無しさん
08/08/06 21:56:58
どうでもいいが、テキストの途中を編集しようと位置決めしてクリックしたのに
勝手に全選択されて、もう一度クリックしないといけないUIはイライラする
150:デフォルトの名無しさん
08/08/06 22:13:24
勝手にイライラしとけば?
151:120
08/08/06 22:56:43
今回チート対策を調べているのは自分の勉強の側面が強いです。
>>123
それは考えてました。
判定に自分のセンスが試されそうな話ですね。
>>125
ざざっと調べてみましたが、使えそうな匂いがしますね。
これから詳しく調べてみます。
>>126
チートはされても問題ないシステムを作れ、との言葉、心に留めます。
今回はテーマが違うのであれですが。
152:デフォルトの名無しさん
08/08/06 23:32:24
>>20
writefileで何を書き込めば良いんでしょうか?
createfileのときはドライブを開けば良いんですよね?
153:デフォルトの名無しさん
08/08/06 23:38:18
nProって何やってるわけ?
154:デフォルトの名無しさん
08/08/06 23:38:47
監視
155:デフォルトの名無しさん
08/08/07 01:12:55
rootkitみたいなこと
156:デフォルトの名無しさん
08/08/07 01:57:18
チート対策の勉強といいつつ実はチート方法を勉強したいのだろう
157:デフォルトの名無しさん
08/08/07 06:51:42
>>153
rootkitのためのネイティブAPIのフックとか時間関係をいじれなくするためのAPIのフックとか、ソフトウェアからのキー入力をはじくためのフィルタドライバじゃね。
結果、サードパーティの特殊なハードが使えんし(6ボタン以上あるマウスとか自由に割り当て可能なキーのあるキーボードとか)
OSのバージョンがあがるたびにブルースクリーンだすような代物。
158:デフォルトの名無しさん
08/08/07 07:51:06
ダブルバッファリングについて質問です。
子ウインドウ(ボタンやボックスなど)が多数存在する状況で、ウインドウ全体を再描画したいのですが、ちらついてしまいます。
まず子ウインドウの内容も全部まとめて一つのオフスクリーンに描画してからBitbltで画面に表示、ということが出来れば、と考えたのですが、方法が分かりません。
よろしければ方法を教えていただけないでしょうか。もしこの方法で無理なら、ちらつきを抑える代替案を挙げていただけないでしょうか。
よろしくお願いします。
159:デフォルトの名無しさん
08/08/07 07:56:20
> 6ボタン以上あるマウスとか自由に割り当て可能なキーのあるキーボードとか
そもそもこういうの自体OSのバージョン上がった時にドライバ用意できないと動かない可能性高いが
160:デフォルトの名無しさん
08/08/07 09:09:48
>>158
親にWS_CLIPCHILDRENをつければ、子をオフスクリーンに描く必要はないんでない
161:デフォルトの名無しさん
08/08/07 11:26:43
3DのRPGを作ろうと思っているのですがC言語とC++を一通り学んだので
Win32APIで、ゲームを作る上で必須な項目
ってなんですか?
自分で調べた結果必要だと思った↓
GDI描写、フォントとテキスト、入力処理、ウィンドウ操作、メニュー、ビットマップ、
アニメーション、を勉強しました。
他にこれはやったほうがいいよ、というのがあったら教えてください
Win32APIの基礎を覚えたらDirectXの勉強をしようと思います。
162:デフォルトの名無しさん
08/08/07 13:01:37
このスレで聞かれても、Win32APIを勉強しろとしか答えようがないがw
163:デフォルトの名無しさん
08/08/07 13:11:05
ものすごく遠い道のりだな
気づいたときにはみんな大人になっていたというオチだ
164:デフォルトの名無しさん
08/08/07 13:26:40
jpegやpngを表示するにはどうすればいいんですか?
ファイルヘッダーを文字で表示することは出来たのですが、ここからどうしていいかが分かりません。
詳しい手順を教えてくれませんか?
165:デフォルトの名無しさん
08/08/07 13:37:59
Gdiplus::Image img(L"hoge.jpg");
Gdiplus::Graphics g(hdc);
g.DrawImage(&img, 0, 0);
166:165
08/08/07 13:53:19
GDI+を使えばいいんですね。
ありがとうございます。
ただ、上手くいえないんですけど、そういうのって自分で書けないんですか?
CreateCompatibleDCとかLoadBitmapの中身が見てみたいんですけど、どこかで見れますか?
167:デフォルトの名無しさん
08/08/07 13:55:03
自分でjpeg書きたいなら、libjpeg、libpngのソース見たり利用したりすればいいじゃない。
168:デフォルトの名無しさん
08/08/07 14:00:12
CreateCompatibleDCについてはwineのソースでも読んでみたらいいんじゃねえのか
それはそれで楽しいとは思うが実にはならないと思う
169:164
08/08/07 14:09:49
レスありがとうございます。
紹介してもらったものを見てみましたが、自分には早すぎたみたいです。
何年後かに挑戦します。
170:デフォルトの名無しさん
08/08/07 17:03:20
日経ソフトウェアで前に紹介されてたな…
171:デフォルトの名無しさん
08/08/07 17:05:02
JPEGのエンコーダ、デコーダ実装で一冊本になってるよ。
172:デフォルトの名無しさん
08/08/08 00:46:48
なんか本が一冊でてたな
C++的には全然イケてないコードだったのは覚えてる
173:デフォルトの名無しさん
08/08/08 01:00:04
DCTが分かればjpegなんて大したこと無いよ
174:デフォルトの名無しさん
08/08/08 07:16:18
このスレにWikiなんてあったんだなw
175:前スレVirAlloc相談者
08/08/08 07:51:49
また、からかわれ覚悟で出て来ましたですヨ。
先ず、懸案の VirtualAlloc() などの件は無事終わった。いろいろに感謝。
チラ裏になるが、VirtualFree() の flag の指定が悪く、使った後の解放
が出来てなくて、5MBのJpeg写真を読み込んで、31MBのDIBを吐き出す操作
を27回繰り返すと、「この操作を行うにはメモリが足りません」とか宣
まわった。Jpeg解凍のDLLは、Dos時代から使っているソースから自分でコ
ンパイルしたもの。VirtualAlloc()関係のソース例は意外に少ない印象で
一時困ったが、お笑いなのは、自分のプログラム内にもう使用例があって
これで解決した次第。因みに、RamDisk操作で
//diskio.c Copyright (C) 1999-2003 K.Takata
#define AllocDiskIO(siz) VirtualAlloc(NULL, siz, MEM_COMMIT, PAGE_READWRITE)
#define FreeDiskIO(buf) VirtualFree(buf, 0, MEM_RELEASE)
がソースにあった。k.Takataさんに改めて感謝。
176:デフォルトの名無しさん
08/08/08 08:41:51
もう出てこなくていいよ・・・
177:デフォルトの名無しさん
08/08/08 09:14:31
ああ、new/mallocでいいんじゃね?っていう話?
178:デフォルトの名無しさん
08/08/08 09:36:14
>>175
前スレもそうだが、こいつって質問者を装って自己陶酔しまくった日記書いてるだけなんだよな
こういう自己中な奴ってリアルでも空気読めなくて周囲からウザがられてるんだろうな
179:デフォルトの名無しさん
08/08/08 09:44:38
>>175
LSI86-C という脳内コンパイラについて教えてください。
180:デフォルトの名無しさん
08/08/08 11:33:14
virtualFree(前スレVirAlloc相談者);
181:デフォルトの名無しさん
08/08/08 11:41:36
>>176-180
かまうなよ
かまう奴が居るからこの手のは居座る
182:デフォルトの名無しさん
08/08/08 11:42:10
error C2065: 'virtualFree' : 定義されていない識別子です。
183:デフォルトの名無しさん
08/08/08 11:47:43
>>181
かまってほしくない人はレスしないでください
184:デフォルトの名無しさん
08/08/08 21:15:26
#include <windows.h>
#define APP_NAME TEXT("Sample_MainWindow")
typedef struct _ThreadParam {
HWND owner;
POINT point;
} ThreadParam;
DWORD WINAPI ThreadFunc(LPVOID vdParam){
HDC hdc;
RECT rect;
ThreadParam param;
_ThreadParam { の_って付けるとどういう意味があるんですか?
185:デフォルトの名無しさん
08/08/08 21:21:42
アンダースコア+大文字で始まる識別子は言語によって予約されているので、
構造体タグにそのような名前をつけるのはよくありません。
もしお読みの本かなにかにそのようなコードが載っているのであれば、
今すぐ窓から投げ捨ててください。
186:デフォルトの名無しさん
08/08/08 21:22:59
いや、誰かが拾って読んでしまうかもしれん。
焼き捨てるべきだ。
187:デフォルトの名無しさん
08/08/08 21:27:20
「Windowsゲームプログ○ミング」という本なのですが、捨てたほうがいいのですか・・・。
専門学校の教科書なんですけど捨てるのはやばいので金庫に入れておきます。
学校で使うときに出します。
188:デフォルトの名無しさん
08/08/08 21:32:13
そんな本を教科書に使うってことは、どうせ専門学校だろ。
人生終わったな。
悪いことは言わん。
今すぐやめてコンビニの店員にでもなるんだな。
189:デフォルトの名無しさん
08/08/08 21:36:39
すいませんもう200万払っちゃったので・・・。
後の祭りですね・・・。
ゲームクリエイター学科なのにゲーム会社に就職は1割以下で
ほとんどが工場のベルトコンベアーの保守プログラム関係みたいです(最近知った)
愚痴ってすいません・・。
独学で勉強してがんばります!
それでは失礼します。
190:デフォルトの名無しさん
08/08/08 21:37:35
>>185-188
typedef struct _FILETIME {
DWORD dwLowDateTime;
DWORD dwHighDateTime;
} FILETIME, *PFILETIME, *LPFILETIME;
Win32SDKのヘッダだってそうなってるんだが。
馬鹿じゃねーの?
191:デフォルトの名無しさん
08/08/08 21:38:20
>>187
一応補足しとくと、
アンダースコア+(アンダースコア or 大文字) で始まる識別子は常に予約されている。
その他のアンダースコアで始まる識別子はファイルスコープで予約されている。
予約済み識別子を使用した場合の動作は未定義。
一般的な流儀として構造体タグは、
typedef struct ThreadParam_ { } ThreadParam; // お尻にアンダースコアつけるとか、
typedef struct tag_ThreadParam { } ThreadParam; // tag_ と書くとか、
typedef struct ThreadParam { } ThreadParam; // 何もつけない。
192:デフォルトの名無しさん
08/08/08 21:39:02
>>191
ありがとうございます_の謎が少し理解できました
193:デフォルトの名無しさん
08/08/08 21:40:58
同人ゲーム作りが近道と言ってみるテスト
学校なんて何も教えてくれないよ。就職斡旋するだけだからw
194:デフォルトの名無しさん
08/08/08 21:43:15
そもそもゲーム業界なんか目差してる時点で人生終わっとる
195:デフォルトの名無しさん
08/08/08 21:45:32
>>190
処理系のために予約されているのだから処理系付属のライブラリが使用してもなんら問題はない。
196:デフォルトの名無しさん
08/08/08 21:56:18
>>195
処理系付属のライブラリ=Win32SDKとでも言いたいのか
馬鹿丸出し
197:デフォルトの名無しさん
08/08/08 21:59:17
本職組み込み、趣味でゲーム作りが最強
198:デフォルトの名無しさん
08/08/08 22:02:17
処理系だの未定義だの不定だのいう宗教じみた言語厨ってどこにでもいるよな
MS自体そんな事なーんも考えてないのにねぇ
199:デフォルトの名無しさん
08/08/08 22:02:22
WSDKは単体配布だけじゃなくて、VC++付属のやつもあるが。
コンパイラについてくるぐらいだから処理系付属といっても差し支えないだろ。
200:デフォルトの名無しさん
08/08/08 22:05:25
だいたい処理系は未定義な動作をどういう動作にするか自由に決められるんだから、
処理系を作ったのと同じ組織が書いたコードが動作の未定義な部分を含んでいてもなんら差し支えない。
201:デフォルトの名無しさん
08/08/08 22:06:53
> コンパイラについてくるぐらいだから処理系付属といっても差し支えないだろ。
こんなアバウトな俺様定義するくせにアンダースコアには拘るのか
202:デフォルトの名無しさん
08/08/08 22:13:44
訳:かまってほしいな
203:デフォルトの名無しさん
08/08/08 23:28:35
>>175
>#define FreeDiskIO(buf) VirtualFree(buf, 0, MEM_RELEASE)
あー、そのコードバグってますんで、以下のでよろしく。
#define FreeDiskIO(buf) VirtualFree(buf, 0, MEM_RELEASE | MEM_DECOMMIT)
204:デフォルトの名無しさん
08/08/08 23:39:00
ここで奴がキモイ自己陶酔日記を引っさげて登場
↓ ↓ ↓ ↓
205:デフォルトの名無しさん
08/08/08 23:43:19
CryptCreateHashで作った
HCRYPTHASHオブジェクトは使いまわしていいのでしょうか?
CryptHashDataとかでハッシュ値生成して使い終わったら
一度CryptDestroyHashで開放すべきですか?
206:デフォルトの名無しさん
08/08/08 23:46:59
リファレンス嫁よ。ゆとりが
207:デフォルトの名無しさん
08/08/08 23:52:43
わからないんならレスしないでください
208:デフォルトの名無しさん
08/08/08 23:56:23
>>207
リファレンス読めば理解できると分かっている
209:デフォルトの名無しさん
08/08/09 00:01:58
>After one of the functions from this list has been called,
>CryptHashData and CryptHashSessionKey cannot be called.
すみませんこの部分を見落としてました><;
どもです。
ちなみに>>207は私じゃないですw
210:デフォルトの名無しさん
08/08/09 00:09:26
ウィンドウを綺麗にC++のクラスで纏めるにはどのAPI使えばいい?wndclassのwndprocにクラスの関数入れたらエラーになるんですが・・・
211:デフォルトの名無しさん
08/08/09 00:12:39
RegisterClass(Ex)
CreateWindow(Ex)
212:デフォルトの名無しさん
08/08/09 00:13:27
>>210
そんなんじゃC++もたいしたレベルじゃねぇだろお前
ヒント:static
213:デフォルトの名無しさん
08/08/09 00:19:02
URLを指定できるwavファイルを再生するAPIはありますか?
214:デフォルトの名無しさん
08/08/09 00:36:33
具体的にどういうこと?
215:デフォルトの名無しさん
08/08/09 00:41:48
ダウンロードした音声ファイルをユーザが使用することのないように、
ネット上の音声ファイルをソフト内で再生したいです。
216:デフォルトの名無しさん
08/08/09 00:45:45
俺なら数分で作れるな
217:デフォルトの名無しさん
08/08/09 00:46:45
ちなみにVB6を使っています
218:デフォルトの名無しさん
08/08/09 00:52:16
VB6なんてとっくにサポート切れてるのにまだ使ってる人いるんだね・・・
219:デフォルトの名無しさん
08/08/09 00:52:57
今すぐC#に切り替えることを勧める。VBなんてもはや廃れつつある言語。
220:デフォルトの名無しさん
08/08/09 00:55:04
そうですか、たまたまこれしか家にはないんですよね・・・
221:デフォルトの名無しさん
08/08/09 00:57:21
大丈夫開発環境はただで揃うから
222:デフォルトの名無しさん
08/08/09 01:00:02
そうなんですか!
そういえばVC++6.0もあったのですが(使ってない)
やるなら何がいいのでしょう?
223:デフォルトの名無しさん
08/08/09 01:06:48
簡単にいきたいならC#
224:デフォルトの名無しさん
08/08/09 01:08:01
たまたまVB6が家にあるってのもおかしな話だな
225:デフォルトの名無しさん
08/08/09 01:13:41
過去に親が使ってました
226:デフォルトの名無しさん
08/08/09 01:19:10
>>224
俺の家にはたまたまVC6ProとVS2003ProとVS2005Proがあるけど
結局VC6しか使ってない
227:デフォルトの名無しさん
08/08/09 01:19:22
リアル小学生な感じがしてきた・・・
228:デフォルトの名無しさん
08/08/09 01:27:07
VisualStudio6.0があります
229:デフォルトの名無しさん
08/08/09 01:27:39
もちろんたまたま親が
230:デフォルトの名無しさん
08/08/09 01:28:48
割れ厨()笑だらけですね
231:デフォルトの名無しさん
08/08/09 01:31:47
こんなのがプログラミングしようとしててすみません。
232:デフォルトの名無しさん
08/08/09 01:35:03
昔と違って3万もあればVS2008std買えるからいい時代になったな。SDKはネットで簡単に入手できるし。
233:226
08/08/09 01:54:53
>>232
VS2003ProとVS2005Proが学生の時にtheSpoke版が4kで買えて衝撃的だったんだが
今はDreamSparkなんてやってるんだよなぁ
もうMSが何をしたいのか分からなくなってきた・・・
234:デフォルトの名無しさん
08/08/09 01:56:42
市場を独占気味にしたい
235:デフォルトの名無しさん
08/08/09 01:58:45
Borlandが社名変えたり戻したりしてる間に既に市場独占してただろ
236:デフォルトの名無しさん
08/08/09 02:05:21
いくら無料で手に入る時代でもやっぱ金かけないとダメでしょ
AC版でも学生がン万円出すのはそれなりにしんどいし、
そうして手に入れれば「よし頑張るぞー」って気持ちになれる
237:デフォルトの名無しさん
08/08/09 02:07:55
逆を言えば物にならなかった時に無駄になるのが嫌で
手を出せなかったという人もいるんだろうけどなー
元々そんな奴は物になんねーよと言う意見は取り合えず置いといて
238:デフォルトの名無しさん
08/08/09 02:07:58
うん、君はそうしとけばいいよ。
239:デフォルトの名無しさん
08/08/09 02:15:31
無料配布なんて貧乏人救済システムは要らない
ただでさえ無職ニートが多いこんなご時世に「いつかシェアウエアでガッポリ儲けてやる」とか
つまらない夢を抱く馬鹿が増えるだけ
240:デフォルトの名無しさん
08/08/09 02:33:40
増えたところで俺には関係ない
その馬鹿と同じ次元に居る奴にはつらいのかもしれんが
241:デフォルトの名無しさん
08/08/09 02:35:48
馬鹿で悪かったな
もう死んでも治りそうに無いよ
242:デフォルトの名無しさん
08/08/09 02:49:43
馬鹿は馬鹿なりに前向きに生きればいいだろ
243:デフォルトの名無しさん
08/08/09 02:56:59
もういいから
244:デフォルトの名無しさん
08/08/09 10:57:28
1>------ ビルド開始: プロジェクト: test, 構成: Debug Win32 ------
1>リンクしています...
1>7.obj : error LNK2019: 未解決の外部シンボル __imp__timeGetTime@0 が関数 _ThreadFunc@4 で参照されました。
1>C:\Documents and Settings\****\My Documents\Visual Studio 2008\Projects\test\Debug\test.exe : fatal error LNK1120: 外部参照 1 が未解決です。
1>ビルドログは "file://c:\Documents and Settings\****\My Documents\Visual Studio 2008\Projects\test\test\Debug\BuildLog.htm" に保存されました。
1>test - エラー 2、警告 0
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
このエラーはどうやって直すんですか;;?
msimg32.libはリンカから追加しました。
245:デフォルトの名無しさん
08/08/09 11:03:14
>>244
winmm ってライブラリは無い?
246:デフォルトの名無しさん
08/08/09 11:22:33
>>245
追加したらできました
ありがとうございます
247:デフォルトの名無しさん
08/08/09 13:23:37
環境スレ行けよ…
248:デフォルトの名無しさん
08/08/09 14:29:07
行きたきゃお前が逝けよ
249:デフォルトの名無しさん
08/08/09 15:12:25
>>247
貴方の気分を害したことを謝罪いたしますと同時に遺憾の意を表します。
誠に申し訳ございませんでした
250:デフォルトの名無しさん
08/08/09 15:35:53
慇懃無礼だな
251:デフォルトの名無しさん
08/08/09 16:12:19
__imp__timeGetTime@0 でググれば分かるけどな
252:デフォルトの名無しさん
08/08/09 16:41:06
テトリスやブロック崩しくらい作れないとWin32APIの基礎を
覚えたとは言えませんか?
253:デフォルトの名無しさん
08/08/09 16:46:17
うん。
254:デフォルトの名無しさん
08/08/09 16:47:48
テトリスやブロック崩しはアルゴリズムのほうがメインになるからWin32APIとは関係ない
255:デフォルトの名無しさん
08/08/09 16:48:00
テトリスやブロック崩しなんて、大半がゲームロジックでほとんどAPI使わないだろ。
ペイントの方が一通りの要素が揃っている。
256:デフォルトの名無しさん
08/08/09 17:04:30
ペイントなんて、大半がペイントロジックでほとんどAPI使わないだろ。
257:デフォルトの名無しさん
08/08/09 18:21:15
GDIの基本操作を学ぶには良いんじゃないか?
傾斜・反転・回転以外はほぼGDIに丸投げっぽいし。
258:デフォルトの名無しさん
08/08/09 18:44:39
>>250
どうして慇懃無礼なんでしょうか?
259:デフォルトの名無しさん
08/08/09 18:47:59
>>250
俺のダチが世話になったな
今度群馬こいいい所紹介してやるからよ
260:デフォルトの名無しさん
08/08/09 21:08:00
ID出んから言いたい放題
わろす
261:デフォルトの名無しさん
08/08/09 21:53:00
質問です。既定のブラウザから例として「ぬるぽ ガッ」という検索結果のページをボタン一発で表示させたいのです。
詳しく言うと、
①プログラムのボタンを押す
②既定のブラウザで「ぬるぽ ガッ」という検索結果のページがブラウザが起動して結果が表示される
といった具合のものを作ろうと思っています。
既定のブラウザの取得方法は、
://www.atmarkit.co.jp/fdotnet/dotnettips/652getdefaultbrowser/getdefaultbrowser.html
でできましたが、その他ができません。
知恵を貸して頂けないでしょうか?
262:デフォルトの名無しさん
08/08/09 21:57:36
つ【俺の知恵】
263:デフォルトの名無しさん
08/08/09 21:57:54
うるちえ
264:デフォルトの名無しさん
08/08/09 21:59:29
URLリンク(www.atmarkit.co.jp)
こっちの方法でやればいいじゃんていうか.NETじゃん
265:デフォルトの名無しさん
08/08/09 21:59:46
>>261
ShellExecute
266:デフォルトの名無しさん
08/08/09 22:04:39
>>261
#include<windows.h>
int main(){
ShellExecute(NULL, "open", "URLリンク(www.google.co.jp)", NULL, "", SW_SHOWNORMAL);
return 0;
}
267:デフォルトの名無しさん
08/08/09 22:06:16
>>264
参考ページが.NETでしたね。
私の言語はPASCALです。
>>265
function ShellExecute(hWnd: HWND; // 親ウィンドウのハンドル
Operation : PChar // 操作
FileName : PChar // 操作対象のファイル
Parameters: PChar // 操作のパラメータ
Directory : PChar; // 作業ディレクトリ
ShowCmd : Integer)// 表示状態
: HINST;
ここでは操作がopen、ファイルがレジストリから取得したブラウザファイル、どこにそのアドレスを入れるのでしょう?
268:デフォルトの名無しさん
08/08/09 22:06:32
>>266
クエリストリングのbtnGとか要らないんじゃね?
269:デフォルトの名無しさん
08/08/09 22:07:13
>>266
っと私が打ち込んでいる間に・・・具体的なコードありがとうございます。
さっそく解決してしまいました。
ありがとうございました。
270:デフォルトの名無しさん
08/08/10 09:23:59
.NET に PictureBox というコントロールがあるのですが
これを VC++ で表現するならば
コントロール上にビットマップイメージを貼ってるだけに相当するんでしょうか?
よろしくお願いします
271:デフォルトの名無しさん
08/08/10 10:03:23
>>270
Win32だとStatic Controlに相当するな。
IDEのダイアログエディタだと「Picture Control」と表記されているが、
これはダイアログリソース上の表現で、結局はStatic Controlが生成される。
272:デフォルトの名無しさん
08/08/10 11:24:30
>>271
ありがとうございます
Static Control にスタイルが SS_BITMAP って感じですね
273:デフォルトの名無しさん
08/08/10 21:19:38
SendMessageTimeoutの引数であるpdwResultと
SendMessageTimeout関数自体の戻り値に違いは出るのでしょうか?
お願いします。
274:デフォルトの名無しさん
08/08/10 21:21:46
違いは出ます。意味が違いますから。
275:273
08/08/10 21:24:47
>>274
具体的にどういった違いなのでしょうか?
MSDNなどの資料には同じようなことしか書かれてなくて・・・
参考URLの掲示でもかまわないのでお願いします
276:デフォルトの名無しさん
08/08/10 21:29:03
>>275
lpdwResultはSendMessageの戻り値相当じゃないか。
MSDNより
lpdwResult
1 個の DWORD 型変数へのポインタを指定します。関数から制御が返ると、この変数に、メッセージの処理結果が格納されます。意味は、送信したメッセージにより異なります。
戻り値
関数が成功すると、0 以外の値が返ります。
関数が失敗した場合や、タイムアウトが発生した場合は、0 が返ります。
277:デフォルトの名無しさん
08/08/10 21:29:13
>>275
SendMessageTimeout の hwnd に無効なハンドルを入れた場合など
278:273
08/08/10 21:31:23
>>.276-277
なるほど納得がいきました
ありがとうございます
279:デフォルトの名無しさん
08/08/10 21:32:13
>>275
pdwResultは送ったメッセージに対する戻り値。
メッセージを送った先のプロシージャが返した値。
SendMessageTimeoutの戻り値は、SendMessageTimeoutそのものの結果。
280:デフォルトの名無しさん
08/08/11 11:06:58
RegisterClassExで作ったウィンドウクラスが有効かどうかを判定するAPIを教えてください
281:デフォルトの名無しさん
08/08/11 11:19:08
つ RegisterClass(Ex) の戻り値
つ GetClassInfo(Ex) で取得
282:デフォルトの名無しさん
08/08/11 13:52:41
直接画面DCには描画せずにバックグランドのDCを介して描画する.
1行または複数行,描画する場合はバックグランドDCに必要な文字を描画してから
画面を無効にしてWM_PAINTでBitBltを使い描画させる.
のバックグラウンドDCとは何を指してるのでしょうか?
直接画面DCに描画するのと、バックグラウンドDCを介して描画するのとでは
どのような違いがあるのでしょうか?
283:デフォルトの名無しさん
08/08/11 13:57:47
それを書いた奴に聞けよ
284:デフォルトの名無しさん
08/08/11 14:08:40
メモリDC
285:デフォルトの名無しさん
08/08/11 14:34:55
>>283
掲示板の過去ログに載っていたので聞きようがありません。
>>284
今から調べてきます
286:デフォルトの名無しさん
08/08/11 15:54:00
ダブルバッファ とかそういう話か?
ちらつき防止でやってるだけ
直接DCに描画だと 消しているトコロ も目に見えちゃうからチラツク
287:デフォルトの名無しさん
08/08/11 19:45:18
GdiSetBatchLimitを上げればいいんでねーの?
288:デフォルトの名無しさん
08/08/11 21:36:18
>287
全然違うんじゃね?
GDI関数呼び出しをまとめて性能を上げるのと、一連の描きかけの絵を
バックバッファに描画しておいて描き終わったら前面をInvalidateRect
して(=WM_PAINT発生)からバックバッファから一気に転送(BitBlt)
するのでは見え方が違う。
>286 の言ってることが正解。さらに描画を1シーケンスで完了できない場合、
描画中の絵が見えないと言うメリットもある。
性能向上の方式ではないので性能あげたいならInvalidateRectの
範囲を描画更新したい場所に限定する必要があるし、そういうの
やりたいならGDIでなくDirectXで物理サーフィス×2面のFlipで
やるのが普通。
289:デフォルトの名無しさん
08/08/11 22:15:07
てか消してるところが見えるって何世代前のPCだよw
290:デフォルトの名無しさん
08/08/11 22:17:56
最新のPC
291:デフォルトの名無しさん
08/08/11 22:32:57
>289
最新のPCであっても、GDI関数で描画する時間は人間の一生のような
長い時間ってことが分からない素人かw
消しているトコロがリアルに人間に分からないように処理するには
液晶とグラボの垂直同期周期が60Hzとして、16.6666...msec 以内に
一連の描画処理を完了する必要があるけど?
もちろん一度もVSYNC跨がずに、だ。
292:デフォルトの名無しさん
08/08/11 23:24:41
一連の描画処理が16ms以上かかるってどんだけ重い描画なんだよ
293:デフォルトの名無しさん
08/08/11 23:30:17
でも、次の画面更新タイミングまでが偶々1msだったら・・・?
294:デフォルトの名無しさん
08/08/11 23:40:15
そんなの気にしなくていいよ、今時GDIなんてせいぜいコントロールの描画ぐらいしか使わないんだから
Windows標準のコントロールだって物によってはダブルバッファリングされてなくてちらつくけど誰もそんなの気にしてないし
295:デフォルトの名無しさん
08/08/11 23:42:13
>292
かかるでしょ。
・そのプロセスのプライオリティより高いスレッドやカーネルでの
より優先度の高い処理が行われる場合。
・そのプロセスのプライオリティより低いスレッドが一定周期で
ダイナミックブーストされる場合。
・そのプロセス自身が描画処理中に、HDD等の単一リソースにアクセスした場合。
・例えば1280x1024x32bit(フルカラー)の描画面(=5MBytes)をグラボに転送するのに、
DMA転送が使えなかった場合。
・使えたとしても、メモリと他のデバイス間で先にDMA転送の帯域を食いつぶされていた場合。
いくらでもある。292がMS-DOSでシングルタスクのプログラマか、カーネルの設計者と
いうなら謝るよ。ここWin32API質問箱なので勘違いしてた。
293は「もちろん一度もVSYNC跨がずに、だ。」を読み取ってくれたね。
296:デフォルトの名無しさん
08/08/11 23:44:45
もういいよ
> 例えば1280x1024x32bit(フルカラー)の描画面(=5MBytes)をグラボに転送するのに
今時こんな描画にGDIなんて使わない
アンタだって暗にそう言ってるじゃん
> GDIでなくDirectXで物理サーフィス×2面のFlipでやるのが普通。
297:デフォルトの名無しさん
08/08/11 23:53:08
>>295
こういうKYがいるとテスト工程が無駄に増えるよなw
298:デフォルトの名無しさん
08/08/12 00:00:55
>>297
そうやってシステム見られない自称SEもいるね。
手戻り工数増えるんだよなw
後になって性能が出ない時に言い訳しないようにね。
299:デフォルトの名無しさん
08/08/12 00:09:35
文章から加齢臭がものすごいんですが・・・
300:デフォルトの名無しさん
08/08/12 00:11:58
WPF使えばちらつきなんか無縁
301:デフォルトの名無しさん
08/08/12 00:21:40
とっととCからWPF使えるようにしろと
302:デフォルトの名無しさん
08/08/12 00:25:25
つ MC++
303:デフォルトの名無しさん
08/08/12 00:25:46
ListViewのレポート形式で、表示領域が足りなくて
省略されて表示されているとき(例えば、あいう...)に、
その文字の上にカーソルを持っていくとツールチップが
表示されますが、これを無効に設定することはできない
のでしょうか?
304:デフォルトの名無しさん
08/08/12 00:36:49
>>303
出来る。
305:デフォルトの名無しさん
08/08/12 00:46:45
LVS_EX_INFOTIP,LVS_EX_LABELTIPあたりじゃない?
306:デフォルトの名無しさん
08/08/12 01:26:44
>>305
だと思うのですが、参考になるプログラムが
見つからなくて...
307:デフォルトの名無しさん
08/08/12 01:27:28
フラグの説明読んで書いてみりゃいいだろ
なんで自分から動こうとしないんだよ
308:デフォルトの名無しさん
08/08/12 01:28:02
>>306
普通にググれば見つかるのだが
309:デフォルトの名無しさん
08/08/12 10:19:12
LVS_EX_LABELTIP
Version 5.80.
If a partially hidden label in any list view mode lacks ToolTip text, the list-view control will unfold the label.
If this style is not set, the list-view control will unfold partly hidden labels only for the large icon mode.
別に複雑な操作がいる訳でもなし
このくらい試してみようぜ
310:デフォルトの名無しさん
08/08/12 10:57:03
CS_OWNDCにしたときに増えるメモリってどれくらい?
猫でもをみたらちょっとだけメモリを消費するって書いてあったけど
タスクマネージャを見たけどあんまり変わってないっぽいけど
311:デフォルトの名無しさん
08/08/12 11:38:05
見たまんまだ
確認したならそれを受け入れろ
312:デフォルトの名無しさん
08/08/12 13:35:46
640KBで動く時代からあるAPIdsと説明がそういう風になることもあるw
313:デフォルトの名無しさん
08/08/12 13:40:12
TextOut関数で背景を部分的に変える関数等ありますでしょうか?
314:デフォルトの名無しさん
08/08/12 15:00:59
たかだが背景色だけ変えるなら
SetBkMode で OPAQUE 指定
{ SetBkColor して TextOut } を変えたい単位で分割呼び出し
複雑な背景をどうこうしたいなら
SetBkMode で TRANSPARENT 指定
先に背景を描画しきって
TextOut
315:デフォルトの名無しさん
08/08/12 15:58:29
ShowWindowをAdvancedWindowsのやつでAPIフックしたらアドレス違反になるんだけどなんで??
全プロセスにDLLにして注入ではなく、自プロセスのフックのみでやってる。適当なexeにDLLにして注入してもやっぱり違反。
他のAPIはフックできてる。環境はBCBなんだけど。
316:デフォルトの名無しさん
08/08/12 19:08:36
WriteProcessMemoryでやれ。権限もクリアしていて、それでできなきゃアドレス間違っている。メモリ覗いて確認しろ。
317:デフォルトの名無しさん
08/08/12 20:00:27
>>316
俺VirtualProtectでやってるんだけど
WriteProcessMemoryのほうがいいわけ?
318:317
08/08/12 20:01:46
>>315
その事象で俺が経験した事といえばスタックオーバーフロー
319:デフォルトの名無しさん
08/08/12 20:38:48
どうせエラー値確認していないんだろ
320:デフォルトの名無しさん
08/08/12 21:30:16
アドレス違反で落ちてたらエラー値も何も無いだろ
321:デフォルトの名無しさん
08/08/12 21:58:43
だから何でVirtualProtectのエラーチェックしないの?ゆとり?
322:デフォルトの名無しさん
08/08/12 22:01:10
書き込みでAVになるか、書き換えた関数が呼ばれた時例外発生するか質問者ははっきりさせないといかんな。
323:317
08/08/12 22:09:50
>>321
俺別にエラーチェックしてないとは一言も言ってないんだがwwwww
>>320の言ってる通りアドレス違反で落ちてるんだから・・・・・
多分だけどやっぱ>>315はスタックオーバーフローしてるんじゃない?
GetProcAddressもあわせてAPIフックしてるならその辺を睨んだ方がよさげ
つーかコード掲示するかAdvancedWindowsのページがわからないと
これ以上なんともいえない
324:デフォルトの名無しさん
08/08/12 22:27:47
呼び出し規約かw
325:デフォルトの名無しさん
08/08/13 10:19:47
Ollyか何かで追跡してみれば
326:デフォルトの名無しさん
08/08/13 11:24:58
エディットコントロールの文字列選択の処理ってどうなっているのですか?
どうやって選択範囲を計算してるのですか?
327:デフォルトの名無しさん
08/08/13 11:37:19
GetTextExtentPoint
328:315
08/08/13 12:55:18
コードも例外発生の場所も書いてなくてスマン。
なのに原因を見抜けるってのはもうすげぇな、感謝!例外は置き換えた関数が呼ばれたときにおきてた。
きちんとstdcallだってのを置き換え関数で宣言したら、うまく動くようになった。
BCBとかdelphiは標準だとcdeclとかfastcallとかだったっけ。
とにかくみんなサンクス!!
329:デフォルトの名無しさん
08/08/13 15:10:46
>>327
キャレット位置をどうやって計算しているかわかりますか?
330:デフォルトの名無しさん
08/08/13 15:26:17
一文字ずつ幅を足していく
331:デフォルトの名無しさん
08/08/13 15:34:53
WM_LBUTTONDOWN
クリック位置x.y座標取得
GetTextExtentPoint32関数で得られた文字列のサイズと比較していく、って事ですか?
332:デフォルトの名無しさん
08/08/13 19:09:19
GetTextExtentExPointを流用してもいいけど
333:デフォルトの名無しさん
08/08/13 20:11:50
あるアプリのタブコントロールを別のプロセスから変化させたいのですが
別プロセスからTCM_SETCURSELをSendMessageすると、タブの位置は
変化するものの、TCN_SELCHANGEなどの通知メッセージがアプリ側で
発生しないので、肝心の内容が置き換わりません。
仕方なく、別プロセスから続けてWM_NOTIFYを発生させる事を考えたのですが、
別プロセスからでは構造体(NMHDR)を渡すようなメッセージは
伝わらない様です。
別プロセスからうまくタブが変化した事を通知する方法はないでしょうか。
該当コード
SendMessage(htab, TCM_SETCURSEL, 3, 0);
{ NMHDR nmhdr;
nmhdr.hwndFrom = htab;
nmhdr.idFrom = GetDlgCtrlID(htab);
nmhdr.code = TCN_SELCHANGE;
SendMessage(hmain, WM_NOTIFY, GetDlgCtrlID(htab), (LPARAM)&nmhdr);
}
334:デフォルトの名無しさん
08/08/13 20:29:33
VirtualAllocEx
WriteProcessMemory
335:デフォルトの名無しさん
08/08/13 20:41:43
sendinputを使おうと思って検索したらこんな2種類の書き方が出てきました。
lpKey->type = INPUT_KEYBOARD;
inputKey[cnt].type = INPUT_KEYBOARD;
この -> と [ ].type はどう違うんですか?
336:デフォルトの名無しさん
08/08/13 20:53:59
>>335
C言語スレ池
337:デフォルトの名無しさん
08/08/13 21:30:56
ステータスバーの文字の色を変えるにはどうすればよいですか?
338:デフォルトの名無しさん
08/08/13 21:38:25
MSDN読め
339:デフォルトの名無しさん
08/08/13 21:56:25
>>336
分かりました。
340:デフォルトの名無しさん
08/08/13 22:14:10
>>334
ありがとうございます。
できました。
かなり泥臭いですね・・
341:デフォルトの名無しさん
08/08/14 07:25:29
BitBltする大きさが少し違っただけで、いきなり速度が変わるんですが、なんか理由があるんですか。
あとディスプレイを2つつないでる環境でも、速度が結構落ちるんですが。
342:デフォルトの名無しさん
08/08/14 07:31:47
そりゃそうでしょうね
343:デフォルトの名無しさん
08/08/14 07:54:37
ヒントでもいいから教えて
344:デフォルトの名無しさん
08/08/14 08:11:23
おっ
典型的ゆとり発言
345:デフォルトの名無しさん
08/08/14 09:15:43
知らないならレスしないでください
346:デフォルトの名無しさん
08/08/14 09:52:15
自己解決しました
ありがとうございました
347:デフォルトの名無しさん
08/08/14 11:19:44
間違ってました
やっぱり教えてください
348:デフォルトの名無しさん
08/08/14 14:55:53
教えてもいいが
気に入らない態度がお前の
349:デフォルトの名無しさん
08/08/14 15:50:41
知らないならレスしないでください
350:デフォルトの名無しさん
08/08/14 17:42:44
自己解決しました
ありがとうございました
351:デフォルトの名無しさん
08/08/14 18:46:37
標準入力にデータが存在するかを調べるにはどうすれば良いでしょうか。
_kbhitやPeekConsoleInputを試してみたのですが、リダイレクトされた場合に機能しないようです。
CreateFileでOVERLAPPEDが使えるかとも思ったのですが、Consoleでは無視されると説明されていて
実際試してもうまくいきませんでした。
352:デフォルトの名無しさん
08/08/14 19:22:58
そういうときには実際に読んでみればいいんだよ。
353:デフォルトの名無しさん
08/08/14 19:41:47
DialogBoxやCreateDialogから行くcallback関数に変数等を渡す場合
はグローバルで宣言しておくしかないですか?
354:デフォルトの名無しさん
08/08/14 19:48:42
>>353
DialogBoxParam・CreateDialogParamの初期値で適当な構造体のポインタでも渡しとけ
355:デフォルトの名無しさん
08/08/14 20:00:22
>>352
申し訳ありません、情報が足りませんでした。
入力がない間は他のことをしたいのです。
356:デフォルトの名無しさん
08/08/14 20:04:00
スレッド分けれ
357:デフォルトの名無しさん
08/08/14 20:05:00
>>354
出来ました。ありがとうございます
358:デフォルトの名無しさん
08/08/14 20:20:26
>>356
元が*nixなコンソールプログラムの処理中に、
出来るだけ手を加えずにほんのちょっと通信したかっただけなんで
スレッド分けとかソケットは遠慮していたのですが、やはりそこまでやらないと駄目ですかね。
シグナルとかあればそれでもいいのですが。
359:デフォルトの名無しさん
08/08/14 20:40:50
Win32APIをC++でラッパしたフリーのライブラリ
でお勧めのものがありましたら教えて下さい.
360:デフォルトの名無しさん
08/08/14 20:44:41
Boost
361:デフォルトの名無しさん
08/08/14 20:53:10
URLリンク(msdn.microsoft.com)
これとか?
362:デフォルトの名無しさん
08/08/14 21:08:18
WTLを勧める
363:359
08/08/14 21:57:02
ありがとうございます。
自作ライブラリの参考にしたいので、
単純で解析しやすいのは無いでしょうか?
eGUI++は、相当頑張ればなんとか読めそうでしたが、
WTLの方は[!endif]とか変な記号があってわかりませんでした。
364:デフォルトの名無しさん
08/08/14 22:00:52
へ?俺が見た限り、WTLに[!endif]なんて存在しないけど・・・
365:デフォルトの名無しさん
08/08/14 22:39:08
>>359
STLSoft
366:デフォルトの名無しさん
08/08/14 23:43:56
>>363
[!endif]はVSのプロジェクトテンプレートだろうがw
367:359
08/08/15 08:00:34
Win32APIとなんらかのC/C++コンパイラ・リンカ
があれば使えるようにできるといいなと思います。
つまり、リソースは使わずに、
マクロも極力避けるという感じで。
STLSoftも良さそうですね。
368:デフォルトの名無しさん
08/08/15 11:32:16
Perl.
system ('notepad.exe','abcde.txt');
↑これでメモ帳が開けるんだけど、
win32APIの観点から、なにか
アドバイスはありませんか?
369:デフォルトの名無しさん
08/08/15 11:42:45
ありません
370:デフォルトの名無しさん
08/08/15 12:23:23
何を求めてるのか具体的に書かんと分からんよ
アドバイスって何よ
同じ事をしたいだけならShellExecute
371:デフォルトの名無しさん
08/08/15 13:47:36
Perlは便利というアドバイス
372:351
08/08/15 22:39:32
自己解決しましたので報告します。
GetStdHandleなどで得たハンドルを直接WaitForSingleObjectに入れることが出来ます。
ただしそのままではKeyDownだけではなくKeyUpでもシグナル状態になってしまうため、
WaitForSingleObject+ReadFileまたはWaitForSingleObject+ReadConsoleの組み合わせだけではブロックします。
FlushFileBufferやCancelIOではキーボードイベントをフラッシュする事が出来ず、
他にフラッシュできそうなAPIを見つけることが出来ませんでしたので今回は採用を諦めます。
どうしても直接入力/リダイレクト両対応でノンブロッキングな標準入力を行いたい方は
シグナル状態になった際にPeekConsoleInputで無関係なシグナルを検出し、
その時だけReadConsoleInputでイベントを取り除いてください。
>>356さんの言うようにスレッド化するのも手だと思いますが、ブロックするのでスレッドを終了できなくなるはずです。
373:デフォルトの名無しさん
08/08/15 22:48:15
別にスレッド終了せんでもええやん?
374:デフォルトの名無しさん
08/08/16 01:25:25
CreateThreadまたは__beginthreadexを使用する時に
指定するスタックサイズは皆さん「0」指定で使ってますか?
通常は「0」で問題は無いのでしょうが
もし仮に明示的なスタックサイズを指定している方がいれば
その利点などについて詳しく教えてもらえるとうれしいです。
375:デフォルトの名無しさん
08/08/16 01:46:41
0って言ってもデフォルトサイズを使うって指定しているんだから、サイズによって何が変化するか自分で考えろよゆとり馬鹿
376:デフォルトの名無しさん
08/08/16 01:49:05
・デフォルトのスタックサイズでは足りない場合に増やす
スタックがあふれるようなアルゴリズムが悪いんだが、やむを得ない場合があるかもしれない
・スタックを減らしてアドレス空間を節約する
スレッドを大量に作るとき、スレッド1個ごとに何MBも取ってると、アドレス空間の枯渇が早い
という利点は思いつくが、今のところ俺は0以外を指定したことはない
377:デフォルトの名無しさん
08/08/16 04:24:02
STACK_SIZE_PARAM_IS_A_RESERVATION が指定できない2000以前じゃデフォルトより下げても意味なかったし0以外ねーな
378:デフォルトの名無しさん
08/08/16 04:51:04
64bitコードならともかく、32bitコードじゃスタックサイズを増やすのはまずねーだろ。
アドレス空間足りねーよ。
379:デフォルトの名無しさん
08/08/16 12:18:14
デフォルトで1MBくらいなんだから、スタックサイズちょっと増やしたくらいでアドレス空間足らなくはならんだろ。
380:374
08/08/16 12:24:45
>>375-379
回答ありがとうございます。
>>376の言うとおりスタックを減らしてアドレス空間の
節約をした方がいいのか迷っていたので、
ほかの人の意見を聞いてみようと思って質問しました。
スレッドのスタックサイズに関しては特に意識する必要は無いという事ですね。
381:デフォルトの名無しさん
08/08/16 12:50:42
質問です。。。
現在keybd_eventを使用して実際のキー操作をシミュレートしようとしているのですが,
keybd_event( 'A', 0, 0, 0 );
のようなコードでは,実際にAをずっと押しているときのように,動作しません。
(例えば,テキストエディタをアクティブにしていたらAがいくつも入力される。
どうしたら,実際のキーボードを押しているように動作させることが出来るのでしょうか?
382:デフォルトの名無しさん
08/08/16 12:54:08
スタック領域って減らせるのか?
最初は4KBぐらいしか確保されてなくて必要に応じて動的拡張されるとかじゃなかったっけ?
383:デフォルトの名無しさん
08/08/16 14:27:15
GetOpenFileNameのダイアログ使ってるとMAX_PATH超えられないけれど
対策もしくは代替手段て有りますか?
384:デフォルトの名無しさん
08/08/16 15:13:42
ダイアログを自作する
385:デフォルトの名無しさん
08/08/16 17:02:35
perlで
ShellExecuteで、
notepad.exeを開きたい場合は
どう書けばいいの?
386:デフォルトの名無しさん
08/08/16 17:14:04
`notepad.exe`
387:デフォルトの名無しさん
08/08/16 17:18:04
>>386
試してみたら、確かにメモ帳が開きましたが、
それってShellExecuteで開いてるの?
388:デフォルトの名無しさん
08/08/16 21:23:53
>>383
フックプロシージャの中からだとそういう制限は無かった気がする。
違ったらごめん。
>>387
ShellExecuteの中の人は、拡張子exeの関連付けに従ってプロセスを起動する。
何も特別なことはない。
389:デフォルトの名無しさん
08/08/16 21:52:03
>>387
どういうAPIを使ってるのかは、それが仕様化されてるのでなければ
処理系の実装依存だろうな。
直接ShellExecuteを呼びたいのなら
ActivePerl Win32 API ShellExecute
とかでググれ。
それでわからなければPerlの人に訊け。
390:デフォルトの名無しさん
08/08/16 22:55:06
今の状況だと、
真っ黒なDOSプロンプトが開いて、
そのDOS窓が残ったままで、
メモ帳も開く、という動作なのですが、
DOS窓が開かないで、
あるいは一瞬だけ開いて、
それでメモ帳が開く、というのを
するのに、shellexcuteを使えば
いいんでない?と思ったのですが、
違いますか?
391:デフォルトの名無しさん
08/08/17 00:09:09
コマンドプロンプト経由で起動する事情なんざ、Win32的には知ったこっちゃないな。
Perlが勝手にやってることなんだから、あっちで聞け。
392:デフォルトの名無しさん
08/08/17 06:24:19
やだね
お前が勝手に聞いてろ
393:デフォルトの名無しさん
08/08/17 09:20:57
perlをWindowアプリとしてリコンパイルすれば解決する
394:デフォルトの名無しさん
08/08/17 10:40:24
perlネタはもういいよ。
395:デフォルトの名無しさん
08/08/17 13:01:22
perlがコンソールアプリだからだろ
active perl scriptを使えばいい
396:383
08/08/17 13:34:18
>>388
フックプロシャージャ作って中でCDM_GETFILEPATH使っても
MAX_PATH以下になるようになってるみたいです。
CDM_GETFOLDERPATHやCDM_GETFOLDERIDLISTだと
フォルダまでがMAX_PATHであれば選択ファイル名を追加で
その分超えることは出来るみたいですがOKボタン押させて貰えない。
さらに深いフォルダにはアクセスさせてもらえないし
他の大半のアプリも触れない領域じゃ独自ダイアログにするほどのことでもない気がするので諦めます。
あとD&Dもメッセージが飛んでこないので駄目みたいです。
397:デフォルトの名無しさん
08/08/17 14:36:47
なんか知らんがUnicodeに汁
398:デフォルトの名無しさん
08/08/17 16:18:46
>>381
399:デフォルトの名無しさん
08/08/17 17:07:58
>>381
チート厨は氏ね
400:381
08/08/17 17:31:50
>>399
Wiiリモコンをパッドにしたいだけなのに。。。
401:デフォルトの名無しさん
08/08/17 17:33:55
>>400
それでもBAN対象のゲームは多いはず
402:デフォルトの名無しさん
08/08/17 18:05:19
>>400
ヒント
っKEYEVENTF_KEYUP
403:383
08/08/17 18:08:46
>>397
長いファイル名は必然的にUnicode関数使うし
最近のプログラムなんでUnicodeビルドしてる。
404:デフォルトの名無しさん
08/08/17 19:39:11
シェル関数(SHGetPathFromIDListなど)がMAX_PATHを超えれないから
シェルに依存しているコモンダイアログも必然的にMAX_PATHを超えられないのだろう
てかMAX_PATHを超えてしまうほど深い階層にファイル置くなよ
405:デフォルトの名無しさん
08/08/17 19:57:28
ThickFrame(ウィンドウサイズを変更する枠)で、
「ユーザーがウィンドウサイズを変更している間は、WM_ERASEBKGNDメッセージを無効にする」
という処理を加えたいんですけれど、
処理の開始は、WM_NCLBUTTONDOWNメッセージを捕まえてそれで問題ありませんでした。
処理の終了(サイズ変更の終了)も、同様にWM_NCLBUTTONUPメッセージを捕まえれば良いのかと思ったんですが、
うまくいきませんでした。
この場合の、「ウィンドウサイズ変更が終了した」という情報を、
アプリケーションが取得するにはどうしたら良いでしょうか?
誰かご存知の人は教えてください。
406:デフォルトの名無しさん
08/08/17 20:03:49
WM_SIZEとかWM_WINDOWPOSCHANGEDとか?
407:デフォルトの名無しさん
08/08/17 22:22:33
>>402
KEYEVENTF_KEYUPを引数としてキーが上がったということも書いているのですが,
>>400のやりたいことのように出来ません。。。
408:デフォルトの名無しさん
08/08/18 01:09:41
初歩的な事で申し訳ないのですが、
実行ファイルのアイコンが指定通りに変わらず困っています。
WINDCLASSEX構造体には以下のように記述しています。
wcex.hIcon=(HICON)LoadImage(hInst,"ファイル名",IMAGE_ICON,
0,0,LR_DEFAULTSIZE|LR_LOADFROMFILE);
です。
リソースを使わずicoファイルにパスを通す方法で実現したいのですが、
表示されません。
hIconもNULLではない様なので問題ないと思うのですが・・・。
因みに、タイトルバーに表示される方は上手く表示されています。
ですので、ファイル名の指定でパスがおかしいということはないと
思います。
409:デフォルトの名無しさん
08/08/18 01:35:39
WNDCLASS(EX)というのは、ウィンドウの設定をするだけ
実行ファイルのアイコンとかは何も変わらない
410:デフォルトの名無しさん
08/08/18 03:10:32
>>408
exe のリソースに埋め込まれたアイコンの中で
一番番号の若い物が exe のアイコンになります
411:デフォルトの名無しさん
08/08/18 03:49:06
>>409
そうだったんですか・・・。
前は普通にリソースで入れてたんで、気づきませんでしたが
そこに指定したらアイコンになるもんだと思ってました・・・。
>>410
409の方のを読んで色々と調べていたんですが、
やっぱり、リソースを埋め込むものなんですね。
>一番番号の若い物が exe のアイコンになります
知りませんでした・・勉強になります。
おかげさまで一応解決しました。
412:デフォルトの名無しさん
08/08/18 07:58:09
常駐型アプリを作ってます
タスクバーに表示されず
タスクトレイにアイコンを表示させるとこまできましたが、
タスクマネージャ-アプリケーションで見ると
タスクの欄にしっかり表示されてしまいます
他のアプリを見るとここには表示されていません
タスクマネージャ-アプリケーションに表示されないように
常駐アプリを作るにはどうすればいいですか
413:デフォルトの名無しさん
08/08/18 09:32:48
ウィンドウが出てるんだろ
414:デフォルトの名無しさん
08/08/18 17:26:55
ヴィザードで、自動で次のページに移行したいんですけれど、
PSHNOTIFY myLp={NULL,};
myLp.hdr.code = PSN_WIZNEXT;
SendMessage(hDlg,WM_NOTIFY,NULL,(LPARAM)&myLp);
↑のコードじゃ駄目なんですかねぇ??
case WM_NOTIFY:
LPPSHNOTIFY lppshN = (LPPSHNOTIFY)lp;
switch (lppshN->hdr.code){
...
}
↑のコードで、「戻る」「次へ」等のメッセージは取得できるので、
同様のメッセージを送ってみたのですが・・・。
ウィザードで、自動で次のページに移行させる方法
(「次へ」ボタンを押した場合と同じ効果を出す方法)
をご存知の方、ご教授下さい。
415:デフォルトの名無しさん
08/08/18 17:53:07
>>414
MSDN読め
416:デフォルトの名無しさん
08/08/18 19:12:39
>>407
入力送信後にSleep(100);とかしたらどうかに?
417:デフォルトの名無しさん
08/08/18 21:51:40
>>414
WM_COMMAND投げたら?
418:デフォルトの名無しさん
08/08/18 22:37:30
>>416
いれてみましたがだめでした><
419:デフォルトの名無しさん
08/08/18 23:03:29
PC再起動すると動く場合がある
420:デフォルトの名無しさん
08/08/18 23:12:33
>>419
421:デフォルトの名無しさん
08/08/19 13:21:09
>>419
422:デフォルトの名無しさん
08/08/19 13:30:32
PCを起動すると動く場合がある
423: ̄ ̄ ̄ ̄ ̄ ̄V ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
08/08/19 13:33:11
/ ̄ ̄ ̄ ̄\
( 人____)
|./ ー◎-◎-)
(6 (_ _) ) カタカタカタ
| .∴ ノ 3 ノ ______
ゝ ノ .| | ̄ ̄\ \
/ \__| | | ̄ ̄|
/ \___ | | |__|
| \ |つ |__|__/ /
/  ̄ ̄ | ̄ ̄ ̄ ̄| 〔 ̄ ̄〕
| | ̄
424: ̄ ̄ ̄ ̄ ̄ ̄V ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
08/08/19 13:57:04
/ ̄ ̄ ̄ ̄\
( 人____)
|./ ー◎-◎-)
(6 (_ _) ) カタカタカタ
| .∴ ノ 3 ノ ______
ゝ ノ .| | ̄ ̄\ \
/ \__| | | ̄ ̄|
/ \___ | | |__|
| \ |つ |__|__/ /
/  ̄ ̄ | ̄ ̄ ̄ ̄| 〔 ̄ ̄〕
| | ̄
425:デフォルトの名無しさん
08/08/19 23:53:51
別exeで動いているTimerを停止させるAPIはないでしょうか?
またはタイマーIDかタイマー識別子を取得する方法があれば
KillTimerできるのでしょうけど・・・
426:デフォルトの名無しさん
08/08/19 23:58:51
>>425
APIフック
427:デフォルトの名無しさん
08/08/20 00:02:40
タイマIDはプロセスごとに独立してる
428:デフォルトの名無しさん
08/08/20 00:03:23
char* str = "aあbい";
みたいに1バイト文字とマルチバイト文字が入り交じった文字列を、
1文字ずつのcharの固まりに分解したいんですが、
IsDBCSLeadByte でcharを1つずつ調べていくしかないでしょうか?
429:デフォルトの名無しさん
08/08/20 00:17:09
>>425
別プロセスから、
タイマ停止させるためのメッセージ投げる。
それ受けたらタイマを止める。
430:デフォルトの名無しさん
08/08/20 00:19:00
SJISならググって文字コード表見ながら自作
あるいはWideCharToMultiByteして1文字ずつMultiByteToWieeChar
431:デフォルトの名無しさん
08/08/20 00:20:58
>>428
CharNextExA / CharPrevExA とか?
432:デフォルトの名無しさん
08/08/20 00:35:28
>>430
>>431
どうもありがとうございます。
ググってみたところ、どっちも使えそうです。
>>430 はWideCharToMultiByteとMultiByteToWieeChar 逆ですよね。
433:デフォルトの名無しさん
08/08/20 02:28:26
事務より簡単で誰でもできる仕事なのに時給は技術者!
ITテスターで稼ぐための情報を交換するスレです。
☆派遣先は大企業じゃないと駄目です。中小だとテスターもプログラムの仕様が
わからないといけないとかテストプログラムを書けとか言われちゃいますよ。
大企業ならプログラムを触るだけのテスターでも大丈夫。
☆派遣先ではテスターはプログラムを触るだけでいい、
そんな空気を作っていきましょう。仕様書読んでください、
とか言われたら「なんでテスターが仕様書読むんですか」って食い下がって。
プログラムの仕様書を読んだり、テストの仕様書を書いたりするのは大変ですよ。
☆普通にプログラムを触ってテストしてると、何をテストしているのかわからない、
とか言い出す人、いるんですよ。プログラマとかってこういう人多いです。
そういう人は上司にあることないこと告げ口して追い出しちゃいましょ。
人事権のある人とは仲良くしておくことが大切。
☆納品して何かあったら大変だからとプログラムの仕様書を読んだり、
テスト仕様書を書いちゃうテスターがいますけど、
こっちもやることになるからすごく迷惑。
テスト結果の責任は担当の正社員にありますよね。
納品後のクレームは最終チェックを怠った正社員が悪いんだから
派遣は関係ないです。
434:デフォルトの名無しさん
08/08/20 02:32:01
cp932->utf16->cp932なんて処理をすると元の文字に戻らなくてはまるかも
435:デフォルトの名無しさん
08/08/20 03:06:31
wave dash とか?他何があったっけ?
436:デフォルトの名無しさん
08/08/20 03:24:13
いいかげんシフトJISを捨てようぜ。
437:デフォルトの名無しさん
08/08/20 04:24:17
>>436がまずやるべきは2ちゃんねるを捨てるところからだな
438:デフォルトの名無しさん
08/08/20 07:00:22
>435
すくなくても、WaveDashは戻る。ここがWin32API質問箱である以上は。
439:デフォルトの名無しさん
08/08/20 07:17:19
↑話を理解してない馬鹿
440:デフォルトの名無しさん
08/08/20 07:26:08
TextBoxでフォームが非アクティブになってもキーボードフォーカスを
常に持ち続けるにはどうすればいいでしょうか。
441:デフォルトの名無しさん
08/08/20 07:46:26
>435
つ URLリンク(support.microsoft.com)
442:デフォルトの名無しさん
08/08/20 10:09:22
とあるVC++のプログラムを引き継いだのですが
スレッドの作成にCreateThreadが使用されていました。
スレッドはひとつしか作成されないのですが
そういう場合ならCreateThreadでもよいでしょうか?
_beginthreadに修正したほうがよいでしょうか?
443:デフォルトの名無しさん
08/08/20 10:14:14
内容による。
それだけで他人が判断できると思っているのなら、ヘルプの読み込みが全く足りない。
444:デフォルトの名無しさん
08/08/20 10:18:13
ヘルプを読み込んでみたところ問題ないようです。
ありがとうございました。
445:デフォルトの名無しさん
08/08/20 12:26:29
CRTを一切使っていないなら(実際には使っても問題の無いCRTもあるが)
CreateThreadでもいい。
446:デフォルトの名無しさん
08/08/20 12:30:19
CRTバリバリ使ってます
447:デフォルトの名無しさん
08/08/20 12:47:32
DLL版にリンクすれば問題ない
448:デフォルトの名無しさん
08/08/20 13:08:50
お世話になります。
wininetのFindFirstUrlCacheEntryで、特定のキャッシュを探す場合、
第一引数のlpszUrlSearchPatternにどういったものを渡してやればいいのでしょうか。
URLリンク(msdn.microsoft.com)(VS.85).aspx (FindFirstUrlCacheEntry)
URLリンク(support.microsoft.com)
現状は、これを見ながらDeleteUrlCacheEntryの所を書き変えて検索していますが、
lpszUrl~にURL文字列を直接渡してもnullを渡したときと動作が変わらず、毎回同じ順番で検索されてしまいます。
一応、言語はC#です。
449:440
08/08/20 13:56:17
すみません。言語別スレに行きます。
450:デフォルトの名無しさん
08/08/20 20:21:51
>>448
This parameter can only be set to "cookie:", "visited:", or NULL.
451:デフォルトの名無しさん
08/08/20 22:12:17
>>450
日本語でおk
452:448
08/08/20 22:59:26
>>450
ということは基本的に全数で探すしかないってことですか・・・。
それほど時間はかからないみたいなのでとりあえずこのままでいきます。
ありがとうございました。
453:デフォルトの名無しさん
08/08/21 00:30:00
C++でウインドウをクラスで実装してみてるのですが、コンストラクタ内にウインドウ生成のコードを書いてしまうのはアリでしょうか?教えてください。
454:デフォルトの名無しさん
08/08/21 01:41:28
サービスプログラムとしてタスクトレイに常駐するプログラムを
作成してるのですが、ユーザーがログインした段階で
Windowを作成しないと、コントロールなどの表示が崩れてしまうようです。
ユーザーがログインているかどうかを判定する方法があれば教えてください。
Windows XPです。
455:デフォルトの名無しさん
08/08/21 07:10:57
>>454
もしかして一つのプログラムで全部やるつもりか?
HKLMのRunキーで起動したタスクトレイのプログラムがサービスと通信する、
というのが普通の作り方だと思うのだが。
456:デフォルトの名無しさん
08/08/21 08:25:06
>>455
WebやAPI本とかの断片的な知識しかないので
できればその普通のやり方が載っている情報源を知りたいのですが。
MSのセミナーとかですか?
457:デフォルトの名無しさん
08/08/21 09:27:11
今までWindowsを使ってきた経験からの普通
458:デフォルトの名無しさん
08/08/21 09:32:29
>>453いいんじゃね?
459:デフォルトの名無しさん
08/08/21 10:27:00
>>457
やっぱり知ったかでしたか。
関係ない話を始めた段階から読めてました。
460:457
08/08/21 10:31:51
オレは通りすがりだよ。
ちなみに、サービスはNT4の頃から作ってる。
461:デフォルトの名無しさん
08/08/21 10:48:25
はいはい。もういいよ。
ちなみに自己解決しました。
462:デフォルトの名無しさん
08/08/21 10:51:34
サービスが直接ウィンドウ作るのが普通だとしたら、
わざわざ「デスクトップとの対話を許可する」がデフォルトでオフになっているわけがない。
463:デフォルトの名無しさん
08/08/21 10:53:27
デフォルトって。プログラムからオンにできるわけだが。
464:デフォルトの名無しさん
08/08/21 10:54:14
URLリンク(www.google.co.jp)
465:デフォルトの名無しさん
08/08/21 10:57:22
サービスそのものは誰もログオンしていなくても動作するもんだから
ウィンドウそのものを自分で作るようにはできてない。
無理やり後付けで作るのは勝手だが、普通じゃない。
466:デフォルトの名無しさん
08/08/21 10:58:44
そもそもレジストリいじるだとか別プロセスにするだとか、
完全に知ったかの妄想なんだよ。
467:デフォルトの名無しさん
08/08/21 11:01:26
VNCとかはどうなってんの?
468:デフォルトの名無しさん
08/08/21 11:15:35
なんか知ったかという言葉を使いまくってる真性がいるなw
469:デフォルトの名無しさん
08/08/21 11:16:03
人格攻撃キター
470:デフォルトの名無しさん
08/08/21 11:37:29
お前ら前置きに反応しすぎ
ユーザーがログインているかどうかを判定する方法があれば教えてください。
471:デフォルトの名無しさん
08/08/21 11:47:32
ターミナルサーバーとかで、複数同時にログインしてるのも考慮?
472:デフォルトの名無しさん
08/08/21 11:54:22
GetDesktopWindow()でデスクトップが取れたらでいいんじゃね?
473:デフォルトの名無しさん
08/08/21 11:55:57
ユーザーセッションの数が1以上、とかでいいのかなあ。
試さないとなんとも言えんな。
474:デフォルトの名無しさん
08/08/21 11:56:11
>>470
サービスでって前提なかったら、GetUserNameでイイジャンって言われちゃうぜ?w
試してないけど、NetUserEnumで列挙してNetUserGetInfo
USER_INFO_2の最後のログオン/ログオフの時間取得してとかかなぁ
475:デフォルトの名無しさん
08/08/22 00:32:43
サービス語るならせめてAdvancedWindowsと
プログラミングMicrosoft Windows 2000位読め
なぜWindowを持つサービスを作るべきでないかは読めば分かるから
476:デフォルトの名無しさん
08/08/22 08:05:36
知らないならレスしないでください
477:デフォルトの名無しさん
08/08/22 11:48:40
知ってるよw
478:デフォルトの名無しさん
08/08/22 11:51:32
じゃあレスしてください
479:デフォルトの名無しさん
08/08/22 14:40:46
誰もサービスについての質問なんかしてないのに
480:デフォルトの名無しさん
08/08/22 14:48:06
>>454
481:デフォルトの名無しさん
08/08/22 15:29:09
>>480
> ユーザーがログインているかどうかを判定する方法があれば教えてください。
これが質問内容だろ
「サービスについての質問」ではない
日本語が読めない奴は黙ってろ
482:デフォルトの名無しさん
08/08/22 15:31:30
サービス以外でユーザーがログインしているかどうかを知る必要はない。
だってログインしているから
483:デフォルトの名無しさん
08/08/22 16:36:43
クレデンシャルプロバイダやGinaモジュールでも取得したい場合はあるかも?
484:デフォルトの名無しさん
08/08/22 20:56:09
explorer.exeのプロセスが居たらログオン中でいいんじゃね?
485:デフォルトの名無しさん
08/08/22 21:18:48
>>484
ばーか
486:デフォルトの名無しさん
08/08/22 21:32:56
>>485
なにが?w
487:デフォルトの名無しさん
08/08/22 21:43:41
>>484の回答が馬鹿丸出しということ
488:デフォルトの名無しさん
08/08/22 22:05:08
あ~あ、
>>485は反例を一つ示せば>>484を完全否定できたのにね
これじゃ>>485の方が馬鹿に見える
489:デフォルトの名無しさん
08/08/22 22:06:37
顔真っ赤ですよ
490:デフォルトの名無しさん
08/08/22 22:10:44
>>482
そのプログラムをタスクスケジューラに登録する場合はどうかな?
491:デフォルトの名無しさん
08/08/22 22:26:00
>>490
タスクスケジューラは設定されたアカウントでログオンするよ。
492:デフォルトの名無しさん
08/08/22 22:34:00
>>484
ユーザーのログインシェルがexplorer.exe以外の場合がある、
とか聞いたことある気がするけど、そんなケース無視しても良い気がするし。
>>484の方法でダメな場合って他に何かあったっけ。
493:デフォルトの名無しさん
08/08/22 22:48:47
explorer.exeが異常終了したとき
494:デフォルトの名無しさん
08/08/22 23:21:25
そもそもログインしているユーザの一覧なんて
権限さえあれば取得できないわけがないと思うんだけど。
495:デフォルトの名無しさん
08/08/22 23:32:58
なんか知らんが、たぶんOSごとに違うと思う
496:デフォルトの名無しさん
08/08/22 23:34:44
Windows TIPS 現在ログオン中のユーザー名を調べる
URLリンク(www.atmarkit.co.jp)
プログラムでやる場合、やはりexplorer.exeの有無ぐらいしかないのかね?
497:デフォルトの名無しさん
08/08/22 23:51:24
GetCharABCWidths()で取得されるA寸法は、 GetGlyphOutlineで取得されるGLYPHMETRICSのgmGlyphOrigin.xとは違うものなんでしょうか?
説明を読むと同じに見えるけど、違う値が返ってきて混乱してます。
498:デフォルトの名無しさん
08/08/23 00:03:54
>>497
アンダー・オーバーハングに対応した文字だと違ってくるんじゃないかな。
499:デフォルトの名無しさん
08/08/23 00:46:12
>>493
異常終了したらwinlogon.exeがexplorer.exeを再起動するぞ。
500:デフォルトの名無しさん
08/08/23 00:47:42
>>499
タスクマネージャで終了したら再起動しない
501:デフォルトの名無しさん
08/08/23 01:02:59
たまにその対策をしてない常駐アプリはタスクトレイから消えちゃうんだよな
502:デフォルトの名無しさん
08/08/23 01:19:26
俺が使ってる常駐アプリの中ではその対策をしてる方が少ないな
503:デフォルトの名無しさん
08/08/23 01:45:23
>>454 はユーザがログオンしてるかどうか判定したいと言ってるけど、
実際は通知領域の表示ができるかどうかの問題なわけよ。
だから、シェルとしてのexplorer.exeで判定するのが正しい。
あと、起動処理が終わったかどうか調べる必要があるのかもしれない。
WaitForInputIdle?
504:デフォルトの名無しさん
08/08/23 02:10:50
GetDesktopWindowだとどうなるんだろう。
ログオフ中はきちんとNULLが返るのかな?
適当な値が返ってきたらやだな。
505:デフォルトの名無しさん
08/08/23 02:49:50
>>503
それならShell_NotifyIconが成功するまで適当な間隔で何度も呼び出せばいいだろ
そもそもXP以降はそうしろとMSのサイトにも載ってるし、ログオンとか関係ない話になる
506:デフォルトの名無しさん
08/08/23 07:53:52
>>495
俺もなんか知らないけどWMIで取得できそうな気がする。
507:デフォルトの名無しさん
08/08/23 22:09:42
>>500
それはWindowsが異常終了として扱わない。
explorer.exeが異常終了した場合はwinlogon.exe(MSGINA.DLL)がWlxStartApplicationで検出する。
そこでSHELLとしてのexplorer.exeが再度起動される。
508:デフォルトの名無しさん
08/08/23 23:08:46
空行ウザイ
509:デフォルトの名無しさん
08/08/24 01:15:50
510:デフォルトの名無しさん
08/08/24 01:19:59
↑だからうぜーってば
511:デフォルトの名無しさん
08/08/25 18:46:42
しばらく放置しないと、感染症になる雰囲気だけど、
ミソギを兼ねて、つまんない質問を。
Debug バージョンで HeapFree() で落ちるのは、スタックなどの管理領域を
壊したからですか。一時メモリで取った領域でないところに書き込んでも、
運よく、そういう領域でないなら落ちませんか。それとも必ず落ちますか。
512:デフォルトの名無しさん
08/08/25 19:31:46
落ちますん
513:デフォルトの名無しさん
08/08/25 19:35:47
HeapAlloc/HeapFreeの管理するメモリ領域は
普通はDebugランタイムのチェック対象ではないが
DebugランタイムがAPIフックするような開発環境ならその限りではない
514:デフォルトの名無しさん
08/08/25 19:54:21
運がよければ落ちないかもね
しかし運に頼ってプログラミングするのはやめてもらいたい
515:デフォルトの名無しさん
08/08/25 20:09:50
Windows2000からは、ヒープにチェック機構が追加されたので、
バッファオーバーラン等は、ページ単位より細かくチェックが入るようになり、
HeapFree呼び出し時に例外(ブレークポイント)を発生させるようになった。
516:511
08/08/25 20:30:59
早速、有難うございました。
>>514
Xp & VC++6.0 では落ちてなかったのに、Vista & VC++2008EE でだめになったからネ。
517:デフォルトの名無しさん
08/08/25 23:51:30
ネットワーク接続時にタスクトレイに出すことの出来る
ローカルエリア接続等で出ている送受信の総量などは
APIなどで所得出来るものですか?もし出来る場合どのようなAPIで可能
でしょうか?
518:デフォルトの名無しさん
08/08/26 00:13:06
休止やスリープから戻ってくるとアプリは起動しているけどパスワード入力画面という状態になってしまいます。
パスワード入力画面の最中は処理を行いたくないのですが、ログイン(?)したかどうかを調べることはできないでしょうか?
519:デフォルトの名無しさん
08/08/26 00:21:23
WTSナントカ
520:デフォルトの名無しさん
08/08/26 00:26:07
WM_WTSSESSION_CHANGE
521:518
08/08/26 00:35:22
ありがとうございます。これで解決できそうです。
522:デフォルトの名無しさん
08/08/26 07:17:55
>>517
URLリンク(www.geekpage.jp)
523:デフォルトの名無しさん
08/08/26 11:04:12
ユーザ名やパスワードなどの文字列を暗号化してINIファイルに書き込んだり、
それを取り出して複合したりといった処理を行いたいのですが、
なにかよいAPIやサンプルはありませんでしょうか。
524:デフォルトの名無しさん
08/08/26 11:15:08
CryptoAPI
525:デフォルトの名無しさん
08/08/26 11:17:04
サンプルは↓の右下の奴とか結構とっつき易い
URLリンク(www.trustss.co.jp)
526:デフォルトの名無しさん
08/08/26 15:08:12
APIじゃないかも知れないんですが、
MCEリモコン制御に対応させるためのsdkやらドキュメントの
手がかりってどの辺にありますでしょうか?
うまい検索単語が思いつかずに、開発とは関係ないページしか
引っかかりません