22-10-2014, 06:08 PM
B.M.AbdelAziZ كتب :تثبيت البرنامج يكون بمجلد Adan_Alpha ومن الاحسن ان يكون بالاسم الجديد mawakittبخصوص تعدد النوافذ فليست بالمشكلة اعلم بذلك الحل بسيط ShowModal
وهنا كان من الاحسن استخدام اسم اخر لانه يوجد برنامج اخرى تسمى Mawakit
عند أول تنفيذ تظهر الرسالة:
هل تريد اضافة البرنامج الى برامج بدأ التشغيل
اجيب بعدم الموافقة، لكن الرسالة تتكرر كل مرة انفذ البرنامج ! مع ذلك عند اعادة تشغيل الجهاز ينفد البرنامج تلقائيا وتعود الرسالة للظهور !
عند النقر على زر حالة الطقس تظهر نافذة وعند النقر عليه اكثر من مرة تظهر اكثر من نافذة!
اما مشكلة الرجستري فتمت معالجتها
اما اسم البرنامج فهي اخر شيء افكر فيه !! هل من اسم مقترح ؟
PHP كود :
unit UnitRegistry;
//outhor : onexite
interface
uses ShlObj, SysUtils, Windows,DSiWin32;
function TimeFormatWriteRegistry():Boolean;
function TimeFormatReadRegistry(title:string):string;
function StartupDeleteRegistryValue(Title: string):Boolean;
function StartupReadRegistry(title:string):string ;
function StartupRegistryValueExists(title:string):Boolean;
function StartupWriteRegistry(Title,ExeName:string):Boolean;
function RegisterFileType(cMyExt, cMyFileType, cMyDescription, ExeName: string; IcoIndex: integer; DoUpdate: boolean = false):Boolean;
implementation
function RegisterFileType(cMyExt, cMyFileType, cMyDescription, ExeName: string; IcoIndex: integer; DoUpdate: boolean = false):Boolean;
begin
result:=DSiWriteRegistry(cMyExt, '', cMyFileType ,HKEY_CLASSES_ROOT, KEY_WRITE OR KEY_WOW64_64KEY) and
DSiWriteRegistry(cMyFileType, '',cMyDescription ,HKEY_CLASSES_ROOT, KEY_WRITE OR KEY_WOW64_64KEY) and
DSiWriteRegistry(cMyFileType + '\DefaultIcon', '', ExeName + ',' + IntToStr(IcoIndex) ,HKEY_CLASSES_ROOT, KEY_WRITE OR KEY_WOW64_64KEY) and
DSiWriteRegistry(cMyFileType + '\Shell\Open', '', '&Open' ,HKEY_CLASSES_ROOT, KEY_WRITE OR KEY_WOW64_64KEY)and
DSiWriteRegistry(cMyFileType + '\Shell\Open\Command', '', '"' + ExeName + '" "%1"' ,HKEY_CLASSES_ROOT, KEY_WRITE OR KEY_WOW64_64KEY) ;
if DoUpdate then SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);
end;
function StartupDeleteRegistryValue(Title: string):Boolean;
begin
result:= DSiDeleteRegistryValue('Software\Microsoft\Windows\CurrentVersion\Run', title ,HKEY_LOCAL_MACHINE, KEY_WRITE OR KEY_WOW64_64KEY);
end;
function StartupWriteRegistry(Title,ExeName:string):Boolean;
begin
result:=DSiWriteRegistry('Software\Microsoft\Windows\CurrentVersion\Run', title, ExeName ,HKEY_LOCAL_MACHINE, KEY_WRITE OR KEY_WOW64_64KEY);
end;
function StartupRegistryValueExists(title:string):Boolean;
begin
result:= DSiRegistryValueExists('Software\Microsoft\Windows\CurrentVersion\Run', title,HKEY_LOCAL_MACHINE,KEY_QUERY_VALUE OR KEY_WOW64_64KEY)
end;
function StartupReadRegistry(title:string):string ;
begin
result:= DSiReadRegistry('Software\Microsoft\Windows\CurrentVersion\Run', title, '' ,HKEY_LOCAL_MACHINE, KEY_QUERY_VALUE OR KEY_WOW64_64KEY);
end;
//*********************************************************************************************************************************************
function TimeFormatReadRegistry(title:string):string;
begin
Result:= DSiReadRegistry('Control Panel\International', title, '' ,HKEY_CURRENT_USER, KEY_QUERY_VALUE OR KEY_WOW64_64KEY);
end;
function TimeFormatWriteRegistry():Boolean;
begin
result:=DSiWriteRegistry('Control Panel\International', 'sTimeFormat', 'HH:mm:ss' ,HKEY_LOCAL_MACHINE, KEY_WRITE OR KEY_WOW64_64KEY) and
DSiWriteRegistry('Control Panel\International', 's1159', '' ,HKEY_LOCAL_MACHINE, KEY_WRITE OR KEY_WOW64_64KEY) and
DSiWriteRegistry('Control Panel\International', 's2359', '' ,HKEY_LOCAL_MACHINE, KEY_WRITE OR KEY_WOW64_64KEY)
end;
end.

