İçindekiler:

PC Donanım Monitörü: 6 Adım (Resimlerle)
PC Donanım Monitörü: 6 Adım (Resimlerle)

Video: PC Donanım Monitörü: 6 Adım (Resimlerle)

Video: PC Donanım Monitörü: 6 Adım (Resimlerle)
Video: Bilgisayarların İçinde Ne Var? - Bilgisayar Donanımları (3D) 2024, Temmuz
Anonim
PC Donanım Monitörü
PC Donanım Monitörü
PC Donanım Monitörü
PC Donanım Monitörü
PC Donanım Monitörü
PC Donanım Monitörü

Herkese selam. Bu projeye iki nedenden dolayı başladım: Geçenlerde bilgisayarımda bir su soğutma döngüsü oluşturdum ve kasadaki boşluğu görsel olarak dolduracak bir şeye ihtiyacım vardı VE OSD maskaralıkları doldurmadan sıcaklıkları ve diğer istatistikleri hızlı bir bakışla kontrol edebilmek istedim. ekranın köşesi. Elbette bunun için hazır çözümler var, ancak çoğu feng shui'me uymuyordu. Bu yüzden, kasamın dışına çıkan bir kablo ve windows görev çubuğu her zaman açık olan bir HDMI 7 ekranı koymak yerine, kendi oyuncağımı yapmaya karar verdim.

Ben bir mühendis ya da programcı olmadığım için, sadece havyası olan ve kendi kendine öğrenilen bazı bilgileri olan bir adam olduğum için, bu sadece adım adım öğretilebilir bir şey olmayacak, ayrıca soruna odaklanmaya çalışacağım. beni bu yapıya yönlendiren çözme ve araştırma yönleri.

SORUMLULUK REDDİ: TÜM ÇALIŞMALARIM YARATICI ORTAK ATITRIBUTION-SHAREALIKE 4.0 OLARAK PAYLAŞILIR. İNTERNET ÜZERİNDEN BİRÇOK ÖRNEKTEN İLHAM ALDIM, BU ÇALIŞMANIN BİR KISMI SİZİN OLDUĞUNU BİLİYORSANIZ, İLHAM İÇİN LÜTFEN BİZİMLE İLETİŞİME GEÇİNİZ. HİÇBİR İHLAL AMACI YOKTUR, HERHANGİ BİR HATAYI DÜZELTMEKTEN MUTLU OLURUM. TEŞEKKÜRLER

İKİNCİ SORUMLULUK REDDİ: İŞİM OLDUĞU GİBİ PAYLAŞILIR. KODLARIM VEYA TALİMATLARIMDAN HERHANGİ BİRİNİN KULLANIMINDAN KAYNAKLANAN HERHANGİ BİR HASARDAN SORUMLU DEĞİLİM

Gereçler

  • Arduino Nano (veya isterseniz UNO)
  • TFT Ekran. Benim durumumda bu bir ILI9486 / ILI9488L uyumlu 3.5" ekran.
  • Sıcaklık Sensörü. Mu durumda bir analog TMP36 sıcaklık sensörü.
  • Kablolar, teller, dupont konektörler (daha sonra anlatacağız)
  • (isteğe bağlı) Test için ekmek tahtası
  • (isteğe bağlı ancak önerilir) küçük bir perfboard

Adım 1: Fizibilite Çalışması (bir tür)

Dediğim gibi ben istemedim ve HDMI ekran PC kasamda sıkıştı, bu yüzden kendi yaratıcılığımın arkasına saklanarak internette benzer fikirleri aramaya başladım. Ve bu bir numaralı ipucu: Google sizin arkadaşınızdır (iyi, herhangi bir iyi arama motoru…). Artık hiçbir şeyin gerçekten orijinal olmadığı bir dünyada yaşıyoruz, ancak bu ifadeye olumsuz bir anlamla bakmak yerine, bunu avantajımız için kullanabiliriz: ne yaratmak istersen, muhtemelen bir yerlerde birileri zaten benzer bir şey yapmıştır, yani Bir fikri nasıl uygulayacağınızı bilmiyorsanız, büyük olasılıkla orada yararlı bilgiler bulacaksınız. İnternette arama yaparken genellikle iki kurala dikkat etmek yararlıdır:

  1. Herhangi bir aramanın 3. veya 4. sayfalarından sonra zahmet etmeyin, neredeyse her zaman zaman kaybıdır. Bunun yerine
  2. arama terimlerini değiştirin, soruyu başka bir bakış açısıyla yeniden ifade edin (yani: "arduino sıcaklık sensörü" -> "arduino ile sıcaklığı oku").

Aslında orası güzel projelerle dolu ve itiraf etmeliyim ki ilk günlerimi bu projelerin çoğunu çalışarak geçirdim. Ama ihtiyaçlarıma uygun bir şey istediğim için hiçbiri benim için gitmeye hazır değildi.

Özel bir şey yapmam gerektiğinden, kullanmak için doğru donanıma odaklanmaya ve yazılım tarafını daha sonraya bırakmaya karar verdim, çünkü yazılım her zaman oluşturulabilir ve ihtiyaçlara göre uyarlanabilir, diğer yandan donanım tarafında kullanılabilirliğe bağlıyım. ve özellikler.

Arduino'ya dayalı bir şey istedim çünkü zaten sahiptim, iyi belgelenmiş ve topluluğu gelişiyor. Burada sorun yok, daha önce de söylediğim gibi bol miktarda bilgi var.

Birkaç metre öteden net bir şekilde görülebilecek kadar büyük bir ekran istedim ve bu benim yapımın görünümüne ve hissine uyacaktı, bu, herhangi bir nokia ve LCD karakter ekranı hariç tuttu. OLED de küçük oldukları için söz konusu değil. Bu yüzden bir TFT renkli ekranı seçtim. PC'nin içinde olacağı için dokunmatik ekrana gerek yok. Amazon'da zaten Arduino için tasarlanmış bir 3.5 buldum, ~15€. Yeterince iyi.

Şimdi, donanım tam olarak belirlendikten sonra, yazılıma odaklandım.

Hemen hemen tüm projeler, Arduino tarafı oldukça benzer. Sunucu uygulamasından veri toplamak için sadece kodu ekran ve iletişim protokolü için uyarlamam gerekiyor. Bilgisayar tarafında, çoğu proje C, C++, C#, python tabanlıydı ve çoğu proje sadece bir CLI arabirimi veya Windows hizmeti benzeri bir sunucu sunuyordu. Bunun yerine bir GUI istedim. Windows'ta hiç C benzeri bir dil kullanmadım, GUI binasını bir yana bırakın. Ancak 15 yıl önce biraz Visual Basic öğrendim, bu yüzden denedim ve Microsoft'tan ücretsiz Visual Studio sürümünü indirdim.

Pek çok benzer projeyi inceledikten sonra, tüm donanım bilgilerini almak için OpenHardwareMonitor'u ve FPS için RivaTuner'ı kullanmaya karar verdim, çünkü bunlar ücretsiz ve yeterince belgelenmiş.

2. Adım: Donanım Testi

Donanım Testi
Donanım Testi
Donanım Testi
Donanım Testi
Donanım Testi
Donanım Testi

Havyayı açmadan ve herhangi bir elektronik bileşeni zaman ve mekanda sonsuza kadar sabitlemeden önce, bir test prototipi oluşturmak için iyi bir uygulamadır (ikinci ipucu). Neyse ki, artık 1995 değil. Günümüzde, küçük breadboard'larda bile oldukça karmaşık prototipler düzenlemek oldukça kolaydır. Benim durumumda, TFT ekranının Arduino Uno için pin çıkışında bir düşüş vardı, bu yüzden onu Arduino uno'ma düşürdüm ve örnek kitaplıklarla oynamaya başladım ve çalışma prensiplerini ve sınırlamalarını anlamak için referans kılavuzlarını okudum.

Bu noktada, çizgileri ve bitmapleri nasıl çizeceğimi ve metin yazacağımı anladım, bu yüzden tüm ikincil şeyleri sonraya bırakarak yazılım kodlaması ile uğraşmaya başladım, ancak buraya sıcaklık sensörünü ekleyeceğim.

Bir noktada ekranda boş bir nokta vardı ama PC sensörlerinden gelen verilerin hiçbiri gerçekten kullanışlı değildi, bu yüzden kasanın içine ortam sıcaklığı için bir sıcaklık sensörü koymaya karar verdim. Ekran neredeyse tüm Arduino pinlerini yiyor, neyse ki analog pin A5 kullanılmıyor, bu yüzden bir TMP36 bağladım. Bir DHT22'yi bile test ettim ama bu uygulama için çok fazla.

TMP36 için bir çok örnek var, bunlardan birini bir fonksiyona kopyaladım. TMP35'in 3 pini var, Vin 5V'a gidiyor, GND toprağa gidiyor ve Out A5 pinine gidiyor. Vin ve GND arasına 0.1uF seramik kondansatör yerleştirdim. İhtiyaç olduğunu söylüyorlar. Muhtemelen bu durumda işe yaramaz, ama… Daha iyi sıcaklık okuması için Arduino analog referans voltajını 3.3v pinine bile ayarladım. Bu durumda hala işe yaramaz, ama…

Adım 3: Arduino Kodu

Bu adımdaki açıklamayı takip etmek için lütfen birlikte verilen Arduino kodunu indirin ve açın. Flood yapmadan açık olması için kodda yeterince yorum bırakmaya çalıştım.

MCUFRIEND_kbv ve Adafruit GFX kitaplıklarına kesinlikle ihtiyacınız olacak. Her ikisi de Arduino IDE'den kolayca kurulabilir.

Program aşağıdaki gibi bölümlere ayrılabilir:

  1. tüm global değişkenleri ve diğer gerekli şeyleri tanımlayın ve bildirin
  2. ekranı başlatın, harici referansı ayarlayın ve kullanıcı arayüzünü çizin (tüm bunlar, yalnızca bir kez çalışması gerektiği için setup() işlevinde bulunur)
  3. seri bağlantıdaki verileri okuyun ve diziye ayırın (loop() işlevi)
  4. harici sıcaklık sensörü verilerini oku (readExtTemp() işlevi)
  5. verileri ekrana yazdır (printData() işlevi)
  6. döngüye geri dön

BÖLÜM 1: Beyanlar ve tanımlar

Kodun ilk bölümünde çok sayıda işaretçi ve dizi kullandım, bu nedenle FOR döngüleri yazmak için çok sayıda tekrarlayan kod satırını daha kısa sürede sıkıştırabildim. Evet, tembelim. Gördüğünüz gibi bir işaretçi dizisi tanımladım ve onu pics.h dosyasındaki tüm resimlerle doldurdum. Bu, tüm simgeleri çizmek için FOR döngüsü hilesini yapmayı mümkün kıldı.

BÖLÜM 2: setup(), çoğunlukla UI çizimi

Saydam bir arka plana sahip olmadığı için varsayılan yazı tipiyle yerleştim, bu nedenle silmeye gerek kalmadan eski bir metin üzerine yeni bir metin satırı yazılmasına izin veriyor. Başka bir yazı tipi kullanmak, yeni bir satır yazmadan önce eski metnin üzerine siyah bir kare çizmek anlamına gelirdi ve bu da hoş olmayan bir titreme etkisine yol açardı.

Bazı testlerden sonra okunabilirlik ve gösterilen bilgiler arasında iyi bir uzlaşma sağladım. Ekranı iki sütuna ve 5 satıra böldüm. Sol sütun, yukarıdan aşağıya CPU adı, sıcaklık, yük, RAM kullanımı ve anakart sıcaklığı dahil olmak üzere CPU ve anakart verileri için geçerlidir. Doğru olanı GPU'ya adanmıştır ve GPU adı, sıcaklık, yük, Saniye Başına Kare sayacı ve harici sıcaklık sensörünü içerir.

Kodda da görebileceğiniz gibi, yüklenmesi gerçekten yavaş olduğu için SD kartta resim kullanmaktan kaçınmaya karar verdim. Tüm ikonları PROGMEM hafızasına dahil etmeye ve çizgileri özel drawLine() komutu ile çizmeye karar verdim. bu, küçük UI düzeltmeleri için de kullanışlıdır.

Kullanıcı arayüzüne bir derinlik görünümü vermek için yapılan zayıf girişimde, her şeyden iki tane (çizgiler, dikdörtgenler, resimler) farklı renklerle ve küçük bir ofsetle çizdim. Ne yazık ki umduğum sonuç bu değil ama işime yarayacak.

Bu işlevin son satırları, Arduino verileri alana kadar TFT'deki yer tutucuları yazdırmak içindir.

BÖLÜM 3: ana döngü(), veri alma ve biçimlendirme

Sihir burada gerçekleşir: veriler seri olarak alınır, doğru değişkene atanır ve ardından yazdırılır. Tüm bunları en az sayıda satırda başarmak için bir switch case komutu ve bir for döngüsü kullandım.

Birlikte geldiğim iletişim protokolü iki bölüme ayrılmıştır: bir kez el sıkışma ile ilk çalıştırma ve gerçek veri bölümü.

PC programı başladığında otomatik bağlantı özelliğini uygulamak için el sıkışma gereklidir. Bu böyle devam ediyor:

  • PC el sıkışma dizesini gönderir (bu durumda sadece "*****;" olur).
  • Arduino bir yanıt geri gönderir

Basit.

Veri kısmı şöyle görünür: "i:xxx, yyy, zzz, aaa,;" anlamı:

"i" dizindir, kodda buna componentSelector adını verdim. "i" değerleri şunlardır:

  • i=0 - İSİMLER. Aşağıdaki değerler, ekranda ilk satırda gösterilen isimlerdir. Bu, ekrana yalnızca bir kez gönderilecek ve yazdırılacak, bugün itibariyle CPU ve GPU'yu çalışırken değiştirmek oldukça zor…
  • i=1 - 1. SÜTUN VERİLERİ - ekranın sol yarısında yukarıdan aşağıya aşağıdaki değerler gösterilir. Benim durumumda: CPU sıcaklığı, CPU yükü, RAM kullanımı, Anakart sıcaklığı.
  • i=2 - 2. SÜTUN VERİLERİ - yukarıdaki gibi, ancak ekranın sağ yarısı için
  • i=3 - KOMUT YAZDIR. Bu durumda ham seri dize sadece "3:;" olacaktır. çünkü diğer verilere ihtiyaç yoktur.

"xxx, yyy, zzz, aaa" gerçek değerlerdir. bunlar arduino tarafından string olarak okunur ve tüm biçimlendirme PC programı tarafından yapılır. i=0 için bu değerlerin her biri donanım adları için 14 karakterdir. i=1 veya 2 için bunlar, sıcaklıkları ve saniye başına kareleri göstermek için yeterli olan her biri yalnızca üç karakter olacaktır. Tabii ki ":", ", " ve ";" Bu alanlarda karakterler yasaktır.

":", componentSelector ve değerler arasındaki ayırıcıdır, ", ", değerler ayırıcısıdır ve ";" satırın sonu

Verileri alırken, Arduino onu ";" yazana kadar bir dizi olarak kaydedecektir. sembolü alınırsa ":" sembolünü arar ve bunu componentSelecor değerini almak için kullanır. Bu, takip edilecek doğru prosedürü seçmek için durum değiştirme işlevi için kullanılacaktır. Ayrıca allData dizisinde doğru dizini seçmek için kullanılır.

Bundan sonra Arduino ", " sembolünü arayacak ve değerleri allData dizisine koymaya devam edecektir.

componentSelector 0 ise, printName bayrağı true olarak ayarlanır. componentSelector 3 ise readExtTemp() ve printData() fonksiyonları çağrılır.

4. Bölüm: readExtTemp() işlevi

Burada söylenecek fazla bir şey yok, A5 pininden 32 kez okur ve sıcaklık değerini string olarak verir. Ben Asiler'denim, bu yüzden Celsius kullanıyorum. 100°C'nin üzerindeki değerler yanlıştır, bu nedenle ekranda "---" olarak gösterilecektir. 100°C'nin altındaki herhangi bir şey için, ekranda 3 karakterlik alanı kapsayacak kadar yeterli alana sahip olacak şekilde formatlanacaktır. Sensörü çıkarıp yeniden takmak mümkündür ve garip bir değer gösterilmeyecektir.

Bölüm 5: printData() işlevi

Her zaman olduğu gibi, ekranda sırayla bir şeyler yazdırmak için döngüler kullandım. printNames bayrağı true ise, isimleri yazdırır, bayrağı false olarak ayarlar ve devam eder.

Bölüm 6: döngüye geri dön

Yeterince açıklayıcı, derdim ki…

pics.h dosyası

Burada UI için tüm simgeleri sakladım. Ekranda bulunan SD kart okuyucuyu kullanmak mümkün ancak Arduino'da siyah beyaz ikonlarım için yeterli hafızam kaldı.

Onları Junior Icon Editor ile tasarladım, çünkü ücretsiz ve küçük simgeleri piksel boyamak için oldukça iyi. Simge dosyalarını -p.webp

Adım 4: Visual Basic Kodu

Visual Basic Kodu
Visual Basic Kodu

İşte VB kodu

DİKKAT: İlk kez bir Visual Studio projesini paylaşıyorum. Proje klasörlerini kopyaladım ve sıkıştırdım. Bu işe yaramazsa, lütfen bu tür projeleri paylaşmanın daha iyi bir yolunu bildirin. Teşekkürler

Daha önce de söylediğim gibi, C# veya diğer dillerde GUI oluşturamıyorum, ancak uzun zaman önce Visual Basic'te bazı deneyimlerim oldu. Visual Studio Community sürümünü (tabii ki ücretsiz) Visual Basic ortamıyla indirdim. Pek çok şeyi çözmem gerekiyordu, VB'yi en son kullandığımda sürüm 2005 falandı… Ama internet her zamanki gibi iyi ipuçlarıyla dolu.

Bazı arayüz öğelerini çözdükten sonra, yeni sürüm aslında eskisinden daha kolay ve daha esnektir.

Bu program için Windows formuna sahip ancak sistem tepsisi simgesinden tamamen yönetilebilir bir şey istedim. Fonksiyonların çıktı değerlerini okumak için metin kutuları ve listeler ve bunları test etmek için bazı komut düğmeleri koymayı sevdiğimden, formu neredeyse yalnızca hata ayıklama amacıyla kullandım.

"Son" program, çeşitli kontrolleri gösteren bir açılır menü ve Arduino'ya gönderilen verileri gösteren iki liste kutusu içeren bir ana form içeren bir tepsi simgesidir.

Bir otomatik bağlantı işlevi ve bir "önyüklemede başla" işlevi uyguladım. Daha sonra.

Ana program, OpenHardwareMonitor kitaplığını ve RivaTuner Paylaşılan Bellek kitaplığını kullanan çeşitli örnek ve kod parçacıklarının bir uyarlamasıdır.

Program şöyle devam ediyor:

  • OpenHardwareMonitor ve RTSSSm kitaplıklarından verileri alın
  • iletişim protokolü için tüm verileri hazırlamak ve biçimlendirmek
  • verileri Arduino'ya gönder
  • durulayın ve tekrarlayın

elbette donanım adları başlangıçta okunur ve yalnızca bir kez gönderilir.

FPS sayacı yalnızca uyumlu bir uygulama (örneğin bir oyun, bir 3D modelleme programı vb.) kullanıldığında etkinleşir, aksi takdirde ekrana "---" yer tutucusu gönderilir.

İnternette iyi belgelendiği ve koddan bir şekilde anlaşılabilir olduğu için, değerlerin kütüphanelerden nasıl alınacağını açıklamak için derinlemesine gitmeyeceğim. Sadece OpenHardwareMonitor (bundan sonra OHMonitor'da, çünkü hayat çok kısa) kitaplığı aracılığıyla anakart sıcaklığının gösterilmesinin sorunlarından bahsetmek istiyorum. Anakart üzerinde fu**ton sıcaklık sensörleriyle donatılmış bir Asus Maximus VIII Gene MoBo'm var, ancak OHMonitor bunları Sıcaklık sensörü #1, #2 … #n olarak adlandırıyor VE hiçbir yerde sıcaklık konumu belirtilmiyor. Bu yüzden, sensörlerin en azından NAMES'e sahip olduğu ve iki program arasındaki çeşitli sıcaklıkları karşılaştırdığı korkunç Asus AI paketi yazılımını kurmak zorunda kaldım. Görünüşe göre anakartım genel sıcaklık sensörü OHMonitor için #2, bu yüzden MoBo öğelerinin altındaki Timer1_tick alt bölümünde görebileceğiniz gibi, doğru okumayı elde etmek için "#2" dizesini içeren bir sensör adı aramak zorunda kaldım.

TL; DR: Kendiniz için doğru anakart sıcaklık sensörlerine bakmanız gerekecek. Gerisi muhtemelen gitmek iyidir.

Ancak bu sadece Sürüm 1, bu aygıtı diğer bilgisayarıma kurmayı planlıyorum, bu yüzden muhtemelen sensörleri seçmenin bir yolunu uygulayacağım ve hatta hareket halindeyken Arduino'daki arayüzü yeniden tasarlayacağım.

Otomatik Bağlantı İşlevi

Bu fonksiyon aslında basittir: PC bir Arduino ile bağlı değilse, her x milisaniyede bir (Zamanlayıcı1'e göre) bu fonksiyon çağrılır. Bilgisayardaki her COM bağlantı noktasına bağlanmaya çalışır, başarılı olursa "*****;" el sıkışma dizesini gönderir. Cevap "R" ise doğru cihaz bağlanır ve normal prosedür izlenir. Aksi takdirde, bir sonraki COM bağlantı noktasını dener.

Gördüğünüz gibi, bu fonksiyonda birçok istisna var. Bunun nedeni, hata çıkışı olmadan tamamen tak ve çalıştır olmasını istedim. İstisnaları ele alarak, harici cihazın tamamen yokluğunu yok saymayı başardım ve hatta program için bir kesme hatası oluşturmadan cihazı istediğim zaman takabilir ve çalıştırabilirim.

Önyüklemede Başlat işlevi

Programın açılışta başlamasını istedim. Oldukça kolay, diyorsunuz. Uygun klasöre bir bağlantı koyun, diyorsunuz. Ama hayır. OHMonitor ve RTSS kitaplıkları nedeniyle, bilgi toplamak için yönetici yürütme düzeyine ihtiyacımız var. Bu, bu uygulama her başlatıldığında tamamen sinir bozucu UAC ekranı anlamına gelir. Mümkün değil. Bu yüzden, önyüklemede sessiz bir başlangıç elde etmek için Matthew Wai tarafından yapılan komut dosyasını (buradaki bağlantı) uyarladım. Betiği sadece Resources1 dosyasına kopyaladım, birkaç bölüme ayırdım, ardından mevcut programın yürütülebilir konumu ve benzeri şeylerle özelleştirilmiş bir Windows görev dosyası oluşturan (veya kaldıran) bir alt yordam uyguladım.

Sistem Tepsisi Simgesi

NotifyIcon ve ContextMenu nesneleri sayesinde, uygulamayı kontrol etmenin kolay ve kalın bir yolunu uygulayabildim. Tepsi simgesine sağ tıklayın ve menü belirir. Bu seçenekler var:

  • Önyüklemede başla: Önyüklemede başlatma işlevini etkinleştirmek veya devre dışı bırakmak için işaretleyebilir ve işaretini kaldırabilirsiniz.
  • Otomatik bağlantı: yukarıdakiyle aynı, ancak otomatik bağlantı işlevini yerine getirir
  • Bağlan/Bağlantıyı Kes: bağlantıyı yönetir. Otomatik Bağlantı etkinken çalışmıyor
  • Yenileme süresi: bir açılır alt menü verir, yenileme süresini 1 ila on saniye arasında seçebilirsiniz
  • Büyüt: ana pencereyi açar. Simgeye çift tıklamakla aynı
  • Çıkış: kendini açıklayıcı

Yazılımın Derlenmesi

Yazılımı derlemek için muhtemelen kodda yer almayan kitaplıklara bir referans indirmeniz ve eklemeniz gerekecektir.

OpenHardwareMonitor kütüphanesini burada bulabilirsiniz. Yazılımı indirmeli, zip dosyasını açmalı ve OpenHardwareMonitorLib. DLL dosyasını proje klasörüne kopyalamalısınız.

İşte RTSSharedMemoryNET kitaplığı için link, indirip mimariniz için derlemeniz ve ardından RTSS[TL;DR]moryNET. DLL dosyasını yout proje klasörüne kopyalamanız gerekir.

Şimdi kodunuza bir referans eklemeniz gerekiyor, talimatlar burada

Aynı mimari için hem RTSS[TL;DR]moryNET hem de PCHwMon sunucu projelerini derlediğinizden emin olun.

Visual Basic ile uğraşmadan her şeyi kurabilmeniz için hazır bir kurulum programı ekledim. x86 için derlenmiştir, hem x86 hem de x64 mimarilerinde çalışacaktır. Çalıştırmak için. NET çerçevesi 4.7.2'yi gerektirir.

Her durumda, RivaTuner'ı yüklemeniz gerekecek. Burada bağımsız bir uygulama olarak bulabilir veya RTServer'ı içermesi gereken Msi Afterburner'ı yükleyebilirsiniz.

Adım 5: Son Donanım Uygulaması

Önerilen: