View Full Version : درخواست کمک فوری : مشکل با WriteExpandString
شاهین عشایری
شنبه 14 شهریور 1388, 12:16 عصر
سوال: کلاس TRegistry متدی به نام WriteExpandedString دارد. زمانی که از این متد استفاده می کنم تا ولیو (Default) مربوط به یک کلید را در رجیستری تغییر دهم با پیغام خطا مواجه می شوم. برای رفع این مشکل باید چه کنم؟ :متفکر: :ناراحت::عصبانی++::گریه:
شاهین عشایری
شنبه 14 شهریور 1388, 18:25 عصر
یعنی کسی نیست که جواب بده ؟
علی کشاورز
شنبه 14 شهریور 1388, 18:44 عصر
Default بصورت string هست، نه ExpandedText. حالا، خطا چی هست؟
شاهین عشایری
یک شنبه 15 شهریور 1388, 20:29 عصر
با عرض سلام خدمت آقای کشاورز
بر خلاف قسمت های دیگر رجیستری که 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)''.
شاهین عشایری
دوشنبه 16 شهریور 1388, 18:27 عصر
در ضمن من از ویندوز ایکس پی استفاده می کنم!
شاهین عشایری
چهارشنبه 18 شهریور 1388, 16:18 عصر
آقا بالاخره مشکلم حل شد . مشکل از اینجا بود که برای تغییر ولیوی 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;
vBulletin® v4.0.8, Copyright ©2000-1390, Jelsoft Enterprises Ltd.