SetConsoleTextAttribute ile komut satırını renklendirmek

Kategori Assembly
06.06.2017
2685 Okunma

Esen!
Sıkıcı siyah + gri komut satırından siz de benim gibi sıkıldıysanız bu ders aradığınız şey: Assembly ile komut satırını renklendirmek. Bunun için SetConsoleTextAttribute APIsini kullanacağız.


hConsoleOutput konsol ekranının tamponunun tutamağı. Komut satırı en azından GENERIC_READ modundan açılmış olmalı.
wAttributes ile renk ataması yapılıyor. Aslında tam doğrusu karakter davranışları atanıyor:

Ben bir uygulama yazdım onun üzerinden anlatayım:

Arkadaşlar GetStdHandle ile üzerinde çalıştığımız konsolun tutamğını döndürüyoruz. Böylece SetConsoleTextAttribute APIsi için gerekli olan tutamağı elde etmiş oluyoruz geriye son bir parametre kalıyor o da renk değerimiz. Yani yukardaki kodda SetConsoleTextAttribute APIsinin sonundaki eax aslında rengi belirtiyor. Yukarıdaki Windows sabitleri ile metnin arka yüzünü ya da ön yüzünü değiştirebiliyoruz. Bu sabitleri birbirleriyle karıştırıp ara renkler de elde edilebiliyor. Tabi bu sabitleri aslında sayısal değerlere denk geliyor işlemci seviyesinde ve ben sizin için bu değerleri çıkarttım:

RadASM ile kodlama yapıyorsanız sondaki altı karakteri benim yazdığım gibi onaltılık da yazabilirsiniz, normalk onluk da yazabilirsiniz. Burada ben bu renkleri deneyerek adlandırdım. Belgelendirme de benim koyu yazdıklarıma ya da parlak yazdıklarıma normal diyor olabilir. Çok takılmayın =)

[dm]155[/dm]

Comments of this post

Henüz yorum bulunmuyor!