Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Вывод значений определенного ключа реестра на экран

Ответить
Настройки темы
CMD/BAT - Вывод значений определенного ключа реестра на экран

Аватара для VoinLuny

Новый участник


Сообщения: 24
Благодарности: 0

Профиль | Отправить PM | Цитировать


Дорогие форумчане!
Снова взываю к вашей помощи!
Нужен батник который покажет текущее разрешение в десятеричной системе.
Благодаря многоуважаемому Iska я сумел перейти в нужную ветку http://forum.oszone.net/thread-235369.html
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set sPath=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles\0001\System\CurrentControlSet\Control\VIDEO

for /f "delims==" %%i in ('reg.exe query "%sPath%" ^| find.exe "{"') do (
	reg.exe query "%%i" >> tmp.txt && set sPath2=%%i\0000
	goto :Teminate
)

:Teminate
for /f "delims==" %%y in ('reg.exe query "%sPath2%" ^| find.exe "Mon"') do (
	reg.exe query "%%y" >> tmp.txt && set sPath3=%%y
	goto :Teminate2
pause
)

:Teminate2
echo INFO: Dannye hranyatsya v vetke %sPath3%
pause


endlocal


pause
exit /b 0

rem Перенаправление вывода в temp.txt для того, чтобы не засорять окно ненужными данными
теперь проблема следующая: как вытащить 2 параметра: DefaultSettings.XResolution и DefaultSettings.YResolution причем чтобы они отобразились в виде 1024 и 768 а не 0x*****. Помогите пожалуйста!

Отправлено: 14:17, 13-06-2012

 

Аватара для VoinLuny

Новый участник


Сообщения: 24
Благодарности: 0

Профиль | Отправить PM | Цитировать


Iska, У меня есть ответы на Ваши вопросы
0000, 0001 и т.д. - профили, соответствующие профилям локальных пользователей (насколько я разумею)
Разделы {абракадабра} - это если я ничего не путаю, идентификаторы оборудования, которое используется (в данном случае видеокарты).
В принципе, чтобы не мучиться с выбором из 0000 и т.д. можно попробовать пролезть через HKCU поскольку там загружена конфигурация текущего пользователя и соответственно его id там должен отображаться, но его там нет...
В общем можно будет над этим всем подумать, и если Вы мне поможете сделать нормальную программу, работающую на всех ПК с Win7 будет очень здорово и я буду очень благодарен.
Но это завтра. Доброй ночи!

Отправлено: 02:49, 14-06-2012 | #21



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата VoinLuny:
0000, 0001 и т.д. - профили, соответствующие профилям локальных пользователей (насколько я разумею) »
Ответ неверный .

Цитата VoinLuny:
нормальную программу, работающую на всех ПК с Win7 »
Вам уже предлагали выше сделать сие на основе Wbem. Вы захотели по-своему.

Вот Вам навскидку скрипты WSH, сгенерированные посредством «WMI Code Creator»:
читать дальше »
Код: Выделить весь код
strComputer = "." 
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") 
Set colItems = objWMIService.ExecQuery( _
    "SELECT * FROM Win32_VideoController",,48) 
For Each objItem in colItems 
    Wscript.Echo "-----------------------------------"
    Wscript.Echo "Win32_VideoController instance"
    Wscript.Echo "-----------------------------------"
    If isNull(objItem.AcceleratorCapabilities) Then
        Wscript.Echo "AcceleratorCapabilities: "
    Else
        Wscript.Echo "AcceleratorCapabilities: " & Join(objItem.AcceleratorCapabilities, ",")
    End If
    Wscript.Echo "AdapterCompatibility: " & objItem.AdapterCompatibility
    Wscript.Echo "AdapterDACType: " & objItem.AdapterDACType
    Wscript.Echo "AdapterRAM: " & objItem.AdapterRAM
    Wscript.Echo "Availability: " & objItem.Availability
    If isNull(objItem.CapabilityDescriptions) Then
        Wscript.Echo "CapabilityDescriptions: "
    Else
        Wscript.Echo "CapabilityDescriptions: " & Join(objItem.CapabilityDescriptions, ",")
    End If
    Wscript.Echo "Caption: " & objItem.Caption
    Wscript.Echo "ColorTableEntries: " & objItem.ColorTableEntries
    Wscript.Echo "ConfigManagerErrorCode: " & objItem.ConfigManagerErrorCode
    Wscript.Echo "ConfigManagerUserConfig: " & objItem.ConfigManagerUserConfig
    Wscript.Echo "CreationClassName: " & objItem.CreationClassName
    Wscript.Echo "CurrentBitsPerPixel: " & objItem.CurrentBitsPerPixel
    Wscript.Echo "CurrentHorizontalResolution: " & objItem.CurrentHorizontalResolution
    Wscript.Echo "CurrentNumberOfColors: " & objItem.CurrentNumberOfColors
    Wscript.Echo "CurrentNumberOfColumns: " & objItem.CurrentNumberOfColumns
    Wscript.Echo "CurrentNumberOfRows: " & objItem.CurrentNumberOfRows
    Wscript.Echo "CurrentRefreshRate: " & objItem.CurrentRefreshRate
    Wscript.Echo "CurrentScanMode: " & objItem.CurrentScanMode
    Wscript.Echo "CurrentVerticalResolution: " & objItem.CurrentVerticalResolution
    Wscript.Echo "Description: " & objItem.Description
    Wscript.Echo "DeviceID: " & objItem.DeviceID
    Wscript.Echo "DeviceSpecificPens: " & objItem.DeviceSpecificPens
    Wscript.Echo "DitherType: " & objItem.DitherType
    Wscript.Echo "DriverDate: " & objItem.DriverDate
    Wscript.Echo "DriverVersion: " & objItem.DriverVersion
    Wscript.Echo "ErrorCleared: " & objItem.ErrorCleared
    Wscript.Echo "ErrorDescription: " & objItem.ErrorDescription
    Wscript.Echo "ICMIntent: " & objItem.ICMIntent
    Wscript.Echo "ICMMethod: " & objItem.ICMMethod
    Wscript.Echo "InfFilename: " & objItem.InfFilename
    Wscript.Echo "InfSection: " & objItem.InfSection
    Wscript.Echo "InstallDate: " & objItem.InstallDate
    Wscript.Echo "InstalledDisplayDrivers: " & objItem.InstalledDisplayDrivers
    Wscript.Echo "LastErrorCode: " & objItem.LastErrorCode
    Wscript.Echo "MaxMemorySupported: " & objItem.MaxMemorySupported
    Wscript.Echo "MaxNumberControlled: " & objItem.MaxNumberControlled
    Wscript.Echo "MaxRefreshRate: " & objItem.MaxRefreshRate
    Wscript.Echo "MinRefreshRate: " & objItem.MinRefreshRate
    Wscript.Echo "Monochrome: " & objItem.Monochrome
    Wscript.Echo "Name: " & objItem.Name
    Wscript.Echo "NumberOfColorPlanes: " & objItem.NumberOfColorPlanes
    Wscript.Echo "NumberOfVideoPages: " & objItem.NumberOfVideoPages
    Wscript.Echo "PNPDeviceID: " & objItem.PNPDeviceID
    If isNull(objItem.PowerManagementCapabilities) Then
        Wscript.Echo "PowerManagementCapabilities: "
    Else
        Wscript.Echo "PowerManagementCapabilities: " & Join(objItem.PowerManagementCapabilities, ",")
    End If
    Wscript.Echo "PowerManagementSupported: " & objItem.PowerManagementSupported
    Wscript.Echo "ProtocolSupported: " & objItem.ProtocolSupported
    Wscript.Echo "ReservedSystemPaletteEntries: " & objItem.ReservedSystemPaletteEntries
    Wscript.Echo "SpecificationVersion: " & objItem.SpecificationVersion
    Wscript.Echo "Status: " & objItem.Status
    Wscript.Echo "StatusInfo: " & objItem.StatusInfo
    Wscript.Echo "SystemCreationClassName: " & objItem.SystemCreationClassName
    Wscript.Echo "SystemName: " & objItem.SystemName
    Wscript.Echo "SystemPaletteEntries: " & objItem.SystemPaletteEntries
    Wscript.Echo "TimeOfLastReset: " & objItem.TimeOfLastReset
    Wscript.Echo "VideoArchitecture: " & objItem.VideoArchitecture
    Wscript.Echo "VideoMemoryType: " & objItem.VideoMemoryType
    Wscript.Echo "VideoMode: " & objItem.VideoMode
    Wscript.Echo "VideoModeDescription: " & objItem.VideoModeDescription
    Wscript.Echo "VideoProcessor: " & objItem.VideoProcessor
Next
Код: Выделить весь код
strComputer = "." 
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") 
Set colItems = objWMIService.ExecQuery( _
    "SELECT * FROM Win32_DesktopMonitor",,48) 
For Each objItem in colItems 
    Wscript.Echo "-----------------------------------"
    Wscript.Echo "Win32_DesktopMonitor instance"
    Wscript.Echo "-----------------------------------"
    Wscript.Echo "Availability: " & objItem.Availability
    Wscript.Echo "Bandwidth: " & objItem.Bandwidth
    Wscript.Echo "Caption: " & objItem.Caption
    Wscript.Echo "ConfigManagerErrorCode: " & objItem.ConfigManagerErrorCode
    Wscript.Echo "ConfigManagerUserConfig: " & objItem.ConfigManagerUserConfig
    Wscript.Echo "CreationClassName: " & objItem.CreationClassName
    Wscript.Echo "Description: " & objItem.Description
    Wscript.Echo "DeviceID: " & objItem.DeviceID
    Wscript.Echo "DisplayType: " & objItem.DisplayType
    Wscript.Echo "ErrorCleared: " & objItem.ErrorCleared
    Wscript.Echo "ErrorDescription: " & objItem.ErrorDescription
    Wscript.Echo "InstallDate: " & objItem.InstallDate
    Wscript.Echo "IsLocked: " & objItem.IsLocked
    Wscript.Echo "LastErrorCode: " & objItem.LastErrorCode
    Wscript.Echo "MonitorManufacturer: " & objItem.MonitorManufacturer
    Wscript.Echo "MonitorType: " & objItem.MonitorType
    Wscript.Echo "Name: " & objItem.Name
    Wscript.Echo "PixelsPerXLogicalInch: " & objItem.PixelsPerXLogicalInch
    Wscript.Echo "PixelsPerYLogicalInch: " & objItem.PixelsPerYLogicalInch
    Wscript.Echo "PNPDeviceID: " & objItem.PNPDeviceID
    If isNull(objItem.PowerManagementCapabilities) Then
        Wscript.Echo "PowerManagementCapabilities: "
    Else
        Wscript.Echo "PowerManagementCapabilities: " & Join(objItem.PowerManagementCapabilities, ",")
    End If
    Wscript.Echo "PowerManagementSupported: " & objItem.PowerManagementSupported
    Wscript.Echo "ScreenHeight: " & objItem.ScreenHeight
    Wscript.Echo "ScreenWidth: " & objItem.ScreenWidth
    Wscript.Echo "Status: " & objItem.Status
    Wscript.Echo "StatusInfo: " & objItem.StatusInfo
    Wscript.Echo "SystemCreationClassName: " & objItem.SystemCreationClassName
    Wscript.Echo "SystemName: " & objItem.SystemName
Next
Код: Выделить весь код
strComputer = "." 
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") 
Set colItems = objWMIService.ExecQuery( _
    "SELECT * FROM CIM_VideoControllerResolution",,48) 
For Each objItem in colItems 
    Wscript.Echo "-----------------------------------"
    Wscript.Echo "CIM_VideoControllerResolution instance"
    Wscript.Echo "-----------------------------------"
    Wscript.Echo "Caption: " & objItem.Caption
    Wscript.Echo "Description: " & objItem.Description
    Wscript.Echo "HorizontalResolution: " & objItem.HorizontalResolution
    Wscript.Echo "MaxRefreshRate: " & objItem.MaxRefreshRate
    Wscript.Echo "MinRefreshRate: " & objItem.MinRefreshRate
    Wscript.Echo "NumberOfColors: " & objItem.NumberOfColors
    Wscript.Echo "RefreshRate: " & objItem.RefreshRate
    Wscript.Echo "ScanMode: " & objItem.ScanMode
    Wscript.Echo "SettingID: " & objItem.SettingID
    Wscript.Echo "VerticalResolution: " & objItem.VerticalResolution
Next
Поскольку Вы таки озвучили версию ОС — в последнем посте, то в примерах не будет классов Win32_DisplayConfiguration и Win32_DisplayControllerConfiguration — они более не поддерживаются.

Это, конечно, не готовые скрипты, генератор есть генератор, но дадут Вам возможность посмотреть, как оно работает.

Отправлено: 03:55, 14-06-2012 | #22


Аватара для VoinLuny

Новый участник


Сообщения: 24
Благодарности: 0

Профиль | Отправить PM | Цитировать


Iska,
Цитата Iska:
Ответ неверный . »
Вы можете назвать правильный? На основании чего Вы утверждаете, что я не прав?
Цитата Iska:
Вам уже предлагали выше сделать сие на основе Wbem. Вы захотели по-своему. »
И до сих пор хочу И если правильно истолковал Ваши слова - Вы готовы мне помочь. Или нет?

Отправлено: 13:07, 14-06-2012 | #23


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата VoinLuny:
На основании чего Вы утверждаете, что я не прав? »
Как насчёт:
Chapter 23 - Overview of the Windows NT Registry
Predefined Keys
CurrentControlSet\Hardware Profiles: Core Services
?!

Цитата VoinLuny:
И если правильно истолковал Ваши слова - Вы готовы мне помочь. »
Правильно истолковали.

Вы опробовали сгенерированные скрипты?

Отправлено: 13:59, 14-06-2012 | #24


Аватара для VoinLuny

Новый участник


Сообщения: 24
Благодарности: 0

Профиль | Отправить PM | Цитировать


нет, поскольку на данный момент ухожу в универ. Вечером посмотрю.

Отправлено: 14:04, 14-06-2012 | #25


Аватара для VoinLuny

Новый участник


Сообщения: 24
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Iska:
Вы, кстати, не написали, что показывает данный пакетный файл у Вас. »
1024 & 768

Отправлено: 17:33, 14-06-2012 | #26


Ветеран


Сообщения: 1758
Благодарности: 966

Профиль | Цитировать


VoinLuny

Цитата:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles\0001\System\CurrentControlSet\Control\VIDEO
У меня нет тех параметров, что ты ищешь. Мне кажется, что это неправильный метод или надо искать в других ключах:
Код: Выделить весь код
 > reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles\0001\System\CurrentControlSet\Control\VIDEO" /s

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles\0001\System\CurrentControlSet\Control\VIDEO\{17058D00-53E8-487C-AED1-89FDF2F9D746}

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles\0001\System\CurrentControlSet\Control\VIDEO\{17058D00-53E8-487C-AED1-89FDF2F9D746}\0000
    Attach.ToDesktop    REG_DWORD    0x1
Только Attach.ToDesktop

Батник может выглядеть так ( на тестовом ключе )
Код: Выделить весь код
@echo off
setlocal

:: Создаю тестовый ключ ( что бы было понятно )

reg add hkcu\test\video /v X.Defaults /t reg_dword /d 0x556
reg add hkcu\test\video /v Y.Defaults /t reg_dword /d 0x300


:: Сам батник

for /f "tokens=1,3" %%i in (' reg query "hkcu\test\video" /v X.Defaults ') do set /a %%i=%%j+0
for /f "tokens=1,3" %%i in (' reg query "hkcu\test\video" /v Y.Defaults ') do set /a %%i=%%j+0

echo %X.Defaults%x%Y.Defaults%

Последний раз редактировалось Foreigner, 14-06-2012 в 19:12.


Отправлено: 18:52, 14-06-2012 | #27


Аватара для VoinLuny

Новый участник


Сообщения: 24
Благодарности: 0

Профиль | Отправить PM | Цитировать


Foreigner, а какая у Вас ОС?

Отправлено: 21:50, 14-06-2012 | #28


Ветеран


Сообщения: 1758
Благодарности: 966

Профиль | Цитировать


Цитата VoinLuny:
какая у Вас ОС? »
Win 7 HP x64

Отправлено: 21:53, 14-06-2012 | #29


Аватара для VoinLuny

Новый участник


Сообщения: 24
Благодарности: 0

Профиль | Отправить PM | Цитировать


странно...мне казалось, что я не плохо знаю структуру реестра...надо будет ещё раз пересмотреть материал. Но боюсь, что сегодня не смогу этим заняться, времени к сожалению не много. Думаю завтра вечером смогу уже точно определить какой именно раздел реестра хранит параметры экрана текущего пользователя (в HKCU не нашел пока, я знаю, что всё про текущего юзера там дублируется.) и тогда можно будет вести работу в этом направлении. А пока у меня есть временное решение, тупо для того, чтобы сдать преподу, если мы к контрольному сроку ничего не надумаем:
В моём исходном коде в первом сообщении этой темы выводятся в файл temp.txt все настройки экрана. Из него и можно взять значения и просто перевести в 10-ричную систему.

Кстати, 2 Iska, я попробовал первый WSH скрипт сохранить в .js и запустить, выдал ошибку, что во второй строке, в 5 символе вроде, предполагается наличие ";".

Вот, на сегодня пожалуй всё, завтра обязательно продолжим, и надеюсь, что у нас всё получится, огромное всем спасибо за внимание и желание помочь, я это очень ценю, ещё раз спасибо!!
До завтра.

Отправлено: 22:03, 14-06-2012 | #30



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Вывод значений определенного ключа реестра на экран

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] как извлечь все значения определенного ключа реестра из определенной ветки baza450 Скриптовые языки администрирования Windows 6 27-12-2011 13:41
[решено] автомт-я установка ключа реестра . странNIK Автоматическая установка приложений 0 01-09-2011 16:06
Изменение или удаление ключа реестра через GPO ffsam Microsoft Windows NT/2000/2003 7 07-10-2010 10:45
как бы добавить в переменные имя ключа реестра и его значение ? mitiya Программирование и базы данных 21 23-04-2008 11:54
Доступ - Авто экспорт значения ключа из реестра Billy Bones Microsoft Windows 2000/XP 3 26-07-2007 11:50




 
Переход