dotnet c# ファイルを 1 行ずつ読み込む

StreamReaderコード例

dotnet c# で テキストファイルを 1行ずつ読み込むには、 StreamReaderが便利です。

code example

StreamReader sr = new StreamReader("テキストファイル.txt");
while(sr.Peek() >= 0)
{
    string? s = sr.ReadLine();
    if (s != null){
        Console.WriteLine(s);
    }
}

C# dotnet6 wpf バッテリー 充電状態 API

GetSystemPowerStatus

C# dotnet 6 WPFアプリで、 APIを使いバッテリー充電状態と電源接続状態を確認する。

コード例

kernel32.dll にある GetSystemPowerStatus()を使いました

[StructLayout(LayoutKind.Sequential)]
struct SYSTEM_POWER_STATUS
{
	public byte ACLineStatus;
	public byte BatteryFlag;
	public byte BatteryLifePercent;
	public byte SystemStatusFlag;
	public int BatteryLifeTime;
	public int BatteryFullLifeTime;
}

[DllImport("kernel32.dll")]
static extern bool GetSystemPowerStatus(out SYSTEM_POWER_STATUS lpSystemPowerStatus);

private void Button_Click(object sender, RoutedEventArgs e)
{
	GetSystemPowerStatus(out var sYSTEM_POWER_STATUS);
	ACLineStatus.Text = $"{sYSTEM_POWER_STATUS.ACLineStatus}";              // オンライン=1
	BatteryFlag.Text = $"{sYSTEM_POWER_STATUS.BatteryFlag}";                // バッテリ充電状態
	BatteryLifePercent.Text = $"{sYSTEM_POWER_STATUS.BatteryLifePercent}";  // バッテリ㌫
	SystemStatusFlag.Text = $"{sYSTEM_POWER_STATUS.SystemStatusFlag}";      // バッテリー セーバーの状態
	BatteryLifeTime.Text = $"{sYSTEM_POWER_STATUS.BatteryLifeTime}";        // バッテリーの残り秒数
	BatteryFullLifeTime.Text = $"{sYSTEM_POWER_STATUS.BatteryFullLifeTime}";// フル充電時のバッテリー寿命の秒数

}

SYSTEM_POWER_STATUS メンバー

ACLineStatus

AC 電源の状態

内容
0 電源接続なし
1 電源接続されている
255 Unknown status

BatteryFlag

バッテリーの充電状態

内容
1 高 – バッテリ容量が 66% を超えています
2 低 – バッテリ容量が 33% 未満です
4 重大 – バッテリ容量が 5% 未満です
8 充電
128 システムバッテリーなし
255 バッテリフラグ情報を読み取れない

バッテリーが充電されておらず、バッテリー容量が低と高の間の場合、値はゼロです

BatteryLifePercent

バッテリのフル充電の残りのパーセンテージ。このメンバーは、0 から 100 の範囲の値、または状況が不明の場合は 255 です。

SystemStatusFlag

内容
0 バッテリーセーバーオフ
1 バッテリーセーバーオン

バッテリーセーバーについて

BatteryLifeTime

バッテリー寿命の残りの秒数。残りの秒数が不明な場合、またはデバイスが AC 電源に接続されている場合は -1。

BatteryFullLifeTime

フル充電時のバッテリー寿命の秒数、またはバッテリーのフル寿命が不明な場合、またはデバイスが AC 電源に接続されている場合は -1。

 

 

システムは、BatteryLifeTime と BatteryLifePercent の計算に基づいて BatteryFullLifeTime を推定することしかできません。スマート バッテリ サブシステムがない場合、この値は有用なほど正確ではない可能性があります。

2022 MJELD TECHNOLOGIES. ALL RIGHTS RESERVED