مرحبا بك في هذه المقالة ، سنقوم بتحليل عملية كتابة البرنامج الذي يسمح بمراقبة الوقت الفعلي لجميع الإجراءات التي تحدث على جهاز كمبيوتر بعيد ، دون علم المستخدم النهائي. يحذر مؤلف المقال من أنه غير مسؤول عن الاستخدام غير القانوني للتكنولوجيات التالية ولا يوصي باستخدامها لأغراض غير قانونية. دعنا نذهب!
عند كتابة أي منتج برمجي كبير بما فيه الكفاية ، تحتاج إلى تقسيم المهمة العالمية إلى عدة أبسط منها. لذلك في هذه الحالة ، حددت العديد من العمليات غير المرتبطة عمليا والتي ، العمل معا ، تسمح لنا بتحقيق النتيجة المرجوة. على وجه الخصوص ، لتنفيذ المهمة المطلوبة لتنفيذ:
0) إضافة ملفات الخدمة على المدى الأول إلى مجلدات النظام
1) خذ لقطة من الشاشة
2) إرسال لقطة شاشة إلى خادم بعيد
وفقا لذلك ، تم اختيار منصة .NET للتنفيذ ، والتي لديها كل الوظائف اللازمة. تتم كتابة التطبيق في WindowsForms لغرض التصور وتصحيح الأخطاء ، إلى حد كبير يمكن أن يكون وحدة تحكم.
وصف الوظائف:
SetConfig - يوفر معلمات تكوين القراءة من ملف الإعدادات المرفقة
إرسال - مسؤول عن إرسال لقطة شاشة إلى البريد الإلكتروني
MakeScreen - مسؤول عن أخذ لقطة شاشة
الدائرة - هي المسؤولة عن تكرار أخذ لقطة شاشة وإرسالها في الخلفية بتردد محدد
CasualStart - يحدد الإجراءات عند إطلاق البرنامج التالي
FirstStart - يضمن التثبيت الصحيح للبرنامج
الآن - المزيد من التفاصيل حول كل وظيفة. إعداد التكوين:
نظرًا لأن البرنامج يجب أن يكون مرنًا ، يجب أن يكون من الممكن تغيير المعلمات الداخلية للبرنامج من خارج الكود الخاص به. في كل مرة ، يحاول هذا البرنامج العثور على ملف SaveScreen.ini ، وتحديث إعداداته ، وبعد ذلك فقط يبدأ العمل بشكل طبيعي. في حالة استحالة تحديث المعلمات ، يتم استخدام القيم الافتراضية.
(أي المعلمة هي المسؤولة عن ما سيكون في نهاية المقال)
لأسباب فنية ، بدلاً من المساحة ، اضطررت إلى استخدام تسطير أسفل السطر ، وبدلاً من @ - # ، ولكن داخل البرنامج ، يتم إجراء استبدال عكسي.
يبدأ تنفيذ البرنامج في كتلة Form1_load ، ويمكن أن يتطور في وضعين - التشغيل العادي (إذا كان الكمبيوتر يحتوي على دليل تثبيت) والتثبيت (في حالة عدم وجود دليل التثبيت). دعونا نفكر في كل منهم.
الجولة الأولى:
في البداية ، تحتاج إلى إنشاء دليل يتم فيه وضع ملفات البرنامج ، ونقل الملف القابل للتنفيذ وملف التكوين هناك ، بالإضافة إلى إضافة الإدخالات اللازمة إلى السجل لإضافة برنامج إلى التشغيل التلقائي.
وفقًا لذلك ، يتم تطبيق ذلك بواسطة الدالة FirstStart ()

بعد التثبيت ، يتم إغلاق التطبيق - في المرة التالية التي تعيد فيها تشغيل الكمبيوتر ، سيعمل كالمعتاد.
إطلاق منتظم:
يبدأ التشغيل العادي بسلسلة خلفية في الخلفية تلتقط لقطات شاشة وترسلها ، بالإضافة إلى مسح المجلد مع لقطات تم التقاطها أثناء الجلسة الأخيرة. بعد ذلك ، ينتظر لفترة طويلة من الوقت قبل الإنهاء القسري للتطبيق. قبل بدء مؤشر ترابط الخلفية ، يمكن إيقاف التشغيل مؤقتًا ، والذي يجب تعيينه على أجهزة كمبيوتر بطيئة نسبيًا لتسريع عملية تحميل النظام وعدم وجود تعارضات عند بدء التشغيل.
asualStart ()

تداول:
كل شيء مثير للإحباط - في الدورة الأبدية نأخذ ونرسل لقطات للشاشة ، وبعد ذلك ننتظر الوقت المحدد. ترتيب الحجم الأكثر إثارة للاهتمام هو عملية أخذ وإرسال الشاشة.

التقط لقطة للشاشة:
في C # ، من الممكن حفظ صورة في صورة نقطية باستخدام وظيفة النسخ من الشاشة. لذلك ، كل ما يجب القيام به هو إنشاء كائن لتخزين لقطة شاشة بدقة تساوي دقة الشاشة الحالية ، وإرفاق كائن يمكنه الحصول على صورة نقطية من الشاشة وحفظه في دليل تم إنشاؤه مسبقًا.

إرسال عن طريق البريد:
في C # ، يمكن التعامل مع البريد باستخدام فئات محددة مسبقًا تسمح لك بملء حقول الرسائل ، وتحديد المرسل إليه والمرسل إليه ، وفي الواقع ، الإرسال عن طريق الاتصال بأحد الأساليب. قم بلف هذه الطريقة في كتلة try-catch في حالة عدم وجود اتصال بالشبكة - حتى في هذه الحالة ، لن يقدم البرنامج رسالة خطأ ، ولكنه سينتظر بفارغ الصبر حتى تتاح له فرصة الوصول إلى الخادم. تم اختيار خادم البريد لأسباب تتعلق بالبساطة ، من حيث المبدأ - يمكنك إلقاء الصور في أي مكان.

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

وأخيرًا ، شرح لملف التكوين التلقائي - جميع أسماء المتغيرات تتزامن مع الأسماء الموجودة في البرنامج ، وبالتالي ، بشرح الحقول في الملف int ، أصف أيضًا المتغيرات نفسها.

wayToDir - اسم المجلد الفرعي الذي يتم فيه إسقاط لقطات الشاشة
finalDir = - اسم الدليل الذي تم نقل البرنامج إليه
nameOfApp = اسم الملف القابل للتنفيذ
subKeyAdress = المسار إلى إدخال التسجيل لإضافته إلى التشغيل التلقائي
محجوز - مجال محجوز
اسم - اسم إدخال التسجيل
startPause - توقف مؤقتًا قبل تسجيل لقطات الشاشة
exitPause - توقف مؤقت قبل الخروج القسري من البرنامج
عنوان المرسل
name من - توقيع المرسل
nameTo - العنوان البريدي للمستلم
mailSubject - موضوع البريد الإلكتروني
mailBody - نص الرسالة
smtpAdress - عنوان بريد خادم البريد المرسل
smtpPort - منفذ لإرسال البريد
mailPassword - كلمة المرور من بريد المرسل
اكسب ملف التمديد
timeBetweenScreens - الوقت بين أخذ شاشتين.
باختصار:
لقد تم للتو وصف عملية كتابة تطبيق لتتبع الإجراءات على كمبيوتر بعيد. من خلال الاتصال هنا باستلام ملف مع قائمة بالأوامر من الخادم وتقسيمه ، نحصل على برنامج TeamViewer مبسط مكتوب ذاتيًا. لكن هذا ليس في هذا المقال.
شفرة المصدر