>>943 947と理屈は同じなんだが、大して多くないデータなら WM_COPYDATA が一番。
但しこっちは Send ね。
>>943 WM_SETTEXTという裏技もあるよ
954 :
デフォルトの名無しさん:03/05/10 12:11
>>953 以前、WM_SETTEXTを使ってだめだったけど。
たぶんlParamの指しているポインタが無効だから。
SetWindowText()は使えた。
他プロセスのポインタ分かるんだから、
他プロセスのアドレス読めば良いじゃん。
956 :
デフォルトの名無しさん:03/05/10 12:23
>>956 他プロセスのメモリを読み書きするAPIがあるという話だろ
正直使用はすすめられないが
ReadProcessMemoryか。デバッグ権限が要るんだよな、たしか。
>>936 Postしたら無事にできました
レスありがとうございました
ご忠告にも多謝、ポインタやバッファ渡しには気を付けます
>>947 >>951 Postで送ったあと渡したアドレスのメモリをいつ開放したらいいか
どうやって知るの
961 :
デフォルトの名無しさん:03/05/10 16:30
リソースエディタで、タブ付きダイアログ作るの面倒だなと思い、
他の人はどうやっているのか調べているうちに、一つ疑問がわきました
例えばVC6の、ツール>カスタマイズで出てくる
ダイアログのタブっぽいものを調べてみると、
タブじゃ無いみたいなんです(クラスがSysTabControl32じゃない)
あれは一体なんなのでしょうか?
>>960 バッファが不要になったら向こうからなんかのメッセージ送ってもらうとか。
レスありがとうございました。
いろいろと試してみます。(WM_COPYDATAに落ち着きそうですが)
>>963 まさにこれみたいです。
おかげでコントロールが重なって、訳が分からなくなるような
タブ付きダイアログを作らずにすみそうです。
レスありがとうございました!
>>950 >>951 実は自分のアプリケーションの中だけで実行したかったのですが、
よく考えてみると、それだとアプリケーションを切り替えるたびに
ランプの状態も切り替えなければならなくなり、かなり不自然に
なってしまうので、他の手段を模索してみようと思います。
レスしてくださった皆様、どうもありがとうございました。
967 :
デフォルトの名無しさん:03/05/11 04:01
ビットマップの透過をしたいんですが、できるAPIありますか。
探してみてそれっぽいのにBitBltがあったのですが、引数がhdcで使い方が分かり
ません。コピー元、コピー先それぞれのlpBMP,BmpInfoを引数にするようなのが
あるとよいのですが。うまく質問できませんが教えてください。
どう透過したいのかわからんので答えようがないが。
hdcが分からないつー時点で、
「とりあえずまともな入門書読め」
としかいいようがない。
>>968 >どう透過したいのか
ゲームでよくあるやつですが、草マップ16*16、人マップ16*16を予め
作っておいて、2つとも開いてメモリに記憶、草を土台にしてその上に
人の白の部分以外をコピー、てな感じです。1バイトずつ調べて自力で
やってしまう方法はわかるのですが。普通はどうやるんですか?
>hdcが分からない
ハンドル:ポインタみたいなのですよね。詳しい意味はわかっていませんが、
セットで使われるので使い方は知っていたのですが。BitBltの場合2つある
ので、普通は一つなので分からなくなりました。
>>937 普通にIJGかlibpng使えばいいと思うが……APIに拘るなら
出てない範囲だとSetDIBitsToDevice,StretchDIBitsなんかもある
971 :
デフォルトの名無しさん:03/05/11 09:10
>>969 例えば、ファイルをコピーするときは"r"と"w"で2個のFILE*がいるだろ?
それと同様、BitBltするときも受け側と送り側で2個のHDCがいるんだよ
972 :
デフォルトの名無しさん:03/05/11 09:15
>>969 >草と人
漏れならリージョンを使いそう
人を枠なしの子ウインドウにしておいてSetWindowRgn
データはPathToRegionで作るかも
>>973 デバイスコンテキストってのは確か対象のデバイスが何であってもプログラマが意識しないで使えるように
作った共通のインターフェースのことだったと思うけど・・(うろおぼえ
だからもちろんウインドウも含むし、描画元のビットマップもデバイスコンテキストに関連づける。
SelectObject(hDC, hBitmap);とかやったことはないですか?
で、描画はそのURLの方法でいいんじゃない?
ヒントというかそのままのような気がするが・・
PlaySoundで50MBクラスの*.wavが再生できません。
これは、このAPIのしようでしようか?
>>975 なるほど。それでわかりました。SelectObjectでHDCとBitMapが引数で、
HDCの方は参照渡しみたいにしてHDCを変化させる。その後ウインドウのHDC
とBitMapのHDCを比べて1段階ずつウインドウに透過描画する。それを繰り
返すんですね。ありがとうございました。
978 :
名無し@沢村:03/05/11 12:51
>>978 BitBltでもできましたがこれも透過ができそうです。使い方を勉強してみます。ありがとうございました。
次スレ作成時期か?
CreateThread() のタイミングだな
そしたら、私が作ってこよう。
こっちは、誰か ExitThread() してくれ。
TerminateThread(GetCurrentThread(), 0);
まもなくここは 乂1000取り合戦場乂 となります。
\∧_ヘ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、いくぞゴルァ!! ,,、,、,,,
/三√ ゚Д゚) / \____________ ,,、,、,,,
/三/| ゚U゚|\ ,,、,、,,, ,,、,、,,,
,,、,、,,, U (:::::::::::) ,,、,、,,, \オーーーーーーーッ!!/
//三/|三|\ ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
∪ ∪ ( ) ( ) ( ) )
,,、,、,,, ,,、,、,,, ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
,,、,、,,, ( ) ( ) ( ) ( )
CloseHandle は新スレでやるの?
988 :
デフォルトの名無しさん:03/05/11 22:33
すみません、質問させてください。
AプロセスとBプロセスで同期を取るために、
AプロセスがBプロセスをwaitさせたいとします。
その場合、Aプロセス内でWin32APIのSuspendThread関数を用いて、
Bプロセスをwaitさせる例が、
「Advanced Windows(Jeffrey Richter著・MicrosoftPress ASCII」
に記述されていました。
この例の中ですでに起動されているスレッドのハンドルを取得するため、
OpenThread関数を用いたコーディングを行ってるのですが、
このOpenTread関数はWindows2000からのサポートのため、
WindowsNT4.0には対応していません。
そこでWindowsNT上で、すでに起動されているプロセスをwaitさせるためには
どのような方法またはAPIが存在するでしょうか。
ぜひお願いしますm(_ _)m
>>988 プロセスの同期を取るために、他のプロセスから SuspendThread でプロセスを停止させる...、最近はこう言うことができるようになったのか...。
Suspendしてもいいタイミングを伝えるとか、他の手段を併用しない限り、安全に同期できない気が
そういえば、自分のスレッドをSuspendして、他のスレッドからResumeしてもらうのはあり?
ありだけど、そういうスレッドのパターンはあまりみないね。
CreateThread時のパラメータでいきなりサスペンド状態にしておいて、
必要なときにResumeThreadするのはしたことあるけど。
普通ならセマフォかミューテックスで止まる側に明示的に待機させる。
動機オブジェクトの大気のコストが馬鹿にならないような場合
(待機スレッド数が多いときとか)は、Suspendってのもありかな。
パフォーマンスカウンタとか穿り返せばThreadIdからスレッドハンドルが
もらえるかも。
もらえても自プロセスにAttachしてないハンドルは使えないんだけどね。
993 :
デフォルトの名無しさん:03/05/12 22:27
ゴミ箱のパスがほしいのですが、
SHGetSpecialFolderPath( hDlg, szRecycleBinPath, CSIDL_BITBUCKET, 0 );
とやると、空っぽで返ってきます。
どうすればいいのでしょうか?
俺は使うけどなぁ>自分でSuspend
>993
失敗するってヘルプに書かれているが、仮にパスを得たとして何も出来んだろ?
何するつもり?
(・∀・)ニヤニヤ 埋め
∧_∧
( ´_ゝ`)
___∬_(つ____と)___
/\ 旦 \
/+ \________ヽ 今だ!コタツの中ゲットォォォォ!!
〈\ + + + + + `、  ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ (´´
\ \__ノ⌒⌒⌒⌒⌒ヽ______ヽ ∧∧ ) (´⌒(´
`、___ノ⌒⌒⌒⌒ヽ_____〉 ⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡
 ̄ ̄ (´⌒(´⌒;;
ズザーーーーーッ
∧_∧
( ´_ゝ`)
___∬_(つ____と)___
/\ 旦 \
/+ \________ヽ
〈\ + + + + + `、
\ \__ノ⌒⌒⌒⌒⌒ヽ______ヽ (´⌒(´
`、___ノ⌒`つ⌒≡≡≡≡≡(´⌒;;
 ̄ ̄ ズポッ
∧_∧
( ´_ゝ`)
___∬_(つ____と)___
/\ 旦 \
/+ \________ヽ
〈\ + + + + + `、
\ \________________ヽ
`、_____________〉
\ぷ | ∧_∧
\ぅ | ( ´_ゝ`)
___∬__(つ____と)__
/\ 旦 \
/+ \________ヽ
〈\ + + + + + `、
\ \________________ヽ
`、_____________〉
;⌒`) ∧_∧ (´⌒;;
;; `).`), ( ´_ゝ`) (´ ("
___∬_(つ____と)___(´(´⌒)
/\ 旦 \
/+ \________ヽ
〈\ + + + + + `、
\ \________________ヽ
`、_____________〉
∧ ∧
/ ヽ ./ .ヽ
/ `、______/ ヽ (⌒;:)
/'" "'ヽ.
/" "ヽ,('';:⌒⌒ヽ丶,..
i ○ | ̄ ̄| ○ へ ;;:: j (⌒::;
| | ...::| 。 ;:::/ ::::: : ::⌒ ̄""⌒ヾ
!. 丿 ::::::::| _ _。 ::::::::: /::: ; ": ̄ ::)
ヽ l :::::::┴┐ ,,..:;::::::::::/:'(: : : ;;:;: ⌒ ⌒)
\ しw / .......::::::;;:;::::::/;:/:::::::::ノ;;::::::; : ..... ..... ::::ノ
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄' ̄"" ̄" "  ̄ ̄ ̄"'""  ̄ ̄ ̄" '''' ̄'' ̄
∧⊂ヽ
(゚Д゚)ノ
____/ |⊃ |\____
\ 叩 / ̄ | | ̄\ 氏 /
\/ ⊂ ノ〜 \/
/\ ((⊂∪⊃)) /\
/ 逝 \____/ 煽 \
 ̄ ̄ ̄ ̄\. 騙 ./ ̄ ̄ ̄ ̄
\/
1000ゲット生贄で召還!
ゴゴゴゴゴゴゴゴゴ・・・・・・・・
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。