Snippets ( Hardware Information )

From AutoIt Wiki
Revision as of 18:21, 11 November 2012 by Jaberwocky6669 (talk | contribs) (Cnnverted to Template:Snippet Header, added Snippet Credit Header, added "Return To Contents" after each snippet)
Jump to navigation Jump to search

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


{{{AuthorName}}}








; 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

{{{AuthorName}}}








; 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), $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

{{{AuthorName}}}








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

Local $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 $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 $iDriveType = _WinAPI_GetDriveBusType($sDrive)
    If @error Then
        Return $aArray[0][1]
    EndIf
    Return $aArray[$iDriveType][1]
EndFunc   ;==>_GetDriveBusType

Return To Contents

{{{AuthorName}}}








#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

{{{AuthorName}}}








#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

{{{AuthorName}}}








#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

{{{AuthorName}}}








#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

{{{AuthorName}}}








 
 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