- 1 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 22:20:46 ]
- スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんやお姉さんたちが答えてくれるかも。 過去スレ、関連リンクは>>2-10くらい。 ■注意 ・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。 ・日本語版MSDN Online Libraryは不完全です。英語版(msdn2.microsoft.com/library/)の利用推奨。 ・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。 ・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで - Win32API質問箱 wiki wiki.livedoor.jp/program1/d/FrontPage Win32API質問箱 Build66 pc11.2ch.net/test/read.cgi/tech/1210775622/
- 152 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 12:21:13 ]
- フック
- 153 名前:デフォルトの名無しさん [2008/06/12(木) 14:41:05 ]
- >>152
詳しく
- 154 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 14:53:39 ]
- クック
- 155 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 15:06:35 ]
- ドゥ
- 156 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 15:16:20 ]
- 訳:かまってほしいな
- 157 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 15:20:03 ]
- 訳:ググレ
- 158 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 15:33:13 ]
- いちごみるくうめぇ
- 159 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 15:45:14 ]
- ヾ(@⌒¬⌒@)ノ ウマヒィ
- 160 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 16:49:07 ]
- 社会から自分が必要とされていないのではないかと思っているから荒らす
少しでも反応があれば自分は必要とされているんだと勝手に勘違いして納得する それがかまってちゃん こうして俺たちがかまってあげているうちは街中で無差別殺人なんてしないだろうから 人助けの一つだと考えて適当に相手してあげておいた方がいいかもな
- 161 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 16:54:19 ]
- >>160
こうですか!わかりません><
- 162 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 16:55:35 ]
- 探すのが面倒だから荒らすんですね(>ω<
- 163 名前:デフォルトの名無しさん [2008/06/12(木) 18:52:04 ]
- フックについてググってもvbやらdelphiやらc++やらapiやら混在してる割に
ヒット数が意外と少ないんですがとりあえず SetWindowsHookEx WH_KEYBOARD WM_INITDIALOG あたりを使う方法でいいのでしょうか?
- 164 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 18:53:22 ]
- 最後は関係ない希ガス
- 165 名前:デフォルトの名無しさん [2008/06/12(木) 19:20:16 ]
- >>164
どうもです。そのものずばりの情報はなかなか見つかりませんね。 範囲があまりにも広いのですが絞るとほとんどhitせず・・・もう少し調べてみます
- 166 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 21:02:18 ]
- 動的に追加したリストボックスをDestroyWindow()する時に予めLB_RESETCONTENTする必要はありますか?
- 167 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 21:14:24 ]
- >>166
deleteする時に予めデストラクタを呼んでおく必要はありますか? って聞いてるようなモンだぞ
- 168 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 21:26:55 ]
- >>167
DestroyWindow()するだけで良いのですね。 ありがとうございました。
- 169 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 21:52:18 ]
- スレ違いのような気もするけど、気にせず教えてください。
kbdacc とか 秀Caps のようなキーリピートの高速化ってどうやって実現してるんでしょうか? SystemParametersInfo で設定できる値よりずっと速くできるようですが。
- 170 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 22:15:27 ]
- >>165
自プロセスへのフックは簡単だと思うけど‥‥他プロセスやグローバルフックになると共有メモリとかの処理が必要になってくるけど
- 171 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 22:17:16 ]
- >>169
気にせず教えてください…?頭わいてんのか?
- 172 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 22:29:33 ]
- お忙しい中すみませんが、気にせず教えてください。
- 173 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 22:33:16 ]
- 教えを乞う言葉じゃない気がしますが、気にせず教えてください。
- 174 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 22:54:35 ]
- >>169
ずっと速くできるようですが気にせず設定してください
- 175 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 23:12:31 ]
- 流れがおかしいようですが気にせず質問してください
- 176 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 23:15:39 ]
- ツールバーの表示位置を変えたいのですが、どのようにすればいいですか?
- 177 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 23:21:10 ]
- movewindow
- 178 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 00:14:46 ]
- >>177
レスありがとうございます。 後一つわからないことがありまして、 ツールバーの高さを変えるにはどうすればいいですか?
- 179 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 00:15:13 ]
- >>177
APIの大文字小文字は区別されます。嘘を書くのをやめましょう。
- 180 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 00:16:35 ]
- >>178
ボタンを大きくする
- 181 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 00:28:58 ]
- >>180
ありがとうございます。 御礼に私の集めた女子高生画像10枚ほどぅpしようと思うのですが
- 182 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 00:33:42 ]
- >>181
早く汁 ttp://www.uploda.org/
- 183 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 01:00:03 ]
- >>181-182
偽者&自作自演乙
- 184 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 01:10:32 ]
- ↑はずれ
- 185 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 01:13:02 ]
- mbup.net/p.php?p=44502.jpg
mbup.net/p.php?p=44503.jpg こんな感じのでよいでしょうか?
- 186 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 01:36:20 ]
- 訳:かまってほしいな
- 187 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 02:35:45 ]
- >>186
かまってほしいです。 実のところMoveWindowでツールバーの移動が出来ませんでした。
- 188 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 02:55:07 ]
- 自プロセスのUIスレッドのIDを取得したいのですが、方法はありますかね?
- 189 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 03:12:29 ]
- >>188
ググッたらその辺のサンプルは、見つかると思うよ
- 190 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 05:09:14 ]
- ツールバー移動出来ない……
クローズボタンなんかだと移動出来てるぽいから出来ると思うのですが…
- 191 名前:デフォルトの名無しさん [2008/06/13(金) 10:24:01 ]
- Windows Media Playerの埋め込みについて質問させてください。
親ウィンドウ(レイヤードウィンドウ)にメディアプレイヤーを埋め込んでいるのですが、 WS_EX_Layeredで親ウィンドウを生成し、SetLayeredWindowAttributesで透明度を設定すると、 メディアプレイヤーの動画部分が黒く表示されます(再生はされているみたいです) 親ウィンドウを動かしてみると、一瞬だけ動画が表示され、動かすのをやめるとまた消えてしまいます。 これはどういった原因があるでしょうか。 親ウィンドウをレイヤードウィンドウにしなかった場合は、そのまま表示されます。
- 192 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 11:24:59 ]
- WS_CLIPCHILDRENとかその辺?
- 193 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 11:28:43 ]
- タブのグレイ表示ってできないんですか?
- 194 名前:デフォルトの名無しさん [2008/06/13(金) 13:57:22 ]
- >>190
>>190 >>190 >>190 >>190 >>190 >>190
- 195 名前:デフォルトの名無しさん [2008/06/13(金) 14:12:25 ]
- 聞きたいのは、何故ツールバーをMoveWindowで移動出来ないのか
です。
- 196 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 15:19:53 ]
- 最近、いろいろなサイトでTEXT("aaa");見たいなの見かけますが
文字型charには代入できなくなったのですか?新しい型?
- 197 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 15:21:14 ]
- 意味不明
- 198 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 15:27:26 ]
- TEXT("aaa")とか_T("aaa")は、ユニコード対応だったけか?
ググれば、その辺はすぐ見つかるよー
- 199 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 15:28:16 ]
- 最近のVC++はデフォがUnicode版API使うようにマクロ定義さてるんじゃなかったっけ?
2003で止まってるから知らんが。
- 200 名前:デフォルトの名無しさん [2008/06/13(金) 15:39:25 ]
- WM_KEYUPでwParamと数値を比較すると警告メッセージがでるのですが
wParamをintでキャストするような方法でいいのでしょうか
- 201 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 15:40:25 ]
- おk
- 202 名前:デフォルトの名無しさん [2008/06/13(金) 15:41:20 ]
- >>201
秒殺レスさんくす
- 203 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 16:05:45 ]
- >>191
WMPが動画をオーバーレイで表示してるなら、不思議な挙動ではないな。 ビデオオーバーレイは画面上のビデオ表示領域にあるピクセルが特定の色だった場合に、そのピクセルに動画を表示する。 よって半透明にした結果、そのピクセルの色が変わってしまえば動画が表示されなくてもおかしくはない
- 204 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 16:20:56 ]
- なかなか深い読みだな
- 205 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 16:27:34 ]
- >>203
アプリの背景色をその色にすると面白い事になるよね
- 206 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 16:32:23 ]
- 自己解決しちゃったぜ!!?
気分がいいので 今から写メを20枚ぅpしてやんよ!!!
- 207 名前:デフォルトの名無しさん [2008/06/13(金) 16:50:01 ]
- mbup.net/d/44545.jpg
mbup.net/d/44547.jpg mbup.net/d/44549.jpg mbup.net/d/44552.jpg mbup.net/d/44554.jpg
- 208 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 16:54:40 ]
- 基地外が沸いてるな
- 209 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 17:53:16 ]
- >>191
WMPでオーバーレイを使わない設定にすれば見えなくなることはなくなるけど、透けないしちらつくんだよな。
- 210 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 20:52:48 ]
- ツールチップをCreateWindowEx()してTOOLINFO構造体のlpszTextにLPSTR_TEXTCALLBACKを指定した後、
case WM_NOTIFY: switch (((LPNMHDR)lp)->code) { case TTN_NEEDTEXT: LPTOOLTIPTEXT ptt = (LPTOOLTIPTEXT)lp; lstrcpy(ptt->lpszText, 表示するテキスト); break; default: return FALSE; } とすると、数十字程度の場合は正常に動作しますが、300文字等文字数を増やすとデバッグ実行時でもエラーが出ずに突然落ちてしまいます。 原因は何でしょうか。 因みにTTM_UPDATETIPTEXTでは正常に動作しました。 >>196 所謂TCHAR型だから、プロパティでマルチバイトを選択すればchar、Unicodeを選べばwchar_tとコンパイラは解釈する。
- 211 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 21:18:19 ]
- TTN_NEEDTEXT 通知メッセージを処理する場合は、表示する文字列を次のいずれかの方法で指定します。
szText メンバで指定したバッファにテキストをコピーする。 テキストが入っているバッファのアドレスを lpszText メンバにコピーする。 文字列リソースの識別子を lpszText メンバにコピーし、そのリソースが入っているインスタンスのハンドルを hinst メンバにコピーする。 MSDNくらいちゃんと確認汁
- 212 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 21:24:54 ]
- >>210
バッファオーバーラン 今時そんなバグを平気で出しちゃうCプログラマは 偉そうにTCHAR型の講釈している場合じゃないよ
- 213 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 21:25:28 ]
- 俺も>>211 が正解な気がする
- 214 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 21:31:45 ]
- タスクの切り替え(アクティブウィンドウを切り替える)のをエミュレートしたいんですけどどうすればいいですかね?
ある条件を満たしたとき、(タスクバーの)(右)隣のウィンドウに切り替えたいんですけど。 Alt+Tabのキーボードエミュレートだと、直前のやつにしか切り替え不可ですよね・・? Tabの押す回数をうまく制御すればいいんですかね? 他にもっとスマートな方法ありますか?? あと、上記のような不特定多数のタスクがある状況で動くものと、 特定の(例えばWMPとか、決まったアプリをアクティブにする)をアクティブにするものも知りたいです。 ちなみにC++(VC2008ExpressEdition)です。 ご教授のほどお願いします。
- 215 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 21:36:05 ]
- >>214
FindWindow GetWindowThreadProcessId SetActiveWindow SetForegroundWindow
- 216 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 21:36:28 ]
- >>210
80文字分しかないバッファに300文字コピーしたら バッファオーバーランするに決まってるだろ。
- 217 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 22:08:45 ]
- (誰が決めたのだろう・・・?)
- 218 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 22:09:50 ]
- 俺
- 219 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 22:11:45 ]
- そいやXPのPowerToyのAlt+TAB乗っ取りプログラムはWS_EX_TOOLWINDOWとかマスクしてなくてPhotoshopとか起動してるとかなり格好悪いことになるんだよな。
- 220 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 22:31:36 ]
- >>215
単純明快かつわかりやすい回答、ありがとうございます。
- 221 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 22:34:57 ]
- どういたしまして
- 222 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 22:39:30 ]
- >>221
騙りウザイ
- 223 名前:デフォルトの名無しさん [2008/06/13(金) 22:40:53 ]
- >>192
>>203 >>209 埋め込んだメディアプレイヤーを透明にするということは難しいということですね。。 別の方向で検討します。 レスありがとうございました。
- 224 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 22:45:30 ]
- どういたしまして
- 225 名前:214 mailto:sage [2008/06/13(金) 22:48:41 ]
- すいません、また質問させてください。
>>215でプロセスIDを習得する意味は何でしょうか?
- 226 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 22:49:29 ]
- 習得?
- 227 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 22:54:07 ]
- 取得、です。
- 228 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 22:55:29 ]
- 同じプロセスで動いてるやつを飛ばすとか?
- 229 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 23:10:01 ]
- >>225
> 例えばWMPとか、決まったアプリをアクティブにする とあったので、特定のアプリをアクティブにするならプロセスIDから逆引きすればいいよってこと。
- 230 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 23:43:22 ]
- GDIのPolygon関数は、与えられた引数によっては交差した図形を描くのですが、
どんな引数を与えられても交差しない図形を描くことは出来ないのでしょうか。
- 231 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 23:56:05 ]
- >>230
交差しない順で自分で頂点を並べればいいだろう。 ちょっと考えれば、順不同で与えられた頂点から、辺が交差しない図形は 一意で求まらないことくらい分かりそうなもんだが。
- 232 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 23:56:42 ]
- そんなAPIがあることを初めて知った。。。
質問の意味はよくわからんが、細かく制御したいなら自分でやれば。
- 233 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 00:10:18 ]
- 分からないならレスしないでください
- 234 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 00:22:14 ]
- >>191のやつをVista DWM有効下で動かすとどうなるんだろうと気になった。
- 235 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 00:29:56 ]
- オーバーレイは使えないが、動画は表示され、ちらつきも無くなって万々歳と予想
- 236 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 00:36:56 ]
- それってXPで出力をVMR9にしたのと同じような状況じゃねーの?
- 237 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 00:46:13 ]
- 個人的に、レイヤードウィンドウとDWMの違いがハッキリしないんだけど。
レイヤードウィンドウでもWM_PAINTがほとんど飛んでこなくなるし、DirectXベースっぽいし。 思うに、レイヤードウィンドウがDX7だったのに対してDWMがDX9になっただけな気がする。 もちろん色々と変わってるだろうけど(GDIをソフトレンダラ化とか)、DWMでやってる事って 半分ぐらいはWindows2000で既に実現できていたんじゃないのかなぁ。
- 238 名前:214 mailto:sage [2008/06/14(土) 01:21:17 ]
- あーできません助けてください!
「今アクティブなウィンドウ(アプリ)の、“タスクバーにおける(右)隣”のウィンドウへアクティブを移す」を実現したいのですが、 要はこれって「タスクバーでいうと隣」のウィンドウのハンドルを取得、それを使ってアクティブにすればいいんですよね? だけど「タスクバーで隣」っていうのをどう条件設定すればよいのかわからず・・・。タスクバーを右に右に推移(+右端だったら左端に動くように)させたいのですが・・。 なんかヒントください!
- 239 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 01:25:08 ]
- >>238
タスクバーをフックする そして次のバージョンのWindowsで死亡
- 240 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 08:27:48 ]
- fprintf等でUTF-8 LF形式で出力したいのですが、どうしてもできません。
どうかご教授おねがいします 。 FILE* fp; _tfopen_s( &fp, _T("hoge.txt"), _T("w,ccs=UTF-8")); fseek(fp, 0, SEEK_SET ); _ftprintf_s( fp, _T("hogehoge")); _setmode( _fileno( fp ), _O_BINARY ); _ftprintf_s( fp, _T("\n")); _setmode( _fileno( fp ), _O_TEXT ); _ftprintf_s( fp, _T("あいうえお")); fclose(fp); MSDN見る限りではこう作れってかいてあるのですが、どうも_setmodeの挙動がおかしいようで...
- 241 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 09:14:00 ]
- どうせccs=UTF-8なんてVC++限定なんだから、
自分でメモリ上にUTF-8, LF改行のデータを作って、 ただのバイナリモードで一気に書きこんだらどうかと思う。 というかスレ違い。
- 242 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 10:13:39 ]
- >>240
_setmode( _fileno( fp ), _O_U8TEXT);
- 243 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 10:53:27 ]
- リッチエディットの背景に画像を表示したいのですが方法はあるのでしょうか?
ググってみても背景色の変更はあるのですが背景に画像を埋め込む方法は見つかりません。
- 244 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 10:57:51 ]
- >>243
無理。IEコンポーネントでも使え
- 245 名前:243 mailto:sage [2008/06/14(土) 11:01:49 ]
- やっぱりそうですか・・・。ありがとうございます。
- 246 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 11:24:30 ]
- どういたしまして
- 247 名前:デフォルトの名無しさん [2008/06/14(土) 14:21:30 ]
- リッチエディットコントロールで右クリックしても
エディットコントロールと違って何も表示されないんだけど どうすればいいんでしょか
- 248 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 14:54:24 ]
- >>241
間違えてここに書いちゃいました。 C++相談室で聞いてきます。 >>242 実はこれはいろいろためしてたときのソースがそのまま残ってました。 _setmode( _fileno( fp ), _O_U8TEXT); もすでに試してたけど、なぜかCRLFになるので、ダメでした。
- 249 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 15:10:51 ]
- C++相談室もスレ違いだけどな
- 250 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 15:20:35 ]
- ・スレ違いの質問でも丁寧に答えてくれます。
・かまってちゃんの煽りにもきちんとかまってくれます。 をテンプレに追記汁
- 251 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 15:45:05 ]
- CreateThreadで作成したスレッドがサスペンドになるまで待機するような関数はありませんか。
WaitForInputIdleのスレッド版、のようなモノです。 自前でフラグでも立てて調べ続けるしかないのでしょうか。
- 252 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 15:50:57 ]
- 訳:おしえてほしいな
|

|