S.M.A.R.T. の項目名を取得します
val = smart_GetSmartAttributeName(str1, int1, str2)
str1 : SMARTキー名(smart_GetInfoStringWのINFO_SMARTKEYNAMEから取得できます) int1 : smartID str2 : S.M.A.R.T. の項目名が記述されたiniファイルパス(絶対パス)
(プラグイン / モジュール : hspsmart.dll)
S.M.A.R.T. の項目名を取得します。
#include "hspsmart.as"
title "ディスクを選択してください"
// 初期化する
hSmart = smart_Init()
// USB/IEEE1394接続のHDDを検出対象にする
smart_SetUSB1394 hSmart, FLAG_USB_ALL
// IDE/ATA_PASS_THROUGH を使用します(問題がある場合はOFFに)
smart_SetAtaPassThroughSmart hSmart, 1
// IntelRAID環境下でCSMIを自動有効にする
smart_SetCsmiType hSmart, CSMI_TYPE_ENABLE_AUTO
// ディスクを検出する(CDIの再検出と同じ)
// 初回起動時やディスクが後から追加・変更・削除されたりしたときに実行してください
// この処理はやや重いです。再生中の音声が一瞬途切れることもあります。
smart_DiskScan hSmart, 1, 1, 0, 1, 1
if smart_GetCount(hSmart) <= 0{
dialog "ディスクがないか、エラーが発生しました"
end
}
// ディスク一覧作成
sdim disklist, 1024
repeat smart_GetCount(hSmart)
// 格納に必要なサイズを取得
size = smart_GetInfoStringSizeW(hSmart, cnt, INFO_MODEL)
sdim buf, size + 2
// モデル名取得
smart_GetInfoStringW hSmart, cnt, INFO_MODEL, buf, size
disklist += cnvwtos(buf) + "\n"
loop
// GUI
width 320, 200
objsize 320, 180
listbox disk_id, 0, disklist
objsize 320, 20
button "選択したディスクの情報を見る", *go
stop
*go
cls
notesel disklist
noteget diskname, disk_id
title diskname
width 640, 480
// SMARTキー名取得
size = smart_GetInfoStringSizeW(hSmart, disk_id, INFO_SMARTKEYNAME)
sdim keyname, size + 2
smart_GetInfoStringW hSmart, disk_id, INFO_SMARTKEYNAME, keyname, size
keyname = cnvwtos(keyname)
// SMART情報取得
smart_max = smart_GetSmartMaxAttribute()
dim Id, smart_max
dim StatusFlags, smart_max
dim CurrentValue, smart_max
dim WorstValue, smart_max
dim ThresholdValue, smart_max
ddim RawValue, smart_max
smart_GetSmartInfoInt64Ex hSmart, disk_id, Id, StatusFlags, CurrentValue, WorstValue, ThresholdValue, RawValue
sdim out_smart, 1024
out_smart = "ID\t項目名\t\t\t\t\t現在値\t最悪値\t閾値\t生の値\n"
repeat smart_max
if Id.cnt != 0 {
out_smart += strf("%02X", Id.cnt) + "\t"
smart_att = smart_GetSmartAttributeName(keyname, Id.cnt, dir_cur + "\\smart.ini")
out_smart += smart_att
repeat 40-strlen(smart_att)
out_smart += " "
loop
out_smart += strf("%d", CurrentValue.cnt) + "\t"
out_smart += strf("%d", WorstValue.cnt) + "\t"
out_smart += strf("%d", ThresholdValue.cnt) + "\t"
out_smart += strf("0x%012I64X (%I64d)", RawValue.cnt, RawValue.cnt)
out_smart += "\n"
}
loop
font "MS Gothic", 12
objmode 2, 1
mesbox out_smart, 640, 480
smart_UnInit hSmart
| smart_GetSmartInfoInt64 | S.M.A.R.T. 情報を取得します(64bitを32bitずつ分割) | (hspsmart.dll) |
| smart_GetSmartInfoInt64Ex | S.M.A.R.T. 情報を取得します(64bit) | (hspsmart.dll) |
| smart_GetSmartMaxAttribute | S.M.A.R.T.の項目の最大数取得 | (hspsmart.dll) |
| プラグイン / モジュール | hspsmart.dll |
| バージョン | 1.11(CrystalDiskInfo 8.2.3) |
| 作成日 | 2019/08/12 |
| 著作者 | Copyright (C) 2008-2019 hiyohiyo (CrystalDiskInfo作者様)
Copyright (C) 2013-2019 イノビア (hspsmart.dll 作成) |
| URL | https://hsp.moe/
https://crystalmark.info/ |
| 備考 | 本プラグインはCrystalDiskInfoのソースコードを使用しております。 |
| グループ | hspsmart.dll |
| 対応環境 |
|
| 移植のヒント | 64bit版を使用する場合は、
#runtime "hsp3_64" #include "hspsmart64.as" を先頭に記述してください。 |
| hs ファイル | hsphelp\hspsmart.hs |