Вверх ↑
Этот топик читают: Гость
Ответов: 55
Рейтинг: 1
#1: 2019-01-12 16:08:18 ЛС | профиль | цитата
Решил сделать программу для получения серийника HDD, но вот беда, DiskInfo выдаёт не тот что мне нужно.

Начал делать через WinExec.doConsoleExec но onConsoleResult срабатывает через раз
Add(Edit,12519565,161,147)
{
Left=15
Top=50
Width=330
}
Add(WinExec,7428597,98,147)
{
FileName="wmic diskdrive get serialnumber"
Point(doConsoleExec)
Point(onConsoleResult)
link(onConsoleResult,12519565:doText,[(146,167)(146,153)])
}

Редактировалось 2 раз(а), последний 2019-01-12 16:11:44
карма: 0

0
vip
#1.1контекстная реклама от партнеров
Ответов: 3887
Рейтинг: 620
#2: 2019-01-12 19:07:31 ЛС | профиль | цитата
Исполняемый файл указывается в свойстве Filename, а параметры командной строки - в Param. То-есть:
Filename=wmic.exe
Param=diskdrive get serialnumber
карма: 18

0
Ответов: 55
Рейтинг: 1
#3: 2019-01-12 21:17:10 ЛС | профиль | цитата
Netspirit писал(а):
Исполняемый файл указывается в свойстве Filename, а параметры командной строки - в Param. То-есть:
Filename=wmic.exe
Param=diskdrive get serialnumber

Без разницы, оно и так работает, но в обоих вариантах не всегда срабатывает.
Кстати не знаешь почему не могу получить значение из реестра, из HKEY_CURRENT_USER могу получить, а из HKEY_LOCAL_MACHINE не могу
карма: 0

0
Разработчик
Ответов: 25426
Рейтинг: 2070
#4: 2019-01-12 21:42:16 ЛС | профиль | цитата
Gazzi писал(а):
Кстати не знаешь почему не могу получить значение из реестра, из HKEY_CURRENT_USER могу получить, а из HKEY_LOCAL_MACHINE не могу

Для доступа к ветке HKEY_LOCAL_MACHINE необходимо иметь админские права с полностью выключенным UAC, и то, некоторым подветкам нужно персонально переназначать праваx с Trustinstaller-a админу.

Редактировалось 1 раз(а), последний 2019-01-12 21:43:25
карма: 19

0
Ответов: 55
Рейтинг: 1
#5: 2019-01-12 21:44:30 ЛС | профиль | цитата
nesco писал(а):

Для доступа к ветке HKEY_LOCAL_MACHINE необходимо иметь админские права с полностью выключенным UAC, и то, некоторым веткам нужно персонально переназначать праваx с Trustinstaller-a админу.

А как тогда можно получить путь к установленной программе, когда она не запущена?

Редактировалось 1 раз(а), последний 2019-01-12 21:45:51
карма: 0

0
Разработчик
Ответов: 25426
Рейтинг: 2070
#6: 2019-01-12 22:45:42 ЛС | профиль | цитата
Gazzi писал(а):
А как тогда можно получить путь к установленной программе, когда она не запущена?

Ну, например, с помощью того же wmic
wmic product get name,InstallLocation

Редактировалось 2 раз(а), последний 2019-01-12 22:46:27
карма: 19

0
Ответов: 4368
Рейтинг: 473
#7: 2019-01-13 07:08:56 ЛС | профиль | цитата
Кто что бы не говорил но для wmi самый удобный вариант это скрипт. Там хоть ошибки адекватно можно обходить. Но в принципе можно и так извращаться, но это полный гемор конечно...
карма: 4

0
Ответов: 3887
Рейтинг: 620
#8: 2019-01-13 15:50:53 ЛС | профиль | цитата
Gazzi писал(а):
оно и так работает, но в обоих вариантах не всегда срабатывает.
В той схеме, что ты привел? Текст в Edit не появляется? Потому что зависит от того как ты обрабатываешь событие onConsoleResult - оно происходит не сразу после doConsoleExec, а после некоторой паузы, при этом асинхронно от doConsoleExec. Нельзя просто завести onConsoleResult на Memory, взять хаб 1 выходом на doConsoleExec, а следующим пытаться прочитать Memory.

nesco писал(а):
Для доступа к ветке HKEY_LOCAL_MACHINE необходимо иметь админские права с полностью выключенным UAC
Для чтения - не требуется. Для записи - да (только программа должна быть запущена от администратора либо по "Запустить с административными правами", либо обычный запуск админом при "полностью выключенном UAC")

Редактировалось 1 раз(а), последний 2019-01-13 15:55:30
карма: 18

0
Разработчик
Ответов: 25426
Рейтинг: 2070
#9: 2019-01-13 16:54:49 ЛС | профиль | цитата
Netspirit писал(а):
Для чтения - не требуется

Это в случае, если админ не запретил чтение локальному пользователю.
карма: 19

0
Ответов: 189
Рейтинг: 5
#10: 2019-01-16 13:26:32 ЛС | профиль | цитата
Поясните пожалуйста Dism.exe можно от администратора запустить
карма: 0

0
Ответов: 3887
Рейтинг: 620
#11: 2019-01-16 13:39:04 ЛС | профиль | цитата
Можно. Метод doShellExec, Action=runas. Поведение будет зависеть от UAC.
карма: 18

0
Ответов: 55
Рейтинг: 1
#12: 2019-02-15 23:46:21 ЛС | профиль | цитата
nesco писал(а):

Для доступа к ветке HKEY_LOCAL_MACHINE необходимо иметь админские права с полностью выключенным UAC, и то, некоторым подветкам нужно персонально переназначать праваx с Trustinstaller-a админу.


Начал читать про манифест и вот что было написано
Отрывок
Если вся секция по взаимодействию с UAC отсутствует в манифесте, к приложению будет применена виртуализация файловой системы и реестра. Если такое приложение попытается записать что то в защищенные папки типа «Program files», оно будет перенаправлено в папку “%userprofile%\AppData\Local\VirtualStore\Program files". Аналогично, попытки записи в раздел реестра HKEY_LOCAL_MACHINE будут перенаправлены в «HKEY_CURRENT_USER\Software\Classes\VirtualStore\MACHINE». Естественно, сделанные таким образом изменения будут видны только приложениям, запущенным в режиме виртуализации.
карма: 0

0
Ответов: 3
Рейтинг: 1
#13: 2019-02-17 04:18:44 ЛС | профиль | цитата
у меня вот по теме работает нормально
может у вас win10 какая-то Домашняя для одного языка?
были случаи что в ней не работало нормально разное и всё решалось установкой Pro...
какие-то компоненты чтоли кривые...не стал разбираться
карма: 0

0
13
Сообщение
...
Прикрепленные файлы
(файлы не залиты)