Yorumla.Net  


Geri Git   Yorumla.Net > Bilgisayar ve Teknoloji > Programlama > Visual Basic

Yorumla.Net Forum'a Hoşgeldiniz

! FORUMDAN YARARLANMAK İÇİN ÜYE OLUN !


Yeni Konu Gönder  Yanıtla
 
LinkBack Konu Araçları Görünüm Modları
Eski 07-05-2006, 14:33   #1 (permalink)
Üye Bilgileri
Administrator
 
jackal kullanıcısının avatarı
 
Giriş: Jun 2006
Şehir : İstanbul
Yaş: 26
Mesaj: 28,792
Blog Başlıkları: 5
Rep Gücü: 6000
Rep Puanı : 209867
Rep Seviyesi: jackal Repstarjackal Repstarjackal Repstarjackal Repstarjackal Repstarjackal Repstarjackal Repstarjackal Repstarjackal Repstarjackal Repstarjackal Repstar
jackal kullanıcısına MSN aracılığı ile mesaj yolla
Varsayılan Visual Basİc Ekran Koruyucu Yazma




Aslında ekran koruyucu (screen saver) programların normal programlardan pek farkı yoktur Ekran koruyucuları normal bir program gibi yazılır ancak derlenirken uzantı yerine EXE değil de SCR verilir Windows ekran koruyucuyu çalıştırırken bazı özel komut satırı parametreleri kullanır Bu parametreleri programınızdan işlerseniz ekran koruyucu programı uygun şekilde çalıştırmış olursunuz
Bir ekran koruyucu programda bulunması gereken işlemleri şu adımlarla özetleyebiliriz
  • 1 Ekran koruyucunun işlevini yerine getirecek kod Örneğin ekrana rasgele çizimler yapacak kod Bunu genellikle bir Timer kontrolünün Timer olayına yazabilirsiniz
  • 2 Ekran koruyucunun iki defa çalışmasını önleyecek kod
  • 3 Alt+Tab ve Ctrl+Alt+Del tuşlarını önleyecek kod
  • 4 Fare veya Klavyeden bir tuşa basıldığında ekran koruyucuyu sonlandırma
  • 5 /s, /p , /c parametrelerini işleyerek Windowstan gelen mesajlara göre ekran koruyucuyu çalıştıracak kod
  • 6 Formun tam ekran haline getirilmesi ve başlığının kaldırılması
  • 7 Ekran koruyucu uygulamasının SCR uzantısıyla derlenmesi ve Windows'a tanıtılması
Şimdi bu adımları sırasıyla anlatarak bir örnekte uygulayalım

Ekran koruyucunun işlevini yerine getirecek kod
Bu kısım ekran koruyucunuzun ekranda yapacağı işlemleri içerir Ekranda animasyonlar, müzik veya çizimler yaptırabilirsiniz
Örnek olarak ekranda rasgele daireler çizecek bir ekran koruyucu yapalım bunun için formumuza bir Timer yerleştirin ve Interval özelliğini 100 yaparak aşağıdaki kodu yazın




Private Sub Timer1_Timer()
FillColor = RGB(Rnd * 255, Rnd * 255, Rnd * 255)
FillStyle = 0
Circle (Rnd * Width, Rnd * Height), Rnd * Width,
RGB(Rnd * 255, Rnd * 255, Rnd * 255)
End Sub


Bu kodumuz, form üzerine aşağıdaki gibi ragele daireler çizcektir

Ekran koruyucunun iki defa çalıımasını önleyecek kod
Ekran koruyucunun iki defa çalışmasını önlemek için VB'deki App nesnesinin PrevInstance özelliğini kullanabiliriz Eğer uygulama zaten çalışıyorsa bu özellik true değerini alacaktır Bu özelliği kontrol ederek, zaten çalıııyorsa tekrar çalışmamasını sağlayabiliriz


Private Sub Form_Load()
Timer1Interval = 100
If AppPrevInstance Then
Unload Me
End If
End Sub

Alt+Tab ve Ctrl+Alt+Del tuşlarını önleyecek kod
Ekran koruyucu çalışırken Alt+Tab ve Ctrl+Alt+Del gibi Windows'a ait özel tuşların görevlerini yerine getirmemesi gerekir Bunu yapabilmek için SystemParametersInfo api'sini kullanabiliriz Ekran koruyucu çalıştığında bu Api'yi kullanarak ekran koruyucunun çalışmaya basladığını Windows'a bilidirmemiz, ekran koruyucu çalışmasinı bitirdiğinde de yine ayni Api ile uygulamanın sona erdiğini bildirmemiz gerekir
Bu işlem için formun Load ve UnLoad olaylarında durumu Windows'a aşağıdaki gibi bildirebiliriz


Option Explicit
Private Const SPI_SCREENSAVERRUNNING = 97

Api tanımı

Private Declare Function SystemParametersInfo Lib "user32"
Alias "SystemParametersInfoA"
(ByVal uAction As Long, ByVal uParam As Long, lpvParam As Any,
ByVal fuWinIni As Long) As Long


Private Sub Form_Load()
Timer1Interval = 100
If AppPrevInstance Then
Unload Me
End If

Ekran koruyucunun çalışmaya başladığını bildir

SystemParametersInfo SPI_SCREENSAVERRUNNING, 1, ByVal 1&, False
End Sub













Private Sub Form_Unload(Cancel As Integer)




Ekran koruyucunun bitişini bildir

SystemParametersInfo SPI_SCREENSAVERRUNNING, 0, ByVal 1&, False
End Sub

jackal Çevrimiçi   Alıntı Yaparak Cevapla
Sponsored Links
Eski 10-29-2006, 22:35   #2 (permalink)
Üye Bilgileri
Banned
 
Giriş: Oct 2006
Şehir : Rize
Mesaj: 3,420
Rep Gücü: 0
Rep Puanı : 13605
Rep Seviyesi: uMiT Usta YorumcuuMiT Usta YorumcuuMiT Usta YorumcuuMiT Usta YorumcuuMiT Usta YorumcuuMiT Usta YorumcuuMiT Usta YorumcuuMiT Usta YorumcuuMiT Usta YorumcuuMiT Usta YorumcuuMiT Usta Yorumcu
uMiT kullanıcısına MSN aracılığı ile mesaj yolla
Varsayılan

saol
uMiT Çevrimdışı   Alıntı Yaparak Cevapla
Yanıtla


Şu an bu konuyu görüntüleyen kullanıcı sayısı: 1 (0 üye ve 1 misafir)
 
Konu Araçları
Görünüm Modları



Saat 19:36.


Powered by vBulletin Version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0

Hosting Hizmetleri TOPlist Forums Directory