\;、 ,,-、、 {:{ 《 ≫/⌒ヽ⌒H⌒/`ヽ. これは1乙ではなく ====7/⌒>‐、 ̄ ̄` 丶 、/ヽ、 _ ツインテールです /:r‐-(f⌒ヽ;:_::l\ー_、 ヽ/⌒L/ハY _ , ':./: >::;:'´ゝ'´::: /乂__,イ⌒) Y´`{h_}レ'/}} _ __ l/: :, :ヘ/:::/::////:::::!:::|:::::::( ヽ l/い,κ≦三二__ ̄ミヽ ,.':イ/ .//::::ム〈// {|::: |!: | :: !!}/〉 {、_しゝ=ニ二二二二ミ;ミ }:::} /: :Y !||:::::::|心` {ト、:|_!:i::::|l::::ト〈`l { 〈:::リ )::ノノ ,':λ { l」」_|じリ .二:!_イトl!|こレ}: :リ‐〈::;' /:/ i: ハ: ', .{ r "了うぅァリ{こ.}ノ/〈_ノ/ // !::{ ヽ:.\/ハ. ゝ_;ノ:ゝ'Lr_<ヽ::;::' // ',::ヽ. .}::〈〃ハ ヽ <://:リ7 ノ:/ // \ ソ:::: }ヽ : ゝ .. _ ,. ' ラ-=='´ ,.:' : / __ /:/´\ー'´r‐'/`ー--、__ム`i {{ ; :.{ .イ'⌒ヽ.、 /:::λ{{ ::::/:ムイ:::: f´ .::::ゝ. 弋':込、__,、-=彡' }:} . /::::/ r) }}` /彡'´ 9 | / 八  ̄ ̄ ̄ ̄ ̄ /,' . /::::/ .(_{{./ ,ィi /=!__,ノ/.\ /:/ /::::;::イ // | ´ └=ァ /三三ニ/ _> 、 / :〃
7_,
もうだめだこのスレ
C++でMFCとかCLI使わずにウインドウアプリ作るとしたら やっぱりAPI使うしかないよね?
WTLとか、好きなやつ使え。 どれも最終的にAPI呼んでるけどな。
>>9 悲観して首を釣る前に遺言を書いてもらおうか
どこが悪いのでダメなのか、箇条書きにしてカキコヨロ
タスクバーにあるソフトを右クリックしたら出てくる、閉じるとか最大化とかある ポップアップメニューに項目を追加したいんですがどうすば出来ますか?
GetSystemMenu()で取得したメニューにInsertMenuItem()とかする
そして一番下が閉じるではないソフトができあがるわけですね、分かります
閉じるの上にInsertMenuItemすればいいだろ
>>18 コマンドプロンプトのメニューにInsertMenuItemしたやつに言い聞かせたい。
あと、HTMLヘルプも同じヘマやらかしている。
InsertMenuItemじゃなくてAppendMenuを使ってるんだろ
DDBとDIBって同じじゃないの?
>>21 同じでないから別の言葉になっている。
大雑把に言えば、DDBは内部形式。
DIBは.bmpそのまま。
32bppなら気にすることもないだろ
bV4V4Compression うぜーよ
D:デバイス D:いぞん B:ビットマップ D:デバイス I:どくりつ B:ビットマップ 覚えやすいね
見事そこだけカタカナのままではないのが素晴らしい。
別のソフトのリッチエディットコントロールの指定行のテキストを
取得しようと、VirtualAllocExを使ってEM_GETLINEを送信しましたが、
取得できません。
SendMessage前に、事前に以下のようにWriteProcessMemoryにより最初の2Byteに
格納可能サイズは入れてあります。
DWORD dwBytes;
WORD buf_size=512;
WriteProcessMemory(hProcess, pVBuf, &buf_size, sizeof(WORD), &dwBytes);
一方、やけくそで自プロセスで確保したバッファをWPARAMに突っ込んで
SendMessageしたら、あっさりと取得できました…
その後、色々調べてみたら
http://www.microsoft.com/msj/0997/win320997.aspx の記事を見つけ、これによると(真ん中あたり)
16bit-Windowsとのコンパチ確保のために、一部のコントロール固有メッセージに
ついては、Windowsがうまいことプロセス間のデータの受け渡しをやってくれる
(かなり意訳ですが…)と書いてありました。
まさにEM_GETLINEがこの“一部”にあたるのかなと思ってるんですが、逆に
この“一部”にあたる場合は、VirtualAllocExではやってはいけないもんなんで
しょうか?
すみません、突っ込んだのはLPARAMでした。
D:デバイス D:どくりつ B:ビットマップ D:デバイス I:いぞん B:ビットマップ 覚えやすいね
もうダメだこのスレ
AccessibleObjectFromWindowを試してみたくて色々やっているのですが難しいです。 サンプルなど教えて頂きたいです。
>29 Windowsがマーシャリングしてくれるなら、LPARAMは 「呼び出し元プロセスのメモリを指すポインタ」に意味になる。 そうでないものは、単なる32/64ビット値という扱いになるわけで、 「ウインドウの属するプロセスのポインタ」という扱いになるわけね。
35 :
デフォルトの名無しさん :2009/02/27(金) 11:56:08
メッセージには優先度があるとどっかに書いてあったんですが、 優先度は何段階くらいあるんですか? 段階が多すぎると優先度別にキューを作る場合メモリを食いすぎますよね
お前は何を言っているんだ?って感じの日本語訳だな。 とりあえず、WM_TIMERとWM_PAINTが後回しにされる事だけ覚えとけば良い。 あと、このメッセージについては、キューに既に同じメッセージが存在する時は、 それが取り除かれるまで次のメッセージがポストされることがない。 溜まったWM_TIMERが後になって押し寄せてくるような事は起こらない。
質問。 MFCとかWTLとかでRT_TOOLBAR使ってるけど これってFindResourceがアンドキュメントな特殊なことしてんの?
39 :
デフォルトの名無しさん :2009/02/27(金) 21:00:08
> お前は何を言っているんだ?って感じの日本語訳だな。 今さら何を言っているんだ?って感じのレスだな
ageる程のレスだったのか。
今日はお日柄も良く……ってノリで書いただけなのに。
>>38 単にMFCが独自に定義しているだけ。
そもそもFindResourceは指定されたリソースID、種類に一致するリソースを探すだけ 中のデータには一切関与しない
デバイスコンテキストと排他制御について聞かせてください。 CreateCompatibleDCでメモリDCを作り、CreateCompatibleBitmapでビットマップを作って メモリDCにSelectObjectしてダブルバッファリングをしています。(たぶん普通のやり方だと思います) 2,3個のスレッドでそのメモリDCに対して読んだり書いたりをしているのですが、 やはりクリティカルセクションやミューティックスを使って排他制御をしないといけないのでしょうか? それともGDIにそういった面倒な事を引き受けてくれる機能は無いのでしょうか? バグを出しそうなので自分では書きたくないもので。
43 :
デフォルトの名無しさん :2009/02/28(土) 06:13:28
学校の宿題なんだけど、自分でやりたくはないもんで。 という事なのは理解した。
最近はこんな宿題が出るんか
WinInet.DLLでUbuntu8.04のproftpdにFTPでファイルをアップロード しています。 しかし日本語ファイル名が文字化けしてしまいます。 FFFTPでアップロードするときはファイル名の漢字コードを UTF-8Nに設定すれば文字化けしませんでした。 WinInetでもUTF-8Nに設定する方法はないでしょうか?
>>42 同時に書き込みがおこる可能性があるなら必要
>>46 > バグを出しそうなので自分では書きたくないもので。
訳:能書きはいいからお前が書け
そのくらいなら全然難しくないじゃないか… 書き込むところをクリティカルセクションにするだけだ
>>40-41 サンクス
RT_TOOLBAR の定義 MAKEINTRESOURCE(241)
この241を他の値に変えたらツールバーが出てこない。
これって何を表してんの?
>>49 MSの中の人が241はツールバーだと決めたというだけのこと。
>>48 はじめてのクリティカルセクションで緊張しまくり
どうしよう....
スピンロックカウントを数えていれば終わるさ
>>35 , 37
追記。
WM_TIMERとWM_PAINTはキュー経由のメッセージのフリをしているだけで、
内部ではフラグだと考えて良い。
その辺はAdvanced Windowsに書いてあるな。
俺のAdvanced Windowsには載ってないな@5版 削られたのかな
>>46 ,
>>48 わかりました。やってみます。どうもありがとうございました。
ちなみに宿題ではない。
ちなみに宿題ではない。仕事だ。
D:デバイス D:どくりつしてない B:ビットマップ D:デバイス I:いぞんしてない B:ビットマップ でいいじゃん
61 :
45 :2009/03/01(日) 11:04:13
どうやらWinInetはSJISしかサポートしてないようですねorz あきらめてJavaでやります。
Unicdode版
64 :
デフォルトの名無しさん :2009/03/01(日) 14:52:19
クリアしたら画像を保存(壁紙とか) みたいなソフトっていっぱいあるけど、あれはどうやってるんですか? 考えついたのは、バイナリデータをソースにあらかじめ組み込んでおいて クリアしたらそれを、書き出すというモノなんですが文字化けが酷くて実用は出来なそうでした もし、分かるかたいたら教えてください 画像のフォーマットはpngかbmpを考えています
bitbltではだめなのか?
dcにgetdibitsして書き出す
リソースに埋め込んでおけばいいのではないの?
ゲームのご褒美なら、簡単に抜き出せていいかどうかの判断もいるんじゃないか?
そういうのはとりあえず目的が達成できてから考えるようにしろ
> クリアしたら画像を保存(壁紙とか) みたいなソフトっていっぱいあるけど、
・クリアって何を?
・画像って何の画像を?
壁紙を保存ってどういうこと?
いっぱい省略されてるからわからないだけ。
それを補完できるのは
>>71 が単にそういうものを知ってるだけのことで、
日本語の勉強とは関係ないよ。
73 :
デフォルトの名無しさん :2009/03/01(日) 16:04:05
74 :
デフォルトの名無しさん :2009/03/01(日) 16:05:08
Win32APIスレだからクリアという単語がゲームの事だと気が付くのに時間かかったぞ。
OSバージョンかわるごとに挙動ころころ変わるAPIってなんかあったっけ?
http://pc11.2ch.net/test/read.cgi/win/1233496666/827- 827 名前:名無し~3.EXE[sage] 投稿日:2009/03/01(日) 14:26:02 ID:y4EldHyY
>823
APIの動作がころころ変わるってことだ。
だから、あるバージョンのみの走行だけ見てアプリ書くと、他のバージョンでうまくいかないことがあるみたい。
これを不安定と言わずなんというのか。
833 名前:名無し~3.EXE[sage] 投稿日:2009/03/01(日) 15:16:43 ID:NnvMw1HI
>>827 どのAPIさ?
834 名前:名無し~3.EXE[sage] 投稿日:2009/03/01(日) 15:26:33 ID:y4EldHyY
>>833 こいつも馬鹿だなw
言わずと知れたWinAPI。
COMとかDCOMもどうなってんの。
クリア=消去とすると「消去したら画像を保存」なんて意味不明 他にPC上でクリアする物といえばゲームと考えるのが妥当だろ
>>76 APIの定義にもよるだろうけれど、コモンコントロール系の文字なのかバイトなのかなどは
額に#マークが浮かぶ代表例じゃないだろうか。
誰もが一度は通る道。
>>77 釣りならウザイだけです。 お帰りください。
本気で言ってるならウザイだけです。 お帰りください。
>>78 そんなんじゃなくてただの馬鹿
850 名前:名無し~3.EXE[sage] 投稿日:2009/03/01(日) 16:08:40 ID:y4EldHyY
IMEで変換中に投稿になってしまった。 前項棄却改めて投稿する。
>>844 > なら何で答えられないのさ
>
>>827 みたいなこと書いてるって事は
> まさかMSDN読まずに適当に組んでおいて動かないなんて言ってないだろうな
開発は止めたと言っているだろう。 それは古いことだ。
そして、その態度を維持する方向で進んで来た。
まあ、そんなながてAPIのころころかわる痛手は風の便りに聞こえ来た、ということでいいんじゃないの。
855 名前:名無し~3.EXE[sage] 投稿日:2009/03/01(日) 16:13:31 ID:y4EldHyY
>>854 >
>>850 > よくないから
> 教えてよ
やだ、MSに聞け。お宅の弱点はなんですかと。
856 名前:名無し~3.EXE[sage] 投稿日:2009/03/01(日) 16:15:51 ID:+8xe5/d/
そんなAPIないから答えられないんですねわかります
863 名前:名無し~3.EXE[sage] 投稿日:2009/03/01(日) 16:27:38 ID:y4EldHyY
答えないから。答えに相当するものがないなんて馬鹿でも思わないんだけど、
>>856 ときたら、盲目的なMSの追従者だことw
窓餌とは、Windowsに関するキーワード。
窓蜜とは、Windowsに関するインタレスト。
窓餌を探し、新しい風評をおこすものを窓魚という。
窓蜜を求めて徘徊するものを窓虫という。
それを大きく包む範疇を窓厨という。
いずれをお望みやw
>>76 ころころって訳じゃないけどKB418138とか。大きなお世話って感じ。
笑ったのが、XP初期の頃の要らんソフトてんこもりメーカー製パソコン
付属ソフトなのに稀にアイコンの登録に失敗するのがあった
OSのバージョンが変わるたびに挙動がころころ変わるAPIなんてないだろう… NT3.5->4.0とか9x->2000で挙動が変わったくらいか?
彼は非公開APIの事を言いたいのでしょうw
reserved だった引数が変わったりしてる あとIEバージョンによってサポートされるAPIが変わってる IE3.x -> 4.x なんかは随分違う
creat が create になったんですね。わかります。
MS に文句いう奴の9割は、自分のコードに問題がある(俺調べ
>>82 ころころはともかくOS毎に動作が違うAPIは結構あるよ。
>>78 もそうだし、スペースを与えたときのGetGlyphOutline()の戻り値とかも
はまることが多いんじゃないかな。
>>87 そもそもy4EldHyYはコード書いたことあるかすら怪しい
9x/NTで動作が違ってても仕方ないと思うけど2000/XPで違うとかは勘弁してほしいな
コードを書いたことがあるかどうかはこの際どうでもいい。 OSのバージョンで挙動がころころ変わるのは問題だと言っているのだ。
どのAPI?
GetModuleFileNameとか?
GetVersion(Ex)だろ 返ってくるデータがころころ変わりすぎ ほんと迷惑なAPIだよ・・・
ロングファイル名対応以外になんか変化あったっけ? UNC表記?
GetModule〜は95/98と2k/XPとそれ以降で違うんだっけ
Windowsほど互換性に気を遣っているOSは少ないと思うけどなぁ
GDIも9xだけ制限が厳しいことがよくある。 GetTextExtentPoint32での文字数は8192字(バイト)以内 CreatePenで2ポイント以上は実線しか作れない パスで使用可能な描画関数が少ない
まあ他OSがどうしているのかは興味のあるところ。
9xは正確にはWin32じゃない(Win32c)から挙動が違ってても不思議ではない
寡占企業なんだからちょっとくらい叩いても罰は当たらないと言ってみる
今どき win9x のことを気にしないといけないなんて、大変ですねぇ。
106 :
デフォルトの名無しさん :2009/03/01(日) 18:14:43
XP/Vistaしか気にしない奴は.NETでも使ってろ
98でも.NET2.0は入った気がするぞ
しかし、LINQの使えない.NET Framework 2.0に用はない。
あんまり古いOSにこだわり続けるのもどうなんかな・・・
自分では使ったことないけれど、 Uniscribeは再頒布できないようなのに 細かなバージョンアップが続いていて大変そうな印象を持っている。
>>109 むしろ古いOSに拘らないならわざわざWin32APIを直接叩く必要は無いでしょ
別にXPでAPI叩いたっていいじゃないですか!
家では未だに98SEな俺は特に気にしてない。
OS によって挙動不審になるAPI;SystemParametersInfo()
挙動不審じゃねーだろ お前じゃあるまいし (w
怪しい…
TBSTYLE_EX_DRAWDDARROWSの設定されたツールバーのボタンサイズをうまく取得する方法ある? 普通にTB_GETBUTTONSIZEだと▼の部分のサイズが取得できない。
>>114 マイドキュメントやシステムフォルダの場所を取得するってのもいい感じにいっちゃっている。
プロパティシートのように手軽にタブコントロールでページの切り替えをする方法はないでしょうか?
なぜプロパティシートがダメなのかわからないと答えようがない
>>115 このAPIの場合は挙動不審でいいんだよ、いちいちケチつけるな。
消せばいいじゃねーか
いろいろとムチャクチャなAPI SHFileOperation
cREATEfILEで開いたものはFPRINTFとかで使えない?
使えない
GetDCで取得したHDCはずっと使ってもいいですかー?
>>125 FILE *fp = _fdopen(_open_osfhandle(handle), "r");とかでいけない?
>>127 CS_OWNDCでないならこまめに返すべき
ども
IEコンポーネントでIEがレンダリングしたWebページ全体を ビットマップにキャプチャーする方法をご存知でしたら教えて 頂きたいのですが...APIを援用してもかまいません
そのページの上に背景ブラシ NULL のウィンドウをかぶせて、そいつのデバイスコンテキストからビットマップを取得する。
133 :
131 :2009/03/02(月) 18:39:32
>>132 それで出来るんですか。
ちょっとやってみます。(出来なくても責めません)
ありがとうございました。
>>132 マジでそんな簡単な方法でページ全体がキャプチャーできるなら世の中のキャプチャーソフトって糞ばっかってこと?
>>135 その方法で、昔、(見せかけの)デスクトップ上を玉が転がり落ちるスクリーンセーバを作ったぞ。
>>136 じゃあ多分話してる内容がかみ合ってないな。
・スレを全レス表示して、それを一枚のキャプチャにしたいって話
>>131 ・画面に表示されている任意の箇所をキャプチャするって話
>>132 ってことだろう?
WM_ERASEBKGND揉み消したらいいのねー
WM_PRINTとか拡大鏡系のAPIとかDWMサムネイルとか方法はいろいろある。
昔、Sleipnir1.66用のプラグインでそういうの作ったことあったけど、 えらいめんどくさかったなぁ…
142 :
デフォルトの名無しさん :2009/03/02(月) 22:50:46
とれないね
144 :
45 :2009/03/02(月) 22:57:46
そういうこと
自演するならもうちょい時間あけような
>>143 正しく言うとこのスレにはクズしかいないが正しい
お前も、おれも、そして、残りの奴も全てクズ
クズがクズに向かってクズって楽しいすれだよな
クズどおしの罵倒スレこれがこのスレ
今日は
>>143 がクズ罵倒開始を宣告したってことだな
2chで何をいまさらw
150 :
131 :2009/03/03(火) 01:54:18
回答者への罵倒は質問者への迷惑にもなりますので 何とかご遠慮頂けないでしょうか
クズに不可能なことを要求しないでね
>>131 「IE レンダリング ビットマップ」とかでググると出てくるぞ
そこは.netでやってるぽいけど、IEコンポーネント使えれば他言語でもいけるんじゃね?
流れぶった切って質問。 WinXP&VC++2008EE@Unicodeにて RASEnumConnectionsというAPIを使ってネットワーク接続を列挙しようとしているんだが、 コード632(構造体のサイズが違います)というエラーが出て、引数が変更無しで帰ってくるんだ。 RASCONN構造体の最初のdwSizeメンバと二つ目の引数にsizeof(RASCONN)を入れてる。 ANSIでもダメだった。ちなみにうちの環境ではsizeof(RASCONN)は1384バイト(@Unicode)らしい。 (スレチだったらすまん&誘導よろ)
>>153 WINVERマクロの値とras.hを確認
>>154 レスありがとう。
確認したところ、WINVERが0x600で、RAS.hの範囲が〜0x500までみたいだ。
ちょっと#undefして再定義してくる。
>>154 出来た!ありがとう。
(windows.h読む前にWINVER設定すればいいのね)
連投スマソ。
157 :
デフォルトの名無しさん :2009/03/04(水) 16:35:46
ちょっとお馬鹿な質問ですが SendMessageのLParamに構造体のポインタを与えて時に 別アプリで受けたらそれ読めますか?
>>158 ですねよ。
素直にマップドピュピュファイルを使いますよ。
162 :
デフォルトの名無しさん :2009/03/04(水) 17:59:58
>>162 知らないならレスしないで下さい。ウザいだけです。
164 :
デフォルトの名無しさん :2009/03/04(水) 18:04:24
>>163 マジレスすると、ググール先生でVB6のソース出てくるだろ?
そのまんまじゃんwww
そのまま使えないなら、33の質問内容が悪い。
もう少し具体的に質問しろwww
>>164 知らないならレスしないで下さい。ウザいだけです。
166 :
デフォルトの名無しさん :2009/03/04(水) 18:28:02
質問もレスなわけだがw
167 :
デフォルトの名無しさん :2009/03/04(水) 18:36:41
質問に対してググれって言う馬鹿はレスするなって事じゃね?
168 :
デフォルトの名無しさん :2009/03/04(水) 18:47:50
くれくれ君はググれでいくね?
相変わらず外野うぜーな 文句あるならズバっと回答して成仏させてやれよ
>>169 知らないならレスしないで下さい。ウザいだけです。
マップドピュドピュw
>>157 メッセージよっては OK。WM_COPYDATA とか。
175 :
デフォルトの名無しさん :2009/03/04(水) 20:58:34
Windows VISTA SP1
VS 2008
http://homepage2.nifty.com/c_lang/sdk3/sdk_297.htmをみて 以下の様に組み込んだのですが、この プリントダイアログを出した後に、
ウィンドウを閉じてプログラムを終了させると、
なぜか、Windowタスクマネージャ→プロセスに
*.exe が残ってしまいます。残ってしまうので次ビルドすると
error PRJ0008 : ファイル '*.exe' を削除できませんでした。
とメッセージが出てしまいます。
このダイアログを出さない場合は プロセスに*.exeは残らずきちんと消えてくれます。
なぜなのでしょうか?
176 :
デフォルトの名無しさん :2009/03/04(水) 20:59:51
ソースは以下です。 if (PrintDlg(&pd)==TRUE) { StartDoc(pd.hDC, &di); StartPage(pd.hDC); GetTextMetrics(pd.hDC, &tm); //File //0枚目 wsprintf(PrintBuf,CPrint.szStrFile,0,Common_Data->File0); TextOut(pd.hDC, 100, tm.tmHeight * 0, PrintBuf,strlen(PrintBuf)); //1枚目 wsprintf(PrintBuf,CPrint.szStrFile,1,Common_Data->File1); TextOut(pd.hDC, 100, tm.tmHeight * 1, PrintBuf, strlen(PrintBuf)); //2枚 wsprintf(PrintBuf,CPrint.szStrFile,2,Common_Data->File2); TextOut(pd.hDC, 100, tm.tmHeight * 2, PrintBuf, strlen(PrintBuf)); EndPage(pd.hDC); EndDoc(pd.hDC); //DeleteObject(hPen); DeleteDC(pd.hDC); }
なんか残ってるんだろうね。
178 :
デフォルトの名無しさん :2009/03/04(水) 22:02:12
XP SP2では発生していなかったと思います。 VISTAでは新しい関数を使うのかと思い調べたらPrintDlgEXがありましたが 構造体に何を設定すればいいのか 分からない。必要最低限の設定 でいいんですが・・。
指定のウィンドウの一つ下にあるウィンドウのウィンドウハンドルを得る関数って何でしたっけ?
GW_CHILD を指定して GetWindow() とか?
StartDoc から DeleteDC までを全部コメントアウトしても同様?
183 :
デフォルトの名無しさん :2009/03/04(水) 22:29:48
>>181 StartDoc から DeleteDC をコメントアウトしても同様です。
PrintDlg(&pd); と単独で記述して プリントダイアログを
出したあとに すぐにキャンセルして そしてプログラムを
終了させても プロセスに残ってしまいます。
構造体の中身は?
>>162 >>164 グーグルで最初に出てくるサイトのサンプルをVB.NETに直して色々試したのですが
取得失敗と出て終わってしまい困っています。
res = AccessibleObjectFromWindow(lngHWND, OBJID_CLIENT, IID_IAccessible, objAcc)
でlngHWNDに数字が入っていて、OBJID_CLIENTに-4が入っていて、
IID_IAccessibleの定義は
Private IID_IAccessible As UUID
Private Structure UUID
Dim Data1 As Integer
Dim Data2 As Short
Dim Data3 As Short
Dim Data4() As Byte
Public Sub Initialize()
ReDim Data4(7)
End Sub
End Structure
でイニシャライズもしていて、
objAccは Dim objAcc As IAccessibleのように定義しています。
APIの宣言は
Private Declare Function AccessibleObjectFromWindow Lib "oleacc" (ByVal hWnd As Integer, ByVal dwObjectID As Integer, ByRef riid As UUID, ByRef ppvObject As IAccessible) As Integer
こうなっています。
どこか悪いところとかありましたら教えて頂きたいです。
VB(笑)
本題からは逸れるけど、 UUIDなんて構造体作らなくても、System.GUIDを使えばいいし、 hWndの型はIntPtrのほうが適切。 とここまで書いて、UUID構造体の定義がまずいような気がしてきた、Data4のあたり。 System.GUIDにするとどうだ?
>>187 レスありがとうございます。
System.GUIDというのは
Dim IID_IAccessible As Guid = Guid.NewGuid()
こうすれば良いでしょうか?
hWnd関係は全部IntPtrに置き換えてみました。
TextBox1.Text = GetSysLVHwnd().ToInt32
で65698という数字が帰ってくるので大丈夫だと思います。
何かダメそうなところが分かりましたら教えていただきたいです
189 :
デフォルトの名無しさん :2009/03/05(木) 01:18:04
>>188 API定義これでどうよ?使ったことないけど。
Private Declare Function AccessibleObjectFromWindow Lib "oleacc" (ByVal Hwnd As Int32, _
ByVal dwId As Int32, _
ByRef riid As Guid, _
<MarshalAs(UnmanagedType.IUnknown)> ByRef ppvObject As Object) As Int32
190 :
>>188 :2009/03/05(木) 01:25:00
よく見てみると、その後こう使ってるのか。動くのかな?
著作権とかはしらね
http://www.pinvoke.net/default.aspx/oleacc/AccessibleObjectFromWindow.html Private Sub Form2_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim varChild As Accessibility.IAccessible
Dim hWnd As Int32 = GetForegroundWindow()
Dim ID As Int32 = 0
Dim IID_IAcce As Guid = New Guid("618736E0-3C3D-11CF-810C-00AA00389B71")
Dim aaVal As Int32 = AccessibleObjectFromWindow(hWnd, ID, IID_IAcce, varChild)
End Sub
レスありあとうございます。
>>189 を試してみましたが
Can not marshal parameter #4: Invalid managed/unmanaged type combination
(Interfaces must be paired with Interface).
というエラーが出てしまい対応できませんでした。
>>190 New Guid("618736E0-3C3D-11CF-810C-00AA00389B71")
を定義すると取得失敗へ行かなくなりました。
varChildに何か入っているようです。
最初のグーグルで最初に出てくるページのサンプルでvarChildを調べる部分でエラーが
出てしまいましたが、また色々やってみたいと思います。
何をやってもNothingのままだったので
>>33 がやっと解決できましたみたいでありがたいです。
ありがとうございました。
192 :
デフォルトの名無しさん :2009/03/05(木) 10:19:12
>>191 インターラプト入れれば、マーシャルでエラーでない
Imports System.Runtime.InteropServices
Private Declare Function AccessibleObjectFromWindow Lib "oleacc" (ByVal Hwnd As Int32, _
ByVal dwId As Int32, _
ByRef riid As Guid, _
<MarshalAs(UnmanagedType.IUnknown)> ByRef ppvObject As Object) As Int32
>>174 そうだ!!
WM_COPYDATAがあったんだ!
ありがとうありがとう
194 :
デフォルトの名無しさん :2009/03/05(木) 18:03:33
ツールバーを消したいんですけど、手順的にはどうすればいいのですか? サイズを 0,0,0,0 にしたり SW_HIDE とか HWND_BOTTOM を試しても うまくいかず、「上に」詰めた領域がツールバーに隠れるんですが、、、
195 :
デフォルトの名無しさん :2009/03/05(木) 18:39:06
196 :
デフォルトの名無しさん :2009/03/05(木) 18:45:54
ごめん間違えた。ShowWindowのSW_HIDEで消えないの?
まともなのが共産と国民新党しかないとかどれだけw
ひでえ誤爆
>>192 Imports System.Runtime.InteropServices
は書いたのですがエラーになってしまいました。
もう一つ教えて頂きたいのですが、
Dim objAcc As IAccessible
という宣言があるのですが、
objAcc を入力したあとにピリオドを入力すると
メンバが出るようにしたいのですが方法がありましたら教えて頂きたいです。
おっとそこまでだ その質問はVB.NETスレでやってくれ
>>199 何度もすみません。
現在デスクトップ上のアイコンの名前がリストボックス登録されるところまで出来ました。
(グーグル検索の最初に出てくるサンプルをVB.NETに書き換えて)
プログラムが立ち上がったときに、エディットコントロールに初期文字が表示されるようにするため、 プログラム内からエディットコントロール内に文字を打ちたいのですが、どのようにすればよいでしょうか? SendMessageを使って、例えば「7」を入力しようとしましたが、ダメでした。 SendMessage( hEdit, WM_KEYDOWN, '7', 0 ); ご助言、お願いします。
>>203 WM_INITDIALOG 内で SetWindowText()
205 :
203 :2009/03/06(金) 00:02:49
>>194 SetMenu(hWnd, NULL);
207 :
デフォルトの名無しさん :2009/03/06(金) 19:31:44
トップレベル・ウィンドウに BOOL MoveWindow( HWND hWnd, int X, int Y, int nWidth, int nHeight, BOOL bRepaint ); と、 BOOL SetWindowPos( HWND hWnd, HWND hWndInsertAfter, int X, int Y, int cx, int cy, UINT uFlags ); を、 X、Y、W、H とも同じ値にして実行したときに出来るウィンドウのサイズと座標が 全く異なるんですが、これは一体どういうことなんですか??
スクリーン座標とクライアント座標じゃね? WndPosがクライアントだった希ガス
悪い、SWP_NOSIZEとSWP_NOMOVE指定してたわ
そーゆーオチかよwww
あああああああああああああああああああああああああああああああああああああああ
何?何?
酒飲んでて屁だと思ったのが下痢だった
214 :
デフォルトの名無しさん :2009/03/08(日) 01:14:34
OS:Windows VISTA SP1 ボタンを押したらOS情報取得するプログラムを以下の様に記述 しました。 GetVersionEx(&osv); switch (osv.dwPlatformId) { case VER_PLATFORM_WIN32s: MessageBox(NULL, "Win32sです", "Platform", MB_OK); break; case VER_PLATFORM_WIN32_WINDOWS: MessageBox(NULL, "Windows95です", "Platform", MB_OK); wsprintf(str, str_format, LOWORD(osv.dwBuildNumber)); MessageBox(NULL, str, "OK", MB_OK); break; case VER_PLATFORM_WIN32_NT: MessageBox(NULL, "WindowsNTです", "Platform", MB_OK); break; 結果、なぜか、VISTA上で動かしてボタンを押すと、 VER_PLATFORM_WIN32_NT: MessageBox(NULL, "WindowsNTです", となってしまいます。 VISTAを判別するためのdefineってなんでしょうか? GetProductInfoで細かく取得するつもりはないんですが・・。
VistaはNTだし…
dwMajorVersionとdwMajorVersion見ろ
かぶったorz
220 :
デフォルトの名無しさん :2009/03/08(日) 01:36:26
NT系列だったんですね 勘違いしてました。 ありがとうございました
まさか本気でMeの後継だと…
さらに、Windows 7.0はバージョン7.0と思っているに違いない。
え??VISTAの完成度の低さはMeの後継だからでしょ?
うん そうだね
Win32を使っているのならVistaのAPIの完成度の高さはわかるはずだが…
>>222 >Windows 7.0
もしかしてそれはWindows 7と言いたいのか?
>>223 「Meの後継」と「完成度」には何の関係もないだろ
>>226 そのとおり。すまん、つい勢いで書いてしまった。今は反省している。
>>227 そのとおり。すまん、つい勢いで書いてしまった。今は反省している。
VistaのAPIの完成度の高さ、って…… MS社員乙って言ってほしいのか?
後に出たAPIほど洗練されるのはある意味当たり前 VistaのAPIが完成度高いってよりWin32 APIが極端に使いにくいだけ でも歴史的背景を考えればやむなし
はぁ? VistaのAPIが完成度高い??洗練されてる?? もしかして、VistaのAPI=.NET3.0/WPF=洗練されてる、とか言いたいだけの人なのかね
WERやスレッド関連は以前よりはるかに完成度が高いと思うけど
一部流動的なものを対象としている為に、 ライブラリのような「完成度」が求めることが不可能 であるか極度に困難だからこそAPIと呼ばれライブラリ とは呼ばれない件について (以上チラ裏)
まあ APIの完成度 なんて表現を使う時点で程度の低さが分かっちゃうけどね
API=Aplication Programming Interface だったっけ? 完成度は求められる対象じゃないか?
いやVISTAのAPIは完成度高いだろ だってさ、XP用のソフトも使えるんだぜ? XP = XP用のソフトしか使えない VISTA = XP用ソフト、VISTA用ソフトの両方が使える
そもそもVistaのAPIつっても大部分がWin16時代からの物なのに「完成度」てw どうも"API"を理解してない人がいるみたいだね またいつもの人か?
どこぞのVZ厨だろ
>>239 そだね。APIってインターフェースだから内部構造は絶対不変で
Win16のコードすら必ず残ってるからね。だからVistaでもXPでも
Windows2.0のプログラムがそのまま動くw。
WERやスレッド関連って、VistaからのAPIだろ…
MSの互換性絶対主義の賜だね さすがMS様はわかってらっしゃる
>>241 64bit版にはWin16サポート無くなってるんじゃなかったか?
古いInstallShieldのインストーラが起動しないとかどっかで見た気がする
まぁさすがにWin16はもういいだろ・・・
最近のソフトでも、インストーラーが16bitのがあるのがむかつく。 しかも64bit版でそんなインストーラ使うアホなとこもあるw
.NET Frameworkなんか糞だろ 開発する側のメリットしか考えてない使い手無視のAPI 互換性だけでWin32APIを残しているあたりも糞OS
PEの出だしって16bitじゃなかったか?
249 :
デフォルトの名無しさん :2009/03/08(日) 15:52:50
Windowsの灰色ってRGBで言うところの(255,255,255)いくつなんでしょうか? SetTextColor(hdc, RGB(0, 0, 0); SetBkColor(hdc、RGB(???)); 背景はダイアログボックスの灰色です これでいろいろ試してみたんですけど なぜか背景色が合わないんです どうしたらダイアログボックスと文字の背景色を合わせられるでしょうか?
PEは32/64bitだろ 因みに16bitはNEと呼ばれてた LEとかLXとかっていう16/32bitハイブリッドなのもあってこれは9x時代のドライバにも使われてた
>>249 hbrBackground = (HBRUSH)(COLOR_BTNFACE + 1);
>>250 すまん
言い方が悪かった
OSが16bitだった場合実行される16bit命令が出だしにあったんじゃないかと
int型だぁ〜(><;)わからないよ〜
>>249 ::SetTextColor( hDC, ::GetSysColor( COLOR_BTNTEXT));
::SetBkColor( hDC, ::GetSysColor( COLOR_3DFACE));
>>251 さん
SetBkColor(hdc、COLORREF )
hbrBackground = (HBRUSH)(COLOR_BTNFACE + 1); を
COLORREF形式にするにはどうすればいいんでしょうか?
>>254 ありがとうございます
できましたm(_;)m
>>249 設定とかによって変わってくるから決めうちはいかんよ。
ほんと決め打ちは勘弁して欲しい 配色を黒基調にしてると文字が見えなくなるとかw
__ \|/ | ┌─┼─?|─┬──┐ 三 |入 ,> .└-、 三 = <、 ヽ、 ,-‐-、 三 /.| ,> .┌-、 "''-( ( ̄〇 └─┼───┴──┘ "''''""" ヽ,,,,ソ _|_ ////
大抵SetBkMode(TRANSPARENT)するから SetBkColor()はあんまり使わんかも
>>248 出だしつーかファイルの一番先頭は「このプログラムはDOSじゃ動かねーよ」って表示するだけの16bitコードだな。
極限までバイナリサイズ縮める遊びとかでたまに書き直してた。
>>261 ちゃんとしたプログラムに差し替えも可能だな。
誰ですか、スタブをjxw,exeにした人はw
264 :
デフォルトの名無しさん :2009/03/08(日) 20:49:27
VC++2005 でサウンド入出力プログラムを作っています.
SDK,低レベルAPIを使っています.
入力,出力共にマルチバッファリングを行っているのですが,
入力と再生の間に,バッファ数に従う遅延が生じてしまいます.
体感では,(1バッファに録音する秒数 * 用意したバッファ数)秒
の遅延が生じていると思われます.
リアルタイムに近い動作を実現したいため,
1バッファに録音する秒数(RecSEC)を短くしています.
現在の設定では RecSEC = 0.005 [sec/buffer] です.
バッファ数が少ないと音声がブツブツと途切れてしまいますが,
バッファ数を増やす事で解決しました.
これで遅延量が少ない動作が実現できたと思っていたのですが,
RecSEC = 0.1 として実行してみたところ,約0.1[sec]の遅延を期待していたのですが
約(0.1*バッファ数)[sec] という大きな遅延となってしまいました.
ソースコードをアップしましたので,解決方法をご教授願います.
waveInStart の実行位置を変えてみる等色々とやってみましたが
よくわかりませんでした.
pass: sagehoge
ttp://www2.uploda.org/uporg2074476.txt.html よろしくお願いします.
延滞が気になるASIOを使え
whOut[k].dwFlags = WHDR_BEGINLOOP | WHDR_ENDLOOP; whOut[k].dwLoops = 1; 関係ないと思うけど↑が気になった 両方とも0でよくね?
>>264 Vista以降ならCoreAudioで扱えばいい。
他にもDirectSoundでバッファ読みまくりとか。
ソースは見るまでもないが、きっとやり方間違っているよ。
あらゆる方法を試した事のある俺が言うんだから間違いない。
268 :
264 :2009/03/08(日) 21:50:58
>>265 ありがとうございます.
ですが,低レベルAPIで書きたいです.
>>266 ループ再生は不要なので,確かに両方とも0ですね.
>>267 XPで書いています.DirectXにも挑戦しようか悩みましたが,
低レベルAPIで片付けてみたいのです.
お暇な時にでもソースを見ていただけたら.
APIレベルではどうしようとも遅延が200〜500msあるんだが、それを理解した上でやっているのか?
>>264 ここよりサウンドプログラムスレの方が良いアドバイスもらえるんじゃないか
271 :
264 :2009/03/08(日) 22:07:46
>>269 数値がどの程度かは知りませんでしたが
それくらいの遅延は覚悟しておりました.
しかし現状ではアルゴリズムの問題で遅延が生じてしまっているため
それを解消したいのです.
>>270 スレ検索が足りなかったようです.
サウンドプログラミングのスレを見つけましたので,
そちらでお聞きする事にします.
皆さん,ありがとうございました.
>>231 互換性を切り捨てられるなら君の言うとおりだ。>後の方が洗練
互換性が切り捨てられるなら新しいOSが出る毎にコードを書き直さないといけないだろ そんなのが洗練されてるとか、馬鹿?
↑話を分かっていないバカ
ここは荒らしていいスレじゃなかったっけ
落書きだらけの壁に「落書き禁止」の紙が貼ってあるようなもんだ。
279 :
デフォルトの名無しさん :2009/03/09(月) 12:42:44
荒らしていいスレ(笑)
>>278 「落書き禁止」なんて貼ってないよ
「自由の板です、どうぞ」の紙が貼られている板
以下のコードでnewでメモリ確保すると大丈夫なのにスタックにメモリ確保するとエラーになります。 どこがまずいのでしょうか?なんとなくスタックの概念を根本的に間違っているような気がします。 //----大丈夫---------------------------- #include<windows.h> #include<gdiplus.h> #pragma comment(lib,"Gdiplus.lib") #include<cstdio> void main() { Gdiplus::GdiplusStartupInput gdiplusStartupInput1; ULONG_PTR gdiToken; Gdiplus::GdiplusStartup(&gdiToken,&gdiplusStartupInput1,NULL); Gdiplus::Bitmap*pBitmap1=new Gdiplus::Bitmap(TEXT("C:\\WINDOWS\\winnt.bmp")); printf("%d\n",pBitmap1->GetWidth()); delete pBitmap1; Gdiplus::GdiplusShutdown(gdiToken); } //----エラー---------------------------- #include<windows.h> #include<gdiplus.h> #pragma comment(lib,"Gdiplus.lib") #include<cstdio> void main() { Gdiplus::GdiplusStartupInput gdiplusStartupInput1; ULONG_PTR gdiToken; Gdiplus::GdiplusStartup(&gdiToken,&gdiplusStartupInput1,NULL); Gdiplus::Bitmap bitmap1(TEXT("C:\\WINDOWS\\winnt.bmp")); printf("%d\n",bitmap1.GetWidth()); Gdiplus::GdiplusShutdown(gdiToken); }
>>281 使ってるクラスの内容は知らんが、
上だとビットマップ削除後Shutdown呼んでるが
下だとShutdown呼んだ後ビットマップ削除してる
辺りが原因なのでは?
スタックうんぬんというより、クラスのインスタンス生成の概念がわかってないんじゃない?
284 :
281 :2009/03/09(月) 22:02:47
>>282 レスありがとうございます。
おっしゃるとおりでした。
main()を抜ける時にBitmapのデストラクタが実行されてすでに開放された領域を読もうとしていたようです。
>>282 レスありがとうございます。
クラスのインスタンス生成の概念がわかってないっぽいです。
自分のやり方だと確保する領域が固定だと
Gdiplus::Bitmap bitmap1(TEXT("C:\\WINDOWS\\winnt.bmp"));
という風にスタックに確保するのですが、
他の人は
Gdiplus::Bitmap*pBitmap1=new Gdiplus::Bitmap(TEXT("C:\\WINDOWS\\winnt.bmp"));
という風に確保する領域が固定でもnewで確保しているようです。
なぜそうするかは理解できません。
newを使いたくないなら無理やり↓みたいにスコープ作ればよいのでは。 { Gdiplus::Bitmap bitmap1(TEXT("C:\\WINDOWS\\winnt.bmp")); printf("%d\n",bitmap1.GetWidth()); }
286 :
281 :2009/03/09(月) 22:22:46
>>285 レスありがとうございます。
デストラクタのタイミングを制御する必要がある時意外でも、
たとえば、デストラクタのタイミングを制御する必要がなく、いっけんnewを使う必要が無いような時も
自分のやり方だと
Gdiplus::Graphics graphics1(hdc1);
という風にスタックに確保する場面で
他の人は
Gdiplus::Graphics*pGraphics1=new Gdiplus::Graphics(hdc1);
という風にnewで確保しているようです。
この理由がわかりません。
>>286 クラスのインスタンスでも、基本的には変数と同じ使用方法でいいと思うけどね。
#関数内でのみの使用、永続的な使用等で切り分け
わざとnewで確保するのは、明示的にdeleteを呼ぶことでそこでデストラクタが
実行されることを示したいからじゃない?
ま、別にこだわる必要はなし。
下手にnewばかりしてメモリリークさせるなら
>>281 の方が合理的なのは確か。
コンストラクタでGdiplusStartup呼んで、デストラクタでGdiplusShutdown呼ぶクラス一個つくって mainの頭に置こうぜ
>>286 サイズがデカいクラスをスタックにとりたくない場合はnewする場合はある。
Gdiplusがそこまでデカいかは知らんが。
290 :
デフォルトの名無しさん :2009/03/09(月) 23:04:02
> Gdiplusがそこまでデカいかは知らんが。 実装依存
Gdiplusの実装とか
>>281 のエラーの出るコードをコンパイル実行するとメモリリーク発生だな
何でだろ?
>>289 言われてみれば、他作クラスはサイズが分からんから
念のためにヒープの方がいいかもな
readprocessmemory関数を使いたくてVB2005ExpressEditionでプログラムを組んでみたのですが、 エラーが出て動きません。なぜでしょうか??いろいろググってみたけどわかりませんでした。 やりたいことは単にプロセスのメモリを読みたいだけなんですが・・・ 「AccessViolationExceptionはハンドルされませんでした。 保護されているメモリに読み取りまたは書込み操作を行おうとしました。他のメモリ が壊れていることが考えられます。」 Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hWnd As Long, ByRef lpdwProcessId As Long) As Long Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpszClassName As String, ByVal lpszWindowName As String) As Long Dim hProc As Long Dim PID As Long Dim threadid As Long hProc = FindWindow("Notepad", vbNullString) threadid = GetWindowThreadProcessId(hProc, PID) ←ここの処理でエラーになる
>>292 すでに
>>285 が答えてるだろ
bitmap1が関数の終わりで解放処理を行おうとするが
その時にはGdiplusShutdownでgdiplusの環境が破棄されてるから正常に終了できない
だからローカル変数のスコープを{}で狭い範囲に閉じ込めなければならない
>>294 大幅に間違ってる。とりあえず、リファレンスを見直せ。
HWND な変数に hProc なんて名前を付けるのはやめれ・・・
>>295 すまん、
>>282 がそのものずばりのこといってるんだな、俺、ダメポ
デストラクタが呼ばれる前にShutdownすれば、当然、メモリリーク出るわな
Gdiplus::GdiplusShutdown(gdiToken); でShutdownさているのに
プログラム終了時にGdiplus::Bitmap bitmap1のデストラクタ呼ぶんだからな
299 :
281 :2009/03/09(月) 23:48:25
>>287 >>わざとnewで確保するのは、明示的にdeleteを呼ぶことでそこでデストラクタが
>>実行されることを示したいからじゃない?
僕もそう思います。
>>288 それもいい方法だと思います。
>>289 newを使う理由が1つわかりました。ありがとうございます。
>>290 とりあえずスタックが壊れるほど大きくはなさそうです。
>>292 ,298
僕も282さんに聞くまで気付きませんでした。
>>293 慎重にやるならそれもいい方法ですね。
>>295 追加説明ありがとうございます。
>>293 他作クラスであってもスタック上に確保できるならサイズは調べられるだろ。
そうでないとそもそもコンパイル不能だ。
まあ、将来的に変更される可能性はあるが。
ちなみに手元の環境だとsizeof(Bitmap)は16で画像の実態は内部で保有してるポインタの先にある。
他人が作ったライブラリの初期化と後始末を同じ関数内でやるのは細心の注意がいるね
>>300 更に言われてみれば、まともなメーカーが提供してるクラスだと
確かに馬鹿でかいクラスのオブジェクトをスタックに積む、なんて
アホなクラスなんぞ無いはずだよな。。。
>コンパイル不能
StackOverflowってコンパイル時に分かるものだったっけ?
スタックにばかでかい配列取ろうとしたときは怒られるな
>>303 thx
警告レベルが低いせいかあまり見た記憶が無いな
今度試してみよう
ここは荒らしていいスレじゃなかったっけ
307 :
デフォルトの名無しさん :2009/03/10(火) 13:11:43
OSではなくソフトウェアから、パフォーマンス オプションの「パフォーマンスを優先する」に設定することは可能でしょうか?そのようなAPIをご存知の方いますでしょうか?
OSもソフトウエア
>>307 そういうAPIがあるかどうかは知らんが、力技でいくなら、レジストリ書き換えて WM_SETTINGCHANGE を発行すれば?
310 :
デフォルトの名無しさん :2009/03/10(火) 13:30:46
G(S)etPriorityClass
HKLM\SYSTEM\CurrentControlSet\Control\PriorityControl\Win32PrioritySeparation をレジストリAPIで適切な値に書き換えて再起動。
313 :
307 :2009/03/10(火) 13:54:40
ありがとうございます。レジストリ強制書き換えなら可能なのですね。APIでG(S)etPriorityClassでもできるのでしょうか?
システムの動作に関わるレジストリを勝手に書き換えるソフトか ウィルス並だな
315 :
デフォルトの名無しさん :2009/03/10(火) 14:03:32
>>314 お前みたいなクズはウィルスよりたちが悪いぜ。
316 :
デフォルトの名無しさん :2009/03/10(火) 14:17:00
WSHはCOMですか?
>>317 はい。API ではないのでスレ違いだと思われます。
ActiveScriptはぎりぎりこのスレの範疇にできるだろうけど、 WSHは外れていると思う。
ウィンドウのクライアント領域をドラッグしてウィンドウの位置を移動させたいんですが、ちょっとうまくいかないので質問。 WM_MOUSEMOVEでマウスボタンが押されていたらドラッグとみなし、SetWindowPosで前回位置との差分分移動としています。 しかし、これだとマウスが動くと同時にウィンドウがガタガタと元の位置辺りとマウス位置あたりに行ったり来たり を繰り返してしまって、とても汚いです。どういう風にやるとタイトルバーをドラッグした時のように綺麗に動くのでしょうか? ちなみにマウスの座標はクライアントでもスクリーンでもダメでした。
WM_NCHITTESTでHTCAPTION返せ
>>320 いい加減に書くとそうなる
(移動した時にWM_MOUSEMOVEが発生するので、WM_MOUSEMOVE→移動→WM_MOUSEMOVE→・・・を繰り返してしまう)
WM_LBUTTONDOWNでフラグ立てて、WM_LBUTTONUPで落とすような 処理が必要じゃないの?
知らない人はレスしなくていいです。
前回位置との差分じゃなくてWM_LBUTTONDOWNが来た時のカーソル座標と現在のカーソル座標との差分を使うんだよ。 ていうかこんなのググればサンプルがすぐ見つかるんだから深夜に糞スレで質問するぐらいなら自分で探しなよ。
330 :
デフォルトの名無しさん :2009/03/11(水) 12:02:18
case WM_LBUTTONDOWN: ::PostMessage( hWnd, WM_NCLBUTTONDOWN, HTCAPTION,i lParam); break;
#define i
333 はおそらく実際にコンパイルしてみたに違いないw
そんなもんコンパイルしなくても見ればわかるだろ JK
つーかこんな所に貼られたコードを安易にコンパイルして実行する奴なんて居るのか? 得体の知れないファイルを平気でクリックして実行するレベルだろ
>>337 このスレに貼られたコードの意味が分からない奴なんて居るのか?
むしろこのスレに貼られたコードの意味が分かる奴なんて居るのか?
342 :
339 :2009/03/11(水) 15:07:17
いや俺は.netしか使ったことないから分かってないよw
NCHITTESTだと、どのボタンが押されたかとか、自作ライブラリとの親和性が低いとかあるので
>>325 の方法で大方解決しました。ありがとうございました。
ところでGDI+の半透明描画や画像の回転機能を自分で作りたいんですが、あのライブラリは
ハードの機能を使ったりしているんでしょうか?自分でちまちまピクセルごとの計算をしたら
とてもゲームに使えるようなスピードにならない気もするんですが・・・
やってみたのか
やってみたのだ
これでいいのだ
まだやってないです やるとしたら、描画命令来るたびにロックするとかかな
>>348 ソフトウェア処理だけど一応MMX/SSEなどは使ってるみたい
まあゲームで使える速度じゃないのは言うまでも無いけど
____ / \ /\ キリッ . / (ー) (ー)\ / ⌒(__人__)⌒ \ < 何がアホなのか言ってみな | |r┬-| | \ `ー'´ / ノ \ /´ ヽ | l \ ヽ -一''''''"~~``'ー--、 -一'''''''ー-、. ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒)) ____ /_ノ ヽ、_\ ミ ミ ミ o゚((●)) ((●))゚o ミ ミ ミ /⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\ /⌒)⌒)⌒) | / / / |r┬-| | (⌒)/ / / // だっておwwwwwww | :::::::::::(⌒) | | | / ゝ :::::::::::/ | ノ | | | \ / ) / ヽ / `ー'´ ヽ / / バ | | l||l 从人 l||l l||l 从人 l||l バ ン ヽ -一''''''"~~``'ー--、 -一'''''''ー-、 ン ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
ほらな 答えられない
>>348 ぐぐ そうですか
バリバリフレームレート出まくってるゲームで描画が5割以上GDI+みたいなゲームってありますか?
GDI+入れて組むのめんどくてどんなもんなのかよくわからんのです。知ってる人いたらラッキーなんで教えてくださいよ先輩
>>353 妄想レスだがフレームレート上げたいゲームならDirectXを普通に使うんじゃない?
[環境]非MFCでWin32API(VC2005でC++)です。 [質問]画面に入りきらないテキストを描画して、スクロールしたら、 上の方の文章を消して、下の方の文章を表示するプログラムが組めません。 [どこまでできたの?] DrawText作ってテキストを表示。 スクロールするだけのWindow。 スクロールした値は取れるので、それをDrawTextに反映させたいのですが、 どうやればいいでしょうか?
素直にエディットコントロール使うんじゃだめなのか…
>>356 レスサンクス。
もっと、初期の段階だったらそれも考えれるのですが、、、ここの部分組んだらプログラム完成するんです、、、。
DrawTextの第4引数のRECT構造体の値があるんですが、
これって、マイナスの値入れるのは危険ですか?
RECT rc;
GetClientRect( hWnd, &rc );
rc.top -= 100;
GDI+の用途って画像ファイルの入出力とアンチエイリアスつきのベクタ描画ぐらいじゃね
360 :
357 :2009/03/11(水) 21:04:13
>>359 レスありがとん。
それを聞いて安心しました。
あとは、テキストのたての長さを割り出す作業だけでいけそうです。
ありがとうございました。
メモリDCに最初から全部描いておいて、スクロールの都度、必要な部分だけBitBltする手もあるぞ
早く数学を教えてください。 待て待て
CloseHandleの戻り値って確認してる? 正しいハンドルを渡してもエラーになる場合ってどんなとき?
::GetLastError()
366 :
デフォルトの名無しさん :2009/03/11(水) 23:38:41
368 :
デフォルトの名無しさん :2009/03/12(木) 00:49:05
プロパティシートで psp.lParam=(LPARAM)Data; とlParamに構造体 DATAを設定しているのですが、 受取先の、Windowでは死んでいます。うまく受け渡しが できません。 psp.pszTemplate = "IDD_D"; psp.pfnDlgProc = (DLGPROC)Function0; psp.lParam=(LPARAM)Data; hpsp[0] = CreatePropertySheetPage(&psp); memset(&psh, 0, sizeof(PROPSHEETHEADER)); psh.dwSize = sizeof(PROPSHEETHEADER); psh.dwFlags = PSH_NOAPPLYNOW; psh.hInstance = hInst; psh.hwndParent = hDlg; psh.nPages = 1; psh.phpage = hpsp; psh.pszCaption = "設定"; (HWND)PropertySheet(&psh); うまく受け渡すにはどうしたらいいでしょうか
Dataの型は DATA か DATA* か? 前者なら間違い
肝心の受け取り部分が書いてないが ((PROPSHEETPAGE*)lParam)->lParamにしてるか?
>>364 ディクス書き込みで、フラッシュ時に IO エラーが発生するとか、
ディスクフルになるとか。
>>371 ファイル書き込みは遅延書き込みありでキャッシュされているから、
CloseHandle()の戻り値では、アプリケーションからディスクI/O時の
エラーは検出されないと思う。イベントログに上がるだけでは?
キャッシュを書き戻す処理に関係なく、キャッシュとディスク上の配置は
マップ管理されていると思うので、ディスクフルはWriteFile()の戻り値で
エラーが返されるはず。
当然だが、オープンされていない間違ったハンドルを渡せばエラーが返る。
____
/_ノ ヽ、_\
ミ ミ ミ o゚((●)) ((●))゚o ミ ミ ミ
/⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\ /⌒)⌒)⌒)
| / / / |r┬-| | (⌒)/ / / //
>>366 そんなこと言うなよ。仲間だろ?wwwwwww
| :::::::::::(⌒) | | | / ゝ :::::::::::/
| ノ | | | \ / ) /
ヽ / `ー'´ ヽ / / バ
| | l||l 从人 l||l l||l 从人 l||l バ ン
ヽ -一''''''"~~``'ー--、 -一'''''''ー-、 ン
ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
ボタンの描画についての質問です。 グループボックスや、ラジオボタンが描画されるとき、文字列描画部分の背景色を透過することはできないでしょうか。 MSDNを読むとWM_CTLCOLORBTNはオーナードローのボタンでないと、意味が無いということで (実際無理でした) サブクラス化をして、WM_ERASEBKGNDを捕まえて何も処理せずにreturnしたり、 GetClassInfoEx → styleメンバに CS_OWNDC を OR演算 → 新しいクラス登録、その後 WM_CREATE でSetBkMode(hdc,TRANSPARENT)を試してみたりしましたが、どちらもできませんでした。 ボタンの描画自体はデフォルトの処理を任せたいのですが、何か方法はないでしょうか。
WS_EX_TRANSPARENTを指定してWM_CTLCOLOR〜でNULLブラシを返せば?
>>375 レス有難う御座います。
試してみましたが、変化が現れませんでした。
WM_CTLCOLORBTN or WM_CTLCLORSTATIC にて SetBakMode( hDC, TRANSPARENT); return (HBRUSH)GetStockObject( NULL_BRUSH);
STATICコントロールは WM_...STATIC で透過させることが出来ますが、 BUTTONコントロールはどうもうまくいかないみたいです・・・。 素直に諦めることにします。
普通に可能なんだが・・・ ああ馬鹿なのね
面倒だから煽らなくていいです
ラジオボタンやグループボックスの背景なら
>>375 >>377 が書いてる方法で透過するだろ。
前にそういうコード書いたことあるし。
>>384 新しくプロジェクトを始めて、ダイアログベースではないウィンドウ上で試してみたら、成功しました。
リソースから作ったダイアログ上のタブコントロールの上にこれらのBUTTONコントロールを配置した時に、見栄えが悪かったため
最初の質問をさせていただきましたが、グループボックスをリソースからではなく、
WM_INITDIALOG内にて、親ウィンドウをタブコントロールとして生成したところ、やりたかったことを実現することが出来ました。
レスしてくれた方々、有難う御座いました。
>最初の質問をさせていただきましたが、グループボックスをリソースからではなく、 まさか コントロールIDが IDC_STATIC のままだったとかいうオチじゃないだろうな。
いや、IDは数字を直指定しているのでそれはないです。
389 :
デフォルトの名無しさん :2009/03/12(木) 22:44:12
ブラウザでページを開いて、 今どの入力項目にカーソルがあたっているかを調べる方法ってありますか?
>>390 俺もわかんねけどDOM構造調べてカーソルチェックするしかないんじゃね?
IEで、現在選択されている文字列をクリップボードにコピーさせる操作を、 別プロセスから行うのはAPIで可能ですか?
>>392 SendMessage()でいいんじゃね?
激しくメンドクサイが・・・
394 :
デフォルトの名無しさん :2009/03/13(金) 08:18:47
>>391 なるほど ところでそのカーソルのチェックってどうやったらできますか?
>>394 気持は分かるがそこまでだ。DOMはWin32じゃない。
その辺のHTMLか言語スレでやってくれ。
Windowを列挙して座標から該当するWindow(コントロール)を探す。 その名前とHTMLを照合する・・ってぐらいしか思いつかないな。
アドウェアの開発を手伝ってやることはないと思うんだ
どちらかというとカード番号とかIDを奪うスパイウェアっぽい
フォームに自動入力するのは作ったことある フォームに入ってるデータも隠しを含めて全部読めたけど カーソル位置なんか考えないな
>>396 バカ、IEはウィンドウレスだからコントロールは無いよ
このスレウザイのが張り付いてるな 自分の仕事と思ってるのか知らんが一番迷惑 面白いレスしようと思ってワクワクしてこのスレ開いてんのかな? 一番寒いのに
>>402 知らないならレスしないで下さい。寒いだけです。
さぶ
>>402 知識の還元してるんでしょ?喜ぶことで煽ることではないと思うが
ただし、的を射る場合に限るw
409 :
デフォルトの名無しさん :2009/03/13(金) 13:41:40
おいおい、せめて引きこもりピザは2chで役に立てwww
413 :
デフォルトの名無しさん :2009/03/13(金) 14:28:32
あるプロセスが走っているか調べるAPIはありますでしょうか? 具体的にはタスクマネージャーが動いているか知りたいです。
>>413 EnumWindowsでタスクマネージャWindowを探すのどうよ?
416 :
413 :2009/03/13(金) 14:32:21
ちがいます。
417 :
413 :2009/03/13(金) 14:35:09
正解です。
418 :
413 :2009/03/13(金) 14:35:48
ちんちんが大きくなるのですがどうしたらいいですか?
>>389 =
>>413 ?
タスクマネージャからプロセス隠蔽してブラウザで入力した個人情報を盗むスパイウェアを作ってるんですね
次はrootkitの作り方を質問してくるのかな
何でこのスレは直ぐにスパイウェアだとか、そんな悪い方向に持ってくの?
あとはpsapiとかかね
悪い方向のソフトを作る目的で質問する馬鹿がいるから。
psapiってプラットだったっけ? 昔めんどくさくてフリーのEXE拾ってきた覚えたあったなぁ
>>413 結局ナニ作るの?そろそろ教えてくれないよこれ。
日本語でおk
タスクマネージャーを監視する目覚ましと時計(MP3ネットラジオ付)です。
まだ目覚まし粘着君いたんだw すげーしつこいw
やばいwww天才発見www その発想は無かったわwwwwwwwwwwwwwwwwwwwwwww 出来ればなぜにタスクマネージャー見るのか教えて。 煽りではなく、後学のために。どんな用途に使えるの?
/ ̄ ̄\
/ _ノ \
| ( ●)(●)
. | (__人__)____
| ` ⌒/ ─' 'ー\
. | /( ○) (○)\
. ヽ / ⌒(n_人__)⌒ \
>>429 ヽ |、 ( ヨ |
/ `ー─− 厂 /
| 、 _ __,,/ \
433 :
デフォルトの名無しさん :2009/03/13(金) 16:05:03
434 :
デフォルトの名無しさん :2009/03/13(金) 16:07:08
>>429 タスクマネージャ監視の使い道を考えてみた。
裏でゴリゴリ悪いことしてるプログラムが、タスクマネージャでCPU使用率を見られて
マークされないように、タスクマネージャが起動している間は大人しくする。
>>437 そんな面倒な事しなくても適宜Sleep(n)でも入れて休ませとけばいいだろ
タスクマネージャを騙すっていえば定期的にSetProcessWorkingSetSizeを呼んでメモリ使用量を少なく見せるとか有名だな
午後キチ、今日は楽しかったろ
>>419 結局ナニ作るの?そろそろ教えてくれないよこれ。
チャットなら外でやれ
カタカタ || ̄ Λ_Λ ||_(Д`; ) 「なに?このスレ・・・」 \⊂´ ) ( ┳'
soine
446 :
デフォルトの名無しさん :2009/03/14(土) 09:16:01
Win32APIで、MessageBoxみたいに一発呼び出しで 1行テキスト入力だけして入力した文字列を返すようなダイアログを出すAPIってないもんでしょうか?
ないもんです
EntryDialog
ttp://www.gamedev.net/community/forums/topic.asp?topic_id=458740 #include <windows.h>
#include <string>
#ifdef UNICODE
typedef std::wstring InputBoxStringType;
typedef LPWSTR InputBoxCharPointerType;
typedef wchar_t InputBoxCharType;
#define InputBoxString(x) L##x
#else
typedef std::string InputBoxStringType;
typedef LPSTR InputBoxCharPointerType;
typedef char InputBoxCharType;
#define InputBoxString(x) x
#endif
LRESULT CALLBACK InputBoxWndProc(HWND WndHandle, UINT Message, WPARAM wParam, LPARAM lParam){ static InputBoxStringType *Results = 0; static HWND InputLabelHandle = 0; static HWND InputHandle = 0; switch(Message){ case WM_NCCREATE:{Results = (InputBoxStringType*)((CREATESTRUCT*)lParam)->lpCreateParams;break;} case WM_CLOSE:case WM_DESTROY:{PostQuitMessage(0);break;} case WM_COMMAND:{ int NotifyCode = HIWORD(wParam); int ControlId = LOWORD(wParam); HWND ControlHandle = (HWND)lParam; switch(ControlId){ case 1001:{InputHandle = ControlHandle;break;} case 1002:{if(InputHandle == 0 || !Results){PostQuitMessage(0);break;} InputBoxCharPointerType Buffer = new InputBoxCharType[256]; GetWindowText(InputHandle, Buffer, 256); *Results = Buffer;PostQuitMessage(0);break;} case 1003:{if(InputHandle == 0 || !Results){PostQuitMessage(0);break;} *Results = InputBoxString("");PostQuitMessage(0);break;} }break;} } return DefWindowProc(WndHandle, Message, wParam, lParam); }
static InputBoxStringType ShowInputBox(HWND OwnerWindowHandle, const InputBoxStringType &InputLabel, const InputBoxStringType &InputText, const InputBoxStringType &Title){ WNDCLASS WndClass; HWND DialogHandle = 0; HWND InputLabelHandle = 0; HWND InputHandle = 0; HWND OkButtonHandle = 0, CancelButtonHandle = 0; InputBoxStringType Result = InputBoxString(""); ZeroMemory(&WndClass, sizeof(WNDCLASS)); WndClass.hbrBackground = GetSysColorBrush(COLOR_3DFACE); WndClass.hIcon = LoadIcon(0, IDI_APPLICATION); WndClass.hCursor = LoadCursor(0, IDC_ARROW); WndClass.hInstance = GetModuleHandle(0); WndClass.lpszClassName = InputBoxString("InputBox"); WndClass.lpfnWndProc = InputBoxWndProc; RegisterClass(&WndClass); int X = 0, Y = 0; int Width = 0, Height = 0; RECT TempRect; GetWindowRect(GetDesktopWindow(), &TempRect); Width = (int)((float)(TempRect.right - TempRect.left) * 0.25f); Height = 150; X = ((TempRect.right - TempRect.left) / 2) - (Width / 2); Y = ((TempRect.bottom - TempRect.top) / 2) - (Height / 2);
DialogHandle = CreateWindowEx(0, InputBoxString("InputBox"), Title.c_str(), WS_OVERLAPPEDWINDOW | WS_VISIBLE, X, Y, Width, Height, OwnerWindowHandle, 0, GetModuleHandle(0), (LPVOID)&Result); int LabelX = 5, LabelY = 5; int LabelWidth = Width - 10, LabelHeight = 24; InputLabelHandle = CreateWindowEx(0, InputBoxString("STATIC"), InputLabel.c_str(), WS_CHILD | WS_VISIBLE, LabelX, LabelY, LabelWidth, LabelHeight, DialogHandle, 0, GetModuleHandle(0), 0); int TBoxX = 5, TBoxY = 29; int TBoxWidth = Width - 20, TBoxHeight = 24; InputHandle = CreateWindowEx(0, InputBoxString("EDIT"), InputText.c_str(), WS_BORDER | WS_CHILD | WS_VISIBLE, TBoxX, TBoxY, TBoxWidth, TBoxHeight, DialogHandle, (HMENU)1001, GetModuleHandle(0), 0); int OkBtnX = (Width / 2) - 75, OkBtnY = Height - 60; int OkBtnWidth = 75, OkBtnHeight = 24; OkButtonHandle = CreateWindowEx(0, InputBoxString("BUTTON"), InputBoxString("Ok"), WS_CHILD | WS_VISIBLE, OkBtnX, OkBtnY, OkBtnWidth, OkBtnHeight, DialogHandle, (HMENU)1002, GetModuleHandle(0), 0); int CancelBtnX = (Width / 2) + 25, CancelBtnY = Height - 60; int CancelBtnWidth = 75, CancelBtnHeight = 24; CancelButtonHandle = CreateWindowEx(0, InputBoxString("BUTTON"), InputBoxString("Cancel"), WS_CHILD | WS_VISIBLE, CancelBtnX, CancelBtnY, CancelBtnWidth, CancelBtnHeight, DialogHandle, (HMENU)1003, GetModuleHandle(0), 0); MSG Message; ZeroMemory(&Message, sizeof(MSG)); while(Message.message != WM_QUIT){ if(PeekMessage(&Message, 0, 0, 0, PM_REMOVE)){ TranslateMessage(&Message); DispatchMessage(&Message);}} return Result; } #undef InputBoxString int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int){ InputBoxStringType Result = ShowInputBox(0, L"Please enter your name:", L"Unknown", L"Name Entry"); MessageBox(0, Result.c_str(), L"Your name is:", MB_OK); return 0; }
453 :
デフォルトの名無しさん :2009/03/14(土) 10:33:42
>>446 さすがにないかー
>>449 ありがとう。これぐらいのコードでいけるんですね。
C++じゃないけど、参考にさせていただきます
こんな糞コード見たのは久しぶりだ
つーか、スレに長いコード載せるな
#ifdef UNICODE で分岐さすんなら、 最初っからTCHAR使えばいいんじゃね?w
猫わかレベルを超えてるなw
目が痛い
> Note, I am not the best Win32 programmer, so there may be a better way to handle this. It does work though.
と本人自ら言ってるコードを貼るな馬鹿
>>449
461 :
デフォルトの名無しさん :2009/03/14(土) 14:50:17
画面のプロパティのデザインで指定したフォントを取得する API ってありますか?
463 :
446 :2009/03/14(土) 16:33:58
盛り上がっているところなんなのですが、 WSHでInputBoxという関数があり、これを使うと一発でよべました。 Win32APIで、と書いたのですが、Ruby だったのでwshでもよかったので・・・ 前提条件書き忘れてスマソ お騒がせいたしました・・・。
>>460 わろす
>I am not the best Win32 programmer
なんて言ってるけど
ただのプログラマとしても相当アレだw
よし。ちょっとそこに正座をだな(ry まあいいけどねw
>>463 >WSHでInputBoxという関数があり、これを使うと一発でよべました。
がAPIだとあいやーーー><の世界へGoになるんだって実感したんじゃね
>>462 無駄に長すぎ。
昔InputBox互換関数を作った事あるがA/W両対応して (ダイアログプロシージャ内で切り替える) 50行程度で出来たが。
とりあえず、DialogBoxIndirectParamを使ってるのにわざわざCreateWindowExしまくるなら
予めリソースエディタで作っておいたダイアログリソースのバイナリを埋め込んで使えばいいかと。
フォントはMS Shell Dlgを設定しておけばいいし。
static const BYTE templ[] = { ... };
DialogBoxIndirectParam(hinst, (LPCDLGTEMPLATE)templ, ...);
つーか実質WM_COMMANDのIDOKでGetDlgItemTextするだけだろ 今時APIオンリーでプログラム作ってる人ならこの程度は直ぐに作れるよ 作ってみたとかいちいち自慢しなくておk
リソースなしで作ってるから長いだけであって。 コントロールサイズの調整が必要だからそれだけで終わりじゃないさ。
作れ→作った→作ってみたとかいちいち自慢しなくておk おまえどんな鬼畜だよ
だからリソースバイナリを使えって話なんだろ
お前はもうちょっと可読性を考えたほうがいい
たしかになw 鬼畜すぐるw
MS UI Gothic決め打ちしてる糞コードで可読性とかw
ダイアログボックス用のフォントってどうやって取得するの?
98とかの環境だと、 "MS ゴシック"てしないとダメだよねw
違った。メッセージボックス用のフォントだ。
無いフォント指定しても勝手に別のフォントが使われるだけだから問題はないだろ・・・
>>470 だってさー、5分とかからないレベルのプログラムなのに4時間でコレだぜ?
>>468 今時APIオンリーでプログラム作ってる人
ってよ趣味グラマじゃないのか?プログラマにそんなのいるのか?
今からカウントダウン
キタ━━━━(゚∀゚)━━━━!! wktk
否定されて悔しかった
>>462 が「お前が作れ」と言い出したようですね
>>485 逃げたーーーーーー!!!!!!!!!!!wwwwwwwwwwwwww
作れないのなら最初から私には無理ですと言えよ
∧_∧ ( ・∀・)ワクワク ( ∪ ∪ と__)__)
そろそろ5分だ
作ってみた。 BOOL InputBox(HWND hwnd,INPUTBOXPARAMS* param) { return(DialogBoxParam(hwnd,MAKEINTRESOURCE(IDD_INPUT),hwnd,InputBoxProc,(LPARAM)param)==IDOK); }
もうだめだこのスレ
ポカーン
>>462 やっぱgoto使った方がすっきりかけるよな
なんで洗脳されてgoto嫌う奴いるんだろうな
場合によってはネスト深くなるだけなのに
俺も作ってみた(VB用) Public Function MyInputBox(prompt, title, default) MyInputBox = InputBox(prompt, title, default) End Function 'テスト Debug.Print MyInputBox("input?","test","default")
My(笑)
所詮は作れといわれてすぐに作り始めたと思い込むだけの馬鹿だったか・・・
ほれ。 BOOL InputBox(LPTSTR buf, int siz) { FILE*fp; AllocConsole(); fp = fopen("CONIN$", "r"); if(fp){_fgetts(buf, siz, fp);fclose(fp);} FreeConsole(); return!!fp; }
で、汚いソースコード晒した
>>462 はどこ行った?
>>477 SystemParametersInfoでSPI_GETNONCLIENTMETRICS
一緒に渡すNONCLIENTMETRICSの中のlfMessageFont
>>502 お前がコードを晒さないから呆れてどっか行ったんだろう
www
>>502 お前がコードを晒すのを楽しみにして待ってるよ
>>509 これ以上のコードは書けないという意思表示と解釈した
何故こんなに
>>462 がたたかれてるのかwwwwwww
お前ら愛しすぎだ
>>511 他人にコード晒せと指図するならまずは自分の書いたコードをまともな物にしてから言えという事だ
>>513 他人のコードを叩くならまずは自分の書いたコードを晒すべきだろw
馬鹿かお前は
自分で書けないから他人に書かせようとしてんのかwwwwwww
暇だなあおまいら
別に作らなくてもいいのにわざわざ作る ↓ コードが糞で荒れる ↓ お前も作れと逆ギレ ↓ 俺以上のコード書ける奴はいないと自己陶酔 ←今ここ
飴と鞭は大事だ
┗0=============0┛ \===========[_|_|_|_|_|_|_|_|_|_|_|_|_|_]===========/ /三三三三三三三三三三三三三三三三三三三三\ 0 │ |∞∞∞ |::|∞∞田田∞∞|::|∞∞∞ | ::| 0 [二] | ::| |::|┏━━━━┓|::| | ::l [二] ◎○@※◎○@※. |□|.│ |┌┬┐ |::|┃ Vista ┃|::| ┌┬┐| ::|. |□| ◎○@※◎○@※ ii|iiii|iiii|iiii|iiii|iiii|iiii|iiii| `)三(´| ::|├┼┤ |::|┃ ∧_∧ ┃|::| ├┼┤| ::|`)三(´il|iiii|iiii|iiii|iiii|iiii|iiii|iiii| @※◎○@※◎○ | ::| | ::|└┴┘ |::|┃(´Д` ) ┃|::| └┴┘| ::| | ::| @※◎○@※◎○ ii|iiii|iiii|iiii|iiii|iiii|iiii|iiii|li┏━━━━━┓|::|┃(. つ┃|::|┏━━━━━┓ li|iiii|iiii|iiii|iiii|iiii|iiii|iiii|l ◎○@iiii※◎○@ ┣┳┳┳┳┳┫|::|┗━━━━┛|::|┣┳┳┳┳┳┫ ◎○@iiii※◎○@ ii|iiii|iiii|iiii|iiii|iiii|iiii|iiii|l ○ ● ∫∬∫∬ ● ○ ii|iiii|iiii|iiii|iiii|iiii|iiii|iiii|li ○○ ●● iiiii iii ii iiii ●● ○○ [ ̄ ̄] [ ̄ ̄] ( ̄ ̄ ̄ ̄ ̄) [ ̄ ̄] [ ̄ ̄] |_○_| .|_○_| |_____| |_○_| .|_○_| ∧_∧ ∧_∧ ∧_∧ ∧_∧ ∧_∧ ∧_∧ ∧_∧ ∧_∧ ∧_∧ (NT3.1)(NT3.5)(NT3.51)(,,XP ) (2003)(2008)(Warp4)(, )(, ;) NTの徒花がめでたく散りますた。 すンげぇメシウマwww
自慢気に汚いコード晒せば叩かれるぐらい想像できるだろ 「素晴らしい!とても綺麗なコードですね!有り難く使わせて貰います!!」 なんてレスが付くとでも本気で思ってたのか?
そんなことのために上げたわけでもないのに 何を妄想を語ってるんだ?
汚いコードしか晒せないから 叩かれるのがいやなので晒しません という意思表示と見た
>>522 API信者は妄想でのみしか語れない、そして、基地外である。覚えておくように
>>520 見事な基地外っプリ
きれいなコードというやつを見せて欲しいな
お前の入っているコタツから延びてるだろ
>>525 ここのスレ住民は妄想でいつも綺麗なAPIのみコードを書いている
それは自分の美学を追及した綺麗なコードだ
妄想かいw
529 :
446 :2009/03/14(土) 19:41:43
マジごめんなさいヽ(`Д´)ノ ウワァァン!!
( ´∀`)σ)`Д´)ノ ウワァァン!!
そもそも
>>462 のコードって別に汚くはないよな?
フォントとボタンのキャプションが決めうちな点で問題はあるが
それは別に汚いと表現することでもないし
汚いというより間違ってる
> そもそも
>>462 のコードって別に汚くはないよな?
自画自賛乙
CancelにもBS_DEFPUSHBUTTONしてあるしな
>>462 なんかスキル浅い人が色々やってみましたって感じ
てかフォントやコントロールのサイズ決め打ちするぐらいなら
>>467 の方法でいいと思うが
もう駄目かもしれんね
メッセージとエディットボックスのサイズは決めうちしてないけど
とりあえずみんなコードで語れ
つーか横幅は固定でいいだろ。しかも字幅の計算がなんかアレだし。
固定はまずいだろ・・・
GetTextExtentPoint以外に何かいい方法あるのん?
>>544 WSHやVBのInputBox使ったこと無いのか?
MessageBoxが伸びるからInputBoxも伸ばしただけだが
ダイアログなのにGWLP_USERDATAとか使っちゃってるし しかもLONG_PTRじゃなくてLONGにキャストしちゃってるし SM_C?SCREENで画面サイズ計算しちゃってるし 猫プログラミングぐらいのレベルだな
画面サイズはメジャーを使ってモニターに押し当てないと測れないな。
MAX_WIDTHっておい、どう見てもMIN_WIDTHの間違いだろw で、MessageBoxと違ってmaxは考慮しないのな WUXGAとかで開発してるとnetbookで使った時えらい事になりそうだw
ダイアログは別のやつ使うんだった気がしてたけど調べるの忘れてたわ。 >GWLP_USERDATA LONGになってんのは単純なミス。 画面サイズは何を使えば満足? マルチディスプレイはよく分からん。 どう見てもMIN_WIDTHの間違い。 >MAX_WIDTH MessageBoxってmax考慮してたっけ? 画面外にまで突き抜けてた気がするけど。
WM_SETFONTした後のGetDCでフォントが選択されてる保証ってあるの?
何ていうか、見た人のスキルで評価の分かれるコードだw 「どこがダメなんだ?」と思った人は猫わかレベルの人だろう
勉強になるなあ
ウィンドウの中のある座標に向かってクリックメッセージを送るAPIってありますか? ボタン風に書いてあるメニューボタンがあるんですが、実際は絵なので ハンドルが取れないのです。
クリックした際の処理を自分で走らせれば?
>>556 だってさ、最小コードはこれだろ?50行なんて余裕でしょ
INT_PTR CALLBACK InputBoxProc(HWND hDlg,UINT Msg,WPARAM wParam,LPARAM lParam)
{
switch(Msg){
case WM_INITDIALOG:
return SetWindowLongPtr(hDlg,DWLP_USER,lParam),TRUE;
case WM_COMMAND:
switch(GET_WM_COMMAND_ID(wParam,lParam)){
case IDOK:
{
LPTSTR p = (LPTSTR)GetWindowLongPtr(hDlg,DWLP_USER);
GetDlgItemText(hDlg,IDC_TEXT,p,*(int*)p);
}
case IDCANCEL:
EndDialog(hDlg,GET_WM_COMMAND_ID(wParam,lParam));
}
}
return FALSE;
}
すみません、説明不足でした。 外部アプリのメニューを操作したいのですが、そのメニューボタンが すべて絵なんです。
>>559 リソース使ってる点は無視するにしても
メッセージの長さにウィンドウを合わせる処理がないのでは・・・
>>560 何か怪しいことに使おうとしてるんじゃないのかね
>>560 WM_LBUTTONDOWN じゃだめなの?
>>559 自信満々に出してきたコードがこれでは…
>>561 別にメッセージの長さに合わせる必要性が無いし、
リソース使ってるのに問題でもあるのか?
フォント決め打ちよりはマシだろ
てか、メッセージを設定する部分はどこ行った
>>561 メッセージを表示するコードがないんだから、長さを合わせる以前の問題だろうw
だから
>>559 は最小コードだって
これに肉付けしていっても50行ぐらいで十分収まるだろってこと
リソース使えばそりゃ
>>462 だって短くなるし
ちゃんとした比較にならないのでは
リソースもフォント決め打ちじゃないの?
いや、
>>556 の「50行・5分で作れるのすげぇ」レスを受けて5分で書いてみただけだし
もろもろ考慮されてるか?
API使いならリソースなんて使わないんじゃないか
リソースはソース配るのが面倒だな
577 :
560 :2009/03/14(土) 21:41:02
>>562 そ、そんなんじゃないです。
>>563 カーソルを移動させてってことですか?
他のソフトで目的の外部アプリを操ってるのがあって
どうやってるのかなってのと、自分もそういうのを作る
必要があったので。
mouse_event, SendInput
> メニューボタンがすべて絵 最近こういうのホント多いよなぁ。動画編集ソフトとか特に。 使い勝手が良ければまだしも、キーボード操作を全く受け付けなかったりとか。 もう素直に標準のコントロール使ってくれよ・・・。
もはやあらゆるものをDirect3Dで描画する時代に入ったんだよ
2D(GDI)のハードウェアアクセラレーションはRADEONもGeForceも既に搭載しとらんだろ XPはもうロートルなんだから7600GSやX1650でも積んでればいいんだ
moudamedakonosure
自プロセス内の全スレッドのレジスタの値を取得するAPIは無い?
インラインアセンブラで取ってろ
587 :
560 :2009/03/15(日) 07:23:43
>>578 ありがとうございます。
ググってみたら出来そうな気がします。
レジストリエディタでキーを作成すると、日本語Windowsだと(標準)という名前でエントリが1つ 常に存在してるようなのですが、このエントリを読み書きするにはどうすれば いいのでしょうか?よろしくお願いします。
588です。解決しました。MSDNに書いてありましたね。すみません。 名前にNULLまたは空文字列を設定するんですね。
>>585 関数呼び出し自体がレジスタを変えるというのに
どうやってそんな API を作ればいいんだよ
592 :
デフォルトの名無しさん :2009/03/15(日) 12:12:58
CONTEXT 構造体にアクセスしたいんじゃね?
GetThreadContextじゃねーの?
espやeipの値が変わる分は補正すればいいということか
GetThreadContextを呼んだ時点でeaxやedxは確実に変わってるだろが
だから補正しろつってるだろ。
CONTEXT構造体がローカル変数なら 特に何ともないと思うけど・・・
頭悪いのが数名混じってるねぇ GetThreadContextの実体が呼ばれるまでにAPIがレジスタを書き換えてしまってるでしょうに GetThreadContext: push ebp mov ebp, esp push dword ptr [ebp+0C] push dword ptr [ebp+08] call dword ptr [NtGetContextThread] ... NtGetContextThread: mov eax, 00000055h mov edx, 7FFE0300h call dword ptr [edx] ...
不確定性原理の話じゃないのかw
そんな糞実装になってんのか?
つーかインラインアセンブラ使えばいいのにAPIてw あ、VBプログラマーの方でしたかサーセンwww
>>600 糞なのはお前だ
少なくともeax,ecx,edxは「関数側で自由に書き換えていいレジスタ」だ
そんな事も知らんのか
動いてる他スレッドなんか無意味だろ API呼出から戻ってくる間にもスレッドが動きつづけていてレジスタの値が刻一刻と変わる
>>602 それが何か関係あるか?
レジスタのスナップショットを取りたいという目的を達成できてないじゃないのよ
お前がアホなのもよくわかった
つーかGetThreadContextはコンテキストスイッチが発生して退避した時の状態を返してるだけだろ。 レジスタを取得するAPIとか、頭悪すぎ。
なんだ、目的すら違うのか
610 :
デフォルトの名無しさん :2009/03/15(日) 16:12:04
レジスタのスナップショット(笑) エミュレータでも作ってろ馬鹿
基本情報技術者レベルの知識すら無い人がなんでこのスレにいるのかねぇ・・・
システムコールも良く分かってないくせに糞実装とか 思わず微笑んじゃう
たとえば、 CのライブラリとWin32のAPIで同じ機能の関数があった場合 システムまで問い合わせる分APIのほうが遅くなるの?
うん
同じ機能だと、Cのライブラリ関数も中でWin32のAPIを呼んでいたり するんだよね
オウム返ししか出来ないアホは黙っててね
IPCの分遅くなるだろな
数日前から変なのが一匹住み着いてるな たぶん目覚まし君が帰ってきたのだろう
>>615 は超楽しそうな奴と思うんだが、なっ、だろ
馬鹿はレスしなくていいよ
例えば、strcpyとlstrcpyAなら、 前者のほうがコンパイラの裁量でインライン展開される可能性がある。 そうでなくとも、strcpyのほうが速かった気がするが、 最近計ったわけではないからよく覚えていない。 あと、この2つはNULL渡したときの挙動が異なった気がする。 いい加減なことばかりですまん。
最終的にシステムコールになるけど、それがWinの場合APIだから 最終的にはAPIが呼ばれるだろう。
>>623 同じようにlstrcpyAもインライン展開の可能性ないのか
>>623 インライン展開じゃなくてCompiler Intrinsicだろ。
strcpyくらいアセンブラで書けよ
コンパイラは境界や長さによって生成する機械命令を変えたりして 性能の最適化を図るんだけど
今時strcpyなんて使わねーよ
目覚まし君の人気に嫉妬 誰か俺にもわかるように経緯教えてくれ
■ おすすめ2ちゃんねる 開発中。。。 by FOX ★
このスレを見ている人はこんなスレも見ています。(ver 0.20)
気軽に「こんなソフトありませんか?」 Part.104 [ソフトウェア]
【名無し限定】暇なので話しませんか?3925 [メンヘルサロン] <====
メンヘルに気合を入れて出入りしているのが、
>>620 の言う変なのか
>>633 strcpy使わないなら何使ってんだよ
_tcscpy
strcpy_s若しくはStringCchCopyにきまってるだろ 今時無条件にstrcpy使っちゃう人はJavaや.NETにした方がいいよ
>>636 windowsならStrsafe.hインクルードだろうが
ただ、俺はwin専業じゃないからstrcpyもよく使っている
ん? std::string 使うって話じゃなかったのか?
クロス環境だとstrcpyは現役だなぁ それと、_s系って結局ラッパじゃねーの?
フツーに_tcscpy_sだと思うけど。
VS2005以降じゃねーかw
std::stringってなんでc_str()をthrow()にしなかったんだろ おかげで肝心な所で微妙に使い難い
>>644 c_strが呼ばれた瞬間に'\0'を付加する実装も可能にするためだと思う。
_tcscpy_s
>>645 でも c_str() って O(1) って条件なかったっけ?
メモリの再確保したら条件満たさない気が
なぜソースを読まない
Win32APIスレでSTLの話するなクズ共
651 :
デフォルトの名無しさん :2009/03/15(日) 23:13:11
STLもAPIの一部だから別にいいじゃん
651 名前:デフォルトの名無しさん[] 投稿日:2009/03/15(日) 23:13:11 STLもAPIの一部だから別にいいじゃん 651 名前:デフォルトの名無しさん[] 投稿日:2009/03/15(日) 23:13:11 STLもAPIの一部だから別にいいじゃん 651 名前:デフォルトの名無しさん[] 投稿日:2009/03/15(日) 23:13:11 STLもAPIの一部だから別にいいじゃん 651 名前:デフォルトの名無しさん[] 投稿日:2009/03/15(日) 23:13:11 STLもAPIの一部だから別にいいじゃん 651 名前:デフォルトの名無しさん[] 投稿日:2009/03/15(日) 23:13:11 STLもAPIの一部だから別にいいじゃん 651 名前:デフォルトの名無しさん[] 投稿日:2009/03/15(日) 23:13:11 STLもAPIの一部だから別にいいじゃん 651 名前:デフォルトの名無しさん[] 投稿日:2009/03/15(日) 23:13:11 STLもAPIの一部だから別にいいじゃん 651 名前:デフォルトの名無しさん[] 投稿日:2009/03/15(日) 23:13:11 STLもAPIの一部だから別にいいじゃん 651 名前:デフォルトの名無しさん[] 投稿日:2009/03/15(日) 23:13:11 STLもAPIの一部だから別にいいじゃん 651 名前:デフォルトの名無しさん[] 投稿日:2009/03/15(日) 23:13:11 STLもAPIの一部だから別にいいじゃん 651 名前:デフォルトの名無しさん[] 投稿日:2009/03/15(日) 23:13:11 STLもAPIの一部だから別にいいじゃん 651 名前:デフォルトの名無しさん[] 投稿日:2009/03/15(日) 23:13:11 STLもAPIの一部だから別にいいじゃん 651 名前:デフォルトの名無しさん[] 投稿日:2009/03/15(日) 23:13:11 STLもAPIの一部だから別にいいじゃん 651 名前:デフォルトの名無しさん[] 投稿日:2009/03/15(日) 23:13:11 STLもAPIの一部だから別にいいじゃん 651 名前:デフォルトの名無しさん[] 投稿日:2009/03/15(日) 23:13:11 STLもAPIの一部だから別にいいじゃん 651 名前:デフォルトの名無しさん[] 投稿日:2009/03/15(日) 23:13:11 STLもAPIの一部だから別にいいじゃん
まあ、Win32API質問箱ってなってるけど実際にはWindows上でのプログラミング全般のスレだから。 STLとかMFCとか.NETの話題でも全然okなんだよね。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで
テンプレが古いままなんだよ。 次スレ立てるやつは修正しとくように。
653 名前:デフォルトの名無しさん[sage] 投稿日:2009/03/15(日) 23:25:13 まあ、Win32API質問箱ってなってるけど実際にはWindows上でのプログラミング全般のスレだから。 STLとかMFCとか.NETの話題でも全然okなんだよね。 653 名前:デフォルトの名無しさん[sage] 投稿日:2009/03/15(日) 23:25:13 まあ、Win32API質問箱ってなってるけど実際にはWindows上でのプログラミング全般のスレだから。 STLとかMFCとか.NETの話題でも全然okなんだよね。 653 名前:デフォルトの名無しさん[sage] 投稿日:2009/03/15(日) 23:25:13 まあ、Win32API質問箱ってなってるけど実際にはWindows上でのプログラミング全般のスレだから。 STLとかMFCとか.NETの話題でも全然okなんだよね。 653 名前:デフォルトの名無しさん[sage] 投稿日:2009/03/15(日) 23:25:13 まあ、Win32API質問箱ってなってるけど実際にはWindows上でのプログラミング全般のスレだから。 STLとかMFCとか.NETの話題でも全然okなんだよね。 653 名前:デフォルトの名無しさん[sage] 投稿日:2009/03/15(日) 23:25:13 まあ、Win32API質問箱ってなってるけど実際にはWindows上でのプログラミング全般のスレだから。 STLとかMFCとか.NETの話題でも全然okなんだよね。 653 名前:デフォルトの名無しさん[sage] 投稿日:2009/03/15(日) 23:25:13 まあ、Win32API質問箱ってなってるけど実際にはWindows上でのプログラミング全般のスレだから。 STLとかMFCとか.NETの話題でも全然okなんだよね。 653 名前:デフォルトの名無しさん[sage] 投稿日:2009/03/15(日) 23:25:13 まあ、Win32API質問箱ってなってるけど実際にはWindows上でのプログラミング全般のスレだから。 STLとかMFCとか.NETの話題でも全然okなんだよね。 653 名前:デフォルトの名無しさん[sage] 投稿日:2009/03/15(日) 23:25:13 まあ、Win32API質問箱ってなってるけど実際にはWindows上でのプログラミング全般のスレだから。 STLとかMFCとか.NETの話題でも全然okなんだよね。 653 名前:デフォルトの名無しさん[sage] 投稿日:2009/03/15(日) 23:25:13 まあ、Win32API質問箱ってなってるけど実際にはWindows上でのプログラミング全般のスレだから。 STLとかMFCとか.NETの話題でも全然okなんだよね。
最初にこのスレが立った頃はWin32アプリを作るにはWin32APIを使うのが主流だったし、 SDKのみで開発する人も珍しくなかったが、時代は変わったんだよ。 今やSDKのみで開発するのは一部の奇特な人だけで、大抵はMFCやWTLとか、.NETのP/Invokeから APIを直接コールしないと出来ないような事をする時ぐらいしかAPIなんて使わない。 だから、時代と共に「Windowsでプログラミングする人へ向けた総合的なスレ」へと変わってきたわけだ。
だからってSTLはないだろ。 C++0xではstd::stringでも&s[0]できてAPI関数にも使えるぜ、とかなら辛うじて雑談の範疇だろうが。
別にそういうのはそういうのでスレを立てればいいだけの話 別に立てるなとは板ルールにも書いてない
>C++0xではstd::stringでも&s[0]できてAPI関数にも使えるぜ いまもふつーにやってた
661 :
560 :2009/03/16(月) 00:17:28
mouse_event, SendInputを調べてテストしてみたんですが、 mouse_eventはカーソルを目的の位置まで移動させてから クリックとかする。 SendInputはウインドハンドルに向かってキーやマウスの挙動を送る ってことであってます? カーソル動かさずに目的の座標に向かってメッセージを送ることって可能でしょうか? 私が座標って言ってるのは相手のハンドルが取れないから、ボタンもどきの ところに左クリックのメッセージを送ればいいんじゃないかと思い込んでるだけです。 何かヒントあったらください。 お願いします。
>>657 >一部の奇特な人だけ
....
だから基地外みたいなのか沸いてるのか、納得
663 :
560 :2009/03/16(月) 00:47:58
ふと思ったんですが、SendMessageで出来るんですよね。 Lparamに座標入れても何も変化がないのは何で? 俺だけ?
じゃあ俺は奇怪な部類の人間だったんだな
今時SDKonlyで作ってる奴なんて単なるアホだろ 無印95でも動きます的な互換性重視のソフトなら兎も角
>>665 通常は98以上が多いけど、95が入らないのは何が原因なんだろ?
GUIでもないのにMFC使う奴とか脳みそ膿んでるとしか思えないよな
>>664 >今時SDKonlyで作ってる奴なんて単なるアホだろ
違うと思うよ
宗教的信念をもってプログラムを作っている奇怪な人
宗教は確かにあるなあ
スキルの無い奴黙って.NETかHSPでもやってろよ より低水準がいいに決まっている
最近はSDKオンリーで作ってる人の方がスキル低かったりするからなぁ 平気でリークしまくってたり間違ったコード書いてたりするし この前のInputBox作った人とか、テンプレにある●の所とかがいい例
だ・か・ら スキルの無い奴は高水準言語使えと
もうだめだこのスレ
スキルが無いからAPIで作ってるんじゃないの? スキルのある人はMFCでもWTLでもVCLでも.NETでも何でも使えるから 開発効率と実行効率を考慮した上で取捨選択するでしょ
>>661 間違ってる。
だから、ボタンもどきが乗ってるウィンドウに WM_LBUTTONDOWN じゃだめなの?
そんな泥臭いことをやるなら、WM_LBUTTONUPも送ろうよ。
MFCから入っても いずれWin32APIを理解しないとならなくなる
679 :
560 :2009/03/16(月) 08:27:12
>>676 sendomessageで WM_LBUTTONDOWN を送ったりもしたんだけど、
反応がないんです。
ボタンもどきが5個並んでいて、これをまとめて一つのウィンドウに
なってるみたいでハンドル自体は取得できます。(SPYで調べた。)
SendMessage(Modoki_HND, WM_LBUTTONDOWN ,0,LPARAM(50,50))
みたいに送ってるんですが、反応がないんです。
LPARAMの座標ってハンドルの領域の座標になるんですよね?
何度もすみません。
デスクトップ座標じゃねーの? 知らんけど
>>675 うん。その結果大抵はSDK/DDKベースになるんだよ。
みょーなwrapperがあると、少し標準的でないことをやろうとするとやたらと手間がかかるんだ。
wrapperは薄い方が実は使いやすいんだよ。
もっともいわゆるOLE関連や、マルチメディア関連を取り扱うときはATL/WTLなんかも使うよ。
>>679 そもそも、WM_LBUTTONDOWNでチェックしていない可能性もある。
ちゃんと、WM_LBUTTONUPも送った?
いずれにしても、まずSendInputで動作することを確かめてから次へ進んだ方がいいですよ。
MFCやWTLの凄い所は使っているうちに自然とAPIの関数が覚えられる
全然、凄くない
>>679 L_Down & Upでは動かないこともある。
そういう時はBM_CLICK送ってみ
>>681 >マルチメディア関連を取り扱うときはATL/WTLなんかも使うよ
作る物にもよるがそこは低水準APIを使って欲しいところ
マルチメディア関連でATL/WTLなんて使うか? 精々DirectXでCComPtr使えて便利だねーぐらいじゃねーの?
>>681 の「マルチメディア関連」ってDirectXの事なのか?
Multimedia APIのどこでATL/WTLを使うのか考えてしまっただろw
689 :
デフォルトの名無しさん :2009/03/16(月) 14:15:25
初心者スレから誘導されました クライアント領域のみをキャプチャーする方法ってありますか? C言語です 環境はWindowsXPです よろしくお願いします
自分しか分からない用語を並べられても・・・ クライアント領域って何だよ。 自分のプログラムで作ったウィンドウのクライアントエリアか? キャプチャーとは画面に出てる部分を静止画で取得したいとかそういうこと?
691 :
デフォルトの名無しさん :2009/03/16(月) 14:25:17
クライアント領域って普通使わないんですか? そうとは知らず失礼しました はい。自分で作ったウィンドウのクライアントエリア(?)を、静止画で取得したいと言うことです 画像の形式は問いません
>>689 Win32APIということなら
キャプチャしたいウィンドウのウィンドウハンドルが分かっていれば
GetDCでクライアント領域のデバイスコンテキストを取得できるから
後はBitBltなり何なりでキャプチャ先に領域の画像をコピーすればいい
使い終わったらReleaseDCするのを忘れずに
BitBltは何て読んでる? やっぱビットブリット?
ビットブロックトランスファー
block transferだからブリットって読み方は最初違和感があったけど慣れた ビットブリットでたいていの相手に通じるし
なんとなく、ビットビーエルティーと呼んでた
ビットブロック転送でごわす
Vistaで、シェル名前空間POP3拡張を作っていますが、全部を書かないといけないのでしょうか。 MailBox\1\body.txt (メール本文) MailBox\1\添付.jpg (あれば添付ファイル) MailBox\2\body.txt (2件目本文) 具体的には、このような拡張を作っていて、ファイルリストを表示するところが完成しました。 次に、アイコンの取得、コンテキストメニューの表示、ダブルクリックで開くなどを組み込もうと調べて、 それらしい関数(SHCreateDefaultContextMenu, SHCreateDefaultExtractIcon)を 今回実装したIShellView.GetUIObjectOfから使ってみたのですが、アイコンは真っ白だし メニューは何も表示されませんでした。 (メニューは自分でIShellExtInit,IContextMenuを実装したら動きました) エクスプローラの機能をお手軽に使うことはできないのでしょうか。
699 :
デフォルトの名無しさん :2009/03/16(月) 15:14:12
2Dで、ひぐらしみたいなエフェクト実装したいんだけど ガラスが割れるようなエフェクトを表示する関数ある?
意味がわかりません。
意味がわかりません。
702 :
デフォルトの名無しさん :2009/03/16(月) 15:18:51
>>699 をエスパーしてみた
ようは、FFなんかで戦闘に突入するときに使われてるようなエフェクトを発生させる関数が無いか聞いてるんだろ?
誰か、病院呼べ
病院は呼べません。
call hospital
705 :
デフォルトの名無しさん :2009/03/16(月) 15:28:29
マジレスばっかwwwww
呼ぶだけならできるよ
病院が来てくれることもあるしな
エスパーなら余裕
709 :
デフォルトの名無しさん :2009/03/16(月) 15:49:31
あるわけないだろ
711 :
デフォルトの名無しさん :2009/03/16(月) 16:26:39
712 :
デフォルトの名無しさん :2009/03/16(月) 16:30:56
ひぐらしもFFも知らないけど、質問者は単純なワイプとかのエフェクトは書けるのかい?
714 :
デフォルトの名無しさん :2009/03/16(月) 16:42:44
かけないからAPIありますかって聞いてるんですよ。馬鹿ですか?
素直に「ありません」と書いて、お引取り願おうぜ
クソガキが帰宅する時間帯になると途端に糞レスが増えるねぇ
>>714 ゲームSDK とかで探せ
Win32API には無い
718 :
デフォルトの名無しさん :2009/03/16(月) 16:45:49
馬鹿はレスしなくて結構です
719 :
デフォルトの名無しさん :2009/03/16(月) 16:52:58
721 :
デフォルトの名無しさん :2009/03/16(月) 17:13:42
ここってもう
>>720 みたいなクズしかいなくなったのかな・・・
723 :
デフォルトの名無しさん :2009/03/16(月) 17:21:19
>>721 お前が一番クズだから余計な心配しなくていいよ。
724 :
デフォルトの名無しさん :2009/03/16(月) 17:30:17
終わったなこのスレ・・・もうクズしかいない
はい わかりました 二度と来ません すみませんでした
ゲームのエフェクトがWIN32APIにあるかもしれないという発想は斬新だな とても褒められた発想じゃないが
ここだけじゃなく他でもだいぶ増えたよ PCで目玉焼きは作れますか的な質問
時期的な問題だろ… 来月になりゃ平常に戻る たぶん
PCの普及に伴いやってる事に知識が追いついていない プログラミングの知識じゃ無く全般的な知識が
>>728 GPUの上に卵乗せれば作れるんじゃね?
それじゃ
>>728 が馬鹿みたいじゃないかwwwwwwwwwwww
なんで?
あ、ごめん。馬鹿だったんだ。
例えがヘタクソだな
例えば?
PCはやろうと思えば何でも出来る万能の機械でプログラムは何でも作れる魔法の言葉 APIや関数やライブラリはそれが簡単に出来る何でも詰まってる便利なもの マイクロソフトが用意したものなんだから何でもかんでも関数一つで実現できる ぐらいの認識と予想
そこまで気にして例えた訳じゃないんだけどなあ そんなに悔しかった?
>>737 必死すぎワロタwwwwwwwwwwwwwwwwwwwwwwwwwww
sageてない馬鹿の認識を推測したんだがタイミングが悪かったようだ
go to postal
743 :
デフォルトの名無しさん :2009/03/16(月) 18:34:18
>>741 単に図星だったやつが煽ってるだけだろ、気にスンナ
今日も基地外スレ化したのか
SDKに慣れることが出来なかった奴らが異常にファビョっててワロタ
DVDを取り出すことはできるようになったのですが、DVDのふたを閉じるにはどうすればいいのでしょうか。 お教えください。
おまいらほんと仲がいいなw 見ててほのぼのするわw
>>750 出てきたトレイを押すかドライブについているボタンを押してください
SDKできないやつがデバイスドライバ開発に すんなり以降できるとは思えない。 デバドラは未だにDDK主体だし。(WDKとかでてきてるが)
指定したポートがestablishedかどうかを調べるにはどうしたら良いのでしょうか
755 :
デフォルトの名無しさん :2009/03/16(月) 21:12:42
上のは失敗してるし コンセントの代わりにUSBから電源取ってるだけじゃねぇか
DDKとか飛躍しちゃってるアホがいるな
ハイエンドGPUをOCしてぶん回せば目玉焼きぐらい余裕だろ 真夏のマンホールの蓋でも焼けるんだし
759 :
デフォルトの名無しさん :2009/03/16(月) 23:14:30
DialogBox → EndDialogで A→B→A→… ダイアログボックスをループさせているんですが 23回ぐらいでダイアログが閉じてしまうんですけど 何が問題なんでしょうか?
762 :
デフォルトの名無しさん :2009/03/17(火) 03:41:51
>>761 LRESULT CALLBACK ダイアグBOX1
case IDC_B1:
EndDialog(hDlgWnd, IDOK);
hInst = (HINSTANCE)GetWindowLong(hDlgWnd, GWL_HINSTANCE);
DialogBox(hInst, MAKEINTRESOURCE(IDD_A2), hDlgWnd, (DLGPROC)DlgProcAI2);
break;
LRESULT CALLBACK ダイアグBOX2
case IDC_OK:
EndDialog(hDlgWnd, IDOK);
if(MAX > num)
{
hInst = (HINSTANCE)GetWindowLong(hDlgWnd, GWL_HINSTANCE); num++;
つづく
763 :
デフォルトの名無しさん :2009/03/17(火) 03:43:59
つづきです DialogBox(hInst, MAKEINTRESOURCE(IDD_A), hDlgWnd, (DLGPROC)DlgProcA); } else monum=0; break; MAX=最大数(500とか) num=現在の回数。 画面にIDD_AのダイアルグBOXがあります。 ボタン B1を押しすと、ダイアログBOXが閉じてBOX2が表示される ボタン OKを押すとダイアログBOX2が消えてBOX1が表示される 23回ぐらいやるとダイアログが閉じてしまいます。 何が原因なんでしょうか?
MAKEINTRESOURCE(IDD_A2) ↑全角 つーかそもそもコンパイル出来てるのか?w
LRESULT CALLBACK ダイアグBOX1 case IDC_B1: 出来てる訳がない罠
> 何が原因なんでしょうか? 脳内コードを脳内コンパイルしてるからだろ
今日も荒れまくりのよかーん
ageて荒れるネタを投下する基地外が常駐してるからな
769 :
デフォルトの名無しさん :2009/03/17(火) 08:09:58
どうやら分かってもらえなかったようですね 質問し直しますね ダイアログボックスをリソース追加で A、B二つ用意しました そのダイアログボックスに ボタンを作って 指定回数代わり番こに表示させたいのですが 教えてください
DialogBoxの戻り値チェックしてGetLastErrorしたら?
EndDialog したダイアログを親にしてるから
> 指定回数代わり番こに表示させたいのですが 何を表示させるの? > 教えてください 何を教えてほしいの? 目的語が抜けすぎ 小学生でももう少しマシな文章が書けるだろw
774 :
デフォルトの名無しさん :2009/03/17(火) 09:23:50
日本語を読めない馬鹿はレスして戴かなくて結構です
言ってる意味がわからんけど クローン=mspaintとまったく同じ だったら実現できないわけがない
私にはできませんが、世の中にはできる人もいるでしょう
780 :
デフォルトの名無しさん :2009/03/17(火) 10:26:19
テンプレに「宣伝するな」なんて書いてないんだから別にいいだろ 少なくとも、宣伝すらできない(=何も作れない)馬鹿には文句言われたくないね
>テンプレに「宣伝するな」なんて書いてないんだから別にいいだろ その理屈はどうかな。たいていの映画館には焼肉するなと書いてないから 館内で焼肉をしてもいいことになるぞ それはさておき776は余計な説明を省くために最初の2行を書いたのだろう
というか宣伝にすらなってないだろ mspaintにも劣るペイントソフトなんて
785 :
デフォルトの名無しさん :2009/03/17(火) 13:16:33
>>785 お前さ、ここ最近ずっと粘着してる基地外だろ?
頼むから消えてくれないかな
ここまで自演
788 :
デフォルトの名無しさん :2009/03/17(火) 13:54:30
また始まったか
他人が書いたソースってなんであんなに汚く見えるんだろうね。 自分が書いたものは既に理解できているから、 纏まっているように、散らかっていないように見えるけど、 いつもと違うエディタで開いてみたりすると、やっぱり、 見易くも無い。フツーに、入り組んで散らかってるように見える。
次の独り言をどうぞ
ば、、ぼくは、
うんこを漏らしました><
次の自演をどうぞ
自演ど
次の患者さんどうぞ
>>776 こんなのよくC+SDKで作る気になったな
本物のペイントですらMFC使って手抜きしてるのにw
つーかペイントってソースコード公開してなかったのか?
ワードパッドは公開してるみたいだが
うんこのくせになまいきな
まあペイントそのものはMFCの無い16bitのころからあったけどな。 囲みツールはリージョン、テキスト入力は入力中は別ウィンドウ作ってるよ。
そうですか。
16bitの頃はペイントブラシじゃなかったか? 95を初めて入れた時に実行ファイル(pbrush.exe)だけ残っててワロタが
すいません、ありがとうございました。
805 :
デフォルトの名無しさん :2009/03/17(火) 18:58:34
質問させてください マウスフックするプログラムを作っていて マウスでカーソルを移動させようとしても画面上のカーソルは移動しないようにしたいのです WM_MOUSEMOVEを取得してなかったことにしようとしてもうまくいかず 悩んでいます。 どのメッセージを取得し、どのような処理をすれば マウスの移動入力をなかったことにできるでしょうか?
トロイ作るの?
フックの類の話題は荒れる元なので禁止
ローレベルマウスフックなら握り潰せるんじゃなかったっけ
荒れる話題は禁止とか言うやつって馬鹿なの? そんなこと言ってると最終的には「Win32APIの話題は荒れるので禁止」って結論になるでしょうに
ならんだろ 馬鹿か?
うん
今日も基地外いっぱい来たんだね
ようクズ
もうだめだこのスレ
>>805 フィルタドライバを作ってみてはいかが?
818 :
808 :2009/03/17(火) 23:21:26
おれは無視?
フィルタドライバ以外は無視でおk
実行ファイルのアイコンを自前の.icoファイルのアイコン画像にしたいのですが windowsクラスの wc.hIcon=loadIcon(hInst,"アイコンファイル名"); とやってみましたが、何も変わりませんでした。 アイコン設定するサンプルプログラムとか公開してるサイトありますか?
821 :
805 :2009/03/17(火) 23:41:19
みなさん、様々なレスありがとうございました。
>>808 さんのアドバイスで
先ほどやっと希望の動作ができました。
ありがとうございます。
>>820 リソースIDの一番小さなアイコンにすればおk
> アイコン設定するサンプルプログラムとか公開してるサイト むしろそれを公開してないWin32APIのサイトを教えてくれw
今日の昼もキチさんたちがんばってね
>wc.hIcon=loadIcon(hInst,"アイコンファイル名"); これはツッコむところなのか?
重隅
LoadImageの間違いだな
828 :
820 :2009/03/18(水) 09:08:47
LoadImageでやってみたら ウィンドウの左側に自作アイコンが表示されてました でもexeファイルの画像は変わりませんでした VC++EE2008じゃ できないっぽいですね ありがとうございました。
リソースコンパイラはEEにも付属してるから ちょっと工夫すりゃできるよ
どう見たってリソースを分かってないだろ
831 :
デフォルトの名無しさん :2009/03/18(水) 10:43:13
wc.hIcon=loadIcon(hInst,"アイコンリソース名");
EEなんて使ってないでStandard以上を買え 金が無いならバイトでもして買え
別にSandardなんて買わなくてもeVC4でもインストールすれば済む話なのに
拾って来たサンプルのアイコンだけ差し替えればいい
MyClass::SetHook() の中で SetWindowsHookEx(WH_CALLWNDPROC, MyHookProc, NULL, GetCurrentThreadId()); してローカルフックしてみたのですが、MyClass::MyHookProc() の中で this を使うには、 どうしたらいいでしょうか。 SetWindowLongPtr で GWL_WNDPROC のときは、ATL::CStdCallThunk でいけるっぽいですが。
え?ローカルなら別に・・・
グローバルに置いておけば良いだけだろjk
すいません呼び出し元のコンテクストで実行されると思い込んでいました。
SetWindowsHookEx用のthunkを作るという解決策もある
インスタンス複数でローカルフックしてもグローバル?
thunk作れっていわれて作れるものなのか、あれx86のコード手書きみたいなものじゃ
アセンブリ知ってりゃ作れるだろ
>>837 がどの程度のスキルか知らんが
まあ、クラスのメソッドを直接コールバックにできるthunkとか作っとけばstaticを経由しなくて済むし便利だけどな。 難点は、CPUに依存してしまうのとデータ実行防止に気をつける必要があるぐらいだが、 後者はATLを使ってるなら割と簡単に解決できた。
ローカルフックなんだろ? なんでそこまで難しく考えるのか分からんw
個々のインスタンスのメソッドであるフック関数でそれぞれの this を取得する方法だから、 ローカルフックかどうかに関係なく、SetWindowLongPtr と同じ問題なんじゃないかと思ったのですが。 map のグローバル変数に入れるにしても、何をキーにしたらいいのかなと。
ウィンドウハンドルから、そのコントロールがエディット系(キャレットが表示され文字を打ち込める)であるか どうかを知る方法はありますか? クラス名EDITかどうかは取得できるんですが、その他のクラス名だと判別できません…。
849 :
デフォルトの名無しさん :2009/03/19(木) 15:41:12
うんこしてくる
GetClassEX
IsEditable(HWND hCtrl);
SCROLLBARをサブクラス化したらコンテキストメニューが出なくなったんだが・・ CallWindowProc丸投げなのに、何で?
SCROLLBARをサブクラス化したからでしょ。
あー。これで規定動作なの? 何か腑に落ちない気がしたから訊いたんだけど それで正常ってんなら気にせず続きを書く事にするわw トン
>>855 クリックする前にURLをよく読みましょう
>>855 そんな方法があったのか
知らなかったよd
久々に2chらしいレスを見た
こわくて見れない
せめてtinyurlを噛ませよw
>>859 URLがアレなだけで内容は至って普通だよ。
絶対信じないw
質問です API
NO CARRIER
ファフナーやりたくて10年ぶりにパチ屋へ。 後ろから打ち方教えてもらいながら打ったけど 仕組みが難しくて説明されてもうまく対応できなかった。 結果は諭吉が同化されて終わり。 ついてきてくれた家族に「スリルがあって面白かった」と言ったら 「スリリングだったのはこっちだ!あれは不慣れな人間が打つ台じゃない」とのこと。 懲りたからもうやらない。 パチ化で認知度上がったのは嬉しいんだけど もっと敷居の低い台にして欲しかった。
プログラムやってると、パチンコとかゲームって糞に思えないか? スレチだがw
869 :
デフォルトの名無しさん :2009/03/21(土) 18:05:12
お前がゴミなんだよカス
>>868 クリエイター側の視点で見えてくるものがあるからな
「遊ばされてる」感覚が出てくるともう遊べない
ゲームとかパチンコのRomに使われる技術はとても凄いと思うが、 結局forで回して、画像出して、当たり判定すると思うと不毛。
>>872 それはプログラムをやってるからじゃなくて
ゲームが面白くない年頃になっただけの話だな
おまえらは暇な時なにしてる? 2chで火病してるぐらいか
875 :
デフォルトの名無しさん :2009/03/21(土) 18:49:12
>>873 腕前とか関係のない単なる乱数に一喜一憂してられるか?
歳の問題じゃないと思うぞ
>>875 まぁ、ゲームの楽しみ方は人それぞれだからね
そういう楽しみ方ならプログラムやってると面白くなくなるかw
877 :
デフォルトの名無しさん :2009/03/21(土) 18:57:08
>>875 ちょっと分かる
ゲームなんて、所詮文字の集まりだしね
エンカウントしたとき、さっきのエンカウントから10歩くらいだから乱数は……
とか無意識に考えてたり
すごいエフェクトとか見ても、ここはこうやって……
ああ、なるほど。とか、演出より、どう再現するかばっかり考えちゃったり。
感動のラストとかも、このタイミングで、操作を奪って……
x sec待機して……
とか、プログラムでどうやってるかを、考えちゃってもう駄目だ
職業病って奴かな
ゲーム == 乱数 みたいな図式で語られてもな。乱数無関係なゲームも腐るほどあるわけで。
うちの会社にもいるけどね。 給料じゃ食ってゆけないとか言いながら 月十何万も玉入れで捨て続けてるやつ。
>>879 ソウト屋ならsharewareでも作ってもうけろって言ってやれ
ゲームだってユーザー入力が乱数と見なせるだろ
>>877 うはwよく分かるw
グラの凄いゲームとか見ても、何万ポリで動いてんだとか、法線ベクトルどうやってんだとか・・・
orz
ネット対戦でチェスでもやってろ
884 :
デフォルトの名無しさん :2009/03/21(土) 19:32:32
お前らようするに知ったかぶりってことなんですね。わかりました。
糞餓鬼の知ったかぶりは見ていて痛々しい
スレ違いということにいい加減気づけよ・・・
春休み始まったんだっけ
888 :
デフォルトの名無しさん :2009/03/21(土) 19:42:29
888
雑談スレなんだからスレ違いなんて無いよ
アンチも知ったかの糞餓鬼だろ 仲良くしろよ
↑ここまで糞餓鬼の自作自演 ↓ここから糞餓鬼の自作自演
アンチも知ったかの糞餓鬼だろ 仲良くしろよ
仲良くできないから糞餓鬼だろ それすらわからん低脳は糞餓鬼以下の脳だな
>>893 / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
/ ̄ ̄ ̄ ̄\ / 仲良くできないから糞餓鬼だろ
( 人____)< それすらわからん低脳は糞餓鬼以下の脳だな
|./ ー◎-◎-) \______________
(6 (_ _) ) カタカタカタ
| .∴ ノ 3 ノ ______
ゝ ノ .| | ̄ ̄\ \
/ \__| | | ̄ ̄|
/ \___ | | |__|
| \ |つ |__|__/ /
/  ̄ ̄ | ̄ ̄ ̄ ̄| 〔 ̄ ̄〕
| | ̄
パチやってる人間って勝った時の記憶しか残らないんだろな
違う。そういう人間しかのめり込まない
裏ROMってなんなんですか?
爆音と派手なネオンでトランス状態になってリラックスして依存症になるという説もあるが
以前、絵で描かれたメニューボタンにクリックのメッセージを送る 質問をした560です。 その後、皆さんのおかげで何とかできたんですが、そのメニューを 隠すことが出来て、そうなるとhiddenとなって送れないっぽいんです。 送る方法ってないですか? よろしくお願いします。
>>897 パチンコ等のROMハック品。正規品よりもギャンブル性が強くなるようにプログラムを改造してある(らしい)。
ゲーマーならプレステのMODチップのような物、携帯好きなら白ロム、
PC自作ユーザーならマザボやキャプチャ or RAIDカードのハックBIOSとかといえば分かるかと。
描かれてないだけなら押せるのかもしれないが イベントごと無効にされてたら叩こうが喚こうが動かないんじゃないかね
>>899 ゲームを自作プログラムで自動操作したいだけだろ?もう諦めろ。
903 :
560 :2009/03/21(土) 23:31:29
違いますよ。 CADソフトのメニューをキーボードから操りたいんですよ。 で、実際そういうことが出来るフリーソフトがあるんですが、 CADのバージョンアップでちょっとそのフリーソフトが イマイチ合わなくなってきて自作できないかと。 そのフリーソフトはボタンもどきが表示されていなくても 有効だったのでどうしてるのかなって事です。
元があるならSpyしてみるなり逆汗するなりしてみればいいだけじゃねーの(ホジホジ
CADソフトの名前教えれ どっかに商品HP無いの?
そのフリーソフトとやらを逆汗するか作者にゴルァすればいいだろ
もうさUWSCでいくね?遠隔操作。それともQTPとか
もうだめだこのスレ
spyでいいだろ
つーかキーボード操作を受け付けないCADソフトの会社にゴルァすればいいだろ
キーボード操作が全く出来ないソフトなんて糞餓鬼がVB使って5分で作った屑ソフトだけにして貰いたい Tabキーすら反応しないソフトとか見るとよくそれで売り物にできるなと思ってしまう 欠陥住宅みたいな物だろ
あなたはこう言いたいのですね 金返せ、と でもその文句は開発会社に言うべきでここで愚痴っても仕方ない
バカ、キーボード操作に対応するとLogicoolとMicrosoftから圧力を受けるんだよ。
ポインティングデバイスが売れなくなって困るのはワコム
タブオーダーめちゃくちゃだったりアクセスキーが無かったりするアプリは結構あるな。
「ドラえもんとか、実際無理だろ」 のび太「なぜドラえもんは嘘をついたんだ?」 ヘリコプター飛び回ってるな・・・
>>907 画像を貼り付けたボタンもどきには対応していないって書いてある。
>>918 フリーの遠隔ツールでは、ボタンもどきも出来ると書いてある。
つまり、UWSCやSendMessage()でいけるだろボケ
920 :
デフォルトの名無しさん :2009/03/22(日) 17:09:10
ヘ(^o^)ヘ ok. |∧ / / (^o^)/ If you are confident in /( ) what you can do everything you wish, (^o^) 三 / / > \ (\\ 三 (/o^) < \ 三 ( / / く I would destroy your fuck'n fantasy.
IPアドレスが有効な物かを調べるAPIってありますかね?
"有効"の意味は?
有効とは?
IPアドレスとして利用可能な物かどうか?ですね 127.0.0.1はおkですが1270.0.1だとだめだとかそういうののチェックは作るしかないですかね?
winsock関数から適当なの選ぶか、自分で作るかだろうかね、inet_addr()とか。
gethostbynameにIPアドレス文字列を渡して ヌルポ以外が返ってきたら有効
JPEGやPNGを壁紙に指定できるAPI教えてください。 自前でBMPに変換して設定しないと駄目なんですかね。
お使いのOSについてマイクロソフトのサポートにご相談下さい
アクティブデスクトップ 【Active Desktop】 Internet Explorer 4.0が持つ機能の一つ。 Windows 95のデスクトップにWebページを表示し、JavaアプレットやActiveXコントロールを埋めこむことができる技術。 Active Channelを使ってデスクトップの隅に常にインターネットからの最新情報を流したり、 スクリーンセーバーにWebサイトを指定することもできる。 Windows 98/2000以降のWindowsにはInternet Explorerが統合されたため、標準でこの機能が利用できるようになっている。
アクティブデスクトップってXPかVistaで無くなったのじゃなかったか?
LPHOSTENT test1; const char * aip = "127.0.0.1"; test1 = gethostbyaddr(aip,sizeof(aip),AF_INET); gethostbyaddrを使おうと上記コードで試したのですが(WSAStartupは正常に済ませています) エラーコード11004が帰ってきます、YahooのIPアドレスで試してもだめでした 何が問題なんでしょうか・・・。
sizeof(aip)・・・って何のサイズを取得してるのよ。
>>932 ヒント1:スレ違い
ヒント2:ググレ
ヒント3:C再勉強
WinSockはWin32APIじゃないのか・・・ごめんなさい
そしてバイナリに変換してないIP渡しても何の意味もないだろう・・・
多少のスレチくらい大目に見る、自分はそんな大人になりたい inet_addrでいいんじゃね?
質問です リストビューを使うソフトをこさえてます LVS_OWNERDATAスタイルを指定して数千行のデータも楽々で「コモンコントロールこりゃ便利」と思ってますが ひとつだけ気になることが・・・ スクロールすると「キュィーーーン」とパソコンから痛そうな音がします これって私のLVN_GETDISPINFOに対する処理が重過ぎるんでしょうか? それとも気にするな普通のことだ、でしょうか?
CPU負荷が増すとノイズ撒き散らしてサウンドが拾うって話かね。 気にすんな。
>>939 データを数万行にしてみるとさらにキュイーンとなってちらつきが酷くなりました
LVS_OWNERDATA、自作の仮想リストと違って便利なぶん若干重いみたいです
気にしないことにしました。ありがとうございます
> これって私のLVN_GETDISPINFOに対する処理が重過ぎるんでしょうか? そうだよ。 数百万件でも余裕で扱える設計になってるのに数千程度で破綻しない。
SHGetPathFromIDListの反対派内の?
APIは無かったと思うけど確証は無いので他の人お願い COMでいいのならIShellFolder::ParseDisplayName()じゃなかったかなあ
XP以降でいいならSHParseDisplayName
さすがお前ら頼りになる
9x/2000にも対応するならILCreateFromPath
できました。
948 :
デフォルトの名無しさん :2009/03/27(金) 18:58:24
Win32のApacheをサービスとしてではなく通常アプリとして 起動した場合コマンドラインウインドウが表示され、 そのウインドウでCtrl+Cを押すとApacheが終了するのですが、 このCtrl+Cを押す動作を他のプログラムから行いたい場合 どうすればいいのでしょうか? Apacheを終了させたいです。 お願いします。
WM_DESTROY
950 :
デフォルトの名無しさん :2009/03/27(金) 19:37:35
WM_QUIT
WM_CLOSE
WM_SHUTDOWN
>>948 VisualTestでフォーカス取得後にCtrl+C押下アクション
GenerateConsoleCtrlEvent()
>>948 Ctrl+Cを押す係の人を雇って
Win32APIさんと名付ければいい
これってサービス登録してnet stopしろよってマジレスは無しなの?
>>953 が正解、か?
けどWin32と関係ないな
自殺するためのApache拡張を書いて、特定のURLにアクセスしたら発動するようにする。
Apacheの脆弱性を見つけてそれを利用する
等幅フォントのみを列挙するWinAPIをご存じ無いでしょうか?
すみません、p2で書き込んでしまいました
ぐぐれよw EnumFonts
そら?
カーネルオブジェクトの名前の競合は、 ある程度オリジナルの長い名前にするだけで、後はあきらめるしかないんでしょうか 内容が違うファイルマッピングオブジェクトをプロセス間で共有しようとした場合に名前が重複していると 明らかに破綻しませんか?
>>967 UuidCreate とかを使って同一マシン上では一意に識別できるGUIDを生成すればおk
今度はファイルマッピングオブジェクトの名前の識別が難しくなるので
イベント使って貰ってくるようにする
969 :
967 :2009/03/28(土) 10:17:11
ありがとうございます。確かにこれでできそうです。 がんばります。
衝突しないような名前を付けとけば済む話だろ
>>970 その通りです
で、手段の一つとしてAPIが提供されていると
衝突しない名前をハードコーディングしとけと言ってるんだよ
うんこが勝ち
他のアプリのスレッドIDを取得する関数を教えてください。 SetWindowsHookExの最後の引数に目的のアプリのスレッドIDを 指定するにどうすればいいかわからないのです。 よろしくお願いします。
975 :
デフォルトの名無しさん :2009/03/29(日) 01:12:06
おまんこゲットできますか?(´;ω;`)
977 :
デフォルトの名無しさん :2009/03/29(日) 06:27:20
うめ
さっさと次スレ立てろよ
まだ早いよw 990行ったら立てるからw
GetWindowThreadProcessId
ome
うめ
A あっという間に P プー太郎 I 因果な派遣 どう見ても LoseAPI です
うめ
梅
またフックか
世の中捨てたもんじゃないな
APIを使ってみたいのですが、何を使えばいいでしょうか??
何をって? SDKとか?
APIを使ってみたいならAPIを使えばよろしい
UnmapViewOfFileは一度だけ呼び出せばいいのか、MapViewOfFileを呼び出した プロセスそれぞれでUnmapViewOfFileを呼び出すのか、どちらでしょうか。
それぞれ。
999
1000
1001
API
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。