Bugün İşsizim

Yaklaşık bir yıldır yazılım geliştirme uzmanı olarak çalıştığım Link Bilgisayar’dan dün itibariyle ayrıldım. Dolaysıyla bugün işsizim; ama bu sadece bir gün sürecek J Çünkü yarın itibariyle de yazılım geliştirme kariyerime Bizitek’te devam ediyor olacağım. Hayırlı, uğurlu olsun J

Windows Sistem Renklerini Değiştirme

Kodsal yolla windowsun sistem renklerini değiştirebilmek için user32.dll API’si ve ona ait SetSysColors fonksiyonu kullanılmaktadır. Windowsdaki mevcut tanımlanmış renklerin kodlarını da aynı API’den GetSysColor ile alabiliriz. Bu fonksiyonları projelerimizde kullanabilmek için aşağıdaki gibi tanımlıyoruz.C# için;

[DllImport("user32.dll")]
static extern bool SetSysColors(int cElements, int[] lpaElements, int[] lpaRgbValues);

[DllImport("user32.dll")]
static extern uint GetSysColor(int nIndex);
 

VB.NET içinse;

Declare Function SetSysColors Lib “user32″ (ByVal nChanges As Integer, ByRef lpSysColor As Integer, ByRef lpColorValues As Integer) As Long

Declare Function GetSysColor Lib “user32″ (ByVal nIndex As Long) As Long  

Set işlemi yapılırken verilen parametreler sıra ile değiştirilmek istenen renk sayısı, değiştirilecek olan renk dizisi, ve bu renklerin yeni değerleridir.  Renk bilgisini ise sabit tanımlanmış değişkenlerden verebilmekteyiz.  Ve bunlar sıra ile şunlardır:

COLOR_SCROLLBAR – 0 : Scrollbar rengi

COLOR_BACKGROUND – 1 : Masaüstü rengi

COLOR_DESKTOP – 1 :  Masaüstü rengi

COLOR_ACTIVECAPTION – 2 : Aktif pencere başlığında sol taraftaki renk (gradient aktif ise) 

COLOR_INACTIVECAPTION – 3 : Pasif pencere(ler)in başlığında sol taraftaki renk (gradient aktif ise) 

COLOR_MENU – 4 : Menü arkaplan rengi

COLOR_WINDOW – 5 : Pencere arkaplan rengi

COLOR_WINDOWFRAME – 6 : Pencere çerçevesinin rengi

COLOR_MENUTEXT – 7 : Menülerdeki yazı rengi

COLOR_WINDOWTEXT – 8 : Penceredeki yazı rengi

COLOR_CAPTIONTEXT – 9 : Pencere başlık yazısının rengi

COLOR_ACTIVEBORDER – 10 : Aktif pencerenin çerçeve rengi

COLOR_INACTIVEBORDER – 11 : Pasit pencere(ler)in çerçeve rengi

COLOR_APPWORKSPACE – 12 : MDI uygulamaların arkaplan rengi

COLOR_HIGHLIGHT – 13 : Seçili alan  (SelectedItem) arkaplan rengi

COLOR_HIGHLIGHTTEXT – 14 : Seçili alan yazısının rengi

COLOR_BTNFACE – 15 : 3D nesnelerin görünen yüzünün ve dialag boxların arkaplan rengi

COLOR_3DFACE –15 :  3D nesnelerin görünen yüzünün ve dialag boxların arkaplan rengi

COLOR_BTNSHADOW – 16 : 3D nesneler için gölge rengi

COLOR_3DSHADOW – 16 : 3D nesneler için gölge rengi

COLOR_GRAYTEXT – 17 : Gri (disable edilmiş) yazı rengi

COLOR_BTNTEXT – 18 : Buton üzerindeki yazıların rengi

COLOR_INACTIVECAPTIONTEXT – 19 : Pasif başlıklardaki yazının rengi

COLOR_BTNHIGHLIGHT – 20 : Butonun 3D isaretlenmesi rengi

COLOR_3DHIGHLIGHT – 20 : 3D nesneler için seçim rengi

COLOR_3DHILIGHT – 20 : 3D nesneler için seçim rengi

COLOR_3DDKSHADOW – 21 : 3D nesneler için koyu gölge rengi

COLOR_3DLIGHT – 22 : 3D nesneler için açık gölge rengi

COLOR_INFOTEXT – 23 : Tooltiplerin yazı rengi

COLOR_INFOBK – 24 : Tooltiplerin arka plan rengi

COLOR_HOTLIGHT – 26 : Tıklanmış hyperlinklerin rengi

COLOR_GRADIENTACTIVECAPTION – 27 : Aktif pencere başlığında sol taraftaki renk (gradient aktif ise). Gradient özellikleri için SPI_GETGRADIENTCAPTIONS fonksiyonu kullanılabilir.  

COLOR_GRADIENTINACTIVECAPTION – 28 : Pasif pencere(ler)in sağ taraftaki renk (gradient aktif ise)

COLOR_MENUHILIGHT – 29 : Flat menüde seçili alan rengi (Windows 2000’de desteklenmemektedir.) 

COLOR_MENUBAR – 30 : Flat menü çubuğunun arka plan rengi (Windows 2000’de destekelenmemektedir.) 

Kod içerisinden yukarıdaki sabitlerden yararlanılarak mevcut renk değerleri okunanabilir (get) ve ya değiştirilebilir (set). Örneğin grafik uygulamalarımızda windows renkleriyle ile çizim-yazı vs yapmamız gerekebilir. Bu tip durumlarda GetSysColor ile istediğimiz renk bilgisini elde ebiliriz. Mesela masaüstü rengini şöyle alabiliriz: 

uint a = GetSysColor(1); //uint a = GetSysColor(COLOR_DESKTOP);

İlave olarak .NET ortamından windows renklerine ulaşmak için SystemColors sınıfından da yararlanabiliriz. Ancak bu sınıftan sadece okuma yapabildiğimiz için bu renkleri değiştirmek istersek SetSysColors fonksiyonunu kullanmamız gerekecektir. (Yapılan değişiklik windows genelinde etkili olacaktır.) Örneğin seçili alan (selecteditem) rengini şöyle değiştirebiliriz:  

SetSysColors(1, COLOR_HIGHLIGHT, RGB(0, 100, 0)); //SetSysColors(1,13,RGB(0,100,0)); 

RGB kodları içinde RGB-Hexadecimal renk tablosuna bakılabilir. 

Lost Oyunu Geliyor

Oyun firması Ubisoft tarafından yapılmasına başlanan Lost oyununun ilk görüntüleri yayınlandı. Yaklaşık bir dakika süren görüntülerden oyunun First Person Action (FPA) türünde dizayn edildiğini anlıyoruz. Dizi ile aynı mantığa sahip oyunda bir adaya düşen oyuncular bu adada hayatta kalmak için savaşacakmış. Dizideki ana karakterlerle diyalog içinde, bilinmezlikleri çözerek ilerlemeyi gerektiren oyun dizinin geçtiği mekanları da içeriyor. Oyunun çıkış tarihi ise Lost’un dördüncü sezonunun da başlangıcı olan 2008 Şubat ayı olarak belirlenmiş.

Kaynak: www.teknoajan.com 

Görev Çubuğundaki Uygulamalar Listesi

.NET ortamından windows bileşenlerine ulaşmak ve windowsun hali hazırda yaptığı işlemlere ulaşmak, kullandığı fonksiyonları bizim de kullanabilmemiz için windows API lerden yararlanırız. Bu anlamda kullanacağımız API listesine Platform Invoke (P/Invoke) sitesinden ulaşabiliriz.

Görev çubuğundaki (taskbar)  uygulamalara ulaşabilmek için de user32.dll API’sinden yararlanıyoruz.  C# uygulamarında API tanımlarını DllImport attribute’u ile yapıyoruz:

[DllImport("user32.dll")]
private static extern int GetWindowText(int hWnd, StringBuilder title, int size);

Burada user32.dll API’si içinde yeralan GetWindowText fonksiyonunu projemizde kullanacağımızı bildiriyoruz. 

Örnek uygulamamızda yer alan EnumWindows fonksiyonu ile windowsta açık olan pencerelerin listesini elde ediyoruz.  EnumWindowsProc ile de bu ekranlarda tek tek dolaşarak başlığını GetWindowText fonksiyonu ile alıyoruz. Ve bu değerleri bir listboxa yazdırıyoruz.

Örnek Uygulamayı İndir

Muhteşem !!!

Büyütmek için resme tıklayınız.

Geçenlerde maille ile ulaşan bu resmi görünce çok etkilendim. İçin de bulunduğumuz dönem itibariyle çok anlam içeriyordu benim için. (siyasi değil, Temmuz ayı yani yaz) Halbuki şimdi o muhteşem güneşin altında ay ve yıldız arasında denize girmek hiç de fena olmazdı yani. Ama maalesef işyeri politikasından ötürü bu yaz tatile çıkamıyorum. :(

Ayrıca bu resmi bana göndererek beni ne kadar mutlu(!)  eden sevgili dostum Atakan ÖZTÜRK’e teşekkürler… :)
Düzeltme: İşyerim politikasını değiştirdi :) 

LOST 6. Sezon Geri Sayım Sayacı

LOST 6. sezonun ne zaman başlayacağını mı merak ediyorsunuz? Kaç gün kaldı diye sabırsızlanıyor musunuz? O zaman bu merakınızı gidermek için yapılmış olan geri sayım sayacını sitenize buradan ekleyebilirsiniz. Yan tarafta bir örneğini görebileceğiniz sayaçın 3 farklı boyutu bulunuyor ve kaç gün – saat kaldığını gösteriyor.

SQL Server 2008: Katmai

Yazılım devi Microsoft, veritabanı yönetim sistemi olan SQL Server’ın en yeni versiyonu olan SQL Server 2008’e özel bir isim atadı ve çıkış zamanını açıkladı.  SQL Server 2008’in çıkış zamanı olarak 2008’in ikinci çeyreği gösterildi. Resmi olarak kullanılma zamanı ise 27 Şubat 2008. Denver’da gerçekleştirilen Worldwide Partner Conference’da, beklenen zamandan ileride bir tarihin açıklanmasının nedeni olarak; bazı stratejik değişiklikler öne sürüldü. Bunun yanı sıra, SQL Server 2008, “Katmai” özel ismiyle bilinecek. 

Kaynak: http://shiftdelete.net

Now Reading Eklentisi

WordPress ile blog olayına girdikten sonra eklentileri incelemeye başladım. Çok okuyan birisi olarak okuduğum kitaplar hakkında görüşlerimi paylaşmak istiyordum. Now Reading eklentisi bu iş için mükemmel oldu.  Eklentiyi Türkçe’leştiren Umut Doğan’a da buradan ayrıca teşekkürler. Kullanımını sağ taraftaki barda “Ne Okuyorum” başlığı altında görebilirsiniz. Kitapları eklerken ISBN numarasından Amazon’dan aratıyor ve girmenize kolaylık sağlıyor. Tabi çeviri kitaplarda sorun olmazken Türkçe kitaplarda zorluk yaşanıyor ve manuel girilmek zorunda kalınıyor.