merhaba arkadaşlar ;
artık vb.net 2005'e gectiğim icin , elimde kalan ozel vb.net 2003 kodlarını gun yuzune cıkartmaya başlıyorum.

Şimdiki kodumuz bilgisayarda arayan kişinin telefon numarasının gozukmesi.bu işlemi herhangi bir component kullanmadan , microsoftun standart componentleri ile yapacağız. MsCommlib.ocx dosyasını internetten bulup indirin ve ocx dosyasını system32 altına koyarak regsvr32 ile kaydettirin.
şimdi artık bu dosyayı projemizde kullanabiliriz ;
visual basic programımızı acalım ve mscomlib dosyamızı projemize ekleyelim. bir adet timer , bir adet button ve bir adet text nesnesinde projemize ekleyelim.

Nesnelerin ozelliklerini aşağıdaki gibi ayarlayalım ;

Kod:
Button nesnesinin Text ozelliğini = Bağlan Timer1 nesnesinin Interval ozelliğini = 100 Timer1 nesnesinin Enable ozelliğini = False


olarak ayarlayalım.


Şimdi ilk aşamamız modem'e AT Komutlarının gonderilmesi.Bu komutları gondererek hem modemin CallerID destekleyip desteklemediğini oğreneceğiz , hemde modemi gelen cağrıları almasını icin bir nevi uyandıracağız.

AT komutlarının modeme gonderilmesi ;

Kod:
Dim mscomm1 As New MSCommLib.MSComm Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Try mscomm1.CommPort = 3 mscomm1.PortOpen = True mscomm1.Output = "AT#CID=1" & Chr(13) TextBox1.Text = TextBox1.Text & mscomm1.Input mscomm1.Output = "AT%CCID=1" & Chr(13) TextBox1.Text = TextBox1.Text & mscomm1.Input mscomm1.Output = "AT+VCID=1" & Chr(13) TextBox1.Text = TextBox1.Text & mscomm1.Input mscomm1.Output = "AT#CC1" & Chr(13) TextBox1.Text = TextBox1.Text & mscomm1.Input mscomm1.Output = "AT*ID1" & Chr(13) TextBox1.Text = TextBox1.Text & mscomm1.Input Timer1.Enabled = True Catch ex As Exception MsgBox(ex.message) End Try End Sub
donen değerler text nesnemize yazılacak. her komuttan sonra donen değerlerden herhangi birisi OK ise modemimiz CallerID ozelliğini destekliyor , eğer donen tum değerler ERROR ise modemimiz bu ozelliği desteklemiyor demektir.

donen bir değerin OK olduğunu gorduk ve timer1 nesnemizin enable ozelliğini true yaptık. boylece her 100 milisaniyede bir modemi kontrol etmeye başlıyoruz ve gelen değerleri text nesnesine yazıyoruz.

Kod:
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick TextBox1.Text = TextBox1.Text & mscomm1.Input End Sub
eğer herhangi bir arama varsa text nesnesindeki goruntu aşağıdaki gibi olacak

RING

DATE ......

TIME......

NUMBER ......

RING

RING

şimdi geldi bu text nesnesindeki değişimi yakalayıp icinden numarayı cıkartmaya
text nesnesinin change ozelliğinden modemcontrol olarak aşağıdaki kodu cağırabilirsiniz ;

Kod:
Sub modemcontrol() Try Dim m As String Dim r As String = TextBox1.Text m = r.Substring(123, 1) If m = "0" Then r = r.Substring(123, 11) GoTo there End If If m = "P" Then Timer1.Enabled = False mscomm1.PortOpen = False TextBox1.Text = "" MsgBox("Gizli numaradan arama yapılıyor") Else r = r.Substring(123, 7) End If there: Timer1.Enabled = False mscomm1.PortOpen = False TextBox1.Text = "" msgbox("Arayan numara : " & r ) Catch ex As Exception End Try End Sub
bu kodu istediğiniz gibi kullanabilirsiniz. boylece muşterileriniz icin daha iyi program yazabilirsiniz. Bu işi yapan componentler 90-100 dolardan başlıyor. yaptıkları işlem nerdeyse aynı.






__________________