X



Win32API質問箱 Build123©2ch.net
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001デフォルトの名無しさん 転載ダメ©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/
0841デフォルトの名無しさん
垢版 |
2017/09/17(日) 19:55:34.73ID:j4nqlc4K
CreateWindowEx で WS_EX_COMPOSITED を指定しても、なぜかWS_EX_COMPOSITEDが未定義のシンボル扱いで通りません。
他のスタイル変数だと通ります。
CS_OWNDC、CS_CLASSDC は使っていません。
原因と、解決策を教えてください。それらしいワードでググっても良くわかりませんでした。
お願いします。

OS windows7 32bit
環境 BCC Developer
0847デフォルトの名無しさん
垢版 |
2017/09/17(日) 23:47:17.58ID:CQjOt/D7
そもそも今時デメリットしかねえから要らんやろこのスタイル>WS_EX_COMPOSITED
0848841
垢版 |
2017/09/18(月) 06:53:54.99ID:7suqbGay
>>844
ありがとうございます。動きました。
なるほど古すぎたんですね。
0849838
垢版 |
2017/09/18(月) 15:12:02.60ID:3H+QkIIH
>>839 >>840
Chromeウィンドウなどのフックと同じようにやるだけで出来ますか?
なにか別な要素が必要でしょうか?
0851デフォルトの名無しさん
垢版 |
2017/09/19(火) 08:46:47.66ID:87FEHvFq
知らんけどIEはフックされないようにしてるんじゃないか?
バンドオブジェクトか何かつっこんで中でやった方がいいと思う
0853デフォルトの名無しさん
垢版 |
2017/09/19(火) 18:23:41.92ID:3zeZgKZU
昔から常駐してる人力スクリプトだよ
毎度これ書いて上から目線でホルホルしてるんだろうけど、何年経っても成長しとらんw
0856デフォルトの名無しさん
垢版 |
2017/09/24(日) 14:16:10.86ID:xJTY0L3v
使用言語 FreeBasic + FBE
OS    Windows 10
症状、1MB, 100 個BASファイル(1MB)、10個位BIファイル(100KB)、を超えたあたりから、
異常停止し、「Debugしますか、停止しますか」の旨の表示を出して終了する。異常停止場所はその日によってバラバラ。
しかし、タスクマネージャーと同時実行では発生しない。

FreeBasic の場合、OS由来で異常停止する場合が多発して、
言語側の障害(仕様)は、*.DLLファイルの不在、配列宣言外の要素を参照した時、に発生する。
両者ともに特定の場所で、異常停止してくれるが、今回は、停止位置が実行中の他のタスク(タスクマネーシャー)の影響を受けている。
したがって、何かの事象を発生させる、等の対応で修正可能と思われる。
ご存知の方いらっしゃいましたらば、お知らせください。
0858デフォルトの名無しさん
垢版 |
2017/09/24(日) 15:05:57.20ID:KcVpSqdX
新興のGoだろうがRustだろうがWindows10でバグったりしないぞ
明らかに言語側の問題
0859デフォルトの名無しさん
垢版 |
2017/09/24(日) 16:39:30.63ID:xJTY0L3v
>>857
>それはFreeBasicのバグなので
フリーソフトなので、ご指摘のように言い切った内容ですと、既にどなたかが発表しているものと思われます。
発表されている内容をお知らせください

>>858
>バグったりしないぞ
処理系が異なります。したがって、一概に言えないのですが。
Rustについては普及しているようです。
https://ja.wikipedia.org/wiki/Rust_%28%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E%29
>2016年8月2日にリリースされたFirefox 48にはRustで書き直されたメディアパーサが組み込まれており、Mozillaが開発しているブラウザのFirefoxにおいてRustで書かれたコードが書き加えられる初例となった
ただ、Firefox で3ウインドー、30タグつぐらい同時に読み取ると異常終了するので、障害発生部位がRustで書かれているのであれば、同様な現象と思われます。
旧osバージョン+対応fIREFOXでは、異常停止が発生しなかったと記憶しています。
0860デフォルトの名無しさん
垢版 |
2017/09/24(日) 16:51:45.14ID:J5jaZAG3
ここ、Win32APIのスレなんだけど、Win32APIにバグがあるっていうのが主旨ですか?
0863デフォルトの名無しさん
垢版 |
2017/09/24(日) 17:04:46.71ID:xJTY0L3v
>>861 支払う意思はありません。
>>860 ザベの巻号年を忘れましたが、「ユーザー又は末端ユーザーが回避できる障害はバクではない」旨の記事がありました。
従いまして、回避方法が公開されているのであれば、APIのバクではありません。
ユーザー(プログラマー)に回避する義務(商習慣?, 公序良俗?)がありますので。
0864デフォルトの名無しさん
垢版 |
2017/09/24(日) 17:13:08.33ID:7Tzf/3Hr
互いに矛盾する結果を出すAPIを同時に使用する必要があるなんてざらだ
それを吸収しなければならない上位層は必ず矛盾が発生し、複雑化する
とりあえず当座必要な全機能には矛盾のない解には到達するが、それ以上の機能を追加すると矛盾が再発する
APIがしっかりしていればソフトは10分の1ほどのコードで済むだろう
0865デフォルトの名無しさん
垢版 |
2017/09/24(日) 17:13:55.12ID:xJTY0L3v
>>862
同様な調査を自治会長は500円でやれ、とポケットむに500円ねじ込んだ。
サーチャーに依頼するとして、20年ぐらい前に概略を電話問い合わせした時には、20万もって窓口まで来てくれ、という返事だったので断った。
だけど、自治会長の考え方だと500円でできるという内容。
0866デフォルトの名無しさん
垢版 |
2017/09/24(日) 17:24:23.20ID:okRUlktS
>>863
「ユーザー又は末端ユーザーが回避できる障害はバクではない」
回避方法が公開されている必要はないだろ。自分で回避すればいいんだから。
0867デフォルトの名無しさん
垢版 |
2017/09/24(日) 17:30:18.48ID:6sZgRRai
FreeBasicみたいなゴミを使ってるから頭がおかしくなったのか
頭がおかしかったからFreeBasicみたいなゴミに手を出したのか
0868デフォルトの名無しさん
垢版 |
2017/09/24(日) 17:35:20.31ID:jWeMnfEt
>>867
まだFreeBasicのせいだと決まったわけではあるまい。
ただ残念なのは>>856の内容ではWin側の問題だとは全く思えない所。
0869デフォルトの名無しさん
垢版 |
2017/09/24(日) 17:42:11.62ID:uKYPwFuQ
引き合いに出してる記事とやらもやべえな
ある言語の浮動小数点演算が狂ってるとして、
ユーザーが整数演算で浮動小数点を再実装して回避した場合
言語のバグではなくなるのか
狂ってるだろ

まあこの脳味噌数ミリグラムしかなさそうなアホがうろ覚えしただけか
自分に都合のいいように曲解したか
どちらかだろうけど

バグじゃなくてバクですとか言うなよ
0871デフォルトの名無しさん
垢版 |
2017/09/24(日) 17:49:22.16ID:xJTY0L3v
>>867
>頭がおかしかったからFreeBasicみたいなゴミに手を出したのか
大正解。
MS の3か月ぐらい無料で使える Visual stuio https://www.microsoft.com/ja-jp/dev/campaign/free-edition.aspx
をDLしたのだが、使い方(操作方法)がさっぱりわからなかった。

>>866
>自分で回避すればいいんだから。
まー、外注に出したり、OSを入れ替えたり、MSやFBで公開しないですむ回避方法があるわ。

で、Freebasicに手を出した。

>>868
タスクマネージャーを同じことをすれば、回避できるから、
タスクマネージャーがやっている手法をしりたいのよ。
おっしゃるとおり、タスクマネージャーを起動することで回避できるから、APIのバグではない。
0872デフォルトの名無しさん
垢版 |
2017/09/24(日) 17:51:14.63ID:KdVNcd4v
>>856
起きてる問題は1MBや100KB越えると異常停止するわけでしょ
ということはそのサイズ以下に抑えれば問題が起きない
ユーザー又は末端ユーザーが回避できる障害だからバグでもない
これで無事解決よ。めでたしめでたし
0873デフォルトの名無しさん
垢版 |
2017/09/24(日) 17:59:36.07ID:xJTY0L3v
>>869
>言語のバグではなくなるのか
>狂ってるだろ
過去にやったことがある。Fotran 6だったかな、
単精度小数演算で10進数を出力してファイルに保存する、保存した値を再度利用する、を延々繰り返すルーチンで、
小数点2桁目て゛ずれるようになった。1000倍して、整数演算に直して、使用するようにした。
>>867の指摘するように、くるっているよ。

>バグじゃなくてバクですとか言うなよ
すまんな。
画面の濁点が全く読めないくらいに視力がないので、結構間違える。逆うち、ぜの代わりに゛せとかもやる。
0874デフォルトの名無しさん
垢版 |
2017/09/24(日) 18:11:55.34ID:xJTY0L3v
>>872
それやったことがある。
最初にソースを適当に作って、
使用しているサブルーチンを拾って、つなげるルーチンを作って実行
という手法。
結局、この拾う作業が膨大になって、自分自身のオーバーレイ化しないと動かなくなってしまった。
同じオーバーレイ化するならば、最初から直接動かした方が単純だ、ということで、もとに戻した。

当時は、サブルーチン別に拾ってlinkするという機能が、Fotran6しか対応していなかった。
1990年頃に発行になった書籍では、「頭の良いコンパイラーは」という条件が付くものの、この機能が存在することが指摘されていた。

なお、Visual Basic 6.0で使っていた自家製Libの内80%位の内容。
FreeBasic になった関係で、旧QuickBasicのLibの一部が復活している。
残る20%はGSL, GMP, MPFR, Sqlite等に切り替えられそうなので、これから、まだ増える予定。
0877デフォルトの名無しさん
垢版 |
2017/09/24(日) 22:14:32.71ID:mcfyXVZ5
どこのスレだか忘れたが無差別に住人を煽りながらDarkBasicを推してたクソコテを思い出した
0878デフォルトの名無しさん
垢版 |
2017/09/24(日) 23:27:07.55ID:Bf5PdX/p
ざっくりいうと、OSのせいで1MB程度で不具合が起こることはない
RustのはFirefoxのプログラムが悪い

タスクマネージャーを起動してると落ちない理由は思いつく限り
・偶然
・OSの環境が壊れてる(別のPCやOSクリーンインストールでなおる)
・FreeBasicやウイルス対策ソフト、その他(ウイルスとか)がタスクマネージャーが存在するなどを理由に挙動を変える
とかかな

とりあえず別のPCで確認
0883デフォルトの名無しさん
垢版 |
2017/09/26(火) 12:36:12.89ID:CgqsIdu0
古来からあるリソースエディタと何が違うの?
と思ったら、リソースエディタじゃなくてリソーエディタかよ。
で、なにこれ?
0885デフォルトの名無しさん
垢版 |
2017/09/26(火) 14:38:17.78ID:OZczKUwr
ドヤ顔でリリースしましたとか言ってるけど
こんな誰に需要あるのかわからないゴミみたいなオナニーツール触ってくれる奴なんかおるんかね
0887片山博文MZ ◆T6xkBnTXz7B0
垢版 |
2017/09/26(火) 16:22:16.43ID:mKY8ED9y
>>881
未知のバグであること。
メールで連絡が取れること。
Amazonギフト券を受け取る意思があること。
0888片山博文MZ ◆T6xkBnTXz7B0
垢版 |
2017/09/26(火) 16:24:29.68ID:mKY8ED9y
>>883
EXEやDLLに含まれているリソースを追加・編集・抽出・削除ができるツールです。
ダイアログエディタ代わりに使うこともできます。
0889片山博文MZ ◆T6xkBnTXz7B0
垢版 |
2017/09/26(火) 16:38:39.81ID:mKY8ED9y
>>885
ドヤ顔が見えますか? それは幻覚です。病院へ行って下さい。映画を観ない人は、映画評論家になる資格は
ありません。公共の掲示板でお下品な話はやめましょうね。わからないのは、あなたの知能が足りないからです。
0892デフォルトの名無しさん
垢版 |
2017/09/26(火) 16:50:48.66ID:CgqsIdu0
>>888
昔からあるリソースハッカーとかと何か違うところあるのかなってのが主旨で、
分かったのは名前が違ったって点なの。
何ができるかは貴殿の書いてるとおり分かっています。
0894片山博文MZ ◆T6xkBnTXz7B0
垢版 |
2017/09/26(火) 17:22:42.38ID:mKY8ED9y
>>892
拡張性が高い。
オープンソース。
リソースIDの関連付けを設定すれば、resource.hが読める。
GUI編集が可能。
0898デフォルトの名無しさん
垢版 |
2017/09/27(水) 04:02:55.04ID:f2v5tQrk
客観的に見てバグと思われるものは全部未知のバグなんだけど頭大丈夫か?
片山が未知のバグに対して”仕様です”と言わない保証は?
まともな頭ならこっちが発見したバグは全部未知のバグで1回報告するたびに5千円くれるのか?
まぁ誰も触らんだろうが
0899片山博文MZ ◆T6xkBnTXz7B0
垢版 |
2017/09/27(水) 04:42:53.66ID:wqCON9vO
>>898
確かに非加算無限個存在するかも知れないが、デパートの試食コーナーみたいに常識的に考えてくれ。
0902デフォルトの名無しさん
垢版 |
2017/09/27(水) 10:38:38.93ID:k2PS2F7X
>>894
GUI編集って、例えばダイアログイメージが表示されてマウスで移動やサイズ変更可能ってこと?
それならまあ、いつか使うかもね。
0903デフォルトの名無しさん
垢版 |
2017/09/27(水) 11:42:36.33ID:zCHNwx74
誰か助けてください
ゲームのマウスの入力読み取りが、RawInputと DirectInput ありますよね、
昔は設定でオン、オフがあったのに、いつの間にか設定を無くし、RawInputを強要する糞アプリがあります!!

これを、強制的にRawからDirectInputにしたいのですが

なにをどうすればいいのですか?

フックして raw inputをブロックすれば実現できます?

そもそも raw inputのマウスってどのAPIなのか、詳細分かりません

ヘルプ
たのんます
0904デフォルトの名無しさん
垢版 |
2017/09/27(水) 17:03:40.82ID:7dA/9JOQ
元のアプリからDirectInput用のコードが削除されてたら
何やっても無理じゃね?無いんだから
0905デフォルトの名無しさん
垢版 |
2017/09/27(水) 18:49:01.07ID:zCHNwx74
はい? raw inputってXP以降しか使えないんですが?
じゃあ2Kで動かしたらどうなる訳、ってraw inputの有無で切り替えてるわけですよね

だからWndProcフックしてraw input関係の該当API?を防げば いいと思ってるわけで、

APIのプロが集うであろう当スレで聞いてるわけですが?
0907デフォルトの名無しさん
垢版 |
2017/09/27(水) 19:32:45.39ID:CtWRhHzI
XPのサポートどころかVistaのサポートも切れてるのに何を言っているのやら。
きっと、設定とともに切り替える機能自体も削除されてるだろ。
0909デフォルトの名無しさん
垢版 |
2017/09/27(水) 20:00:59.41ID:zCHNwx74
>>907
だから、削除されてるとかそういう勝手な妄想はいらないんですよ
てか、Directinput無かったら2kのマウスは何で動いてるんすか?笑
2kでも動いた、これが事実ですから。
↑に書いたようにraw inputのAPIをファックしてしまえばDirectinputなるんですよ

raw inputマウスだけでキーボードはDirectinputですしね

後から追加にしたに過ぎず、100%UIからON、OFF消し去っただけなんですよ

ってわけで有益なアドバイスをお願いします
0911デフォルトの名無しさん
垢版 |
2017/09/27(水) 20:04:21.30ID:zCHNwx74
>>908
仮想OSとか持ち出したらAPIスレの意義は?
仮想は遅いから嫌ですね、、

コテハンの力見せて下さいよ、お願いします
0914デフォルトの名無しさん
垢版 |
2017/09/27(水) 20:24:19.97ID:oG2Zpa4d
DirectInputのコードが残ってんなら
俺だったらOllyDbgで調べて、分岐しているところを
WriteProcessMemory()で書き換えるプログラムをつくる
0915デフォルトの名無しさん
垢版 |
2017/09/27(水) 21:55:19.23ID:zCHNwx74
DLLインジェクションでAPI関数を置き換え

↑これをしたいのですが意味が分かりません
今回の置き換えるべき関数名でSetWindowsHookEx を使いサンプルコードを示してください
0916デフォルトの名無しさん
垢版 |
2017/09/27(水) 22:00:15.91ID:hZX+opcA
> てか、Directinput無かったら2kのマウスは何で動いてるんすか?笑
ぶっちゃけFPSとかでもなけりゃWM_MOUSEMOVEで大抵事足りるべな
0919デフォルトの名無しさん
垢版 |
2017/09/28(木) 08:16:32.65ID:H8dM1RkU
>>915
それもう丸投げだから諦めろ
普通にAPIフック関係の色んなページ見て
自分なりに統合させて試行錯誤しろ
0922903
垢版 |
2017/09/28(木) 13:41:17.72ID:te0QQW2V
皆さんありがとうございます。
APIフック関連ページ読み漁ってますが、direct→rawを試みてる人はちらほら居ても、逆はいなくてソース無いので難航してます。

それで現状の知識では、目的のAPIフック完成させれていないので、私がやろうとしてる事は実現可能なのかだけお聞きしたいので、どなたか回答お願いします

>>916を見て、調べなおしたのですが、
2kはDirectinputに切り替わっているといいましたが、これは誤りでした。
単にタイトル画面、設定画面といった画面でのみ、OS関係なく
Directinput、WM_MOUSEMOVE(Windows Input?)どちらかは分かりませんが、とにかくRawinput以外を使っているだけでした

で、お聞きしたいことですが、
DLLインジェクトでRawinputの関数をフックして、DirectinputもしくはWindows Inputの関数に飛ばすわけですよね

コードがあるといっても、メニュー画面だけなわけですが、
上記のようなフックをした場合、メニュー画面以外でもマウス動くのでしょうか?

推測で構わないので教えてください、よろしくお願いします
0923デフォルトの名無しさん
垢版 |
2017/09/28(木) 14:35:28.79ID:jImnQ5Gm
> 上記のようなフックをした場合、メニュー画面以外でもマウス動くのでしょうか?
アプリの作りによる

> 実現可能なのかだけお聞きしたい
可能
だけどお前に作れるとは思えない。作者に再サポートするように要望出せ。メールに数万分ギフトコード添えれば修正の可能性上がる
0924デフォルトの名無しさん
垢版 |
2017/09/28(木) 20:44:32.90ID:te0QQW2V
>>923
今回のはAPIフックすれば出来ることでしょ?
raw→direct置き換えで
もし、アプリ側にdirectInputのコードが残ってなかったら、
DLLインジェクションでその処理も追加しないといけなくて、その場合一気に敷居が高くなるってことですよね?

今回は幸いにも、メニュー画面だけとはいえ、directInputで処理されてる部分が残ってるので、
APIフックで飛ばしてしまえば目的動作するわけで、
その手助けをお願いしてるんですよ?
要望出してこたえるような作者だったらとっくにやってますわ
0925デフォルトの名無しさん
垢版 |
2017/09/28(木) 20:52:04.74ID:te0QQW2V
あと、片山博文MZ ◆T6xkBnTXz7B0さんのサンプル見たんですけど、
これIAT書き換えですよね。
アプリOEP書き換えられてるのでこの方法は無理くさいんです

そこで今、MS detoursってフックライブラリを用いてAPIフックしたいんですけど上手くいきません

detour分かる人いませんか?

Cスレで聞いてますが、内容ほぼAPI関係ですしCスレ住人では手に負えないようなので、
APIのプロである皆さんの手助けをお願いします

DLLの動作原理は理解しました。DLL=アプリ拡張。exeにぶちこんで機能追加、動作変更とやりたい放題出来るのがdll
0926デフォルトの名無しさん
垢版 |
2017/09/28(木) 21:02:10.43ID:plgdDRJR
う〜ん。
自分は識者とはとても呼べないレベルだけど、DirectInputもraw inputと同じでWM_INPUT読むんじゃないの?
MSでこんなこと書かれてるんだけど。

内部的には、DirectInput によって WM_INPUT データを読み取る 2 つ目のスレッドが作成され、DirectInput API を使用することによって、単に WM_INPUT を直接読み取る場合よりもオーバーヘッドが増加します。

https://msdn.microsoft.com/ja-jp/library/bb206183(v=vs.85).aspx
0927デフォルトの名無しさん
垢版 |
2017/09/28(木) 21:04:11.65ID:9inLL+H4
>>924
フックで出来ると思うなら、とりあえずフックして置き換えてみればいいじゃん
それが可能かどうかなんて実際に試すかエスパーじゃない限り分らないよw
0930デフォルトの名無しさん
垢版 |
2017/09/29(金) 00:28:00.92ID:RPVfxA+q
directinputとraw inputは実装方法が異なるからapihookで修正するのはかなり面倒くさいと思うんだが。
あとeasyhookってライブラリがお勧め。
0932デフォルトの名無しさん
垢版 |
2017/09/29(金) 03:50:21.56ID:OKETC/Nl
このスレの1にAdvanced Windows読めよって書いてなかったっけ
読んでから質問しろで終わりだろ
なに相手してんだ馬鹿どもが
0934デフォルトの名無しさん
垢版 |
2017/09/29(金) 07:54:38.41ID:zrPER7+W
>>924
フックで飛ばすのは意識だけにしとけ

>>925
> DLLの動作原理は理解しました。DLL=アプリ拡張。exeにぶちこんで機能追加、動作変更とやりたい放題出来るのがdll
全然違う
万能ではない
レス数が900を超えています。1000を超えると表示できなくなるよ。

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