Environment.UserName ではなく、姓名のフルネームを取得する方法です。
Win32 API の GetUserNameEx
を使用して、高速に取得します。
新着記事
会計ソフトで .xtx ファイルを出力した後に、電子申告とスマホ納付する手順です。
私は、クラウド会計ソフト freee を使用しています。2022年分の申告時点、freee で出来るのは .xtx ファイルの出力までです。
その後の e-Tax の操作手順を忘れてしまうと思うので、メモしておきます。
explorer.exe のメモリのコミットサイズが異常に増えていたため、explorer.exe のプロセスを再起動して解消する方法です。
App.xaml により Main メソッドは自動生成されますが、独自のエントリーポイントを定義して呼び出す方法です。
Hugo の Markdown で書いた記事内のコードブロックに対して、クリップボードにコピーするボタンを動的に配置する方法です。
Windows エクスプローラーのファイル順と同じように、文字列中の数字を値の大きさでソートします。OS に依存しない実装も対応します。
System.__ComObject
のインスタンスから COM インターフェイスの型名を取得する方法です。
await using
で DisposeAsync()
を確実に実行できますが、DisposeAsync().ConfigureAwait(false)
を使用したい場合は工夫が必要です。
struct においては IAsyncDisposable
へのキャストによるボクシングを回避して実行する方法を考えます。
Grid
の RowDefinition.Height
, ColumnDefinition.Width
に XAML 上で StaticResources で定義した値をバインドする方法です。
WebView2 型と CoreWebView2 型のイベントがいつ発生するのか、その内容をデバッグで確認したいと思います。
公式ページ を見ると Webhook を使用して 1対1 自動応答をする Bot の作成を前提にしているように見えます。
Webhook なしで WebServer を用意せず、任意のグループチャットに対しても Messenger の自動化がしたいので調査しました。
公式の Getting Started を参考に、拡張機能のインストールからビルドして実行まで行います。
Avalonia は C# の単一コードで Windows, macOS, Linux のアプリが作成できます。最近は iOS, Android, WebAssembly アプリも作成できるようです。
早6年前、neue大先生の記事で得た知見ですが、.NET 7 Preview 1 でコンパイル後の結果が違うことに偶然気付いたので確認しました。
外部アセンブリからアクセスできる型かどうかの public
判定は Type.IsVisibleで可能で、Assembly.GetExportedTypes() で全てのパブリック型を取得できる。
この internal
版の判定を行いたい。public
, internal
, protected internal
で入れ子になったネスト型も含めて、同一アセンブリ内でアクセスできるかどうかを判定する。
ここでは protected
による継承でアクセスできるかどうかは判定対象外とする。
Partial Template を呼び出す際に、引数を渡して使用する例。
DateTime をミリ秒未満など指定した単位へ切り捨てや、10分単位など任意の単位へ丸める方法。
JetBrainsのIDE系のショートカットキーで Find Usages (Alt+F7) が効かなかった。
GeForceExperience のオーバーレイ機能をOFFにして対応した。
ユーザー定義変数(set @var_name)を定義してSQL文を作り、prepare と execute を使用してSQL文を実行します。
AssemblyInfo を AssemblyName, CustomAttribute, FileVersionInfo の3つの方法で取得します。
自分自身のアセンブリ情報と3種類のバージョン(アセンブリ・ファイル・製品)を取得します。
.NET Framework での記述を .NET Core SDK ベース csproj に置き換えて記述した比較です。
安心して使うには、0 は有効な値として使わず、None = 0、Default = 0 などと定義する。判定のHasFlag()は、.NET Core 2.1 から高速なので使い、それ以前ではビット演算で高速判定する。
columns の margin が原因で、モバイル端末では以下のように水平スクロールバーが表示されてしまいました。不要なので、is-variable is-0-mobile を使用して消しました。
Win 32 APIのFindFirstFileExを使用して実装します。Directoryクラスと同じような静的メソッドで実装するので、そのまま差し替えられます。
Collection<T>
は独自コレクションを実装する時に継承して使用します。Collection<T>
は内部でList<T>
を保持していますが、拡張できるように仮想メソッドが定義されています。
64bitのOSで起動している32bitアプリ(WOW64)から外部アプリ(任意のファイル)を起動する際に、WOW64のリダイレクトの影響を受けずずに正常に起動させる方法です。
cmd.exeを経由して外部アプリを起動するようにします。