WinAPI相談室
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001名無しさん@お腹いっぱい。
NGNGシステムいじりたい人、軽いPG作りたい人はどうぞ。
(言語は指定してないんで質問の時にはちゃんと書いてね)
0002名無しさん@お腹いっぱい。
NGNG0003名無しさん@お腹いっぱい。
NGNGなんかここ技術板なのに、クソスレしか生まれないんだけど、どうしたらいいと思う?
0004名無しさん@お腹いっぱい。
NGNGそれは1に対する煽りなのか?
0005名無しさん@お腹いっぱい。
NGNG特に週末はひどいものがあるな。
0006名無しさん@お腹いっぱい。
NGNG今いるのはプログラムに興味はあるもののなにも出来ない
引きこもりさんばっかり。
0007名無しさん@お腹いっぱい。
NGNG自暴自棄になるな!!
0008名無しさん@お腹いっぱい。
NGNG0009名無しさん@お腹いっぱい。
NGNGどうしたらいいでしょうか?
0010名無しさん@お腹いっぱい。
NGNGDirectX はやめて Java で記述しなさい!
0011名無しさん@お腹いっぱい。
NGNG0012名無しさん@お腹いっぱい。
NGNG必要ないから。
つーか、俺も使ったこと無い。何に使うの?>11
0013名無しさん@お腹いっぱい。
NGNG良いビデオカードに変えてみよう。
0015名無しさん@お腹いっぱい。
NGNGいや、NT系なら正常動作するらしいよWin2000とか・・・。
00163
NGNG0017名無しさん@お腹いっぱい。
NGNGあら、そうなの。無知だった。
やぱNT系列は優秀だね。
0018名無しさん@お腹いっぱい。
NGNG言っちゃ駄目だそうなんですが・・・。
0019名無しさん@お腹いっぱい。
NGNGWin32同期オブジェクトの暗黙なキューに依存せずに、
確かな待ち行列のもとで同期の仕組みを作りたいので
他のプロセスのスレッドをResumeしたりSuspendしたりしたい。
ThreadIDやハンドルはとれるんだけど、OpenThreadもないし、
DuplicateHandleも無いので、模索中。
002012
NGNG暗黙って…、CreateEventやMutexじゃだめなの?(CEにあったっけ?)
カーネルオブジェクトに頼らないで、プロセス間でどうやって同期させるの?
002112
NGNG0022名無しさん@お腹いっぱい。
NGNGNTならOK
002312
NGNGなるほど。勉強になります。
0024名無しさん@お腹いっぱい。
NGNG待ち行列に依存しないでもよい形かたちで、最低限の同期オブジェクトは使う。
まぁキューになってないOSなど存在するとは思えんが、
貧弱な同期処理しかできないOSにも移植できるようにとの
お達しのもとで作業しておる。最悪、OALでなんとかするし。
002512
NGNG>貧弱な同期処理しかできないOS
例えばどんなのがありますか?
あと、OALってなんですか?
質問ばかりですいません。
0026名無しさん@お腹いっぱい。
NGNG一部のRTOSなんかにありそうだとムダに想定されている(ワラ
OALは、CEのカーネルをビルドするときに、
ハードウェアに依存する部分をベンダーが実装する層。
DirectXのHALみたいなもんだが、カーネルモードで動く。
002712
NGNG昔、CEはシングルタスクって聞いたことありますが、それも絡んでそう。
0028名無しさん@お腹いっぱい。
NGNGんー、でもセマフォぐらいは簡単(とはいわないけど)に実装できそうな気がする。
スレッド関係の本にもサンプル載ってるぐらいだから…
0029名無しさん@お腹いっぱい。
NGNGスライシングの方法によるか。
0030母を訪ねて名無しさん千里
NGNG双方の合意のうえでやんなきゃ。
0031名無しさん@お腹いっぱい。
NGNG他スレでかいしゅつだったらゴメン。
0032名無しさん@お腹いっぱい。
NGNGあるけど教えない。
つーか、MSDNで十分だろ?
0033名無しさん@お腹いっぱい。
NGNG>一部のRTOSなんかにありそうだとムダに想定されている(ワラ
そんな想定で車輪の再発明をするのは無意味だと思います。
特に同期処理なんて片手間で開発するのは無謀です。
既に稼動実績のあるモジュール(が存在すればそれ)を使うか、
プロジェクト初期段階で対応させるOSを明確化すべきです。
#仕事じゃなくて、研究課題ならいいですけど。
0034名無しさん@お腹いっぱい。
NGNG31は初心者でもっと解りやすいのが見たいんじゃないのか
っていうかあるけど教えないなどと根性ワルなことかくなよ。
最初から何も言うな。
あ、ちなみにおれは知りませんので・・・。
0035名無しさん@お腹いっぱい。
NGNG0036とおりがかりのおばちゃん
NGNG2chて、たまにとてもよい情報ころがってるよね。
0037名無しさん@お腹いっぱい。
NGNGCreateProcess()はCE 1.0以降サポート。
CreateThread()はCE 1.01以降サポート。
とAPIヘルプに書いてあるが。
0038名無しさん@お腹いっぱい。
NGNGスレッドのsuspend, resumeもplatform限定しそうだけどなぁ。
pthreadだとサポートしてないよね確か。
俺だったら素直にセマフォ使って(無いなら実装して)同期取るけどね。
0039名無しさん@お腹いっぱい。
NGNGサイトじゃないけど、
http://www.cs.virginia.edu/~lcc-win32/
にある「Windows API documentation size: 12.8M」はWindowsAPIのリファレンスです。
ただし英語。
004031
NGNGお、こりゃいいですね。ありがとう。
>39
ありがとです。しかし俺、英語がわからんのです。
鬱だ、鬱すぎて氏ぬ気力もない。
0041名無しさん@お腹いっぱい。
NGNGしかし早速飛びました。他にも原因があるのかもしれませんが思い付くものを潰していこうと思います。
それで
MMRESULT WINAPI joyGetDevCaps(UINT uJoyID, LPJOYCAPS pjc, UINT cbjc);
このAPIに渡すのはジョイスティックのポート番号と、JOYCAPS構造体のアドレスと、
最後はJOYCAPS構造体のサイズでいいんでしょうか。
Webで見つけたVBのソースを参考にしてみたんですが間違っているかどうか教えてください。
004241
NGNG0043名無しさん@お腹いっぱい。
NGNG書き込むAPIはないのでしょうか?
0044名無しさん@お腹いっぱい。
NGNGたとえば呼ばれたDLLからHINSTANCEの必要なAPIを呼ぶのにどうしようかなと
004544
NGNG0046名無しさん@お腹いっぱい。
NGNGあるのかもしれないけど、俺はだいたいDLLの関数を呼ぶときに引数つけて
呼ばせてる。
004744
NGNG>このパラメータがNULLの場合、 GetModuleHandle関数は、 呼び出したプロセスを作成するのに使われたファイルのハンドルを返します。
でもコンソールアプリでもGUIアプリでも常に 0x400000が帰って来ます。
そしてhInstanceもどうもいつも0x400000です
#解説WebによるとこのhInstanceはアプリ事に違うように書いてあったのに・・・・
という事は実は GetModuleHandle でビンゴなのかな?
004844
NGNGなるほどなんですが、でも面倒でしょ?
004944
NGNG#include <stdio.h>
#include <windows.h>
int CALLBACK WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow)
{
char str1[100];
sprintf(str1,"hInstance %8x ModuleHandle %8x",hInstance, GetModuleHandle(NULL));
MessageBox(0 ,str1, " test ", MB_TASKMODAL);
}
0050SAGE
NGNGGetModuleHandle(NULL) が入ってるようだが。(CRTのソースでは)
005144
NGNGに使ってましたね。
なんか日本語ヘルプがダメダメなのかな、-->GetModuleHandle
0052SAGE
NGNGちなみに、
The returned handle is not global, inheritable, or duplicative, and it cannot be used by another process.
0053名無しさん@お腹いっぱい。
NGNGIf this parameter is NULL, GetModuleHandle returns a handle of the file used to create the calling process.
005444
NGNGAPIのターゲットにするためのhWndが欲しい時に
ClassNameをどうしようかと悩んでいました。
連番式に区分けしようかと思っていましたが、
Delphiのソースを追いかけると
1回 RegisterClassしたクラスを使いまわして
CreateWindowした後
SetWindowLong(Result, GWL_WNDPROC,関数ポインタ)
していました。
これは学ぶべきでしょうか?
0055>44
NGNGサブクラスは普通に使われるテクニック
Windows側で用意されたコントロールもサブクラス可能だよ
0056。>55
NGNG既存のコントロールに独自のウインドウクラスを持たせられる。
オーソドックスなコントロールとかの拡張方法だね。
0057名無しさん@お腹いっぱい。
NGNGそれは何か違和感があるなあ 俺なら
SetWindowLong(hWnd,GWL_USERDATA,hoge);
で構造体というかオブジェクトを渡して、
必要ならその構造体に関数ポインタ入れとくけどなあ
005844
NGNGありがとうございます。さっそく検索して勉強します。
>>57さんの方法もなるほどですというか GWL_USERDATAの意味が見えて来ました。ありがとうございます
0059>57
NGNGサンク方式(動的にメソッド呼び出し中継関数を作り出す)が採用されている
というようなことを書いてたよ
0060>59
NGNGを書いた人?
0061名無しさん@お腹いっぱい。
NGNG0062名無しさん@お腹いっぱい。
NGNGhttp://www.komaba.utmc.or.jp/~tamon/winprog/winprog.html
>第1引数が現在のインスタンスのハンドルです。インスタンスとはプログラムの実行単位、プロセスのことで、同じプログラムであっても別々に起動されて別々に実行されている場合、別のインスタンスとなります
とか素直に読んで、インスタンスごとに違う値だと思い込んでた。
なんでも実証が大事なんだなあ
006344
NGNGサンプルにあるような感じで、ただサイン波を永遠出す為に
HDRをコールバックproc内で回収させるだけの処理を追加したところ
CALLBACK_WINDOWでは問題なく動く
(ただ当然メッセージ機構は常に動かす必要がある)
んだけど、CALLBACK_FUNCTIONは処理そのものは動くのだけど最後の
waveInResetのところでwindowsから帰って来てくれません。
006444
NGNG006544
NGNG0066名無しさん@お腹いっぱい。
NGNGNM_CUSTOMDRAW のとき
LPNMLVCUSTOMDRAW.nmcd.dwDrawStage がいつもCDDS_ITEMPREPAINT
で処理が進みません。
CDRF_NOTIFYITEMDRAWをちゃんと返してます。
0067>66
NGNG(っていうかその系列の解説がMSDNまだ英語なので逃げてたけど)
>>54-55で解説されてるサブクラスは試してみた?
0068名無しさん@お腹いっぱい。
NGNG詳しいサイトないでしょか?
探したけどもjavaばっかし見つかって、Winのは見つからんかった
0069>68
NGNGhttp://microsoft.com/Japan/developer/visualc/techmat/feature/ATLwindowing/
Delphiを使うなら 中村の里
http://www.asahi-net.or.jp/~HA3T-NKMR/vcl3-1.htm
APIベースなら
http://www.topposystem.co.jp/DL/Win32API/
ここの
http://www.topposystem.co.jp/DL/Win32API/GUI/コンボボックスの概要.html
007068
NGNG007166
NGNG0072名無しさん@お腹いっぱい。
NGNGWin16では確かにインスタンスごとに違ってたんだけどね
0073名無しさん@お腹いっぱい。
NGNG分かりやすく解説している、ホームページ、書籍などがあれば、ご紹介下さい。
0074名無しさん@お腹いっぱい。
NGNGAPIの本を眺めても載ってないのですが・・・・
0075名無しさん@お腹いっぱい。
NGNGその手の趣味の方々が集まったクラスです
常にお尻の穴が危険にさらされています
0076名無しさん@お腹いっぱい。
NGNGCreateWindowExだろ?
0077>73
NGNG0078名無しさん@お腹いっぱい。
NGNG簡単に言うと、ウインドウのウインドウプロシージャを独自の
関数に置換する事。その関数では、通常一部のメッセージのみを
独自に処理して後は元のウインドウプロシージャ―に渡すんで
「サブクラス化」と言うみたい。このサブクラス化で、ウインド
ウの動作の一部を変更できるんで、結構便利かも。
・創作プログラミングの街
http://www.sm.rim.or.jp/~shishido/
にも実際のソースや解説がある。あと、「プログラミング
Windows」でも取り上げていたはず。
007973
NGNG0080名無しさん@お腹いっぱい。
NGNGデバック中にメッセージ番号表示させても意味判らないので 変換関数作りたいんですが
0081名無しさん@お腹いっぱい。
NGNGwinuser.h見れ。
008280
NGNGAPIヘルプに メッセージ一覧があったので
これからテキストを抽出して Cソースに加工して印刷すればいいだけですね。
すみませんでした。
008380
NGNG0084名無しさん@お腹いっぱい。
NGNGspyを使えば、メッセージ名はわかるけど。
http://www02.so-net.ne.jp/~joh/jspy.html
0085名無しさん@お腹いっぱい。
NGNG0086名無しさん@お腹いっぱい。
NGNGWin95/98ではちゃんと動作しないという事が納期の前日に判明。
今修正中...
というわけで、95系とNT系で動作が違うAPI情報きぼん。
008773
NGNGVC++のヘルプで関数一つずつ調べれれば分かります。
それも大変ですけど。ヘルプの記述に間違いがあることもあるらしい。
納期先のマシン環境と同じ環境を作ってテストすべきだと思います。
0088名無しさん@お腹いっぱい。
NGNG同じ環境でテストせよとの主張は正しい。
0089名無しさん@お腹いっぱい。
NGNGMSDN見たら
SystemTimeToTzSpecificLocalTime
Windows 95/98:サポートされていません。
あほすぎ
0090名無しさん@お腹いっぱい。
NGNG別のプログラム(を作る)のボタンを押して
「あたかもホットキーを押したかのように」アクティヴにしたいんですけど
何か手がかりありませんでしょうか。
ホットキーに反応するほうの資料はあるみたいなんですけど。
0091名無しさん@お腹いっぱい。
NGNGRectangleと線で構成した図形を作りました。
□の対角を結んだ(×こんなふうに)図形です。
数値では正確な値を指定したはずなのですが
線が四角からはみ出てしまいます。
調べてみたところ四角形の方がずれてるみたいです。
これはある本の例題を試したのですが、本に付録のexeファイルで
やってもやっぱりずれます。どこに問題があるのでしょうか。
0092名無しさん@お腹いっぱい。
NGNGkeybd_event
0093名無しさん@お腹いっぱい。
NGNGかちゅ〜しゃ作ってるんかな。
0094ブービーさん
NGNG刷すると「名前を付けて保存」を表示しますが、
これを自前で処理できればいいなと考えています。
(PostScriptファイルの作成などに使うのが目的です)
で、ファイルに出力することはできたのですが、
ファイル名を聞いてくるダイアログをどうしたら消すことができるか
いろいろ試行錯誤していますが、まだ解決していません。
どなたかご存知の方がいましたら、指針かご回答を
お教えください。ちなみに、VC++6 でやっています。
0095名無しさん@お腹いっぱい。
NGNG貧乏学生には使えないAPIの1つです。(泣)
0096ブービーさん
NGNGとりあえず大丈夫ですよ。
http://www.adobe.com/support/downloads/pdrvwin.htm
0097名無しさん@お腹いっぱい。
NGNGどうもありがとう。
今DL中です。
0098デフォルトの名無しさん
NGNGLineToは終点を含まない筈
Rectangleも同じで x終点-x始点ドットの図形が描かれる筈
だけど、実際にはその通りにならない場合も多し。気にするな
0099名無しさん@お腹いっぱい。
NGNG本屋に行ってもMFC使ったのしか分からなかった。
できれば入門書とリファレンスとお願いしたい。
初心者なんで的はずれな質問だったらスマソ。
010091
NGNG本を読み進んでいくと
Windowsが勝手に値を変更するみたいなことが書いてました。
0101名無しさん@お腹いっぱい。
NGNGプログラミングWindows第5版 (上)(下)
マイクロソフトプレス
なんかがおすすめ。
0102バッカーです
NGNGCreateEnhMetaFile は0.01"ミリ"単位で指定
Rectangle は座標だからピクセル
この辺の問題じゃなくって?
0103名無しさん@お腹いっぱい。
NGNG鬱だ氏脳
「猫でも分かるプログラミング」でも復習してくるか…
VCのヘルプは英語だしさらに鬱だ…
0104名無しさん@お腹いっぱい。
NGNG0105101
NGNG基本的なことをやるのなら上巻の最小の方だけやっても基本は理解できる。
別にメタファイル、スクロール等が必要ないのであれば読み飛ばしても問題ない。
もっとも構造体とポインタがわかってないとまずだめだが・・・
0106名無しさん@お腹いっぱい。
NGNGメモ帳の.exeファイルには手を加えないで、他の.exeから設定する方法を考えています。
0107名無しさん@お腹いっぱい。
NGNGSetWindowsHookExとか調べてみ。
0108名無しさん@お腹いっぱい。
NGNG実際やってるやついるの?
0109106
NGNGありがとうございます。
それを手がかりに調べます。
0111108
NGNGいや、だから俺が、そんなめんどうなことできるか?
って逝ってるんだが...
メモ帳似ソフトを自分で作ってしまったほうが
はやくない?
0112107
NGNGそれよりはキーバインドをカスタマイズ出来るエディタを使った方が
早い。実用的な意味が皆無なのは、言われなくとも当人が一番良く
分かっているだろうが、修行中のプログラマは、何も実用性のためだけに
プログラムを組む訳じゃないだろう。
自分のものさしだけで物事を考えるのは止せ。
0113名無しさん@お腹いっぱい。
NGNG0114デフォルトの名無しさん
NGNGOSどころかプログラムごとに値が違う物もありますぜ。
http://www.asia.microsoft.com/japan/support/kb/articles/J055/3/73.htm
さらに仕様と言い切るMSにびっくり。
0115デフォルトの名無しさん
NGNG0116名無しさんi486
NGNGこれは仕様だろ。なんで仕様なのかわからないのなら、それは
あなたが厨房。わからないのならわからないっていえば教えたる。
まあMSも、もうほんのちょっと賢くできたとは思うがな。
0117デフォルトの名無しさん
NGNG是非教えてもらいたいです。
0118116
NGNG存在するのよ。よくあるのがGetVersionのLOWORDをそのまま大小比較
してしまうもの。GetVersionはMinorVersionが上位にあるからそのまま
大小比較すると当然だめだよね。で、MSがとった方法が、Bugってる
製品の名前をレジストリに記録しておいて、その名前をもつプロセスからの
GetVersionコールに対しては嘘をつくようになっているわけだ。
だから、そのBugってる製品と同じ名前を使った場合はGetVersionの
戻り値は正しい値にならないわけ。Win2000なんかはもうちょっと頭よく
なっていて、ファイルのチェックサムも見て名前とチェックサムが
一致した場合のみ嘘の値を返すようになっている。わしならCallerの
アドレスもチェックするかなあ。
ただ、このOS側の対応に依存したまま何Versionにも渡って、ずーっと
間違いつづけている超有名アプリなどがあるのも事実。
そういう場合はチェックサムなどではじくことはできないからファイル名
のみではじいているだろう。
過去の遺産を無視して、かつBugってる製品も無視できれな、楽なんだろう
けど、OSっていうのはそういうわけにはいかないよね。加えて
これだけ使われてて、数千ものアプリがある場合にはOS側のBugすら
直せない場合がある。
Win2000なんかは、C DeclareされてるDefWindowProcでも動くように
なってるしねえ。こんなの間違う奴いるのかと思ったら、結構あるんだよね。
ちまたのアプリのプログラミングレベルは思ったより低いのよ。
0119デフォルトの名無しさん
NGNG依存したくありません。で、どうするかですが、
- 自前でWinsockを操作する。できれば、やりたくない。
- どっかにフリーの素敵なHTTPライブラリがあったりする。
どなたか良いライブラリ知りませんか?
いっそ、IE 3.x以降必須にした方がいいのかなぁ…
0120名無しさん@お腹いっぱい。
NGNGWININETに依存したくない理由ってそれなのか?
0121名無しさん@お腹いっぱい。
NGNG0122119
NGNGズバリ、それが理由。
しかし今時IEなしの素のWindows 95を使っている人がどれだけいるやら。
いっそ、割り切ってしまいたいところではある。
0123名無しさんTurbo
NGNGwgetを使いましょう。
Visual C++でそのままコンパイルして使えます。
http://www.gnu.org/gnulist/production/wget.html
0124禁断の名無しさん
NGNGGetVersionの戻り値が変化する実行ファイルリストって
どうやって手に入るのかな?
0125119
NGNGありがとうございます〜。試してみますです。
0126デフォルトの名無しさん
NGNGどうやって配列に格納したりするのですか?
0127デフォルトの名無しさん
NGNG0128デフォルトの名無しさん
NGNGレシーブというのはどうやるのですか?
0129デフォルトの名無しさん
NGNG0130デフォルトの名無しさん
NGNGつまりWM_IME_CHARメッセージのwParamは2バイト文字になってて、
それを文字の数だけ受け取るって事なんですか?
0131デフォルトの名無しさん
NGNGあと、WM_IME_COMPOSITIONとかいうのも使った様な?
記憶があやふやですいません。
0132デフォルトの名無しさん
NGNGWM_IME_COMPOSITIONで検索してみたら説明してるページ見つける事ができました。
何回も答えてもらってほんとにありがとうございました。
0133デフォルトの名無しさん
NGNG0134デフォルトの名無しさん
NGNGそんなやりとり2チャンらしくない。却下。
0135デフォルトの名無しさん
NGNG教えていただけないでしょうか?
0136奥さん、名無しです
NGNGWaitForSingleObject()
0137。>
NGNGGetExitCodeThread
を調べてみて。
0138135
NGNG作成・実行環境がWin2kなのでOpenThread()でTHREAD_QUERY_INFORMATIONを割り当ててから
GetExitCodeThread()とスレッド関数の戻値判定で望んでいた動作になりました。
ありがとうございました。
0139。>
NGNGそもそも、Createした時に取得したハンドルはどうしたんでしょ?
0140138
NGNGそもそもハンドルを保持してませんでした。
Win2kだとTHREAD_QUERY_INFORMATIONなりSYNCHRONIZEを与えないとだめらしいんで
OpenThread()を使って後付けで取得してやってますが…。
(というわけでWaitForSingleObject()でもできました。)
いまのところ1個しかスレッド使っていません(増やすかもしれない…)。
0141。>
NGNG>そもそもハンドルを保持してませんでした。
それ、捨てちゃってるの?
保存しといて、CloseHandleしないと、リークになっちゃうよ。
0142デフォルトの名無しさん
NGNGタスクトレイに常駐した状態でマウスホイールの
メッセージって受け取れるでしょうか?
メッセージトレースしたんですが、
マウスホイールのメッセージって
タスクトレイには通知されてないように
見えるのですが......
ご存知の方いたら教えてください。
OS は Win2k / Win98 です。
0143デフォルトの名無しさん
NGNG使ってるマウスのメーカーは?
ロジテックだとちょっと面倒。
0144デフォルトの名無しさん
NGNG私が基本的なことわかってないみたいで、
恥ずかしいですが、メーカによって違うんですか
ホイールのメッセージって。
マウスはエレコムというメーカーのを使っています。
ドライバーで「Office97」という設定にしています。
自作のプログラムはちゃんとできたらフリーソフトに
したいと思ってるので、出来ればホイールマウスの
メーカごとの差異とかについても知りたいのですが、
よろしければそこら辺もご教授ください。
0145デフォルトの名無しさん
NGNG「Office97 互換モード」の間違いです。
0146デフォルトの名無しさん
NGNG対象はWin2kだけです。ウィンドウの透明化は簡単だったのですが…。
0147デフォルトの名無しさん
NGNG0148デフォルトの名無しさん
NGNGh = FindWindowEx(h, NULL, "SHELLDLL_DefView", NULL);
h = FindWindowEx(h, NULL, "SysListView32", NULL);
SendMessage(h, LVM_SETBKCOLOR, 0, -1);
0149デフォルトの名無しさん
NGNGLVM_SETBKCOLORではなくLVM_SETTEXTBKCOLORだろ
0150デフォルトの名無しさん
NGNGConst LVM_FIRST = &H1000
Const LVM_SETTEXTBKCOLOR = LVM_FIRST + 38
Public Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Public Declare Function InvalidateRect Lib "user32" (ByVal hwnd As Long, lpRect As Any, ByVal bErase As Long) As Long
Public Declare Function UpdateWindow Lib "user32" (ByVal hwnd As Long) As Long
Sub Main()
Dim h As Long
h = FindWindowEx(0, 0, "Progman", vbNullString)
h = FindWindowEx(h, 0, "SHELLDLL_DefView", vbNullString)
h = FindWindowEx(h, 0, "SysListView32", vbNullString)
SendMessage h, LVM_SETTEXTBKCOLOR, 0, ByVal -1&
InvalidateRect h, ByVal 0&, -1
UpdateWindow h
End Sub
おれのおごりだ、取って置け>>146
0151148
NGNGあーほんとだ。
#include <windows.h>
#include <commctrl.h>
int main(void)
{
HWND h = FindWindowEx(NULL, NULL, "Progman", "Program Manager");
h = FindWindowEx(h, NULL, "SHELLDLL_DefView", NULL);
h = FindWindowEx(h, NULL, "SysListView32", NULL);
SendMessage(h, LVM_SETTEXTBKCOLOR, 0, -1);
InvalidateRgn(h, NULL, true);
return 0;
}
0152デフォルトの名無しさん
NGNGVBなのにここまでVBらしくないコードも珍しいな
0153呼び出し規約について
NGNGBorlandC/C++とWinAPIで書いてるのですが、関数の頭につける呼び出し規約"WINAPI"と"CALLBACK"はどのように使い分けたらいいのでしょうか?
また呼び出し規約はどういうときに付けてどういうときに付けなくてもいいんでしょう?
教えてください。
0154デフォルトの名無しさん
NGNGだ、__stdcallというのは、左から右にパラメータを積んで呼ばれた関数でスタックを戻すやつだ。ほとんどのAPIはこの呼び出し規約だ。
例外は可変長引数をとるwsprintfぐらいだ。__stdcallは可変長引数に対応できないからな。
DLLでエクスポートするならこれにしておいたほうが無難だ。
少なくともVBはこの呼び出し規約を前提にしている。
CALLBACKも実は__stdcall
WINDEF.H(118):#define CALLBACK __stdcall
だ。ただ意味合いは、APIからコールバックされる関数という意味で違うぞ。
0155デフォルトの名無しさん
NGNG間あいてごめん。えっと結局フックをかけることになると思うんだけど、
ロジテックとかのドライバは勝手にスクロールさせちゃうことがある。
Office互換なら問題なし。WH_MOUSEかWH_JOURNALRECORDに
フックをかけるんだけど、JOURNALRECORDの場合はWM_MOUSEWHEEL
のデルタ値が保存されないらしいのでほとんどの場合はWH_MOUSE
でやるしかない。
でもうちのロジテックはOffice互換にしてもwindows.hにある
0x020aじゃなくて0x7c02とかいう変なメッセージしかこない。
何でだ?
0156デフォルトの名無しさん
NGNG使い方がわからなくて、
どこで宣言して、どこで実行するとよいのでしょうか?
(winmainで実行とか、それともプロシージャの中とか、、、)
あと、名前ありセマフォと名前なしセマフォの違いを教えてください。
0157デフォルトの名無しさん
NGNG作るのはプログラム始まってすぐ WM_CREATE
削除は WM_DESTROY
使うのは関数のなかとかでスレッド同期とりたいとき
名前なしはわからん。
とりあえず付けとけば。
0158デフォルトの名無しさん
NGNGどこでもいいよ有るべきときに有るようになっていれば。
名前ありSemaphoreはプロセスをまたいで使えます。
名前なしの場合はSemaphoreオブジェクトを何らかの方法で
外部プロセスへ通知する方法を作らないとプロセス間で共有できません。
普通はプロセス間で使う場合は名前ありにするけどね。
ところで、本当にSemaphoreが必要なの?
MutexやCriticalSectionは考えなかった?Eventがぴったりという場面もある。
特にCriticalSectionは同一プロセス別スレッドで使用するなら一番速いんだけど。
0159153
NGNGレスどうも。
勉強になります。
ありがとうございました。
0160デフォルトの名無しさん
NGNG今のところシステムフックを使ってキー操作をフックするぐらいしか思いつかない。
0161デフォルトの名無しさん
NGNG0162156
NGNGmidioutのプログラムを作っていて、
本を買ったらライブラリがついてきて
どうもそれを使うとぶつかったりするのは解消できるようなので、
セマフォを使ってスレッドを必要分たてて出力に持っていければいいかと思いました。
Mutexは解らないのですが、
そのライブラリを使えばCriticalSectionはたぶん必要ないみたいです。
midioutで音が鳴るのですが、
場合により音が重なるときがあって、
セマフォをたてようとしていたのですが、
他の方法の方がよいのでしょうか???
0163156
NGNGちょっと読んでいて文章がおかしいとおもったので(^^;
スレッドを8つ実行できるようにしたくて、
スレッドを必要分作って、
セフォマで制御してあげればよいのかと思いました。
もしかしたら、CriticalSectionの方がいいかも、、、。(^^;
0164デフォルトの名無しさん
NGNGなんとなくevent向きだぞ。
0165デフォルトの名無しさん
NGNGWM_MOUSEWHEELが来るのは、WinNT/2000系だけで、Win9X系ではホィールメッセージは
RegisterWindowMessageで取得するんでなかったかなぁ、たぶん。
0166特命リサーチ200X
NGNG0167デフォルトの名無しさん
NGNGありがとうございます。
WH_MOUSE のグローバルフックでうまくいきました。
ロジテックのホイールマウスも手元にあるので
そちらでも実験してみます。
0168デフォルトの名無しさん
NGNGメニューを描画するフォント名を取得したいのですが、
どうすればいいのでしょう?
フォント名(MSゴシックとか)です。
出来れば、レジストリ直接参照は避けたいです。
0169160
NGNGレスありがとうございます。
キーボードドライバを自分で書いてみようと思います。
お薦めのツールや書籍があったら教えてください。
0170turbo type D
NGNGhttp://www.ceres.dti.ne.jp/~goto-ta/windows/ownerdrw1.html
http://www.kab-studio.com/Programing/Codian/MFCTips/09.html
0171デフォルトの名無しさん
NGNGSystemParametersInfo
0172146
NGNG147,148,149,150さんありがとうございました。
SendMessage(hwnd, LVM_SETTEXTCOLOR, 0, 0x000000);
で文字色を変えるのもできました。
0173デフォルトの名無しさん
NGNG0174デフォルトの名無しさん
NGNGSetWindowLong(hwnd, GWL_STYLE, GetWindowLong(hwnd, GWL_STYLE) | TCS_FLATBUTTONS);
// タスクボタンのフラット化をやめる
SetWindowLong(hwnd, GWL_STYLE, GetWindowLong(hwnd, GWL_STYLE) & ~TCS_FLATBUTTONS);
こんな感じでタスクボタンのフラット化(表示がおかしくなるようですが…)
はできたのですが、スタートボタンのフラット化がうまくできません。
試しにスタートボタンのハンドルを使ってもSetWindowLong()ではだめでした。
対象・テスト環境はWin2k・開発はBCC5.5です。
0175SAGE
NGNG俺はよくわからんのだが、とりあえずTClockのソースを見るよろし。
0176デフォルトの名無しさん
NGNG0177デフォルトの名無しさん
NGNGdwMinorVersionには何が入ってきますか?
(Meのマシンが無いので確認できないのです)
0178SAGE
NGNG0179177
NGNGありがとう。助かりました。
0180デフォルトの名無しさん
NGNGどうもです。無事にフォント名(&サイズも!)取得できました。
0181デフォルトの名無しさん
NGNGって、誰か使い方知らない?
0182デフォルトの名無しさん
NGNGその制限を越えたら、その分使われてない順に仮想メモリにスワップさせるAPIは無いでしょうか。
他で動いてるプログラムの為に物理メモリをあまり消費したくないんです。
自分でキャッシングを実装しても良いんですが、システム側に比べると圧倒的に遅い気がするので。実装も大変そうだし。
0183デフォルトの名無しさん
NGNG0184デフォルトの名無しさん
NGNGメモリマップも試しましたが、結局物理メモリにコピーされる様なので、
巨大ファイルを扱うと物理メモリを食いつぶしてスワップしまくってしまいました。
0185デフォルトの名無しさん
NGNGWindows9x/NT4/2000その他UNIX系-OSなどで動作させたいので、
やっぱり自分で作るしかないですかね。
0187デフォルトの名無しさん
NGNGどーやってやったらいいのでしょうか?
お願いします。
0188SAGE
NGNGstruct DLGTEMPLATEEX
{
WORD dlgVer;
WORD signature;
DWORD helpID;
DWORD exStyle;
DWORD style;
WORD cDlgItems;
short x;
short y;
short cx;
short cy;
};
int CALLBACK PropSheetProc( HWND wnd, UINT msg, LPARAM lp )
{
if( msg == PSCB_PRECREATE )
{
DWORD* pst = ( 0xffff==((DLGTEMPLATEEX*)lp)->signature ) ?
&(((DLGTEMPLATEEX*)lp)->style) : &(((DLGTEMPLATE*)lp)->style);
(*pst) &= ~DS_CONTEXTHELP;
}
}
0189デフォルトの名無しさん
NGNGありがとうございます。
しかし、良く分かりませんでした(汗)
このコールバックはどこで指定するものなのでしょうか?
普通のプロパティシートのコールバックではないですよね。
0190SAGE
NGNGPropertySheet() API に渡す PROPSHEETHEADER 構造体の中の
PFNPROPSHEETCALLBACK pfnCallback;
ね。
0191suzume
NGNGRegSaveKeyでたとえば、 HKLM\software などをファイルに保存して、
HKLM\software をRegEditとかで全部消して、
RegReplaceKey で復元しようと思っているのですが復元してくれません。
戻り値は、問題なくERROR_SUCCESSが帰ってきています。
どこかのサイトで、保存するファイルは拡張子なしにしなければ行けないとか書いてあったけどいみなししでした。
Microsoftに書いてあるとおりにやってんだけど・・・・
ご存知の方いないでしょうか?
0192デフォルトの名無しさん
NGNG人のPCのレジストリを
ゴリゴリ書き換えるプログラムは嫌いだわ。
レジストリ使うのやめなさい。
0194デフォルトの名無しさん
NGNGできました。
ありがとうございます
0195suzume
NGNGレジストリ壊す人もいるし...
そういうものが必要なときがあるんですよ〜
0196168
NGNGメニューを描画するフォント名を教えてもらった者です。
このフォントの色は取得できないようです。
APIヘルプと睨めっこしたのですが、出てきませんでした。
メニューのフォント色は、どうやって取得出来るのでしょうか?
0197>196
NGNG::GetSysColor(COLOR_MENUTEXT);
じゃなくて?
0198デフォルトの名無しさん
NGNGギャ--!忘れてた。
無事取得できました。
どもありがとうございました。
0199デフォルトの名無しさん
NGNGWinMainのhInstanceを後から得る関数って有りますか?
0201名無しさん@お腹いっぱい。
NGNGウインドウハンドルがわかってるなら(HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE)
ほかにはWinMainでグローバル変数に収納して使うとか。
0202名無しさん@お腹いっぱい。
NGNGGetClassName()でクラス名を使う方法は思いついたのですが、ほかに有効な方法があったら教えてください。
0203199
NGNGWinMainじゃなくただのmainの場合はどうやってウインドウ作るんでしょうか?
0204デフォルトの名無しさん
NGNG0205デフォルトの名無しさん
NGNGおおぉぉ!
ありがとうございます。みごと解決しました。
0206デフォルトの名無しさん
NGNG>186
そのAPIは却下です。NT/200でしか使えない様ですので。腐ってますね。
結局自分で作りました。
0207名無しさん@お腹いっぱい。
NGNG0208デフォルトの名無しさん
NGNG0209207
NGNGありがとうございます。
0210デフォルトの名無しさん
NGNGアイテムテキストを取得したいのですが、LVM_GETITEMTEXTメッセージのインタフェースが
バッファとバッファのサイズを渡して、そのサイズ内でバッファにアイテムテキストを返すとなっています。でもサイズを取得する方法が無いようなので、どれだけの大きさのバッファを渡していいのかわかりません。
MFCのCString CListCtrl::GetItemText(int nItem, int nSubItem) constのソースを見ると、
・あらかじめ割り当てて、それでアイテムテキストの取得を試みる。
・足らないようならバッファの大きさを倍にして、取得を試みる。
となっているのですが、もうちょっとスマートな方法が無いものでしょうか?
0211デフォルトの名無しさん
NGNGこの方法がMSの公式見解かもね。
WM_GETTEXT/WM_GETTEXTLENGTH見たいにアイテムのテキストは長さが取れないのね
こりゃインタフェースの欠陥だな >>MS
0212名無しさん@お腹いっぱい。
NGNG「ファイルを開くアプリケーションの選択」ダイアログボックスを
出すにはどうしたらよいですか?
0213212
NGNGsageてしまった。
0214デフォルトの名無しさんだもん
NGNGMFC使うなら
CFileDialog使う。
CFileDialog dlgFile(FALSE "csv", szFile, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, "csvファイル (*.csv)|*.csv|All Files (*.*)|*.*||", this);
dlgFile.DoModal();
0215デフォルトの名無しさん
NGNGメニューの文字の横にアイコンを置くのはどうやればいいのでしょう?
(例:エクスプローラーの「ファイル」→「新規作成」)
AppendMenu関数では、文字かBitmapかどちらか一つを選べるようですが、
文字の横にBitmapを置くっていうのは、この関数ではできないようです。
0216デフォルトの名無しさん
NGNGAPIならGetOpenFileName()
引数の構造体のメンバが20個ぐらいあるので面倒だけどな。
0217名無しさんi486
NGNGオーナードローで自分で描く。
MFCなら、codeguruやcodeprojectにクラスがあるよ。
0219212
NGNG0220デフォルトの名無しさん
NGNGたぶん >>216 は、ただのバカだ。おつかれ。
正解はこちら。
http://www.microsoft.com/JAPAN/support/kb/articles/J042/7/12.htm
0221212
NGNG0222名無しAMD
NGNG実は、インターネットエクスプローラの 「ホーム」URLを書き換える
プログラムが作りたいんです。
知ってる人、どうかよろしくお願いします。
0223デフォルトの名無しさん
NGNGレジストリキーをチェックしてね♥
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main
Start Page
0224名無しAMD
NGNGあー、早いレス。それに、貴重な情報。
ありがとうございます〜 (≧▽≦)ノ
早速今夜試してみます〜。
0225デフォルトの名無しさん
NGNGスタートページ変えられるのスゲェ迷惑なんすけど。
0226デフォルトのななしさん
NGNGあ、環境はwindows9x or windowsNT系ね。
windows2000に特化してたりするのはパス。
0227デフォルトの名無しさん
NGNGサードパーティのソケットライブラリを使う。
#有るのか知らん。FTPとかで出してないか?
0228デフォルトの名無しさん
NGNG0229デフォルトの名無しさん
NGNGWindows3.1の頃は色々あったけどねぇ。
ま、それでも窓口はWINSOCKだったけど。
0230でふぉると名無しサン
NGNG何か参考になるソースないでしょうか?
0231ネタ
NGNG0232デフォルトの名無しさん
NGNG0233デフォルトの名無しさん
NGNG0234デフォルトの名無しさん
NGNG256色の場合はインデックスだけど、パレットはRGB形式だし。
そうゆう意味じゃなくて?
0235デフォルトの名無しさん
NGNGLoadImageでDIB形式で読み込んだものを
GetDIBits でピクセルを読み込む。
ただしLoadImageはNTでは動かない。
スージープラグインを使うのもいいかも。
0236232
NGNGパレットを持ってる奴を24bitカラーに直して読み込みたいです。
>235
LoadImageの存在をはじめて知ったのであとで調べてみます。
GetDIBitsって、LONG境界で置かれているものを、詰めて置いてくれるんでしょうか?
0237デフォルトの名無しさんだもん
NGNG>パレットを持ってる奴を24bitカラーに直して読み込みたいです。
1byteずつデータ読んでいってそれに対応するパレット、(RGBQUADからね)
で、出来上がりね。
BITMAPINFOHEADER、BITMAPINFO あたりはすでに読んでるよね。
0238236
NGNG圧縮されている奴とか自力で解答するってことで?
それって結構手間では…
どちらにしろ一発では無理ということですか…
0239デフォルトの名無しさん
NGNGつまり、どんな形式のBitmapでもカンタンに読込みできる
ライブラリを探しているわけね?自作したいんじゃなくて。
最初からそう言ってよ。
0240238
NGNG出来れば自作したいんですが…
画像ファイルをメモリに展開する場合、大抵の人はライブラリ使ってるんですかね?
0241デフォルトの名無しさん
NGNGBMP/JPEG/GIFならOleLoadPicture()が楽
使い方はGoogleにでも聞いてくれ
0242デフォルトの名無しさん
NGNG手間かけたくないみたいなこと238で言ってるのに、
でも自作したいって... 自己矛盾してないか?
0243240
NGNGJPEGやGIFまでロードで出来るなんて便利な関数ですね。
さっそく調べてみます!
0244240
NGNG0245デフォルトの名無しさん
NGNG0246デフォルトの名無しさん
NGNG特許の問題があるからねぇ・・・
0247デフォルトの名無しさん
NGNGBITMAPINFOHEADER の biCompression に、
BI_JPEG とか BI_PNG とか付いたんだ?
鬱だ・・・
0248デフォルトの名無しさん
NGNG方法ってあります?PEヘッダーじゃダメそうだし、GetSTDHandleを
インポートしているかどうかでもダメだし。
0249デフォルトの名無しさん
NGNGJpegとかPNGのBMPもあるってこと?
0250デフォルトの名無しさん
NGNGSHGetFileInfoでどうだろう
0251248
NGNGうまくいきました。ありがとう。
まさかAPI一発とは思ってもみませんでした。
0252デフォルトの名無しさん
NGNGSHGetFileInfoでExplorerに表示されるICONのファイル名を取得したいのですが
うまくいきません。
int main(int argc, char* argv[])
{
SHFILEINFO sfi;
::CoInitialize(NULL);
if(0 == ::SHGetFileInfo("C:\\hogehoge.txt", FILE_ATTRIBUTE_NORMAL, &sfi, sizeof(sfi), SHGFI_ICONLOCATION))
return -1;
printf("Icon location file = %s\n", sfi.szDisplayName);
return 0;
}
SHGFI_TYPENAMEを指定するとsfi.szTypeNameファイルタイプ名が入るのは確認できたのですが、SHGFI_ICONLOCATIONを指定してもsfi.szDisplayNameにアイコンファイル名が入ってくれません。(sfi.szDisplayName[0]='\0'で終わりになっている...)
やっぱりレジストリから判断するしかないかな?
検索しまくりましたが、うまくいく事例なし。
ただ同じようにうまく行かなくて悩んでいる人は見つけましたが。
http://www.kab-studio.com/Programing/KabuU/200011b.html
0253デフォルトの名無しさん
NGNGIntelコンパイラというのはVC++のコンパイラになるのだが
BCCをVC++に組み込むのはやはりないのか。
0254デフォルトの名無しさん
NGNG0255デフォルトの名無しさん
NGNGもしくはWindowハンドルからプロセスIDかハンドルを取得するAPI。
0256デフォルトの名無しさん
NGNG0257デフォルトの名無しさん
NGNGモロに2番目のヤツですね。ありがとうございました。
0258デフォルトの名無しさん
NGNGそれは日本語SDKヘルプが間違ってる(あるいは更新されていない)。
NT4以降ならLR_LOADFROMFILEも使えるよ。
0259デフォルトの名無しさん
NGNGありませんか? 日本語のサイトがいいんですが・・・
探しても見つからないんで、書き込みに来ました。
入力した文字列とアドレス帳に登録されているアドレスデ
ータを比較して、その情報を取得したいんです。
ちなみに、開発はVC++でやってます。
0260デフォルトの名無しさん
NGNGCOMポートを使ってパソコンから
相手の機器へデータ(整数値)を転送するには、
以下のコードでいいでしょうか?
(常に4バイト送ってくれるか心配なんだけど…。
改良点があれば教えて下さい。)
// 送り先のクリエート
handle = CreateFile("COM1", GENERIC_WRITE | GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL);
if(handle == INVALID_HANDLE_VALUE){
// クリエート時エラー
}
// 初期設定の取得
GetCommState(handle, &lpdcb);
// 必要に応じてここでlpdcb構造体のメンバを変更
// COMポートの設定をセット
SetCommState(handle, &lpdcb);
// 送り先へデータの送信
bRetW = WriteFile(handle, &iData, sizeof(iData), &dwNumber, NULL);
if(bRetW == 0){
// データ送信時エラー
}
// ハンドルのクローズ
bRetC = CloseHandle(handle);
if(bRetC == 0){
// ハンドルクローズ時エラー
}
0261デフォルトの名無しさん
NGNGSetCommStateのDCBで信号周りの設定がかなり重要なんだけどな。
まぁ、信号のハンドシェークは通信相手によるからね。
書き込む前にGetCommModemStatus等で
DSRぐらいは見といたほうが良いと思う。
0262デフォルトの名無しさん
NGNGDirectX知らないんで、Win APIでそんなの有りますか?
0264260
NGNG>>263
情報ありがとうございます。
でもう一つ質問なんですが、
260でやっている事を
Timerを使ってある時間おきに
何回もやりたいのですが、
WriteFile処理が終わらないうちに
次のWriteFileをしようとすると
エラーになってしまいます。
2回目のWriteFileは、1回目のWriteFile
が終わってからやるしか方法が無いのでしょうか?
(SetTimerの方で1回目のWriteFile処理が終わるより
長い時間を設定するしかないのでしょうか?)
教えて下さい。
0265デフォルトの名無しさん
NGNGCriticalSectionとかどうよ?
0266260
NGNGMSDNライブラリで見たけど
良く分かりません。
教えて下さい。
初心者なので簡単に、
よろしくお願いします。
0267デフォルトの名無しさん
NGNGいかんだろう。いったい何をしたいの?>264
送信につかまりたくないなら、送信スレッドおこすか、
オーバーラップドI/O または I/O完了ルーチンを使用するのだがな。
0268デフォルトの名無しさん
NGNGを表示させたいのですがうまくいきません。
ShowWindow(FindWindow("Shell_TrayWnd", NULL), SW_SHOW);
だけではだめなのでしょうか?
Win2kでやってます。
0269デフォルトの名無しさん
NGNGWM_ACTIVATE WA_ACTIVEを送れば表示されるはず。
0270268
NGNGSendMessage(FindWindow("Shell_TrayWnd", NULL),WM_ACTIVATE,WA_ACTIVE,0);
で表示できました。ありがとうございました。
0271デフォルトの名無しさん
NGNGAVIStreamReadで取ったデータを再生するにはどうすれば良いのでしょうか。
0272デフォルトの名無しさん
NGNG詳細がわかりません。
hCom = CreateFile( "COM1", GENERIC_READ | GENERIC_WRITE,
0, NULL, OPEN_EXISTING, 0, NULL);
WriteFile( hCom, "test", 5, &dwBytesWritten, NULL );
これでcom1からデータを送信できないんでしょうか。
また受信も同様の方法でよろしいのでしょうか?
0273デフォルトの名無しさん
NGNG素直にcomm.drv 使うのが吉と思われ
0275デフォルトの名無しさん
NGNGラジオボタンが選択されたら
case WM_COMMAND:
switch (LOWORD(wp)) {
case IDC_RADIO1:
case IDC_RADIO2:
PropSheet_Changed(GetParent(hDlgWnd), hDlgWnd)
break;
}
って感じでAPI呼んで「更新」ボタンが黒くなるように
したいんだけど、画面が表示された瞬間とかにも拾っちゃって
困るんすけど、なんかスマートな解決方法ってありますかいのう?
0276デフォルトの名無しさん
NGNG#define MY_BUTTON 40100
CreateWindowEx(0, "BUTTON", "押してね",
WS_CHILD, 0,0, 10,10, hWnd,
(HMENU)MY_BUTTON,
hInst, NULL);
このMY_BUTTONの値って適当で良いのでしょうか?今はうまくいって
るのですが、後々メーッセージ判定の時、衝突しそうで怖いです
0277>272
NGNGソケットみたいな抽象化したものと考え方変えないと、うまくいかんと思うんだけどねぇ。
多少その辺勉強してから、プログラム組んだ方が良いと思うよ。
CreateFileしただけじゃ、いくらなんでも、やること足らないと思うからね。
0278デフォルトの名無しさん
NGNGで、ユニークなのをゲットするってのは駄目?
0279デフォルトの名無しさん
NGNG適当ってどういうこと?
とりあえずメニューとかと被らなければ適当なIDを割りふっていいじゃない?
0280>272
NGNGCreateFile(
"\\.\COM1"・・・
でいいんでは?
0281>276
NGNGそれってリソースエディタ使ってれば重複しないようになるよ。
自分で付けたければ、resource.hの中身書き換えればいい。
0282276
NGNG>>278
こんなのがあるとは!詳しく読んできます。これ使えば安心できそうです。
>>279
そうなんですけどね・・・なんかいやで。一応0x8000以下は避けてたのですが。
>>281
どうもリソースエディタ書き換えると挙動がおかしくなってしまいまして・・・。
また整形の仕方もよく分からず避けてしまってました。力不足、精進します。
0283278
NGNG設計時に決定しておくリソースIDのことね。そんなのは、自分で管理しろってことで。
RegisterWindowMessage("ъ( ゚ー^) マターリ!")は、
独自のWindowsメッセージ送るときに重複しないように(WM_USER + 100とかでなく)するやつだった。
0286デフォルトの名無しさん
NGNG0287いつでもどこでも名無しさん
NGNGいっそ削除してみるというのはどうだ?削除できなかったら使用中
0288デフォルトの名無しさん
NGNGGetModuleHandleではだめなんけ?
0289276
NGNG今ちょっと試せない上にヘルプなくて、スペルとか違ってるかもしれないんだけど
case WM_COMMAND:
switch (LOWORD(wp)) {
case IDC_RADIO1:
case IDC_RADIO2:
if( HIWORD(wp) == BN_CLICKED ){
PropSheet_Changed(GetParent(hDlgWnd), hDlgWnd);
}
break;
}
でどう?
0290デフォルトの名無しさん
NGNGいや今見たら自分が邪魔しちゃってたみたいだったからさ
0291デフォルトの名無しさん
NGNGデータをSaveするかどうかのダイアログを出すようにし、
キャンセルを押すとスレッドを終了しないようにしたいのですが、
ウインドウが閉じてしまいます。
WM_DESTROYになにか細工をほどこせばよろしいのでしょうか?
0292MUTT-RAY
NGNGWM_SYSCOMMANDでSC_CLOSEが来た時に処理する…
だったかな?ここ1年Windowsで開発してないから
忘れた。
0293デフォルトの名無しさん
NGNGWM_CLOSEハンドラで
.OK: return 0
.CANCEL: DestroyWindow(hwnd)→return 0
でいーんじゃないの
0294291
NGNGWM_CLOSEハンドラでDestroyWindow(hWnd)を呼ぶか呼ばないか
だけでよかったんですね。
0295286
NGNG>>GetModuleHandleではだめなんけ?
試してみたのですが、ダメでした。
この関数はプロセスが同じじゃないと使えないようです。
0296288
NGNGごめん、じゃわからないや。
0297デフォルトの名無しさん
NGNGこれを自前で行うAPIを知っている人いますか?
0298デフォルトの名無しさん
NGNG▼がボタンと一体化してるもの(Explorerの「表示」など)は
どのようにすれば使えますか?
0299デフォルトの名無しさん
NGNGPSAPIもしくは、ToolHelp系のAPIを使え。
0300デフォルトの名無しさん
NGNG一瞬、ToHeartと読み違えたよ・・・。
逝って良し!>オレ
0301295
NGNGどうもありがとうございます。
解決しそうです。
0302デフォルトの名無しさん
NGNGLoadLibrary()→FindResource()→LoadResource()→LockResource()
とまではわかってるのですが、どうやってDialogBox()を呼べばいいのですか。
0304デフォルトの名無しさん
NGNG以下の条件を満たすやり方があったら教えてください。
・再インストール時の再設定が容易(レジストリは×)。
・複数のユーザーで設定を分ける(アプリケーション直下のINIファイルは×)。
・シングルユーザーOSであるWin95(98も?)でも動作するようにする。
0305デフォルトの名無しさん
NGNGDialogBoxIndirect() 使うナリよ〜
HRSRC hrsrcDlg=FindResource( hinst, lpszName, RT_DIALOG );
HGLOBAL hglbDlg=LoadResource( hinst, hrsrcDlg );
DialogBoxIndirect( hinst, (LPDLGTEMPLATE)LockResource(hglbDlg), hwndOwner, lpfnDlg );
これで動くハズナリ〜
0307デフォルトの名無しさん
NGNGъ( ゚ー^) イイネ
0308302
NGNGありがとうございます
どちらの方法でも動きました。
0309デフォルトの名無しさん
NGNGを指定し、SetWindowExtEx()を使え、との事ですが、この関数の引数nXExtentとnYExtent
は「ウィンドウの範囲を論理単位で指定しろ」と記述してありますが意味がよく分かりません。
良かったら教えてください。言語は⊂です。
0310デフォルトの名無しさん
NGNG0311デフォルトの名無しさん
NGNGY軸の論理範囲を負数で与えてみたら?
確かそうすりゃ論理座標が反転したよーな気がする。適当だけど。
0312デフォルトの名無しさん
NGNGタイトルバーのアイコンを左クリックででるメニュー)を
ウィンドウの他の場所でも利用可能にしたいのですがどうすればよいのでしょう?
GetSytemMenuとTrackPopupMenuで表示そのものはできるのですが
これだけですとウィンドウの状態を反映してくれません。
(標準状態なのに「元のサイズに戻す」が選べてしまう、
最大化の状態で最大化が選べてしまうなど‥)
どのような操作が足りないのでしょうか?
0313デフォルトの名無しさん
NGNG>・複数のユーザーで設定を分ける(アプリケーション直下のINIファイルは×)。
>・シングルユーザーOSであるWin95(98も?)でも動作するようにする。
レジストリが嫌ならログインユーザー毎にiniファイルを切り替えれば
いいと思うけど、セクションで分けても構わんけど。
0314デフォルトの名無しさん
NGNGだったはず。
Win2000でもそうだっけ?
0315デフォルトの名無しさん
NGNGiniのある場所がすべてのログインユーザから見えるとは限らないとか
書き込めるとは限らないという問題がある。HKEY_CURRENT_USERなら
確実。
>>314
レジストリにリダイレクトするよう特別に指定したものでない限りそんな
ことはない。
0316313
NGNG>iniのある場所がすべてのログインユーザから見えるとは限らないとか
というか、そもそも、利用するユーザーの読み書き可能なディレクトリにしか
作れんし、アプリケーションインストール時にでもきちんとアクセス権を
設定するなりしてやりゃいいだけでしょう。
そもそも、アプリケーションディレクトリ内に作ったファイルが読む
アクセス権を持ってないユーザーがそのアプリケーションを利用出来るのだろうか?
実行権だけを設定することは可能だが・・・
>HKEY_CURRENT_USERなら 確実。
前提にレジストリを使わずにと言ってるとこにレジストリ勧めてどうする?
0317315
NGNG>利用するユーザーの読み書き可能なディレクトリにしか作れんし、
Win2kだと確実にそれが保証されるディレクトリはプロファイルディレクト
リの下にしかない。ということは他ユーザからは使えないから何も考え
ずにアプリケーションディレクトリの下に作成してユーザ別にインストー
ルしてください、でも問題ないと思う。
>アプリケーションインストール時にでもきちんとアクセス権を
>設定するなりしてやりゃいいだけでしょう。
アクセス権まで設定してやらないと正常に動かせないなら事実上インス
トーラが必要で「再設定が面倒でない」という条件を満たしているか疑問。
そこまでするならレジストリのほうが簡単だと思う。
0318313
NGNG>アクセス権まで設定してやらないと正常に動かせないなら事実上インス
>トーラが必要で「再設定が面倒でない」という条件を満たしているか疑問。
インストーラを用意するんで何の問題もないと思うんだが。
つーか、再設定を面倒なく行いたい言う話してるんだから、
インストーラぐらい作れよ。
そもそも、再設定と言う作業を簡便に行いたいって話だろ?
開発の作業で面倒なことをしたくないと言う話なのかい?
まぁ、アプリケーションの最初の起動時にiniファイルのあるディレクトリの
アクセス権を変えるんでもいいんじゃない?
もちろんadmin権限の奴でログインしてさ。
0319あ、ついでに
NGNGことになってるはず(MLでそう言ってる)んだけど、
実際にクライアントからフォルダを作成すると、
上のフォルダに複雑な権限を設定すると、
設定とは無関係にオーナーだけ
読み書き可能になってしまう。
単純に設定すればOKみたいだけど、
これ、バグなんですか?
0320315
NGNGインストーラ用意するならなんでレジストリが×なのか謎。
個人的にはやたらにディレクトリやファイルの権限をいじるのはセキュ
リティ上の問題を起こしそうで嫌。
0321あ、ついでに
NGNGええっと、「答案用紙」というフォルダーを
教師三人だけ読み書き可能、他は書き込みオンリー
でディレクトリも見えないなんてサイトがあるんですけど、
いつのまにかアクセス権がぐちゃぐちゃ。
プロパティを表示させると「特殊なアクセス権(RWX)」と
出てきます。
0322313
NGNGお前さぁ、もう一度304から読み直してから書き込めよ。
0323313
NGNG付け加えるとだな、レジストリを勧めるのなら、
複数ユーザー毎の設定情報を簡便に別の環境に
復元する方法を提示するのが筋ってもんだぞ。
>>320
何故アクセス権に拘泥するのか理解できないんだが。
なんか、その辺の設定がうまく出来なくって嵌ってる最中なのか?
セキュリティの問題は、利用方法、環境を含めて考えるべき問題で、
ファイルのアクセス権単独でどうこう言える問題じゃないぞ。
0324デフォルトの名無しさん
NGNG>いつのまにかアクセス権がぐちゃぐちゃ。
>プロパティを表示させると「特殊なアクセス権(RWX)」と
恐らく教師ユーザーのアクセス権だと思うんだけど、
これのどこがぐちゃぐちゃなの?
0325名無しさん
NGNGと変化している。
サブディレクトリにこのアクセス権が引き継がれない、
上のディレクトリにはAdministratorがフルコントロール
なのに、クライアントからサブディレクトリを作ると
その下がAdministratorから見えないのでバックアップも
取れない。相関関係が不明だが、一年ぐらい使っていると
起動時にファイルシステムのエラーが出て、
しばらくすると起動しなくなる。
これを3回繰り返している。
0326デフォルトの名無しさん
NGNG変更を加えていないディレクトリのアクセス権が、
いつのまにか変化してしまうと言うことなんでしょうか?
もし、ディレクトリ作成した時点から、
期待するアクセス権にならないと言うことで、
且つ、アプリケーションでディレクトリ作ってるなら、
SAをきちんと指定してみてはどうですか?
対策の方法はいくつもあると思うんですけど。
0327名無しさん
NGNGNTのメーリングリストだと親のディレクトリの
設定を継承するって書いてるのにその通りにならない。
必ず、そのユーザーにしか見えなくなる。
(そしてAdministratorがバックアップを
やろうとするとアクセス権の壁に当たる)。
ユーザー数千人いるから、ユーザーIDバグってるのか??
アクセストークンはWIN32APIでVisual-Cから操作してるよ。
あと、パスワードの無期限化は
PerlからNET USERコマンドを
通してやってるけど、バグってるのか無視される。
NTってホント怪しい。
0328デフォルトの名無しさん
NGNGNTよりお前の方が怪しいと思う。
0329デフォルトの名無しさん
NGNG0330デフォルトの名無しさん
NGNGですがよくわかりません。
今はWinMainのコマンドライン引数から適当に切り出して使っているのですが
いまいちスマートじゃないような・・・・
何かよい方法はありますか?
0331デフォルトの名無しさん
NGNGふつーだと思うけどダメなの!?
Window場にDragならメッセージなりShell-APIなりがあると
思うけど
0332デフォルトの名無しさん
NGNGシェルの仕様だから、コマンドラインで受け取るしかない。パースの仕方は
いろいろあるだろうけどね。
0333デフォルトの名無しさん
NGNGどのようにしたらいいんでしょうか?
0334デフォルトの名無しさん
NGNGなぜ今iniファイルを使うか?レジストリに白!
0335333
NGNG0336麻衣
NGNGGetPrivateProfileString
だけど、今からやるならXMLでやろうよ
0337333
NGNG0338デフォルトの名無しさん
NGNGそのソフトでしか使わない物をレジストリに入れるのは頼むからやめてくれ・・・(x_x
0339デフォルトの名無しさん
NGNGコントロールの最大値、最小値もリソース内で指定したいのですが、どのようにすればいいのでしょうか?
0340デフォルトの名無しさん
NGNGXMLでのやりかたきぼーん。
0341デフォルトの名無しさん
NGNGiniファイル中の文字が半角文字オンリーとか全角文字オンリーなら
いいけど、混在してたら文字化けしてキレそうになるぞ
(経験アリ)
>340
マジレス。ここを見てみそ。
http://msdn.microsoft.com/library/psdk/xmlsdk/xmlp2lt1.htm
英語だけど、このページにはXML DOMの基礎がとても詳しく書いてある。
とりあえずGetDocumentByTagNameからはじめよう。
JavaでやるんならSunのページから適当に探してね(笑)
0342デフォルトの名無しさん
NGNGダブルクォートで囲めば問題起きないと思うんだが。
0343341
NGNG自己レス。getElementsByTagNameの間違い。
>342
そ、そーなの?
[section1]
key1="value1"
key2="value2"
みたいに書くの?それとも
[section1]
"key1=value1"
"key2=value2"
みたいに?
なんかバカがバレる....鬱だ氏脳....
0344デフォルトの名無しさん
NGNG0345デフォルトの名無しさん
NGNGImageDirectoryEntryToDataEx()
かなり面倒だと思うけど…。他に楽な方法あるかも。
0346デフォルトの名無しさん
NGNG>key1="value1"
こちら。確か「"」は取れて文字列だけ読めると思ったが。
先頭から囲んじゃったら、セクションごと読まないといかんようになってしまう。
0347341
NGNGありがとー (^-^)/
0348デフォルトの名無しさん
NGNG0349デフォルトの名無しさん
NGNGMSDN online 漁ってみましたが、これって、
じかに読むよりはちょっと楽だったりするかも知れない、くらい?
うーん、めんどくさそう。しかも 95 は不可のようだし。
しおしお…。
0350デフォルトの名無しさん
NGNG例えば偽春菜っぽいアプリを実現するとしたら
キャラクターを表示している状態と、フキダシが
出ている状態では、リージョンの形が違うと
思うんですが、やはり毎回リージョンを作り直す
という方法なのでしょうか?
それから、うにゅうは別ウィンドウとして作成
されてるのかな?
漠然としていてすみません。
0351デフォルトの名無しさん
NGNGSpy++で見てみれ。
本体、うにゅう、フキダシ全部別ウィンドウだよん。
0352350
NGNGその手がありましたね(^^;
確かに別ウィンドウになってるのが確認できました。
感謝!!
0353デフォルトの名無しさん
NGNGこのウィンドウが出るタイミングはWM_IME_NOTIFYでわかるのですが、この変換候補ウィンドウのウィンドウハンドルを拾うにはどうしたらいいんですか?
ちなみにWin98+ATOK11を使ってます。
0354>353
NGNGImmGetDefaultIMEWnd()
で取得できます
0355デフォルトの名無しさん
NGNGハンドルは拾えたのですが、それはアプリケーションのIMEのハンドルで、変換候補をリストで表示するウィンドウのハンドルとは別のようです。
0356>355
NGNGImmGetCandidateWindow()で取得した
CANDIDATEFORM の rcArea にスクリーン座標がはいっていれば
WindowFromPoint() または ChildWindowFromPoint()
で取得できるかましれませんね
0357デフォルトの名無しさん
NGNGと
『OLE オートメーション プログラマーズ リファレンス』
(Microsoft Corporationn)
買うとしたらどっちのがいいっしょ?
0358>357
NGNG『OLE オートメーション プログラマーズ リファレンス』
(Microsoft Corporationn)
はヘルプを直訳しただけ(だったと思う逆だったらすいません)
0359357>358
NGNGあ、そうなんだ。
じゃあ、『Inside OLE2』にするッス。
さんきゅでした。
0360デフォルトの名無しさん
NGNGキャレットの座標などは取得できるんですけど、同じ方法では肝心の内容を
吸い出せない…。
セキュリティ目的でこうなっているのかと思いますが、以前、翻訳ソフトで
マウスカーソルの下の単語を訳すというのがあったので不可能では無いと思うのですが。
0362デフォルトの名無しさん
NGNG0363>360
NGNGMicrosoft Internet Explorer" かウィンドウクラス名(普通知
らない)で FindWindow()でHWND取得<--親ウィンドウ
2.目標のエディットボックスの親ウィンドウ内でのクライアント座標
(メニューを除いた左上からの相対座標)を調べる
3.ChildWindowFromPoint()でエディットボックスのHWND取得
4.それをGetWindowText()
ウィンドウハンドルが取得できれば内容にロックがかかることはないです。
0365デフォルトの名無しさん
NGNGWM_GETTEXTで取得できると思われ。
0366デフォルトの名無しさん
NGNG翻訳ソフトがバビロンであれば、あれはコントロールから取得している
のではなく、画像をOCR処理していると思われ。
0367デフォルトの名無しさん
NGNGマウスカーソルなどで現在選択している部分のテキストを取得する
方法はありませんか?(自アプリ/他アプリ)
0368デフォルトの名無しさん
NGNG「エディットぼっくす」って逝ってるからFindWindowのクラス名
の指定は"edit"でいいんじゃないかな
0369デフォルトの名無しさん
NGNGあとクラス名が不明ならdesktopのhwndを引数にしてEnumChildWindow
という手もある
けどウィンドウが重なっていてその上にマウスがある時は注意が
必要
(EnumChildWindowは確かZ-order順に探索しなかったと思う)
0372367
NGNG0373363
NGNG親ウィンドウなんで(エディットだと特定できない)
0374>>372
NGNG0375367
NGNGEditだと全部取って開始と終了位置を使って抽出、ですね。
Edit,RichEdit以外は無理っぽい。IEだとなんかメッセージが飛んでる
ようだけどどのアプリにも…というわけにはいかないようです。
結局クリップボードを使う方法に変更しました。
0376名無しさん
NGNG(FDが入ってないのにFDDにアクセスしたときのエラーダイアログとか)
あれはどんなAPIを使って、メッセージ部分を置き換えているのでしょうか?
0377デフォルトの名無しさん
NGNGHookAPIでウィンドウの生成かなんかを監視して、ウィンドウハンドルやオーナー
をマッチングしてるんじゃないかなー
サブクラス化のタイミングでさ。
0378デフォルトの名無しさん
NGNGSetErrorMode(SEM_FAILCRITICALERRORS);
でデフォルトのエラー表示をキャンセルする方法もあったね。
Win3.1時代に使ったことがある。
0379デフォルトの名無しさん
NGNGSetWindowsHookExでWH_MSGFILTERを指定するなり。
サブクラスではないなり。
これで標準メッセージボックスのOKボタンの文字列"OK"を、
別の文字列に変えた事あるなり。
だから、エラーメッセージ本文もこの方法でGo〜なり〜。
でも、、、ちょっと気になるのはエラーメッセージは表示
はどうなっていたのかな!? 確かスタティックコントロ
ールだったような、、、
これは実物をSpy++で調査してみてみて〜なり。
0380デフォルトの名無しさん
NGNGなんかで、できるダイアログのボタンの文字列を変えたいのですが、いい方法はないですか?
0382デフォルトの名無しさん
NGNGだから、フックしてやれ、つーの。
0383デフォルトの名無しさん
NGNGそのすぐ前の>>379が模範解答なんだが(藁
0384デフォルトの名無しさん
NGNGHDBENCHなどを使うと、HDDやCD-ROMの型番を取得できますな。あれはどのように
やるものでござろう。
Dependency Walkerなど使ってみもうしたが、どうにもわかりかねましてな。
0385デフォルトの名無しさん
NGNG低レベルのBIOSコールとかしてるのか、あるいは、Windowsの持っている
情報を取ってくるか・・・。
面倒なので、WMIでとっちゃえば?
0386デフォルトの名無しさん
NGNG反則的だけどレジストリのHKEY_LOCAL_MACHINE\Enumをなめるとか。
これだけだとATAPIのCD-ROMとSCSIのCD-ROMが区別できないかもなので、
ASPI32でInquiryコマンド投げてみて一致するデバイスがあれば本当にSCSI、
無ければATAPIとする、とか。
でもATAPIとSCSIに同じデバイス名を返すCD-ROMが繋がってたらややこしい
ことになるな…
0387384
NGNGWin95ではWMIは使えぬはずにて、HDBENCHは異なる取得方法を
用いている、と思われまする。
>>386
HDBENCHの出力を見るに、IDE/SCSIアダプタ→ストレージデバイスの
階層構造を把握している模様。
おそらくは、たやすくハードウェア情報を取得する方法があるものと
睨んでござるが、さてはて。
0388デフォルトの名無しさん
NGNGSCSIに限れば、ASPIでホストアダプタを列挙して、各IDに対してInquiryを投げれば容易。
IDEの方はどうだろ。やったこと無いんでなんとも。
ASPIと同じような方法でアクセスできるんだろか。
0389384
NGNGASPIはWin2kではデフォルトでないゆえ、使うわけには参らんでござる。
WDMで同様の機能があるものの、これはWin95では使えぬもの。
考えあわせまするに、HDBENCHはレジストリから情報を取得しているのでは
と思われてきた次第。が、ver. 2.61がWin2kで正しく情報を取得する
のを見るに、裏技がありはせぬかという疑いも消えず。
0390384
NGNGレジストリから情報を取得していると判明いたした。
0391386
NGNGそうか。実は反則ってほど反則でもないのかな(藁
俺はファーム屋なので直接ハードから得た情報じゃないとって考えが
先に立っちゃったけど、Windows的にはそれでもいいのかもね。
0392デフォルトの名無しさん
NGNGあるがままを受け入れるのです。。。
0393デフォルトの名無しさん
NGNGAPIそのものの解説はMSDNで判りました。Webでも
http://www.microsoft.com/JAPAN/developer/library/jpgdipf/_win32_acmstreamopen.htm
で落ちています
でも具体的な使い方 特にMP3からどうデータを復元すればいいかとかが
判りません みつけたのはこのページだけです
http://www.ish.ic.kanagawa-it.ac.jp/~syugo/mp3.html
よく判りません・・・・
0394デフォルトの名無しさん
NGNG0395デフォルトの名無しさん
NGNGftp://ftp.micsosoft.com/developr/platformsdk/
feb. 2001もう出てるよ。oct.2000落としたばかりなのに
だれか変更点知らない?
0396デフォルトの名無しさん
NGNG0397396
NGNG0398デフォルトの名無しさん
NGNG0399デフォルトの名無しさん
NGNGセンイが足りない時。
0400デフォルトの名無しさん
NGNG0401デフォルトの名無しさん
NGNG0402デフォルトの名無しさん
NGNGでも、Winだと任意の領域をスタックには使えないからしょうがない
0403デフォルトの名無しさん
NGNGWORDがどういう実装してるか知らんけど(使ったことすらない)
ExtTextOutと、あとはCreateCompatibleDC、createImage、BitBltあたりの
GDI関係のを適当に。
0404デフォルトの名無しさん
NGNGあとパス
0405デフォルトの名無しさん
NGNG相手がTrueTypeフォントなら、GetGlyphOutlineとかでスプラインデータを
取得し、自前でレンダリングする。
メモリDCを用意して、必要な大きさの4倍の大きさでレンダリングしたあと
StretchBltするとか。
ただこれだと、描画結果がハードウェア依存(システムの画面モードにも
依存するか)するので、自分で内挿するとか。
0406デフォルトの名無しさん
NGNGDrawText とか TextOut
0407398
NGNGありがとう。理解できるようになりました。
0408デフォルトの名無しさん
NGNG値渡しにしても参照渡しにしてもちゃんと動作します。
これって変じゃないですか?あんまり融通がきいてもあとが
こわいのですが…。
0409デフォルトの名無しさん
NGNGCRect::operator LPCRECT ()
0410デフォルトの名無しさん
NGNGわかりました。気にする必要はないんですね。
ありがとうございました。
0411デフォルトの名無しさん
NGNGキャレットの点滅している場所を知りたいのですが、GetCaretPosだと上端の座標しかわかりません。
下端の座標が知りたいのです。
0412あのKBはGetVersionExだと思う
NGNGしかし、これは「Me だけが、GetVersionEx(記述内容からすると、GetVersionではないでしょうね。dwMinorVersion なんて GetVersion の戻り値にはないんだから)の戻り値が変な理由」にはならんよね。
95/98/98SE/Me の全てが同じ動作をするなら分かるけど。
#どのみち obsolute されている GetVersion 使うソフトはもうさすがに少数派だし
0413>412
NGNG0414デフォルトの名無しさん
NGNGどちてそう思ったの!?その時間帯にスッ�d出たから!?
0415デフォルトの名無しさん
NGNG0416デフォルトの名無しさん
NGNGYYYYMMDDuuuuuu.Log
みたいな感じでuuuuuuのところだけ変えて何個か作りたいのです。
Win32APIにユニークな値を返す関数があるらしいのですが関数名が分かりません。
ご存知の方、どうか教えて下さい。
0417デフォルトの名無しさん
NGNGCoCreateGuid()か? そんなのより、GetTempFileName()とかの
方がいいかも。
0418デフォルトの名無しさん
NGNGGetTempFileName()のことか?
0420デフォルトの名無しさん
NGNGだってこれ、すでに obsolute されている GetVersion についての発言であっ
て、GetVersionEx のことじゃないじゃん(笑)
つーかこれ、GetVersion が「3.95」を返す、っていう Win95 時代からの対
16bit アプリ向け対策ではなかったっけ?(笑)
ついでにいえば、この理由を正当化するならば、「なぜ Me だけこの症状にな
るのか」が説明できませんね。Windows 95/98/Me の総てで同じ症状なら一貫し
ているけど(笑)
0421デフォルトの名無しさん
NGNG3ヶ月半前の書き込みにわざわざレス、しかも丁寧語が変に混じってるわ、
笑いが止まらない様子だわ……。
昨日の夕食のなかに、見慣れないキノコとか混じってませんでした?
0422デフォルトの名無しさん
NGNGCoCreateGuid()を使いたいのですが
GUID *test;
HRESULT rtn = CoCreateGuid(test);
ではコンパイルは通るのですがtestに値が入りません。
正しい使い方を教えて下さい。
VisualC++6.0でOSはNT4です。
よろしくお願いします。
0423デフォルトの名無しさん
NGNGものだからだよ。
0424116
NGNGあほ
0425デフォルトの名無しさん
NGNGしかし意味が分かりません。
もう少し詳しくお願いします。
ちなみに、デバック中にtestを見ても値が入っていなし
rtnも-2147024809なので
私見ではGUIDのクリエイトに失敗しているのだと思うのですが
0426デフォルトの名無しさん
NGNGポインタを取得するんじゃなくて、ポインタを指定するんだよ。
0427デフォルトの名無しさん
NGNGGUID guid;
HRESULT result = CoCreateGuid(&guid);
ポインタの基礎からやりなおした方がいいかも。
0428デフォルトの名無しさん
NGNGGUID test;
HRESULT rtn = CoCreateGuid(&test);
ですね。
ありがとうございました。
0429デフォルトの名無しさん
NGNG確かにポインタは、まだよく理解していません。
お奨めの本があれば教えて下さい。
0430デフォルトの名無しさん
NGNGうーん。K&R2で学んだんだけど、オススメってのは特にないなぁ。
なんか、ポインタに的を絞った本があるみたいだから、それとかどうでしょ?
感覚をつかんじゃえば、楽なんだけどね。
0431デフォルトの名無しさん
NGNGレスありがとうございます。
>なんか、ポインタに的を絞った本があるみたいだから、
>それとかどうでしょ?
分かりました、とりあえず近所の図書館で探してみます。
>感覚をつかんじゃえば、楽なんだけどね。
うらやましいです。
早くそう言える様にがんばります。
0432デフォルトの名無しさん
NGNGhttp://www2.gihyo.co.jp/books/bookinfo.asp?ID=4-7741-1142-2
↑かな。
ポインタってのは、あくまでも「実体を指し示すもの」で、実体ではない。
GUID *test
ってのは、GUID構造体を指す(ポイントする)んだけど、これだけでは、
実体が確保されてないわけ。だから、
GUID *test = new GUID
みたいにするか、
GUID testって宣言しておいて、&testを渡すと。こんな感じで理解して
もらえるかなー。
0433デフォルトの名無しさん
NGNGWindows APIのコモンコントロールの勉強をしています。サンプルプログラムを
読むと、ダイアログ関数でメッセージを処理した場合、 return 1; で終わってい
ます。また処理がなかった場合は return 0; で終わっているようです。
ダイアログ関数の戻り値はBOOLですが、これは関数内で処理をした場合は
true(1)、処理をしなかった場合は false(0) を返すと考えて良いのでしょうか?
また 0/1 の代わりに false/true を使った方がよいですか?
#そういえば大文字のBOOL は int型でしたね。
質問2:
プロパティシートに関して。プロパティシートに関連付けられたダイアログ関数で
WM_NOTIFYメッセージを処理する際に return 1; の実行の前に
SetWindowLong(hdwnd, DWL_MSGRESULT, 0);
が実行されています。MSDNによれば、この関数はhdwndで指定されたウインドウの属性
を変更するものそうで、DWL_MSGRESULT は「ダイアログボックスプロシージャ内で処
理されたメッセージの戻り値を設定します。」とあります。
これの必要性がよくわからないのですが、これってどうしても必要なのですか?
コメントアウトしても、動作に変化がないのですが・・。
質問3:
ウイザードに関して。ウイザードに関連付けられたダイアログ関数で、ビットマップ
を表示させる場合、WM_PAINTメッセージの処理部分で表示させています。ウイザードの
ページがアクティブになった際にも、WM_INITDIALOGでは、特に描画指示はでていません。
ウイザードコントロールの側からWM_PAINTメッセージを出すように指示が自動的に送ら
れていると考えて良いのでしょうか?
Windowsアプリって、なんでもかんでもグローバル変数になりますね。^-^;
なんか美しくないなぁ。C++ならキレイにいけるのかな。(サンプルがCで書かれているので)
それにしても、コントロールって複雑・・(-_-;
0434デフォルトの名無しさん
NGNGWM_INITDIALOG メッセージに応答したとき、SetFocus 関数を呼び出
してダイアログボックスのコントロールの 1 つにフォーカスを設定し
たのであれば 0 を、フォーカスを設定しなかったのであれば 0 以外
の値を返さなければなりません。
WM_INITDIALOG メッセージ以外のメッセージに応答したとき、メッ
セージを処理したのであれば 0 以外の値を、処理しなかったのであれ
ば 0 を返さなければなりません。
0435デフォルトの名無しさん
NGNGなるほど。ありがとうございました。
0436デフォルトの名無しさん
NGNG項目ボタンのセットまで実装したのですが、キーによる制御の方法がわかりません。
ドキュソメント等を探したのですが、TB_SETHOTITEMを使ってどうこうする様なの
ですが・・・。
どなたかSDKでReBar作れるぞゴルァ!! って達人の方、いましたら方法教えてください。
ってかTB_SETHOTITEMは、説明足らんくないですか?(MSDN)
0437デフォルトの名無しさん
NGNG質問2
通常、ウィンドウプロシージャはさまざまなメッセージを処理し、
メッセージ毎に定められた戻り値を返す必要があります。
ダイアログ関数は、この戻り値とは無関係なBOOL値を返すことに
なっていますので、戻り値の代わりにDWL_MSGRESULTでSetWindowLongして
メッセージに対する戻り値を返します。
質問3
ウィンドウの内容を描画する必要があり、メッセージキューにほかに
さしたるメッセージがないとき、WM_PAINT メッセージが捏造されて
返されてきます。これはすべての可視なウィンドウに共通しています。
蛇足1
いくら腕に覚えがあるのか知りませんが、サンプルを読む前にチュートリアルとか
マニュアルというかオーバービューとか入門書を読んだほうがあなたにとっても
まわりの人にとっても良い、と思います。
0438デフォルトの名無しさん
NGNG環境はWindows20000なんですけど、
あるファイルを掴んでいるプロセスを調べる方法って
ありますか?
Unixのfuserコマンドみたいなことをやりたいんですけど。
よろしくお願いします。
0439デフォルトの名無しさん
NGNGありがとうございました。
でも、正直言ってよく分かりませんでした。
サンプルというのは入門書のサンプルコードのことです。
(ハーバート・シルト「Windows98プログラミング」)
700ページ中430ページほど読みましたが、関数の戻り値について
詳しく言及した個所はなかったようです。
サンプルコードは豊富に載っているのですが、OS側の動作がいま
いち分からない。
とりあえず、以下の書籍も読んでからもう一度質問したいと思います。
他にも適当なテキストがあれば紹介していただけると幸いです。
プログラミングWindows 第5版(上)
プログラミングWindows 第5版(下)
Charls Petzold 著/株式会社ロングテール 長尾 高弘 訳
0440デフォルトの名無しさん
NGNGhttp://hp.vector.co.jp/authors/VA010523/index_sdk.html
http://www.geocities.co.jp/SiliconValley-PaloAlto/5920/
自分の場合、Charls Petzoldの本は難しすぎて読むのに苦労したのですが、上のページなんかを参考にしました。
0441デフォルトの名無しさん
NGNGならグローバル変数使わなきゃいいじゃん。
変数は全部関数の引数で渡すとかして。
0442デフォルトの名無しさん
NGNGプログラムの場合、ファイル名だけ手早く自前のバッファに詰めて
さっさとDragFinish出すのが望ましいのでしょうか?
0443デフォルトの名無しさん
NGNGそれ当たり前…
0444デフォルトの名無しさん
NGNG0445デフォルトの名無しさん
NGNGそれは、長く処理を占有する場合は明示的にメッセージキューをポンプする
という基本中の基本ができてないので、>>442以前の問題だ(藁
0446デフォルトの名無しさん
NGNGプログラム側から操作することはできないのですか?
0447デフォルトの名無しさん
NGNGそれほど、グローバル変数の嵐にはならないけど。具体的に何を
グローバル変数として定義してるの?
0448デフォルトの名無しさん
NGNGGetDlgItem等でコントロールのHWNDを得てMoveWindow等を使う。
0449デフォルトの名無しさん
NGNGなるほど。やってみます。
0450デフォルトの名無しさん
NGNGありがとう。
AdvancedWindowsを読んでたところだから助かりました。
0451デフォルトの名無しさん
NGNGとなり、ネットワーク上のDHCPサーバーを探してくれますね。条件を簡単にして
「同じサブネット内のDHCPサーバーを探す」というプログラムを作りたいんですけ
ど、適切な説明書やライブラリがありましたらご紹介ください。よろしくお願い
マンモス。
0452デフォルトの名無しさん
NGNGこれ以上の適切な説明書はないだろ
0453デフォルトの名無しさん
NGNGありがと!やっぱりRFCからだな。
関連するWinAPI調査して楽勝だ!
0454デフォルトの名無しさん
NGNGif (hBmpfile != NULL) {
SendMessage(hStartBtn, BM_SETIMAGE, (WPARAM)IMAGE_BITMAP, (LPARAM)hBmpfile);
}
上のような感じでスタートボタン(ハンドルはhStartBtn)にビットマップを貼り付け
ようとしてますが、うまくいきません。start.bmpはこのテストEXEと同じディレクトリに
あります。
0455マルチメディア
NGNGエディットコントロールに70KBぐらいの文字列を表示させようとすると
何故か何にも表示されないんですが何か方法は無いでしょうか…?
誰か教えてください〜………
0456デフォルトの名無しさん
NGNGリッチエディットならたぶん制限は無いと思われ。
0457デフォルトの名無しさん
NGNG0458マルチメディア
NGNGレスありがとうございます
リッチエディットなんですが、再び質問で申し訳ないんですが
RE1 = CreateWindow("EDIT", "",ES_MULTILINE | ES_READONLY | WS_CHILD | WS_VISIBLE……
の所を
RE1 = CreateWindow("RICHEDIT", "",ES_MULTILINE | ES_READONLY | WS_CHILD | WS_VISIBLE ……
にしてメインウィンドウに貼りつけたらコンパイルは出来たんですが
ウィンドウ(リッチエディット)が表示されなかったです
MSDNでリッチエディットについて調べようと思ったんですがわからないです……
もし解決方法を知っていましたらどうか教えてください〜……
0459マルチメディア
NGNGというか、リッチエディットというコントロールが見つからないでふ…
おやすみなさい…
0460デフォルトの名無しさん
NGNGCreateWindowの前にLoadLibrary("RICHED32.DLL")やInitCommonControls()はしてある?
あ、サイズの小さいテキストがちゃんと表示されているんなら忘れて。
0461454
NGNGhdc = GetDC(hStartBtn);
hdctmp = CreateCompatibleDC(hdc);
hBmpfile = LoadImage(NULL, "start.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
SelectObject(hdctmp, hBmpfile);
BitBlt(hdc, 0, 0, bmpx, bmpy, hdctmp, 0, 0, SRCCOPY);
SendMessage(hStartBtn, BM_SETIMAGE, (WPARAM)IMAGE_BITMAP, (LPARAM)hdc);
ShowWindow(hStartBtn, SW_SHOW);
で「一瞬だけ」表示されました。
これとは別にSetWindowPos()を使ってのボタンのリサイズもクリックすると元の
大きさに戻ってしまいます。うーん。
0462デフォルトの名無しさん
NGNGあれはOwnerDrawだから、サブクラス化するかフックするかしないと
いけないんじゃない?
0463デフォルトの名無しさん
NGNGT-Clockのソースでも見れ?
0464デフォルトの名無しさん
NGNG543 って誰だよ
0466マルチメディア
NGNGを追加したら上手く行きました!ありがとうございます!
0467デフォルトの名無しさん
NGNG0468デフォルトの名無しさん
NGNG本屋
0469デフォルトの名無しさん
NGNG//=============================================================
// IID_IEnumIDList
[
uuid(000214F2-0000-0000-C000-000000000046),
helpstring("IEnumIDList Interface"),
odl
]
//=============================================================
interface IEnumIDList : IUnknown
{
// *** IEnumIDList methods ***
long Next(
[in] ULONG celt,
[in,out] LPITEMIDLIST *rgelt,
[in,out] ULONG *pceltFetched);
HRESULT Skip([in] ULONG celt); // E_NOTIMPL
HRESULT Reset(); // E_NOTIMPL
HRESULT Clone([in,out] IEnumIDList **ppenum); // E_NOTIMPL
}
typedef IEnumIDList *LPENUMIDLIST;
0471デフォルトの名無しさん
NGNG内部的な実装も気になります。使い分けとかもあるのでしょうか?
0472わからんよ
NGNGそこからCreateWindowしたいのですが、出来るものなのでしょうか?
現在、インスタンスハンドルが取得できなくて困っております。
どなたか、ご教示いただけませんか?
0473デフォルトの名無しさん
NGNGCreateWindowしたらメッセージループ回す事。
ループ用のスレッド作るのが簡単。
メッセージループは必ず作る事。
0474デフォルトの名無しさん
NGNGhttp://mentai.2ch.net/prog/kako/957/957341074.html
0475デフォルトの名無しさん
NGNGこのプログラムの間違っている点を挙げよ
って、簡単すぎるか
0476デフォルトの名無しさん
NGNGSHほげほげ系のAPIが使うアロケータを得るのが SHGetMalloc()。
OLE(COM)系APIの使うアロケータを得るのが CoGetMalloc()。
使い分けはこれに準ずる。SHGetSpecialFolderで得た idlistを
開放するなら SHGetMalloc() で得た IMalloc、という風に。
この2つは実は実装は一緒らしい。
実際、CoGetMalloc() は CoInit 無しで使えちゃったりする。
SH系の API でもアレコレインターフェイスが出てくるけど、
あれは COM じゃないのか、というもっともな疑問に対しては、
あれは COM なのだけれども、呼び出し側スレッドが CoInit して
なくても使える妙な奴らなのだ、というようなことをどこかで
読んだような読んでないような。
0477472
NGNGでも GetModuleHandle = インスタンスハンドルってなんだかピンときませんね。
メッセージループなのですが、自らのコンソールウィンドウを親ウィンドウとして
作って出来ないものでしょうか・・・、試してみます。
0478デフォルトの名無しさん
NGNG自分のプロセスがつかんでるストリームだけじゃなくて、OSのキャッシュを全部
ディスクに吐かせたい。
0479デフォルトの名無しさん
NGNGユーザモードの API では無理ではなかろうか。
こういうのを使ってみれ。他にもいろいろあるよ。
→ http://www.sysinternals.com/ntw2k/source/misc.shtml#Sync
0480478
NGNGそれ見たんだが、ソースがなくてなあ。
0481479
NGNGふむぅ、ソースが欲しいわけね。
Native API にも、それらしいの見つからないし...。
いっそ、あのバイナリをハクったほうが手っ取り早いかもよ。
0482デフォルトの名無しさん
NGNGハッカー
ハック
ハックる
ハクる(った)
・・・日本語崩壊の危機を感じたことはありませんか?>481
0483デフォルトの名無しさん
NGNGむしろあんたがわざわざ取り上げたせいでより波及しそうだな(w
すくなくとも俺の頭にはインプットされてしまったよ
0484デフォルトの名無しさん
NGNGそのフォントで文字を描画したらWin9xとWin2kで
微妙に違う幅の文字が描画されてしまいます。
9x,2kどちらでも同じ幅の文字で描画したいのですが、
どうしたら解決できるでしょうか?
0485484
NGNG0486デフォルトの名無しさん
NGNGビットマップフォントを使う。
0487484
NGNG0488デフォルトの名無しさん
NGNGDeviceIoControlのFSCTL_DISMOUNT_VOLUMEをみれ。
CreateFile→Lock→Dismount→Unlock→Closeをやる。
Lockできるデバイスなら結果としてフラッシュされる。
Lockできない場合はわからん。
0489479
NGNGあれ、おかしいか?
仲間内では「全然通じる」がなぁ。
ハッキングする→ハクる
バグがある、もしくは症状が出る→バグる
プロセスが終了しきれずにいつまでも残る→ゾンビる
待ちゆく人にいきなり話しても通じんだろうが、
ここにきてるヤツは、すぐわかる共通のコンテキストにいると思う。
こういうのも日本語の崩壊と言うか?
漏れはあまり議論続けようとは思わんが、
続けたいなら別にスレ(←これも崩壊か?)立てた方がいいと思うぞ。
0490sage
NGNG方言って、本人意識しないで使ってたりするんだよね。
僕もそれ通じない。
googleで検索しても50件くらいしか出てこないから、
「ここに来てる奴」に限定しても、たぶん殆ど普及して
いないと思う。
しかもヒットした先のページがどれも頭悪そうで苗苗。
0491490
NGNG0492デフォルトの名無しさん
NGNG開いて書き込み&保存する関数って無いでしょうか?
0493デフォルトの名無しさん
NGNGわかりませんが、WritePrivateProfileStringなどを
使います。
0495デフォルトの名無しさん
NGNGWindows SDK編 第1部 の18〜20章でスクロールバーの使い方を知りました。
しかし、ダイアログボックスの中に複数のスクロールバーが存在する場合、
1つのスクロールバーを動かした場合はそのポジション値だけを変更させたいんですが、
どうやってスクロールバー別に命令を書けばいいんでしょうか?
0496478
NGNGアンマウントするの? 相手がリムーバブルなら手じゃあるが、
固定ディスクだと失敗すると思われ
>>495
ウィンドウハンドルは理解してるか?GetDlgItemで取得する
んだぞ?
0498デフォルトの名無しさん
NGNG全部(あるいはソース部分のみ)エディタにコピペするといいよ。
0500デフォルトの名無しさん
NGNGファイルをリソースで読み込んで、そのリソースをロードしてファイルにコピーしています。
FindResource()
SizeofResource()
LoadResource()
LockResource()
CreateFile()
WriteFile()
CloseHandle()
とやっているんですが、ほかに方法はないでしょうか?
0501デフォルトの名無しさん
NGNG日本語になってねーぞっ。
exe 内にファイルを読み込んでハードディスクにコピーすりゃあ、
ただのコピーコマンドじゃねえか。
「ファイル」って単語、正確に使え。、
なにがやりたいのか、全っ然、わからんぞ。
0502488
NGNG固定ディスクでも、オープン中のファイルがなければDISMOUNT
するので、キャッシュ中の未処理のデータはフラッシュされます。
後にそのドライブにアクセスがあると自動的にMOUNTされるので、
その分については気にする必要がない。リムーバブルでなくても
事実上リムーバブル扱いになる。
スワップファイルとかシステムの奥深いところで排他的にオープン
されたファイルがあるドライブだとアウト。
オープン中のファイルがあるドライブだと話が厄介になるので、
オールマイティな解決策でないのはご指摘の通り。
0503デフォルトの名無しさん
NGNGGetLastErrorで見ると87(パラメータ不正)となってしまいます。
#これとは別に書いた24bpp版はちゃんと動いたので、CreateDIBSectionの使い方は間違ってないと思うのですが。
BITMAPINFO構造体へのパラメータのどこかが間違っている筈ですが、自分では判りませんでした。
ココが変だよという部分に突っ込んで下さい。宜しくお願いします。
なお引数の横幅(width)は呼び出し側で4の倍数にしてるので、関数内ではチェックしてません。
/*引数
hBMP:ハンドラの格納先
lpBuff:DIBへのポインタのポインタ
width:幅
height:高さ
*/
BOOL Create16BitDIB(HBITMAP &hBMP,void **lpBuff,LONG width,LONG height)
{
HDC tmpDC;
struct BITMAPINFO16bpp {
BITMAPINFOHEADER bmiHeader;
DWORD bmiColors[3];
};
BITMAPINFO16bpp bmInfo;
ZeroMemory(&bmInfo,sizeof(BITMAPINFO16bpp));
bmInfo.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
bmInfo.bmiHeader.biWidth = width;
bmInfo.bmiHeader.biHeight = height;
bmInfo.bmiHeader.biPlanes = 1;
bmInfo.bmiHeader.biBitCount = 16;
bmInfo.bmiHeader.biCompression = BI_BITFIELDS;
bmInfo.bmiHeader.biSizeImage = width * height * 2; //幅 x 高さ x 2Byte(16bit)
bmInfo.bmiColors[0] = 0x001f; //B
bmInfo.bmiColors[1] = 0x03e0; //G
bmInfo.bmiColors[2] = 0x7c00; //R
tmpDC = CreateCompatibleDC(NULL);
hBMP = CreateDIBSection(tmpDC, (BITMAPINFO*)&bmInfo, DIB_RGB_COLORS, lpBuff, NULL, 0);
DeleteDC(tmpDC);
if(hBMP == NULL) return FALSE;
return TRUE;
}
ついでにageます。
0504デフォルトの名無しさん
NGNGCreateComratibleDCでDCを取っていますが、画面モードは何ビットなんですか?
また、BITMAPINFOHEADERの後ろの配列が気になります。
こういったピクセルフォーマットの渡し方か何かあるのですか?
もし我流であるなら一度、BITMAPINFO変数を別に宣言して、ビットマップを作ってから
ピクセルフォーマットは最後にBITMAPINFO16bpp変数にセットしてはどうでしょう?
0505503
NGNGRGBのBitMaskはWORDだし、biCompressionは24bppと同じでBI_RGBだったのね…
どっかで禿げしく勘違いしてた。鬱だ氏のう
−−−−−−−−−
||
Λ||Λ
( / ⌒ヽ
| | |
∪ / ノ
| ||
∪∪
0506503
NGNGHBITMAPはちゃんと戻るけど挙動がおかしい。
ヘルプでBITMAPINFOを調べるとやっぱBI_BITFIELDSって書いてあるしPixelFormatはDWORDだ…。
もちょっと自分で調べます。
>>504
VC++4.0のヘルプのBITMAPINFOに書いてある方法のつもりなんですが…
0507503
NGNGヘルプ読むとPixelFormatを指定する場合はBI_BITFIELDSみたいな事が書いてあるんだけどなぁ
BI_RGBならPixelFormat指定無し、何も考えずにBitCountを16にしておけば良かったのね…
取り敢えずこれで事足りるのでBI_RGB指定で逝きます。
スレ汚しスマソ。
0508デフォルトの名無しさん
NGNGどうすれば良いのでしょうか?
・ホストアダプタ番号
0:内蔵プライマリIDE/1:内蔵セカンダリIDE/2:SCSI
ID
IDE:0マスター/1:スレーブ
SCSI:0〜7SCSI ID
0509508
NGNG下の説明文は無視してくださってけっこうです。
0510名無しさん
NGNG0511名無しさん
NGNG0512名無しさん
NGNG0513名無しさん
NGNG0514名無しさん
NGNG0515デフォルトの名無しさん
NGNGわかりません。
下のような感じで受け取れると思ったんですが、どのキーを押しても無反応で
困っています。DOS窓ではこのメッセージは受け取れないんでしょうか?
わかる方教えてください。
int main()
{
MSG msg;
while(flag=1)
{
GetMessage(&msg,NULL,0,0);
if(msg.message==WM_KEYDOWN)
{
処理;
}
}
0516デフォルトの名無しさん
NGNG簡単な方法はないと思う。
キーボードフックを登録するか、
コンソールの窓関数(または窓組)をフックする必要があるのでは?
0517デフォルトの名無しさん
NGNG返答ありがとうございます。
とりあえずやってみます。
0518デフォルトの名無しさん
NGNGGetAsyncKeyState、GetKeyboardState、GetKeyStateのどれか好きなの(|目的にあったの)を使え。
0519デフォルトの名無しさん
NGNG取得したディスプレイのデバイスコンテキスト(DC)と、それと互換のある
オフスクリーン用DCを使い、Bitbltしています。教科書通りならそれらの
DCは、使用後すぐDeleteDCすべきですが、これをアプリ終了まで保持して
使い続けることは保証されてるのでしょうか?
とりあえずWindows2000にて、アプリ起動中に画面解像度やbit深度を
変えたりとテストしてみました。今のところ不具合はないのですが、
さりとて確証も持てないわけでして…。
そりゃマズイよ、みたいなのがあったらぜひ教えて下さい。
0520デフォルトの名無しさん
NGNG0521519
NGNGレスどもです。とほほ、やはり問題あるんですね。
どういうタイミングで不具合が起こるのでしょうかねぇ。
ディスプレイとオフスクリーンのDC、せめてどちらか一方(できれば
後者)でも保証されてると助かるのですが…駄目っぽいかな。
0522デフォルトの名無しさん
NGNGそうなの?
オイラは今までOffScreen用にCreateCompatibleDC(NULL)でDCを確保して終了時に削除するようにしてたけど、別に何も不具合はなかったけどなぁ。
APIリファレンスには「不要になったら削除」とは書いてあるけど、即削除せよとは書いてないし。
直接ウインドウハンドラからGetDCしたやつなら直ぐに開放ってのは判るけど。
詳しい方、詳細キボンヌ。
0523デフォルトの名無しさん
NGNGGetしたのはだめなんじゃなかった?
0524519
NGNG私もディスプレイのステータスが変わらないならば、OffScreen分は
いちいち削除しないでも大丈夫だと(勝手に)思ってました。
こうしている間も検索は続けているのですが、否定的なものばかりですね。
0525519
NGNGすいませんリロードしてなかったです。
おお!、CreateしたDCは保証されてるのですか。
ようやく安心できました。レスありがとうございました。
0526デフォルトの名無しさん
NGNGおいおい、あれだけで安心するのは早計すぎるよ。
ちゃんと調べたほうがいい。
とはいえ俺もメモリに確保したDCは持ちっぱなしにして、
それで市販ソフト出したことあるけど、
それについての不具合報告は皆無だった。
0527519
NGNG忠告ありがとうございます。お察しの通り、今まで裏とってました。
幸い皆様に手がかりをいただけたので、探しやすかったです。
一応報告しておきます。MSDNによるとGetDCやGetDCExを使った場合
「When the application is finished drawing, it must release the device
context」とのことで、理由はDCキャッシュが云々だからだそうです(^-^;
CreateCompatibleDCでのDCの保証については、MSDNのこちらの
ソースが決定打っぽいです
Platform SDK > Graphics and Multimedia Services > GDI > Rectangles > Using Rectangles
正直>>520-526さん方の保証がなければ英文なんかまず
読まなかったと思います。ご協力ありがとうございました。
0528519
NGNG0529デフォルトの名無しさん
NGNG全然駄目。そんなことしちゃいかんよ君たち。
DCってキャッシュだろ。キャッシュの数は昔5個だっけ?
複数のプログラムが保持しまくって、キャッシュが競合した時
画面が崩れるよ。
これって、Win16の知識だね。
0530デフォルトの名無しさん
NGNGダメだっけ?
0531519
NGNGムムム、また分からなくなってきました
確かに5個以上保持可能なWin32ベースであっても、ヒープ食い尽くすとまずいので
なるべくReleaseせよとヘルプにありますが、これは>>527の通り、GetDC等で取得
したDC、つまりディスプレイDCのみに適用されるのではないのでしょうか。
うーん、正直ディスプレイDCとCreateCompatibleDCで確保したDCの違いが
分からなくなってきました。これらは同種のものなのでしょうか(^-^;
>>529さんお詳しそうですし、MSDNお持ちでしたらできれば>>527の
Using Rectanglesのソースをちょっと検証してみていただけませんでしょうか。
0532デフォルトの名無しさん
NGNG>DCってキャッシュだろ。
以下はVC4のヘルプから抜粋。
------------------
デバイス コンテキストは、ディスプレイやプリンタなどのデバイスの描画属性に関する情報を収容した Windows のデータ構造です。すべての描画はデバイス コンテキスト オブジェクトを使って呼び出されます。デバイス コンテキスト オブジェクトは、線、図形、テキストを描画する Windows API をカプセル化したものです。Windows では、デバイス コンテキストを使って、デバイスに依存しない描画を行えます。デバイス コンテキストはスクリーン、プリンタ、メタファイルへの描画に使われます。
------------------
何処にキャッシュって単語があるのか見つけられん。
"DC = キャッシュ説"と"CreateCompatibleDCからのDC保持がマズイ"説の出典をキボンヌ。
0533デフォルトの名無しさん
NGNGCreateCompatibleDC(NULL);
を無限ループさせて、NULL返ってきたらエラーを表示させるだけのやつ。
95でもNTでも2000回とか平気で動いたよ。
0534デフォルトの名無しさん
NGNGDC保持がマズイのは、プリンタデバイスを考えてみろよ。
また、保持するのはいいけど、
デバイスが切り替えられた時のメッセージ処理、これ、PnPも
含むンだけど、それをしっかり処理して保持してるアプリっあるのか?
0535デフォルトの名無しさん
NGNGだーんな。それはキャッシュの話じゃないぞ。
よく考えてみ。
0536デフォルトの名無しさん
NGNG519を読み直せ。
>取得したディスプレイのデバイスコンテキスト(DC)と、それと互換のある
>オフスクリーン用DCを使い、Bitbltしています。
hdc = DetDC(hwnd); //hwndはウィンドウハンドラ
tmpDC = CreateCompatibleDC(hdc);
ReleaseDC(hwnd,hdc);
又は
tmpDC = CreateCompatibleDC(NULL);
↑上の例の様に確保したtmpDCの部分、メモリデバイスコンテキストだろ?
共通デバイスコンテキストとプライベートなデバイスコンテキストの区別付いてるか?
0537デフォルトの名無しさん
NGNG○GetDC(hwnd);
鬱死
それで「デバイスコンテキスト==キャッシュ説」は?
マジで初耳なんだけど。VCのヘルプが間違ってんの?(藁
0538デフォルトの名無しさん
NGNG0540デフォルトの名無しさん
NGNG0541538
NGNG527を読む限り、「must release the device context」の理由が、
「DCはキャッシュだから」なんだろ。
で、これはGetDCで得たDCにしか当てはまらないだろ、というのが527の大意。
なぜならCreateDCで作られたDCはreleaseされるもんではなくてdeleteされるもんだからだ。
0542539
NGNG論点がズレてるな。
GetDCだろうがCreateDCだろうが"DC"は"DC"。
問題になるのは「GetDCで取ったDCを保持し続けた場合にDCキャッシュの問題がある」って事であって、529の「DCってキャッシュだろ」は日本語になっておらず意味不明。
大体にして519-528までは"ディスプレイ互換の「メモリDC」"の話をしてるんだけどな。
互換DCってGetDCする物なのかい?教えてくれ。>529,538
0543538
NGNGちなみに俺は519に全面的に同意。
0544539
NGNGもうどうでもいいや、ヤメヤメ。
0545デフォルトの名無しさん
NGNG0546デフォルトの名無しさん
NGNG0547デフォルトの名無しさん
NGNGログオンをどうやってつかまえるのか、さっぱりわからん。
VNCのソース嫁ってか?
0548デフォルトの名無しさん
NGNGログオンシェルの起動を監視するか、
HKLM\Software\Microsoft\Windows\CurrentVersion\Run に
木馬を忍ばせておく…とか。
0549デフォルトの名無しさん
NGNG共通デバイスコンテキスト?
なにそれ? 共通のデバイスコンテキストなど存在し無い。
つーか、OS2からWINの開発に流れた人間ならわかるはずなんだが…。
0550デフォルトの名無しさん
NGNGCreateDC( "DISPLAY",NULL, NULL, NULL );
ってやると、GetDC(NULL)と同意さ。ぜんぜんメモリでバイスじゃないんだぜ。
きみたち全然駄目だね。
0551デフォルトの名無しさん(522ね)
NGNG取り敢えずCreateCompatibleDC(NULL)で確保したデバイスコンテキストは終了時まで掴んでてもOKって事でいいの?
>>550
つまんねぇ突っ込みやめとけ。519の趣旨から外れてるし。
0552デフォルトの名無しさん
NGNG0553デフォルトの名無しさん
NGNGおれもそう思うが。となるとDisplayDCと混同したり
プリンタのDCを持ち出してきた529とか534あたりはキティっぽいな。
0554553だけど
NGNGDisplay”の”DC
だ。
0555デフォルトの名無しさん(522ね)
NGNGやっぱそうですよねぇ。安心してCreateCompatibleDC(NULL)使うことにします。
私はこのへんで退散します。
0556519(レス感謝)
NGNG・ディスプレイDCは共通DC、プライベートDC、クラスDCの3種ある
・共通DCは使用後すぐにリリースしなければならない
・メモリDCはアプリ終了時まで保持したままでも構わない(経験的に)
・そして、即リリースすべきか否かは、取得方法ではなく上記の区別によって判断する
ただWin16時代と違い、Win32時代での「即リリースすべし」の理由って、
とり続けるとヒープ食い尽くすからってだけなんですよね?(たぶん)。
ならばきっちり管理しておけば持ち続けても大丈夫っぽいですね。やりませんけど。
というわけで私も>>555さんと同じスタンスでいきたいと思います。
(唯一不安なのが互換メモリDCが「オリジナルと互換のカラーフォーマット」
とかいうのを含んでること。これってユーザーが画面のビット深度変えたら
CreateCompatibleDCやりなおすべきということなのかな?やらなくて大丈夫っぽいですが)
0557デフォルトの名無しさん
NGNG0558デフォルトの名無しさん
NGNG一時的に大量のDCが作成される可能性があるなら、問題無いのでは?
0559デフォルトの名無しさん
NGNGです。これらのクライアント上でDHCPアドレスを取得させるVBアプ
リを作成しております。GetAdaptersInfo()関数を使えばよいところ
まで調べましたが、この関数はWin2000Pro、Win98上でしか使用でき
ない関数らしいです。NT、Win95の場合はどのようなどのようなAPI関
数使うのでしょうか。よろしくお願いします。使用言語はVB6.0です。
0560デフォルトの名無しさん
NGNGwinsock使え。
0561デフォルトの名無しさん
NGNGサンキョー。
んじゃ、Win2KPro,WinNT,Win98,Win95すべてで使う場合
はじめからwinsockで作ったほうが楽でしょうか?
0562デフォルトの名無しさん
NGNG0563デフォルトの名無しさん
NGNGていうか、Win95が入ってる時点でWinsockしか選択肢が無い気が。
0564デフォルトの名無しさん
NGNG正確に言うと、Winsock2 が使えないので、Winsock1 で作る必要が…。
モノによっては、結構、辛いかも。
0565デフォルトの名無しさん
NGNGサンキョー!!
Win2K,Win98はAPIで、WinNTはwinsock2で、Win95はwinsockで
やってみます。しかし、WinNT、Win95で時間かかりそう・・・。
時間があればいいが。
0566デフォルトの名無しさん
NGNGWin95でも、 W95ws2setup.exeでアップグレードしたら、
WinSock2.使えるとおもうけど?
0567デフォルトの名無しさん
NGNGOSの安定と引き替えになりますが、よろしいでしょうか?
0568デフォルトの名無しさん
NGNG> サンキョー!!
ワラタ
0569デフォルトの名無しさん
NGNGこれを30個くらい作ってもちっぱなしにしたいんですが、
問題ってありますかね。
HFONT1個作るとリソースを100KB食うんじゃボケ!とか無いですよね。
いろんなフォントの混じった文章を表示したいんだけど、
その都度CreateFontすべきですかね……オーバーヘッドが嫌だなー……
0570バスカード
NGNG他のアプリケーションのウィンドウをSetParent で 自身の子ウィンドウにした場合の
弊害は何ですか?MSDNには「新しい親ウィンドウと子ウィンドウは、
同じアプリケーションに属していなければなりません。」と
書いてありますが、試してみると一応表示されるですが。
どなたがご存知の方がいましたらお願いします。
(何をしたいとか言うわけではなくふと疑問に思いました)
0571デフォルトの名無しさん
NGNGどうしたらよいのでしょうか。
現在は、
lpBuffer = (char *)GlobalAlloc(GPTR,dwSize);
というようにGlobalAllocを使っているのですが、
先日、どこかでGlobalAllocを使うのは古いやり方的な記事を見かけたので。
lpBuffer = new char[dwSize];
のようにしたほうが良いのでしょうか。
それとも他に有効なAPIがあるのでしょうか。
0572デフォルトの名無しさん
NGNGnew演算子って普通はmalloc()を呼ぶはず。こいつも確か
HeapAlloc()とVirtualAlloc()を呼んでいた記憶がある。
ある程度大きいサイズの場合はVirtualAlloc()がいいん
じゃないかなぁ。ちまちまと確保するには向かないけど。
あ、メモリプールとか自作するんなら話は別ね。
0573石本
NGNG煽りや初心者を馬鹿にしたレスが多いので、
活動の盛んな普通のVC、VBプログラミングのQ&A掲示板の
URL教えてください。よろしくお願いします
0574デフォルトの名無しさん
NGNG別に構わないと思いますが。
私はLocalAlloc使ってるし。
0575デフォルトの名無しさん
NGNGまず、周りを見回すだけの分別を身に付けて下さい。
今のあなたでは、他のサイトに行ってもそちらで同じ事を繰り返すでしょうから。
そんな訳で教える事は出来かねます。
0576デフォルトの名無しさん
NGNGhttp://piza.2ch.net/test/read.cgi?bbs=tech&key=991576947&ls=50
ここなら教えてくれるかも。
こっちはWin「32」APIだからね(w
0577デフォルトの名無しさん
NGNGShellExecute("NET START")はイヤぁん。
0578デフォルトの名無しさん
NGNGSDKの
Base Services|DLLs, Processes,...|Services
を見なさるが良いでしょう。
OpenSCManager→EnumServicesStatus→OpenService→StartService
0579577
NGNG0580デフォルトの名無しさん
NGNGそもそも、Win9Xには、Net Startで開始させるべき「サービス」が
無いような気がするが。
0581デフォルトの名無しさん
NGNG0582デフォルトの名無しさん
NGNGRegisterServiceProcess のことか?
NT のようなサービスじゃないけど、ログオフ時にも頃されないプロセスを作れる。
0583デフォルトの名無しさん
NGNG描画したいのですが、CreatePen関数でペンを作成したまではよかったのですが
その後、LineTo関数で描画するときに”現在のペン”に
作成したペンを指定する方法がわかりませんでした。
教えてくださいお願いします
0584名無しさん
NGNGつーかどんな初心者本にも載ってるし、GDIのサンプル三鷹?
0586583
NGNGSelectObjectは知ってたのですが、
GDI初心者だったので使い方をよくわかってませんでした。
しばらくリファ眺めてたらわかりました。
どもすんませんです
0587ちなみに
NGNG585は僕じゃないっす(w
0588デフォルトの名無しさん
NGNGあるRGB値以外の色をすべて塗りつぶすというか指定色に置き換える
関数とかは無いのでしょうか?
0589デフォルトの名無しさん
NGNGパレットを使うか、DIBで自分で走査した方が速いと思われ。
0590デフォルトの名無しさん
NGNGにはどうしたらいいでしょうか?
バッチファイルを%temp%に作成するという方法しか思いつかなかったの
ですがもっとカコイイ方法があったらご教授ください。
0591デフォルトの名無しさん
NGNGネタはご遠慮ください
0592デフォルトの名無しさん
NGNGネタはご遠慮ください
0593デフォルトの名無しさん
NGNGネタはご遠慮ください
0594デフォルトの名無しさん
NGNGネタはご遠慮ください
0595デフォルトの名無しさん
NGNG0596590
NGNG0597デフォルトの名無しさん
NGNGとりあえず、再起動なしで出来るという方法はしらない。
一応、別のexeを起動してそこから削除するという方法はあるっぽい。
試したことはないけど。
0598デフォルトの名無しさん
NGNG[ヒント]
CD や FD から起動されたインストーラが「Disk2 を入れてください」で
インストールを続けるヤツがあるだろ?
よく考えりゃ、おかしいと思わないか?
どうしてそんなことができると思う?
0599デフォルトの名無しさん
NGNGメモリ上で管理!
メモリで管理したほうがカコイイ。
0600デフォルトの名無しさん
NGNGそっちこそネタだ
0601590
NGNGインストール続行はできそうですけど、削除はどうしても最後にexeが
1つ残ってしまうような…。
0602デフォルトの名無しさん
NGNG無駄にプライド高い人を煽って答えさせようとする人多いね。
煽るほうも煽られるほうもアホウ。
オレは知ってるけど教えてあげないもんね(藁 ←こういうやつも多いか(藁
0603デフォルトの名無しさん
NGNGtempの中なんて誰も気にせんよ。
とか書いてて変な方法を思いついた。
タスクスケジューラにcommand.comを登録して、delコマンドを記述しておいて消してもらおう(藁
アンインストーラが終了した5分後とかにこっそりcommand.comが起動する。
アツイ!(藁
NT系だとめんどくさそうだけどね。
0604598
NGNGそうだよ、漏れはヒント = ネタを提供してあげてんのよ?
もしかしてキミ、そんなことできっこないなんて思ってない?
あまりそんなことばっかり言ってると、「厨房」って言われるよ。
>>602
えっ、そうなの?
じゃ、煽られた漏れはアホウなんだ。(ムッ
[こたえ] って書こうと思ったけど、やめとくか。
0605デフォルトの名無しさん
NGNGATコマンド書いちゃえば良いんじゃ?<NT
0606名無しさん@お腹いっぱい。
NGNGhttp://www.allapi.net
0607590
NGNGGoogleとかで検索してみても再起動を必要としない方法は見つからな
かったから本当にできないのかと思ってダメモトで質問したんですが…。
知ってるのに教えてもらえないなんてすごい悲しい…。
0608デフォルトの名無しさん
NGNGCreateFileで
FILE_FLAG_DELETE_ON_CLOSE
とかつかえねーか?
0609デフォルトの名無しさん
NGNG表示が更新するのですが、どうやって実現してるのか教えてください。
ReadDirectoryChangesWだとNT系しか使えないので
0610デフォルトの名無しさん
NGNGhttp://www.numeric.co.jp/Win32.htm
検索したらこんなのが出てきたぞ。
スマートな方法じゃないけどな
0611デフォルトの名無しさん
NGNGFindFirstChangeNotification()
FindNextChangeNotification()
WaitForSingleObject()
たぶん別Threadにしちゃったほうが実装がシンプルかと。
0612590
NGNGWin9xやWin2kだと消えてくれないので却下になりました。
で、>>598だけどFDならシステムが自動的にやってくれる、CDなら
インストーラを一時的にコピーするか何かだと思いますがどっちにしろ
自分を削除はできない。よってできないと思うのですが何か間違ってま
すか?
0613609
NGNGサンクス。
ばっちりそれです。
0614デフォルトの名無しさん
NGNGhttp://www.allapi.net
0615598
NGNGまちがってるよ。
コピー先はどこだと思う? (→ /swaprun 参照)
MSDN 逝ってヨシ。
ただし、これだけだとダメ。もうひと工夫、いるよ。
0616590
NGNGたような。
もしかして
・動的に確保したメモリにコードをコピーした後、自分自身をFreeLibrary
する
という方法ですか?
0617598
NGNGそ。
/swaprun は :cd にしても :net にしても、ローカルの HD にあるときは
何もしてくれない。だからこれだけではダメ。
もひとつ、リロケーションについて考えておく必要がある。
ここでも工夫が必要。
さらにたぶん、あと、もうひとつ。
.EXE のモジュール(ハンドル)は、FreeLibrary できないんじゃないかと思う。
だからアンインストーラを○×△□から起動するようにする。
あ〜ぁ、結局、(ほとんど)全部バラしちゃったよ。ハッカーの手の内...。 >>602
0618デフォルトの名無しさん
NGNG0619598
NGNGだぁ〜かぁ〜らぁ〜、伏せといたのにぃ…。
クラッカーどもに悪用されたら、どうすんのよぉ。
0620デフォルトの名無しさん
NGNGクラッカーはこんなとこみてないでしょ
プライド他界から
0621デフォルトの名無しさん
NGNG公開して早くMSに直して貰うべきだと思う。
MSが直さないとしても。
0622デフォルトの名無しさん
NGNG話の流れ見えてるか?
何をどう直すと言うんだ?不具合があるようには見えないが。
0623デフォルトの名無しさん
NGNGクラッカーに利用される
↓
セキュリティホール
↓
M○の不具合
という流れなんじゃねーの?
0624デフォルトの名無しさん
NGNG0625デフォルトの名無しさん
NGNGデムパ君ですか?
0626デフォルトの名無しさん
NGNGどっからセキュリティホールなんて出てきたんだよ。
お前の脳内のことまではわからんけどよ。
0627デフォルトの名無しさん
NGNG(ていうかあるけど)「format.exeにはセキュリティホールがある!」と言い出すんだろか。
0628デフォルトの名無しさん
NGNG623でなくて621に突っ込むべきに思えるのは俺だけか。
0629デフォルトの名無しさん
NGNG0630>>629
NGNG[パラメータ]
int height - 身長
int weight - 体重
int salary - 給料
[戻り値]
関数が正常に終了した場合は、 TRUEを返します。それ以外の場合は、 FALSEを返します。拡張エラー情報を取得するには、 GetLastError関数を使います。
0631デフォルトの名無しさん
NGNGだって、621==623だろ。
0632デフォルトの名無しさん
NGNGvoid MakeHoney(int resnumber)
{
if (resnumber == 629)
cout << "横着すんな";
return;
}
ところで初心者なんですが、LoadLibraryで読み込んだ
モジュールの関数の使い方がわからないっす。
GetProcAddressとかでアドレスを取得するとこまでは
わかるんですが、その先が・・・・。
どなたか教えてください。かしこ。
0633デフォルトの名無しさん
NGNGBOOL GetSteadyEx(LPPERSONAL lpstatus)
[パラメータ]
ステイタスを含むPERSONAL構造体へのポインタ
[戻り値]
関数がせいこうした場合はTRUEを返します。
[NOTE]
GetGirlFriendEx関数は過去の互換性を保つために用意されています。新しいアプリケーションではGetSteady関数を使用してください。
0634デフォルトの名無しさん
NGNG(*pfunc)();
0635デフォルトの名無しさん
NGNGBOOL bLives; // 生死
int height; // 身長
int weight; // 体重
int salary; // 年収
int job; // 職業
LPPERSONAL lpFarther; // 父親のステイタス
LPPERSONAL lpMother; // 母親のステイタス
};
typedef struct _tagPersonal PERSONAL;
0636デフォルトの名無しさん
NGNGBOOL GetWife(LPPERSONAL lpstatus)
[パラメータ]
ステイタスを含むPERSONAL構造体へのポインタ
[戻り値]
関数がせいこうした場合はTRUEを返します。
[NOTE]
この関数呼出し後、GetSteadyEx()を呼び出すと、思いもよらぬことが起こるかもしれません。
0637デフォルトの名無しさん
NGNGどうすればいいのでしょうか。
0638デフォルトの名無しさん
NGNGそこで「無視」を選択して処理を強行することもできますが、
度重なると予期しない結果となることがあります。
「中止」を選択するとプロセスは中断されます。
根性が続く限り「再試行」を選択するべきです。
0639デフォルトの名無しさん
NGNG沢山のGirlオブジェクトを挿入ソートしたら
Prisonオブジェクトに入ったまましばらく戻って来れない可能性があります。
0640デフォルトの名無しさん
NGNGstruct tagDATA {
int i;
} DATA;
みたいにtagつけるのが奨励されているの?
0641デフォルトの名無しさん
NGNGstruct tagDATA {
int i;
} DATA;
みたいにtagつけるのが奨励されているの?
0642デフォルトの名無しさん
NGNG省略もできるから、typedefするんだったらそもそも要らないよね。
0643デフォルトの名無しさん
NGNG0644デフォルトの名無しさん
NGNGあるドメインアカウントに、ローカルクライアント(Win2KPro)の
「サービスとしてログオンの権利」を与えたいのですが、そのための
APIが見つかりません(検索がヘタなのか・・・)。
ご存知の方、よろしくお願いします。キーワードだけでも・・・・。
0645デフォルトの名無しさん
NGNGPriviledgeとかSIDとかACEとか(ちょーテキトー)
0646623
NGNGの三題噺だったのに・・・
0647デフォルトの名無しさん
NGNGICInstall() APIを利用してcodecをインストールしたいのですが、
どうあがいてもICERR_OKを返してくれません。
GetLastError()でエラーを見ると、モジュールがありません、
みたいなエラーを返してきます。
それでも、レジストリには登録されているみたいなのですが、
どうしたらいいんでしょうか。
また、codecをインストールする正確な情報ってどの変にありますか?
最悪、infでもInstallShieldでもかまわないのですが
0648647
NGNGよろしくお願いします
0649デフォルトの名無しさん
NGNGないでしょうか??
自分で走査するしかないんでしょうか。
0650デフォルトの名無しさん
NGNG0651649
NGNG諦めてました(汗
なんかウラワザみたいなやり方があるんでしょうか?
すみませんが詳しく教えてください。お願いします
0652デフォルトの名無しさん
NGNG0653649
NGNG転送元と転送先の幅を別々にできなかったので、
代わりにStretchBltを使えばできました。
情報ありがとうございます!
0654647
NGNGICOpen() APIを使用してcodecのハンドルを得たいのですが、
デフォルトとして未圧縮のハンドルを取得するにはどうしたら良いでしょうか。
mmioFOURCC('D', 'I', 'B', ' ');だと失敗してしまいます。
もちろん、ドライバが無いのだから失敗するのは当然だと思いますが。
ICCompressorChoose()を利用すると、取得できるので、
何とかできないかと思って質問します。
#他BBSにマルチポストしてます
0655654
NGNG0656654
NGNGCOMPVARS構造体を良く覗いた所、
未圧縮を選択したときのみ、hicメンバーは0になってました。
しかし、普通AVIを処理するアプリケーションは未圧縮を
自前で処理しているのでしょうか?
0657デフォルトの名無しさん
NGNGタブコントロールやツリービュー等は無効にしてもそのままですよね。
そいつも灰色にする簡単な方法ってあるのでしょうか?文字色直接変えるほかに。
0658デフォルトの名無しさん
NGNG0659デフォルトの名無しさん
NGNGWinではウィジェットって言わんのね
ツリービューは無効化すると全部灰色になると思うが。。
タブはたぶん無理。
0660657
NGNG適当に言葉選んじゃってすいません。えっとコモンコントロールの事です
>>659
またもやすいません。ツリービューではなくリストビューでした。自分最悪
リストビューのcolumの部分の文字も恐らく灰色になりませんよね。
やはりタブは無理ですか。リストビューはまだ良いのですが、
タブの文字が灰色にならないのはどうにも…。無効化したとき
まるでフリーズしたみたいです。みなさん一々DELETEITEMしてるのかな。
レスどうもでした。
0661デフォルトの名無しさん
NGNG中身を全部グレーにして誤魔化すしかないのかも。
0663デフォルトの名無しさん
NGNGどうやってもアイコンの上にのっちゃうし。。。
あと、explzhのシェルって("即時解凍"とか)関連づけでやっているんじゃないんだね。
ファイルオプション見たけどopenの設定しかされていなかったよ。
なにやっているんだろう??
0664デフォルトの名無しさん
NGNGgetDC(0)はダメなの?
0665663
NGNGちょっち重たいよね。勝手に書き直しやがるしw (メッセージキャプってやりますか。。)
その場所にwindow作るって事もしてみたい。。(アクティブデスクトップなものを自分で作るようなw)
0666デフォルトの名無しさん
NGNGをつくりたいのですが普通はどのように処理しているのでしょうか?
0667デフォルトの名無しさん
NGNG> ("即時解凍"とか)
「Shell Extension」がキーワードなり。
0668デフォルトの名無しさん
NGNG全部自前で描画してるのではないでしょうか?
0669666
NGNGいえ、MFCでeditVeiwを利用しています。
とりあえずWM_CHARで( が入力されたかを調べ、入力されたら
その行を取得して解析しています。
0670デフォルトの名無しさん
NGNGDRV_OPENメッセージで他のドライバにアクセスをするAPI(ICOpen等)
を呼ぶと意図したとおりに登録されないのですが、
これは許されていない動作でしょうか?
0671デフォルトの名無しさん
NGNGしたいのです。
名前無しパイプでもフックでも出来ないようなんですが、
やっぱりデバイスドライバを作るしかないのでしょうか?
具体的には、エッジ(PHS)のアプリが使い難いのでこいつが
使ってるコマンドを調べたいのです。
使ってない COM5とかをフックして COM1にそのまま流すような
ドライバって作るの大変でしょうか?
0672デフォルトの名無しさん
NGNGWin9x系なら簡単。
VxD作るだけ。
その程度ならDDKのサンプルにあるCOMドライバをちょこっといじるだけでできるでしょ。
0673671
NGNGところで、デバッカで調べた所 WriteFileへジャンプしてるアドレスは判りました
これを他のアプリにフックしてデータ収集して表示する事は可能でしょうか?
別空間だから無理かな?
0674デフォルトの名無しさん
NGNGVxDなりユーザモードドライバなり、作るのが大変か…って聞かれても、
あんたのスキルがわからなきゃ、答えようがないだろが。
自分で作ろうというやる気があるんなら、
M$からダウソできるサンプルでなんとかなるはず。
しかしCOMnを覗き見するツールなんて、探せばどっかにありそうなモンだが?
なくても、RS232Cのプロトコルアナライザを買ってくれば、
間違いなく覗ける。
方法はいくらでもあるぞ。
0675デフォルトの名無しさん
NGNG>>671
_INMMと同じ方法使えばいいんじゃないのかな?
(_INMMって何ですか、とか訊くなよ)
0676671
NGNG認識しなくなるし、VCのデバッカでは一度ブレークさせると固まってしま
うしで、 デバッカで解析するのは無理みたいです。
>>674
ラインモニタは H''との接続がUSB なんで意味ないんです。
COMを覗けるツールも、あったのはWin9xの シリアルドライバを
書き換えてしまうもので、つまりUSBの仮想ドライバには使えないんです
やっぱりVxDみたいですね。調べてみます。
0677デフォルトの名無しさん
NGNGUSBだとすると話は別。WDMじゃないとできないかも。
0678671
NGNGVxDだと USBの仮想シリアルCOM3が呼べないかもしれないので
フィルタ型も作れるという WDMを調べた方がいいかもしれませんね
ありがとうございます
0679デフォルトの名無しさん
NGNGそれそれ。
PHS程度の速度なら全データロギングしてもほとんど影響ないと思う。
リモートデバッガ使うという手もあるけど、フィルタ型WDM作る方が楽なような気が。
0680デフォルトの名無しさん
NGNG何を渡したらいいのでしょうか?
0681デフォルトの名無しさん
NGNGどっかに覚えておくこと。
0682デフォルトの名無しさん
NGNGいや、それだと親インスタンスのハンドルが入っているはず。
0683デフォルトの名無しさん
NGNGのインスタンスハンドルだよ。
どうしても後から取得する必要があるときはVirtualQueryを使うという
方法もないではない。
0685デフォルトの名無しさん
NGNGログインしたときクライアントがRASかLANかをチェックしてくれるやつ。
NT Workstation、Win2000Proの場合、どのレジストリを見るとRASクライアント
だってわかるんでしょうか。
いろいろサーチしましたが、win9xのケースかわからんかったよ。
誰か教えてください。
0686デフォルトの名無しさん
NGNGアイテム文字列を引き出そう、とおもいました。環境はWin2000です
無事Windowも探せて、アイテムの数とかは取得できました。
が、肝心の内容の取得に失敗します。たぶん、LVM_GETITEMの
LPARAM(が指し示す先)がプロセス間でマーシャリングされない
事が原因だと思うのですが、どうやって解決すればいいのでしょうか。
0687デフォルトの名無しさん
NGNG潜り込めばいいだけ。
0688デフォルトの名無しさん
NGNGフックしちゃえば何でもやり放題。
0689デフォルトの名無しさん
NGNG共有メモリを使う
0690686
NGNGアイテム文字列を引き出す事に成功しました。
>>687-689のみなさま、ありがとうございました。
0691デフォルトの名無しさん
NGNGLoadImage関数と同じような感覚で
JPGファイルをファイルから読み込めるクラスないでしょうか?
できれば、内部的にHBITMAPとかに変換してくれるのが
ベストです。
どうか教えてください
0692デフォルトの名無しさん
NGNGあっちで回答もらっただろ。
「無いです」って。日本語読めないの?
0693デフォルトの名無しさん
NGNG0694名無しサンプリング@48kHz
NGNGMSDNの英語と猫でもわかる見ながらヒーコラやってますがひどく効率が
悪いきがする。
0695デフォルトの名無しさん
NGNG0696デフォルトの名無しさん
NGNGしっかり勉強しましょう。
0697デフォルトの名無しさん
NGNG>>692
0698デフォルトの名無しさん
NGNG0699デフォルトの名無しさん
NGNGAPIバイブル2はどう?
0700デフォルトの名無しさん
NGNG0701デフォルトの名無しさん
NGNGAPI全般なら
チャールズ・ペトゾロの「プログラミングWindows」
コントロールの使い方なら、
ハーバード・シルトの「Windowsプログラミング」
金があるなら両方買え。
0702デフォルトの名無しさん
NGNGhttp://piza.2ch.net/test/read.cgi?bbs=tech&key=989902845&nofirst=true&st=244&to=249
0703デフォルトの名無しさん
NGNGEM_GETSEL・EM_SETSELでもできそうなんですが、リファレンスには何も書いてないので。
もしかしたら、ほかの関数でもあるんでしょうか。
0704デフォルトの名無しさん
NGNG当たってるよ、MSDLにもちゃんと使い方載ってる。一応書いておくと、
HWND hwnd_editctrl; //=GetDlgItem等で取得したものを入れておく
DWORD s; //キャレットの始点位置が格納される
DWORD e; //キャレットの終端…が…
SendMessage(hwnd_editctrl, EM_GETSEL, (WPARAM)&s, (LPARAM)&e);
//キャレットを12番目の文字の位置に移動し、さらに3文字選択させる
SendMessage(hwnd_editctrl, EM_SETSEL, 12, 15);
あるいはエディットコントロールに直接WM_KEYDOWNを送り込むとか > 変更
0705デフォルトの名無しさん
NGNGLoadImage関数と同じような感覚で
PNGファイルをファイルから読み込めるクラスないでしょうか?
できれば、内部的にHBITMAPとかに変換してくれるのが
ベストです。
どうか教えてください
0706デフォルトの名無しさん
NGNGBITMAPINFOHEADERのbiCompressionに設定する
値でBI_JPEGやBI_PNGのことはは調べてみたか?
0707デフォルトの名無しさん
NGNGマルチポストコピペキチガイにマジレスしても無駄です。
その上「あっちってどっち?」などとしらばくれるアホは孤独死するまで
放置してください。
0708デフォルトの名無しさん
NGNGjpeg でゆくなら Intel performance library のを使うか、
IJG のソースを使うかすると良いのでは。PNG なら libpng
でも使ってみては?
google ででも検索して入手してね。
もう二度と同じ質問はしないでね。
0709デフォルトの名無しさん
NGNG質問させていただきます!!
>>708
0710デフォルトの名無しさん
NGNGいや、お前ウザイからもう質問すんな。
0711デフォルトの名無しさん
NGNG質問してること自体がネタだろ? 氏ね。
教えたがりクンも同罪だぞもはや。
0712デフォルトの名無しさん
NGNGこのスレはsage
1番さん削除依頼だしてきてね
0713デフォルトの名無しさん
NGNGなんで>>1が削除依頼ださなあかんねん。あほ。
0714デフォルトの名無しさん
NGNG0715デフォルトの名無しさん
NGNGそれとも0から0x7FFFFFFFですか?
0716デフォルトの名無しさん
NGNG0717デフォルトの名無しさん
NGNGふつーに答えるとすれば、32ビットポインタなんだから
0〜0xffffffffまでだよ。
その情報が知りたいって事は、ポインタの空き数bitを
フラグか何かの他の用途で使いたいとか?
確かにWin32のポインタは数bitは使われて無い様な気がする。
そういう情報はInsideWindowsとかに載ってそうだけど。
0718デフォルトの名無しさん
NGNGたしかこっちを使い切ってから質問箱を再利用する予定じゃなかったか?
せっかちさんがいたみたいだけど。
>>717
そんなOS9以前のMacじゃあるまいし。一部のビットを他の目的に使う
なんてことはできないよ。
0719デフォルトの名無しさん
NGNGたしか、Rubyがポインタ(オブジェクト)か整数値かどうかを、最下位ビットで判断してる。
ポインタの最下位ビットは、アラインメントの関係で0になるだろうって。
0720デフォルトの名無しさん
NGNGRubyの発明じゃなくて、一般的に使われてる手法。
下位2bitで判定する。
0721デフォルトの名無しさん
NGNG0722デフォルトの名無しさん
NGNGビットフィールドのサイズも加えるべきなのでしょうか?
ある本のプログラムではサイズを加えていなかったのですがどうなんでしょうか。
0723デフォルトの名無しさん
NGNG0724デフォルトの名無しさん
NGNGWin32では基本的には0-0x7fffffffまでしか使われることない。のこりは
カーネルモードのアドレスだからね、でもNT4 Enterprise版や
Win2K Advanced Serverなんかだと/3GBスイッチで、0-0xbfffffff
までユーザーモードのアドレススペースが増えるから、0x80000000
以上のポインタが返ってこないことを想定したプログラムはこけるね。
基本的にそんなことを想定するようなアホなプログラムは組むべきでは
ない。64bitOSはすぐそこに来てるし、他のプラットホームで動く保証も
ないからね。
0725デフォルトの名無しさん
NGNG理解できないんならいいよ。
0726デフォルトの名無しさん
NGNG実際問題、0番地付近は、NULLポインタで例外を捕まえるために
未使用領域にするんじゃないかな。
あとは、Win9Xで、下位1Mが予約されてるとか。
0727デフォルトの名無しさん
NGNG画像として取得するにはどうしたらいいんでしょうか?
0728デフォルトの名無しさん
NGNGフォーカスを与えた後、key_eventでAlt+PrintScreenを送り込んではどうか。
0729デフォルトの名無しさん
NGNGお返事ありがとうございます。
それは思いついたんですけど
何かもっと良い方法は無いかと思いまして。
0730デフォルトの名無しさん
NGNGウィンドウハンドルとデバイスコンテキストを取得してBitBlt。
0731デフォルトの名無しさん
NGNG「Rubyでは」値が4の倍数になるようなポインタしか扱ってないというだけ
の話だろ。それが何か?
0732デフォルトの名無しさん
NGNGそんな特殊な例持ち出さなくてもWin9xの共有メモリは余裕で2G超えるね。
>>726
先頭64KはどのようなWin32環境でも予約領域であることが保証されてい
る(理由は、上位ワードが0かどうかで引数の解釈を変えるAPIがあるため)。
0733デフォルトの名無しさん
NGNG将来の実装でかわりそうなもんだが。
undocumentedかなにかに書いてあったの?
0734デフォルトの名無しさん
NGNGCharNextやDialogBoxなどを使っているプログラムのバイナリ互換性が
なくなるからそんな実装の変更はありえない。
先頭64Kが予約というのはAdvanced Windowsで見たけど理由までは書
いてなかった。
0735デフォルトの名無しさん
NGNG0736デフォルトの名無しさん
NGNGほかのプログラムとも共存しながらも、なおかつ、高速で安定した
グラフィック描画を行いたいのですが、何かよい方法はありますか?
0737デフォルトの名無しさん
NGNG共存とは? ソフト名出してもいいからもっと詳しく書いたほうがいいと思われ。
0738デフォルトの名無しさん
NGNG言葉間違えたかもしれません、
画面や処理をのっとらないで、ほかのアプリをあまり邪魔せずに
動いているということをいいたかったのです
それができているわりに、winampにしても、ビジュアルエフェクト
やメータのFPSが結構安定しているんで、すごいなとおもって。
0739デフォルトの名無しさん
NGNGあるかどうか教えてください。
具体的にいうと、現在複数のコネクションを持つ
ネットワークアプリを作っているんですが、
あるソケットがエラーを起こした場合に、モニタウインドウの
リストビューに一定時間エラーになったことを表示してから
リストビューからそのソケットの情報を削除したいと考えています。
その「一定時間」をどうするかで悩んでいます。
いまはとりあえずタイマーで定期的にチェックするように
していますが、できればもっとエレガントな方法で
やりたいと考えてます。よろしくお願いします。
0740デフォルトの名無しさん
NGNGループに適度にsleep(waitだっけ?まあいいけど)とかを使って、
ガス抜きをするのがいいかと思われ。
0741デフォルトの名無しさん
NGNG時間監視用のスレッドオブジェクトを作ればいいんじゃないの?
一定時間過ぎたら、メッセージ投げてそのまま消えちゃうようなやつ。
0742デフォルトの名無しさん
NGNGアンチエイリアスをかけた(要するにα合成する)
ウィンドウを表示させたいのですが、よい方法ありますか?
イメージの合成方法はわかります
問題は、ドラッグする際に、自分自身のウィンドウ(パネル)より
下のデスクトップイメージをどうやって取得すればよいか?
というところです・・・
どうかご教授ください
0743デフォルトの名無しさん
NGNGマルチポストするなボケ。帰れアホ。
0744無能な姦理人@Shiri-Q
NGNG□□□■■□□□□□■□□□□□□□■■■■■■■■■■■■□□
□□■■□□□□□■■■■■■□□□□□□□□□□□□□■■□□
□■■□□■□□□■□□□□■□□□□□□□□□□□□■■□□□
□□■□■■□□■■■□□■■□□□□□□□□□□□■■□□□□
□□□■■□□■■□■■■■□□□□□□□□□□□■■□□□□□
□□■■□□□□□□□■■□□□□□□□□□□□■■□□□□□□
□□■□□□■□□□■■■■□□□□□□□□□□■□□□□□□□
□■■■■■■□□■■□□■■□□□□□□□□□■□□□□□□□
□□□□■□□□■■□□□□■■□□□□□□□□■□□□□□□□
□□■□■□■□□□□■■□□□□□□□□□□□■□□□□□□□
□□■□■□■□□□□□■■□□□□□□□□□□■□□□□□□□
□■■□■□■□□□□□□□□□□□□□□□□□■□□□□□□□
□■□□■□□□□■■■□□□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□■■■□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□□□■■□□□□□□■■■■□□□□□□□
続きはコチラです
http://www.geocities.com/entry_k/main/main01.html
0745デフォルトの名無しさん
NGNGメインスレッドのスタック変数のアドレスとかを
他のワーカスレッドに渡しても問題ないでしょうか?
0746デフォルトの名無しさん
NGNG渡すこと自体:馬鹿だけど別にかまわない
渡された方がそこを読む:ほとんど無意味
渡された方がそこを更新する:ふっとんで不思議は無い
0747デフォルトの名無しさん
NGNG746が言ってるけど普通やんないです。
その渡したい変数の生存期間を考慮しながらプログラムするのは
困難だと思われます。
もちろん、確実に存在することが保証されているなら話は別ですが、
その保証を得る方法として、"ヒープから確保する"というマットウな
ものがあるので、何か特殊な制限が無い限りこちらをおすすめします。
0748デフォルトの名無しさん
NGNGアンチエイリアスをかけた(要するにα合成する)
ウィンドウを表示させたいのですが、よい方法ありますか?
イメージの合成方法はわかります
問題は、ドラッグする際に、自分自身のウィンドウ(パネル)より
下のデスクトップイメージをどうやって取得すればよいか?
というところです・・・
どうかご教授ください
0749デフォルトの名無しさん
NGNGGetDC(NULL)
でデスクトップのデバイスコンテキストを得られるので、そこからBltすればよい。
あとはWM_NCPAINT(だっけ?使ったこと無いから覚えてない)かなんかで
描画すりゃいいんじゃない?
0750デフォルトの名無しさん
NGNGまぁその結果、下のウィンドウが再描画されたら上のウィンドウも
再描画しないとならないのでウィンドウメッセージのフックとか
しないとならないし、そうすると常駐しているとやたらWindowsの
パフォーマンスの下がるイヤなプログラムができる。
0751デフォルトの名無しさん
NGNGいろいろあってWin2kでない限り根本的に不可能だと思われ
0753デフォルトの名無しさん
NGNGIME経由で文字をエディットコントロールに入力しようとしたのですが、1度に入力しようとする文字の量が大量だと全部の文字が入力されないで文字の最後の方が消えてしまいます。
IMEの種類はATOKとMS−IMEの両方で起きました。
原因の分かる方は教えてください。
お願いします。
0754デフォルトの名無しさん
NGNG消えてるわけじゃなくて、折り返さないから見えないだけ。
対象となるエディットコントロールにWM_IME__CONTROLを送る。
コマンドはIMC_SETCOMPOSITIONWINDOWだ。
0756752
NGNGレスありがとうございます。
>消えてるわけじゃなくて、折り返さないから見えないだけ。
折り返しはちゃっとできてるので、たぶん754さんの言われてるケースとは違うと思います。
確定前の文字はちゃんと表示されています。
IMEは日本語100文字ぐらいまで1度に入力できるのですが、100文字入力してEnterを押して確定すると、前半60文字ぐらい残って後ろの30文字が消えてしまいます。
どなたか解決法を御存じの方はお願いします。
0757デフォルトの名無しさん
NGNG0758デフォルトの名無しさん
NGNG0759デフォルトの名無しさん
NGNGhttp://www.vector.co.jp/soft/win95/util/se028216.html
0760757
NGNG0761デフォルトの名無しさん
NGNG0ばっかりで何に使うのはわかんないんですけど。
0762デフォルトの名無しさん
NGNG印刷するときとかでは? と言っても大抵は紙に合わせてソフト側でサイズ補正できる
ケースが多いのであまり使わないと思われ。
0763デフォルトの名無しさん
NGNG0764デフォルトの名無しさん
NGNGMSDNみろ!
0765デフォルトの名無しさん
NGNG0766デフォルトの名無しさん
NGNG#define strcmp lstrcmp
0767デフォルトの名無しさん
NGNGほんと?
0768デフォルトの名無しさん
NGNG0769763
NGNGみてきました。
DBCSとMBCSの関係がよくわかりませんでした。
0770デフォルトの名無しさん
NGNG0771デフォルトの名無しさん
NGNGlstrcmpはkernel32提供
っていうか全然別物ですよ。
0772デフォルトの名無しさん
NGNGマウス右左ボタンのどちらで操作したか判別できませんか?
0773デフォルトの名無しさん
NGNG0774デフォルトの名無しさん
NGNG0775デフォルトの名無しさん
NGNGwavだったらsndPlaySoundでいいとおもう。
midは複雑だから調べろ。
0776デフォルトの名無しさん
NGNG0777773
NGNG0778デフォルトの名無しさん
NGNG(DirectXなしで)
ただ、画面更新でInvaridateRectを用いると、レスポンスが悪いばかりか
画面がちらつきます。
垂直帰線期間を待つ命令があれば、ちらつきは解消できそうですが、
そもそも、上記命令のレスポンス自体が問題となっています。
何かよい解決法があれば教えてください。
追伸:
MFCで開発しているので、イベントループではなく
マルチメディアタイマーで処理をしています
0779デフォルトの名無しさん
NGNG描画方法に問題があるのでは?
0780デフォルトの名無しさん
NGNG再描画が必要な部分のみが処理されるのでチラツキが減ります。
0781デフォルトの名無しさん
NGNGウインドウクラスの hbrBackground(ウインドウの背景色)をNULLに
してますか?
0782デフォルトの名無しさん
NGNG0783デフォルトの名無しさん
NGNGGetFileAttributes()
PathIsDirectory()
0785デフォルトの名無しさん
NGNG等のInterloked......系の関数について質問があります。
MSDNには
>lpAddendパラメータが指す変数は、32ビット境界に整列されていなければなりません。
>整列されていない場合、かつ、マルチプロセッサのx86システム上で実行した場合、
>この関数は失敗します。
とありますが、通常の変数宣言では32ビット境界に配置されるので
気にしなくても良いのではと思うのですが、
構造体内部の変数に対して実行する場合は
#pragma等の影響で位置がずれると思います。
このような場合通常CriticalSectionで保護するのが定石なんでしょうか?
良い方法があれば教えてください。
CriticalSectionの例
struct Hoge HogeStruct;
CRITICAL_SECTION CSObj;
EnterCriticalSection(&CSObj);
HogeStruct.nCount++;
LeaveCriticalSection(&CSObj);
0786デフォルトの名無しさん
NGNGカキコできるWin32のコマンドラインツールはありますか?
Win9Xで動かしたいのでUpdateResourceは使えません。
0787デフォルトの名無しさん
NGNGで、何が訊きたいのかわからん。
もうちょっと日本語勉強してから書いてくれ。
0788デフォルトの名無しさん
NGNG俺はわかった
定石かはしらないけどそうするしかないだろうな。
別にmutex使ってもいいけどこの場合はCriticalSectionだろ
0789デフォルトの名無しさん
NGNG7byte確保してそのうち32bit alignが取れた4byte使うとか・・・
0790デフォルトの名無しさん
NGNG構造体のすべてのメンバに対して整合要求を満たすのが不可能な場合
もあると思うが
0791デフォルトの名無しさん
NGNGだからlongで良いところを7byte確保するのだと思われ
先頭から3byteまでの内にアドレスが4の倍数になるところが必ずあるはず
0792デフォルトの名無しさん
NGNG0793デフォルトの名無しさん
NGNGいや、だから構造体のメンバを自分で決められるならばいいけど
他人の作ったライブラリの構造体とかすでにハードコーディングされた
やつじゃ駄目でしょ
0794デフォルトの名無しさん
NGNGリダイレクトを使って一時ファイルを作って、それを開くという手もあるのですが、もっといい方法はないでしょうか。
0795デフォルトの名無しさん
NGNG0796デフォルトの名無しさん
NGNGパイプ使え
0797デフォルトの名無しさん
NGNG0798デフォルトの名無しさん
NGNG0799デフォルトの名無しさん
NGNG0800デフォルトの名無しさん
NGNGというか自分で決められるならそんな変なことしなくても最初から整合され
るように構造体を設計すればいい
つーか何も考えずに構造体作ればふつうはそうなるはずだが
0801デフォルトの名無しさん
NGNGオススメ書籍ありますか?
一応、最終的にはDirectDrawをしようと考えてます。
0802名無し
NGNG0803デフォルトの名無しさん
NGNGつーか、いまはもうDirectDrawはないぞ。
0804デフォルトの名無しさん
NGNG下位互換のために残ってるから無いこたぁないような気がするが?
0805794
NGNGどうもありがとうございます。
パイプでいろいろ検索してみます。
0806803
NGNGあれって速度が遅くなるのでは?
0807デフォルトの名無しさん
NGNG詳しく載っていないようなきがするのですが、
どう調べたらよいのでしょうか?
0808デフォルトの名無しさん
NGNGプログラミングWindowかMFCによるwindowsプログラミングを
読むべし。
0809デフォルトの名無しさん
NGNG5年ほど前の本だが、
「Win32アニメーションプログラミング(NigelThompson著/吉川邦夫:訳/アスキー出版局:版)」
って本が出てる。日本語だったらそれが一番詳しいかと。
0810デフォルトの名無しさん
NGNG作成したいのですが、わかりやすい書籍やURLを教えてください
ちなみにプログラムはEXEとデータファイルのごくシンプルな構成です。
利用規約の表示と確認、スタートメニュー&デスクトップに配置などが
できれば大丈夫なレベルです。
よろしくおねがいします
0812デフォルトの名無しさん
NGNGODBCAPIやODBCに詳しい方いらっしゃいますか?
0813デフォルトの名無しさん
NGNG0814デフォルトの名無しさん
NGNGInstallShield起動→メニューから[ヘルプ]→[ユーザーズガイド]
0815loop
NGNG0816
NGNGGetClientRect(HWND、 RECT*)じゃダメなの?
0817loop
NGNG試してみたのですが、x=lpRect->left;とやっても値がとれないのですが。
何か原因があるのでしょうか。
0818デフォルトの名無しさん
NGNGright と bottom にサイズが入ってるはず。left と top は 0。
0819 816
NGNGだって左上が基準ですから。
クライアント領域の幅が欲しければright、
高さが欲しければbottomを使うべし。
0820loop
NGNGそうでした。すみません。値ちゃんととれてました。
0821デフォルトの名無しさん
NGNGRECTHEIGHT(rc)
RECTWIDTH(rc)
0822デフォルトの名無しさん
NGNGvoid CloseDialog(int nVal)
{
DestroyWindow();
::PostQuitMessage(nVal);
}
で終了しているのですが、
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/hh/winui/windows_33xz.asp
をみると、
case WM_CLOSE:
DestroyWindow(hwndMain);
case WM_DESTROY:
PostQuitMessage(0);
と2段階になっています。
WM_DESTROYの前にPostQuitMessageを発行してもかまわないのでしょうか?
0823デフォルトの名無しさん
NGNG0824822
NGNGありがとう。
理由はわからないけど、信じますよ。
0825デフォルトの名無しさん
NGNG別にかまわないだろうけど終了前確認入れたり
リソースの開放したりと後で追加するときに便利だから
WM_CLOSE : DestroyWindow()
↓
WM_DESTROY: PostQuitMessage()
の方が自然な流れだと思われ。
ATL/WTLつー事はC++なわけで
virtual onClose()
として後でオーバーライドできるようにしておくとか
0826デフォルトの名無しさん
NGNG0827デフォルトの名無しさん
NGNG作成したいのですが、
VCに付属のInstallShieldがよくわからなくて
Visual Studio Installerを導入することにしました
ファイル・フォルダ類は無事インストールできるのですが
デスクトップ・スタートメニューに配置する
ショートカットファイルがうまく機能しません。
インストール後に、ショートカットファイルのリンク先をチェック
すると、どうもディレクトリ階層が消えていて
実行ファイルのみになってしまいます
なにかミスしているのでしょうか
ご教授ください
0828デフォルトの名無しさん
NGNG俺は出来てるんだが?
0829827
NGNGなにか原因は考えられないでしょうか?
おねがいします
0830kouriyu
NGNGデータを見るためにスクロールバーを使ってみたいのですが、一度スクロール
させると、前の状態に戻そうとスクロールした時、残像が残ってうまく
表示がされていません。どのように対処するのでしょうか。
0831デフォルトの名無しさん
NGNG0832◆age/DQqk
NGNG自前でウィンドウを作らずに、ポップアップメニューを出すには
どうするのがBestでしょうか。
とりあえず GetForegroundWindow() でウィンドウを借りる、
という方法を思いついたんですが、メッセージ処理はフックと
プロシージャの交換のどちらが良いと思います?
0833デフォルトの名無しさん
NGNGScrollWindow()使ってる?
あと、スクロールの移動中は描画を止めて、スクロール位置が確定したら描画を開始してみれば。
スクロールバーは複雑だから、詳しくはCharles Petzoloの「プログラミングWindows」の読むのがいいぞ。
0834sage
NGNG0835デフォルトの名無しさん
NGNGage
0836830
NGNGScrollWindow()は一応使用していますが。
やはり描画のタイミングが問題ですね。どの様に対処するか困ってるんですが。
ところでCharles Petzoloの「プログラミングWindows」って
出版社どこか分かります?
0837833
NGNG古い版
http://www.microsoft.com/japan/info/press/17171/17171.htm
新しい版
http://www.ascii.co.jp/pb/msp/36001/36001.htm
0838デフォルトの名無しさん
NGNGオーナードローでアイテムの色は変えられても
メニューウインドウ自体(境界線とか)の色がどーもこーもなりません。
DRAWITEMSTRUCT から 拾った DC でウインドウハンドルを所得して
サブクラス化したり、色々いじってみてるのですが、うまくいかない…
こんなことってできるんでしょうか?
0839デフォルトの名無しさん
NGNG作成したいんです。VBのプログラムから。
どのようにしたらよいか教えていただけないすか?
0840839
NGNGだったかなぁ・・?
0841839
NGNGIShellLink::SetIDList() でむがむが・・であってますかね??
やっぱスレ違いだ。むなしい。
0842デフォルトの名無しさん
NGNG起動時に読み込むアプリを作成しているのですが、いかんせん起動時間が
かかってしまい悩んでいます。
改善するのに何かよいアイディアないでしょうか?
P.S.大きめの画像に、複数のパーツを貼り付けた画像ファイルを用意する
という手もありますが、デザイナーの負担が増えるのでそれは避けたいです
0843デフォルトの名無しさん
NGNGオンデマンドローディング。
0844842
NGNG省略できないですねー
0845デフォルトの名無しさん
NGNG当然、全自動で行えるべき
0846842
NGNGサイズもばらばらなので、タイル状に敷き詰めて
大き目の画像にまとめる方法が問題になりそうです
0847デフォルトの名無しさん
NGNG何がボトルネックになっているのか分からないけど、もしファイル
入出力が問題なら、自前で簡単なアーカイバを作れば良いと思う。
ファイル名とファイルサイズだけヘッダに書いておいて、あとは画
像ファイルをつなげて一つのファイルに。
アプリケーションは起動時にファイルを一つだけ読んで、メモリ中
でバラす、と。
展開の部分がボトルネックだと、ファイルを一つにまとめるか、高
速に展開できるフォーマットに変更する、ですかね。
0848デフォルトの名無しさん
NGNGてみる
0849デフォルトの名無しさん
NGNG取得したいんだけど、どうすればいい?
0850デフォルトの名無しさん
NGNG使えば?具体的なソフト名は忘れたが3分で見つかると思われ。
0851デフォルトの名無しさん
NGNGすごい!
なんて的確で正確な回答だ!
あんたすごすぎ!
0852デフォルトの名無しさん
NGNGVisualStudioというソフトが該当します。フリーではありませんが。
0853849
NGNG実行時のシステムから取得したい。将来アイコンが変わっても大丈夫
なように。
0854デフォルトの名無しさん
NGNGSHGetFileInfo("c:\" /*パス*/, 0, fi /*SHFILEINFO*/, SizeOf(SHFILEINFO), SHGFI_ICON);
でfi.hIconにアイコンハンドルが入る。(この場合はハードディスクのアイコン)
0855849
NGNGC:ドライブがHDDじゃない変態的なシステムが十分ありうると思われ。
あとCD-ROMのアイコンも取得できないと思われ。
0856デフォルトの名無しさん
NGNG0857デフォルトの名無しさん
NGNGHDDじゃなければHDDじゃないアイコンが入るんだよ
どんな種類のドライブのアイコンかまで分からないと困るの?
0858デフォルトの名無しさん
NGNG>>856
> sizeofか
これは「>>854 のコードで SizeOf じゃなくて sizeof が正しいと分かった」
という意味? それならそれでいいんだけど、C 知らないで書いてるんですか?
他にも "c:\" じゃなくて "c:\\" だし、fi はアドレスを渡すってこと
分かってる?
それと関係ないけど fi.hIcon に取得されたハンドルは、使い終わったら
ちゃんと DestroyIcon して下さいね。そうしないとリークします。
0859856
NGNG突っ込みサンキュー。>>855はGetDriveTypeとかGetLogicalDrivesとか
使って何とかしてください。後たぶんレジストリのどっかにあるのではと思います。
(窓の手とか出てくるもんね)
0860849
NGNGありそうな気がするんだけど。
0861858
NGNGだから >>854 の SHGetFileInfo が十分気の利いた API だと思うけど。
SHGFI_DISPLAYNAME 指定すればエクスプローラが表示するドライブ名の文字列
"3.5インチ FD (A:)" とかも取れるし。以前使ったときは CD-ROM のアイコンも
問題なく取得できた。
0863デフォルトの名無しさん
NGNGレジストリ…って「潜る」ところにあるとは知らなかった。 (藁
0864858
NGNGどういう所が間に合わないのかよく分からない。
居れが以前使ったのは「ファイルを開く」ダイアログにあるような
ドライブ選択コンボボックスを自作した時なんだけど、SHGetFileInfo と
GetLogicalDrives 使ってできたけど。
0865デフォルトの名無しさん
NGNGどうやらこのSetDIBitsToDeviceがかなり時間を食うらしいのですが、
もっと早くDIBを転送する手続きはありますか?
0866849
NGNG「HDD」「CD-ROM」「FDD」等々のアイコンをそれぞれ取得したいわけだ。
それもシステムがエクスプローラで使ってる奴を。
A:がFDDでD:がCD-ROMで、というシステムばかりじゃない。
ノートパソコンならCD-ROMがないシステムもありうる。それでも
CD-ROMのアイコンが必要、というわけだ。
>>863
レジストリから情報を取得するのはリスクが多い。俺的には
「潜る」って感覚になる。
>>865
BitBltで高速化できない状況?
0867858
NGNG> A:がFDDでD:がCD-ROMで、というシステムばかりじゃない。
だからそれは >>859 が言ってるように GetLogicalDevices で有効な
ドライブを列挙して、GetDriveType で CD-ROM かどうか判定すれば
よいわけでしょ。
> ノートパソコンならCD-ROMがないシステムもありうる。それでも
> CD-ROMのアイコンが必要、というわけだ。
確かに実行マシンで存在しないドライブはムリだけど、存在しない
ドライブのアイコン取得してもしょうがない気もするけど。
まぁついでだから ちょっと見てみたんだけど、レジストリじゃなくて
shell32.dll の内部リソースに入ってる感じ。ExtractIconEx とかで
取れると思われ。Win98 でしか調べてないので他の Win でも同じか
どうかはわからないけど。
0868デフォルトの名無しさん
NGNGCD-ROMのAutorun.infで設定されているアイコンがあればそれを返すから、
常にCD-ROMドライブのアイコンが返るとは限らない。
0869デフォルトの名無しさん
NGNGatoiは引数が多くてあまり使いたくないのですが・・・。
0870デフォルトの名無しさん
NGNGatoi じゃなくて itoa の話だよな?
…あれ以上どうやって引数を減らせというのだ。
0871デフォルトの名無しさん
NGNGsprintf()でも使えば?
0872865
NGNGBitBltもSetDIBitsToDeviceも転送する時間にあまり変わりがないようでした。
Bresenhamのアルゴリズムを用いて直線を描くのと、
LineToで直線を描く時間を比べてみたのですが、
明らかにSetDIBitsToDeviceを用いて直線を描画する方が遅いみたいなのです。
SetDIBitsToDeviceだけを、コードから除いてメモリに書き出すだけだと、
かなりの速さになるみたいで、SetDIBitsToDeviceがネックになっている
見たいなのですが・・・。
0873デフォルトの名無しさん
NGNGわけわからん。
0874デフォルトの名無しさん
NGNG∧∧ ∧∧ ∧∧
(=゚ω゚) (=゚ω゚) ヽ (=゚ω゚)ノ
ヽ(x ヽ) (ノ x)ノ (∩ x)
< < ) ) U
0875デフォルトの名無しさん
NGNG単に線を引くためだけにBlt系を使う意味ってのがよくわからんのですが。
LineToではなにか問題が?
0876869
01/08/26 18:52ID:M1FAtnxQchar* bufを用意しないといけないのが面倒だと思ったので・・・。
単に char* itoa(int) だったら記述がラクでよかったな、と思っただけです。
0877858
01/08/26 19:05ID:/iAV1yEw> CD-ROMのAutorun.infで設定されているアイコンがあればそれを返すから、
なるほど、確かにそれで不都合なこともあるでしょうね。
関係ないけど >>867 の typo 訂正
× GetLogicalDevices
○ GetLogicalDrives
0878859
01/08/27 21:21ID:a4HckhLEしたいのですが、方法がよく解りません。
コールバック関数で BFFM_SETSELECTION を WPARAM に FALSE を指定して
LPARAM に選択するフォルダの pidl (LPITEMIDLIST) を渡しても、
「ネットワークコンピュータ」が選択されてしまい、意図するフォルダが選択
されません。
UNC の pidl の取得には Shell32.dll.#162 を使っています。
どなたか SHBrowseForFolder でデフォルトフォルダを UNC で指定する方法
をご教授ください。
開発環境は WindowsNT Workstation 4.0 (SP6) + VC++ (SP4) です。
0879878
01/08/27 21:24ID:a4HckhLEとは無関係です。
# 名前を空にしないで書き込んでしまいました。 (汁
0880loop
01/08/28 10:53ID:MWpDaN5Mはずしたりするのって、どうすればいいのでしょうか?
0881デフォルトの名無しさん
01/08/28 17:23ID:iOvUzZpUってないでしょうか。
0882デフォルトの名無しさん
01/08/28 19:51ID:HEWceQCwファイルシステムによる。
FAT12/16/32でWin9x系でしか使えなくても良ければDOSの25H/26H互換コール。
0883デフォルトの名無しさん
01/08/28 20:29ID:iOvUzZpUWin2000でも使える必要があるんです。クラスタの読み書きは必要なく、先頭クラスタ
だけわかれば良いのですが。目的は、不正コピーチェックがらみです。
0884デフォルトの名無しさん
01/08/28 20:53ID:HEWceQCwじゃあ無理。
ActiveDirectoryの仕組みを勉強すれ。
0885デフォルトの名無しさん
01/08/28 21:29ID:iOvUzZpU0886デフォルトの名無しさん
01/08/28 22:03ID:HEWceQCwなおさら無理。
無理矢理やるにしても各OS固有のコードになる。
0887デフォルトの名無しさん
01/08/29 12:09ID:ltWbYtH2DVD-ROM なら、ASPI 経由でデバイス操作できないのですか?
CD-ROM なんかの不正コピーチェックで溝にわざと傷入れてるのを検出して
ってのがあるみたいだけど。
0888デフォルトの名無しさん
01/08/29 15:00ID:IAoA4cFgそれにしてもOS固有になるのは避けられない。
0889デフォルトの名無しさん
01/08/29 15:09ID:iIYcB4L.0890デフォルトの名無しさん
01/08/29 15:17ID:IAoA4cFgクラスタにマップされてるかってのはファイルシステム依存。
どのOSで使うのか書いてないんで書きようがない。
すべてのOSに対応した方法を書いてやるほど暇でもお人好しでもない。
0891
01/08/29 15:24ID:zbxmmrnU今回WIN2000でvisual studio6.0のVBとVCを使ってバージョンアップ試験をしているのですが
VBで作成したプログラムからVC++で作成したプログラムをコールする際にVCで作成したほうの
画面がVBの画面の上に出ず後ろに隠れてしまいます。
プログラムは何も変更していません。
VCのほうに画面を最上位に出す処理(SetForeGround)を入れてみましたが変化ありません。
これはWIN2000のバグでしょうか?
同じ現象になった方いたら教えてください
0892デフォルトの名無しさん
01/08/29 15:46ID:ltWbYtH2AllowSetForegroundWindow とか、調べた?
0893デフォルトの名無しさん
01/08/29 15:52ID:iHuBdZXUテキストを挿入するにはどうしたら良いですか?
0894デフォルトの名無しさん
01/08/29 16:19ID:iIYcB4L.クラスタ直読みの方法だけでいいじゃん。それ以上のことなんて誰も
聞いてない。つーかASPI使う必要もないような気がするが。もちろん
OS依存だけど。
>>892
AllowSetForegroundWindowはそういう状況では使えない。
0895デフォルトの名無しさん
01/08/29 16:54ID:zbxmmrnUAllowSetForegroundWindowでもだめでした。
でも画面がタスクバー上で点滅してるんでFlashWindowEXが実行されてるらしいです。
マイクロソフトのHPでWindows2000ではSetForeGroundWindowにいろんな条件があっ
てそれを満たさないとSetForeGroundWindowが失敗してFlashWindowEXが実行されて通
知してくれるみたいです
何らかの要因で失敗してるのは確実みたいです。
0896デフォルトの名無しさん
01/08/29 17:39ID:IAoA4cFg>881をよく読め。
クラスタ直読みの方法こそ誰も聞いてない。
0897デフォルトの名無しさん
01/08/29 20:31ID:W6Ku5whghttp://www.nt.sakura.ne.jp/~miwaki/
ここのTipsとか。
あとWin98でしか確認してないけど、
Win.iniの[Compatible95](だったと思う)にアプリのパスを入れておくと、
SetForegroundWindowがいつでも有効になったような。
0898デフォルトの名無しさん
01/08/29 21:19ID:R.qc31/Yとアダプタとの相性でアクセスしただけでBlueDeathしたりする(;´Д`)
よっぽどのことが無い限りやめとく方が吉。
あと、894のよーに、自分もセクタ読むだけならASPIを使う必要すら無いと思う。
不正コピー防止なら2GぐらいのでかいファイルでもDVD-ROMにしこんで、
それをチェックすれば? 安直だけど。
そういえば、DVDの規格ではレーザーで1枚1枚個別にシリアルをマーキング
できるらしいのだけど、Windowsでそれは読めないのかな?
0899age
01/09/01 05:54ID:bwMxnaac0900デフォルトの名無しさん
01/09/01 12:35ID:jSo1Ykw6クローズドソースのアプリのDLLの呼出しをトレースしたいのですが、
どのようにしたらよろしいですか?
お金はかけずに行いたいです。
0901デフォルトの名無しさん
01/09/01 12:43ID:LX5I2Bgsよいのでしょう。Generalには、DVD-R for Authoringにはない、読み出し専用領域があり、
そこを判別すれば良いと言われていますが、具体的にどうすればよいのか。
ずばり、コピー対策で、DVD-R for Generalでは動作しないようにしたいのですが。
0902デフォルトの名無しさん
01/09/01 20:23ID:jNF.zKm2SetMenuItemInfo()
で、MENUITEMINFO::miifStateにMFS_CHECKEDまたはMFS_UNCHECKEDで切り替える。
0903momotaro
01/09/01 22:24ID:9IMlxPac例えば、壁紙は、下記のような方法で変更出来ますが、スクリーンセーバーの場合はどうなのでしょうか。
【壁紙の変更】
SystemParametersInfo(
SPI_SETDESKWALLPAPER,
0,
buf, //変更するファイル名
SPIF_UPDATEINIFILE
);
0904デフォルトの名無しさん
01/09/01 22:43ID:gLx4Rd02APIMON …とだけ書いとくから、あとは自分で調べろ。
できなきゃ、タダで協力してくれるハッカーでも探せ。
念のために言っとくが、ハッカーとクラッカーを間違えるなよ。
大変なことになっても知らんからな。
0905デフォルトの名無しさん
01/09/01 22:54ID:baJQonXAAdvanced WindowsかDebugging on Windows(不確か)をジュンク堂で
立ち読み。
0906デフォルトの名無しさん
01/09/04 13:39ID:rccG4HwIもしくは、AdapterID/TargetID/LunIDを取得でもかまいません。そっちのがかえっていいかも。
CDの再生なんですが、エクスプローラからの*.cdaのD&Dに対応するために、
ドライブレターと物理デバイスの対応を知りたいのです。
複数台ある場合、ドライブレターのつけ方によっては、
対応が食い違って別のCDが再生されてしまう場合があるのですよ。
0907デフォルトの名無しさん
01/09/04 14:09ID:s4.H7M7U9x系は知らん。つーか9x系にデバイス名なんてあるの?
0908デフォルトの名無しさん
01/09/04 14:20ID:rccG4HwI使ってみたけど、単純にドライブレター順の番号が
振られて返ってくるだけだったので聞いてるのですが?
0909デフォルトの名無しさん
01/09/04 14:35ID:s4.H7M7U0910デフォルトの名無しさん
01/09/04 14:43ID:rccG4HwIQ: -> \Device\CdRom1
R: -> \Device\CdRom2
S: -> \Device\CdRom3
のように返ってくる。
ちなみにバス上の配置は
Adapter/Target/Lunがそれぞれ
P:4/3/0
Q:1/0/1
R:5/1/0
S:5/0/0
なので接続順とあわない。
なのでドライブレターとIDの対応を取得する必要があるのですが?
0911デフォルトの名無しさん
01/09/04 15:22ID:s4.H7M7Uなんで? 返ってきたデバイス名そのまま使うんじゃだめなの?
0912デフォルトの名無しさん
01/09/04 15:41ID:s4.H7M7UどうやってCDを再生しようとしてる?
SCSI/ATAPI接続でないCDは再生できないの?
0913デフォルトの名無しさん
01/09/04 15:53ID:rccG4HwI*.cdaをD&Dとかでも再生できるようにしたいんだってば。
その場合、*.cdaからは、フルパスでのドライブレターしか、
どのドライブからD&Dされたのか確認できないでしょ?
今はデバイス名で再生ドライブを選ばせてるけど、
ドライブレターでも選べるようにしたいの。
ユーザによっては同じ型版のドライブを複数使ってる人もいるわけで、
その場合ドライブのデバイス名+連番とかで選ばせたって、
どっちがどっちだかわからんぢゃないか。
ちなみにCDの再生は、ASPI経由でのデジタル吸出し再生だよ。
MCIだったら、mciSendString("open cdaudio!q: mycd", 以下略)
とかでドライブレターから目的のドライブをオープンできるから問題ないけど。
もうあと考え付くのはMCIとあわせ技で、いったんMCIでオープンして
各トラックの再生時間を取得して、ASPI経由で得たTOC情報と比較して
一致するドライブを使うとか、CDDB用のIDを計算して(MCIでもGETできる)
それでマッチングするぐらいしか思いつかん。
でもこれだと不完全。同じCDが複数のドライブに入ってたり、
たまたまトラックの再生時間が全部一緒だったりしたら区別つかん。
0914デフォルトの名無しさん
01/09/04 16:24ID:DASKlEA.>>912に対する答えはないのか?ASPIから操作できないデバイスをどうやって見分ける?
0915デフォルトの名無しさん
01/09/04 16:35ID:s4.H7M7U>ドライブレターでも選べるようにしたいの。
だからQueryDosDeviceでドライブレターをデバイス名に変換
すればいいんじゃないの? 何に困ってるのかぜんぜんわからん。
0916デフォルトの名無しさん
01/09/04 20:54ID:rccG4HwIASPIから見えないドライブは、
>ちなみにCDの再生は、ASPI経由でのデジタル吸出し再生だよ。
と言っているとおりそもそもサポート外。
>>915
Win9xでどうするのさ。
つーかレジストリをくまなく調べてなんとかなりそうだよ。
各所で実験して法則もつかんだし。
0917デフォルトの名無しさん
01/09/04 21:52ID:DASKlEA.サポート外かどうかをどうやって見分ける?ってきいてんだけどな…
お前のアプリがサポートしてなくてもExplorerがサポートしてるなら
D&Dはできちまうだろが。
0918デフォルトの名無しさん
01/09/04 22:07ID:8BA3trysDirectXやglutのようなフルスクリーン表示は可能でしょうか?
0919loop
01/09/05 14:58ID:o9TQFFtQアプリケーションのファイル名の左につく小さなアイコンを変更したいのですが、
どうすればいいのでしょうか。
hIconSmやhIconはちゃんと設定しているのですがエクスプローラ表示時だけ
表示されません。
0920デフォルトの名無しさん
01/09/05 17:46ID:y2XHDEbwと
CreateProcess して WaitForSingleObject( …, INFINITE ) は
同じような動作と思っていいのでしょうかね?
0921デフォルトの名無しさん
01/09/05 18:04ID:Z95/O0wgGetDC(NULL) でプライマリモニタのデバイスコンテキストを取得すれば、
ウィンドウの枠に制約を受けずに描画できます。
また、解像度の変更は ChangeDisplaySettings() を使えば可能ですが、
これはデスクトップアイコンや開いているウィンドウの位置を変更する
副作用があります。ユーザの怒りを買いたくなければ、使わない方が無
難です。(DirectX は *正しく使えば* 全画面モードから復帰しても、
デスクトップアイコンの位置などを乱しません)
0922デフォルトの名無しさん
01/09/05 19:53ID:q2XAomPAおおまかなところそんな感じ。
0924デフォルトの名無しさん
01/09/06 05:18ID:JvjB7IHcそこで,ウィンドウにテキストボックスとボタンを2つ作って,ボタンを押すとメモ
帳が起動して,テキストボックスに文字列を書いて,さらにもう一個のボタンを押
すとテキストボックの文字をメモ帳に転送する,というのをやってみたいのですが
どうしたらよいでしょうか?
MSDNで調べた限りでは,SPY++というのでクラス名を調べて・・・
FindWindowEx()というやつの引数にそれを代入して帰ってきたハンドル当てに
SendMessage()でうまい具合に・・・という風にすればいいかな?
と思うのですが,こういったサンプルが載せてあるサイト等,どなたか教えてくれませんか?
ほかのアプリケーションを起動するのはサンプルで見つけたのですが,FindWindow
という関数の使い方や,そもそもホントにこういう方針でいいのかもわかりません.
0925デフォルトの名無しさん
01/09/06 11:33ID:vbslDp7IWin32API 質問箱
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=991576947
レス数が900を超えています。1000を超えると表示できなくなるよ。