Jump to content
Sign in to follow this  
uflex

How to check SSD?

Recommended Posts

uflex

My disk is  a SSD. 

 

How to tell SSD from HD?

 

In registry , the disk items under LM/SYSTEM/CurrentControlSet/Services/Disk/Enum/

 

is offen SCSIxxxxxx  (in OS or PE)。

 

 

Anyonw knows the exact way?

Share this post


Link to post
Share on other sites
stormbreaker

Wish I had time to translate this: http://emoacht.wordpress.com/2012/11/06/csharp-ssd/

:bike: Still I think someone shall be able to do it.


----------------------------------------

:bye: Hey there, was I helpful?

----------------------------------------

My Current OS: Win8 PRO (64-bit); Current AutoIt Version: v3.3.8.1

Share this post


Link to post
Share on other sites
PhoenixXL

If you can't get the file. I have it here attached.

File.txt

Edited by PhoenixXL

My code:

PredictText: Predict Text of an Edit Control Like Scite. Remote Gmail: Execute your Scripts through Gmail. StringRegExp:Share and learn RegExp.

Run As System: A command line wrapper around PSEXEC.exe to execute your apps scripts as System (LSA). Database: An easier approach for _SQ_LITE beginners.

MathsEx: A UDF for Fractions and LCM, GCF/HCF. FloatingText: An UDF for make your text floating. Clipboard Extendor: A clipboard monitoring tool. 

Custom ScrollBar: Scroll Bar made with GDI+, user can use bitmaps instead. RestrictEdit_SRE: Restrict text in an Edit Control through a Regular Expression.

Share this post


Link to post
Share on other sites
GreenCan

You may want to have a look at thus UDF:

Drive Info UDFs download DriveInfo.au3 and run the following script

#include "DriveInfo.au3"
#Include <Array.au3>

Global $sInfo = ""

GUICreate("_DriveGetDiskDrive", 800, 600)
$LIST = GUICtrlCreateListView("Info|Type", 0, 0, 800, 600)
GUISetState()

Dim $aDiskDrive
_DriveGetDiskDrive($aDiskDrive)


For $i = 1 To $aDiskDrive[0][0]
    GUICtrlCreateListViewItem("Drive "&$i&"|Drive "&$i,$LIST)
    GUICtrlCreateListViewItem("",$LIST)
    GUICtrlCreateListViewItem("Availability|"&_DriveTranslateAvailability($aDiskDrive[$i][0]),$LIST)
    GUICtrlCreateListViewItem("BytesPerSector|"&$aDiskDrive[$i][1],$LIST)
    GUICtrlCreateListViewItem("Capabilities|"&_DriveTranslateCapabilities($aDiskDrive[$i][2]),$LIST)
    GUICtrlCreateListViewItem("CapabilityDescriptions|"&_ArrayToString($aDiskDrive[$i][3],", "),$LIST)
    GUICtrlCreateListViewItem("Caption|"&$aDiskDrive[$i][4],$LIST)
    GUICtrlCreateListViewItem("CompressionMethod|"&$aDiskDrive[$i][5],$LIST)
    GUICtrlCreateListViewItem("ConfigManagerErrorCode|"&_DriveTranslateConfigManagerErrorCode($aDiskDrive[$i][6]),$LIST)
    GUICtrlCreateListViewItem("ConfigManagerUserConfig|"&_DriveTranslateConfigManagerUserConfig($aDiskDrive[$i][7]),$LIST)
    GUICtrlCreateListViewItem("CreationClassName|"&$aDiskDrive[$i][8],$LIST)
    GUICtrlCreateListViewItem("DefaultBlockSize|"&$aDiskDrive[$i][9],$LIST)
    GUICtrlCreateListViewItem("Description|"&$aDiskDrive[$i][10],$LIST)
    GUICtrlCreateListViewItem("DeviceID|"&$aDiskDrive[$i][11],$LIST)
    GUICtrlCreateListViewItem("ErrorCleared|"&$aDiskDrive[$i][12],$LIST)
    GUICtrlCreateListViewItem("ErrorDescription|"&$aDiskDrive[$i][13],$LIST)
    GUICtrlCreateListViewItem("ErrorMethodology|"&$aDiskDrive[$i][14],$LIST)
    GUICtrlCreateListViewItem("Index|"&$aDiskDrive[$i][15],$LIST)
    GUICtrlCreateListViewItem("InstallDate|"&$aDiskDrive[$i][16],$LIST)
    GUICtrlCreateListViewItem("InterfaceType|"&$aDiskDrive[$i][17],$LIST)
    GUICtrlCreateListViewItem("LastErrorCode|"&$aDiskDrive[$i][18],$LIST)
    GUICtrlCreateListViewItem("Manufacturer|"&$aDiskDrive[$i][19],$LIST)
    GUICtrlCreateListViewItem("MaxBlockSize|"&$aDiskDrive[$i][20],$LIST)
    GUICtrlCreateListViewItem("MaxMediaSize|"&$aDiskDrive[$i][21],$LIST)
    GUICtrlCreateListViewItem("MediaLoaded|"&_DriveTranslateMediaLoaded($aDiskDrive[$i][22]),$LIST)
    GUICtrlCreateListViewItem("MediaType|"&$aDiskDrive[$i][23],$LIST)
    GUICtrlCreateListViewItem("MinBlockSize|"&$aDiskDrive[$i][24],$LIST)
    GUICtrlCreateListViewItem("Model|"&$aDiskDrive[$i][25],$LIST)
    GUICtrlCreateListViewItem("Name|"&$aDiskDrive[$i][26],$LIST)
    GUICtrlCreateListViewItem("NeedsCleaning|"&$aDiskDrive[$i][27],$LIST)
    GUICtrlCreateListViewItem("NumberOfMediaSupported|"&$aDiskDrive[$i][28],$LIST)
    GUICtrlCreateListViewItem("Partitions|"&$aDiskDrive[$i][29],$LIST)
    GUICtrlCreateListViewItem("PNPDeviceID|"&$aDiskDrive[$i][30],$LIST)
    GUICtrlCreateListViewItem("PowerManagementCapabilities|"&_DriveTranslatePowerManagementCapabilities($aDiskDrive[$i][31]),$LIST)
    GUICtrlCreateListViewItem("PowerManagementSupported|"&$aDiskDrive[$i][32],$LIST)
    GUICtrlCreateListViewItem("SCSIBus|"&$aDiskDrive[$i][33],$LIST)
    GUICtrlCreateListViewItem("SCSILogicalUnit|"&$aDiskDrive[$i][34],$LIST)
    GUICtrlCreateListViewItem("SCSIPort|"&$aDiskDrive[$i][35],$LIST)
    GUICtrlCreateListViewItem("SCSITargetId|"&$aDiskDrive[$i][36],$LIST)
    GUICtrlCreateListViewItem("SectorsPerTrack|"&$aDiskDrive[$i][37],$LIST)
    GUICtrlCreateListViewItem("Signature|"&$aDiskDrive[$i][38],$LIST)
    GUICtrlCreateListViewItem("Size|"&$aDiskDrive[$i][39],$LIST)
    GUICtrlCreateListViewItem("Status|"&$aDiskDrive[$i][40],$LIST)
    GUICtrlCreateListViewItem("StatusInfo|"&_DriveTranslateStatusInfo($aDiskDrive[$i][41]),$LIST)
    GUICtrlCreateListViewItem("SystemCreationClassName|"&$aDiskDrive[$i][42],$LIST)
    GUICtrlCreateListViewItem("SystemName|"&$aDiskDrive[$i][43],$LIST)
    GUICtrlCreateListViewItem("TotalCylinders|"&$aDiskDrive[$i][44],$LIST)
    GUICtrlCreateListViewItem("TotalHeads|"&$aDiskDrive[$i][45],$LIST)
    GUICtrlCreateListViewItem("TotalSectors|"&$aDiskDrive[$i][46],$LIST)
    GUICtrlCreateListViewItem("TotalTracks|"&$aDiskDrive[$i][47],$LIST)
    GUICtrlCreateListViewItem("TracksPerCylinder|"&$aDiskDrive[$i][48],$LIST)
    GUICtrlCreateListViewItem("",$LIST)

    LogIt("Drive " & $i & ": Drive "&$i)
    LogIt("")
    LogIt("bAvailability: " & _DriveTranslateAvailability($aDiskDrive[$i][0]))
    LogIt("BytesPerSector: " & $aDiskDrive[$i][1])
    LogIt("Capabilities: " & _DriveTranslateCapabilities($aDiskDrive[$i][2]))
    LogIt("CapabilityDescriptions: " & _ArrayToString($aDiskDrive[$i][3],", "))
    LogIt("Caption: " & $aDiskDrive[$i][4])
    LogIt("CompressionMethod: " & $aDiskDrive[$i][5])
    LogIt("ConfigManagerErrorCode: " & _DriveTranslateConfigManagerErrorCode($aDiskDrive[$i][6]))
    LogIt("ConfigManagerUserConfig: " & _DriveTranslateConfigManagerUserConfig($aDiskDrive[$i][7]))
    LogIt("CreationClassName: " & $aDiskDrive[$i][8])
    LogIt("DefaultBlockSize: " & $aDiskDrive[$i][9])
    LogIt("Description: " & $aDiskDrive[$i][10])
    LogIt("DeviceID: " & $aDiskDrive[$i][11])
    LogIt("ErrorCleared: " & $aDiskDrive[$i][12])
    LogIt("ErrorDescription: " & $aDiskDrive[$i][13])
    LogIt("ErrorMethodology: " & $aDiskDrive[$i][14])
    LogIt("Index: " & $aDiskDrive[$i][15])
    LogIt("InstallDate: " & $aDiskDrive[$i][16])
    LogIt("InterfaceType: " & $aDiskDrive[$i][17])
    LogIt("LastErrorCode: " & $aDiskDrive[$i][18])
    LogIt("Manufacturer: " & $aDiskDrive[$i][19])
    LogIt("MaxBlockSize: " & $aDiskDrive[$i][20])
    LogIt("MaxMediaSize: " & $aDiskDrive[$i][21])
    LogIt("MediaLoaded: " & _DriveTranslateMediaLoaded($aDiskDrive[$i][22]))
    LogIt("MediaType: " & $aDiskDrive[$i][23])
    LogIt("MinBlockSize: " & $aDiskDrive[$i][24])
    LogIt("Model: " & $aDiskDrive[$i][25])
    LogIt("Name: " & $aDiskDrive[$i][26])
    LogIt("NeedsCleaning: " & $aDiskDrive[$i][27])
    LogIt("NumberOfMediaSupported: " & $aDiskDrive[$i][28])
    LogIt("Partitions: " & $aDiskDrive[$i][29])
    LogIt("PNPDeviceID: " & $aDiskDrive[$i][30])
    LogIt("PowerManagementCapabilities: " & _DriveTranslatePowerManagementCapabilities($aDiskDrive[$i][31]))
    LogIt("PowerManagementSupported: " & $aDiskDrive[$i][32])
    LogIt("SCSIBus: " & $aDiskDrive[$i][33])
    LogIt("SCSILogicalUnit: " & $aDiskDrive[$i][34])
    LogIt("SCSIPort: " & $aDiskDrive[$i][35])
    LogIt("SCSITargetId: " & $aDiskDrive[$i][36])
    LogIt("SectorsPerTrack: " & $aDiskDrive[$i][37])
    LogIt("Signature: " & $aDiskDrive[$i][38])
    LogIt("Size: " & $aDiskDrive[$i][39])
    LogIt("Status: " & $aDiskDrive[$i][40])
    LogIt("StatusInfo: " & _DriveTranslateStatusInfo($aDiskDrive[$i][41]))
    LogIt("SystemCreationClassName: " & $aDiskDrive[$i][42])
    LogIt("SystemName: " & $aDiskDrive[$i][43])
    LogIt("TotalCylinders: " & $aDiskDrive[$i][44])
    LogIt("TotalHeads: " & $aDiskDrive[$i][45])
    LogIt("TotalSectors: " & $aDiskDrive[$i][46])
    LogIt("TotalTracks: " & $aDiskDrive[$i][47])
    LogIt("TracksPerCylinder: " & $aDiskDrive[$i][48])
    LogIt("")
Next
ConsoleWrite($sInfo & @CRLF)
Local $file = FileOpen(@ScriptDir & "\drives.log", 2)
If $file = -1 Then Exit  MsgBox(0, "Error", "Unable to open file " & @ScriptDir & "\drives.log")
FileWrite($file, $sInfo)
FileClose($file)

While GUIGetMsg() <> -3
    Sleep(10)
WEnd


Func LogIt($sText)
    $sInfo &= $sText & @CRLF
EndFunc

The script will create a log file and this is what I got on a laptop with SSD

Drive 1: Drive 1

bAvailability: 
BytesPerSector: 512
Capabilities: Random Access, Supports Writing, SMART Notification
CapabilityDescriptions: Random Access, Supports Writing, SMART Notification
Caption: SAMSUNG SSD Thin uSATA 6
CompressionMethod: 
ConfigManagerErrorCode: Device is working properly.
ConfigManagerUserConfig: The device is not using a user-defined configuration
CreationClassName: Win32_DiskDrive
DefaultBlockSize: 
Description: Disk drive
DeviceID: \\.\PHYSICALDRIVE0
ErrorCleared: 
ErrorDescription: 
ErrorMethodology: 
Index: 0
InstallDate: 
InterfaceType: SCSI
LastErrorCode: 
Manufacturer: (Standard disk drives)
MaxBlockSize: 
MaxMediaSize: 
MediaLoaded: The device has a readable file system or is accessible.
MediaType: Fixed hard disk media
MinBlockSize: 
Model: SAMSUNG SSD Thin uSATA 6
Name: \\.\PHYSICALDRIVE0
NeedsCleaning: 
NumberOfMediaSupported: 
Partitions: 2
PNPDeviceID: IDE\DISKSAMSUNG_SSD_THIN_USATA_64GB_M___________VAM05D1Q\4&14338D07&0&0.0.0
PowerManagementCapabilities: Unknown
PowerManagementSupported: 
SCSIBus: 0
SCSILogicalUnit: 0
SCSIPort: 0
SCSITargetId: 0
SectorsPerTrack: 63
Signature: 2073846029
Size: 64017354240
Status: OK
StatusInfo: 
SystemCreationClassName: Win32_ComputerSystem
SystemName: EFRAS-LAPTOP
TotalCylinders: 7783
TotalHeads: 255
TotalSectors: 125033895
TotalTracks: 1984665
TracksPerCylinder: 255

Drive 2: Drive 2

bAvailability: 
BytesPerSector: 512
Capabilities: Random Access, Supports Writing, Supports Removable Media
CapabilityDescriptions: Random Access, Supports Writing, Supports Removable Media
Caption: USB Flash Disk USB Device
CompressionMethod: 
ConfigManagerErrorCode: Device is working properly.
ConfigManagerUserConfig: The device is not using a user-defined configuration
CreationClassName: Win32_DiskDrive
DefaultBlockSize: 
Description: Disk drive
DeviceID: \\.\PHYSICALDRIVE1
ErrorCleared: 
ErrorDescription: 
ErrorMethodology: 
Index: 1
InstallDate: 
InterfaceType: USB
LastErrorCode: 
Manufacturer: (Standard disk drives)
MaxBlockSize: 
MaxMediaSize: 
MediaLoaded: The device has a readable file system or is accessible.
MediaType: Removable Media
MinBlockSize: 
Model: USB Flash Disk USB Device
Name: \\.\PHYSICALDRIVE1
NeedsCleaning: 
NumberOfMediaSupported: 
Partitions: 1
PNPDeviceID: USBSTOR\DISK&VEN_USB&PROD_FLASH_DISK&REV_1100\FBG1207170739645&0
PowerManagementCapabilities: Unknown
PowerManagementSupported: 
SCSIBus: 
SCSILogicalUnit: 
SCSIPort: 
SCSITargetId: 
SectorsPerTrack: 63
Signature: -1022939624
Size: 1998743040
Status: OK
StatusInfo: 
SystemCreationClassName: Win32_ComputerSystem
SystemName: EFRAS-LAPTOP
TotalCylinders: 243
TotalHeads: 255
TotalSectors: 3903795
TotalTracks: 61965
TracksPerCylinder: 255

And this on a PC with 'normal' disk drives:

Drive 1: Drive 1

bAvailability: 
BytesPerSector: 512
Capabilities: Random Access, Supports Writing
CapabilityDescriptions: Random Access, Supports Writing
Caption: ST9500423AS ATA Device
CompressionMethod: 
ConfigManagerErrorCode: Device is working properly.
ConfigManagerUserConfig: The device is not using a user-defined configuration
CreationClassName: Win32_DiskDrive
DefaultBlockSize: 
Description: Disk drive
DeviceID: \\.\PHYSICALDRIVE0
ErrorCleared: 
ErrorDescription: 
ErrorMethodology: 
Index: 0
InstallDate: 
InterfaceType: IDE
LastErrorCode: 
Manufacturer: (Standard disk drives)
MaxBlockSize: 
MaxMediaSize: 
MediaLoaded: The device has a readable file system or is accessible.
MediaType: Fixed hard disk media
MinBlockSize: 
Model: ST9500423AS ATA Device
Name: \\.\PHYSICALDRIVE0
NeedsCleaning: 
NumberOfMediaSupported: 
Partitions: 2
PNPDeviceID: IDE\DISKST9500423AS_____________________________0003DEM1\5&4818193&0&0.0.0
PowerManagementCapabilities: Unknown
PowerManagementSupported: 
SCSIBus: 0
SCSILogicalUnit: 0
SCSIPort: 0
SCSITargetId: 0
SectorsPerTrack: 63
Signature: 
Size: 500105249280
Status: OK
StatusInfo: 
SystemCreationClassName: Win32_ComputerSystem
SystemName: BEGHE1LJKYW4S1
TotalCylinders: 60801
TotalHeads: 255
TotalSectors: 976768065
TotalTracks: 15504255
TracksPerCylinder: 255

Drive 2: Drive 2

bAvailability: 
BytesPerSector: 512
Capabilities: Random Access, Supports Writing
CapabilityDescriptions: Random Access, Supports Writing
Caption: SAMSUNG HD501LJ USB Device
CompressionMethod: 
ConfigManagerErrorCode: Device is working properly.
ConfigManagerUserConfig: The device is not using a user-defined configuration
CreationClassName: Win32_DiskDrive
DefaultBlockSize: 
Description: Disk drive
DeviceID: \\.\PHYSICALDRIVE1
ErrorCleared: 
ErrorDescription: 
ErrorMethodology: 
Index: 1
InstallDate: 
InterfaceType: USB
LastErrorCode: 
Manufacturer: (Standard disk drives)
MaxBlockSize: 
MaxMediaSize: 
MediaLoaded: The device has a readable file system or is accessible.
MediaType: External hard disk media
MinBlockSize: 
Model: SAMSUNG HD501LJ USB Device
Name: \\.\PHYSICALDRIVE1
NeedsCleaning: 
NumberOfMediaSupported: 
Partitions: 1
PNPDeviceID: USBSTOR\DISK&VEN_SAMSUNG&PROD_HD501LJ&REV_0-10\30754D306150&0
PowerManagementCapabilities: Unknown
PowerManagementSupported: 
SCSIBus: 
SCSILogicalUnit: 
SCSIPort: 
SCSITargetId: 
SectorsPerTrack: 63
Signature: 
Size: 500105249280
Status: OK
StatusInfo: 
SystemCreationClassName: Win32_ComputerSystem
SystemName: BEGHE1LJKYW4S1
TotalCylinders: 60801
TotalHeads: 255
TotalSectors: 976768065
TotalTracks: 15504255
TracksPerCylinder: 255

Drive 3: Drive 3

bAvailability: 
BytesPerSector: 512
Capabilities: Random Access, Supports Writing, Supports Removable Media
CapabilityDescriptions: Random Access, Supports Writing, Supports Removable Media
Caption: USB Flash Disk USB Device
CompressionMethod: 
ConfigManagerErrorCode: Device is working properly.
ConfigManagerUserConfig: The device is not using a user-defined configuration
CreationClassName: Win32_DiskDrive
DefaultBlockSize: 
Description: Disk drive
DeviceID: \\.\PHYSICALDRIVE2
ErrorCleared: 
ErrorDescription: 
ErrorMethodology: 
Index: 2
InstallDate: 
InterfaceType: USB
LastErrorCode: 
Manufacturer: (Standard disk drives)
MaxBlockSize: 
MaxMediaSize: 
MediaLoaded: The device has a readable file system or is accessible.
MediaType: Removable Media
MinBlockSize: 
Model: USB Flash Disk USB Device
Name: \\.\PHYSICALDRIVE2
NeedsCleaning: 
NumberOfMediaSupported: 
Partitions: 1
PNPDeviceID: USBSTOR\DISK&VEN_USB&PROD_FLASH_DISK&REV_1100\FBG1207170739645&0
PowerManagementCapabilities: Unknown
PowerManagementSupported: 
SCSIBus: 
SCSILogicalUnit: 
SCSIPort: 
SCSITargetId: 
SectorsPerTrack: 63
Signature: 
Size: 1998743040
Status: OK
StatusInfo: 
SystemCreationClassName: Win32_ComputerSystem
SystemName: BEGHE1LJKYW4S1
TotalCylinders: 243
TotalHeads: 255
TotalSectors: 3903795
TotalTracks: 61965
TracksPerCylinder: 255

I realize that this might not be what you are looking for but it's better than nothing


Contributions

CheckUpdate - SelfUpdating script ------- Self updating script

Dynamic input validation ------------------- Use a Input masks can make your life easier and Validation can be as simple

MsgBox with CountDown ------------------- MsgBox with visual countdown

Display Multiline text cells in ListView ---- Example of pop-up or ToolTip for multiline text items in ListView

Presentation Manager ---------------------- Program to display and refresh different Border-less GUI's on a Display (large screen TV)

USB Drive Tools ------------------------------ Tool to help you with your USB drive management

Input Period udf ------------------------------ GUI for a period input

Excel ColorPicker ---------------------------- Color pickup tool will allow you to select a color from the standard Excel color palette

Excel Chart UDF ----------------------------- Collaboration project with water 

GetDateInString ------------------------------ Find date/time in a string using a date format notation like DD Mon YYYY hh:mm

TaskListAllDetailed --------------------------- List All Scheduled Tasks

Computer Info --------------------------------- A collection of information for helpdesk

Shared memory Demo ----------------------- Demo: Two applications communicate with each other through means of a memory share (using Nomad function, 32bit only)

Universal Date Format Conversion -------- Universal date converter from your PC local date format to any format

Disable Windows DetailsPane -------------- Disable Windows Explorer Details Pane

Oracle SQL Report Generator -------------  Oracle Report generator using SQL

SQLite Report Generator -------------------  SQLite Report generator using SQL

SQLite ListView and BLOB demo ---------- Demo: shows how binary (image) objects can be recognized natively in a database BLOB field

DSN-Less Database connection demo --- Demo: ActiveX Data Objects DSN-Less Database access

Animated animals ----------------------------- Fun: Moving animated objects

Perforated image in GUI --------------------- Fun: Perforate your image with image objects

UEZ's Perforator major update ------------- Fun: Pro version of Perforator by UEZ

Visual Crop Tool (GUI) ----------------------- Easy to use Visual Image Crop tool

Visual Image effect (GUI) -------------------- Visually apply effects on an image

 

 

 

Share this post


Link to post
Share on other sites
guinness

No need for WMI.

Search the Forum for WinAPIEx by Yashied and look at the function_WinAPI_GetDriveBusType. You can see a working example here >> http://www.autoitscript.com/wiki/Snippets_(_Hardware_Information_)#GetDriveBusType


UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Share this post


Link to post
Share on other sites
uflex

You may want to have a look at thus UDF:

Drive Info UDFs download DriveInfo.au3 and run the following script

#include "DriveInfo.au3"
#Include <Array.au3>

Global $sInfo = ""

GUICreate("_DriveGetDiskDrive", 800, 600)
$LIST = GUICtrlCreateListView("Info|Type", 0, 0, 800, 600)
GUISetState()

Dim $aDiskDrive
_DriveGetDiskDrive($aDiskDrive)


For $i = 1 To $aDiskDrive[0][0]
    GUICtrlCreateListViewItem("Drive "&$i&"|Drive "&$i,$LIST)
    GUICtrlCreateListViewItem("",$LIST)
    GUICtrlCreateListViewItem("Availability|"&_DriveTranslateAvailability($aDiskDrive[$i][0]),$LIST)
    GUICtrlCreateListViewItem("BytesPerSector|"&$aDiskDrive[$i][1],$LIST)
    GUICtrlCreateListViewItem("Capabilities|"&_DriveTranslateCapabilities($aDiskDrive[$i][2]),$LIST)
    GUICtrlCreateListViewItem("CapabilityDescriptions|"&_ArrayToString($aDiskDrive[$i][3],", "),$LIST)
    GUICtrlCreateListViewItem("Caption|"&$aDiskDrive[$i][4],$LIST)
    GUICtrlCreateListViewItem("CompressionMethod|"&$aDiskDrive[$i][5],$LIST)
    GUICtrlCreateListViewItem("ConfigManagerErrorCode|"&_DriveTranslateConfigManagerErrorCode($aDiskDrive[$i][6]),$LIST)
    GUICtrlCreateListViewItem("ConfigManagerUserConfig|"&_DriveTranslateConfigManagerUserConfig($aDiskDrive[$i][7]),$LIST)
    GUICtrlCreateListViewItem("CreationClassName|"&$aDiskDrive[$i][8],$LIST)
    GUICtrlCreateListViewItem("DefaultBlockSize|"&$aDiskDrive[$i][9],$LIST)
    GUICtrlCreateListViewItem("Description|"&$aDiskDrive[$i][10],$LIST)
    GUICtrlCreateListViewItem("DeviceID|"&$aDiskDrive[$i][11],$LIST)
    GUICtrlCreateListViewItem("ErrorCleared|"&$aDiskDrive[$i][12],$LIST)
    GUICtrlCreateListViewItem("ErrorDescription|"&$aDiskDrive[$i][13],$LIST)
    GUICtrlCreateListViewItem("ErrorMethodology|"&$aDiskDrive[$i][14],$LIST)
    GUICtrlCreateListViewItem("Index|"&$aDiskDrive[$i][15],$LIST)
    GUICtrlCreateListViewItem("InstallDate|"&$aDiskDrive[$i][16],$LIST)
    GUICtrlCreateListViewItem("InterfaceType|"&$aDiskDrive[$i][17],$LIST)
    GUICtrlCreateListViewItem("LastErrorCode|"&$aDiskDrive[$i][18],$LIST)
    GUICtrlCreateListViewItem("Manufacturer|"&$aDiskDrive[$i][19],$LIST)
    GUICtrlCreateListViewItem("MaxBlockSize|"&$aDiskDrive[$i][20],$LIST)
    GUICtrlCreateListViewItem("MaxMediaSize|"&$aDiskDrive[$i][21],$LIST)
    GUICtrlCreateListViewItem("MediaLoaded|"&_DriveTranslateMediaLoaded($aDiskDrive[$i][22]),$LIST)
    GUICtrlCreateListViewItem("MediaType|"&$aDiskDrive[$i][23],$LIST)
    GUICtrlCreateListViewItem("MinBlockSize|"&$aDiskDrive[$i][24],$LIST)
    GUICtrlCreateListViewItem("Model|"&$aDiskDrive[$i][25],$LIST)
    GUICtrlCreateListViewItem("Name|"&$aDiskDrive[$i][26],$LIST)
    GUICtrlCreateListViewItem("NeedsCleaning|"&$aDiskDrive[$i][27],$LIST)
    GUICtrlCreateListViewItem("NumberOfMediaSupported|"&$aDiskDrive[$i][28],$LIST)
    GUICtrlCreateListViewItem("Partitions|"&$aDiskDrive[$i][29],$LIST)
    GUICtrlCreateListViewItem("PNPDeviceID|"&$aDiskDrive[$i][30],$LIST)
    GUICtrlCreateListViewItem("PowerManagementCapabilities|"&_DriveTranslatePowerManagementCapabilities($aDiskDrive[$i][31]),$LIST)
    GUICtrlCreateListViewItem("PowerManagementSupported|"&$aDiskDrive[$i][32],$LIST)
    GUICtrlCreateListViewItem("SCSIBus|"&$aDiskDrive[$i][33],$LIST)
    GUICtrlCreateListViewItem("SCSILogicalUnit|"&$aDiskDrive[$i][34],$LIST)
    GUICtrlCreateListViewItem("SCSIPort|"&$aDiskDrive[$i][35],$LIST)
    GUICtrlCreateListViewItem("SCSITargetId|"&$aDiskDrive[$i][36],$LIST)
    GUICtrlCreateListViewItem("SectorsPerTrack|"&$aDiskDrive[$i][37],$LIST)
    GUICtrlCreateListViewItem("Signature|"&$aDiskDrive[$i][38],$LIST)
    GUICtrlCreateListViewItem("Size|"&$aDiskDrive[$i][39],$LIST)
    GUICtrlCreateListViewItem("Status|"&$aDiskDrive[$i][40],$LIST)
    GUICtrlCreateListViewItem("StatusInfo|"&_DriveTranslateStatusInfo($aDiskDrive[$i][41]),$LIST)
    GUICtrlCreateListViewItem("SystemCreationClassName|"&$aDiskDrive[$i][42],$LIST)
    GUICtrlCreateListViewItem("SystemName|"&$aDiskDrive[$i][43],$LIST)
    GUICtrlCreateListViewItem("TotalCylinders|"&$aDiskDrive[$i][44],$LIST)
    GUICtrlCreateListViewItem("TotalHeads|"&$aDiskDrive[$i][45],$LIST)
    GUICtrlCreateListViewItem("TotalSectors|"&$aDiskDrive[$i][46],$LIST)
    GUICtrlCreateListViewItem("TotalTracks|"&$aDiskDrive[$i][47],$LIST)
    GUICtrlCreateListViewItem("TracksPerCylinder|"&$aDiskDrive[$i][48],$LIST)
    GUICtrlCreateListViewItem("",$LIST)

    LogIt("Drive " & $i & ": Drive "&$i)
    LogIt("")
    LogIt("bAvailability: " & _DriveTranslateAvailability($aDiskDrive[$i][0]))
    LogIt("BytesPerSector: " & $aDiskDrive[$i][1])
    LogIt("Capabilities: " & _DriveTranslateCapabilities($aDiskDrive[$i][2]))
    LogIt("CapabilityDescriptions: " & _ArrayToString($aDiskDrive[$i][3],", "))
    LogIt("Caption: " & $aDiskDrive[$i][4])
    LogIt("CompressionMethod: " & $aDiskDrive[$i][5])
    LogIt("ConfigManagerErrorCode: " & _DriveTranslateConfigManagerErrorCode($aDiskDrive[$i][6]))
    LogIt("ConfigManagerUserConfig: " & _DriveTranslateConfigManagerUserConfig($aDiskDrive[$i][7]))
    LogIt("CreationClassName: " & $aDiskDrive[$i][8])
    LogIt("DefaultBlockSize: " & $aDiskDrive[$i][9])
    LogIt("Description: " & $aDiskDrive[$i][10])
    LogIt("DeviceID: " & $aDiskDrive[$i][11])
    LogIt("ErrorCleared: " & $aDiskDrive[$i][12])
    LogIt("ErrorDescription: " & $aDiskDrive[$i][13])
    LogIt("ErrorMethodology: " & $aDiskDrive[$i][14])
    LogIt("Index: " & $aDiskDrive[$i][15])
    LogIt("InstallDate: " & $aDiskDrive[$i][16])
    LogIt("InterfaceType: " & $aDiskDrive[$i][17])
    LogIt("LastErrorCode: " & $aDiskDrive[$i][18])
    LogIt("Manufacturer: " & $aDiskDrive[$i][19])
    LogIt("MaxBlockSize: " & $aDiskDrive[$i][20])
    LogIt("MaxMediaSize: " & $aDiskDrive[$i][21])
    LogIt("MediaLoaded: " & _DriveTranslateMediaLoaded($aDiskDrive[$i][22]))
    LogIt("MediaType: " & $aDiskDrive[$i][23])
    LogIt("MinBlockSize: " & $aDiskDrive[$i][24])
    LogIt("Model: " & $aDiskDrive[$i][25])
    LogIt("Name: " & $aDiskDrive[$i][26])
    LogIt("NeedsCleaning: " & $aDiskDrive[$i][27])
    LogIt("NumberOfMediaSupported: " & $aDiskDrive[$i][28])
    LogIt("Partitions: " & $aDiskDrive[$i][29])
    LogIt("PNPDeviceID: " & $aDiskDrive[$i][30])
    LogIt("PowerManagementCapabilities: " & _DriveTranslatePowerManagementCapabilities($aDiskDrive[$i][31]))
    LogIt("PowerManagementSupported: " & $aDiskDrive[$i][32])
    LogIt("SCSIBus: " & $aDiskDrive[$i][33])
    LogIt("SCSILogicalUnit: " & $aDiskDrive[$i][34])
    LogIt("SCSIPort: " & $aDiskDrive[$i][35])
    LogIt("SCSITargetId: " & $aDiskDrive[$i][36])
    LogIt("SectorsPerTrack: " & $aDiskDrive[$i][37])
    LogIt("Signature: " & $aDiskDrive[$i][38])
    LogIt("Size: " & $aDiskDrive[$i][39])
    LogIt("Status: " & $aDiskDrive[$i][40])
    LogIt("StatusInfo: " & _DriveTranslateStatusInfo($aDiskDrive[$i][41]))
    LogIt("SystemCreationClassName: " & $aDiskDrive[$i][42])
    LogIt("SystemName: " & $aDiskDrive[$i][43])
    LogIt("TotalCylinders: " & $aDiskDrive[$i][44])
    LogIt("TotalHeads: " & $aDiskDrive[$i][45])
    LogIt("TotalSectors: " & $aDiskDrive[$i][46])
    LogIt("TotalTracks: " & $aDiskDrive[$i][47])
    LogIt("TracksPerCylinder: " & $aDiskDrive[$i][48])
    LogIt("")
Next
ConsoleWrite($sInfo & @CRLF)
Local $file = FileOpen(@ScriptDir & "\drives.log", 2)
If $file = -1 Then Exit  MsgBox(0, "Error", "Unable to open file " & @ScriptDir & "\drives.log")
FileWrite($file, $sInfo)
FileClose($file)

While GUIGetMsg() <> -3
    Sleep(10)
WEnd


Func LogIt($sText)
    $sInfo &= $sText & @CRLF
EndFunc

The script will create a log file and this is what I got on a laptop with SSD

Drive 1: Drive 1

bAvailability: 
BytesPerSector: 512
Capabilities: Random Access, Supports Writing, SMART Notification
CapabilityDescriptions: Random Access, Supports Writing, SMART Notification
Caption: SAMSUNG SSD Thin uSATA 6
CompressionMethod: 
ConfigManagerErrorCode: Device is working properly.
ConfigManagerUserConfig: The device is not using a user-defined configuration
CreationClassName: Win32_DiskDrive
DefaultBlockSize: 
Description: Disk drive
DeviceID: \\.\PHYSICALDRIVE0
ErrorCleared: 
ErrorDescription: 
ErrorMethodology: 
Index: 0
InstallDate: 
InterfaceType: SCSI
LastErrorCode: 
Manufacturer: (Standard disk drives)
MaxBlockSize: 
MaxMediaSize: 
MediaLoaded: The device has a readable file system or is accessible.
MediaType: Fixed hard disk media
MinBlockSize: 
Model: SAMSUNG SSD Thin uSATA 6
Name: \\.\PHYSICALDRIVE0
NeedsCleaning: 
NumberOfMediaSupported: 
Partitions: 2
PNPDeviceID: IDE\DISKSAMSUNG_SSD_THIN_USATA_64GB_M___________VAM05D1Q\4&14338D07&0&0.0.0
PowerManagementCapabilities: Unknown
PowerManagementSupported: 
SCSIBus: 0
SCSILogicalUnit: 0
SCSIPort: 0
SCSITargetId: 0
SectorsPerTrack: 63
Signature: 2073846029
Size: 64017354240
Status: OK
StatusInfo: 
SystemCreationClassName: Win32_ComputerSystem
SystemName: EFRAS-LAPTOP
TotalCylinders: 7783
TotalHeads: 255
TotalSectors: 125033895
TotalTracks: 1984665
TracksPerCylinder: 255

Drive 2: Drive 2

bAvailability: 
BytesPerSector: 512
Capabilities: Random Access, Supports Writing, Supports Removable Media
CapabilityDescriptions: Random Access, Supports Writing, Supports Removable Media
Caption: USB Flash Disk USB Device
CompressionMethod: 
ConfigManagerErrorCode: Device is working properly.
ConfigManagerUserConfig: The device is not using a user-defined configuration
CreationClassName: Win32_DiskDrive
DefaultBlockSize: 
Description: Disk drive
DeviceID: \\.\PHYSICALDRIVE1
ErrorCleared: 
ErrorDescription: 
ErrorMethodology: 
Index: 1
InstallDate: 
InterfaceType: USB
LastErrorCode: 
Manufacturer: (Standard disk drives)
MaxBlockSize: 
MaxMediaSize: 
MediaLoaded: The device has a readable file system or is accessible.
MediaType: Removable Media
MinBlockSize: 
Model: USB Flash Disk USB Device
Name: \\.\PHYSICALDRIVE1
NeedsCleaning: 
NumberOfMediaSupported: 
Partitions: 1
PNPDeviceID: USBSTOR\DISK&VEN_USB&PROD_FLASH_DISK&REV_1100\FBG1207170739645&0
PowerManagementCapabilities: Unknown
PowerManagementSupported: 
SCSIBus: 
SCSILogicalUnit: 
SCSIPort: 
SCSITargetId: 
SectorsPerTrack: 63
Signature: -1022939624
Size: 1998743040
Status: OK
StatusInfo: 
SystemCreationClassName: Win32_ComputerSystem
SystemName: EFRAS-LAPTOP
TotalCylinders: 243
TotalHeads: 255
TotalSectors: 3903795
TotalTracks: 61965
TracksPerCylinder: 255

And this on a PC with 'normal' disk drives:

Drive 1: Drive 1

bAvailability: 
BytesPerSector: 512
Capabilities: Random Access, Supports Writing
CapabilityDescriptions: Random Access, Supports Writing
Caption: ST9500423AS ATA Device
CompressionMethod: 
ConfigManagerErrorCode: Device is working properly.
ConfigManagerUserConfig: The device is not using a user-defined configuration
CreationClassName: Win32_DiskDrive
DefaultBlockSize: 
Description: Disk drive
DeviceID: \\.\PHYSICALDRIVE0
ErrorCleared: 
ErrorDescription: 
ErrorMethodology: 
Index: 0
InstallDate: 
InterfaceType: IDE
LastErrorCode: 
Manufacturer: (Standard disk drives)
MaxBlockSize: 
MaxMediaSize: 
MediaLoaded: The device has a readable file system or is accessible.
MediaType: Fixed hard disk media
MinBlockSize: 
Model: ST9500423AS ATA Device
Name: \\.\PHYSICALDRIVE0
NeedsCleaning: 
NumberOfMediaSupported: 
Partitions: 2
PNPDeviceID: IDE\DISKST9500423AS_____________________________0003DEM1\5&4818193&0&0.0.0
PowerManagementCapabilities: Unknown
PowerManagementSupported: 
SCSIBus: 0
SCSILogicalUnit: 0
SCSIPort: 0
SCSITargetId: 0
SectorsPerTrack: 63
Signature: 
Size: 500105249280
Status: OK
StatusInfo: 
SystemCreationClassName: Win32_ComputerSystem
SystemName: BEGHE1LJKYW4S1
TotalCylinders: 60801
TotalHeads: 255
TotalSectors: 976768065
TotalTracks: 15504255
TracksPerCylinder: 255

Drive 2: Drive 2

bAvailability: 
BytesPerSector: 512
Capabilities: Random Access, Supports Writing
CapabilityDescriptions: Random Access, Supports Writing
Caption: SAMSUNG HD501LJ USB Device
CompressionMethod: 
ConfigManagerErrorCode: Device is working properly.
ConfigManagerUserConfig: The device is not using a user-defined configuration
CreationClassName: Win32_DiskDrive
DefaultBlockSize: 
Description: Disk drive
DeviceID: \\.\PHYSICALDRIVE1
ErrorCleared: 
ErrorDescription: 
ErrorMethodology: 
Index: 1
InstallDate: 
InterfaceType: USB
LastErrorCode: 
Manufacturer: (Standard disk drives)
MaxBlockSize: 
MaxMediaSize: 
MediaLoaded: The device has a readable file system or is accessible.
MediaType: External hard disk media
MinBlockSize: 
Model: SAMSUNG HD501LJ USB Device
Name: \\.\PHYSICALDRIVE1
NeedsCleaning: 
NumberOfMediaSupported: 
Partitions: 1
PNPDeviceID: USBSTOR\DISK&VEN_SAMSUNG&PROD_HD501LJ&REV_0-10\30754D306150&0
PowerManagementCapabilities: Unknown
PowerManagementSupported: 
SCSIBus: 
SCSILogicalUnit: 
SCSIPort: 
SCSITargetId: 
SectorsPerTrack: 63
Signature: 
Size: 500105249280
Status: OK
StatusInfo: 
SystemCreationClassName: Win32_ComputerSystem
SystemName: BEGHE1LJKYW4S1
TotalCylinders: 60801
TotalHeads: 255
TotalSectors: 976768065
TotalTracks: 15504255
TracksPerCylinder: 255

Drive 3: Drive 3

bAvailability: 
BytesPerSector: 512
Capabilities: Random Access, Supports Writing, Supports Removable Media
CapabilityDescriptions: Random Access, Supports Writing, Supports Removable Media
Caption: USB Flash Disk USB Device
CompressionMethod: 
ConfigManagerErrorCode: Device is working properly.
ConfigManagerUserConfig: The device is not using a user-defined configuration
CreationClassName: Win32_DiskDrive
DefaultBlockSize: 
Description: Disk drive
DeviceID: \\.\PHYSICALDRIVE2
ErrorCleared: 
ErrorDescription: 
ErrorMethodology: 
Index: 2
InstallDate: 
InterfaceType: USB
LastErrorCode: 
Manufacturer: (Standard disk drives)
MaxBlockSize: 
MaxMediaSize: 
MediaLoaded: The device has a readable file system or is accessible.
MediaType: Removable Media
MinBlockSize: 
Model: USB Flash Disk USB Device
Name: \\.\PHYSICALDRIVE2
NeedsCleaning: 
NumberOfMediaSupported: 
Partitions: 1
PNPDeviceID: USBSTOR\DISK&VEN_USB&PROD_FLASH_DISK&REV_1100\FBG1207170739645&0
PowerManagementCapabilities: Unknown
PowerManagementSupported: 
SCSIBus: 
SCSILogicalUnit: 
SCSIPort: 
SCSITargetId: 
SectorsPerTrack: 63
Signature: 
Size: 1998743040
Status: OK
StatusInfo: 
SystemCreationClassName: Win32_ComputerSystem
SystemName: BEGHE1LJKYW4S1
TotalCylinders: 243
TotalHeads: 255
TotalSectors: 3903795
TotalTracks: 61965
TracksPerCylinder: 255

I realize that this might not be what you are looking for but it's better than nothing

Thanks.

But I want to get a way working in PE(no wmi) and OS.

Perhaps [InterfaceType: SCSI] is the trail.

Share this post


Link to post
Share on other sites
uflex

No need for WMI.

Search the Forum for WinAPIEx by Yashied and look at the function_WinAPI_GetDriveBusType. You can see a working example here >> http://www.autoitscript.com/wiki/Snippets_(_Hardware_Information_)#GetDriveBusType

My purpose is to check whether a disk is SSD.

GetDriveBusType  will return SATA , but it can not be the evidence .  ?

Share this post


Link to post
Share on other sites
careca

I got 2 SSD's out of 5 drives, and the drive name has the SSD in it, so i would use the drive name until something better came up.

Oh, and btw, you could always copy a file to all hdds and check the time, anything under, i dont know, some seconds would be the ssd, the rest would be hdds.

Edited by careca

Spoiler

Paster - Main function is to paste text, but has more functions. (No longer mantained, switched to String Trigger)

Renamer - Rename files and folders, remove portions of text from the filename etc.

GPO Tool - Export/Import Group policy settings.

BeatsPlayer - Music player.

Params Tool - Right click an exe to see it's parameters or execute them.

String Trigger - Triggers pasting text or applications or internet links on specific strings.

Inconspicuous - Hide files in plain sight, not fully encrypted.

Regedit Control - Registry browsing history, quickly jump into any saved key.

Time4Shutdown - Write the time for shutdown in minutes.

Power Profiles Tool - Set a profile as active, delete, duplicate, export and import.

Firefox Profile Backup - Backup/restore previously saved profile.

Finished Task Shutdown - Shuts down pc when specified window/Wndl/process closes.

NetworkSpeedShutdown - Shuts down pc if download speed goes under "X" Kb/s.

IUIAutomation - Topic with framework and examples

Au3Record.exe

Share this post


Link to post
Share on other sites
Xenobiologist

Maybe you can try to check something this :

NominalMediaRotationRate/ rotation speed

Site: http://msdn.microsoft.com/en-us/library/ff559006.aspx

Rotation speed = 0 ==> SSD.

Edit : Seems not to be easy with VB or Autoit :ranting:

http://stackoverflow.com/questions/908188/is-there-any-way-of-detecting-if-a-drive-is-a-ssd

Edited by Xenobiologist

Scripts & functions Organize Includes Let Scite organize the include files

Yahtzee The game "Yahtzee" (Kniffel, DiceLion)

LoginWrapper Secure scripts by adding a query (authentication)

_RunOnlyOnThis UDF Make sure that a script can only be executed on ... (Windows / HD / ...)

Internet-Café Server/Client Application Open CD, Start Browser, Lock remote client, etc.

MultipleFuncsWithOneHotkey Start different funcs by hitting one hotkey different times

Share this post


Link to post
Share on other sites
guinness

I've always recommended _IsDriveSSD >> but that's WMI too.


UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Share this post


Link to post
Share on other sites
FreeBeing

I've always recommended _IsDriveSSD >> but that's WMI too.

 

I tried your code, but it said "error at line 17" : do you have any idea ?

Thank you ;)

Share this post


Link to post
Share on other sites
guinness

Forum upgrade removed the backslashes. Try it now.


UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Share this post


Link to post
Share on other sites
Xenobiologist

I did. Doesn't work for me. Tried on my working laptop with one SSD inside.

But the function says it is not a SSD drive.


Scripts & functions Organize Includes Let Scite organize the include files

Yahtzee The game "Yahtzee" (Kniffel, DiceLion)

LoginWrapper Secure scripts by adding a query (authentication)

_RunOnlyOnThis UDF Make sure that a script can only be executed on ... (Windows / HD / ...)

Internet-Café Server/Client Application Open CD, Start Browser, Lock remote client, etc.

MultipleFuncsWithOneHotkey Start different funcs by hitting one hotkey different times

Share this post


Link to post
Share on other sites
guinness

Strange. It's based on code from here >>

Edited by guinness

UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Share this post


Link to post
Share on other sites
Xenobiologist

The array contains this:

5
C
Disk #0
 Partition #0
.PHYSICALDRIVE0
IDEDISKKINGSTON_SH103S3120G__________________501ABBF04&2D6FBA98&0&0.0.0

and the function prtins out : false

Edited by Xenobiologist

Scripts & functions Organize Includes Let Scite organize the include files

Yahtzee The game "Yahtzee" (Kniffel, DiceLion)

LoginWrapper Secure scripts by adding a query (authentication)

_RunOnlyOnThis UDF Make sure that a script can only be executed on ... (Windows / HD / ...)

Internet-Café Server/Client Application Open CD, Start Browser, Lock remote client, etc.

MultipleFuncsWithOneHotkey Start different funcs by hitting one hotkey different times

Share this post


Link to post
Share on other sites
guinness

It's correct. The code checks whether the last item contains SSD in the string, which it doesn't from the output. So the code is flawed. Sorry everyone.


UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Share this post


Link to post
Share on other sites
uflex

This will be a common problem.

SSD's port can be SATA or PCIE or USB bus.

 

 IDENTIFY_DEVICE_DATA  is under the msdn section of  ATA driver.

There should be a test in different bus.

Share this post


Link to post
Share on other sites
ModemJunki

I don't have input that can be very helpful to provide a solution but only reinforcing what has already been said.

I also had interest in this.

From what I understand, Windows determines if a drive is SSD by measuring the throughput of read/write operations, and not by any other means. It is this measurement that lets it determine if disk defragmentation should be active on the volumes hosted by the drive.

In Windows PE, I didn't find any method for this determination. And not every SSD can be expected to have "SSD" in the drive identifier (model) string.

So I came to the conclusion a standalone tool must be made to measure the disk speeds like is done in Windows setup. This was beyond my own skills.

Share this post


Link to post
Share on other sites
Xenobiologist

Maybe there is a s.m.a.r.t tool which can be used via commandline to get the info.


Scripts & functions Organize Includes Let Scite organize the include files

Yahtzee The game "Yahtzee" (Kniffel, DiceLion)

LoginWrapper Secure scripts by adding a query (authentication)

_RunOnlyOnThis UDF Make sure that a script can only be executed on ... (Windows / HD / ...)

Internet-Café Server/Client Application Open CD, Start Browser, Lock remote client, etc.

MultipleFuncsWithOneHotkey Start different funcs by hitting one hotkey different times

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×