Win32API質問箱 Build124at TECH
Win32API質問箱 Build124 - 暇つぶし2ch806:さまよえる蟻人間
18/12/27 20:32:52.08 xEoyai35.net
ジャバザハット

807:さまよえる蟻人間
18/12/27 21:04:33.87 e6FVPdkR.net
らんらんるー

808:デフォルトの名無しさん
19/01/01 23:36:15.57 ML8jFpoW.net
念のため聞くけどさ、金毘羅とコンパイラどっちが御利益あるかわかってるよね?

809:デフォルトの名無しさん
19/01/01 23:48:35.00 okGaeCMA.net
念のために聞くけどさ、ネタとしてもここに書くつもりじゃなかったよね?

810:デフォルトの名無しさん
19/01/02 12:04:23.94 fpC2xUq7.net
キンピラごぼうの方が御利益ある

811:デフォルトの名無しさん
19/01/06 11:52:07.26 RBr8Qah/.net
ktkr
【Win】 WindowsUpdateで入れなくても良いKBリスト。2018年12月12日まで分
URLリンク(blog.livedoor.jp)

812:デフォルトの名無しさん
19/01/08 21:00:32.75 V1Q/vFq5.net
Windows(上で動作しているアプリ)が鳴らしている音の「生データへのポインタ」
を取得するWin32APIを教えてください。

813:デフォルトの名無しさん
19/01/08 21:03:39.61 V1Q/vFq5.net
812
音データが入っているバッファへのポインタです。

814:デフォルトの名無しさん
19/01/08 21:13:43.96 BVjQZPEf.net
ない

815:デフォルトの名無しさん
19/01/08 21:14:52.46 jpAVboCM.net
dllインジェクションするしかない

816:デフォルトの名無しさん
19/01/08 21:20:13.54 V1Q/vFq5.net
>>814
ありがとうございます。APIとしては用意されていないのですね。
>>815
DLLインジェクション。注射ですか。初めて聞く言葉なので少し調べてみます。
分からなくなったらまた来ます。
目的は、現在発音中の音声のスペクトラムアナライザーを作ることです。
FFT自体はできており、自アプリで鳴らしているWAVデータを処理する
ことまではできていますが、上記のことを実現したいので。

817:デフォルトの名無しさん
19/01/08 21:25:43.44 V1Q/vFq5.net
winmm.dllをフックすれば実現できそうです。
早速やってみます。
ありがとうございました!

818:デフォルトの名無しさん
19/01/09 11:55:22.51 B8oaeAR+.net
>>812
生データかどうかは知らんがミキサーの出力は取れるはず

819:デフォルトの名無しさん
19/01/12 14:22:16.93 nOTIPVuG.net
OS:Windows10
VC++ 2015
なんですが、下記ページの質問者と同じ問題にあたりました。
(LANが抜けているとNICに設定した固定IPアドレスではなく0.0.0.0が取得されてしまう)
URLリンク(social.msdn.microsoft.com)
このページの解決方法(WSAIoctl()関数にSIO_GET_INTERFACE_LIST)では、
ループバックアドレスしか取得できませんでした。
この他、GetIpAddrTable()も試しましたが同様でした。
どうすればLANケーブルが抜けていてもNICに設定した固定IPアドレスを取得できるでしょうか?

820:デフォルトの名無しさん
19/01/12 15:05:56.36 hHDH7/la.net
へ~そうなんや~。この辺サンプル作ってたから試してみよ。
と思ったらPCの裏側弄るのめんどくせw
結果、おっしゃるとおりGetAdapterInfo()でもダメだった。
けど、これってAPIレベルでは取れないんじゃないかな?
プロパティで表示されてる固定IPって、単にレジストリに登録されてるだけでは・・・
GetAdapterInfo()で取れるAdapterNameを取得し、
レジストリの
HLM\SYSTEM\ControlSet001(ここは環境による?)\Services\Tcpip\Parameters\Interfaces\{上記で取れた名前}\IPAddress
から取ればいいんじゃないかなあ。
固定IP設定してないと上記キーは存在せず、代わりにDhcpIpAddressが存在する。

なお、もうPCしまい込んだんで、LANケーブル抜いてレジストリ確認してないw
間違ってたらスマソ

821:デフォルトの名無しさん
19/01/12 15:18:01.40 uLAlds2c.net
>>820
ControlSet001の所はCurrentControlSetの方が良い

822:819
19/01/12 15:43:42.17 nOTIPVuG.net
>>820
わざわざ検証してくださってありがとうございます!
URLリンク(www.atmarkit.co.jp)
このページを見ても、LANケーブルが抜かれている状態でIPアドレスが参照できないのは然りのようですね。
レジストリにアクセスした経験が無く、何か恐いので、
0.0.0.0が取得できたらLANケーブルが抜けているか、とりあえずロクな状態じゃないということで、
エラーを出す等の対処としたい(今回のアプリではこれで十分)と思います。
ありがとうございました!

823:デフォルトの名無しさん
19/01/12 15:58:58.78 hHDH7/la.net
>>821
そうそう、それそれ
>>822
ケーブルが抜けてる時点では通信のしようがないので、
IPを取得できてしまうとむしろエラーの判定方法が面倒くさくなると思う。
だから「取得できない=エラー」でいいでしょう。
なお、レジストリからの値の取得は別に何も恐くは・・・書き込みは気を遣うけど。

824:819
19/01/12 20:54:40.03 cv9IM3HX.net
>>823
RegGetValue()で固定IPアドレスを簡単に取得できました!
レジストリアクセス、恐るるに足らず・・・!w
>だから「取得できない=エラー」でいいでしょう。
IPアドレスを取得できても、LANケーブルが接続されていないと、
その後のbind()で失敗するので、そこでエラーを出すことができます。
さらに、一定時間間隔でbind()を試みておけば、
ケーブルが接続された段階で正常な受信処理に進むことができます。

これで理想的な対応が完了しました!
ありがとうございました!。゚( ゚´∀`゚)゚。

825:デフォルトの名無しさん
19/01/13 10:39:34.53 ATVrIMyH.net
>>819
WirelessLANで固定IPのときな何が取れるのかな

826:819
19/01/14 02:01:50.42 DNWDWbUc.net
>>825
確認してみました。
・Wi-Fiオフ ⇒ 0.0.0.0
・Wi-Fiオン(AP未接続) ⇒ 0.0.0.0
・Wi-Fiオン(AP接続) ⇒ 設定した固定IPアドレス
APへの接続有無が、有線時のLANケーブル接続有無に対応する結果となりました。
もちろん、上記ケースのいずれの場合においてもレジストリからは設定された固定IPアドレスが取得できました。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch