<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.autoitscript.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rindeal</id>
	<title>AutoIt Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.autoitscript.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rindeal"/>
	<link rel="alternate" type="text/html" href="https://www.autoitscript.com/wiki/Special:Contributions/Rindeal"/>
	<updated>2026-04-21T19:35:12Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=Snippets_(_Hardware_Information_)&amp;diff=12256</id>
		<title>Snippets ( Hardware Information )</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=Snippets_(_Hardware_Information_)&amp;diff=12256"/>
		<updated>2014-01-17T00:08:58Z</updated>

		<summary type="html">&lt;p&gt;Rindeal: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
[[category:Snippets]]&lt;br /&gt;
&lt;br /&gt;
{{Snippet Credit Header}}&lt;br /&gt;
&lt;br /&gt;
== _ComputerNameAndModel ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
| AuthorURL = 35302-guinness&lt;br /&gt;
| AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Can return nothing relevant if machine is not a factory build&lt;br /&gt;
Global $aArray = _ComputerNameAndModel() ; Returns an Array with 2 indexes.&lt;br /&gt;
MsgBox(64, &amp;quot;_ComputerNameAndModel()&amp;quot;, &#039;The Product is a &amp;quot;&#039; &amp;amp; $aArray[0] &amp;amp; &#039;&amp;quot; and the Serial Number is &amp;quot;&#039; &amp;amp; $aArray[1] &amp;amp; &#039;&amp;quot;.&#039;)&lt;br /&gt;
&lt;br /&gt;
Func _ComputerNameAndModel()&lt;br /&gt;
    Local $aReturn[2] = [&amp;quot;(Unknown)&amp;quot;, &amp;quot;(Unknown)&amp;quot;], $oColItems, $oWMIService&lt;br /&gt;
&lt;br /&gt;
    $oWMIService = ObjGet(&amp;quot;winmgmts:\\.\root\cimv2&amp;quot;)&lt;br /&gt;
    $oColItems = $oWMIService.ExecQuery(&amp;quot;Select * From Win32_ComputerSystemProduct&amp;quot;, &amp;quot;WQL&amp;quot;, 0x30)&lt;br /&gt;
    If IsObj($oColItems) Then&lt;br /&gt;
        For $oObjectItem In $oColItems&lt;br /&gt;
            $aReturn[0] = $oObjectItem.Name&lt;br /&gt;
            $aReturn[1] = $oObjectItem.IdentifyingNumber&lt;br /&gt;
        Next&lt;br /&gt;
        Return $aReturn&lt;br /&gt;
    EndIf&lt;br /&gt;
    Return SetError(1, 0, $aReturn)&lt;br /&gt;
EndFunc   ;==&amp;gt;_ComputerNameAndModel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top | Return To Contents]]&lt;br /&gt;
&lt;br /&gt;
== _GetComputerModel ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
| AuthorURL = 35302-guinness&lt;br /&gt;
| AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Can return nothing relevant if machine is not a factory build&lt;br /&gt;
ConsoleWrite(_GetComputerModel() &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
Func _GetComputerModel()&lt;br /&gt;
    Local $oWMIService = ObjGet(&amp;quot;winmgmts:\\.\&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Local $oColItems = $oWMIService.ExecQuery(&amp;quot;Select * From Win32_ComputerSystem&amp;quot;, &amp;quot;WQL&amp;quot;, 0x30)&lt;br /&gt;
	Local $sDescription&lt;br /&gt;
&lt;br /&gt;
    If IsObj($oColItems) Then&lt;br /&gt;
        For $oObjectItem In $oColItems&lt;br /&gt;
            $sDescription &amp;amp;= $oObjectItem.Model&lt;br /&gt;
        Next&lt;br /&gt;
&lt;br /&gt;
        Return $sDescription&lt;br /&gt;
    EndIf&lt;br /&gt;
&lt;br /&gt;
    Return SetError(1, 1, 0)&lt;br /&gt;
EndFunc   ;==&amp;gt;_GetComputerModel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top|Return To Contents]]&lt;br /&gt;
&lt;br /&gt;
== _GetComputerModel_2 ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
| AuthorURL = 84272-rindeal&lt;br /&gt;
| AuthorName = rindeal&lt;br /&gt;
| Desc=Faster version of the snippet above&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
; Can return nothing relevant if machine is not a factory build&lt;br /&gt;
ConsoleWrite(_GetComputerModel() &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
Func _GetComputerModel()&lt;br /&gt;
	Return RegRead(&amp;quot;HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\BIOS&amp;quot;, &amp;quot;SystemProductName&amp;quot;)&lt;br /&gt;
EndFunc   ;==&amp;gt;_GetComputerModel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top|Return To Contents]]&lt;br /&gt;
&lt;br /&gt;
== _GetDriveBusType ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
| AuthorURL = 35302-guinness&lt;br /&gt;
| AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;APIConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPIEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Local $aDrive = DriveGetDrive(&#039;ALL&#039;)&lt;br /&gt;
For $i = 1 To $aDrive[0]&lt;br /&gt;
	ConsoleWrite(StringUpper($aDrive[$i]) &amp;amp; &#039; =&amp;gt; &#039; &amp;amp; _GetDriveBusType($aDrive[$i]) &amp;amp; @CRLF)&lt;br /&gt;
Next&lt;br /&gt;
&lt;br /&gt;
; Get a string representation of a drive&#039;s bus type.&lt;br /&gt;
Func _GetDriveBusType($sDrive)&lt;br /&gt;
	Local $aArray[14][2] = [[$DRIVE_BUS_TYPE_UNKNOWN, &#039;UNKNOWN&#039;], _&lt;br /&gt;
			[$DRIVE_BUS_TYPE_SCSI, &#039;SCSI&#039;], _&lt;br /&gt;
			[$DRIVE_BUS_TYPE_ATAPI, &#039;ATAPI&#039;], _&lt;br /&gt;
			[$DRIVE_BUS_TYPE_ATA, &#039;ATA&#039;], _&lt;br /&gt;
			[$DRIVE_BUS_TYPE_1394, &#039;1394&#039;], _&lt;br /&gt;
			[$DRIVE_BUS_TYPE_SSA, &#039;SSA&#039;], _&lt;br /&gt;
			[$DRIVE_BUS_TYPE_FIBRE, &#039;FIBRE&#039;], _&lt;br /&gt;
			[$DRIVE_BUS_TYPE_USB, &#039;USB&#039;], _&lt;br /&gt;
			[$DRIVE_BUS_TYPE_RAID, &#039;RAID&#039;], _&lt;br /&gt;
			[$DRIVE_BUS_TYPE_ISCSI, &#039;ISCSI&#039;], _&lt;br /&gt;
			[$DRIVE_BUS_TYPE_SAS, &#039;SAS&#039;], _&lt;br /&gt;
			[$DRIVE_BUS_TYPE_SATA, &#039;SATA&#039;], _&lt;br /&gt;
			[$DRIVE_BUS_TYPE_SD, &#039;SD&#039;], _&lt;br /&gt;
			[$DRIVE_BUS_TYPE_MMC, &#039;MMC&#039;]]&lt;br /&gt;
	Local $iDriveType = _WinAPI_GetDriveBusType($sDrive)&lt;br /&gt;
	If @error Then&lt;br /&gt;
		Return $aArray[0][1]&lt;br /&gt;
	EndIf&lt;br /&gt;
	Return $aArray[$iDriveType][1]&lt;br /&gt;
EndFunc   ;==&amp;gt;_GetDriveBusType&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top|Return To Contents]]&lt;br /&gt;
&lt;br /&gt;
== _GetUnusedDrives ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
| AuthorURL = 35302-guinness&lt;br /&gt;
| AuthorName = guinness&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;Array.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;~ Retrieve unused drive letters.&lt;br /&gt;
Local $aDrives = _GetUnusedDrives()&lt;br /&gt;
_ArrayDisplay($aDrives)&lt;br /&gt;
&lt;br /&gt;
Func _GetUnusedDrives()&lt;br /&gt;
	Local $aReturn[1] = [0], $sReturn = &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
	For $i = 1 To 26&lt;br /&gt;
		$sReturn &amp;amp;= Chr($i + 64) &amp;amp; &#039;:|&#039;&lt;br /&gt;
	Next&lt;br /&gt;
&lt;br /&gt;
	Local $aArray = DriveGetDrive(&#039;ALL&#039;)&lt;br /&gt;
	If @error Then&lt;br /&gt;
		$aArray = $aReturn&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	For $i = 1 To $aArray[0]&lt;br /&gt;
		$sReturn = StringReplace($sReturn, StringLeft($aArray[$i], 1) &amp;amp; &#039;:|&#039;, &#039;&#039;)&lt;br /&gt;
	Next&lt;br /&gt;
	Return StringSplit(StringTrimRight($sReturn, 1), &#039;|&#039;)&lt;br /&gt;
EndFunc   ;==&amp;gt;_GetUnusedDrives&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top|Return To Contents]]&lt;br /&gt;
&lt;br /&gt;
== _IsSubst ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
| AuthorURL = 35302-guinness&lt;br /&gt;
| AuthorName = guinness&lt;br /&gt;
| Desc=Checks if a drive is a subst drive.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPIEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ConsoleWrite(_IsSubst(@HomeDrive) &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
; Checks if a drive is a subst drive.&lt;br /&gt;
Func _IsSubst($sDrive)&lt;br /&gt;
    Return _WinAPI_PathIsDirectory(StringReplace(_WinAPI_QueryDosDevice(StringLeft($sDrive, 1) &amp;amp; &amp;quot;:&amp;quot;), &amp;quot;\??\&amp;quot;, &amp;quot;&amp;quot;))&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsSubst&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top|Return To Contents]]&lt;br /&gt;
&lt;br /&gt;
== _IsTrueCrypt ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
| AuthorURL = 35302-guinness&lt;br /&gt;
| AuthorName = guinness&lt;br /&gt;
| Desc=Check if a drive is a TrueCrypt drive.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;WinAPIEx.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ConsoleWrite(&amp;quot;Is &amp;quot; &amp;amp; @HomeDrive &amp;amp; &amp;quot;\ a TrueCrypt drive?: &amp;quot; &amp;amp; _IsTrueCrypt(@HomePath) &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
; Check if a drive is a TrueCrypt drive.&lt;br /&gt;
Func _IsTrueCrypt($sDrive)&lt;br /&gt;
    Return StringInStr(_WinAPI_QueryDosDevice(StringLeft($sDrive, 1) &amp;amp; &#039;:&#039;), &#039;TrueCrypt&#039;, 2) &amp;gt; 0&lt;br /&gt;
EndFunc   ;==&amp;gt;_IsTrueCrypt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top|Return To Contents]]&lt;br /&gt;
&lt;br /&gt;
== _MonitorToggle ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
| AuthorURL = 7688-greenmachine&lt;br /&gt;
| AuthorName = greenmachine&lt;br /&gt;
| Desc = Toggle Monitor On/Off.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;SendMessage.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
_MonitorToggle(1)&lt;br /&gt;
Sleep(1000)&lt;br /&gt;
_MonitorToggle(0)&lt;br /&gt;
&lt;br /&gt;
; Toggle Monitor On/Off.&lt;br /&gt;
Func _MonitorToggle($iTurnOff = 1)&lt;br /&gt;
	Local $hWnd = WinGetHandle(&amp;quot;[CLASS:Progman]&amp;quot;), $SC_MONITORPOWER = 61808&lt;br /&gt;
	If $iTurnOff Then&lt;br /&gt;
		Return _SendMessage($hWnd, $WM_SYSCOMMAND, $SC_MONITORPOWER, 2)&lt;br /&gt;
	Else&lt;br /&gt;
		Return _SendMessage($hWnd, $WM_SYSCOMMAND, $SC_MONITORPOWER, -1)&lt;br /&gt;
	EndIf&lt;br /&gt;
EndFunc   ;==&amp;gt;_MonitorToggle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top|Return To Contents]]&lt;br /&gt;
&lt;br /&gt;
== _GetTotalScreenResolution ==&lt;br /&gt;
&lt;br /&gt;
{{Snippet Header&lt;br /&gt;
| AuthorURL = 28010-larrydalooza&lt;br /&gt;
| AuthorName = LarryDalooza&lt;br /&gt;
| ModifierURL = 16404-brettf&lt;br /&gt;
| ModifierName = BrettF&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;autoit&amp;quot;&amp;gt;&lt;br /&gt;
 Global Const $aTSR = _GetTotalScreenResolution()&lt;br /&gt;
&lt;br /&gt;
 MsgBox(0, &amp;quot;Total Screen Resolution&amp;quot;, &amp;quot;Width = &amp;quot; &amp;amp; $aTSR[0] &amp;amp; @TAB &amp;amp; &amp;quot;Height = &amp;quot; &amp;amp; $aTSR[1])&lt;br /&gt;
&lt;br /&gt;
 Func _GetTotalScreenResolution()&lt;br /&gt;
     Local Const $SM_VIRTUALWIDTH = 78&lt;br /&gt;
     Local Const $VirtualDesktopWidth = DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;GetSystemMetrics&amp;quot;, &amp;quot;int&amp;quot;, $SM_VIRTUALWIDTH)&lt;br /&gt;
&lt;br /&gt;
     Local Const $SM_VIRTUALHEIGHT = 79&lt;br /&gt;
     Local Const $VirtualDesktopHeight = DllCall(&amp;quot;user32.dll&amp;quot;, &amp;quot;int&amp;quot;, &amp;quot;GetSystemMetrics&amp;quot;, &amp;quot;int&amp;quot;, $SM_VIRTUALHEIGHT)&lt;br /&gt;
&lt;br /&gt;
     Local Const $aRet[2] = [$VirtualDesktopWidth[0], $VirtualDesktopHeight[0]]&lt;br /&gt;
&lt;br /&gt;
     Return $aRet&lt;br /&gt;
 EndFunc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#top|Return To Contents]]&lt;/div&gt;</summary>
		<author><name>Rindeal</name></author>
	</entry>
</feed>