4

マイク入力を分析し、クライアントが入力したクレジット カード番号を表す DTMF トーンを記録する c# 4.0 アプリケーションを作成しました。これはすべてうまく機能しますが、PCI コンプライアンス( www.pcisecuritystandards.orgを参照) の下で作業しているため、ログインしているユーザー (コール センターのスタッフ) がマイク入力を聞いたり録音したりすることを許可したくありません。サードパーティのアプリまたは携帯電話を使用して、クレジット カード番号を独自に解析できます。だから私が持っている質問は次のとおりです。

  • マイク入力特定のアプリケーションに制限して、他の場所で聞いたり録音したりできないようにするにはどうすればよいですか?

これに対する解決策がない場合、2 番目の質問が発生します。

  • マイク入力特定のユーザーに制限して、他の場所で聞いたり録音したりできないようにするにはどうすればよいですか (特定のユーザー資格情報で Windows サービスとしてソフトウェアを実行できます)。

よろしく、 JB

4

5 に答える 5

1

サウンドデバイスのボリュームをコントロール(MUTE)して、作業が終わったら元の状態に戻していただけると助かりますか?アイデアについては、このリンクを参照してください。幸運を。

于 2013-05-18T04:57:47.703 に答える
1

デバイスへのアクセスを制限する主な方法は、デバイスにセキュリティ記述子を設定することです。そのため、特定のユーザー グループにアクセス許可を付与することが、あなたがすべき方法です。

Windows XP の正確な実装は、それ以降のバージョンの Windows とは異なる場合があります。Windows 8 にも新しい可能性があります。オーディオ ミキサー APIは、Windows XP で使用できます。Vista 以降では、Windows マルチメディア デバイス (MMDevice) APIを使用できます。プロパティ ストアの MMDevice API の実装。とを使用IPropertyStore::SetValueIPropertyStore::Commitてプロパティを変更できます。統合デバイス プロパティモデルは、Windows Vista 以降で導入されています。内部で SetupAPI を使用してデバイスにアクセスし、そのプロパティを設定するさまざまな Windows API があります (こちらを参照)。PKEY_Device_SecuritySDSデバイスを保護するにはプロパティを設定する必要があると思います。SetupDiSetDeviceRegistryPropertyのような古い API を使用できますSetupDiSetClassRegistryPropertyを使用して、Windows XP でプロパティを設定します (こちらを参照)。

コンピューターを起動してdevmgmt.mscマイク デバイスの既定のプロパティを調べると、セキュリティ記述子が表示されます。

ここに画像の説明を入力

必要なのは、特定のユーザー グループ (またはユーザー) のみがアクセスできるように変更することです。

SetupDiSetDevicePropertyおよびまたは(こちらを参照)によって変更できるPKEY_Device_SecuritySDSおよびプロパティがあります。読み取り可能なセキュリティ記述子定義言語 (SDDL)が使用されているため、SDS パラメーター (または) の使用がより簡単になる可能性があります。PKEY_Device_SecuritySPDRP_SECURITY_SDSSPDRP_SECURITYPKEY_Device_SecuritySDSSPDRP_SECURITY_SDS

デバイスのセキュリティ記述子を変更した後、SetupDiSetClassInstallParamsSetupDiCallClassInstallerを使用DIF_PROPERTYCHANGEDICS_PROPCHANGEて、デバイスをリセットする必要があります。コード例は、WinDDK の devcon ユーティリティのソース コードにあります。または、 CM_Disable_DevNodeCM_Enable_DevNodeを使用して、新しいプロパティで再起動することもできます。

于 2013-05-17T14:13:11.570 に答える
1

アプリケーションで ASIO オーディオ ドライバを使用できます。

ASIO は、Steinberg が低遅延のオーディオ入出力を提供するために開発した技術であり、副作用として、ASIO ドライバーを使用するデバイスを必要とすることは、デバイスの使用をそれを必要とするプロセスに完全に制限します。あなたのニーズとは無関係です。

ASIO4ALLプロジェクトのおかげですべてのサウンドカードで利用できるため、アプリケーションで提供する限り、互換性は問題になりません。

詳細については、ここで ASIO に関するウィキペディアの記事を確認するか、ここで SDK を入手してください(続行するには、Steinberg 開発者アカウントを登録する必要があります)。

于 2013-05-17T15:02:29.863 に答える
1

あなたの問題の解決策は、KSフィルターを書くことだと思います

アプリケーションのオンデマンドで DTMF をデコードし、デコードしたデータをアプリケーションに送信できるカーネル ストリーミング フィルタを作成します。フィルターが DTMF デコード モードの場合、フィルター スタックの残りの部分に無音を出力するだけです。

USB オーディオ デバイスを使用する場合は、代わりにGFX フィルターを作成することもできます。これは、ユーザーごとに構成できます。ただし、これは 32 ビット オペレーティング システムでのみ機能するようです。WinDDK には というサンプルがありますgfxswap.xp

于 2013-05-13T08:57:47.373 に答える
1

Core Audio API でできるはずです。システム内の再生デバイスとキャプチャ デバイスごとに、デバイスを排他モードで使用できるかどうかを制御できます。

1 つの欠点 - Windows XP では Core Audio API がサポートされていません。

于 2013-05-13T08:40:08.173 に答える