المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : المشروع يعمل على ويندوز xp ولا يعمل على Vista او Se7en


القنـاص المصرى
12-09-2013, 07:36 AM
السلام عليكم ورحمة الله وبركاته
بسم الله الرحمن الرحيم
انا عارف انى تاعب مشرفى هذا القسم معاى ولكن المشكلة بجد صعبة جدا ولا اصدقها
انا راح افهمكم الحين انا اعمل مشروع عن تنصيب الخطوط والموضوع سهل جدا
انا اذا وضعت هذا الكود
font = "AutoPlay\\Docs\\FS_DIWANY.TTF"
System.RegisterFont(font, "FS Diwany", true);
Dialog.Message("Notice", "Done", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
يشتغل عادى جدا ويتسطب ويندوز xp / vista / 7
طيب عند التعديل على الكود لكى يتعامل مع مجلد خطوط كامل لايعمل الا على ويندوز XP فقط
حتى يتيسر عليكم قرائة الكود هذه صورة المشروع الذى اعمل عليه
http://img546.imageshack.us/img546/8833/tpgk.png
وفكرة هذه الصفحة انه المستخدم يحدد مجموعة الخطوط التى يريد تنصيبها ومن ثم يقوم بالضغط على زر التنصيب لتثبيتها على الحاسوب
الان اليكم كود الزر الخاص بعملية التنصيب

-- معرفة اوضاع التشيك بوكس
ar_selected = CheckBox.GetChecked("ar");
en_selected = CheckBox.GetChecked("en");
os = System.GetOSName();
Fpath = Shell.GetFolder(SHF_FONTS);
-- جميع حالات الاختيارات
-- First Case if User wants to setup en & ar fonts
if ar_selected == true and en_selected == true then
Dialog.Message("Notice", "two selected", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
-- Second Case if User Wants To Setup ar fonts only
elseif ar_selected == true and en_selected == false then
fonts = File.Find("AutoPlay\\Docs\\Fonts\\Arabic", "*.ttf", false, false, nil, nil);

count = Table.Count(fonts);
Label.SetText("all", count);
total_size = 0
for i,y in pairs (fonts) do
get_size = File.GetSize(y);
total_size = total_size + get_size
end
total_size = String.GetFormattedSize(total_size, FMTSIZE_AUTOMATIC, true);
Label.SetText("sz", total_size);
------------------------------------------------------
for i,y in pairs (fonts) do
File.Copy(y, Fpath, false, false, false, true);
split = String.SplitPath(y);
System.RegisterFont(Shell.GetFolder(SHF_FONTS), split.Filename..split.Extension, true);
Label.SetText("current_num", i);
Progress.SetCurrentPos("Progress1", i * 100 / count);
end

-- Third Case if User wants to Setup en fonts only
elseif ar_selected == false and en_selected == true then
Dialog.Message("Notice", "en only selected", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
-- Last Case if User didn't Choose any font to install
elseif ar_selected == false and en_selected == false then
Dialog.Message("Notice", "no selected", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
end



المشكلة لازالت قائمة وطبعا اذا مر احد المشرفين وقال انه ممنوع تكرار احب اقله ان استفسارى بالموضوع السابق اسأل عنه عن رسالة خطأ تحدث معى عند التنصيب وتم حلها بحمد الله راجع الموضوع جيدا :abc_087:

الان عند تنفيذ المشروع على ويندوز xp كل شئ تمام وعند تنفيذه على Vista او Se7en
فلاجدوى منه مع العلم انى مفعل خاصية Require Administrator
ولكن انا جالى الضغط:abc_070:
ياريت لو احد يحللى المشكلة مع العلم انه صعب رفع الملف فهو يتجاوز ال 100 ميجا

النصل القاطع
12-09-2013, 12:28 PM
جرب إستبدال هذا السطر
System.RegisterFont(Shell.GetFolder(SHF_FONTS), split.Filename..split.Extension, true);

بهذا السطر

System.RegisterFont(Shell.GetFolder(SHF_FONTS), split.Filename.."\."..split.Extension, true);

ثم خبرنى

القنـاص المصرى
12-09-2013, 01:50 PM
جرب إستبدال هذا السطر
System.RegisterFont(Shell.GetFolder(SHF_FONTS), split.Filename..split.Extension, true);

بهذا السطر

System.RegisterFont(Shell.GetFolder(SHF_FONTS), split.Filename.."\."..split.Extension, true);

ثم خبرنى

للاسف نفس المشكلة