Автор Тема: Определение конфигурации компьютера в AutoIt  (Прочитано 16940 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Talany [?]

  • Новичок
  • *
  • Сообщений: 136
  • Репутация: 11
  • Пол: Мужской
    • http://localhost
    • Награды
Помогите написать скрипт определяющий конфигурацию компьютера


Добавлено: Июнь 02, 2010, 09:37:15
Определил только процессор и общее количество ОЗУ
$processoropr = RegRead("HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0", "ProcessorNameString")
$processor = StringTrimLeft ($processoropr, 16) ;определение процессора

$Mem = MemGetStats()
$ozu = Round($Mem[1]/1024) ; количество озу

In God We Trust =)
или
In AutoIt We Trust...

Русское сообщество AutoIt

Определение конфигурации компьютера в AutoIt
« Отправлен: Июнь 02, 2010, 09:34:17 »

Оффлайн madmasles [?]

  • Глобальный модератор
  • *
  • Сообщений: 7790
  • Репутация: 2317
  • Пол: Мужской
  • Награды За модерирование форума
    • Награды
  • Версия AutoIt: 3.3.x.x
Talany
Здесь посмотрите: DeviceAPI

Оффлайн AZJIO [?]

  • VIP
  • *
  • Сообщений: 2741
  • Репутация: 1143
    • мой сайт
    • Награды
  • Версия AutoIt: 3.3.8.1

Русское сообщество AutoIt

Re: Определение конфигурации компьютера в AutoIt
« Ответ #2 Отправлен: Июнь 02, 2010, 11:15:45 »

Оффлайн Talany [?]

  • Новичок
  • *
  • Сообщений: 136

  • Автор темы
  • Репутация: 11
  • Пол: Мужской
    • http://localhost
    • Награды
Блин легче на vbs написать! AutoIt геморойный какойто........

Оффлайн Yashied [?]

  • AutoIt MVP
  • Глобальный модератор
  • *
  • Сообщений: 5379
  • Репутация: 2700
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.x.x
Блин легче на vbs написать! AutoIt геморойный какойто........

А причем здесь AutoIt?

Код: AutoIt [Выделить]
$oService  = ObjGet('winmgmts:\\.\root\cimv2')
If IsObj($oService) Then
    $oItems  = $oService.ExecQuery('SELECT * FROM Win32_Processor')
    If IsObj($oItems) Then
        For $Property In $oItems
            ConsoleWrite($Property.Architecture & @CR)
            ConsoleWrite($Property.Family & @CR)
            ConsoleWrite($Property.Level & @CR)
            ConsoleWrite($Property.Manufacturer & @CR)
            ConsoleWrite($Property.Name & @CR)
            ConsoleWrite($Property.ProcessorId & @CR)
            ConsoleWrite($Property.Revision & @CR)
            ConsoleWrite($Property.Version & @CR)
        Next
    EndIf
EndIf


На VBS по твоему будет проще?

Win32 Classes


Думай, прежде чем говорить.

Русское сообщество AutoIt

Re: Определение конфигурации компьютера в AutoIt
« Ответ #4 Отправлен: Июнь 02, 2010, 15:28:14 »

Оффлайн Kaster [?]

  • Бритва, Бритва Оккама
  • Глобальный модератор
  • *
  • Сообщений: 4020
  • Репутация: 622
  • Пол: Мужской
  • Мой Аватар, он лучший самый
    • Награды
  • Версия AutoIt: 3.3.14.0
Yashied  [?]
Цитировать
На VBS по твоему будет проще?
Смею предположить, что сложность одинакова :)
set oService   = GetObject("winmgmts:\\.\root\cimv2")
If IsObject(oService) Then
    set oItems  = oService.ExecQuery("SELECT * FROM Win32_Processor")
    If IsObject(oItems) Then
        s = ""
For Each Prop In oItems
            s = s & Prop.Architecture & vbcrlf
            s = s & Prop.Family & vbcrlf
            s = s & Prop.Level & vbcrlf
            s = s & Prop.Manufacturer & vbcrlf
            s = s & Prop.Name & vbcrlf
            s = s & Prop.ProcessorId & vbcrlf
            s = s & Prop.Revision & vbcrlf
            s = s & Prop.Version & vbcrlf
        Next
    End If
End If
WScript.Echo s
Конференция посвященная AutoIt на jabber.ru - [email protected]
Как попасть на конференцию читаем тут


Оффлайн Yashied [?]

  • AutoIt MVP
  • Глобальный модератор
  • *
  • Сообщений: 5379
  • Репутация: 2700
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.x.x
А вот в AutoIt я еще и GUI замутить могу.

:P

Оффлайн Talany [?]

  • Новичок
  • *
  • Сообщений: 136

  • Автор темы
  • Репутация: 11
  • Пол: Мужской
    • http://localhost
    • Награды
А вот в AutoIt я еще и GUI замутить могу.

:P


Вот по этому я и пытаюсь освоить AutoIt!!!
Просто vbs более знаком.............    :-\

Русское сообщество AutoIt

Re: Определение конфигурации компьютера в AutoIt
« Ответ #7 Отправлен: Июнь 02, 2010, 17:49:47 »

Оффлайн Talany [?]

  • Новичок
  • *
  • Сообщений: 136

  • Автор темы
  • Репутация: 11
  • Пол: Мужской
    • http://localhost
    • Награды
Чтото я окончательно запутался  :'(
$oService  = ObjGet('winmgmts:\\.\root\cimv2')
If IsObj($oService) Then
$oItems  = $oService.ExecQuery('SELECT Model, Size FROM Win32_DiskDrive')
If IsObj($oItems) Then
        For $Property In $oItems
$1 =($Property.Model)
$2 =($Property.Size)
            MsgBox (4096, $1, $2)
        Next
    EndIf
EndIf
Adminы добрые Помогите пожалуйста вытащить каждый диск в отдельный массив!  :(

Оффлайн Kaster [?]

  • Бритва, Бритва Оккама
  • Глобальный модератор
  • *
  • Сообщений: 4020
  • Репутация: 622
  • Пол: Мужской
  • Мой Аватар, он лучший самый
    • Награды
  • Версия AutoIt: 3.3.14.0
Talany
а что ты хочешь в этих массивах? Модель и размер?
Может лучше один но двумерный массив?
Код: AutoIt [Выделить]
#include <array.au3>
$oService  = ObjGet('winmgmts:\\.\root\cimv2')


If IsObj($oService) Then
    $oItems  = $oService.ExecQuery('SELECT Model, Size FROM Win32_DiskDrive')
    ;_ArrayDisplay($oItems)
    If IsObj($oItems) Then
        $iDim = 1
        Dim $aDisk[$iDim][2]
        For $Property In $oItems
            ReDim $aDisk[$iDim][2]
            $aDisk[$iDim - 1][0] = $Property.Model
            $aDisk[$iDim - 1][1] = $Property.Size
            $iDim += 1
        Next
    EndIf
EndIf

_ArrayDisplay($aDisk)
 


Оффлайн AZJIO [?]

  • VIP
  • *
  • Сообщений: 2741
  • Репутация: 1143
    • мой сайт
    • Награды
  • Версия AutoIt: 3.3.8.1
Talany
Вот добавление в комбобокс и вывод данных в лейбл. Для создания массива нужно немного переработать скрипт, элементы добавлять в массив а не в комбо, и данные в многомерный массив, а не в лейблы.
Код: AutoIt [Выделить]
#NoTrayIcon ;скрыть в системной панели индикатор AutoIt

; начало создания окна, вкладок, кнопок.
GUICreate("Инфа о дисках",230,192) ; размер окна
;GUICtrlCreateTab (0,0, 230,192) ; размер вкладки
;GUICtrlCreateTabitem ("") ; имя вкладки

$bykvadicka80=GUICtrlCreateCombo ("", 10,8,90,18)
$DrivesArr = DriveGetDrive( "all" )
$list=''
For $i=1 To $DrivesArr[0]
   $DrTp = DriveGetType( $DrivesArr[$i]&'\' )
    If $DrTp='Removable' Then $DrTp='Rem'
    If $DrivesArr[$i]<>'A:' Then Assign('list', $list&'|'&StringUpper($DrivesArr[$i])&' ('&$DrTp&')')
    If $DrivesArr[$i]='c:' Then $dr=$i
Next
GUICtrlSetData($bykvadicka80,$list,StringUpper($DrivesArr[$dr])&' ('&DriveGetType( $DrivesArr[$dr]&'\' )&')')

GUICtrlCreateLabel (" FS:", 10,40,100,18)
GUICtrlCreateLabel (" метка тома:", 10,60,100,18)
GUICtrlCreateLabel (" серийный номер:", 10,80,100,18)
GUICtrlCreateLabel (" тип:", 10,100,100,18)
GUICtrlCreateLabel (" размер:", 10,120,100,18)
GUICtrlCreateLabel (" свободно:", 10,140,100,18)
GUICtrlCreateLabel (" статус:", 10,160,100,18)


$Label1=GUICtrlCreateLabel ("", 115,40,100,18)
$Label2=GUICtrlCreateLabel ("", 115,60,100,18)
$Label3=GUICtrlCreateLabel ("", 115,80,100,18)
$Label4=GUICtrlCreateLabel ("", 115,100,100,18)
$Label5=GUICtrlCreateLabel ("", 115,120,100,18)
$Label6=GUICtrlCreateLabel ("", 115,140,100,18)
$Label7=GUICtrlCreateLabel ("", 115,160,100,18)

_info()

GUISetState ()

While 1
    $msg = GUIGetMsg()
    Select
        Case $msg = $bykvadicka80
           _info()
        Case $msg = -3
            ExitLoop
    EndSelect
WEnd


; функция чтения информации о выбранном диске
Func _info()
$bykvadicka081=StringMid(GUICtrlRead ($bykvadicka80), 1,1)
GUICtrlSetData($Label1,DriveGetFileSystem( $bykvadicka081&":\" ))
GUICtrlSetData($Label2,DriveGetLabel( $bykvadicka081&":\" ))
GUICtrlSetData($Label3,DriveGetSerial( $bykvadicka081&":\" ))
GUICtrlSetData($Label4,DriveGetType( $bykvadicka081&":\" ))
GUICtrlSetData($Label5,Round(DriveSpaceTotal( $bykvadicka081&":\" )/1024,1)&' Гб')
GUICtrlSetData($Label6,Round(DriveSpaceFree( $bykvadicka081&":\" )/1024,1)&' Гб')
GUICtrlSetData($Label7,DriveStatus( $bykvadicka081&":\" ))
EndFunc   ;==>_info


Оффлайн Talany [?]

  • Новичок
  • *
  • Сообщений: 136

  • Автор темы
  • Репутация: 11
  • Пол: Мужской
    • http://localhost
    • Награды
Kaster благодарю....
Как раз что хотел спасибо  :laugh:

Оффлайн AZJIO [?]

  • VIP
  • *
  • Сообщений: 2741
  • Репутация: 1143
    • мой сайт
    • Награды
  • Версия AutoIt: 3.3.8.1
Попробовал переделать скрипт Kaster
Код: AutoIt [Выделить]
#include <Array.au3>
$DrivesArr = DriveGetDrive( "all" )
$iDim = 1
Dim $aDisk[$iDim][8]
For $i=1 To $DrivesArr[0]
    If $DrivesArr[$i]='A:' Then ContinueLoop
    ReDim $aDisk[$iDim][8]
    $aDisk[$iDim - 1][0] = $DrivesArr[$i]&'\'
    $aDisk[$iDim - 1][1] = DriveGetFileSystem( $DrivesArr[$i]&'\')
    $aDisk[$iDim - 1][2] = DriveGetLabel( $DrivesArr[$i]&'\')
    $aDisk[$iDim - 1][3] = DriveGetSerial( $DrivesArr[$i]&'\')
    $aDisk[$iDim - 1][4] = DriveGetType( $DrivesArr[$i]&'\')
    $aDisk[$iDim - 1][5] = Round(DriveSpaceTotal( $DrivesArr[$i]&'\' )/1024,1)&' Гб'
    $aDisk[$iDim - 1][6] = Round(DriveSpaceFree( $DrivesArr[$i]&'\' )/1024,1)&' Гб'
    $aDisk[$iDim - 1][7] = DriveStatus( $DrivesArr[$i]&'\')
    $iDim += 1
Next
_ArrayDisplay($aDisk)


Оффлайн Kaster [?]

  • Бритва, Бритва Оккама
  • Глобальный модератор
  • *
  • Сообщений: 4020
  • Репутация: 622
  • Пол: Мужской
  • Мой Аватар, он лучший самый
    • Награды
  • Версия AutoIt: 3.3.14.0
AZJIO
в твоем скрипте делать каждый раз ReDim ни к чему. т.к. ты заранее знаешь какой размер должен быть у выходного массива.
я так делал, потому что не знал, как определить размер получаемого объекта при
$oService.ExecQuery('SELECT Model, Size FROM Win32_DiskDrive')

Добавлено: Июнь 03, 2010, 16:08:27
Код: AutoIt [Выделить]
#include <Array.au3>
$DrivesArr = DriveGetDrive( "all" )
$iDim = 1
Dim $aDisk[$DrivesArr[0]][8]
For $i=1 To $DrivesArr[0]
    ;If $DrivesArr[$i]='A:' Then ContinueLoop
    ;ReDim $aDisk[$iDim][8]
    $aDisk[$i - 1][0] = $DrivesArr[$i]&'\'
    $aDisk[$i - 1][1] = DriveGetFileSystem( $DrivesArr[$i]&'\')
    $aDisk[$i - 1][2] = DriveGetLabel( $DrivesArr[$i]&'\')
    $aDisk[$i - 1][3] = DriveGetSerial( $DrivesArr[$i]&'\')
    $aDisk[$i - 1][4] = DriveGetType( $DrivesArr[$i]&'\')
    $aDisk[$i - 1][5] = Round(DriveSpaceTotal( $DrivesArr[$i]&'\' )/1024,1)&' Гб'
    $aDisk[$i - 1][6] = Round(DriveSpaceFree( $DrivesArr[$i]&'\' )/1024,1)&' Гб'
    $aDisk[$i - 1][7] = DriveStatus( $DrivesArr[$i]&'\')
    ;$iDim += 1
Next
_ArrayDisplay($aDisk)


Оффлайн Talany [?]

  • Новичок
  • *
  • Сообщений: 136

  • Автор темы
  • Репутация: 11
  • Пол: Мужской
    • http://localhost
    • Награды
Чтото у меня не ладится с AutoIt....
Почему в конце кода выпадает ошибка???
Код: AutoIt [Выделить]
#include <array.au3>
$oService  = ObjGet('winmgmts:\\.\root\cimv2')


If IsObj($oService) Then
    $oItems  = $oService.ExecQuery('SELECT Model, Size FROM Win32_DiskDrive')
    ;_ArrayDisplay($oItems)
    If IsObj($oItems) Then
        $iDim = 1
        Dim $aDisk[$iDim][2]
        For $Property In $oItems
            ReDim $aDisk[$iDim][2]
            $aDisk[$iDim - 1][0] = $Property.Model
            $aDisk[$iDim - 1][1] = $Property.Size
            $iDim += 1
        Next
    EndIf
EndIf

If $aDisk[0][0] = True Then
    MsgBox (4096, $aDisk[0][0], $aDisk[0][1])
EndIf
If $aDisk[1][0] = True Then
    MsgBox (4096, $aDisk[1][0], $aDisk[1][1])
EndIf
If $aDisk[2][0] = True Then
    MsgBox (4096, $aDisk[2][0], $aDisk[2][1])
EndIf
If $aDisk[3][0] = True Then
    MsgBox (4096, $aDisk[2][0], $aDisk[2][1])
EndIf
 

И вообще как проверить существования переменной или массива???

Русское сообщество AutoIt

Re: Определение конфигурации компьютера в AutoIt
« Ответ #14 Отправлен: Июнь 04, 2010, 10:03:48 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
3 Ответов
4634 Просмотров
Последний ответ Июнь 07, 2010, 17:10:41
от Kaster
0 Ответов
4316 Просмотров
Последний ответ Февраль 09, 2011, 08:26:36
от Talany
14 Ответов
8408 Просмотров
Последний ответ Февраль 16, 2011, 15:44:04
от e-Mike
5 Ответов
6093 Просмотров
Последний ответ Июль 04, 2011, 13:42:27
от Kaster
12 Ответов
4925 Просмотров
Последний ответ Декабрь 17, 2011, 21:58:14
от Math
15 Ответов
11754 Просмотров
Последний ответ Январь 19, 2012, 14:48:52
от ZeVSalt
2 Ответов
2698 Просмотров
Последний ответ Март 17, 2012, 21:35:47
от Dimmak
5 Ответов
13255 Просмотров
Последний ответ Декабрь 01, 2012, 11:37:28
от C2H5OH
4 Ответов
1759 Просмотров
Последний ответ Январь 15, 2016, 13:12:48
от photozoom
3 Ответов
5463 Просмотров
Последний ответ Февраль 01, 2018, 20:56:15
от Astel064