物理の駅 Physics station by 現役研究者

テクノロジーは共有されてこそ栄える

C#

SlackからエクスポートしたZIPファイル内のファイルパスの文字化けを修正する

いつからかSlackのチャンネル名に日本語が使えるようになったが、SlackからエクスポートしたZIPファイルのファイル名、ディレクトリ名はcp437 コードページ437 - Wikipedia でエンコードされているため、UTF-8にするには、cp437としてエンコードする必要があ…

C# Windows フォームアプリケーションで別スレッドからUIを操作する方法

この記事は、Windows フォームアプリケーション (.NET Framework)の話です。 Windows WPFアプリ (.NET Framework) の場合 HeavyTask_Error だと System.InvalidOperationException: '有効ではないスレッド間の操作: コントロールが作成されたスレッド以外の…

C# Windows WPFアプリで別スレッドからUIを操作する方法

この記事は、Windows WPFアプリ (.NET Framework)の話です。 Windows フォームアプリケーション (.NET Framework) の場合 HeavyTask_Error だと System.InvalidOperationException: 'このオブジェクトは別のスレッドに所有されているため、呼び出しスレッド…

C#でGoogleのワンタイムパスワード計算アルゴリズム TOTP (RFC6238)を実装する

Stackoverflowのこの投稿で十分 stackoverflow.com だが、クリップボードにコピーして即プログラムを終了するように少し修正した。 using System; using System.Windows.Forms; using System.Security.Cryptography; namespace totp { class Program { publi…

Windows C#で自然順ソート(Natural Sort Order in C#)

ファイル名に0パディングしない数字があったとき、1 10 2 みたいな順になってしまうのを、1 2 10 に直すためのライブラリ。 stackoverflow.com Windowsだと、Windowsの標準関数StrCmpLogicalWを使う方法が高速だろう。.NETでも提供してくれたら良いのにな。 …

C# WPFのXAMLで改行は&#xa;、<は&lt;、>は&gt、&は&amp;、"は&quot;

C#

方法: XAML で特殊文字を使用する - WPF | Microsoft Docs &はampersand (アンパサンド)<はless than>はgreater than"はquotation xaは何?

C# WPFでTraceListenerを使ってみる

C#

初心者なので、使い方間違ってたらご教授ください。 クラスライブラリで以下のようなコードを書く。プロジェクト名も MyLogger とした using System; using System.Diagnostics; using System.IO; namespace MyLogger { public class MyLogger : TraceListen…

C#でenumを文字列からParseする

C#

Enum.Parse を使うと良い。 using System; namespace ConsoleApp3 { class Program { public enum Status { StatusA, StatusB, StatusC } static void Main(string[] args) { Console.WriteLine((Status)Enum.Parse(typeof(Status), "StatusA")); Console.Wr…

.NET Framework から .NET Core への移植の概要

docs.microsoft.com docs.microsoft.com www.nuits.jp

C# WPFのタップで右クリック(長押し)を実装する方法

C#

TouchDownイベントとTouchUpイベントにそれぞれ下記の関数をbindすればよい。 private readonly Stopwatch SWTouch = new Stopwatch(); private void Image_TouchUp(object sender, TouchEventArgs e) { if (SWTouch.Elapsed.TotalMilliseconds > 700) { Rig…

C# WPF アプリケーションで未処理例外に対応する方法

C#

mseeeen.msen.jp hilapon.hatenadiary.org 上の記事にある通り、 App.xaml.cs を以下のようにする。 using System; using System.Diagnostics; using System.Threading.Tasks; using System.Windows; using System.Windows.Threading; namespace MyApplicati…

C#とC++ででディレクトリ名、拡張子を変えずに、ファイル名だけを変える

C#

C#版 var filenpath = @"C:\Users\Directory\Filename.txt"; Console.WriteLine(Path.Combine(Path.GetDirectoryName(filenpath), Path.GetFileNameWithoutExtension(filenpath) + "Test" + Path.GetExtension(filenpath))); C++版 filesystem::path path0 =…

CCDカメラで撮像した画像をOpenCVを使って縞々模様を除去する

CCDカメラは読み出し方式による縞々模様(1行ごとに輝度の濃淡が発生する)現象が起こる。 通常、ハードウェア側で調整されるものだが、ソフトウェア側で調整する必要に迫られたので、そのコードを公開する。 なお、Visual Studio + C# + OpenCVSharp と C++を…

NuGetで自作パッケージを公開した

pythonパッケージに比べて簡単すぎた。参考にしたのは以下のサイト qiita.com ソースファイル Masahiro Yoshimoto / affine6p-cs · GitLab パッケージ NuGet Gallery | Affine6P 1.0.2

OpenCVを使った画像内のピーク検出プログラム

ピークの周波数によって、途中のBoxFilterとGaussianBlurのカーネルサイズは変えると良い。 背景の強度を求めて、有意度を求めるのがこのプログラムのミソである。 var size = new OpenCvSharp.Size(nbin, nbin); Mat signal = Mat.Zeros(size, MatType.CV_3…

C# WPFで グリッドマーク上にTextBlockやRectangleを配置する

C#

供養 var textBlock = new TextBlock { HorizontalAlignment = HorizontalAlignment.Center, VerticalAlignment = VerticalAlignment.Center, Text = text, FontSize = 0.1 }; var rectangle = new Rectangle { Stroke = Brushes.Black, StrokeThickness = 0…

C#でPythonのスクリプトを実行して戻り値を取得する方法

英語をすらすら読める人はここを読めば全て解決する。 code.msdn.microsoft.com C#からPythonを呼び出し、返り値を取得する方法としては、C#におけるプロセス間通信の一つである Process を使って、Pythonのスクリプトを実行し、その標準出力(コンソール出力…

C# WPF で BitmapImage (BitmapSource) のピクセルにアクセスし書き換える方法

C#

BitmapImage (BitmapSource) のピクセルにアクセスし書き換える方法 例として、コントラストを変える処理を紹介する。 BitmapSource ApplyContrast(BitmapSource image, double contrast) { if (contrast == 0) return image; var bitmap = new FormatConver…

C#でMicrosoft Translator Text APIを使う、2017年1月1日以降も有効な方法

C#

日本語のドキュメントを見つけたぜ、と思ったのだが、罠にかかった。 qiita.com コメントにも書いたが、この方法は2017年1月1日以降は有効ではない。コメント欄でも紹介されていたが、 Getting Started with Microsoft Translator に書かれているとおりに進…

C# WPFで各種コントロールを動的に配置し、配置したコントロールにアクセスする方法

C#

WPFで各種コントロールを動的に配置し、配置したコントロールにアクセスする方法。 stackoverflow.com 最上位の解答が役に立つ。分かってしまえば簡単ですね。 重要なところだけC#で下記に記す。 //コントロールの生成 var tbox = new TextBox(); //ここでは…

C# でWindows 上のプログラムのリソースを監視する

C#

C#で以下のリソースの監視をしたいという需要があったのでサンプルコードを公開する。 使用メモリ量 ハンドル数 GDI オブジェクト数 User オブジェクト数 using System; using System.Diagnostics; using System.Runtime.InteropServices; namespace Console…