![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
redman1986 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 19.3.2008 Репутация: нет Всего: нет |
Добрый день... помогите пожалуйста разобраться с работой класса StdRegProv и в частности запустить метод EnumKey для того чтобы считать из реестра список программного обеспечения....
![]() ![]() |
|||
|
||||
Rififi |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1254 Регистрация: 9.3.2008 Репутация: 2 Всего: 36 |
интересно, а зачем может понадобится StdRegProv не из скрипта? Reg* намного удобнее...
вот кусок моего древнего кода, для C++ делай по-аналогии
|
|||
|
||||
redman1986 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 19.3.2008 Репутация: нет Всего: нет |
Rififi спасибо тебе конечно за код.... он впринципе мало чем отличается от скриптового.... вот поидее как правильно надо делать.....
Я конешно опустил некоторые моменты ( инициализацию COM, подсоединение к WMI).... Смысл моего вопроса заключается в том что я немогу никак докопаться до истины :dash1 что же должно быть на месте varCommand.vt в связке varCommand.vt = VT_ARRAY | VT_UNKNOWN;//!!!!!!!!! varCommand.parray = mystr ;//!!!!!!!!! чтобы varCommand был аналогичен uint32 EnumKey( uint32 hDefKey, string sSubKeyName, string sNames[] ); -----> string sNames[] и чтобы hres = pClassInstance->Put(L"sNames", 0, &varCommand, 0);!!!!!!!! возвращал S_OK.... помогите плиз... уже сил нет :dash1 |
|||
|
||||
Rififi |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1254 Регистрация: 9.3.2008 Репутация: 2 Всего: 36 |
redman1986,
sNames - это out-параметр соответственно ищи его в возвращаемом IWbemClassObject через Get. И будет это, скорее всего, VT_ARRAY | VT_VARIANT (в которых, на самом деле, BSTR), ибо vbscript кроме как с вариантом ни с чем работать не умеет. |
|||
|
||||
redman1986 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 19.3.2008 Репутация: нет Всего: нет |
Rififi спасибо за подсказку....
но получается так что при вызове метода Get -> hres = S_OK, vtProp = null, uRetrun = 32 как ето объяснить???? помоги плиз на тебя одна надежда... ![]() |
|||
|
||||
Rififi |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1254 Регистрация: 9.3.2008 Репутация: 2 Всего: 36 |
я посмотрю сегодня, может что и удастся нарыть.
но ничего не обещаю, т.к. на c++ с stdregprov не работал. |
|||
|
||||
Rififi |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1254 Регистрация: 9.3.2008 Репутация: 2 Всего: 36 |
ну собстна, вот, посмотрел...
всё практически то же самое, только с учётом особенностей C++ и COM замечания: 1. код без проверок на ошибки 2. комментариев нет (но думаю, они и не потребуются, ибо комментировать особо нечего). 3. все инклуды остались в stdafx.h 4. я пользуюсь ms-com/bstr-обертками для уменьшения энтропии (весь этот гемор с BSTR/VARIANT и "голыми" указателями мне нафик не упал). 5. проверено на vs2008
|
|||
|
||||
redman1986 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 19.3.2008 Репутация: нет Всего: нет |
Rififi спасибо... помогло...
![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |