smart_GetSmartAttributeName

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_GetSmartInfoInt64S.M.A.R.T. 情報を取得します(64bitを32bitずつ分割)(hspsmart.dll)
smart_GetSmartInfoInt64ExS.M.A.R.T. 情報を取得します(64bit)(hspsmart.dll)
smart_GetSmartMaxAttributeS.M.A.R.T.の項目の最大数取得(hspsmart.dll)

サンプル逆引き (2)

01_Sample_SMART.hsp
SampleDiskInfo.hsp

情報

プラグイン / モジュールhspsmart.dll
バージョン1.11(CrystalDiskInfo 8.2.3)
作成日2019/08/12
著作者Copyright (C) 2008-2019 hiyohiyo (CrystalDiskInfo作者様)
Copyright (C) 2013-2019 イノビア (hspsmart.dll 作成)
URLhttps://hsp.moe/
https://crystalmark.info/
備考本プラグインはCrystalDiskInfoのソースコードを使用しております。
グループhspsmart.dll
対応環境
  • Windows 版 HSP
移植のヒント64bit版を使用する場合は、
#runtime "hsp3_64"
#include "hspsmart64.as"
を先頭に記述してください。
hs ファイルhsphelp\hspsmart.hs