الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة مع Turbo C

مغلق
بدأه reagent في 27 ديسمبر 2004 · 14 رد · 1,238 مشاهدة · في لغة Assembly لأنظمة 16, 32, 64 بت
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

الأخوة الأفاضل لي طلب عاجل وارجو ان أجد عندكم الحل إن شاء الله

انا استعمل Turbo C++ في الجامعة ولكني ابحث عن اي طريقة لمنع عملية الBrows للملفات من داخل البرنامج نفسه

اي انه عند الذهاب إلى File----- Open من داخل البرنامج نفسه فلا يمكنني اختيار اي مكان في الهارد ديسك إلا الفولدر الذي يحتوي على البرنامج نفسه او ال Defult Folder (TC\Bin) ولا يمكن الانتقال لمكان اخر مثل ال C drive or D Drive

السبب انه لا يمكني منع ذلك من خلال الجروب بولسي او اللوكال سيكيورتي حيث ان الTurbo C++ 16 bit ولا يمكنني التحكم بذلك عن طريق الويندوز

ارجو افادتي لأي حل ما بأسرع وقت ممكن

تحياتي

نسخة من هذا الموضوع ايضا في منتدى ال C++ مع أعتذاري للتكرار ولكن لأهمية الموضوع بالنسبة لي

"وَمَا تَدْرِي نَفْسٌ مَّاذَا تَكْسِبُ غَداً وَمَا تَدْرِي نَفْسٌ بِأَيِّ أَرْضٍ تَمُوتُ إِنَّ اللَّهَ عَلِيمٌ خَبِيرٌ"

صدق الله العظيم

#2

ياشباب الأسمبلي , هل بالإمكان عمل disable دائم لخيار Open من الmenu في البرنامج عن طريق العبث في ملف exe فيه ؟

وأعتقد أن هذا حل شبه كامل لو كان البرنامج يعمل من الكونسول مباشرة ,,

وتوجد إمكانية تحايل في ذلك بعمل Copy Paste للكود الموجود في ملف معين للنافذة المفتوحة بدل عمل Open مباشر له !!

مارأيك يا reagent ومارأي شباب الأسمبلي , وهي خدمة عظيمة حقا لتطوير إمكانية عمل بيئة إمتحانات آمنة أكثر.

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#3

السلام عليكم,

هو من المفروض أن تكون العملية سهلة لجعل Menu -->Openfile لا تشتغل. وقلت من المفروض لأنه لا يمكن التكهن بالسهولة إلا بعد رِؤية الملف نفسه.

إلى اللقاء.

#4

شكرا HGB على الرد

ما اريده هو اغلاق خاصية brows في ال open menu

وهذا أفضل لأن غلق ال open كاملة قد يسبب مشاكل ولكن ان لم يوجد غيرها فلا مانع

أخي Chik اي ملف تريد ان تراه !! عموما سأضع هنا الملف ال EXE المشغل للبرنامج نفسة للأسف حاولت وضع البرنامج كاملا ولكن حجمة حوالي 40 MB

في انتظار الرد إن شاء الله

تحياتي

tc.zip

"وَمَا تَدْرِي نَفْسٌ مَّاذَا تَكْسِبُ غَداً وَمَا تَدْرِي نَفْسٌ بِأَيِّ أَرْضٍ تَمُوتُ إِنَّ اللَّهَ عَلِيمٌ خَبِيرٌ"

صدق الله العظيم

#5

السلام عليكم

أخي Chik قد تمكنت من ضغط البرنامج كاملا وهو الن اصبح 2MB وملف التشغيل هو TC.exe الموجود داخل Bin Folder

فقط قم بفك الملف في ال C: Drive وجرب تشغيله سيعمل بإذن الله

رجاء أفادتي بأي نتيجة

تحياتي

tc.zip

"وَمَا تَدْرِي نَفْسٌ مَّاذَا تَكْسِبُ غَداً وَمَا تَدْرِي نَفْسٌ بِأَيِّ أَرْضٍ تَمُوتُ إِنَّ اللَّهَ عَلِيمٌ خَبِيرٌ"

صدق الله العظيم

#6

السلام عليكم,

ليس لدي الآن إمكانية التحميل وسأحاول ابتداءا من الغد إن شاء الله وأتمنى أنه حين دلك الوقت يكون أحد الإخوان قد لقى الحل لمشكلتك.

إلى اللقاء.

#7

السلام عليكم,

لقد توصلت إلى طريقة وهي أن يفتح البرنامج فقط الملفات الموجودة في مسار معين. ورغم أنه يمكننا التجوال في المجلدات الأخرى لكن لا نتمكن من فتح الملفات هناك.

والأن أبحث عن مكان فارغ داخل الملف حتى أقوم بصنع باتش للبرنامج. وللعلم كل العمليات أو أغلبها يقوم بها البرنامج DPMI ولهذا سأحاول بعمل باتش لهذا الملف وأتمنى أن يساعدني الوقت لذلك.

إلى اللقاء.

#8

أخي الفاضل Chik

شكرا شكرا على المجهود هذا فعلا ما تمنيته ولكن كنت أخشى ان اطلبه كما وصفت حتى لا تظنون ان الطلب معقد فحاولت اطلب البسط :)

حقيقة متشكر وبارك الله فيك وفي انتظار الملف إن شاء الله حيث ان المتحانات ستبدأ يوم 10/1 وانا في ورطه :)

تحياتي

"وَمَا تَدْرِي نَفْسٌ مَّاذَا تَكْسِبُ غَداً وَمَا تَدْرِي نَفْسٌ بِأَيِّ أَرْضٍ تَمُوتُ إِنَّ اللَّهَ عَلِيمٌ خَبِيرٌ"

صدق الله العظيم

#9

السلام عليكم,

لقد قمت بعمل باتش للملف DpmiLoad.exe وستجده في الملف المرفق. لذى يجب أن تعمل حفظا للملف القديم اللي عندك ومن بعد تضع هذا الملف المرفق مكان القديم.

وهنا أفترض أن برنامج أو المجلد TC وما يحويه موجود في المسار التالي C:\TC وكما تجد في الملف المرفق ملف تحت اسم ERR.CPP فهذا الملف فقط يحتوي على مساج سيخرج عند المستعمل إذا أراد أن يفتح أي ملف خارج عن المسار C:\TC .

وللعلم فالمستعمل يمكن أن يفتح أي ملف يوجد في المسار C:\TC أو أي مجلد داخل هذا المسار ولكن إذا أراد أن يفتح ملفا خارج هذا فستخرج له الكتابة الموجودة في الملف السابق ERR.CPP وهذا يمكن فتحه في أي محرر ويمكن أن نغير المسج الذي نريد أن يخرج للمستعمل.

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

إلى اللقاء.

TC.zip

#10

أخي الفاضل Chik

اليك كل شكر وتقدير بارك الله فيك وجعله في ميزان حسناتك إن شاء الله سأجرب البرنامج ولكن مبدئيا فهو يعمل

ولكن لي طلب صغير إذا تكرمت وهو تغيير المسار من C:\TC إلى X:\TC حيث انه بدلا من القيام بأعادة تنزيل البرنامج ثم الباتش على جميع الأجهزة وهذا سيستغرق وقت كبير جدا كما انني اريد ان أخفي الدرايفرات C,D,E تماما سواء من الظهور او الأستخدام ولذلك سأقوم بوضع ال TC Folder في ال X Drive وهو Home Folder لكل مستخدم و سيكون بالـاكيد فارغ من أي ملفات أخرى

شكرا جزيلا مرة أخرى على هذا المجهود العظيم وجزاك الله خيرا

في انتظار الرد بأذن الله

تحياتي

"وَمَا تَدْرِي نَفْسٌ مَّاذَا تَكْسِبُ غَداً وَمَا تَدْرِي نَفْسٌ بِأَيِّ أَرْضٍ تَمُوتُ إِنَّ اللَّهَ عَلِيمٌ خَبِيرٌ"

صدق الله العظيم

#11

Assalam

If you want to change the C drive it is easy to do that. Just open the file DPMILoad.exe in any Hex editor and change the string C:\TC\ERR.CPP to the drive you like. This string should be at offset 3F00 or something close to it caus I don't remember exactly the address or make a search forthe previous string and change the drive and that's all.

#12

شكرا أخي Chik جزاك الله خيرا

حصلت على برنامج اسمة XVI32 وقمت بعمل التعديل اللازم وسأجرب واخبرك بالنتائج إن شاء الله

تحياتي

"وَمَا تَدْرِي نَفْسٌ مَّاذَا تَكْسِبُ غَداً وَمَا تَدْرِي نَفْسٌ بِأَيِّ أَرْضٍ تَمُوتُ إِنَّ اللَّهَ عَلِيمٌ خَبِيرٌ"

صدق الله العظيم

#13

السلام عليكم

أخي الفاضل chik قمت بتجربة البرنامج وكل شئ يعمل جيدا الحمد لله وجزاك الله خيرا ولكن هناك في خطأ وحيد وهو عند الذهاب Dos Shell لأظهار النتائج للبرنامج يتوقف عن العمل ولا يستجيب لأي شئ..

لا اعلم ان كان هذا بسبب الكراك ام ماذا

"وَمَا تَدْرِي نَفْسٌ مَّاذَا تَكْسِبُ غَداً وَمَا تَدْرِي نَفْسٌ بِأَيِّ أَرْضٍ تَمُوتُ إِنَّ اللَّهَ عَلِيمٌ خَبِيرٌ"

صدق الله العظيم

#14

السلام عايكم,

قد يكون دلك بالفعل من الباتش الدي وضع للبرنامج. وقد يكون Shell الدي تقوم به يكتب معلوماته في المكان الدي وضع فيه الباتش ولدلك سيمحي كل المعلومات التي توجد هناك ومن تم لا يشتغل البرنامج. وكما دكرت من قبل كان مشكل في وجود مكان فارغ داخل البرنامج.

والطريقة التي قد نتجنب منها هدا هي أن نزيد في طول البرنامج ونكتب الباتش هناك وهدا لم أرد أن أقوم به في الأول لأنه كان يتوجب أن نرى كيف يشتغل البرنامج بالضبط وهل هو Resident أم لا وكم عدد البايتات التي تبقى دائمة وهدا كان سيأخد شيئا من الوقت وأنا فضلت الطريقة السهلة وكما قلت من قبل لم أجرب جميع وضائف البرنامج.

إلا أن هده اللأيام أنا مشغول جدا في أمور أخرى وربما بعد العيد يمكن أن نرى كيف نقوم بهدا من جديد . وإدا كان لديك شيء من الوقت وإدا عرفت عمل الباتش السابق فجرب أن تضعه في آخر البرنامج وجرب إدا اشتغل فهدا أحسن فهده طريقة التجربة بدون فهم ما يجري.

إلى اللقاء.

#15

السلام عليكم

للأسف اخي chik انا معلومات البرمجة عموما عندي تحت الصفر :)

ولذلك فشرحك هذا يعتبر لغة غريبة علي

عموما لا تشغل بالك وربنا يوفقك ويجزيك خيرا على ما فعلت فهذا انجاز حقيقي ولقد تغلبنا لحد ما على المشكلة بأن تقوم بضغط ALT +F5 بعد عمل RUN لأظهار النتائج بعض الحيان يعمل وبعض الأحيان يتوقف ولكن قمت بالتأكيد على الطلبة بحفظ البرنامج قبل تشغيله و احاول ان اكون متواجد طوال فترة الأمتحان مع الطلبه لكي احاول تفادي اي مشكلة ..

فعموما سأحاولبعد ذلك تغيير هذه النسخة من ++C لأي نسخة تكون Windows based إن شاء الله

تحياتي

"وَمَا تَدْرِي نَفْسٌ مَّاذَا تَكْسِبُ غَداً وَمَا تَدْرِي نَفْسٌ بِأَيِّ أَرْضٍ تَمُوتُ إِنَّ اللَّهَ عَلِيمٌ خَبِيرٌ"

صدق الله العظيم

هذا الموضوع مغلق.

مواضيع مشابهة