![]() |
Вывод значений определенного ключа реестра на экран
Дорогие форумчане!
Снова взываю к вашей помощи! Нужен батник который покажет текущее разрешение в десятеричной системе. Благодаря многоуважаемому Iska я сумел перейти в нужную ветку http://forum.oszone.net/thread-235369.html Код:
@echo off |
VoinLuny, быть может, будет вариант проще. Что это такое (каков физический смысл):
Цитата:
|
Код:
wmic desktopmonitor get screenheight, screenwidth |
Iska, потому что на мой взгляд это наиболее универсальный источник подобной информации. Предложите другой вариант, если он у Вас есть, и если он будет проще - я им с удовольствием воспользуюсь, хотя, говоря по правде, хотелось бы уже завершить данным методом.
|
|
Iska, что Вы подразумеваете под физическим смыслом? Для чего вообще всё это надо?
:offtopic: Поясню: В универе дали задание по предмету УИРС(Учебно-исследовательская работа студента) заделать такую программу, которая будет выводить на экран информацию о графических настройках: Расширение, глубина и т.д.... При этом реализация на любом языке программирования но без применения сторонних библиотек. Поскольку я человек далекий от программирования, но имевший некий опыт общения с .bat и примерно представлявший себе, что это такое - я решил именно посредством .bat файла и реализовать данное задание. Источником, по объективным причинам, я выбрал реестр, как источник наиболее полной и точной информации обо всем, что только можно захотеть узнать о данном компьютере. Вот вам суть. Смысл всех моих извращений, так сказать. Искренне надеюсь на вашу помощь. Метод предложенный RostVY, безусловно действенен, но мне кажется, что преподавателя смутит программа из 2 строчек кода, хотелось бы добить уже методом, который я выбрал изначально. |
если 2 строчки вас смущают и "реализация на любом языке программирования", могу предложить на Delphi на больше строчек
Код:
program scr; |
RostVY, Благодарю, это хорший вариант, НО
я помимо того, что хочу выполнить задание - хочу и понять для себя, как это делать. Это опыт. Просто поскольку я новичок, мне нужна помощь. У Вас нет идей, как бы добить вариант с батником? Вариант с дельфи я оставлю, на крайний случай, спасибо! :) |
VoinLuny,
Код:
@echo off |
Цитата:
Цитата:
Код:
wmic.exe DesktopMonitor get /value |
Foreigner, Iska, я вполне четко изложил то, что мне необходимо. ПОЖАЛУЙСТА, помогите мне реализовать мой метод. Там ведь осталось совсем немного...мне просто нужна подсказка. Как вывести на экран значение ключа реестра? wmic это хорошо, но мы не ищем легких путей :)
|
Код:
@echo off |
Iska, Вы как преподаватель по физике :)
Я, по правде говоря, не понимаю, что Вы хотите услышать :) Что определяют эти параметры? Что меняется при их изменении? Словосочетание физический смысл применимо к разрешению экрана для меня как производная от супа :) |
Цитата:
|
Что разрешение экрана - величина показывающая какое количество точек растрового изображения (пикселей) умещается на единицу площади (в некоторых случаях длины) данного устройства отображения. (Википедия)
А чем всё-таки был вызван данный вопрос? Преподавателя в первую очередь интересует, чтобы информация, которую он хочет получить, отображалась и отображалась корректно. Ему не интересно спрашивать каждого, кто принес ему такую программу, что такое разрешение. Это несколько не его предмет :) |
Цитата:
Вы, кстати, не написали, что показывает данный пакетный файл у Вас. |
Iska, Ну с учетом конфигурации моего компьютера - это всё же моё текущее разрешение должно отображаться. Данная программа пока не запускалась на тестовой машине, поэтому дать её вывод пока не могу (сейчас пишу с другого компьютера). Я думаю Вы прекрасно понимаете, что на каждом компьютере свой реестр и не существует двух идентичных. Я пишу программу сейчас под свой нетбук, чтобы на нем показать работоспособную программу преподавателю. Чтобы написать универсальную программу - нужно больше сил и времени - сейчас несколько не до того.
|
Не должно быть никакой разницы, с какой машины запускать пакетный файл. Сие на конечный результат не должно влиять. Иначе получается не программа, а вывод единственного, заранее известного, результата.
Так что, не стесняйтесь, запускайте на той машине, на которой сидите сейчас, выкладывайте, что получилось, и попробуйте объяснить полученный результат. |
Iska, а всё просто. На этой машине она не работает, по той причине, что разделы реестра называются по разному и в программе указаны разделы для реестра нетбука. Например тот самый проблемный раздел из прошлой нашей с Вами темы, который начинается с { он всегда разный и их может быть несколько. Может быть не только 0000 но и 0001 и т.д....для того, чтобы Ваш код заработал на моем текущем компьютере, его нужно преобразовывать. Например
Код:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles\0001\System\CurrentControlSet\Control\VIDEO |
VoinLuny, ну, так я свою речь веду как раз о том. Нужно определить, почему на одной машине «0000», на другой «0001» и что-нибудь ещё — на третьей. Определить, какие значения подразделов могут быть. Научиться выбирать среди них правильный. Тогда получится программа. А так… :wild:
|
Iska, У меня есть ответы на Ваши вопросы :)
0000, 0001 и т.д. - профили, соответствующие профилям локальных пользователей (насколько я разумею) Разделы {абракадабра} - это если я ничего не путаю, идентификаторы оборудования, которое используется (в данном случае видеокарты). В принципе, чтобы не мучиться с выбором из 0000 и т.д. можно попробовать пролезть через HKCU поскольку там загружена конфигурация текущего пользователя и соответственно его id там должен отображаться, но его там нет... В общем можно будет над этим всем подумать, и если Вы мне поможете сделать нормальную программу, работающую на всех ПК с Win7 будет очень здорово и я буду очень благодарен. Но это завтра. Доброй ночи! |
Цитата:
Цитата:
Вот Вам навскидку скрипты WSH, сгенерированные посредством «WMI Code Creator»: Это, конечно, не готовые скрипты, генератор есть генератор, но дадут Вам возможность посмотреть, как оно работает. |
Iska,
Цитата:
Цитата:
|
Цитата:
Chapter 23 - Overview of the Windows NT Registry Predefined Keys CurrentControlSet\Hardware Profiles: Core Services ?! Цитата:
Вы опробовали сгенерированные скрипты? |
нет, поскольку на данный момент ухожу в универ. Вечером посмотрю.
|
Цитата:
|
VoinLuny
Цитата:
Код:
> reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles\0001\System\CurrentControlSet\Control\VIDEO" /s Батник может выглядеть так ( на тестовом ключе ) Код:
@echo off |
Foreigner, а какая у Вас ОС?
|
Цитата:
|
странно...мне казалось, что я не плохо знаю структуру реестра...надо будет ещё раз пересмотреть материал. Но боюсь, что сегодня не смогу этим заняться, времени к сожалению не много. Думаю завтра вечером смогу уже точно определить какой именно раздел реестра хранит параметры экрана текущего пользователя (в HKCU не нашел пока, я знаю, что всё про текущего юзера там дублируется.) и тогда можно будет вести работу в этом направлении. А пока у меня есть временное решение, тупо для того, чтобы сдать преподу, если мы к контрольному сроку ничего не надумаем:
В моём исходном коде в первом сообщении этой темы выводятся в файл temp.txt все настройки экрана. Из него и можно взять значения и просто перевести в 10-ричную систему. Кстати, 2 Iska, я попробовал первый WSH скрипт сохранить в .js и запустить, выдал ошибку, что во второй строке, в 5 символе вроде, предполагается наличие ";". Вот, на сегодня пожалуй всё, завтра обязательно продолжим, и надеюсь, что у нас всё получится, огромное всем спасибо за внимание и желание помочь, я это очень ценю, ещё раз спасибо!! :clapping: До завтра. |
Цитата:
Цитата:
|
Время: 17:06. |
Время: 17:06.
© OSzone.net 2001-