فكرة
مهلا. أنا مطور مبتدئ C # .NET (كمبتدئ في السنة الثانية). لقد سئمت من كتابة جميع أنواع الآلات الحاسبة ، وما إلى ذلك ، لذلك سألت نفسي: "ما الذي أفقده في Windows؟" والجواب الذي جئت إليه أعطاني فكرة: "كل شيء". لذلك كان هناك Binder ، وهو مشروع سمح لي بتعلم الكثير عن C # و .NET و WPF ، والذي أعطاني بعض البرامج الجيدة التي أحببتها كثيرًا لدرجة أنني قررت عرضها على الجميع.عن البرنامج نفسه
الموثق مخصص ، بشكل غير متوقع ، للربط. يمكن تكوين هذه الروابط لأي مجموعة مفاتيح: زر + 2 معدِّلات (CTRL و Shift و ALt و Win) ، بالإضافة إلى نصوص العصا عليها. النص مكتوب بلغة داخلية ، حاولت أن أجعلها مشابهة قدر الإمكان لـ C #.المبدأ هو نفسه الموجود في AutoHotKey. يأتي البرنامج مع DLL ، والذي أضيف فيه وظائف مختلفة ببطء (هناك 49 منها الآن). في رأيي ، يمكن اعتبار لغة Binder بالفعل لغة برمجة مترجمة ، على الرغم من أنها غير قادرة ، لأن هناك بالفعل بنية if-else ، أثناء تكرار الحلقات والوظائف (غير المتزامنة أيضًا) وعبارات الفاصل والإرجاع ، أنواع بيانات int و double و bool و string.في البرنامج ، تعمل المجلدات على مستوى العالم في جميع أنحاء جهاز الكمبيوتر ، ويمكن لمحاكاة المفتاح المأخوذة من AHK محاكاة ضغطات المفاتيح في جميع التطبيقات تقريبًا.كانت المهمة الأولى التي أردت حلها باستخدام Binder هي إظهار / إخفاء رموز سطح المكتب. وبالتالي فإن أول برنامج نصي أضفته هو ShowHideDesktopIcons (عرض منطقي). ولكن هنا يطرح السؤال ، كيف تجعل كل من الاختباء والعرض مع زر واحد؟ لقد قررت ذلك عن طريق إضافة معلمة "Bind switch" إلى المجلدات ، مما يسمح لك بتعليق سكريبتَين على رابط واحد في وقت واحد ، يتم تنفيذهما بدوره. بالفعل الآن على Binder ، يمكنك إنشاء نقرة تلقائية ، أو على سبيل المثال ، ربط ، Ctrl + Shift + C ، والذي سيضيف النص المحدد إلى الحافظة ، وليس استبداله ، أو ربط لإيقاف / إعادة تشغيل جهاز الكمبيوتر. واحدة من أكثرها فائدة هي ربط "Super Alt + F4" ، الذي يتلقى عملية النافذة النشطة ويقتلها. يدعم البرنامج المتغيرات: يمكنك حفظ أي قيمة باستخدام SetVar () والحصول عليها GetVar (). اليوم بسمات تنفيذ النصوص ،وكان الأول هو Block ، الذي يمنع ضغط المفتاح حتى يتم إكمال الخيط الرئيسي. في المستقبل القريب ، من المخطط إضافة مساحات أسماء لنقل المتغيرات من برنامج نصي إلى آخر.أعتقد أن إضافة مفيدة هي وظيفة التسجيل ، التي تسجل جميع الإجراءات من لوحة المفاتيح والماوس ، وتحولها على الفور إلى برنامج نصي لـ Binder.في نافذة المساعدة ، يمكنك العثور على جميع الوظائف المتاحة ، وسيظهر قريبًا سمات للنصوص البرمجية.يمكن حفظ جميع الروابط في ملف حتى لا تفقد.في الإعدادات يمكنك تمكين تشغيل البرنامج مع Windows ، تكوين ملف الربط الافتراضي ليتم فتحه.
أريد أن أشير إلى شيء مناسب: عند استخدام الإنشاءات المتداخلة (على سبيل المثال ، إذا كان ذلك داخل الوقت) ، بعد النقر فوق الزر "حفظ" ، سيتم تنسيق البرنامج النصي بشكل جميل.بناء الجملة
في Binder ، تم بناء الجملة المألوفة لجميع المبرمجين على غرار C #.على سبيل المثال ، يبدو استدعاء دالة MsgBox (مثل أي وظيفة أخرى) كما يلي:MsgBox(" ", " ");
عند تنفيذ هذا الخط ، ستكون النتيجة كما يلي:
يقبل MsgBox () المعلمات ، يمكنك رؤيتها لكل وظيفة في نافذة التعليمات.للمساعدة ، يتم فرز جميع الدالات حسب نوع القيمة
المرتجعة : أي شخص كتب في C ++ / C # سيفهم على الفور كيفية عمل ذلك ، باستثناء النوع الأول: تقوم الدالات من مجموعة "القيم غير المرتجعة" بإعادة المعلمات التي تم تمريرها إليهم.على سبيل المثال:MsgBox(MsgBox("Hello"));
ستعرض مرتين رسالة تحتوي على النص "Hello".من هذا الخط ، يمكن فهم تفاصيل أخرى مهمة: يمكن نقل بعض الوظائف إلى المعلمات بواسطة الآخرين.بالإضافة إلى الوظائف المضمنة ، فإن البرنامج لديه تصميمات مختلفة. وتجدر الإشارة إلى أن لدي أي هيكل كامل يعتبره فريق واحد ، لذلك في نهاية كل منهم تحتاج إلى وضع ؛. سأزيله لاحقًا.بناء إذا آخر.
يعمل تمامًا مثل أي لغة أخرى:if(<1>)
{
<1>
}
else if(<2>)
{
<2>
}
....
else
{<, false>};
يمكنك كتابة أي شيء آخر إذا أردت ، اكتب / لا تكتب أي شيء آخر ، بشكل عام ، كما تريد. الشيء الرئيسي هو أن بين قوسين يجب أن يكون من نوع Boolean. على سبيل المثال ، يمكنك أن تكتب صحيحًا هناك ، وسوف يتم استيفاء الشرط دائمًا.كرر البناء
التكرار هو أبسط حلقة في البرنامج ، يجب أن تكون هناك قيمة Int بين قوسين ، وتكرر ببساطة الإجراء عدد المرات المحدد ، على سبيل المثال:repeat(SumInt(2,3))
{
MsgBox("");
};
تعرض الرسالة 5 مرات رسالة "مرحبًا".له تعديلان:1) تكرار متزامن (). سيتم تخصيص مؤشر ترابط منفصل لتنفيذه ، أي مباشرة بعد بدايتها ، سيتم تنفيذ الوظائف بعد ذلك.2) سيبدأ allasync تكرار () على الفور تنفيذ التعليمات البرمجية داخل نفسه عدد المرات المحدد ، على سبيل المثال:allasync repeat(5)
{
MsgBox("Hello");
};
في نفس الوقت سيعرض 5 رسائل:
أثناء البناء
بينما - حرفيا من اللغة الإنجليزية. - في حين أن الشرط صحيح. يؤدي وظائف داخل نفسه طالما أن الشرط صحيحًا بين قوسين. يجب أن يكون هذا الشرط من النوع المنطقي.يمكنك إحباط تنفيذ التكرار باستخدام العبارة break ؛ مثال:SetVar("i", 0);
while(true)
{
SetVar("i", SumInt(GetVar("i"), 1));
MsgBox(GetVar("i"));
if(MoreThan(GetVar("i"), 10))
{
break;
};
};
MsgBox("");
اطبع الرسائل بأرقام من 1 إلى 11 واخرج.بينما يحتوي أيضًا على تعديل غير متزامن بينما ، والذي ينفذه ببساطة في سلسلة محادثات منفصلة ، مما يسمح لك بمتابعة تنفيذ الكود الرئيسي.المهام
في Binder ، يمكنك التصريح عن وظائفك واستخدامها وتمرير المعلمات إليهاfunc f1(text)
{
MsgBox(ReplaceString(text, "\", " habr "));
};
f1(GetDesktopPath());
المخرجات الخاصة بي:
يمكن أيضًا للوظائف إرجاع القيم ، لذلك تحتاج إلى استخدام عبارة الإرجاع:func f1(text)
{
return MsgBox(ReplaceString(text, "\", " habr "));
};
MsgBox(f1(GetDesktopPath()));
الآن نفس النتيجة ، يتم عرض الرسالة فقط مرتين.عن المجموعة
وبالتالي ، يمكنك إنشاء أي شيء على أساس Binder ، فأنت تحتاج فقط إلى وظائف في المكتبة ، والتي يمكنني إضافتها بكل بساطة ، لذلك أنا بحاجة إلى أفكار فقط. هذا أحد أسباب إنشاء مجموعة فكونتاكتي vk.com/public192980751 . Binder مجاني تمامًا ، وأنا على استعداد للمساعدة في أي سؤال حول البرنامج. من فضلك ادعمني ببساطة عن طريق تقديم المشورة بشأن ما يمكن إضافته ، أو عن طريق اختبار المشروع ، أو ببساطة عن طريق الاشتراك في المجموعة.ملاحظة: ظهر المشروع على GitHub github.com/Electrominch/Binder