Jump to content

DirtyJohny

Active Members
  • Posts

    45
  • Joined

  • Last visited

About DirtyJohny

  • Birthday January 4

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

DirtyJohny's Achievements

Seeker

Seeker (1/7)

0

Reputation

  1. Hi everyone, I'm not sure I can ask a question on this topic. I really need help to implement another piece in my code to upload a computer configuration report. I no have idea, how can do that.... My code: #RequireAdmin #NoTrayIcon #include <GUIConstantsEx.au3> #include <EditConstants.au3> #include <ButtonConstants.au3> #include <ComboConstants.au3> #include <WindowsConstants.au3> #include <Constants.au3> #include <Array.au3> #include <MsgBoxConstants.au3> Opt("MustDeclareVars",1) Global $idComboBox Global $hFile, $sInfo,$idComboBox ,$CopyBtn , $sComboRead, $fFile = @ScriptDir & "\" & "(" & @ComputerName & ")" & ".txt" $hFile = FileOpen(@ScriptDir & "\" & "(" & @ComputerName & ")" & ".txt", 1) $sInfo &= _InfoPC() $sInfo &= _InfoRAM() FileWrite($hFile, $sInfo) FileClose($hFile) Func _InfoPC() Local $ObjService = ObjGet('winmgmts:{impersonationLevel = impersonate}!\\' & @ComputerName & '\root\cimv2') Local $ObjMB = $ObjService.ExecQuery('SELECT * FROM Win32_BaseBoard', 'WQL', 0x30) Local $ObjProcessor = $ObjService.ExecQuery('SELECT * FROM Win32_Processor', 'WQL', 0x30) Local $ObjMemory = $ObjService.ExecQuery('SELECT * FROM Win32_PhysicalMemory') Local $ObjNet = $ObjService.ExecQuery('SELECT * FROM Win32_NetworkAdapter', 'WQL', 0x30) Local $ObjGraph = $ObjService.ExecQuery('SELECT * FROM Win32_VideoController', 'WQL', 0x30) Local $ObjDrive = $ObjService.ExecQuery('SELECT * FROM Win32_DiskDrive', 'WQL', 0x30) Local $ObjCDDrive = $ObjService.ExecQuery('SELECT * FROM Win32_CDROMDrive', 'WQL', 0x30) Local $ObjRam = $ObjService.ExecQuery('SELECT * FROM Win32_ComputerSystem') Local $ObjModel = $ObjService.ExecQuery('SELECT * FROM Win32_ComputerSystem') Local $ObjBIOS = $ObjService.ExecQuery('SELECT * FROM Win32_BIOS') Local $sNameComput = RegRead('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\DataStore\Machine\0', 'szTargetName') Local $sProduct = RegRead('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion', 'ProductName') Local $sVersion = RegRead('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion', 'DisplayVersion') Local $sBuild = RegRead('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion', 'ReleaseId') Local $sItemM, $sItemMa, $sInfo = ''& @CRLF & '[Configuration:] (' & @MDAY & "." & @MON & "." & @YEAR & ' - ' & @HOUR & ":" & @MIN & ":" & @SEC & ')' & @CRLF & @TAB & 'Computer Name............' & @ComputerName & @CRLF & @TAB &'Operaton System: ... ' & $sProduct & ' ' & $sVersion & ' ' & $sBuild & ' ' & '(' & @OSArch & ')' & @CRLF If IsObj($ObjService) Then For $objItemP In $ObjProcessor $sInfo &= @TAB & 'Processor: .............. ' & $objItemP.Name & @CRLF Next For $objItemMB In $ObjMB $sInfo &= @TAB & 'Motherboard: ...... ' & $objItemMB.Product & @CRLF Next For $ObjItemM In $ObjMemory $sItemM = $objItemM.Speed $sItemMa = $objItemM.Manufacturer Next For $objItemR In $ObjRam $sInfo &= @TAB & 'RAM: .................... ' & Round($objItemR.TotalPhysicalMemory / 1024 / 1024 ^ 2, 0) & ' GB | ' & $ObjMemory.Count & ' слот | ' & $sItemM & ' Mhz' & @CRLF Next For $ObjItemG In $ObjGraph $sInfo &= @TAB & 'Videocard: ............. ' & $ObjItemG.Name & ' | RAM: ' & $ObjItemG.AdapterRAM / 1024 ^ 2 & ' Mb' & @CRLF Next For $ObjItemD In $ObjDrive $sInfo &= @TAB & 'Hard Drives: ........... ' & $ObjItemD.Model & ' | Объем: ' & Round($ObjItemD.Size / 1024 / 1024 / 1024) & ' Gb | S\N:' & $ObjItemD.SerialNumber & '' & @CRLF Next For $ObjItemCD In $ObjCDDrive $sInfo &= @TAB & 'Дисковод: ............... ' & $ObjItemCD.Name & @CRLF Next For $ObjItemN In $ObjNet If $ObjItemN.PhysicalAdapter = True Then $sInfo &= @TAB & 'Network adapters: ........ ' & $ObjItemN.Name & @CRLF EndIf Next For $i = 0 to (ubound($ObjRam)/2)-1 $sInfo &= @TAB & "1: ........ " & $i+1 & ": 1: " & $ObjRam[(2*$i)] & @CRLF $sInfo &= @TAB & "1: ........ " & $i+1 & ": 1: " & $ObjRam[(2*$i)+1] & @CRLF Next For $ObjItemModel In $ObjModel $sInfo &= @CRLF &'[Model and serial number:]' & @CRLF $sInfo &= @TAB & 'Model: ............... ' & $ObjItemModel.Model & @CRLF Next For $ObjItemBIOS In $ObjBIOS $sInfo &= @TAB & 'Serial number: ............... ' & $ObjItemBIOS.SerialNumber & @CRLF $sInfo &= @CRLF &'[Monitors:]' & @CRLF Next EndIf Local $aDisplayInfo = Display_Info() if $aDisplayInfo = "" then ConsoleWrite("$aDisplayInfo is not an array" & @crlf) Else for $i = 0 to (ubound($aDisplayInfo)/2)-1 $sInfo &= @TAB & "Monitor: ........ " & $i+1 & ": Model: " & $aDisplayInfo[(2*$i)] & " |" & " Serial Number: " & $aDisplayInfo[(2*$i)+1] & @CRLF Next EndIf $sInfo &= @CRLF Return $sInfo EndFunc ;==>_InfoPC Func _a() Local $sls=ObjGet("winmgmts:{impersonationLevel=impersonate," _ &"authenticationLevel=Pkt}!\\"& _ @ComputerName&'\root\wmi'),$lss=$sls.ExecQuery _ ('SELECT * FROM WmiMonitorID'), _ $lll,$sll,$sss="",$lsl,$lls,$i,$z For $z In $lss $lsl=$z.UserFriendlyName For $i=0 To Ubound($lsl)-1 if ($lsl[$i]) Then $lll&=Chr($lsl[$i]) Next $lls=$z.SerialNumberID For $i=0 To Ubound($lls)-1 if ($lls[$i]) Then $sll&=Chr($lls[$i]) Next $sss&="Модель"&@TAB&@TAB&": "&$lll&@CR&"Serial Number"&@TAB&": "&$sll&@CR&@CR $lll="" $sll="" Next $lss=Null $sls=Null $sInfo &= @CRLF EndFunc Func _InfoRAM() Local $objWMIService = ObjGet('winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2') If Not IsObj($objWMIService) Then Return "Error RAM" & @CRLF Local $colItems = $objWMIService.ExecQuery('Select * From Win32_PhysicalMemory') Local $i = 0, $infoRAM = "[RAM:]" & @CRLF For $ObjItem In $colItems $i += 1 $infoRAM &= @TAB & "Slot " & $i & ": " & $objItem.DeviceLocator & "|" & "Объём: " & $ObjItem.Capacity / 1024^3 & " GB" & "|" & "Марка: " & $objItem.Manufacturer & "|" & "Частота: " & $objItem.Speed & "|" & "S/N: " & $objItem.PartNumber & @CRLF Next Return $infoRAM EndFunc Func Display_Info() Local $oComErr, $oWmi, $oInstances $oComErr = ObjEvent("AutoIt.Error", comm_error_handler) #forceref $oComErr ;Get WMI object $oWmi = ObjGet("winmgmts:\root\WMI") If Not IsObj($oWmi) Then Exit MsgBox($MB_ICONERROR, "ERROR", "Unable to create WMI object") ;Select object instances $oInstances = $oWmi.ExecQuery("SELECT * FROM WMIMonitorID") If $oInstances.Count = 0 Then Exit MsgBox($MB_ICONWARNING,"Warning","No objects found") ; Changed part Local $aReturn[2] ; change number if you want to return more info Local $iDisplayCount = 1 ;Display instance properties For $oInstance in $oInstances With $oInstance ConsoleWrite(@CRLF) if ubound($aReturn) < $iDisplayCount * 2 then redim $aReturn[2*$iDisplayCount] If IsArray(.UserFriendlyName) Then $aReturn[2*($iDisplayCount-1)] = convert_uint16_array_to_string(.UserFriendlyName) ;StringFormat("UserFriendlyName = %s", convert_uint16_array_to_string(.UserFriendlyName)) If IsArray(.SerialNumberId) Then $aReturn[2*($iDisplayCount-1)+1] = convert_uint16_array_to_string(.SerialNumberId) ;StringFormat("SerialNumberId = %s", convert_uint16_array_to_string(.SerialNumberId)) $iDisplayCount += 1 EndWith Next Return $aReturn EndFunc Func convert_uint16_array_to_string($aBytes) Local $s = "" For $i in $aBytes If $i <> 0 Then $s &= Chr($i) Next Return $s EndFunc Func comm_error_handler($oComError) ConsoleWrite(@CRLF) ConsoleWrite(StringFormat("Script Line = %s", $oComError.ScriptLine) & @CRLF) ConsoleWrite(StringFormat("Win Err Desc = %s", StringStripWS($oComError.WinDescription, $STR_STRIPTRAILING)) & @CRLF) ConsoleWrite(StringFormat("Error Number = %i (0x%x)", $oComError.Number, $oComError.Number) & @CRLF) ConsoleWrite(StringFormat("Error Desc = %s", $oComError.Description) & @CRLF) Exit And a piece of code that I need to shove.... Opt('MustDeclareVars', True) Local _ $oWMI, _ $oPrint, _ $oItem, _ $iCount, _ $vTemp $oWMI = ObjGet('winmgmts:\\.\root\cimv2') $oPrint = $oWMI.ExecQuery('SELECT * FROM Win32_Printer', 'WQL', 0x30) $iCount = 0 For $oItem In $oPrint $iCount += 1 $vTemp = StringFormat("Printer #%u = '%s'\n", $iCount, $oItem.Name) ConsoleWrite($vTemp) Next If ($iCount = 0) Then ConsoleWrite('No printer installed') Exit
  2. Jos: DO NOT QUOTE IN NONE ENGLISH ... clear?
  3. Oooooh myyy God.Its awesome.Seriosly thank you all very much.Low bow....
  4. Yes you right, write anything)
  5. lol InstanceName = DISPLAY\PHLC0B3\5&1db54a27&0&UID521_0 YearOfManufacture = 2013 WeekOfManufacture = 16 UserFriendlyName = Philips 236V4 ManufacturerName = PHL SerialNumberId = UHB1316009223 ProductCodeID = C0B3 InstanceName = DISPLAY\PHLC07D\5&1db54a27&0&UID522_0 YearOfManufacture = 2013 WeekOfManufacture = 3 UserFriendlyName = 273ELH ManufacturerName = PHL SerialNumberId = AU51303008408 ProductCodeID = C07D
  6. You can named me an idiot, but not working or they part not writing all this txt document and i dont see error, and dont see working this part or not...
  7. #include <GUIConstantsEx.au3> #include <EditConstants.au3> #include <ButtonConstants.au3> #include <Constants.au3> #include <Array.au3> #RequireAdmin #NoTrayIcon ;Все что написано, посде ';' явлется комментарием и ни как не влияет на работу скрипта. Global $iKabina, $iType, $iModel, $iSerialNum, $iInv ;объявляем переменные, которые будут использоваться в цикле Global $rKabina, $rType, $rModel, $rSerialNum, $rInv, $Main, $iConnect, $hFile, $sInfo, $CopyBtn, $fFile = @ScriptDir & "\" & "(" & @MDAY & "." & @MON & "." & @YEAR & ")" & ".txt" $Main = GUICreate('Inventarisation', 315, 352) ;рисуем главное окно GUISetBkColor(0x02101B) $iKabina = GUICtrlCreateInput('', 20, 30, 272, 21) $iType = GUICtrlCreateInput('', 20, 75, 272, 21) $iModel = GUICtrlCreateInput('', 20, 120, 272, 21) $iSerialNum = GUICtrlCreateInput('', 20, 165, 272, 21) $iInv = GUICtrlCreateInput('', 20, 210, 272, 21) GUISetFont(10, 800, 0, 'Tahoma'); Устанавливает шрифт по умолчанию для последующих элементов GUI-окна. $iConnect = GUICtrlCreateButton('Send', 23, 305, 267, 33, $BS_DEFPUSHBUTTON) ;создаем кнопку подключения GUICtrlSetDefColor(0xDEDEDE); Устанавливает цвет текста по умолчанию для последующих элементов GUI-окна. GUICtrlCreateLabel('Cabinet', 20, 10, 150, 17) GUICtrlCreateLabel('Type', 20, 55, 150, 17) GUICtrlCreateLabel('Model', 20, 100, 150, 17) GUICtrlCreateLabel('Сerial number PC', 20, 145, 150, 17) GUICtrlCreateLabel('Inventarisation number', 20, 190, 150, 17) WinSetTrans($Main, '', 0) GUISetState(@SW_SHOW) For $i = 0 To 230 Step 9 Sleep(10) WinSetTrans($Main, '', $i) ;Прозрачность 0-255 Next $hFile = FileOpen(@ScriptDir & "\" & "(" & @MDAY & "." & @MON & "." & @YEAR & ")" & ".txt", 1) While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit Case $iConnect $rKabina = GUICtrlRead($iKabina) $rType = GUICtrlRead($iType) $rModel = GUICtrlRead($iModel) $rSerialNum = GUICtrlRead($iSerialNum) $rInv = GUICtrlRead($iInv) Select Case (Not StringStripWS($rKabina, 8)) MsgBox(16 + 8192 + 262144, 'Error', 'Поле Кабинет - пустое') Case (Not StringStripWS($rType, 8)) MsgBox(16 + 8192 + 262144, 'Error', 'Поле Тип - пустое') Case (Not StringStripWS($rModel, 8)) MsgBox(16 + 8192 + 262144, 'Error', 'Поле Модель - пустое') Case (Not StringStripWS($rSerialNum, 8)) MsgBox(16 + 8192 + 262144, 'Error', 'Поле Серийный номер - пустое') Case (Not StringStripWS($rInv, 8)) MsgBox(16 + 8192 + 262144, 'Error', 'Поле Инвентарник - пустое') Case $hFile = -1 MsgBox(4096, 'Ошибка', 'Невозможно открыть файл.') Case Else _hide() ;отключает все элементы ввода и кнопку $sInfo = '======================================================================================' & @CRLF & _ '[МЕСТОПОЛОЖЕНИЕ:]' & @CRLF & _ @TAB & 'Date: ................... ' & @MDAY & '.' & @MON & '.' & @YEAR & ' ' & @CRLF & _ @TAB & 'Cabinet: ................ ' & $rKabina & @CRLF & _ @TAB & 'Type: .................... ' & $rType & @CRLF & _ @TAB & 'Model: ................. ' & $rModel & @CRLF & _ @TAB & 'Сerial number PC: ......... ' & $rSerialNum & @CRLF & _ @TAB & 'Inventarisation number: ...... ' & $rInv & @CRLF & _ @TAB & 'Current User: ......... ' & @UserName & @CRLF & @CRLF $sInfo &= _InfoPC() FileWrite($hFile, $sInfo) FileClose($hFile) _show() ;включает все элементы ввода и кнопку _ShowOtchot() EndSelect EndSwitch WEnd Func _InfoPC() Local $ObjService = ObjGet('winmgmts:{impersonationLevel = impersonate}!\\' & @ComputerName & '\root\cimv2') Local $ObjMB = $ObjService.ExecQuery('SELECT * FROM Win32_BaseBoard', 'WQL', 0x30) Local $ObjProcessor = $ObjService.ExecQuery('SELECT * FROM Win32_Processor', 'WQL', 0x30) Local $ObjMemory = $ObjService.ExecQuery('SELECT * FROM Win32_PhysicalMemory') Local $ObjNet = $ObjService.ExecQuery('SELECT * FROM Win32_NetworkAdapter', 'WQL', 0x30) Local $ObjGraph = $ObjService.ExecQuery('SELECT * FROM Win32_VideoController', 'WQL', 0x30) Local $ObjDrive = $ObjService.ExecQuery('SELECT * FROM Win32_DiskDrive', 'WQL', 0x30) Local $ObjCDDrive = $ObjService.ExecQuery('SELECT * FROM Win32_CDROMDrive', 'WQL', 0x30) Local $ObjRam = $ObjService.ExecQuery('SELECT * FROM Win32_ComputerSystem') Local $sNameComput = RegRead('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\DataStore\Machine\0', 'szTargetName') Local $sProduct = RegRead('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion', 'ProductName') Local $sBuild = RegRead('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion', 'ReleaseId') Local $sItemM, $sInfo = '[Configuration:]' & @CRLF & @TAB & 'Computer name: ......... ' & $sNameComput & @CRLF & _ @TAB & 'Operating system: ... ' & $sProduct & ' ' & $sBuild & ' ' & '(' & @OSArch & ')' & @CRLF Local $aDisplayInfo = Display_Info() if not $aDisplayInfo = "" then $sInfo &= @TAB & 'UserFriendlyName: ........' & $aDisplayInfo[0] & @CRLF $sInfo &= @TAB & 'SerialNumberId: ........' & $aDisplayInfo[1] & @CRLF endif If IsObj($ObjService) Then For $objItemP In $ObjProcessor $sInfo &= @TAB & 'Processor: .............. ' & $objItemP.Name & @CRLF Next For $objItemMB In $ObjMB $sInfo &= @TAB & 'МMotherboard: ...... ' & $objItemMB.Product & @CRLF Next For $ObjItemM In $ObjMemory $sItemM = $objItemM.Speed Next For $objItemR In $ObjRam $sInfo &= @TAB & 'RAM: .................... ' & Round($objItemR.TotalPhysicalMemory / 1024 / 1024 ^ 2, 0) & ' GB | ' & $ObjMemory.Count & ' pieces | ' & $sItemM & ' Mhz' & @CRLF Next For $ObjItemG In $ObjGraph $sInfo &= @TAB & 'Videocard: ............. ' & $ObjItemG.Name & ' | RAM: ' & $ObjItemG.AdapterRAM / 1024 ^ 2 & ' Mb' & @CRLF Next For $ObjItemD In $ObjDrive $sInfo &= @TAB & 'Hard drives: ........... ' & $ObjItemD.Model & ' | Size: ' & Round($ObjItemD.Size / 1024 / 1024 / 1024) & ' Gb' & @CRLF Next For $ObjItemCD In $ObjCDDrive $sInfo &= @TAB & 'CD-Drive: ............... ' & $ObjItemCD.Name & @CRLF Next For $ObjItemN In $ObjNet If $ObjItemN.PhysicalAdapter = True Then $sInfo &= @TAB & 'Network adapter: ........ ' & $ObjItemN.Name & @CRLF EndIf Next Local $aDisplayInfo = Display_Info() if not $aDisplayInfo = "" then $sInfo &= @TAB & 'UserFriendlyName: ........' & $aDisplayInfo[0] & @CRLF $sInfo &= @TAB & 'SerialNumberId: ........' & $aDisplayInfo[1] & @CRLF endif EndIf $sInfo &= @CRLF Return $sInfo EndFunc ;==>_InfoPC 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 ;==>_hide 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 ;==>_show Opt("MustDeclareVars",1) Func _a() Local $sls=ObjGet("winmgmts:{impersonationLevel=impersonate," _ &"authenticationLevel=Pkt}!\\"& _ @ComputerName&'\root\wmi'),$lss=$sls.ExecQuery _ ('SELECT * FROM WmiMonitorID'), _ $lll,$sll,$sss="",$lsl,$lls,$i,$z For $z In $lss $lsl=$z.UserFriendlyName For $i=0 To Ubound($lsl)-1 if ($lsl[$i]) Then $lll&=Chr($lsl[$i]) Next $lls=$z.SerialNumberID For $i=0 To Ubound($lls)-1 if ($lls[$i]) Then $sll&=Chr($lls[$i]) Next $sss&="Model"&@TAB&@TAB&": "&$lll&@CR&"Serial Number"&@TAB&": "&$sll&@CR&@CR $lll="" $sll="" Next $lss=Null $sls=Null $sInfo &= @CRLF EndFunc Func _ShowOtchot() $Form1 = GUICreate("Order", 482, 438, Default, Default, Default, 0x00000080, $Main) GUISetBkColor(0x02101B) $Edit1 = GUICtrlCreateEdit("", 0, 0, 482, 385) GUICtrlSetData(-1, FileRead($fFile)) $CopyBtn = GUICtrlCreateButton("Copy in txt", 194, 400, 99, 25, $BS_DEFPUSHBUTTON) For $i = 0 To 230 Step 9 Sleep(10) WinSetTrans($Form1, '', $i) ;Прозрачность 0-255 Next GUISetState(@SW_SHOW) While 1 $msg = GUIGetMsg() Switch $msg Case $CopyBtn ClipPut(GUICtrlRead($Edit1)) DirCreate (@ScriptDir & "\COPY") FileCopy(@ScriptDir & "\" & "(" & @MDAY & "." & @MON & "." & @YEAR & ")" & ".txt", @ScriptDir & "\COPY", 1) MsgBox(64, "Статус", 'Copied', Default, $Main) Case -3 GUIDelete($Form1) WinActivate($Main) ExitLoop EndSwitch WEnd EndFunc Func Display_Info() Local $oComErr, $oWmi, $oInstances $oComErr = ObjEvent("AutoIt.Error", comm_error_handler) #forceref $oComErr ;Get WMI object $oWmi = ObjGet("winmgmts:\root\WMI") If Not IsObj($oWmi) Then Exit MsgBox($MB_ICONERROR, "ERROR", "Unable to create WMI object") ;Select object instances $oInstances = $oWmi.ExecQuery("SELECT * FROM WMIMonitorID") If $oInstances.Count = 0 Then Exit MsgBox($MB_ICONWARNING,"Warning","No objects found") ; Changed part Local $aReturn[2] ; change number if you want to return more info ;Display instance properties For $oInstance in $oInstances With $oInstance ConsoleWrite(@CRLF) If IsArray(.UserFriendlyName) Then $aReturn[0] = StringFormat("UserFriendlyName = %s", convert_uint16_array_to_string(.UserFriendlyName)) If IsArray(.SerialNumberId) Then $aReturn[1] = StringFormat("SerialNumberId = %s", convert_uint16_array_to_string(.SerialNumberId)) EndWith Next Return $aReturn EndFunc Func convert_uint16_array_to_string($aBytes) Local $s = "" For $i in $aBytes If $i <> 0 Then $s &= Chr($i) Next Return $s EndFunc Func comm_error_handler($oComError) ConsoleWrite(@CRLF) ConsoleWrite(StringFormat("Script Line = %s", $oComError.ScriptLine) & @CRLF) ConsoleWrite(StringFormat("Win Err Desc = %s", StringStripWS($oComError.WinDescription, $STR_STRIPTRAILING)) & @CRLF) ConsoleWrite(StringFormat("Error Number = %i (0x%x)", $oComError.Number, $oComError.Number) & @CRLF) ConsoleWrite(StringFormat("Error Desc = %s", $oComError.Description) & @CRLF) Exit EndFunc I translate.Not work your function(
  8. Fixed,but not working... I think i use not correct line... #include <GUIConstantsEx.au3> #include <EditConstants.au3> #include <ButtonConstants.au3> #include <Constants.au3> #include <Array.au3> #RequireAdmin #NoTrayIcon ;Все что написано, посде ';' явлется комментарием и ни как не влияет на работу скрипта. Global $iKabina, $iType, $iModel, $iSerialNum, $iInv ;объявляем переменные, которые будут использоваться в цикле Global $rKabina, $rType, $rModel, $rSerialNum, $rInv, $Main, $iConnect, $hFile, $sInfo, $CopyBtn, $fFile = @ScriptDir & "\" & "(" & @MDAY & "." & @MON & "." & @YEAR & ")" & ".txt" $Main = GUICreate('Инвентаризация', 315, 352) ;рисуем главное окно GUISetBkColor(0x02101B) $iKabina = GUICtrlCreateInput('', 20, 30, 272, 21) $iType = GUICtrlCreateInput('', 20, 75, 272, 21) $iModel = GUICtrlCreateInput('', 20, 120, 272, 21) $iSerialNum = GUICtrlCreateInput('', 20, 165, 272, 21) $iInv = GUICtrlCreateInput('', 20, 210, 272, 21) GUISetFont(10, 800, 0, 'Tahoma'); Устанавливает шрифт по умолчанию для последующих элементов GUI-окна. $iConnect = GUICtrlCreateButton('Передать', 23, 305, 267, 33, $BS_DEFPUSHBUTTON) ;создаем кнопку подключения GUICtrlSetDefColor(0xDEDEDE); Устанавливает цвет текста по умолчанию для последующих элементов GUI-окна. GUICtrlCreateLabel('Кабинет', 20, 10, 150, 17) GUICtrlCreateLabel('Тип', 20, 55, 150, 17) GUICtrlCreateLabel('Модель', 20, 100, 150, 17) GUICtrlCreateLabel('Серийный номер', 20, 145, 150, 17) GUICtrlCreateLabel('Инвентарник', 20, 190, 150, 17) WinSetTrans($Main, '', 0) GUISetState(@SW_SHOW) For $i = 0 To 230 Step 9 Sleep(10) WinSetTrans($Main, '', $i) ;Прозрачность 0-255 Next $hFile = FileOpen(@ScriptDir & "\" & "(" & @MDAY & "." & @MON & "." & @YEAR & ")" & ".txt", 1) While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit Case $iConnect $rKabina = GUICtrlRead($iKabina) $rType = GUICtrlRead($iType) $rModel = GUICtrlRead($iModel) $rSerialNum = GUICtrlRead($iSerialNum) $rInv = GUICtrlRead($iInv) Select Case (Not StringStripWS($rKabina, 8)) MsgBox(16 + 8192 + 262144, 'Error', 'Поле Кабинет - пустое') Case (Not StringStripWS($rType, 8)) MsgBox(16 + 8192 + 262144, 'Error', 'Поле Тип - пустое') Case (Not StringStripWS($rModel, 8)) MsgBox(16 + 8192 + 262144, 'Error', 'Поле Модель - пустое') Case (Not StringStripWS($rSerialNum, 8)) MsgBox(16 + 8192 + 262144, 'Error', 'Поле Серийный номер - пустое') Case (Not StringStripWS($rInv, 8)) MsgBox(16 + 8192 + 262144, 'Error', 'Поле Инвентарник - пустое') Case $hFile = -1 MsgBox(4096, 'Ошибка', 'Невозможно открыть файл.') Case Else _hide() ;отключает все элементы ввода и кнопку $sInfo = '======================================================================================' & @CRLF & _ '[МЕСТОПОЛОЖЕНИЕ:]' & @CRLF & _ @TAB & 'Дата: ................... ' & @MDAY & '.' & @MON & '.' & @YEAR & ' ' & @CRLF & _ @TAB & 'Кабинет: ................ ' & $rKabina & @CRLF & _ @TAB & 'Тип: .................... ' & $rType & @CRLF & _ @TAB & 'Модель: ................. ' & $rModel & @CRLF & _ @TAB & 'Серийный номер: ......... ' & $rSerialNum & @CRLF & _ @TAB & 'Инвентарный номер: ...... ' & $rInv & @CRLF & _ @TAB & 'Учетная запись: ......... ' & @UserName & @CRLF & @CRLF $sInfo &= _InfoPC() FileWrite($hFile, $sInfo) FileClose($hFile) _show() ;включает все элементы ввода и кнопку _ShowOtchot() EndSelect EndSwitch WEnd Func _InfoPC() Local $ObjService = ObjGet('winmgmts:{impersonationLevel = impersonate}!\\' & @ComputerName & '\root\cimv2') Local $ObjMB = $ObjService.ExecQuery('SELECT * FROM Win32_BaseBoard', 'WQL', 0x30) Local $ObjProcessor = $ObjService.ExecQuery('SELECT * FROM Win32_Processor', 'WQL', 0x30) Local $ObjMemory = $ObjService.ExecQuery('SELECT * FROM Win32_PhysicalMemory') Local $ObjNet = $ObjService.ExecQuery('SELECT * FROM Win32_NetworkAdapter', 'WQL', 0x30) Local $ObjGraph = $ObjService.ExecQuery('SELECT * FROM Win32_VideoController', 'WQL', 0x30) Local $ObjDrive = $ObjService.ExecQuery('SELECT * FROM Win32_DiskDrive', 'WQL', 0x30) Local $ObjCDDrive = $ObjService.ExecQuery('SELECT * FROM Win32_CDROMDrive', 'WQL', 0x30) Local $ObjRam = $ObjService.ExecQuery('SELECT * FROM Win32_ComputerSystem') Local $sNameComput = RegRead('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\DataStore\Machine\0', 'szTargetName') Local $sProduct = RegRead('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion', 'ProductName') Local $sBuild = RegRead('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion', 'ReleaseId') Local $sItemM, $sInfo = '[КОНФИГУРАЦИЯ:]' & @CRLF & @TAB & 'Имя компьютера: ......... ' & $sNameComput & @CRLF & _ @TAB & 'Операционная система: ... ' & $sProduct & ' ' & $sBuild & ' ' & '(' & @OSArch & ')' & @CRLF Local $aDisplayInfo = Display_Info() if not $aDisplayInfo = "" then $sInfo &= @TAB & 'UserFriendlyName: ........' & $aDisplayInfo[0] & @CRLF $sInfo &= @TAB & 'SerialNumberId: ........' & $aDisplayInfo[1] & @CRLF endif If IsObj($ObjService) Then For $objItemP In $ObjProcessor $sInfo &= @TAB & 'Процессор: .............. ' & $objItemP.Name & @CRLF Next For $objItemMB In $ObjMB $sInfo &= @TAB & 'Материнская плата: ...... ' & $objItemMB.Product & @CRLF Next For $ObjItemM In $ObjMemory $sItemM = $objItemM.Speed Next For $objItemR In $ObjRam $sInfo &= @TAB & 'RAM: .................... ' & Round($objItemR.TotalPhysicalMemory / 1024 / 1024 ^ 2, 0) & ' GB | ' & $ObjMemory.Count & ' pieces | ' & $sItemM & ' Mhz' & @CRLF Next For $ObjItemG In $ObjGraph $sInfo &= @TAB & 'Видеокарта: ............. ' & $ObjItemG.Name & ' | RAM: ' & $ObjItemG.AdapterRAM / 1024 ^ 2 & ' Mb' & @CRLF Next For $ObjItemD In $ObjDrive $sInfo &= @TAB & 'Жесткие диск: ........... ' & $ObjItemD.Model & ' | Size: ' & Round($ObjItemD.Size / 1024 / 1024 / 1024) & ' Gb' & @CRLF Next For $ObjItemCD In $ObjCDDrive $sInfo &= @TAB & 'Дисковод: ............... ' & $ObjItemCD.Name & @CRLF Next For $ObjItemN In $ObjNet If $ObjItemN.PhysicalAdapter = True Then $sInfo &= @TAB & 'Сетевой адаптер: ........ ' & $ObjItemN.Name & @CRLF EndIf Next Local $aDisplayInfo = Display_Info() if not $aDisplayInfo = "" then $sInfo &= @TAB & 'UserFriendlyName: ........' & $aDisplayInfo[0] & @CRLF $sInfo &= @TAB & 'SerialNumberId: ........' & $aDisplayInfo[1] & @CRLF endif EndIf $sInfo &= @CRLF Return $sInfo EndFunc ;==>_InfoPC 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 ;==>_hide 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 ;==>_show Opt("MustDeclareVars",1) Func _a() Local $sls=ObjGet("winmgmts:{impersonationLevel=impersonate," _ &"authenticationLevel=Pkt}!\\"& _ @ComputerName&'\root\wmi'),$lss=$sls.ExecQuery _ ('SELECT * FROM WmiMonitorID'), _ $lll,$sll,$sss="",$lsl,$lls,$i,$z For $z In $lss $lsl=$z.UserFriendlyName For $i=0 To Ubound($lsl)-1 if ($lsl[$i]) Then $lll&=Chr($lsl[$i]) Next $lls=$z.SerialNumberID For $i=0 To Ubound($lls)-1 if ($lls[$i]) Then $sll&=Chr($lls[$i]) Next $sss&="Model"&@TAB&@TAB&": "&$lll&@CR&"Serial Number"&@TAB&": "&$sll&@CR&@CR $lll="" $sll="" Next $lss=Null $sls=Null $sInfo &= @CRLF EndFunc Func _ShowOtchot() $Form1 = GUICreate("Отчёт", 482, 438, Default, Default, Default, 0x00000080, $Main) GUISetBkColor(0x02101B) $Edit1 = GUICtrlCreateEdit("", 0, 0, 482, 385) GUICtrlSetData(-1, FileRead($fFile)) $CopyBtn = GUICtrlCreateButton("Копировать", 194, 400, 99, 25, $BS_DEFPUSHBUTTON) For $i = 0 To 230 Step 9 Sleep(10) WinSetTrans($Form1, '', $i) ;Прозрачность 0-255 Next GUISetState(@SW_SHOW) While 1 $msg = GUIGetMsg() Switch $msg Case $CopyBtn ClipPut(GUICtrlRead($Edit1)) DirCreate (@ScriptDir & "\COPY") FileCopy(@ScriptDir & "\" & "(" & @MDAY & "." & @MON & "." & @YEAR & ")" & ".txt", @ScriptDir & "\COPY", 1) MsgBox(64, "Статус", 'Скопировано', Default, $Main) Case -3 GUIDelete($Form1) WinActivate($Main) ExitLoop EndSwitch WEnd EndFunc Func Display_Info() Local $oComErr, $oWmi, $oInstances $oComErr = ObjEvent("AutoIt.Error", comm_error_handler) #forceref $oComErr ;Get WMI object $oWmi = ObjGet("winmgmts:\root\WMI") If Not IsObj($oWmi) Then Exit MsgBox($MB_ICONERROR, "ERROR", "Unable to create WMI object") ;Select object instances $oInstances = $oWmi.ExecQuery("SELECT * FROM WMIMonitorID") If $oInstances.Count = 0 Then Exit MsgBox($MB_ICONWARNING,"Warning","No objects found") ; Changed part Local $aReturn[2] ; change number if you want to return more info ;Display instance properties For $oInstance in $oInstances With $oInstance ConsoleWrite(@CRLF) If IsArray(.UserFriendlyName) Then $aReturn[0] = StringFormat("UserFriendlyName = %s", convert_uint16_array_to_string(.UserFriendlyName)) If IsArray(.SerialNumberId) Then $aReturn[1] = StringFormat("SerialNumberId = %s", convert_uint16_array_to_string(.SerialNumberId)) EndWith Next Return $aReturn EndFunc Func convert_uint16_array_to_string($aBytes) Local $s = "" For $i in $aBytes If $i <> 0 Then $s &= Chr($i) Next Return $s EndFunc Func comm_error_handler($oComError) ConsoleWrite(@CRLF) ConsoleWrite(StringFormat("Script Line = %s", $oComError.ScriptLine) & @CRLF) ConsoleWrite(StringFormat("Win Err Desc = %s", StringStripWS($oComError.WinDescription, $STR_STRIPTRAILING)) & @CRLF) ConsoleWrite(StringFormat("Error Number = %i (0x%x)", $oComError.Number, $oComError.Number) & @CRLF) ConsoleWrite(StringFormat("Error Desc = %s", $oComError.Description) & @CRLF) Exit EndFunc
  9. Oh.Not have error but not see information about monitors(Need write in the last line)
  10. Thanks)Sorry dont understand how it should look....
  11. And next question how i insert all this in my script?( I heve no idea( #include <GUIConstantsEx.au3> #include <EditConstants.au3> #include <ButtonConstants.au3> #RequireAdmin #NoTrayIcon ;Все что написано, посде ';' явлется комментарием и ни как не влияет на работу скрипта. Global $iKabina, $iType, $iKabina, $iModel, $iSerialNum, $iInv ;объявляем переменные, которые будут использоваться в цикле Global $rKabina, $rType, $rModel, $rSerialNum, $rInv, $Main, $iConnect, $hFile, $sInfo, $CopyBtn, $fFile = @ScriptDir & "\" & "(" & @MDAY & "." & @MON & "." & @YEAR & ")" & ".txt" $Main = GUICreate('Инвентаризация', 315, 352) ;рисуем главное окно GUISetBkColor(0x02101B) $iKabina = GUICtrlCreateInput('', 20, 30, 272, 21) $iType = GUICtrlCreateInput('', 20, 75, 272, 21) $iModel = GUICtrlCreateInput('', 20, 120, 272, 21) $iSerialNum = GUICtrlCreateInput('', 20, 165, 272, 21) $iInv = GUICtrlCreateInput('', 20, 210, 272, 21) GUISetFont(10, 800, 0, 'Tahoma'); Устанавливает шрифт по умолчанию для последующих элементов GUI-окна. $iConnect = GUICtrlCreateButton('Передать', 23, 305, 267, 33, $BS_DEFPUSHBUTTON) ;создаем кнопку подключения GUICtrlSetDefColor(0xDEDEDE); Устанавливает цвет текста по умолчанию для последующих элементов GUI-окна. GUICtrlCreateLabel('Кабинет', 20, 10, 150, 17) GUICtrlCreateLabel('Тип', 20, 55, 150, 17) GUICtrlCreateLabel('Модель', 20, 100, 150, 17) GUICtrlCreateLabel('Серийный номер', 20, 145, 150, 17) GUICtrlCreateLabel('Инвентарник', 20, 190, 150, 17) WinSetTrans($Main, '', 0) GUISetState(@SW_SHOW) For $i = 0 To 230 Step 9 Sleep(10) WinSetTrans($Main, '', $i) ;Прозрачность 0-255 Next $hFile = FileOpen(@ScriptDir & "\" & "(" & @MDAY & "." & @MON & "." & @YEAR & ")" & ".txt", 1) While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit Case $iConnect $rKabina = GUICtrlRead($iKabina) $rType = GUICtrlRead($iType) $rModel = GUICtrlRead($iModel) $rSerialNum = GUICtrlRead($iSerialNum) $rInv = GUICtrlRead($iInv) Select Case (Not StringStripWS($rKabina, 8)) MsgBox(16 + 8192 + 262144, 'Error', 'Поле Кабинет - пустое') Case (Not StringStripWS($rType, 8)) MsgBox(16 + 8192 + 262144, 'Error', 'Поле Тип - пустое') Case (Not StringStripWS($rModel, 8)) MsgBox(16 + 8192 + 262144, 'Error', 'Поле Модель - пустое') Case (Not StringStripWS($rSerialNum, 8)) MsgBox(16 + 8192 + 262144, 'Error', 'Поле Серийный номер - пустое') Case (Not StringStripWS($rInv, 8)) MsgBox(16 + 8192 + 262144, 'Error', 'Поле Инвентарник - пустое') Case $hFile = -1 MsgBox(4096, 'Ошибка', 'Невозможно открыть файл.') Case Else _hide() ;отключает все элементы ввода и кнопку $sInfo = '======================================================================================' & @CRLF & _ '[МЕСТОПОЛОЖЕНИЕ:]' & @CRLF & _ @TAB & 'Дата: ................... ' & @MDAY & '.' & @MON & '.' & @YEAR & ' ' & @CRLF & _ @TAB & 'Кабинет: ................ ' & $rKabina & @CRLF & _ @TAB & 'Тип: .................... ' & $rType & @CRLF & _ @TAB & 'Модель: ................. ' & $rModel & @CRLF & _ @TAB & 'Серийный номер: ......... ' & $rSerialNum & @CRLF & _ @TAB & 'Инвентарный номер: ...... ' & $rInv & @CRLF & _ @TAB & 'Учетная запись: ......... ' & @UserName & @CRLF & @CRLF $sInfo &= _InfoPC() FileWrite($hFile, $sInfo) FileClose($hFile) _show() ;включает все элементы ввода и кнопку _ShowOtchot() EndSelect EndSwitch WEnd Func _InfoPC() Local $ObjService = ObjGet('winmgmts:{impersonationLevel = impersonate}!\\' & @ComputerName & '\root\cimv2') Local $ObjMB = $ObjService.ExecQuery('SELECT * FROM Win32_BaseBoard', 'WQL', 0x30) Local $ObjProcessor = $ObjService.ExecQuery('SELECT * FROM Win32_Processor', 'WQL', 0x30) Local $ObjMemory = $ObjService.ExecQuery('SELECT * FROM Win32_PhysicalMemory') Local $ObjNet = $ObjService.ExecQuery('SELECT * FROM Win32_NetworkAdapter', 'WQL', 0x30) Local $ObjGraph = $ObjService.ExecQuery('SELECT * FROM Win32_VideoController', 'WQL', 0x30) Local $ObjDrive = $ObjService.ExecQuery('SELECT * FROM Win32_DiskDrive', 'WQL', 0x30) Local $ObjCDDrive = $ObjService.ExecQuery('SELECT * FROM Win32_CDROMDrive', 'WQL', 0x30) Local $ObjRam = $ObjService.ExecQuery('SELECT * FROM Win32_ComputerSystem') Local $sNameComput = RegRead('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\DataStore\Machine\0', 'szTargetName') Local $sProduct = RegRead('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion', 'ProductName') Local $sBuild = RegRead('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion', 'ReleaseId') Local $sItemM, $sInfo = '[КОНФИГУРАЦИЯ:]' & @CRLF & @TAB & 'Имя компьютера: ......... ' & $sNameComput & @CRLF & _ @TAB & 'Операционная система: ... ' & $sProduct & ' ' & $sBuild & ' ' & '(' & @OSArch & ')' & @CRLF If IsObj($ObjService) Then For $objItemP In $ObjProcessor $sInfo &= @TAB & 'Процессор: .............. ' & $objItemP.Name & @CRLF Next For $objItemMB In $ObjMB $sInfo &= @TAB & 'Материнская плата: ...... ' & $objItemMB.Product & @CRLF Next For $ObjItemM In $ObjMemory $sItemM = $objItemM.Speed Next For $objItemR In $ObjRam $sInfo &= @TAB & 'RAM: .................... ' & Round($objItemR.TotalPhysicalMemory / 1024 / 1024 ^ 2, 0) & ' GB | ' & $ObjMemory.Count & ' pieces | ' & $sItemM & ' Mhz' & @CRLF Next For $ObjItemG In $ObjGraph $sInfo &= @TAB & 'Видеокарта: ............. ' & $ObjItemG.Name & ' | RAM: ' & $ObjItemG.AdapterRAM / 1024 ^ 2 & ' Mb' & @CRLF Next For $ObjItemD In $ObjDrive $sInfo &= @TAB & 'Жесткие диск: ........... ' & $ObjItemD.Model & ' | Size: ' & Round($ObjItemD.Size / 1024 / 1024 / 1024) & ' Gb' & @CRLF Next For $ObjItemCD In $ObjCDDrive $sInfo &= @TAB & 'Дисковод: ............... ' & $ObjItemCD.Name & @CRLF Next For $ObjItemN In $ObjNet If $ObjItemN.PhysicalAdapter = True Then $sInfo &= @TAB & 'Сетевой адаптер: ........ ' & $ObjItemN.Name & @CRLF EndIf Next EndIf $sInfo &= @CRLF Return $sInfo EndFunc ;==>_InfoPC 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 ;==>_hide 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 ;==>_show Opt("MustDeclareVars",1) Func _a() Local $sls=ObjGet("winmgmts:{impersonationLevel=impersonate," _ &"authenticationLevel=Pkt}!\\"& _ @ComputerName&'\root\wmi'),$lss=$sls.ExecQuery _ ('SELECT * FROM WmiMonitorID'), _ $lll,$sll,$sss="",$lsl,$lls,$i,$z For $z In $lss $lsl=$z.UserFriendlyName For $i=0 To Ubound($lsl)-1 if ($lsl[$i]) Then $lll&=Chr($lsl[$i]) Next $lls=$z.SerialNumberID For $i=0 To Ubound($lls)-1 if ($lls[$i]) Then $sll&=Chr($lls[$i]) Next $sss&="Model"&@TAB&@TAB&": "&$lll&@CR&"Serial Number"&@TAB&": "&$sll&@CR&@CR $lll="" $sll="" Next $lss=Null $sls=Null $sInfo &= @CRLF EndFunc Func _ShowOtchot() $Form1 = GUICreate("Отчёт", 482, 438, Default, Default, Default, 0x00000080, $Main) GUISetBkColor(0x02101B) $Edit1 = GUICtrlCreateEdit("", 0, 0, 482, 385) GUICtrlSetData(-1, FileRead($fFile)) $CopyBtn = GUICtrlCreateButton("Копировать", 194, 400, 99, 25, $BS_DEFPUSHBUTTON) For $i = 0 To 230 Step 9 Sleep(10) WinSetTrans($Form1, '', $i) ;Прозрачность 0-255 Next GUISetState(@SW_SHOW) While 1 $msg = GUIGetMsg() Switch $msg Case $CopyBtn ClipPut(GUICtrlRead($Edit1)) DirCreate (@ScriptDir & "\COPY") FileCopy(@ScriptDir & "\" & "(" & @MDAY & "." & @MON & "." & @YEAR & ")" & ".txt", @ScriptDir & "\COPY", 1) MsgBox(64, "Статус", 'Скопировано', Default, $Main) Case -3 GUIDelete($Form1) WinActivate($Main) ExitLoop EndSwitch WEnd EndFunc
  12. Thank you so much) And i correct your script see that #AutoIt3Wrapper_AU3Check_Parameters=-w 3 -w 4 -w 5 -w 6 -d #include <Constants.au3> #include <Array.au3> example() Func example() Local $oComErr, $oWmi, $oInstances $oComErr = ObjEvent("AutoIt.Error", comm_error_handler) #forceref $oComErr ;Get WMI object $oWmi = ObjGet("winmgmts:\root\WMI") If Not IsObj($oWmi) Then Exit MsgBox($MB_ICONERROR, "ERROR", "Unable to create WMI object") ;Select object instances $oInstances = $oWmi.ExecQuery("SELECT * FROM WMIMonitorID") If $oInstances.Count = 0 Then Exit MsgBox($MB_ICONWARNING,"Warning","No objects found") ;Display instance properties For $oInstance in $oInstances With $oInstance ConsoleWrite(@CRLF) If IsArray(.UserFriendlyName) Then ConsoleWrite(StringFormat("UserFriendlyName = %s", convert_uint16_array_to_string(.UserFriendlyName)) & @CRLF) If IsArray(.SerialNumberId) Then ConsoleWrite(StringFormat("SerialNumberId = %s", convert_uint16_array_to_string(.SerialNumberId)) & @CRLF) EndWith Next EndFunc Func convert_uint16_array_to_string($aBytes) Local $s = "" For $i in $aBytes If $i <> 0 Then $s &= Chr($i) Next Return $s EndFunc Func comm_error_handler($oComError) ConsoleWrite(@CRLF) ConsoleWrite(StringFormat("Script Line = %s", $oComError.ScriptLine) & @CRLF) ConsoleWrite(StringFormat("Win Err Desc = %s", StringStripWS($oComError.WinDescription, $STR_STRIPTRAILING)) & @CRLF) ConsoleWrite(StringFormat("Error Number = %i (0x%x)", $oComError.Number, $oComError.Number) & @CRLF) ConsoleWrite(StringFormat("Error Desc = %s", $oComError.Description) & @CRLF) Exit EndFunc
  13. I just answered, not see problem.I edit my messages because my english not very good and I think, based on etiquette, it would be better to speak clearly so that I can be understood.But thanks for the advice.
  14. I not see the MonitorID...I just want see serial numbers and models and how i know, others classes "Monitor" not show this information. Is it really impossible rewrite this script, when this script working? I need rewrite form how i see it in example....And I need help in this
×
×
  • Create New...