Benim kompleks dediğim kodlar aslında kompleks değil ve üstelik oldukça da güzel..."SmallPor" isimli bir komponent...
ücretsiz...
Bu komponenti yükleyince tek bir satırla yazdığımız port okuma ya da yazma kodu windowsun tüm işletim sistemlerinde çalışıyor...Üstelik bu komponenti kullanarak yazdığım program ticari olarak kullanılıyor ve hiç bir problem olmadı şu ana kadar...
Yukardaki kodları görünce aklıma hemen şu geldi:Bir zamanlar bu bileşeni bulmadan önce api'leri kullanarak port okuma yazma kodları yazmaya çalışıyordum ama ne yaptımsa bir türlü başaramamıştım...Xp de okumak bu kadar basitse smalport daki bu komplex kodlar ne için acaba?Diye sordum kendime...Her neyse lafı uzatmadan smalportun linkini veriyorum...
http://www.sendmefile.com/00499195Aşağıda da bunla ilgili bir delphi sitesinde yazdığım makalemi kopyaladım...
COMPONENT "smallport" 4 Eylül 2006 22:50
tekkolar
Özellikle Delphi'yi İleri Derecede Kullananlar İçin Çok Yararlı Olacağına İnandığım Bir "Component" SmallPort...
Bilen Bilir Port Erişimi İle İlgili Delphi'de Bazı Zorluklar Var...
Delphi'de Port Erişimi İçin Direkt Bir Kod Ya da Komut Yoktur...
Ve Bir Diğer Zorluk da Windows'un İşletim Sistemlerine Göre Bu Kodların Farklılık Göstermesidir...
Yani Mesela Windows 98 için yazılmış bir Port Erişim Kodu XP için Hiçbir Anlam İfade Etmiyor...
Bir Çok Kişi Win95/98/ME için Geçerli Olan Port Erişim Kodlarını Bilir Ya da Kolayca Bulur Ama Bu Kodlar Yalnızca Bu İşletim Sistemleri İçin Geçerlidir...
Aşağıda Link ini Verdiğim "SmallPort" Component'ini Delphi'ye Nesne Olarak Yüklediğinizde Bu Component İle Tek Bir Satır Kodla Windows'un Bütün İşletim Sistemleri İçin Geçerli Olacak Port Erişim Kodunu Yazmış Olacaksınız...
İyi Hoş Ama Bunun da Bir Bedeli Var: O da Win95/98/ME için C:\Windows\System klasöründe smport.vxd dosyası ya da WinNT/XP/2000 için ise C:\Windows\system32 klasöründe smport.sys dosyası yer almalıdır...
(Ya da Sadece Programın İcra Edildiği Klasörde Bu dosyaların Yeralması da yeterlidir Ama Benim Tavsiyem System de olması daha güvenli)...
Eğer Bu Açıklamalar Yeterli Değil Diyen Varsa Ayrıntı Ya da Örnek İsteyebilir...