NkMon README

NkMonはWindows 2000/XP/Vista/7/8/10/11用のシステムモニターです。

インストール

nkmon.exeを適当なディレクトリに置いてください。

アンインストール

nkmon.exeを削除してください。レジストリには一切書き込みません。

使い方

右クリックでメニューを表示します。

layoutファイルを作成すると、表示内容を自由に変更することができます。

コマンドラインオプション

-d profdirconfig, layout, positionファイルの場所
-p portUDPレシーバのポート番号

ファイル

ファイルは以下の場所をから探します。

環境変数 NKTOOLSPROF が設定されていない場合nkmon.exeと同じディレクトリ
環境変数 NKTOOLSPROF が設定されている場合%NKTOOLSPROF%\nkmon

config

初期設定。

time.location latitude longitude altitude
$time.sunrise, $time.sunsetの計算に使用する緯度、経度、高度 (デフォルト 35.6581 139.7414 0)。タイムゾーンには影響しません。
saveposition on|off
終了時のウィンドウ位置の保存のon/off (デフォルト: on)

layout

表示内容の定義。エンコーディングはUTF-8です(バージョン0.6より)。

width widthウィンドウの幅
bgalpha alpha背景の不透明度(0-255)
areagraph height range data面グラフ
bargraph height range data棒グラフ
color color描画色(RRGGBB)
dclock height hour min secデジタル時計風
font name size [bold] [italic] [cleartype]フォント
linegraph height range data折れ線グラフ
space heightスペース(マイナス可)
text height format [arguments...]テキスト

テキストのフォーマット

%s文字列
%h単位(K, M, G)つき10進数
%%"%"文字

%hと%sはh, sの前の数字で最小のフィールド幅を指定できます。数字の前に0を指定すると空白の代わりに0で埋めます。

stringセンタリング
string\s左寄せ
\sstring右寄せ
string1\sstring2string1左寄せ、string2右寄せ
\\string"\"を含む文字列
"test test"スペースを含む文字列
""test""ダブルクォーテーションを含む文字列

現在時間をHH:MM:SSの書式、白色、センタリングで表示

color ffffff
text %02s:%02s:%02s $time.hour $time.min $time.sec

CPU使用率を高さ24ピクセルの青色の面グラフで表示

color 0000ff
areagraph 24 $cpu.load.toal 100

Segoe UI 11ピクセル ClearType有効

font "Segoe UI" 11 cleartype

position

ウィンドウの位置、サイズ、Stay On Topの状態。終了時に自動的に作成します。configでsavepositionをoffに設定している場合は作成しません。

変数

以下の変数をlayoutファイル内で使用できます。値は1秒毎に更新されます($hdtemp.*, $sttemp.*は10分毎)。

<num>は0始まりです。

CPU

$cpu.load.totalCPU使用率(全CPU平均)(0..100)
$cpu.load.systemCPU使用率(カーネル)(全CPU平均)(0..100)
$cpu.load.userCPU使用率(ユーザ)(全CPU平均)(0..100)
$cpu.load.idleCPUアイドル率(全CPU平均)(0..100)
$cpu.c<num>.load.total物理コア<num>番のCPU使用率(0..100)
$cpu.c<num>.load.system物理コア<num>番のCPU使用率(カーネル)(0..100)
$cpu.c<num>.load.user物理コア<num>番のCPU使用率(ユーザ)(0..100)
$cpu.c<num>.load.idle物理コア<num>番のCPUアイドル率(0..100)
$cpu.p<num>.load.total<num>番のCPU使用率(0..100)
$cpu.p<num>.load.system<num>番のCPU使用率(カーネル)(0..100)
$cpu.p<num>.load.user<num>番のCPU使用率(ユーザ)(0..100)
$cpu.p<num>.load.idle<num>番のCPUアイドル率(0..100)

$cpu.c<num>はWindows 7以降で使用できます。Windows APIの制限により、CPUの最大個数(論理プロセッサ数)が32を超える場合、$cpu.c<num>の値は正しくありません。

ディスク

$disk.read.bytespersecディスク読み取り速度(bytes/sec)
$disk.write.bytespersecディスク書き込み速度(bytes/sec)
$disk.<letter>.total<letter>ドライブサイズ(bytes)
$disk.<letter>.free<letter>ドライブ未使用量(bytes)
$disk.<letter>.used<letter>ドライブ使用量(bytes)

GPU

$gpu.p<num>.load<num>番のGPU使用率(0..100)
$gpu.p<num>.temp<num>番のGPUの温度(℃)

環境によって正しく取得できない場合があります。loadはDirect3Dのみが対象です。

ハードディスクの温度

$hdtemp.hd<num><num>番の物理ドライブの温度(℃)

$hdtempで温度が取得できないとき、$sttempで取得できる場合があります。

ホスト名

$hostnameホスト名

メモリ

$mem.memtotal物理メモリサイズ(bytes)
$mem.memfree物理メモリ未使用量(bytes)
$mem.memused物理メモリ使用量(bytes)
$mem.swaptotalスワップ(ページファイル)サイズ(bytes)
$mem.swapfreeスワップ(ページファイル)未使用量(bytes)
$mem.swapusedスワップ(ページファイル)使用量(bytes)

ネットワーク

$net.in.bytespersecEthernet受信速度(bytes/sec)
$net.out.bytespersecEthernet送信速度(bytes/sec)
$net.tcp.rtoalgorithmIPv4 TCP統計情報
$net.tcp.rtominIPv4 TCP統計情報
$net.tcp.rtomaxIPv4 TCP統計情報
$net.tcp.maxconnIPv4 TCP統計情報
$net.tcp.activeopensIPv4 TCP統計情報
$net.tcp.passiveopensIPv4 TCP統計情報
$net.tcp.attemptfailsIPv4 TCP統計情報
$net.tcp.estabresetsIPv4 TCP統計情報
$net.tcp.currestabIPv4 TCP統計情報
$net.tcp.insegsIPv4 TCP統計情報
$net.tcp.outsegsIPv4 TCP統計情報
$net.tcp.retranssegsIPv4 TCP統計情報
$net.tcp.inerrsIPv4 TCP統計情報
$net.tcp.outrstsIPv4 TCP統計情報
$net.tcp6.rtoalgorithmIPv6 TCP統計情報
$net.tcp6.rtominIPv6 TCP統計情報
$net.tcp6.rtomaxIPv6 TCP統計情報
$net.tcp6.maxconnIPv6 TCP統計情報
$net.tcp6.activeopensIPv6 TCP統計情報
$net.tcp6.passiveopensIPv6 TCP統計情報
$net.tcp6.attemptfailsIPv6 TCP統計情報
$net.tcp6.estabresetsIPv6 TCP統計情報
$net.tcp6.currestabIPv6 TCP統計情報
$net.tcp6.insegsIPv6 TCP統計情報
$net.tcp6.outsegsIPv6 TCP統計情報
$net.tcp6.retranssegsIPv6 TCP統計情報
$net.tcp6.inerrsIPv6 TCP統計情報
$net.tcp6.outrstsIPv6 TCP統計情報

電源

$power.source使用電源(AC, Batt, ?, Err)
$power.battstatバッテリの状態(charging, no batt, ?, 空文字列)
$power.battlife.parcentバッテリ残量率(0..100)
$power.battlife.hourバッテリ残量時間
$power.battlife.minバッテリ残量分数
$power.battlife.secバッテリ残量秒数

バッテリが充電中でない場合、battstatは空文字列になります。

プロセス (Windows XP以降)

$proc.processプロセス数
$proc.threadスレッド数
$proc.handleハンドル数

ストレージの温度 (Windows 10以降)

$sttemp.st<num><num>番の物理ドライブの温度(℃)

$hdtempで温度が取得できないとき、$sttempで取得できる場合があります。

日付と時刻

$time.year西暦
$time.shortyear西暦下2桁
$time.month
$time.monthname月名(Jan, Feb, ...)
$time.day
$time.dayname曜日(Mon, Tue, ...)
$time.hour
$time.min
$time.sec
$time.weeknumISO週番号
$time.yearday年の始めからの日数
$time.yeardayremain年の残りの日数
$time.utc.*UTC
$time.pHHMM.*UTC+HH:MM
$time.mHHMM.*UTC-HH:MM
$time.sunrise.hour日の出時刻(時)
$time.sunrise.min日の出時刻(分)
$time.sunset.hour日の入り時刻(時)
$time.sunset.min日の入り時刻(分)

日の出時刻・日の入り時刻は、configのtime.locationで設定した緯度、経度、高度から計算します。1分程度の誤差があります。

参考文献: 長沢工『日の出・日の入りの計算』地人書館

稼働時間

$uptime.days
$uptime.hour
$uptime.min
$uptime.sec

UDPレシーバ

$udp.<name>"name value"形式で送られたUDPパケットのvalue

ポート7531に"name value"の形式で UDPパケットを送ると、$udp.<name> でvalueを参照出来ます。valueのエンコーディングはUTF-8です(バージョン0.6より)。

例: $udp.testに"hello"を設定するPythonスクリプト

import socket
addr = ('127.0.0.1', 7531)
s = socket.socket(type=socket.SOCK_DGRAM)
s.sendto('test hello'.encode('utf-8'), addr)

問題の報告

bug-XXXX@nk2.org (XXXXはnkmonに置き換えてください)に送ってください。

著作権表示

Copyright (C) 2006-2023 Nobuyuki Honda

本ソフトウェアは「現状のまま」で、明示であるか暗黙であるかを問わず、何らの保証もなく提供されます。本ソフトウェアの使用によって生じるいかなる損害についても、作者は一切の責任を負わないものとします。

以下の制限に従う限り、商用アプリケーションを含めて、本ソフトウェアを任意の目的に使用し、自由に改変して再頒布することをすべての人に許可します。

  1. 本ソフトウェアの出自について虚偽の表示をしてはなりません。あなたがオリジナルのソフトウェアを作成したと主張してはなりません。あなたが本ソフトウェアを製品内で使用する場合、製品の文書に謝辞を入れていただければ幸いですが、必須ではありません。
  2. ソースを変更した場合は、そのことを明示しなければなりません。オリジナルのソフトウェアであるという虚偽の表示をしてはなりません。
  3. ソースの頒布物から、この表示を削除したり、表示の内容を変更したりしてはなりません。

This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.

Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:

  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
  2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
  3. This notice may not be removed or altered from any source distribution.