devconの中身を見る②(cmdListClass)

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと devconで、 devcon listclass <クラス名> とパラメータを渡して実行したときの処理の中身を追いかけたい。 クラス名とは、devcon classesで取れるクラス名のこと。たとえはMouseなど。 出…

devconの中身を見る①(cmdClasses)

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと devconで、 devcon classes とパラメータを渡して実行したときの処理の中身を追いかけたい。 該当コード ここ。 https://github.com/microsoft/Windows-driver-samples/blob/b968cfbed556…

可変引数の関数を作る

C++

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと 最近見たコードに「va_start」という、謎の関数?マクロ?が出てきた。 また、引数に「...」とか書いてある関数が出てきた。 どうもこれは、C++の引数を可変個取れる関数らしい。 使い方…

C#から、PowerShellのコマンドを実行する

C#

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと C#のコードから、PowerShellのコマンドを実行して、その戻り値を受け取りたい。 やりかた Process.Start() で、 PowerShell.exe を実行し、そのArgumentに、PowerShellのコマンドと引数を…

コマンドで取れた値の、値の部分だけ取る

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと PowerShellのコマンドで、Get-AppxPackage アプリ名というのをよく使う。 そのコマンドを打つと、PCにインストールされているstoreアプリの情報一覧が取れるのだが、その中の特定の項目の…

DevConのサンプルコードをビルドして動かす(コンパクト版)

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと Windowsのデバイスマネージャーに出てくるような、デバイスドライバ関連の情報を取る方法を勉強したい。 で、MSのドキュメントを見たりしたが、さっぱりわからない。 職場の方に、「DevCo…

DevConをビルドして動かしてみて、ドライバ等々を取り扱うWindowsのAPIを勉強してみる

VS2022 Communityが入った状態からstart devconのサンプルをMSのrepositoryからダウンロード https://github.com/microsoft/Windows-driver-samples/tree/main/setup/devcon VS2022で開いてビルドしようとすると、msg.hがないと怒られる。 なんで?なにかが…

リモートのPCに、VisualStudioでビルドした成果物(.exeなど)をコピーする手間を省く

C#

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと 自分の実装作業用PCでビルドして、それを別の実環境PCにコピーして、そっちで動かしたいときがある。 実環境PCに、リモートデバッグで接続してVisualStudioでデバッグする場合は、以前調…

複数の名前付きパイプサーバーに、1つのパイプクライアントから同じデータを送る

C#

パイプ関連記事 もくじ https://tera1707.com/entry/2022/02/06/144447#Pipe やりたいこと 以前の記事で、名前付きパイプでプロセス間通信のやり方を調べた。 そのパイプの記事では、1つのパイプサーバーに対して、1つのパイプクライアントから文字列を送る…

IEquatable<T>を実装する

C#

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと 図のようにデータを保存するためのクラスがあって、 その親データクラスの、新しいデータと古いデータがあったとして、 それらを比較したいときに、 親クラスの中にある子データクラス1と…

もうとにかく今すぐデバッグのためのログを出力したいときのクラス(C++)

C++

やりたいこと 以前の記事で、C++でログを残すメソッドを作った。 今回それを使おうと思ったのだが、マルチスレッドな処理で使いたいので、排他処理を入れたい。 また、ちょっと書き方がぐちゃぐちゃなので、多少でもマシなコードにしたい。 実験コード 最近…

ミューテックス(std::mutex)でlockする②

C++

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと 前回、std::mutexを使って、排他(C#のlock(obj)的なこと)をやってみた。 が、下記ページによると、 https://cpprefjp.github.io/reference/mutex/mutex.html このクラスのデストラクタ…

ミューテックス(std::mutex)でlockする

C++

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと 以前別の記事で、Win32APIのCreateMutexを使ってC++でMutexで排他するというのをやったが、今回は標準ライブラリというのを使ってやってみる。 実験コード 今回の肝の「Mutex」は、冒頭の…

仮想カメラを勉強してみる

参考 Media Foundation の公式top https://learn.microsoft.com/ja-jp/windows/win32/medfound/microsoft-media-foundation-sdk 仮想カメラ(VirtualCamera)のサンプルの場所(MSの公式サンプル) https://github.com/microsoft/Windows-Camera/tree/master/S…

各種、自分がよくお世話になるサンプル等集

もくじ https://tera1707.com/entry/2022/02/06/144447 各種、自分がよくお世話になるサンプル等集 UWPのサンプル https://github.com/microsoft/Windows-universal-samples/tree/main/Samples デスクトップアプリのサンプル https://github.com/microsoft/W…

Task.WhenAllで、複数タスクのうちどれか1つが終わるまで待つ & 例外処理

C#

もくじ https://tera1707.com/entry/2022/02/06/144447#Task やりたいこと 複数のTaskの完了を待つTask.WhenAll()を使って、複数の処理を、複数のタスク(スレッド)で行わせた後、全部のタスクが終わるのを待つ、ということはよくやるのだが、今回、どれか一…

C++のCOMのコードをC#にもっていきたいときに、interfaceや構造体等の定義の参考にするもの

もくじ https://tera1707.com/entry/2022/02/06/144447#COM やりたいこと COMでなにかをしないといけないときに、自分は C++でまずCOMを使ってやりたいことができるか試す それが出来たら、C#に直す 必要なinterfaceや構造体などを、C++のヘッダーを見ながら…

今使っているスピーカー(デフォルトスピーカー)の情報を取る

もくじ https://tera1707.com/entry/2022/02/06/144447#COM やりたいこと 以前の記事で、つながっているマイク・スピーカーを全部列挙してデバイス名を出す、ということをしたが、今回は、複数のマイク・スピーカーが刺さっているときに、今使われているもの…

タスクスケジューラーで、定期的に自作exeを起動したい

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと ある処理を行うexeを作成したのだが、そのexeを使って、 WindowsPCを起動して、 ログインした3分後に一度実行したい。 さらに、その後10分おきにもexeを起動したい。 (exeは、起動してす…

WaitableTimerで時間を測る

C++

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと Windowsアプリで、タイマーで時間を測るときに、Windowsがスリープに入っている間も時間をカウントしたいと思った。 (C#で、Thread.Sleep(10 * 60 * 1000)で10分待っている間に、Windows…

ボタンを押したときの処理を書く その②

もくじ https://tera1707.com/entry/2022/02/06/144447#Unity やりたいこと 前回、ボタンを押したときの処理の書き方を知ったが、他にもやり方がある様子。それもメモっておきたい。 やりかた AddListener()を使う。 ボタンにスクリプトを割り当てる ヒエラ…

ボタンを押したときの処理を書く その①

もくじ https://tera1707.com/entry/2022/02/06/144447#Unity やりたいこと Unityの画面上にボタンを表示して、それを押したときの処理を書きたい。 やりかた 今回は、Unity Learnの「レッスン 5.3 - ゲームオーバー」で習ったやり方でやってみる。 押したと…

PCに接続されているマイク(オーディオデバイス)を取得し、音量設定をする(EnumAudioEndpoints)(C#版)

COM

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと 以前の記事で、PCにつながっているマイクを列挙して、そいつの音量設定をする、ということをC++でやった。 同じことを、COMの練習もかねて、C#でやりたい。 前提 VisualStudio2022 .NET6 …

StartCoroutine()+IEnumerableを返すメソッド+WaitForSecondsで秒数を測る

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと Unityで時間を測りたい。 前提 Unity 2021.3.31f1 コルーチンを使った待ち処理の作り方 まず、戻り値がIEnumeratorのメソッドを作る。 IEnumerator MyWait() { } その中に、yield return …

PCにマイクやスピーカー(オーディオデバイス)を抜きさししたときのイベントを取る(C#版)

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと 以前の記事で、C++で、オーディオデバイス(マイクとかスピーカーとか)が接続されたときのイベントを拾うということをした。 その時のコードを、C++からC#にしたい。 実験コード COMの練…

ランダムな値を取得する

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと ランダムな値を取りたい。 やりかた 下記のようにする。 // 0~10の範囲のランダムな値を取得する(整数) Random.Range(0,10); // 0.0~10.0の範囲のランダムな値を取得する(float) Ra…

別のオブジェクトの方に向けて、力を加える

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと あるオブジェクトから、別のオブジェクトに向けて、力を加えたい。 (あるオブジェクトから、別のオブジェクトに向かうベクトルを取得したい。それをAddForceに与えてやったら、その方向…

あるdllを握っているプロセスを特定する(tasklist /m)

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと あるdllファイルを削除したかったのだが、「ほかのプロセスが使用中」と言われて消せなかった。 どうしても消さないといけないので、そのプロセスを止めたかったのだが、どのプロセスなの…

いじるのにシステム権限が必要なフォルダに、copyコマンドでファイルをコピーしたい(PeExec)

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと system32フォルダの中のさらに奥の方のフォルダなど、ファイルを貼り付けたりするためにシステム権限が必要になるようなフォルダに、windowsのコマンドのcopyでファイルを貼り付けたい。 …

TPSっぽく自キャラとカメラを動かす

やりたいこと 最近、アーマードコア6というゲームをしたのだがそのゲームでは、PS5のコントローラーで、 左スティックの上下左右で、キャラクターを前後左右に移動し、 右スティックの上下左右で、視点を上下左右に回転していた。 それがカッコいいのでマネ…