جدول المحتويات:

شاشة أجهزة الكمبيوتر: 6 خطوات (بالصور)
شاشة أجهزة الكمبيوتر: 6 خطوات (بالصور)

فيديو: شاشة أجهزة الكمبيوتر: 6 خطوات (بالصور)

فيديو: شاشة أجهزة الكمبيوتر: 6 خطوات (بالصور)
فيديو: طريقة توصيل شاشة التلفاز بالكومبيوتر 2024, شهر نوفمبر
Anonim
مراقب أجهزة الكمبيوتر
مراقب أجهزة الكمبيوتر
مراقب أجهزة الكمبيوتر
مراقب أجهزة الكمبيوتر
مراقب أجهزة الكمبيوتر
مراقب أجهزة الكمبيوتر

مرحبا جميعا. لقد بدأت هذا المشروع لسببين: لقد قمت ببناء حلقة تبريد مائية في جهاز الكمبيوتر الخاص بي مؤخرًا واحتجت إلى شيء ما لملء بعض المساحة بصريًا في العلبة وأردت أن أكون قادرًا على فحص درجات الحرارة والإحصائيات الأخرى بنظرة خاطفة سريعة بدون خدوش OSD التي تملأ زاوية الشاشة. بالطبع هناك حلول جاهزة لذلك ، لكن معظمها لن يناسبني في فنغ شوي. لذا ، بدلاً من وضع شاشة عرض HDMI 7 في حالتي مع وجود كابل يخرج من العلبة وشريط مهام windows دائمًا ، قررت صنع لعبتي الخاصة.

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

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

إخلاء المسؤولية الثاني: يتم تقاسم عملي كما هو. أنا لست مسؤولاً عن أي ضرر ناتج عن استخدام أي من التعليمات البرمجية أو التعليمات الخاصة بي

اللوازم

  • Arduino Nano (أو UNO إذا كنت تريد)
  • شاشة TFT. في حالتي ، إنها شاشة متوافقة مع ILI9486 / ILI9488L مقاس 3.5 بوصة.
  • حساس درجة الحرارة. في حالة mu جهاز استشعار درجة الحرارة التناظرية TMP36.
  • الكابلات والأسلاك والموصلات المزدوجة (المزيد عن ذلك لاحقًا)
  • (اختياري) اللوح للاختبار
  • (اختياري لكن موصى به) لوحة بيرف بورد صغيرة

الخطوة 1: دراسة الجدوى (نوع من)

كما قلت ، لم أكن أرغب وشاشة HDMI عالقة في حالة جهاز الكمبيوتر الخاص بي ، لذا ، وأنا مرتديًا إبداعي ، بدأت في البحث عن أفكار مماثلة على الإنترنت. وهذه هي النصيحة الأولى: Google هو صديقك (حسنًا ، أي محرك بحث لائق …). نحن نعيش في عالم لا يوجد فيه شيء أصلي حقًا بعد الآن ، ولكن بدلاً من النظر إلى هذه العبارة بمعنى سلبي ، يمكننا استخدام هذا لمصلحتنا: كل ما تريد إنشاءه ، ربما يكون شخص ما في مكان ما قد فعل شيئًا مشابهًا بالفعل ، لذلك إذا كنت لا أعرف كيفية تنفيذ فكرة ، فمن المحتمل أن تجد معلومات مفيدة هناك. عند البحث في الإنترنت ، من المفيد غالبًا مراعاة قاعدتين:

  1. لا تهتم بالذهاب بعد الصفحة 3 أو 4 من أي بحث ، فغالبًا ما يكون ذلك مضيعة للوقت. في حين أن
  2. قم بتغيير مصطلحات البحث ، ما عليك سوى إعادة صياغة السؤال من وجهة نظر أخرى (على سبيل المثال: "مستشعر درجة حرارة اردوينو" -> "قراءة درجة الحرارة باستخدام اردوينو").

في الواقع ، إنها مليئة بالمشاريع الجيدة هناك ، وأعترف أنني قضيت الأيام الأولى في دراسة معظم هذه المشاريع. لكن لم يكن أي منهم مستعدًا للذهاب من أجلي ، لأنني أردت شيئًا يناسب احتياجاتي.

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

أردت شيئًا يعتمد على Arduino ، لأنه كان لدي بالفعل ، وهو موثق جيدًا ومجتمعه يزدهر. لا مشكلة هنا كما قلت من قبل وفرة من المعلومات.

كنت أرغب في الحصول على شاشة كبيرة بما يكفي ليتم رؤيتها بوضوح من على بعد أمتار قليلة والتي من شأنها أن تتناسب مع المظهر الذي أشعر به في بنيتي ، وهذا يستثني أي شاشة عرض لشخصيات نوكيا وشاشات الكريستال السائل. OLED أيضًا غير وارد ، لأنها صغيرة. لذلك اخترت شاشة ملونة TFT. لا حاجة لشاشة تعمل باللمس ، حيث ستكون داخل جهاز الكمبيوتر. لقد عثرت على جهاز مقاس 3.5 بوصات مصمم بالفعل لـ Arduino ، ~ 15 يورو على Amazon. جيد بما فيه الكفاية.

الآن ، بعد تحديد الأجهزة ، ركزت على البرنامج.

جميع المشاريع تقريبًا ، جانب Arduino ، متشابهة تمامًا. أحتاج فقط إلى تكييف الكود للعرض وبروتوكول الاتصال لجمع البيانات من تطبيق الخادم. جانب الكمبيوتر ، استندت معظم المشاريع إلى C و C ++ و C # و python ومعظم المشاريع تقدم فقط واجهة CLI أو خادم يشبه خدمة Windows. أردت واجهة المستخدم الرسومية ، بدلاً من ذلك. لم أستخدم أبدًا أي لغة شبيهة بلغة C في Windows ، اترك وحدي مبنى واجهة المستخدم الرسومية. لكنني تعلمت بعضًا من Visual Basic منذ 15 عامًا ، لذلك جربته وقمت بتنزيل إصدار Visual Studio المجاني من Microsoft.

بعد دراسة الكثير من المشاريع المماثلة ، قررت استخدام OpenHardwareMonitor للحصول على جميع معلومات الأجهزة و RivaTuner لـ FPS ، لأنها مجانية وموثقة بدرجة كافية.

الخطوة الثانية: اختبار الأجهزة

اختبار الأجهزة
اختبار الأجهزة
اختبار الأجهزة
اختبار الأجهزة
اختبار الأجهزة
اختبار الأجهزة

قبل تشغيل مكواة اللحام وتثبيت أي مكون إلكتروني إلى الأبد في الزمان والمكان ، من الممارسات الجيدة لبناء نموذج أولي للاختبار (الطرف الثاني). لحسن الحظ ، لم يعد عام 1995 بعد الآن. في الوقت الحاضر ، من السهل جدًا ترتيب نماذج أولية معقدة إلى حد ما حتى على ألواح التجارب الصغيرة. في حالتي ، كان لشاشة TFT انخفاض في pinout لـ Arduino Uno ، لذلك أسقطتها على Arduino uno وبدأت في اللعب مع مكتبات الأمثلة وقراءة الكتيبات المرجعية لفهم مبادئ التشغيل وقيودها.

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

في مرحلة ما أسفل الخط ، كان لدي مكان فارغ على الشاشة ولكن لم تكن أي من البيانات من مستشعرات الكمبيوتر مفيدة حقًا ، لذلك قررت وضع مستشعر درجة الحرارة داخل العلبة من أجل درجة الحرارة المحيطة. تستهلك الشاشة جميع دبابيس Arduino تقريبًا ، ولحسن الحظ ، لا يتم استخدام دبوس A5 التناظري ، لذلك قمت بربط TMP36. حتى أنني اختبرت DHT22 لكنها مبالغة في استخدام هذا التطبيق.

هناك الكثير من الأمثلة على TMP36 ، لقد قمت للتو بنسخ واحد منها في وظيفة. يحتوي TMP35 على 3 دبابيس ، و Vin يذهب إلى 5V ، و GND يذهب إلى الأرض ويذهب Out إلى دبوس A5. لقد وضعت مكثف سيراميك 0.1 فائق التوهج بين Vin و GND. يقولون إنه مطلوب. ربما يكون عديم الفائدة في هذه الحالة ، لكن … حتى أنني قمت بضبط الجهد المرجعي التناظري لاردوينو على دبوس 3.3 فولت لقراءة أفضل لدرجة الحرارة. لا يزال عديم الفائدة في هذه الحالة ، ولكن …

الخطوة 3: كود اردوينو

يرجى تنزيل وفتح كود Arduino المرفق لاتباع الشرح في هذه الخطوة. حاولت ترك تعليقات كافية في الكود لأكون واضحًا دون إغراقها.

ستحتاج بالتأكيد إلى MCUFRIEND_kbv ومكتبات Adafruit GFX. كلاهما قابل للتثبيت بسهولة من Arduino IDE.

يمكن تقسيم البرنامج إلى أقسام مثل هذا:

  1. تحديد وإعلان جميع المتغيرات العالمية والأشياء الأخرى المطلوبة
  2. قم بتهيئة العرض ، وقم بتعيين المرجع الخارجي ورسم واجهة المستخدم (كل هذا موجود في وظيفة setup () ، حيث يجب تشغيلها مرة واحدة فقط)
  3. قراءة البيانات من الاتصال التسلسلي وتخصيصها في دالة المصفوفة (حلقة ())
  4. قراءة بيانات مستشعر درجة الحرارة الخارجية (وظيفة readExtTemp ())
  5. طباعة البيانات على الشاشة (وظيفة printData ())
  6. العودة إلى الحلقة

القسم الأول: الإعلانات والتعاريف

في القسم الأولي من الكود ، استخدمت الكثير من المؤشرات والمصفوفات ، لذلك تمكنت من ضغط الكثير من سطور التعليمات البرمجية المتكررة في أقصر لكتابة دورات FOR. نعم أنا كسول. كما ترى ، أعلنت عن مصفوفة مؤشر وقمت بتعبئة كل الصور من ملف pics.h. هذا جعل من الممكن القيام بخدعة دورة FOR لرسم جميع الرموز.

القسم 2: الإعداد () ، في الغالب رسم واجهة المستخدم

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

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

كما ترى في الكود ، قررت تجنب استخدام الصور على بطاقة SD ، حيث إنها بطيئة جدًا في التحميل. قررت تضمين جميع الرموز في ذاكرة PROGMEM ورسم الخطوط باستخدام الأمر drawLine () المخصص. هذا مفيد أيضًا لتصحيحات واجهة المستخدم الصغيرة.

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

الأسطر الأخيرة من هذه الوظيفة مخصصة لطباعة العناصر النائبة على TFT ، حتى يتلقى Arduino البيانات.

القسم 3: الحلقة الرئيسية () ، وجلب البيانات وتنسيقها

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

بروتوكول الاتصال الذي جئت به مقسم إلى جزأين: تنفيذ أولي بمجرد المصافحة وجزء البيانات الفعلي.

المصافحة ضرورية لتنفيذ ميزة الاتصال التلقائي عند بدء تشغيل برنامج الكمبيوتر. يذهب مثل هذا:

  • يرسل الكمبيوتر الشخصي سلسلة تأكيد الاتصال (في هذه الحالة تكون فقط "*****؛")
  • اردوينو يرسل ردًا

سهل جدا.

يبدو جزء البيانات كالتالي: "i: xxx، yyy، zzz، aaa،؛" المعنى هو:

"i" هو الفهرس ، وقد أطلق عليه اسم مكون المكون في الكود. قيم "أنا" هي:

  • أنا = 0 - الأسماء. القيم التالية هي الأسماء الموضحة في الصف الأول على الشاشة. سيتم إرسال هذا وطباعته على الشاشة مرة واحدة فقط ، اعتبارًا من اليوم من الصعب جدًا التبديل السريع بين وحدة المعالجة المركزية ووحدة معالجة الرسومات …
  • i = 1 - بيانات العمود الأول - تظهر القيم التالية في النصف الأيسر من الشاشة من أعلى إلى أسفل. في حالتي: درجة حرارة وحدة المعالجة المركزية ، تحميل وحدة المعالجة المركزية ، استخدام ذاكرة الوصول العشوائي ، درجة حرارة اللوحة الأم.
  • أنا = 2 - بيانات العمود الثاني - على النحو الوارد أعلاه ، ولكن للنصف الأيمن من الشاشة
  • أنا = 3 - أمر الطباعة. في هذه الحالة ، ستكون السلسلة التسلسلية الأولية فقط "3: ؛" لأن البيانات الأخرى ليست هناك حاجة.

"xxx ، yyy ، zzz ، aaa" هي القيم الفعلية. تتم قراءتها كسلاسل بواسطة اردوينو ويتم التنسيق بالكامل بواسطة برنامج الكمبيوتر الشخصي. بالنسبة إلى i = 0 ، تكون هذه القيم 14 حرفًا لكل منها لأسماء الأجهزة. بالنسبة إلى i = 1 أو 2 ، سيكون كل منهما ثلاثة أحرف فقط ، وهو ما يكفي لإظهار درجات الحرارة والإطارات في الثانية. بالطبع ":" ، "،" و "؛" الشخصيات ممنوعة في هذه المجالات.

":" هو الفاصل بين محدد المكوّن والقيم ، "،" هو فاصل القيم و "؛" هي نهاية السطر

عند استلام البيانات ، سيحفظها Arduino كسلسلة حتى "؛" تم استرجاع الرمز ، ثم سيبحث عن الرمز ":" وسيستخدمه للحصول على قيمة componentSelecor. سيتم استخدام هذا لوظيفة حالة التبديل لتحديد الإجراء الصحيح الذي يجب اتباعه. يتم استخدامه أيضًا لتحديد الفهرس الصحيح في صفيف allData.

بعد ذلك ، سيبحث Arduino عن الرمز "،" وسيشرع في وضع القيم في مصفوفة allData.

إذا كان مُحدد المكون يساوي 0 ، فسيتم تعيين علامة printName على true. إذا كان componentSelector هو 3 ، يتم استدعاء الدالتين readExtTemp () و printData ().

القسم 4: وظيفة readExtTemp ()

ليس هناك الكثير ليقوله هنا ، فهو يقرأ 32 مرة من الدبوس A5 ويخرج قيمة درجة الحرارة كسلسلة. أنا مع المتمردين ، لذلك أستخدم درجة مئوية. أي شيء يزيد عن 100 درجة مئوية غير صحيح ، لذا سيظهر بالشكل "---" على الشاشة. لأي شيء أقل من 100 درجة مئوية ، سيتم تنسيقه بحيث يكون به مسافات كافية لتغطية مساحة 3 أحرف على الشاشة. من الممكن إزالة المستشعر وإعادة إدخاله ولن تظهر أي قيمة غريبة.

القسم 5: وظيفة printData ()

كما هو الحال دائمًا ، اعتدت على الدورات لطباعة الأشياء بالتتابع على الشاشة. إذا كانت علامة printNames صحيحة ، فسيتم طباعة الأسماء ، وضبط العلم على false ، والمتابعة.

القسم 6: العودة إلى الحلقة

شرح الذات بما فيه الكفاية ، أود أن أقول …

pics.h

هنا قمت بتخزين جميع الرموز الخاصة بواجهة المستخدم. من الممكن استخدام قارئ بطاقة SD المضمن في الشاشة ، لكن كان لدي ذاكرة كافية في Arduino لأيقوناتي بالأبيض والأسود.

لقد قمت بتصميمها باستخدام Junior Icon Editor لأنه مجاني وجيد جدًا لرسم الرموز الصغيرة بالبكسل. اضطررت إلى تحويل ملفات الرموز (المحفوظة بتنسيق PNG) باستخدام أداة SKAARHOJ عبر الإنترنت.

الخطوة 4: كود فيجوال بيسك

كود فيجوال بيسك
كود فيجوال بيسك

هذا هو كود VB

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

كما قلت سابقًا ، لا يمكنني إنشاء واجهة مستخدم رسومية في C # أو لغات أخرى ، لكن كان لدي بعض الخبرات في Visual Basic منذ وقت طويل. لقد قمت بتنزيل إصدار Visual Studio Community (وهو مجاني بالطبع) مع بيئة Visual Basic. حسنًا ، كان علي أن أكتشف الكثير من الأشياء ، لأن آخر مرة استخدمت فيها VB كان الإصدار 2005 أو ما شابه … لكن الإنترنت مليء بالتلميحات الجيدة ، كالعادة.

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

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

البرنامج "النهائي" هو مجرد رمز درج مع قائمة منبثقة تعرض عناصر التحكم المختلفة ونموذج رئيسي مع مربعي قوائم يعرضان البيانات المرسلة إلى Arduino.

لقد قمت بتنفيذ وظيفة الاتصال التلقائي ووظيفة "البدء عند التمهيد". المزيد عن ذلك لاحقًا.

البرنامج الرئيسي هو مجرد تعديل لأمثلة ومقتطفات مختلفة من التعليمات البرمجية باستخدام مكتبة OpenHardwareMonitor ومكتبة RivaTuner Shared Memory.

يذهب البرنامج على النحو التالي:

  • الحصول على البيانات من مكتبات OpenHardwareMonitor و RTSSSm
  • تحضير وتنسيق كافة البيانات الخاصة ببروتوكول الاتصال
  • إرسال البيانات إلى Arduino
  • اشطف و كرر

بالطبع تتم قراءة أسماء الأجهزة في البداية وإرسالها مرة واحدة فقط.

يتم تنشيط عداد FPS فقط عند استخدام تطبيق متوافق (على سبيل المثال ، لعبة ، برنامج نمذجة ثلاثية الأبعاد ، وما إلى ذلك) ، وإلا فسيتم إرسال العنصر النائب "---" إلى الشاشة.

لن أتعمق في شرح كيفية الحصول على القيم من المكتبات ، حيث إنها موثقة جيدًا على الإنترنت ويمكن فهمها إلى حد ما من الكود. فقط أريد أن أخبر عن مشاكل الحصول على درجة حرارة اللوحة الأم لتظهر من خلال مكتبة OpenHardwareMonitor (من الآن فصاعدًا OHMonitor ، لأن الحياة قصيرة جدًا). لدي جهاز Asus Maximus VIII Gene MoBo ، وهو مزود بمستشعرات درجة حرارة fu ** ton على اللوحة الأم ، لكن OHMonitor يسميها على أنها مستشعر درجة الحرارة # 1 ، # 2 … # n ولا يوجد مكان محدد لدرجة الحرارة. لذلك اضطررت إلى تثبيت برنامج مجموعة Asus AI الفظيع ، حيث تحتوي المستشعرات على NAMES على الأقل ومقارنة درجات الحرارة المختلفة بين البرنامجين. يبدو أن مستشعر درجة الحرارة العام للوحة الأم هو رقم 2 لـ OHMonitor ، لذا كما ترون في Timer1_tick الفرعي تحت أشياء MoBo كان عليّ البحث عن اسم مستشعر يحتوي على السلسلة "# 2" للحصول على القراءة الصحيحة.

TL ؛ DR: عليك أن تعتني بنفسك بأجهزة استشعار درجة حرارة اللوحة الأم الصحيحة. الباقي على الأرجح جيد للذهاب.

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

وظيفة التوصيل التلقائي

هذه الوظيفة بسيطة في الواقع: إذا لم يكن الكمبيوتر متصلاً بـ Arduino ، فسيتم استدعاء هذه الوظيفة كل x مللي ثانية (بناءً على Timer1). يحاول الاتصال بكل منفذ COM على جهاز الكمبيوتر ، إذا نجح في إرسال سلسلة المصافحة "*****؛". إذا كانت الإجابة "R" ، فسيتم توصيل الجهاز الصحيح ويتم اتباع الإجراء العادي. عدا ذلك ، فإنه يحاول منفذ COM التالي.

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

وظيفة البدء عند التمهيد

أردت أن يبدأ البرنامج عند التمهيد. سهل جدا ، كما تقول. ضع رابطًا في المجلد المناسب ، كما تقول. لكن لا. نظرًا لمكتبتي OHMonitor و RTSS ، نحتاج إلى مستوى تنفيذ المسؤول لجمع المعلومات. هذا يعني شاشة UAC المزعجة تمامًا في كل مرة يتم فيها تشغيل هذا التطبيق. مستحيل. لذلك قمت بتعديل النص الذي كتبه ماثيو واي (الرابط هنا) لتحقيق بداية صامتة عند التمهيد. لقد قمت للتو بنسخ البرنامج النصي في ملف Resources1 ، مقسمًا إلى عدة أجزاء ، ثم قمت بتنفيذ روتين فرعي يقوم بإنشاء (أو إزالة) ملف مهام windows ، ومخصص مع الموقع الحالي القابل للتنفيذ للبرنامج ومثل هذه الأشياء.

رمز علبة النظام

بفضل كائنات NotifyIcon و ContextMenu ، تمكنت من تنفيذ طريقة سهلة ودسمة للتحكم في التطبيق. فقط انقر بزر الماوس الأيمن على أيقونة العلبة وستظهر القائمة. هناك هذه العمليات:

  • ابدأ عند التمهيد: يمكنك التحقق منه وإلغاء تحديده لتمكين أو تعطيل وظيفة البدء عند التمهيد
  • الاتصال التلقائي: كما هو مذكور أعلاه ، لكنه يتولى وظيفة التوصيل التلقائي
  • الاتصال / قطع الاتصال: يتولى الاتصال. لا يعمل مع تمكين الاتصال التلقائي
  • وقت التحديث: يعطي قائمة فرعية منسدلة ، يمكنك اختيار وقت التحديث من 1 إلى 10 ثوانٍ
  • تكبير: يفتح النافذة الرئيسية. مثل النقر المزدوج على الأيقونة
  • خروج: شرح ذاتي

تجميع البرنامج

لتجميع البرنامج ، ستحتاج على الأرجح إلى تنزيل وإضافة مرجع إلى المكتبات غير المدرجة في الكود.

يمكنك العثور على مكتبة OpenHardwareMonitor هنا. يجب عليك تنزيل البرنامج وفتح الملف المضغوط ونسخ ملف OpenHardwareMonitorLib. DLL في مجلد المشروع.

هنا هو الرابط الخاص بمكتبة RTSSharedMemoryNET ، يجب عليك تنزيلها وترجمتها للهندسة المعمارية الخاصة بك ، ثم نسخ RTSS [TL؛ DR] moryNET. DLL في مجلد مشروع yout.

أنت الآن بحاجة إلى إضافة مرجع في التعليمات البرمجية الخاصة بك ، والتعليمات هنا

فقط تأكد من تجميع مشاريع خادم RTSS [TL؛ DR] moryNET و PCHwMon لنفس البنية.

لقد قمت بتضمين برنامج إعداد جاهز ، بحيث يمكنك تثبيت كل شيء دون العبث باستخدام Visual Basic. تم تجميعه لـ x86 ، وسيعمل على كل من معماريات x86 و x64. يتطلب تشغيل. NET framework 4.7.2.

في أي حال ، سوف تحتاج إلى تثبيت RivaTuner. يمكنك العثور عليه هنا كتطبيق مستقل أو يمكنك تثبيت Msi Afterburner ، والذي يجب أن يتضمن RTServer.

الخطوة 5: التنفيذ النهائي للأجهزة

موصى به: