Войти

Показать полную графическую версию : Вывод значений определенного ключа реестра на экран


Страниц : 1 [2]

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

Iska
14-06-2012, 03:55
0000, 0001 и т.д. - профили, соответствующие профилям локальных пользователей (насколько я разумею) »
Ответ неверный ;).

нормальную программу, работающую на всех ПК с 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 (http://msdn.microsoft.com/en-us/library/windows/desktop/aa394137(v=vs.85).aspx) и Win32_DisplayControllerConfiguration (http://msdn.microsoft.com/en-us/library/windows/desktop/aa394138(v=vs.85).aspx) — они более не поддерживаются.
Это, конечно, не готовые скрипты, генератор есть генератор, но дадут Вам возможность посмотреть, как оно работает.

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

Iska
14-06-2012, 13:59
На основании чего Вы утверждаете, что я не прав? »
Как насчёт:
Chapter 23 - Overview of the Windows NT Registry (http://technet.microsoft.com/en-us/library/cc722562.aspx)
Predefined Keys (http://msdn.microsoft.com/en-us/library/windows/desktop/ms724836(v=vs.85).aspx)
CurrentControlSet\Hardware Profiles: Core Services (http://technet.microsoft.com/en-us/library/cc739525(v=ws.10))
?!

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

Вы опробовали сгенерированные скрипты (http://forum.oszone.net/post-1933844.html#post1933844)?

VoinLuny
14-06-2012, 14:04
нет, поскольку на данный момент ухожу в универ. Вечером посмотрю.

VoinLuny
14-06-2012, 17:33
Вы, кстати, не написали, что показывает данный пакетный файл у Вас. »
1024 & 768

Foreigner
14-06-2012, 18:52
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%

VoinLuny
14-06-2012, 21:50
Foreigner, а какая у Вас ОС?

Foreigner
14-06-2012, 21:53
какая у Вас ОС? »
Win 7 HP x64

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

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

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

Iska
15-06-2012, 00:02
Iska, я попробовал первый WSH скрипт сохранить в .js »
Дайте скрипту расширение «.vbs». Опробуйте. Отпишитесь, какие данные Вам будут гожи. Тогда мы скрипты объединим, облагородим, приведём в божеский вид. Имейте в виду, что Wbem позволяет опрашивать не только локальную систему, но и удалённую (при наличии соответствующих прав на ней и разрешений).

В моём исходном коде в первом сообщении этой темы выводятся в файл temp.txt все настройки экрана. »
У меня есть большие сомнения, что мы запрашиваем данные в нужном месте.




© OSzone.net 2001-2012