Windows API"Ler
-
mrb,
daha önce hiç API'leri görmedik araştırarak öğrenmem için hoca ödev verdi... kısa bir sunum hazırlamam gerekiyo ama önce iyice öğrenmek istiyorum 2 günlük vaktim var :) türkmen yayınevi'nin kitabından çalışıyorum orda giriş kısmını çok iyi anlatamamışlar sanki, aşağıdaki kodu yazdım ama "User-defined type not defined" hatası verdi...
Option Explicit
Private Declare Sub globalmemorystatus Lib "kernel32" (lpbuffer As MEMORTYSTATUS)
Private Type MEMORYSTATUS
dwLength As Long
dwMemoryLoad As Long
dwTotalPhys As Long
dwAvailPhys As Long
dwTotalPageFile As Long
dwAvailPageFile As Long
dwTotalVirtual As Long
dwAvailVirtual As Long
End Type
Private Sub form_load()
Timer1.Interval = 1000
End Sub
Private Sub timer1_timer()
Cls
Dim m As MEMORYSTATUS
globalmemorystatus m
Print "Bellek kullanımı %:", m.dwMemoryLoad
Print "Toplam RAM:", , m.dwTotalPhys / 1024 / 1024 & " MB"
Print "Boş RAM:", , m.dwAvailPhys / 1024 / 1024 & " MB"
End Subkodlarda sorun olduğunu sanmıyorum kitaptaki örneği yazdım ama sanırım başta bikaç ayar yapmam gerek kitap bunlardan söz etmemiş...
bi de varsa elinizde incelemek için bikaç API örneği rica ediorum (: şimdiden teşekkürler...
-
http://www.tahribat.com/forumdisplayfolder.asp?folderid=36477
Apilerle ilgili daha önceden bir kaynak vermiştim.İçerisinde açıklamaları ve kullanım şekilleriyle ilgili ayrıntılı bilgiler var.Kolay gelsin. -
api guide 3.7 die bir prg var hepsi neredeyse var tüm apiler işine yarar google a yaz zaten direk geliyor...
-
hmm... yardımlarınız için teşekkürler de ben konudan tırsmadım dersem yalan olur :)
yani ben nerde yanlış yapıyorum? 3. mesajdaki programı kullanarak mı API yapıcam? daha önce hiç API görmemiş-yapmamış biri olarak bana her şeyi en başından anlatıcak bi insan evladı arıyorum :)
ben şu yukarıda gördüğünüz kodları normal kod kısmına (general-declarations'a) yazdım ve forma bi timer ekledim...
belli bi hatam var ama çözemedim... daha doğrusu API'leri bile anlamadım... ne işe yarar çalışma mantığı nedir? vs. vs. netten baktım ama pek detaylı bilgi göremedim... aman diliyorum müridler :)
-
Geç mi kaldım bilmiyorum ama...
şöyle birşey yapabilrsin.
Projene bir modül ekle ve şu kısmı modüle yapıştır. Dikkat edersen başlık private değilde public.bunun amacı tüm formlarda bu apiyi kullanabilirsin..
Public Declare Sub GlobalMemoryStatus Lib "kernel32" Alias "GlobalMemoryStatus" (lpBuffer As MEMORYSTATUS)
Public Type MEMORYSTATUS
dwLength As Long
dwMemoryLoad As Long
dwTotalPhys As Long
dwAvailPhys As Long
dwTotalPageFile As Long
dwAvailPageFile As Long
dwTotalVirtual As Long 'toplam sanal bellek
dwAvailVirtual As Long 'kullanılabilir sanal bellek alanı
End TypeSonra bir timer oluştur,ve interval özelliğini 1000 yap.Aşağıdaki kodu da forma yapıştırırsan istediğine ulaşabilirsin. yazdığın kod neden çalışmadı anlayamadım.Kodlar düzgün gibi..
Private sub Timer1_timer()
dim MMR as MEMORYSTATUS
GlobalMemoryStatus MMR
print "Kullanılan bellek= " & (MMR.dwTotalPhys - MMR.dwAvailPhys) / 1024 & " KB"
End sub
-
Ek olarak apiyle ilgili küçük bir yazı var,belki aydınlanabilrsin
-
Api guide prosu çok süper =) 900küsur apinin kullanım yeri,amacı,kullanım örneği bi sürü şeysi var,kesinlikle indirip bakın ;)
-
o programı daha önce kullanmıştım, çok güzel bi program, tbt de verilmişti daha önceden. Apilerle ilgili çok güzel bilgiler,kodlar mevcut
-
çok saolun farklı bi API örneğini yapmıştım bu çalışmadığı için... sanırım kodlarda sorun vardı... ilgilendiğiniz için teşekkürler..
-
bu şekilde olacak arkadaş
Private Declare Sub GlobalMemoryStatus Lib "kernel32" (lpBuffer As MEMORYSTATUS)
Private Type MEMORYSTATUS
dwLength As Long
dwMemoryLoad As Long
dwTotalPhys As Long
dwAvailPhys As Long
dwTotalPageFile As Long
dwAvailPageFile As Long
dwTotalVirtual As Long
dwAvailVirtual As Long
End Type -
hata senin yazım şeklinde
bu seninki ;
Private Declare Sub globalmemorystatus Lib "kernel32" (lpbuffer As MEMORTYSTATUS)
buda normal çalışan şekli ;Private Declare Sub GlobalMemoryStatus Lib "kernel32" (lpBuffer As MEMORYSTATUS)
"GlobalMemoryStatus" yazısından kaynaklanıyo.
tam 30 dakikamı aldı meret ufacık bişey nelere maal oluyor yahu :)
