Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> проблемы записи с регистр, создание ключа 
:(
    Опции темы
DESert
Дата 17.6.2006, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 102
Регистрация: 6.12.2005
Где: Москва

Репутация: нет
Всего: 1



Есть такой код, в котором я пытаюсь создать ключ в реестре. Путь этого ключа 
HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Extensions\<GUID>
Код

    CString strGUID; 
    strGUID = GUIDgen(); //получаю GIUD
    CString strPath= "\\Software\\Microsoft\\Internet Explorer\\Extensions\\";
    strPath+=strGUID;
    
    HKEY hkOpisatel;    
    LONG lRes = RegCreateKeyEx(HKEY_LOCAL_MACHINE,strPath,NULL,NULL,   REG_OPTION_NON_VOLATILE, KEY_CREATE_SUB_KEY,NULL,&hkOpisatel,NULL);
    RegCloseKey (hkOpisatel);    


//функция GIUDgen
CString GUIDgen()
{
    GUID guid;
    CoCreateGuid(&guid);
    BYTE * str;
    UuidToString((UUID*)&guid, &str);
 
    CString unique((LPTSTR)str);
    CString unique2 = "{";
    unique2+=unique;
    unique2+="}";
    RpcStringFree(&str);
    return unique2;


но, конечно же ничего не создаётся smile
что я делаю неправильно?
 
--------------------
Трудись, и будешь счастлив ты!
PM MAIL ICQ   Вверх
0x07L
Дата 17.6.2006, 17:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 10.6.2006
Где: Москва

Репутация: 4
Всего: 5



Наверное я неправ, но, может быть

Код
CString strPath= "Software\\Microsoft\\Internet Explorer\\Extensions";
  

Это сообщение отредактировал(а) 0x07L - 17.6.2006, 17:16
PM MAIL   Вверх
DESert
Дата 17.6.2006, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 102
Регистрация: 6.12.2005
Где: Москва

Репутация: нет
Всего: 1



0x07L, всё равно не получается smile 
--------------------
Трудись, и будешь счастлив ты!
PM MAIL ICQ   Вверх
0x07L
Дата 17.6.2006, 19:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 10.6.2006
Где: Москва

Репутация: 4
Всего: 5



Тьфу ты блин. Торопился, поэтому не заметил 
Цитата(DESert @  17.6.2006,  16:16 Найти цитируемый пост)
strPath+=strGUID;

Тогда, наверное, 
Цитата(DESert @  17.6.2006,  16:16 Найти цитируемый пост)
CString strPath= "Software\\Microsoft\\Internet Explorer\\Extensions\\";

Больше ничего нехорошего в твоем коде не вижу.
 
PM MAIL   Вверх
DESert
Дата 17.6.2006, 19:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 102
Регистрация: 6.12.2005
Где: Москва

Репутация: нет
Всего: 1




Я разобрался, теперь раздел создаётся. Теперь я пытаюсь создать там новые переменные:
Код

         CString strPath= "Software\\Microsoft\\Internet Explorer\\Extensions\\";
    strPath+=strGUID;
    CString strButton = "Button Text";
    CString strButtonText = "AdSearch";
    CString strHotIcon="HotIcon";
    CString strIcon = "Icon";
    
    HKEY hkOpisatel;    
    LONG lRes = RegCreateKeyEx(HKEY_LOCAL_MACHINE,strPath,/**/NULL,NULL,REG_OPTION_NON_VOLATILE,
        KEY_CREATE_SUB_KEY,/**/NULL,&hkOpisatel,NULL);
    
    
    
    CString strRazdel   = "HKEY_LOCAL_MACHINE\\";    
    CString strCLSID = "CLSID";
    CString strCLSIDvalue = "{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}";
    CString strHotIconvalue = "C:\\Dev-Cpp\\Icons\\Book.ico";
    CString strIconvalue = "C:\\Dev-Cpp\\Icons\\Console.ico";
    CString strExec = "Exec";
    CString strExecvalue = "D:\\Release\\RooTT.exe";

    CWinApp* pApp = AfxGetApp();    
    
    strRazdel +=strPath; 
    pApp->WriteProfileString(strRazdel, strButton, "AdSearch");    
    pApp->WriteProfileString(strRazdel, strHotIcon, strHotIconvalue);
    pApp->WriteProfileString(strRazdel, strIcon, strIconvalue);
    pApp->WriteProfileString(strRazdel, strCLSID, strCLSIDvalue);
    pApp->WriteProfileString(strRazdel, strExec, strExecvalue);
      
        RegCloseKey (hkOpisatel);


Но опять не хочет ничего делать smile

P.S. 0x07L, по-моему ты всё таки был прав smile
 
--------------------
Трудись, и будешь счастлив ты!
PM MAIL ICQ   Вверх
0x07L
Дата 17.6.2006, 19:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 10.6.2006
Где: Москва

Репутация: 4
Всего: 5



Странно, но такой код работает

Код

#include <windows.h>
#include <tchar.h>

int APIENTRY _tWinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR szCmdLine, int CmdShow)
{
    HKEY hkOpisatel;
    LPTSTR strPath = _TEXT("Software\\Microsoft\\Internet Explorer\\Extensions\\{GUID}");
    LONG lRes = RegCreateKeyExW (HKEY_LOCAL_MACHINE, strPath, 0, 0, REG_OPTION_NON_VOLATILE, KEY_CREATE_SUB_KEY, 0, &hkOpisatel, 0);
}
 
PM MAIL   Вверх
DESert
Дата 17.6.2006, 21:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 102
Регистрация: 6.12.2005
Где: Москва

Репутация: нет
Всего: 1



Цитата

#include <windows.h>
#include <tchar.h>

int APIENTRY _tWinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR szCmdLine, int CmdShow)
{
    HKEY hkOpisatel;
    LPTSTR strPath = _TEXT("Software\\Microsoft\\Internet Explorer\\Extensions\\{GUID}");
    LONG lRes = RegCreateKeyExW (HKEY_LOCAL_MACHINE, strPath, 0, 0, REG_OPTION_NON_VOLATILE, KEY_CREATE_SUB_KEY, 0, &hkOpisatel, 0);
}

0x07L, у меня это не работает smile

Добавлено @ 21:33 
работает с RegCreateKeyEx...
т.е. папку создаёт там ключ, а в этой папке я хочу создать еще несколько String Value 
--------------------
Трудись, и будешь счастлив ты!
PM MAIL ICQ   Вверх
0x07L
Дата 18.6.2006, 07:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 10.6.2006
Где: Москва

Репутация: 4
Всего: 5



Тьфу ты черт. Что у меня вчера было с головой? Правильно, что убрал W.
Но почему не работает с CString. Дебагером смотрел? Может, мусор какой-нибудь туда записывается (все может быть)?
А добавить в созданный ключ параметр можно так:
Код

int APIENTRY _tWinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR szCmdLine, int CmdShow)
{
    HKEY hkOpisatel;

    LPTSTR strPath = _TEXT("Software\\Microsoft\\Internet Explorer\\Extensions\\{GUID}");
    RegCreateKeyEx (HKEY_LOCAL_MACHINE, strPath, 0, 0, REG_OPTION_NON_VOLATILE, KEY_CREATE_SUB_KEY | KEY_SET_VALUE, 0, &hkOpisatel, 0);
    
    LPTSTR strValue = _TEXT("String Value");
    RegSetValueEx (
        hkOpisatel, _TEXT("String Parameter"), 0, REG_SZ,
        reinterpret_cast<LPBYTE>(strValue),
        static_cast<DWORD>(_tcslen(strValue))*sizeof(TCHAR)+1);
    RegCloseKey (hkOpisatel);
}
  

Это сообщение отредактировал(а) 0x07L - 18.6.2006, 09:27
PM MAIL   Вверх
DESert
Дата 19.6.2006, 22:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 102
Регистрация: 6.12.2005
Где: Москва

Репутация: нет
Всего: 1



0x07L, спасибо smile 
--------------------
Трудись, и будешь счастлив ты!
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0898 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.