Windows API"Ler

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ditto_pitto
    ditto_pitto's avatar
    Kayıt Tarihi: 13/Nisan/2007
    Dişi

    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 Sub

     

    kodlarda 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... 


    Where ignorance is bliss, it"s folly to be wise!..
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    inside
    anonim6918524
    anonim6918524's avatar
    Banlanmış Üye
    Bilgi/Destek Madalyası Üstün Hizmet Madalyası
    Kayıt Tarihi: 16/Temmuz/2005
    Erkek
    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.

    λ
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Ravage
    Ravage's avatar
    Kayıt Tarihi: 02/Ocak/2006
    Erkek
    api guide 3.7 die bir prg var hepsi neredeyse var tüm apiler işine yarar google a yaz zaten direk geliyor...

    Buralar bizden sorulur... Ravage@tahribat.com
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ditto_pitto
    ditto_pitto's avatar
    Kayıt Tarihi: 13/Nisan/2007
    Dişi

    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 :)


    Where ignorance is bliss, it"s folly to be wise!..
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ertan
    ertan's avatar
    Kayıt Tarihi: 21/Temmuz/2005
    Erkek

    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 Type

    Sonra 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


    Bundan sonra sadece insan olanlarla muhattap olacağım.. Ona göre karşıma gelin...
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ertan
    ertan's avatar
    Kayıt Tarihi: 21/Temmuz/2005
    Erkek

    Ek olarak apiyle ilgili küçük bir yazı var,belki aydınlanabilrsin

    http://dosyam.net/?id=b0mwec


    Bundan sonra sadece insan olanlarla muhattap olacağım.. Ona göre karşıma gelin...
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    wasd
    wasd's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek
    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 ;)

    :)
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ertan
    ertan's avatar
    Kayıt Tarihi: 21/Temmuz/2005
    Erkek
    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

    Bundan sonra sadece insan olanlarla muhattap olacağım.. Ona göre karşıma gelin...
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ditto_pitto
    ditto_pitto's avatar
    Kayıt Tarihi: 13/Nisan/2007
    Dişi
    ç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..

    Where ignorance is bliss, it"s folly to be wise!..
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    kemalperk
    kemalperk's avatar
    Kayıt Tarihi: 13/Eylül/2005
    Erkek

    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


    01
  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    kemalperk
    kemalperk's avatar
    Kayıt Tarihi: 13/Eylül/2005
    Erkek

    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 :) 


    01
Toplam Hit: 2324 Toplam Mesaj: 11