Win32API質問箱 Build123©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2016/10/08(土) 12:33:02.29ID:0jaJMPXG
Win32APIについての質問はこちらへどうぞ。

■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。
 英語版( http://msdn.microsoft.com/en-us/library/ )の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで

■過去スレ
Win32API質問箱 Build122
http://echo.2ch.net/test/read.cgi/tech/1451988219/
755738
垢版 |
2017/07/19(水) 23:45:01.11ID:eXD5VvDv
詳細なご助言、ありがとうございます。
ソケットプログラミングを舐めてました・・・。
勉強します。
2017/07/23(日) 21:24:45.77ID:i/1Azv/r
Windows10の環境で、ShowCursor(FALSE);、ShowCursor(TRUE);
が何故か動かないですが、原因わかりますか?代用のAPIってありますか?
カーソルの形状を透明に置き換えるしかないかな。。。
2017/07/23(日) 21:33:57.11ID:gJMUPJMf
>>756
自分のプログラムではWindows10で動いてるよ。

複数回呼んだりしてない?
ShowCursor()は内部の参照カウントみたいなのをインクリメント/デクリメントして、
0以上かどうかで表示/非表示が変わる。
確実にやるならwhile文で戻り値(カウント値)をチェックしてやる。
2017/07/24(月) 00:50:38.22ID:Q/sCu+tw
自分のアプリ内だけ消したいとかならWM_SETCURSORでSetCursorにぬるぽ渡してるなあ
2017/07/24(月) 01:03:43.40ID:ApWJ+3q2
動かない原因がわかりました。。。
自分のWINDOWを表示していない場合、カーソル非表示にならないっぽいです。

ジョイスパッドで操作するマウスを作っていて、マウスを移動した後で、
自動的にマウスカーソルの表示/非表示したかったのですが、
自分のウインドウを表示していないためにうまくいかない;;

カーソルの形状変えて回避を試すか、透過ウインドとかで回避?
2017/07/24(月) 01:40:41.42ID:ApWJ+3q2
もしかして、フック使わないとだめ?
2017/07/24(月) 02:06:27.33ID:etlzFZfn
どうだったかなぁ
グローバルにマウスカーソルを消す方法はあったかなぁ
相当な迷惑行為だからなぁ
そんな事をしたい奴も居ないだろうしなぁ
2017/07/24(月) 02:58:51.42ID:mnSWSFmQ
透過ウィンドウが王道じゃなかったか
忘れたけど
2017/07/24(月) 08:28:59.85ID:axe1Ox+X
透過ウィンドウ最大化でなんとかしてた
764デフォルトの名無しさん
垢版 |
2017/07/24(月) 15:15:22.73ID:BdqEvISL
vfd
2017/07/25(火) 00:03:21.82ID:SY0Mxk4f
SetSystemCursorで一応変更できるけど完璧にはできない
2017/07/26(水) 21:44:38.92ID:dmLhcxPj
マウスの件ですが、サイズ1x1のウインドウを作って、WM_TIMERでウインドウを追尾するようにして対処しました。
透過ウインドでアルファ1設定しています。0にしちゃうとダメっぽいです。もっといい方法あるのでしょうか?
hWnd = CreateWindowEx(WS_EX_TOPMOST | WS_EX_LAYERED, szWindowClass, szTitle,WS_POPUP,0, 0, 1, 1, NULL, NULL, hInstance, NULL);
SetLayeredWindowAttributes(hWnd, 0, 1, LWA_ALPHA); // 透明1
int n;do { n = ShowCursor(0); } while (n >= 0); // マウスカーソルを消す
case WM_TIMER: POINT pt;GetCursorPos(&pt);SetWindowPos(hWnd, HWND_TOPMOST, pt.x, pt.y, 0, 0, SWP_NOSIZE);
2017/07/26(水) 21:49:04.00ID:bC5SPfn2
ウィンドウを仮想スクリーンいっぱいにすれば、追尾の必要はない。
2017/07/26(水) 22:17:49.99ID:dmLhcxPj
>>767
仮想スクリーンサイズいっぱいにウインドウを作っちゃうと、CPU/GPUのパワー無駄に使いませんか?
1x1サイズのほうが、アプリ的には、軽いと思うんですが?
2017/07/27(木) 01:34:42.30ID:vaTNWP9F
>>768
WS_EX_TRANSPARENTを使えば描画が透過になるらしい。
2017/07/27(木) 16:09:43.62ID:5IXklzdW
そのようなことが本当に可能かどうかの確認もせずに書き込むのはなぜなんですか?
実際に昔自分が試したことがあって、完全にわかっているなら良いと思うけど
やったこともないことを、試しもせずに、どうして適当書き込むの?

まずレイヤードウィンドウで、SetLayeredWindowAttributes でアルファ値を0にした場合
完全な透明になるとともに、マウスの当たり判定も何もなくなって
まるでウィンドウが存在していないかのような扱いになるので
マウスカーソルがウィンドウ上に有るよっていう扱いが無くなって
マウスカーソルを非表示にしても、非常時にはならない
で、アルファ値を1とか適当な値にするとマウスの当たり判定が出来るので
めでたくマウスカーソルを非表示にすることが出来る
ここまでは質問者が書いている内容

ここで、ウィンドウサイズを画面いっぱいに広げると
画面全体がアルファ値の「1」の分の影響を受けそうだということもあるが
とりあえず質問者はGPUの負荷を気にしている
そこでアルファ値を0にするとWindows内の最適化でGPUでの合成処理はスキップされるだろうが
しかし先ほども書いた通りマウスの当たり判定も無くなるのでマウスカーソルは消えなくなる
で、この場合WS_EX_TRANSPARENTの何が有効なんだという話
これを指定したからといって、アルファ値が1であればウィンドウは表示されるし
表示されるんなら、GPUに負荷がかかることに変わりなし

だが、ここまでであればまだよい、まだわかる、それはいい、本当の問題は
レイヤードウィンドウにおいてのWS_EX_TRANSPARENTは、「マウスイベントを透過させる」の意だ
つまり、ウィンドウは半透明とかで表示するけども、マウス的には無きものとして扱う
そういう意味であるので、マウスの判定は無くなるし、ウィンドウ上にマウスがあるって扱いも無くなるので
「マウスカーソルは消えない」
だから、レイヤードウィンドウでWS_EX_TRANSPARENTだと
アルファ値が何であろうと、ウィンドウサイズが何であると、関係なく
そもそもマウスカーソルは消えない

つまり言ってることが二重三重にデタラメ
2017/07/27(木) 16:26:35.88ID:TSUPQXzA
とりあえず全部読んだ
2017/07/27(木) 16:32:39.41ID:5IXklzdW
ちなみにレイヤードウィンドウじゃない普通のウィンドウに
WS_EX_TRANSPARENTを指定しても
今回の件はうまくいかないからな
WS_EX_TRANSPARENTの仕様はその昔のWindowsの描画の仕様に強く依存していて
それ故にかなり複雑な動きをするところもあったかもしれないが
しかしながら今回の件において、それも既に関係が無い
なぜなら今はデスクトップコンポジションだから

ウィンドウは自分のビットマップを持ってるので
かつてのWindowsの再描画の仕様によってもたらされていた
ウィンドウの下のものが透けて見えるように感じる、という現象は起こらない
2017/07/27(木) 17:02:53.88ID:LWV2Yf86
WM_ERASEBKGNDをつぶせば透過に
2017/07/27(木) 17:54:30.49ID:5IXklzdW
良くわからないなら少なくとも出来るかどうか確認してから言えといっただろ
2017/07/27(木) 18:03:15.82ID:DvER6G26
それがにちゃんねるクォリティというもの、コードを貼らない書き込みに期待しないのがいい
776デフォルトの名無しさん
垢版 |
2017/07/27(木) 18:06:42.35ID:46kBibo2
誰に確認してから言えって言ってるの?
回答側に確認義務があるなら、だれも回答したくなくるしヒントも言えんわ。
2017/07/27(木) 18:22:49.05ID:t8Fq16Nl
片山はNGワードでOK
2017/07/27(木) 18:29:25.65ID:DvER6G26
>>775
これは質問者にもいえる、最低限のコードを貼れない様ではまともな回答も期待できない
うんこQZでも1万ステップ程度のコードを貼っていた
まずは手を動かしたほうがいい
2017/07/27(木) 19:16:34.98ID:P1js1uXh
責任ある解答が欲しけりゃ金払えよ
払っても責任とってくれるかどうかは知らんけど w
2017/07/27(木) 20:24:33.89ID:5IXklzdW
スレの運営方針とか、自治的な何かとは、関係ない
2chのスレがグダグダになろうが、嘘であふれかえろうが、知ったことではない

知りもしないことを、調べもしないで、確かめることもせず
知ったかがしたいという唯それだけのために適当なことを書き込む
あなたはいったい何なんだ?そして実際間違ってる
という単なる個人攻撃

そして、また間髪おかず間違ったことを書き込んだから
なぜ同じ過ちを繰り返す?としたまで

拡大解釈して一般化してどうこう言うようなものではないぞ
2017/07/27(木) 20:39:13.38ID:7IEdpfIL
>>780
しったかが多いのは何もにちゃんねるに限らない,世間様でもあきれ返るばかりに多いんだよ
2017/07/27(木) 21:17:08.86ID:lePSsggt
>>780
無駄な正義感で生きにくそう
2017/07/27(木) 21:57:41.84ID:P8zzUyc0
>>780
2chがどうなろうと知ったこっちゃないのに個人が間違ったこと書くのは許せないとか
アホすぎ w
784デフォルトの名無しさん
垢版 |
2017/07/27(木) 22:02:56.93ID:DDfF3pSC
株式会社メビウス(mob)
http://matsuri.2ch.net/test/read.cgi/infosys/1501121465/
2017/07/27(木) 22:40:03.60ID:lBgNNeyr
ネットでデタラメ狩りしてもキリがないもんな
大抵は質問する側の方が知識あるから大丈夫
2017/07/27(木) 23:21:44.69ID:TSUPQXzA
知識がある質問側が知識のない回答者に訊くのか
2017/07/28(金) 01:04:49.84ID:/BbkHPYe
質問する人は自分でやってみて上手くいかず答えが難しいから質問するわけで、
やったこともなく難しいということすらわからず当てずっぽうな返答を書く人よりは知識あるでしょ。
2017/07/28(金) 01:14:51.00ID:/BbkHPYe
ところで当てずっぽうで書くけど拡張ウィンドウスタイルで透明にして
erasebkgnd やら ncpaint やらで描画サボっても透明になるんじゃないか
昔のバイナリはそうやって穴あきウィンドウとか実装してたわけで
その辺は今でも互換性あるでしょ
2017/07/28(金) 04:15:41.18ID:OlX0v1uA
>>787
どこまで頭悪いとそういう理論にたどり着くのか
2017/07/28(金) 07:47:39.36ID:bTFRT7jO
>>786
そういえば、知識のある人に訊いたつもりなのに知識ない人から変な回答が付くってのはよくあるなぁ。
2017/07/28(金) 09:01:08.00ID:QaJRNrxO
つもりだからでしょ
つもりしゃなくてそうしなよ
2017/07/28(金) 10:41:48.20ID:HR9e4R3v
>>780
>>770で言っていることは正しいと思うよ
理想としてはね
でも現実にはそういう人はなくならない
なら相手に「誠心誠意真実のみを語る」ことを求めるより
相手の言葉をヒントとして自分で試す、実践していくことのほうが
より確実に真実に近づくと言えるのではないだろうか

>>787
でも質問した内容について、「どっちも知識ない」ことは同じじゃないだろうか
目くそ鼻くそなんだし仲良くすればいいと思うよ
2017/07/28(金) 20:56:53.43ID:bTFRT7jO
「知識のある人だけ答えてください」とか書いたら余計バカが集まるw
2017/07/29(土) 00:30:51.84ID:K1UV3B/G
>>770
まさにその通りですね。詳しい解説ありがとうございます。WS_EX_TRANSPARENTは、片山さんから助言受ける前に試してました。
画面サイズ最大で作って、erasebkgnd やら ncpaintとかは、リペイントのコストかかるので向いてないかも、ウインドの下でゲームや、動画とか再生されてた時などに不具合出そう。
できるだけシンプルに作りたかったので、今回はサイズ1x1で追尾にしました。(追尾といっても任意の動作後に追尾命令1回なので低コスト)
>>778
最低限のコード張ってないのは、どっかのサイトにでもコード張っておけばよかったかもですね。
大した処理ではないので、>>766で書いたCreateWindowEx、SetLayerdWindowAttributes、ShowCursorなどを張り付けておけばわかる人は分かるだろうと思っていたのですみません。
とりあえず、解決です。皆さま、ありがとうございました。
2017/07/29(土) 11:30:19.14ID:Ws5hVYlo
>>786
2ちゃんはそんなのばっかだよ
2017/07/29(土) 11:31:52.72ID:Ws5hVYlo
>>791
知らないのにレスしないでください
うざいだけです
2017/07/29(土) 15:22:56.00ID:Vfg3EN7i
そのレス懐かしい
798デフォルトの名無しさん
垢版 |
2017/07/29(土) 20:59:35.56ID:Y56dLgVa
こっちで書けるかな?。あっち
https://mevius.2ch.net/test/read.cgi/tech/1482549747/l50
で、あいこんのきり変えに失敗した、とかいたんだが
ついに成功した。 LoadIcon(ょ
か゜しかし、LoadImage()では成功していない。
2017/07/29(土) 21:08:08.69ID:GuKX0EtE
基本的には自力解決するしかないのが多いからな
長年書いていても遭遇するとは限らない突拍子もない現象が起きたりする
WinApiはカオスだ
質問は気休めにもならない
むしろ面白い現象をここで報告するつもりで質問してほしい
2017/07/29(土) 23:32:33.06ID:muGZrUiV
ダイアログボックス上に複数のラジオボタンがあり連続で並んでいます。
先頭のラジオボタンのみグループ属性が付加されており、マウスやキーボードで
操作するとどれか一つだけしか選択できない状態です。

プログラムから現在選択しているラジオボタンとは別のラジオボタンを
選択する際、CheckDlgButtonを使って選択するのですが、これ自体は
選択処理は正常に働きますが、以前選んでいたラジオボタンも選ばれた
ままとなります。
これはそういうものでしょうか?

WindowsのデフォルトUI動作で単独のラジオボタンしか選べないように
なっていると思っていたのですが、プログラムコードではそれは自分で
考慮して処理が必要と言うことでしょうか?
2017/07/29(土) 23:49:29.00ID:N293m3Oe
>>800
CheckRadioButton
https://msdn.microsoft.com/ja-jp/library/cc410654.aspx
2017/07/29(土) 23:58:28.88ID:9HfHoOru
ダイアログエディタで作成した場合
タブオーダーだったかリソース IDだったかが
順序どおりになってないとそういう現象になる
2017/07/30(日) 01:59:49.31ID:pLyoXQEm
>>801
そんな関数があったのか。自分で処理するものかと思ってた
2017/07/30(日) 07:13:09.16ID:m983gJFf
800です。

>>801
ばっちりです。どうもありがとうございました。

>>802
これは問題ないことを確認しました。

>>803
恥ずかしながら、CheckDlgButtonでもOSが処理してくれると思い込んでいました。
2017/07/30(日) 09:08:42.74ID:xziOu8cb
>>804
モードレスダイアログのコントロールIDが一番若いラジオボタンは
BN_CLICKEDが生成時に2回発生するから注意してね
2017/08/02(水) 01:43:28.46ID:+cEHF0jB
WinSockで、クライアント側がconnect()をコールして、
サーバ側がメッセージプロシージャでFD_ACCEPTを受け取るまでの間に、
MessageBox()でダイアログボックスを表示すると、FD_ACCEPTが届かない・・・。

これ、どういう理屈なんだろう?

何とかMessageBox()が挟まらないように改変しようとしてるんだけど、
ちょっとしたことでこの問題を回避できたりしないかな?
2017/08/02(水) 03:41:53.16ID:fdgsCGyr
俺はWinSockの専門家でも何でもないけど
http://eternalwindows.jp/network/winsock/winsock05s.html
のサイトを丸コピペしつつ
MessageBoxを表示したのち
別スレッドでコネクトしたら
普通に接続できたんだが・・・
http://www.geocities.jp/notenop/winsock_demo.cpp
2017/08/02(水) 07:39:11.06ID:6ap2AYHE
>>806
MessageBoxはサーバー側かクライアント側かどっちで表示?
809806
垢版 |
2017/08/02(水) 08:16:03.56ID:+cEHF0jB
>>807
そうでしたか。
他のことが原因かもしれませんね。
けっこう規模の大きいプログラムで発生したので、
>>807さんが試みられたように、一度最小コードで再現させてみます。

>>808
すみません、情報不足でした。
サーバー、クライアントともに同一プロセス同一スレッド内です。
外部PCとの通信も考慮しての使用ですが、今回問題が発生したのは、同一PC内です。
2017/08/02(水) 08:24:30.04ID:i5+f8wcz
>>809
> サーバー、クライアントともに同一プロセス
ここまではまだわかるが...
> 同一スレッド内です。
え?
2017/08/02(水) 09:09:46.19ID:6ap2AYHE
>>809
文字通り受け取ると
クライアントコネクト
→メッセージボックス
→サーバーアクセプト
が同一プロセス・同一スレッド?

そらメッセージボックス閉じないと処理が進まない
2017/08/02(水) 09:11:05.84ID:6ap2AYHE
それかメッセージボックスの親をNULLか
813806
垢版 |
2017/08/02(水) 09:43:58.29ID:7ng0/iaA
>>811
>>812
すみません、言葉足らずでした。
ダイアログボックス表示中はもちろん処理の流れがブロックされるんですが、
(MessageBox()のウィンドウハンドルはNULLで、フラグがMB_TASKMODAL | MB_ICONEXCLAMATIONです)
ダイアログボックスを閉じた後もFD_READが届かないんです。

フラグを単にMB_OKにしてもブロックされるので変わらずでした。
814806
垢版 |
2017/08/02(水) 09:45:23.67ID:7ng0/iaA
↑すみません、FD_ACCEPTです。
2017/08/02(水) 09:47:13.93ID:3fh+5Dja
もしかしてWSAAsyncSelect で hWnd に NULL 指定してるとか?
2017/08/02(水) 09:52:12.86ID:3fh+5Dja
正しく処理されればメッセージボックス表示「中」にFD_ACCEPT がくるはずだけど…
2017/08/19(土) 23:59:27.57ID:3LWi1RRc
直受けの50万 客:いつまでもうちにいていいよ
3次受けの50万(客は70万払ってる) 客:短期延長していい?
5次受けの50万(客は110万払ってる) 客:作り終わったらとっと出てけ できなかったら即退場だ 
長時間労働 高稼働 高スキル要求が多い

零細フリーランスサイトは5次受けから誰もできない難易度の高い仕事 余り物の仕事を紹介してくる。40万円代でやってくれと

これならJIETから3次でいったほうがいいな

446非決定性名無しさん2017/08/02(水) 22:12:48.95

JIETに毎月5千円払えば3次から入場できるだろ?
高額をうたうフリーランスのサイトはだいたい5次から45万円
JIETで閲覧応募できる末端価格からさらに搾取するのが高額をみせつけるフリーランスサイトでした
高額案件をみせつけるフリーランスサイトも案件の取得はJIETでした

473非決定性名無しさん2017/08/03(木) 15:21:30.71

JIETに加入すれば誰でも3次60万からスタートだ。フリーランスのサイトをやってる
自称エージェントもそこから案件情報を取得しきてる。サイトで60万で釣って40万から55万の
間でやらしている。

372仕様書無しさん2017/08/11(金) 10:31:43.41
フリーランスで検索すると引っかかる零細ITがやっているフリーランスのサイトはだめだ。
高額に見せているけど実際は50万前後
JIET加入した方がいいよ。案件は毎日千件以上末端価格は60万円 平凡な稼働時間の80万円の案件もある。
ユー子も求人をだしてる。名刺も渡せる。ユー子に名刺が渡せるんだぞ。夢のようだ

それらの案件まさぐってHPで転売していたのが零細ITがやるフリーランスサイト

自称エージェントはJIETから流れてくる案件を転売してるだけだった。
JIETに加入すれば誰でも案件に応募することができた。収入が40万50万台にならなくて済む
2017/08/20(日) 14:00:03.74ID:nY0Q5mUa
なんか自分が今まで関係してきた金額に比べて全ての金額が安すぎてビックリ。
これじゃ派遣の方がよっぽどましなんじゃね?
2017/08/21(月) 16:30:24.87ID:Fg01UA7s
>>813
MessageBoxに限らず、モーダルダイアログは自前でメッセージループ持ってるので
他の人も言ってるように受け取り先きちんと指定しないとダイアログに取られちゃうかも
820806
垢版 |
2017/08/21(月) 19:20:15.44ID:eYNo081O
>>819
ありがとうございます。
モーダルダイアログが自前のメッセージループを持っているということ、勉強になりました。
受け取り先を指定するというのは>>815さんが指摘していることでしょうか?

>>815
お返事失念しており申し訳ありません。
WSAAsyncSelectにはメインウィンドウのウィンドウハンドルを指定しており、問題ないかと思います。
821デフォルトの名無しさん
垢版 |
2017/08/23(水) 12:20:49.09ID:6Fed8jeE
江添亮タイホワロスωω
2017/08/25(金) 18:39:23.90ID:R/niZf6L
プロセス名のアイコンを取得するAPIか方法があれば教えてください
2017/08/25(金) 18:53:44.95ID:M7y+0IYN
http://blog.goo.ne.jp/masaki_goo_2006/e/9e9f82fe965dda84e8794f1ba7e64718

Extractなんちゃら関数使えば、パス名からアイコンを抽出できるはずだ。
2017/08/25(金) 18:54:59.55ID:Ds4q9hnC
プロセス名→exeパス→アイコン取得
2017/08/25(金) 18:57:58.24ID:R/niZf6L
ありゃりゃしたー
2017/08/29(火) 17:52:01.06ID:ehSPqLug
プロセスのハンドルって1回オープンしないと取得できない?
827デフォルトの名無しさん
垢版 |
2017/08/29(火) 19:35:58.35ID:1xpDkX/7
ttps://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10178733385
URL先は知恵袋です。
教えてくださいお願いします。
2017/08/30(水) 00:20:15.11ID:9+VQiQGO
>>827
こういうのあったけど?
pdbファイルが見つからないってやつじゃねーの?
ttps://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10103558640
ttps://msdn.microsoft.com/ja-jp/library/yd4f8bd1(v=vs.80).aspx
それ以外で解放関連ミスってるかどうかは全コードをGITとかに上げてみろ。
2017/08/30(水) 09:21:54.56ID:Lglrs9g0
>>827

> 'rpg.exe' (Win32): 'C:\Windows\SysWOW64\wer.dll' が読み込まれました。
> PDB ファイルを開けないか、ファイルが見つかりません。

というメッセージが出てきたら、
「PDB ファイルを開けないか、ファイルが見つかりません」
でググってみるものだ。それでも解らないことを質問すべきだろう。
その手間を惜しむ人間に教えることなどない。
2017/08/30(水) 09:30:54.88ID:Hx/erJ+v
知恵遅れの相手するなんておまえらやさしいな
831デフォルトの名無しさん
垢版 |
2017/08/30(水) 13:24:52.28ID:7h6sel33
827です。
自己解決しました。
ありがとうございました。
832デフォルトの名無しさん
垢版 |
2017/09/02(土) 16:07:42.07ID:uMF7D0UJ
夏休みがまだ終わらない
2017/09/02(土) 16:41:15.17ID:LVvUpSa+
僕の夏休み。8/32日バージョンか
2017/09/04(月) 05:34:56.37ID:5SeLbfqh
今まで使えていたwriteprocessmemory 等を用いてプロセスアタッチを行なっていたのですが急に動作が不安定になり10回中2回ほどしか成功しません。

別PC(ネットカフェ)環境からだと問題なく動作します。
PC自体に負荷をかけるようなことを行なっていたためパーツ側に何か問題があると見ていまして、このような症状をご存知の方教えて下さい。
2017/09/05(火) 00:20:00.00ID:v8OLWv5g
ヒント:プログラムが糞
2017/09/05(火) 01:08:33.79ID:v1SMPV1x
処理速度差でインジェクトタイミングがずれてとらぶってんだろうな
2017/09/11(月) 18:49:35.09ID:qZ9UWi9t
>>836
解決しました。
上の方で無職で憂さ晴らしを楽しんでいる方がいましたが助かりました。
838デフォルトの名無しさん
垢版 |
2017/09/16(土) 13:40:49.72ID:sYdQKwx0
Windows 7です

callwndproc でグローバルフックを作って
ウインドウを閉じるWM_CLOSEなどのメッセージを検知させたいのですが
動作はしたもののInternet Explorer (IE11)だけうまく行きません。
IE11ではapiを使ったフックはできないんでしょうか?

環境・手法はcpp, DLLでのデータ共有, Visual Studio 2015のコマンドラインコンパイラです。
2017/09/16(土) 16:47:44.09ID:ZCzFTInQ
できますよ
2017/09/17(日) 13:16:45.39ID:9dlPIQ/A
出来るよ
841デフォルトの名無しさん
垢版 |
2017/09/17(日) 19:55:34.73ID:j4nqlc4K
CreateWindowEx で WS_EX_COMPOSITED を指定しても、なぜかWS_EX_COMPOSITEDが未定義のシンボル扱いで通りません。
他のスタイル変数だと通ります。
CS_OWNDC、CS_CLASSDC は使っていません。
原因と、解決策を教えてください。それらしいワードでググっても良くわかりませんでした。
お願いします。

OS windows7 32bit
環境 BCC Developer
2017/09/17(日) 20:19:20.70ID:5uCVCcKi
BCCを捨てろ
2017/09/17(日) 21:00:05.91ID:53PrWSTF
定義すりゃいい
2017/09/17(日) 22:17:44.95ID:mYmSE/6P
#ifndef WS_EX_COMPOSITED
#define WS_EX_COMPOSITED 0x02000000L
#endif
2017/09/17(日) 23:25:53.44ID:npppe4f/
WinUserヘッダーをインクルードしてないのか?
2017/09/17(日) 23:36:19.72ID:abFJ0XwA
>>845
古い環境(bcc55)だから、<winuser.h>でも未定義。
2017/09/17(日) 23:47:17.58ID:CQjOt/D7
そもそも今時デメリットしかねえから要らんやろこのスタイル>WS_EX_COMPOSITED
848841
垢版 |
2017/09/18(月) 06:53:54.99ID:7suqbGay
>>844
ありがとうございます。動きました。
なるほど古すぎたんですね。
849838
垢版 |
2017/09/18(月) 15:12:02.60ID:3H+QkIIH
>>839 >>840
Chromeウィンドウなどのフックと同じようにやるだけで出来ますか?
なにか別な要素が必要でしょうか?
2017/09/19(火) 05:20:12.63ID:v8M0fO45
ヒント:プログラムが糞
2017/09/19(火) 08:46:47.66ID:87FEHvFq
知らんけどIEはフックされないようにしてるんじゃないか?
バンドオブジェクトか何かつっこんで中でやった方がいいと思う
2017/09/19(火) 18:11:52.42ID:AsNvJAjE
>>850
お前暇なんだな
2017/09/19(火) 18:23:41.92ID:3zeZgKZU
昔から常駐してる人力スクリプトだよ
毎度これ書いて上から目線でホルホルしてるんだろうけど、何年経っても成長しとらんw
2017/09/19(火) 23:36:26.74ID:AsNvJAjE
人力スクリプトw
言えてるわw
2017/09/23(土) 23:55:50.86ID:IXBVjbYe
>>841
環境、vs2017やvs2015とかにしたらいいんじゃね?
community版なら、無料で使えるよ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況