super_raumenのプロフィール

@super_raumen super_raumen
ありがとう数0
質問数0
回答数2
ベストアンサー数
0
ベストアンサー率
0%
お礼率
0%

  • 登録日2012/01/25
  • DirectInputのキーボードがキーロガーに?

    現在 フレームを単位としてキーボードの状態変化をリプレイデータとして保存出来る DirectXを使用したゲームを作っているのですが 使用中のセキュリティソフトが DirectInputでGUID_SysKeyboardを使ってGetDeviceStateでキーボードの入力情報を操作しようとすると 「キーロガーの疑いがあります」と言ってきます。 現在のところはデフォルト動作(?)で許可はしているようですが WindowsAPIのウインドウメッセージでキーボードからの入力情報を操作しながら 同時にジョイパッドからの入力情報はDirectInput経由で操作 としていた時は出てなかった気がするので たぶんDirectInputでキーボードの入力情報をいじろうとした場合に出るのでは? と思うのですが SetCooperativeLevelで指定しているフラグは DISCL_FOREGROUND|DISCL_NONEXCLUSIVE  ですが、これで問題ないと考えていますし、害のある動作をするつもりは毛頭なく また、WindowsAPIからジョイパッドの操作情報を制御する、という事はまだ試していませんが、聞いた話では2つまでしか受け取れない(?)ようで、一つのPCで少なくとも4人ぐらいまでは同時プレイできるゲームにしたいので それがあってるなら、出来ればDirectInputがよく そして、ジョイパッドとキーボードで使うAPIの系統を変えるよりかは、DirectInputならDirectInputで統一、としておく方がよりシンプルで直感的なコードになりやすいと思うので、出来ればそうしたいのですが セキュリティソフトを全くいじらずに これを防ぐ方法はないでしょうか? あるいは、それを望む場合は (これが「結構細かい話でこの場合一般的に言って、ということはない」というのであれば) ・たぶん、キーボードについてはDirectInputを使ったらその時点で無理ではないか ・よって、その表示を防ぐにはキーボードについてはWindowsAPIサイドから、普通のウインドウメッセージを使ってやるべき ということでしょうか?

  • dllかlibか

    自作のライブラリの場合は任意で ユーザーが任意のプラグイン読み込めるアプリなら プラグインに関してはdllでしょうが 公共的なライブラリについて 動的ロード推奨か、静的リンクでもいいという線引はどのあたりなのでしょうか 現状では ole32.dll msimg32.dll comctl32.dll comdlg32.dll dsound.dll kernel32.dll shlwapi.dll shell32.dll uxtheme.dll を動的にロードし winmm.lib user32.lib gdi32.lib を静的にリンクしています。 kernel32とかはさすがに静的リンクでもOKでしょうか? あるいはwinmmとかは動的な方がいいでしょうか? なお、対象はWindowsでXP以降とする場合、です。 (Windows以外の場合も教えていただけるとより良いですが) あと、dsound.dll とかについてですが DirectSoundCreate8 だけGetProcAddressすれば あとの struct IDirectSound8; struct IDirectSoundBuffer8; のメンバなどについてはGetProcAddressしなくても使えるようだし リンクエラーにならないのですが、これはどんな感じの仕組みになっているのでしょうか? あるいは、それを気にしなくてもこれは「そうやっておけば問題ない」 としておいてもいいようなものなのでしょうか?