Страница 57 из 243
Добавлено: Ср фев 13, 2013 12:16
Loopback
Flasher писал(а):Файл wdx отличается от предыдущего.
Ну я на всякий случай перекомпилировал, вроде там что-то правил по-мелочам.
Flasher писал(а):Я думал, что справка будет пообширней в плане разъяснений. Ну, да ладно.
Так для этого и выложил до релиза. Что непонятно, что можно добавить?
Flasher писал(а):Добавь, пож-та, данные по процессору (производитель, ширина шины данных и т.д.).
По-моему, винда такую информацию не выдает. А с нестандартными способами получения нет времени и желания разбираться. Если готовый код найдется - можно в плагин добавить.
Добавлено: Чт фев 14, 2013 02:37
Flasher
Loopback писал(а):Что непонятно, что можно добавить?
Добавить стоит примеры для каждого случая. Для каждой команды SysInfo лучше не менее 2-ух.
Loopback писал(а):По-моему, винда такую информацию не выдает.
WMI даёт. select * from CIM_Processor / Win32_Processor
Кое-что можно
отсюда взять.
Добавлено: Чт фев 14, 2013 09:23
MVV
Может, проще сразу добавить одну функцию, запихивающую вывод WMI-запроса в переменную окружения, если мы кучу данных берем оттуда?
Добавлено: Чт фев 14, 2013 10:38
Loopback
Flasher писал(а):Добавить стоит примеры для каждого случая.
Ок, примеры это понятно. Еще что-нибудь?
Flasher писал(а):WMI даёт.
WMI - это уже не WinAPI. По cpuid посмотрю, но может быть не сейчас.
MVV писал(а):Может, проще сразу добавить одну функцию, запихивающую вывод WMI-запроса в переменную окружения, если мы кучу данных берем оттуда?
Не уверен, что более-менее приемлемую работу с WMI вообще можно организовать в языке, не имеющем ООП-синтаксиса. Результат запроса может быть объектом со своим набором свойств, их получать как-то надо. Запросы могут возвращать коллекции - как с ними тут работать? Ну и наконец, чтобы получить некоторые данные, одним запросом не обойтись.
Добавлено: Пт фев 15, 2013 09:43
KopBuH
Loopback:
есть один вопрос. ты можешь написать небольшую консольную утилиту, которая меняет значение переменных, только в среде уже запущенного ТС?
Добавлено: Пт фев 15, 2013 09:48
jentoso
KopBuH, а чем не подходит команда Set?
Добавлено: Пт фев 15, 2013 09:57
KopBuH
какая Set?. Set это для работы внутри скрипта.
а я про
меняет значение переменных, только в среде уже запущенного ТС
есть одна подобная утилита, setenv.exe, но она меняет переменные среды сразу для всех программ, и не работает в PE, а мне нужно только для TC, и уже созданные.
Добавлено: Пт фев 15, 2013 10:12
jentoso
KopBuH, а плагин
Environment Variables Ex 1.0 не подойдет?
Добавлено: Пт фев 15, 2013 10:56
KopBuH
не подойдет. плагин хороший, но в нем нужно править переменную ручками, а мне нужно через консоль. то есть внешняя утилита.
Добавлено спустя 10 минут:
или скрипт VBS, если он конечно такое умеет.
Добавлено спустя 12 минут:
нашел!!))
да не сочтут меня изменником, но нашел эту утилиту в плагинах к FAR:
http://plugring.farmanager.com/plugin.php?pid=762
Добавлено спустя 15 минут:
рано обрадовался. синтаксис у нее не очень удобен, однако.
там значение переменной установливается в начале строки, и только потом задается нужный процесс. а это значит, что придется теперь еще юзать программы вроде AskParam. а поскольку я не смог передать в нее чтобы задать PID тотала, то нужно запускать её через cmd. а это значит, чтобы поменять одну переменную нужно запустить целых 3 программы. к тому же она не может изменять переменные 64-битных приложений (отказано в доступе)
Loopback, или все же можно сделать такую утилитку, только для ТС, если это не очень трудно?
типо такой: SetTCEnv.exe "переменная" "значение переменной"
Добавлено: Вс фев 17, 2013 14:03
KopBuH
вопрос насчет проверки прав администратора в Windows Vista и выше:
плагин указывает, что командер запущен от администратора. но на самом деле, если включен UAC - то права ограничены.
пока сделал такое решение:
(некоторые строки из конфига опущены)
Код: Выделить всё
# Начало конфига:
IniWrite /EV "%SystemRoot%\Admin.ini" "TechAdmin" "Admin" "1"
# Середина конфига:
# Проверка наличия прав Администратора
IniRead COMMANDER_ISADMIN "%SystemRoot%\Admin.ini" "TechAdmin" "Admin" "0"
If (COMMANDER_OSVER = XP) AND (%AUTORUN_ISADMIN% = 1) Then
SetEnv /EV COMMANDER_ASADMIN "Admin"
ElseIf (COMMANDER_OSVER <> XP) AND (%AUTORUN_ISADMIN% = 1) AND (%COMMANDER_ISADMIN% = 1) Then
SetEnv /EV COMMANDER_ASADMIN "Admin"
IniWrite /EV "%SystemRoot%\Admin.ini" "TechAdmin" "Admin" "0"
Else
SetEnv /EV COMMANDER_ASADMIN "User"
EndIf
получилось что-то вроде костылей для проверки реальных прав администратора, но вроде работает.
вопрос к
Loopback: не хотите улучшить плагин, и ввести что-то вроде такой проверки привилегий прав ТС при включенном UAC?
Добавлено: Вс фев 17, 2013 14:16
MVV
Вот кстати да, проверка на привилегии была бы полезнее просто проверки на администратора, т.к. с UAC администраторы всё равно обычно запускают программы без привилегий.
Добавлено: Вс фев 17, 2013 16:05
KopBuH
Кажется, в Process Hacker этот столбик называется Integrity, там есть Low, Medium, High, и System.
неплохо было просто получить одно из этих значений. а там уже и сами бы разобрались.
например, High - это права Админа. Medium - это админ, но ограниченный.
Low - обычный пользователь, System - система.
Добавлено: Пн фев 18, 2013 12:44
Loopback
KopBuH писал(а):или все же можно сделать такую утилитку, только для ТС, если это не очень трудно?
Не столько трудно, сколько долго, а времени нет. Только если подправить то, что есть, благо исходники доступны.
Но вообще ты пробовал ее работоспособность? Что-то я сомневаюсь, что она будет работать без административных прав.
Насчет привилегий согласен, что-нибудь можно будет сделать.
Добавлено: Пн фев 18, 2013 16:40
MVV
Если права аналогичные (например, если это дочерний тоталу процесс), то можно менять переменные - банальным внедрением в процесс.
Добавлено: Пн фев 18, 2013 18:13
KopBuH
Loopback писал(а):
Но вообще ты пробовал ее работоспособность? Что-то я сомневаюсь, что она будет работать без административных прав.
Насчет привилегий согласен, что-нибудь можно будет сделать.
на 32 битных приложениях вроде работает. насчет прав проверю.
просто её прелесть в том, что она может менять переменные для определенного процесса. а например старый SetEnv, которым я пользуюсь сейчас - только для среды всех процессов. а это не есть хорошо, особенно если переменная содержит пароль. (а так и есть)