2023-01-01から1年間の記事一覧

Media Foundationでカメラデバイスを列挙する

C++

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと 先日、マイク・スピーカーのデバイスを列挙するということをやってみたが、今度はカメラを列挙したい。 で、Windowsには「Media Foundation」というのがあり、それでそういうことができる…

PCのマイク・スピーカー(オーディオデバイス)の音量変更・ミュート状態変更時のイベントを取る

C++

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと マイクやスピーカーの音量変更、ミュート状態が変更されたことを知りたい。 やり方 IAudioEndpointVolumeCallbackインターフェースクラスを実装したクラスをRegisterControlChangeNotify(…

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

C++

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと 前回の記事(下記)で、マイクやスピーカのデバイス(エンドポイント)の名前を取得したり、現在の音量を取得、設定したりした。 https://tera1707.com/entry/2023/10/10/224852 今回は、…

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

C++

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと オーディオのデバイスを列挙して、それらの情報を取りたい。 やったこと MMDeviceEnumeratorのEnumAudioEndpoints()を使う。 APIの説明 https://learn.microsoft.com/ja-jp/windows/win32…

TaskにConfigureAwait(false)を付けると、それ以降の処理はそれ以前のスレッドとは別のスレッドで行われることになる

C#

やりたいこと Taskでawaitしている個所に.ConfigureAwait(false)を付けると、その後の処理で、アプリが落ちたりすることがある。なんでなのか?調べたい。 わかったこと .ConfigureAwait(false)を付けたときとつけてないときで、処理が行われるスレッドが違…

実行中のプロセス自身のパスをとる

C#

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと 実行してるexe自身のフルパス、もしくはそれが保存されてるフォルダのパスを取りたい。 サンプルコード // フォルダ Console.WriteLine(Environment.CurrentDirectory); Console.WriteLin…

Taskを調べてると頻繁に出てくる「コンテキスト」とは何か?

C#

やりたいこと Taskとか非同期処理を調べていると、あちこちに「コンテキスト」「同期コンテキスト」「非同期コンテキスト」という言葉が出てくる。 これが、調べても調べても何のことを言っているのかわからない。 なんとなく、「コンテキスト ≒ スレッド」…

WMIのクラスを全部取る・その中のプロパティ値もできるだけ取る

WMI

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと WMIでなにか値をとりたいなと思ったときに、どのクラスからどんな値が取れるのかがわからないので、いつも出だしで困る。 あまり良いやり方ではないかもしれないが、とりあえずもう全部の…

null許容(null許容値型/null許容参照型)についてのメモ

C#

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと タイトルとは別のしらべものをしているときに、 null許容について知らないことがいろいろわかった気がしたので、理解したかどうかはおいておいて、忘れたくないものを取り急ぎメモ。 別の…

型パラメーターの制約条件(where T : 〇〇)

C#

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと あるとき、ジェネリクスで、 T型の戻り値をもつメソッドを引数にとって、 引数で受けたメソッドを実行する。 実行したときに例外なく実行出来たら、そのまま引数で受けたメソッドが返した…

.net Frameworkの中身のコードを見る

もくじ https://tera1707.com/entry/2022/02/06/144447 # やりたいこと C++で、Windowメッセージ(WM_〇〇みたいな)をうけたことをきっかけにして何か処理を行う、みたいなことをしていたのを、C#に移植したいときに、 同じようなきっかけ(イベント)を拾える…

次回のWindows起動時に消してほしいファイルを登録して、消してもらう

C++

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと 保存してあるファイルについて、 今すぐは消さない(消せない)けど、次回Windows起動時に、OSに消してもらうということができるらしい。 普通は、アプリは自分自身(exe)を消したりはでき…

GetLastError()のエラーコードの一覧のありか

C++

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと WindowsでC++でコードを書いていて、GetLastErrorでエラーコードを見たときに、そのコードの意味を調べるのだが、毎回どこ見たらいいんだったっけ?となるのでメモっておきたい。 エラー…

標準出力/標準エラー出力をリダイレクトする

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと 今更、windowsには「標準出力」だけではなく「標準エラー出力」というものがあるのを知った。 で、日ごろ使っているwindowsのコマンドが出す文言も、「標準出力」を通して表示されている…

C#コードから起動したプロセスの標準入力に、なにか入力する(Y/Nみたいなのを自動で入力する)

C#

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと 以前の記事でやったようなのを、C#から起動したコマンドでもやりたい。 コマンドを起動した後に、YesかNoかを聞かれる場合に、自動で「Y」と入力したことにしたい。 サンプルコード 実験…

コンソールアプリの、標準出力/標準エラー出力への出力を受け取る(非同期版)

C#

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと 以前の記事で、コンソールアプリの標準出力を受け取る方法を調べた。 今回は、それを非同期で出来るというのを見たので、やり方をメモしておく。 サンプルコード 実験用に、標準出力と標…

コンソールアプリの、標準出力への出力を受け取る

C#

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと 別のコンソールアプリのexeを実行したときに、 戻り値ではなくて、コマンドプロンプトで実行したときに黒窓に出てくるアレを受け取りたい。 例えば、ipconfigのコマンドだと、下記のよう…

別のexeを、自分のアプリ(exe)に取り込んで、好きな時に吐き出して実行する

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと 自分が作ったプログラムのexeと同じ階層に、あらかじめ指定のファイルを配置しておきたい場合に、 下図のように、ソリューションエクスプローラーにファイルを追加して、そのプロパティで…

よく使うgitコマンド

git

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと 普段tortoise gitを使っていて、gitコマンドはあまり意識せずに使えてしまってるが、 たまに細かいことをしようと思うときや、別のgitクライアントソフトを使ってる人からgitに関する質問…

インターフェース・継承周りの実験②

C#

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと 前回記事の続き。 コードと資料 コード https://github.com/tera1707/InterfaceJikken 資料 https://github.com/tera1707/Siryou/blob/master/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%8…

インターフェース・継承周りの実験①

C#

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと 仕事で読むコードに「interfaceの明示的実装」が出てきたが、 以前理解したはずなのに、またアレ?となった。 もう忘れないようにまとめておきたい。 前提 VisualStudio2022 .NET6 コード…

C#のPJから使うC++(アンマネージド)のDLLのPJが勝手にコピーされてくれないのでビルド後イベントでコピーする

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと C#のプロジェクトからC++で作ったDLLを使うときに、ビルドしただけでは自動でコピーされてくれない。 (C#のexeの出力先に、C++のDLLがコピーされてくれないので、ビルドしただけではデバ…

Resource.reswでローカライズした文言データの出力先の.priを、MakePri,exe dumpで見る

もくじ https://tera1707.com/entry/2022/02/06/144447#WinUI3 やりたいこと 下記のページのやり方で、WinUI3でローカライズできることが分かった。 https://tera1707.com/entry/2022/03/24/224855 分かったのだが、ローカライズのためにResource.reswに書い…

UAC関連設定とログインユーザー、起動方法により、起動したアプリの権限がどうなるか実験

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと アプリが管理者として起動しているかどうかを見て何かするような処理を実装したときに、 WindowsのUAC(User Account Control。ユーザーアカウント制御)についての理解が足りないために…

WindowsのGUIアプリ開発で、ViewModelがやるべきことが何なのか未だ全然わからないので、考えてみる(2023年7月版)その2【作成途中】

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと なんのためにViewModelを書くのか、ViewModelがなんの役に立つのかが知りたい。 この記事の前半は、こっちに書いた。 https://qiita.com/tera1707/items/1e4c80d26e7e72bfe3cd 以下は、続…

ContentをもつことができるUserContorlをつくる

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと <Button>のように、 <Button> <Button.Content> <TextBlock Text="aaa"/> </Button.Content> </Button> と書かなくても、 <Button> <TextBlock Text="aaa"/> </Button> と、直接?値を入れられるようなプロパティを作りたい。 それで、自前のコントロールを作りたい。 やったこと そういうUserControlを作ろうと思った</button>…

VisualStateManager で、xamlで画面変化をつくる

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと 前回、CustomControlの作り方を調べた。 その中で、VisualStateManagerというのを使って、画面の状態遷移(たとえば信号を緑から赤に切り替えたりとか)ができるというのを知った。 前回のC…

カスタムコントロール(CustomControl)を作る

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと 以前WPFでUserControlを作ったが、CustomControlというものもあるらしい。 どうも、UserCotnrolは、作ったときに定義した見た目(Template)をそのまま使うのだが、CustomControlは、それを…

起動時にNavigationViewItemを選択しておく/コードから選択を解除する

もくじ https://tera1707.com/entry/2022/02/06/144447#WinUI3 やりたいこと なにもしないと、NavigationViewの表示直後は、どの項目(NavigationViewItem)も選んでいない状態で表示される。 こんな感じ。 しかし私の場合は、まずどれかの画面(Page)を開いた…

generic.xamlにあるリソースの値を上書きしたときに、いうことを聞くヤツと聞かないヤツがいる(StaticResourceとThemeResourceの違い)

もくじ https://tera1707.com/entry/2022/02/06/144447#WinUI3 やりたいこと WinUI3アプリで、デフォルトのコントロールの色の定義を上書きすることで、簡単に見た目をカスタムしたいということをした。 コントロールのマウスオーバー時等の色を変えたい Win…