PDA

View Full Version : درخواست کمک فوری : مشکل با WriteExpandString



BORHAN TEC
شنبه 14 شهریور 1388, 11:46 صبح
سوال: کلاس TRegistry متدی به نام WriteExpandedString دارد. زمانی که از این متد استفاده می کنم تا ولیو (Default) مربوط به یک کلید را در رجیستری تغییر دهم با پیغام خطا مواجه می شوم. برای رفع این مشکل باید چه کنم؟ :متفکر: :ناراحت::عصبانی++::گریه:

BORHAN TEC
شنبه 14 شهریور 1388, 17:55 عصر
یعنی کسی نیست که جواب بده ؟

vcldeveloper
شنبه 14 شهریور 1388, 18:14 عصر
Default بصورت string هست، نه ExpandedText. حالا، خطا چی هست؟

BORHAN TEC
یک شنبه 15 شهریور 1388, 19:59 عصر
با عرض سلام خدمت آقای کشاورز
بر خلاف قسمت های دیگر رجیستری که default از نوع string است در قسمتی که من روی آن می خواهم کار کنم default از نوع ExpandedString است یعنی مسیر زیر:

HKLM\SOFTWARE\Classes\txtfile\shell\open\command

در ضمن برنامه من error زیر را می دهد:

Project UsbSecurity.exe raised exception class ERegistryException with message 'Failed to set data for '(Default)''.

BORHAN TEC
دوشنبه 16 شهریور 1388, 17:57 عصر
در ضمن من از ویندوز ایکس پی استفاده می کنم!

BORHAN TEC
چهارشنبه 18 شهریور 1388, 15:48 عصر
آقا بالاخره مشکلم حل شد . مشکل از اینجا بود که برای تغییر ولیوی Default باید به این تابع یک رشته خالی می فرستادم نه 'Default' مانند کد زیر:




...
Var RegObj : TRegistry;
...
Begin
RegObj := TRegistry.Create;
RegObj.RootKey := HKEY_LOCAL_MACHINE;
RegObj.OpenKey('SOFTWARE\Classes\txtfile\shell\ope n\command' , True);
RegObj.WriteExpandString('','%SystemRoot%\system32 \NOTEPAD.EXE %1');
RegObj.Free;
end;