Detre
Новичок
- Сообщения
- 70
- Репутация
- 0
Код:
Исходник:
Код:
#include <GUIConstantsEx.au3>
#include <EditConstants.au3>
#RequireAdmin
#NoTrayIcon
;Все что написано, посде ";" явлется комментарием и ни как не влияет на работу скрипта.
Global $iKabina, $iType, $iKabina, $iModel, $iSerialNum, $iInv, $sProcessor, $sMotherBoardManufacturer, $sMotherBoardModel, $sNameComput, $sProduct, $sBuild ;объявляем переменные, которые будут использоваться в цикле
$Main = GUICreate('Инвентаризация', 315, 352, 318, 213) ;рисуем главное окно
GUISetBkColor(0x02101B)
WinSetTrans($Main, "", 0)
For $i = 0 To 230 Step 2
WinSetTrans($Main, "", $i) ;Прозрачность 0-255
Next
$iConnect = GUICtrlCreateButton("Передать", 23, 305, 267, 33) ;создаем кнопку подключения
GUICtrlSetFont(-1, 10, 800, 0, "Tahoma") ;задаем стиль элементу выше
$iKabina = GUICtrlCreateInput("", 20, 30, 272, 21)
GUICtrlCreateLabel('Кабинет', 20, 10, 150, 17)
GUICtrlSetFont(-1, 10, 800, 0, "Tahoma") ;задаем стиль элементу выше
GUICtrlSetColor(-1, 0xDEDEDE)
$iType = GUICtrlCreateInput("", 20, 75, 272, 21)
GUICtrlCreateLabel('Тип', 20, 55, 150, 17)
GUICtrlSetFont(-1, 10, 800, 0, "Tahoma") ;задаем стиль элементу выше
GUICtrlSetColor(-1, 0xDEDEDE)
$iModel = GUICtrlCreateInput("", 20, 120, 272, 21)
GUICtrlCreateLabel('Модель', 20, 100, 150, 17)
GUICtrlSetFont(-1, 10, 800, 0, "Tahoma") ;задаем стиль элементу выше
GUICtrlSetColor(-1, 0xDEDEDE)
$iSerialNum = GUICtrlCreateInput("", 20, 165, 272, 21)
GUICtrlCreateLabel('Серийный номер', 20, 145, 150, 17)
GUICtrlSetFont(-1, 10, 800, 0, "Tahoma") ;задаем стиль элементу выше
GUICtrlSetColor(-1, 0xDEDEDE)
$iInv = GUICtrlCreateInput("", 20, 210, 272, 21)
GUICtrlCreateLabel('Инвентарник', 20, 190, 150, 17)
GUICtrlSetFont(-1, 10, 800, 0, "Tahoma") ;задаем стиль элементу выше
GUICtrlSetColor(-1, 0xDEDEDE)
$hFile = FileOpen(@ScriptDir & "\Inventarisation.txt" , 1)
GUISetState(@SW_SHOW)
Func _hide() ;функция. отключает элементы ввода и кнопку, пока работает скрипт
GUICtrlSetState($iConnect, $GUI_disable)
GUICtrlSetState($iKabina, $GUI_disable)
GUICtrlSetState($iType, $GUI_disable)
GUICtrlSetState($iModel, $GUI_disable)
GUICtrlSetState($iSerialNum, $GUI_disable)
GUICtrlSetState($iInv, $GUI_disable)
EndFunc
Func _show() ;функция. включает элементы ввода и кнопку, когда скрипт отработал
GUICtrlSetState($iConnect, $GUI_enable)
GUICtrlSetState($iKabina, $GUI_enable)
GUICtrlSetState($iType, $GUI_enable)
GUICtrlSetState($iModel, $GUI_enable)
GUICtrlSetState($iSerialNum, $GUI_enable)
GUICtrlSetState($iInv, $GUI_enable)
EndFunc
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
Case $iConnect
$rKabina = GUICtrlRead($iKabina)
$rType = GUICtrlRead($iType)
$rModel = GUICtrlRead($iModel)
$rSerialNum = GUICtrlRead($iSerialNum)
$rInv = GUICtrlRead($iInv)
If $rKabina = "" Then ;защита от пустого поля имени пк
MsgBox(16+8192+262144,"Error","Поле Кабинет - пустое")
Else
If $rType = "" Then ;защита от пустого поля логина
MsgBox(16+8192+262144,"Error","Поле Тип - пустое")
Else
If $rModel = "" Then ;защита от пустого поля логина
MsgBox(16+8192+262144,"Error","Поле Модель - пустое")
Else
If $rSerialNum = "" Then ;защита от пустого поля логина
MsgBox(16+8192+262144,"Error","Поле Серийный номер - пустое")
Else
If $rInv = "" Then ;защита от пустого поля логина
MsgBox(16+8192+262144,"Error","Поле Инвентарник - пустое")
Else
If $hFile = -1 Then
MsgBox(4096, "Ошибка", "Невозможно открыть файл.")
Else
_hide() ;отключает все элементы ввода и кнопку
FileWriteLine($hFile, "----------------------------------------------------------------------------------------------")
FileWriteLine($hFile, "--------------------------------------МЕСТОПОЛОЖЕНИЕ------------------------------------------")
FileWriteLine($hFile, "----------------------------------------------------------------------------------------------")
FileWriteLine($hFile, "Кабинет:" & ' ' & $rKabina)
FileWriteLine($hFile, "Тип:" & ' ' & $rType)
FileWriteLine($hFile, "Модель:" & ' ' & $rModel)
FileWriteLine($hFile, "Серийный номер:" & ' ' & $rSerialNum)
FileWriteLine($hFile, "Инвентарный номер:" & ' ' & $rInv)
FileWriteLine($hFile, "Учетная запись:" & ' ' & @UserName)
FileWriteLine($hFile, "----------------------------------------------------------------------------------------------")
FileWriteLine($hFile, "---------------------------------------КОНФИГУРАЦИЯ-------------------------------------------")
FileWriteLine($hFile, "----------------------------------------------------------------------------------------------")
FileClose($hFile)
_show() ;включает все элементы ввода и кнопку
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
EndSwitch
WEnd
Global $sInfo
$fFile = @ScriptDir & "\Inventarisation.txt"
$ObjService = ObjGet("winmgmts:{impersonationLevel = impersonate}!\\" & @ComputerName & "\root\cimv2")
$ObjMB = $ObjService.ExecQuery("SELECT * FROM Win32_BaseBoard", "WQL", 0x30)
$ObjProcessor = $ObjService.ExecQuery("SELECT * FROM Win32_Processor", "WQL", 0x30)
$ObjMemory = $ObjService.ExecQuery('SELECT * FROM Win32_PhysicalMemory')
$ObjNet = $ObjService.ExecQuery ('SELECT * FROM Win32_NetworkAdapter', 'WQL', 0x30)
$ObjGraph = $ObjService.ExecQuery ('SELECT * FROM Win32_VideoController', 'WQL', 0x30)
$ObjDrive = $ObjService.ExecQuery ('SELECT * FROM Win32_DiskDrive', 'WQL', 0x30)
$ObjRam = $ObjService.ExecQuery ("SELECT * FROM Win32_ComputerSystem")
$sNameComput = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\DataStore\Machine\0", "szTargetName")
$sProduct = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion", "ProductName")
$sBuild = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion", "ReleaseId")
For $objItemMB In $ObjMB
$MB = $objItemMB.Product
Next
For $objItemR In $ObjRam
$RamTotal = $objItemR.TotalPhysicalMemory
Next
Dim $Proc[1][0], $i = 1
If IsObj($ObjProcessor) Then
For $objItemP In $ObjProcessor
ReDim $Proc[UBound($Proc) + 1][1]
$Proc[$i][0] = "Процессор: " & $objItemP.Name
$i += 1
Next
$Proc[0][0] = UBound($Proc) - 1
If $Proc[0][0] < 1 Then
SetError(1, 1, 0)
EndIf
EndIf
Dim $aResults[$ObjMemory.Count][99]
$Count = 0
For $ObjItemM In $ObjMemory
$aResultsS = $objItemM.Speed
$Count += 1
Next
Dim $NetAdap[1][0], $i = 1
If IsObj($ObjNet) Then
For $ObjItemN In $ObjNet
If $ObjItemN.PhysicalAdapter = True Then
ReDim $NetAdap[UBound($NetAdap) + 1][1]
$NetAdap[$i][0] = "Сетевой адаптер: " & $ObjItemN.Name
$i += 1
EndIf
Next
$NetAdap[0][0] = UBound($NetAdap) - 1
If $NetAdap[0][0] < 1 Then
SetError(1, 1, 0)
EndIf
EndIf
Dim $GraphAdap[1][0], $i = 1
If IsObj($ObjGraph) Then
For $ObjItemG In $ObjGraph
ReDim $GraphAdap[UBound($GraphAdap) + 1][1]
$GraphAdap[$i][0] = 'Видеокарта: ' & $ObjItemG.Name & " | RAM: " & $ObjItemG.AdapterRAM /1024 ^2 & " Mb"
$i += 1
Next
$GraphAdap[0][0] = UBound($GraphAdap) - 1
If $GraphAdap[0][0] < 1 Then
SetError(1, 1, 0)
EndIf
EndIf
Dim $Drive[1][0], $i = 1
If IsObj($ObjDrive) Then
For $ObjItemD In $ObjDrive
ReDim $Drive[UBound($Drive) + 1][1]
$Drive[$i][0] = "Жесткие диск: " & $ObjItemD.Model & " | Size: " & Round($ObjItemD.Size /1024 /1024 /1024) & " Gb"
$i += 1
Next
$Drive[0][0] = UBound($Drive) - 1
If $Drive[0][0] < 1 Then
SetError(1, 1, 0)
EndIf
EndIf
For $i = 1 To $Proc[0][0]
LogIt($Proc[$i][0])
Next
LogIt("Материнская плата: " & $mb)
LogIt("RAM: " & Round($RamTotal / 1024 /1024 ^2, 0) & " GB | " & $ObjMemory.Count & " pieces | " & $aResultsS & " Mhz")
For $i = 1 To $GraphAdap[0][0]
LogIt($GraphAdap[$i][0])
Next
For $i = 1 To $Drive[0][0]
LogIt($Drive[$i][0])
Next
For $i = 1 To $NetAdap[0][0]
LogIt($NetAdap[$i][0])
Next
Local $file = FileOpen($fFile, 1)
If $file = -1 Then Exit MsgBox(0, "Error", "Unable to open file " & @ScriptDir & "\report.log")
FileWriteLine($file, "Имя компьютера:" & $sNameComput & @CRLF)
FileWriteLine($file, "Операционная система: " & $sProduct & " " & $sBuild & " " & @OsArch)
FileWriteLine($file, $sInfo)
FileWriteLine($file, "==============================================================================================")
FileClose($file)
$smail = 'Имя компьютера: ' & @ComputerName & @CRLF & FileRead($fFile)
Func LogIt($sText)
$sInfo &= $sText & @CRLF
EndFunc