السلام عليكم
لو اريد الإضافة او التعديل على نظام ويندوز كمثلاً اريد ان اعدل على اشكال الحروف العربية او اقوم بعمل برنامج يقوم بتصيح الأخطاء الكتابية تلقائياً على النوت باد او برنامج الورد هل يمكن عمل ذالك ؟
الوندوز مغلق المصدر و لا يمكنك التعديل عليه و لكن يمككنك تطوير برامج تعمل عليه لحل المشاكل و الاشياء التي تحاول عملها
لا يمكن التعديل على النظام بشكل مباشر فالويندوز ليس مفتوح المصدر
طبعاً بإمكانك تغيير الأيقونات والثيم وبعض الأشياء البسيط في المنظر ، لكن التعديل على النظام وبرنامج الوورد غير ممكن
عليك استخدامه كما هو سواء احببته أم لم تحبه ، أو برمجة برنامج كامل لذلك كما ذكر الأخ مصطفى
وبالنسبة لتغيير الخط بصراحة لا اعلم
كما أجاب الآخرون لا يمكنك التعديل على النظام، لكن يمكنك الوصول إلى موارد النظام عبر استخدام الـAPI الخاص بالنظام Windows والتي تتيح التعامل مع العديد من خدمات النظام مثل إدخالات المستخدم والصوت والفيديو وكل شيء تقريبا
بالنسبة لأشكال الحروف يمكنك إنشاء خط وتثبيته في النظام، بالنسبة للأمثلة الأخرى يمكنك برمجتها كما ذكرت بإستخدام الـAPI
أولا عليك وضع تصور عن آلية عمل البرنامج، ثم اختار لغة البرمجة وكل ما عليك بعدها استخدام الـAPI المناسب
فمثلا لتلقي جميع الإدخالات التي يدخلها المستخدم عبر لوحة المفاتيح ستستعمل GetAsyncKeyState
أما إذا كان التصحيح داخل البرنامج فاﻷمر أسهل قم بالحصول على قاعدة بيانات باللغة العربية ثم بعد إدخال كل كلمة يقوم البرنامج بالتحقق من الكلمة في قاعدة البيانات طبعا بهذه الطريقة ستلاحظ بطئ في عملية التحقق لذا من اﻷفضل أن تكون قاعدة البيانات مرتبة أبجديا حيث إذا قام المستخدم بإدخال كلمة بحرف اﻷلف يبحث البرنامج في الكلمات التي تبدأ بحرف اﻷلف فقط وهكذا
التعديل على نواة النظام و الواجهة الاساسية و المكتبات بالطبع مستحيل, حتى فى الأنظمة مفتوحة المصدر الأمر ليس بهذه البساطة.
لكن ويندوز فى العموم نظام منفتح للتخصيص و تغيير كل شىء ممكن عبر برمجياتك الخاصة,
لكن يمكنك دائما "استبدال" و ليس "تغيير" اى شىء فى نظام ويندوز ببرمجياتك الخاصة عدا النواة بالطبع.
يمكنك استبدال حتى زر Start و قائمة البرامج,
يمكنك مثلا اعادة اختراع الcontrol panel كاملة ببرمجياتك الخاصة, الAPI الخاصة بويندوز تتيح لك ذلك,
يمكنك بالطبع ادخال font جديد من تصميمك.
بالنسبة لبرنامج notepad, فيجب تصميم بديل له, ضع مربع ادخال أبيض بحجم النافذة و أصبح لديك notepad, و يمكنك بعد ذلك أن تقوم باستبدال الNotepad الافتراضى فى ويندوز بالnotepad الخاص بك!!
برنامج الورد طبعا موضوع أخر!
ويندوز بالذات لديه API ضخم للغاية يغطى كل صغيرة و كبيرة فى النظام, بحيث يمكن لبرامجك الخاصة أن تتحكم بالنظام و تخصصه بشكل شبه كامل.
ماذا لو تلقيت جميع الإدخالات التي يدخلها المستخدم عبر لوحة المفاتيح بستخدام GetAsyncKeyState كما قال الأخ وتصحيح الأخطاء الإملائية اتوماتكياً دون استبدال النوت باد هل يمكن ذالك ؟
وطبعاً هذا ليس المشروع الذي افكر فيه لاكن انا اسأل هذا السؤال فقط لأتأكد اذا كان لدي كامل الصلاحية في تغير الـinput الخاص باليوزر عن طريق API
مع مراعات اني مبتدئ في البرمجة وخبرتي ضعيفة فيه ^_^
هذه فكرة سيئة,
يمكنك بالطبع التقاط ادخال لوحة المفاتيح و اعادة توجيهها و التحكم بذلك, لكن كيف ستعالج الselect, و الdelete و الCopy Paste و غير ذلك؟! و كيف ستعرف مكان الcursor فى حالة استخدام الفأرة؟!
كنت افكر في عمل تطبيق يقوم بتحويل الرموز او الكلام فمثلاً انا اكتب في المتصفح "حسوب" واتفاجأ انني لم اقم بتحويل الغة الى العربية واجده هكذا "pd,f" لو نظرت لكل حرف في الكي بورد ستجد انه "حسوب" وهذا دائماً ما يحصل معي نتيجة اني افتح العديد من النوافذ في متصفحي واكتب بالغتين العربي والإنجليزي فيحصل هذا الخطأ وانا لا انظر في زاوية الشاشة كل مرة لأرى هل الكي بورد بالعربي او بالإنجليزي , ففكرت بعمل هذا التطبيق البسيط بمجرد ضغط زر معين قمت ببرمجتة مسبقاً يقوم بتحويل هذه الرموز الى العربية والعكس , فهل يمكن عمل هذا التطبيق ؟
قد ترى فكرة التطبيق سخيفة لاكنه بتأكيد يحل مشكلة قد مملت منها كثيراً ^_^
عليك ان تسأل سؤال بشكل واضح، في اول الموضوع ذكرت تريد التعديل على ويندوز، ومن ثم التصحيح في الوورد أو النوت باد ، ومن ثم الان تصحيح الكلام المكتوب بطريقة خاطئة.
الاولى أن تضع المشكلة بشكل جيد فقط وبعدها اقترح حلول اذا كانت لديك حتى تتم مساعدتك بحل للمشكلة التي وصفتها، وليس حل لحل المشكلة الذي اقترحته.
المهم، اعتقد هناك اضافات على المتصفح تقوم بعملية تصحيح هذه الأخطاء (مثلاً اضافة "صححها")، ايضاً هناك مواقع تستطيع نقل الكلام الخاطئ وتحوله لك الى الصيغة الصحيحة.
برمجياً الأمر كلها مجرد Mapping بين حرف وحرف. وتستطيع كتابة برنامج تضع فيه النص الخطأ ويعطيك الصحيح.
الأفضل أن لا تكون العملية مؤتمتة بشكل كامل، لأنه كيف اعرف ان hi هي فعلاً hi أم اه، برمجيا ممكن تكتب keyboard hook يتلقط أي شيء تكتبه ويعالجه، ولكن لا يصلح ذلك في كل الحالات.
لذلك استخدم الادوات أو اكتب اداة التي تعطيها النص وتعطيك النص الصحيح.
نعم هذا ما اريده هو عمل mapping بين حرف وحرف بحيث اذا كتبت حسوب بهذه الطريقة "ps,f" لا اطر لحذف السطر كاملاً بمجرد ضغط زر برمجتة سابقاً يقوم بتحويله الى حسوب والعكس في الإنجليزية , لاكن للأسف يوجد من سبقني اليها بالفعل ):
التعليقات