Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Старожил


Сообщения: 163
Благодарности: 0

Профиль | Отправить PM | Цитировать


Я подмажусь с вашего позволения . У меня этот код работает только под Win98-WinMe в win2000 уже не работает, хотя данные в реестр заносит, и они там правильные
Код: Выделить весь код
 
DWORD dwDisposition,dwType=REG_DWORD; 
LPBYTE lpData; 
DWORD *cbData=NULL; 
DWORD *xExtensionSet=0xFFFFF; 
HKEY hNewKey; 
 
 LPDWORD lpdwData; 
 lpdwData=(DWORD*)GlobalAlloc(GPTR,sizeof(DWORD)); 
 *lpdwData=xExtensionSet; 
 lpData=(BYTE*)lpdwData; 
 
try{ 
::RegCreateKeyEx(HKEY_CURRENT_USER, 
"Software\\Flash-Tmp-Eraser", 
0, 
"", 
REG_OPTION_NON_VOLATILE, 
KEY_WRITE, 
NULL, 
&hNewKey, 
&dwDisposition); 
 
 
 if(dwDisposition==REG_CREATED_NEW_KEY){ 
 ::RegSetValueEx(hNewKey, *// handle of key to set value for 
 "Extension", *// address of value to set 
 0, *// reserved 
 REG_DWORD, *// flag for value type 
 lpData, *// address of value data 
 sizeof(DWORD) *// size of value data 
 ); 
 } 
 cbData=sizeof(DWORD); 
if (dwDisposition==REG_OPENED_EXISTING_KEY){ 
::RegQueryValueEx(hNewKey, 
"Extension", 
0, 
&dwType, 
lpData, 
&cbData); 
} 
::RegCloseKey(hNewKey); 
} 
catch(CException *e) 
{ 
MessageBox("Error"); 
e->Delete(); 
} 
......... 
GlobalFree(lpData);
возвращает всегда то число, которое было, т.е. никогда его не меняет

-------
"Сколь бы сложной ни казалась проблема на первый взгляд, она, если правильно к ней подойти, окажется еще более сложной" - Пол Андерсон


Отправлено: 22:07, 17-06-2003 | #3