|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
07.11.2010, 08:37 | #1 |
Новичок
Джуниор
Регистрация: 07.11.2010
Сообщений: 3
|
странно работает RegSetValueEx
Всем привет. Столкнулся с такой проблемой: данный кусок кода заносит значение не в HKEY_LOCAL_MACHINE\SOFTWARE\Microso ft\Windows\CurrentVersion\Run а в HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432 Node\Microsoft\Windows\CurrentVersi on\Run. В чём проблема? Если кто то уже подымал похожий вопрос - киньте ссылку.
//------------------------------------- HKEY hK; LPTSTR Op=L"SOFTWARE\\Microsoft\\Windows\\ CurrentVersion\\Run"; LPTSTR KeyV=L"C:\\Windows\\key.exe"; LPTSTR KeyN=L"DimKey"; if(RegOpenKeyEx(HKEY_LOCAL_MACHINE, Op, NULL, KEY_SET_VALUE ,&hK)!=ERROR_SUCCESS) MessageBox(NULL,L"FAIL1",L"key",NUL L); if(RegSetValueEx(hK, KeyN, NULL,REG_SZ,(LPBYTE)KeyV,(DWORD)(ls trlen(KeyV)+1)*sizeof(TCHAR))!=ERRO R_SUCCESS) MessageBox(NULL,L"FAIL2",L"key",NUL L); if(RegCloseKey(hK)!=ERROR_SUCCESS) MessageBox(NULL,L"FAIL4",L"key",NUL L); \\--------------------------------------- Всё проходит без ошибок, сообщения не выскакивают, но вот значение пишет не туда... Последний раз редактировалось di91; 07.11.2010 в 08:40. |
07.11.2010, 11:44 | #2 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
http://www.transl-gunsmoker.ru/2010/10/64.html
http://msdn.microsoft.com/en-us/libr...72(VS.85).aspx http://support.microsoft.com/kb/256986/ru http://blog.not-a-kernel-guy.com/2007/05/07/181 http://blog.not-a-kernel-guy.com/2009/06/09/571 http://blog.not-a-kernel-guy.com/2009/12/08/703 (подсказка: то, что используется Wow6432Node вам должно быть по барабану. Вы пишите в SOFTWARE\Microsoft\Windows\CurrentV ersion\Run. Вы видите его как SOFTWARE\Microsoft\Windows\CurrentV ersion\Run. Он работает как SOFTWARE\Microsoft\Windows\CurrentV ersion\Run. Вывод? Он и есть SOFTWARE\Microsoft\Windows\CurrentV ersion\Run. По-крайней мере, для вашей программы)
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
Последний раз редактировалось GunSmoker; 07.11.2010 в 11:55. |
07.11.2010, 12:00 | #3 |
Новичок
Джуниор
Регистрация: 07.11.2010
Сообщений: 3
|
но почему значение прописывается в Wow6432Node? Что за самодеятельность? Ведь в коде SOFTWARE\\Microsoft\\Windows\\ CurrentVersion\\Run!
|
07.11.2010, 12:07 | #4 |
Новичок
Джуниор
Регистрация: 07.11.2010
Сообщений: 3
|
Всё, спасибо, нашёл, надо использовать KEY_WOW64_64KEY.
Так всё ок: RegOpenKeyEx(HKEY_LOCAL_MACHINE, Op, NULL, KEY_SET_VALUE|KEY_WOW64_64KEY ,&hK) |
07.11.2010, 15:27 | #5 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
Ещё раз вдумчиво почитайте по ссылкам и особенно - подсказку.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Странно записанные переменные | ImmortalAlexSan | Общие вопросы Delphi | 5 | 15.03.2010 17:54 |
Странно ..... | HellMercenariess | О форуме и сайтах клуба | 1 | 07.08.2009 12:55 |
Странно работает эзешник на другом компьютере runtimeLibrary(Multi-threaded (/MT) | LostSoul | Общие вопросы C/C++ | 11 | 20.04.2009 23:25 |
Странно | Viteef | Свободное общение | 10 | 03.07.2007 03:28 |
Помогите, очень странно... | nonono | Общие вопросы Delphi | 3 | 23.05.2007 23:39 |