Snippets ( Hardware Information )

From AutoIt Wiki
Revision as of 20:20, 13 November 2012 by Jaberwocky6669 (talk | contribs) (Edited snippets to conform to template Snippet Header.)
Jump to navigation Jump to search

Please always credit an author in your script if you use their code. It is only polite.


_ComputerNameAndModel

Author: guinness








; Can return nothing relevant if machine is not a factory build
Global $aArray = _ComputerNameAndModel() ; Returns an Array with 2 indexes.
MsgBox(64, "_ComputerNameAndModel()", 'The Product is a "' & $aArray[0] & '" and the Serial Number is "' & $aArray[1] & '".')

Func _ComputerNameAndModel()
    Local $aReturn[2] = ["(Unknown)", "(Unknown)"], $oColItems, $oWMIService

    $oWMIService = ObjGet("winmgmts:\\.\root\cimv2")
    $oColItems = $oWMIService.ExecQuery("Select * From Win32_ComputerSystemProduct", "WQL", 0x30)
    If IsObj($oColItems) Then
        For $oObjectItem In $oColItems
            $aReturn[0] = $oObjectItem.Name
            $aReturn[1] = $oObjectItem.IdentifyingNumber
        Next
        Return $aReturn
    EndIf
    Return SetError(1, 0, $aReturn)
EndFunc   ;==>_ComputerNameAndModel

Return To Contents

_GetComputerModel

Author: guinness








; Can return nothing relevant if machine is not a factory build
ConsoleWrite(_GetComputerModel() & @CRLF)

Func _GetComputerModel()
    Local $oWMIService = ObjGet("winmgmts:\\.\")

    Local $oColItems = $oWMIService.ExecQuery("Select * From Win32_ComputerSystem", "WQL", 0x30)
	Local $sDescription

    If IsObj($oColItems) Then
        For $oObjectItem In $oColItems
            $sDescription &= $oObjectItem.Model
        Next

        Return $sDescription
    EndIf

    Return SetError(1, 1, 0)
EndFunc   ;==>_GetComputerModel

Return To Contents

_GetDriveBusType

Author: guinness








#include <APIConstants.au3>
#include <WinAPIEx.au3>

Global Const $aDrive = DriveGetDrive('ALL')

For $i = 1 To $aDrive[0]
    ConsoleWrite(StringUpper($aDrive[$i]) & ' => ' & _GetDriveBusType($aDrive[$i]) & @CRLF)
Next

; Get a string representation of a drive's bus type.
Func _GetDriveBusType($sDrive)
    Local Const $aArray[14][2] = _
	       [[$DRIVE_BUS_TYPE_UNKNOWN, 'UNKNOWN'], _
            [$DRIVE_BUS_TYPE_SCSI, 'SCSI'], _
            [$DRIVE_BUS_TYPE_ATAPI, 'ATAPI'], _
            [$DRIVE_BUS_TYPE_ATA, 'ATA'], _
            [$DRIVE_BUS_TYPE_1394, '1394'], _
            [$DRIVE_BUS_TYPE_SSA, 'SSA'], _
            [$DRIVE_BUS_TYPE_FIBRE, 'FIBRE'], _
            [$DRIVE_BUS_TYPE_USB, 'USB'], _
            [$DRIVE_BUS_TYPE_RAID, 'RAID'], _
            [$DRIVE_BUS_TYPE_ISCSI, 'ISCSI'], _
            [$DRIVE_BUS_TYPE_SAS, 'SAS'], _
            [$DRIVE_BUS_TYPE_SATA, 'SATA'], _
            [$DRIVE_BUS_TYPE_SD, 'SD'], _
            [$DRIVE_BUS_TYPE_MMC, 'MMC']]

    Local Const $iDriveType = _WinAPI_GetDriveBusType($sDrive)

    If @error Then
        Return $aArray[0][1]
    EndIf

    Return $aArray[$iDriveType][1]
EndFunc   ;==>_GetDriveBusType

Return To Contents

_GetUnusedDrives

Author: guinness








#include <Array.au3>

;~ Retrieve unused drive letters.
Local $aDrives = _GetUnusedDrives()
_ArrayDisplay($aDrives)

Func _GetUnusedDrives()
	Local $aReturn[1] = [0], $sReturn = ''

	For $i = 1 To 26
		$sReturn &= Chr($i + 64) & ':|'
	Next

	Local $aArray = DriveGetDrive('ALL')
	If @error Then
		$aArray = $aReturn
	EndIf

	For $i = 1 To $aArray[0]
		$sReturn = StringReplace($sReturn, StringLeft($aArray[$i], 1) & ':|', '')
	Next
	Return StringSplit(StringTrimRight($sReturn, 1), '|')
EndFunc   ;==>_GetUnusedDrives

Return To Contents

_IsSubst

Author: guinness







Checks if a drive is a subst drive.


#include <WinAPIEx.au3>

ConsoleWrite(_IsSubst(@HomeDrive) & @CRLF)

; Checks if a drive is a subst drive.
Func _IsSubst($sDrive)
    Return _WinAPI_PathIsDirectory(StringReplace(_WinAPI_QueryDosDevice(StringLeft($sDrive, 1) & ":"), "\??\", ""))
EndFunc   ;==>_IsSubst

Return To Contents

_IsTrueCrypt

Author: guinness







Check if a drive is a TrueCrypt drive.


#include <WinAPIEx.au3>

ConsoleWrite("Is " & @HomeDrive & "\ a TrueCrypt drive?: " & _IsTrueCrypt(@HomePath) & @CRLF)

; Check if a drive is a TrueCrypt drive.
Func _IsTrueCrypt($sDrive)
    Return StringInStr(_WinAPI_QueryDosDevice(StringLeft($sDrive, 1) & ':'), 'TrueCrypt', 2) > 0
EndFunc   ;==>_IsTrueCrypt

Return To Contents

_MonitorToggle

Author: greenmachine







Toggle Monitor On/Off.


#include <SendMessage.au3>
#include <WindowsConstants.au3>

_MonitorToggle(1)
Sleep(1000)
_MonitorToggle(0)

; Toggle Monitor On/Off.
Func _MonitorToggle($iTurnOff = 1)
	Local $hWnd = WinGetHandle("[CLASS:Progman]"), $SC_MONITORPOWER = 61808
	If $iTurnOff Then
		Return _SendMessage($hWnd, $WM_SYSCOMMAND, $SC_MONITORPOWER, 2)
	Else
		Return _SendMessage($hWnd, $WM_SYSCOMMAND, $SC_MONITORPOWER, -1)
	EndIf
EndFunc   ;==>_MonitorToggle

Return To Contents

_GetTotalScreenResolution

Author: LarryDalooza




Modified: BrettF





 Global Const $aTSR = _GetTotalScreenResolution()

 MsgBox(0, "Total Screen Resolution", "Width = " & $aTSR[0] & @TAB & "Height = " & $aTSR[1])

 Func _GetTotalScreenResolution()
     Local Const $SM_VIRTUALWIDTH = 78
     Local Const $VirtualDesktopWidth = DllCall("user32.dll", "int", "GetSystemMetrics", "int", $SM_VIRTUALWIDTH)

     Local Const $SM_VIRTUALHEIGHT = 79
     Local Const $VirtualDesktopHeight = DllCall("user32.dll", "int", "GetSystemMetrics", "int", $SM_VIRTUALHEIGHT)

     Local Const $aRet[2] = [$VirtualDesktopWidth[0], $VirtualDesktopHeight[0]]

     Return $aRet
 EndFunc

Return To Contents