المـهاجر
19-05-2017, 04:42 PM
بسم الله الرحمن الرحيم
فى هذا الكود
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00000401\", 1", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
تم تداول هذا الكود
و تم اعتماده من الجميع ككود وحيد اوحد لتغيير لغة الادخال من اللغة الأجنبية (غالبا انجليزية) الى اللغة العربية
لكن هذا غير صحيح إلا فى حالة واحدة
و هى التحويل للغة العربية السعودية فقط
بداية لا فرق بين العربية السعودية و عربية باقى الدول العربية
فما المشكل ؟
لنفترض انك من مصر و قمت بتطبيق الكود السابق
و انه كان لديك لغتان مثبتتان على الجهاز
1- انجليزية
2- عربية مصرية
سيتسبب هذا الكود فى تثبيت لغة ثالثة
و بعد تطبيقك للكود السابق يكون لديك ثلاثة لغات فى اللانجويج بار Language Bar
1- انجليزية
2- عربية مصرية
3- عربية سعودية
الأن لو خرجت من البرنامج و استخدمت ألت و شيفت Alt + shift للتبديل من العربية المصرية إلى اللغة الانجليزية
ستفاجأ بانك رجعت للعربية مرة أخرى
لأن الويندوز سيضبط على اللفة التالية فى الطابور الخاص باللغات التى ستكون عربية سعودية
قد يتسبب هذا فى كتابتك لمقال كبير و انت تعتقد ان اللغة انجليزية و تفاجأ فى النهاية بكلام غير مفهوم مكتوب بالعربية
الحل
بالنسبة للأخوة المصريين
بدلا من الكود السابق
ستستخدمون الكود التالى لضبط اللغة إلى العربية المصرية Arabic Egypt
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00000c01\", 3", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
هذا الكود سينقلكم فورا للغة العربية المصرية دون انشاء اى لغات أخرى
ايضا لا يتسبب هذا الكود فى انشاء لغة عربية مصرية
يتسبب فقط فى تنشيطها ان كانت مثبتة على الجهاز
فقط لى طلب بسيط لو امكنكم
الاختبار على ويندوز اعلى من xp و اخبارى بالنتيجة
و السبب هو اننى دائما ما اتخوف من نتائج DLL.CallFunction و احب التأكد قبل اعتماد الكود
منتظر ردكم بالتأكيد او النفى
الملف المفتوح مرفق و به الكود القديم و الكود الجديد
و السلام عليكم و رحمة الله و بركاته
:abc_152::abc_152::abc_152:
:abc_152::abc_152:
:abc_152:
فى هذا الكود
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00000401\", 1", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
تم تداول هذا الكود
و تم اعتماده من الجميع ككود وحيد اوحد لتغيير لغة الادخال من اللغة الأجنبية (غالبا انجليزية) الى اللغة العربية
لكن هذا غير صحيح إلا فى حالة واحدة
و هى التحويل للغة العربية السعودية فقط
بداية لا فرق بين العربية السعودية و عربية باقى الدول العربية
فما المشكل ؟
لنفترض انك من مصر و قمت بتطبيق الكود السابق
و انه كان لديك لغتان مثبتتان على الجهاز
1- انجليزية
2- عربية مصرية
سيتسبب هذا الكود فى تثبيت لغة ثالثة
و بعد تطبيقك للكود السابق يكون لديك ثلاثة لغات فى اللانجويج بار Language Bar
1- انجليزية
2- عربية مصرية
3- عربية سعودية
الأن لو خرجت من البرنامج و استخدمت ألت و شيفت Alt + shift للتبديل من العربية المصرية إلى اللغة الانجليزية
ستفاجأ بانك رجعت للعربية مرة أخرى
لأن الويندوز سيضبط على اللفة التالية فى الطابور الخاص باللغات التى ستكون عربية سعودية
قد يتسبب هذا فى كتابتك لمقال كبير و انت تعتقد ان اللغة انجليزية و تفاجأ فى النهاية بكلام غير مفهوم مكتوب بالعربية
الحل
بالنسبة للأخوة المصريين
بدلا من الكود السابق
ستستخدمون الكود التالى لضبط اللغة إلى العربية المصرية Arabic Egypt
DLL.CallFunction("user32.dll", "LoadKeyboardLayoutA", "\"00000c01\", 3", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)
هذا الكود سينقلكم فورا للغة العربية المصرية دون انشاء اى لغات أخرى
ايضا لا يتسبب هذا الكود فى انشاء لغة عربية مصرية
يتسبب فقط فى تنشيطها ان كانت مثبتة على الجهاز
فقط لى طلب بسيط لو امكنكم
الاختبار على ويندوز اعلى من xp و اخبارى بالنتيجة
و السبب هو اننى دائما ما اتخوف من نتائج DLL.CallFunction و احب التأكد قبل اعتماد الكود
منتظر ردكم بالتأكيد او النفى
الملف المفتوح مرفق و به الكود القديم و الكود الجديد
و السلام عليكم و رحمة الله و بركاته
:abc_152::abc_152::abc_152:
:abc_152::abc_152:
:abc_152: