Tuesday, October 18, 2011

Penggunaan WinAPI untuk memanipulasi bentuk form

  No comments
Berikut ini adalah cara yang digunakan, untuk melakukan manipulasi bentuk form. Bentuk form yang normalnya kotak dengan memanfaatkan fungsi - fungsi WinAPI maka bentuknya bisa diubah sesuai dengan yang teman - teman inginkan. Bila ingin mencoba, silahkan coba ilustrasi dibawah ini (Tambahkan Syntak Di INIT Form dan silahkan otak - atik angka yg berwarna merah untuk merubah ukuran):

Bentuk Bulat
Declare Long CreateEllipticRgn IN WIN32API Long X1, Long Y1, ;
 Long X2, Long Y2
Declare Long SetWindowRgn IN WIN32API Long hWnd, Long hRgn, ;

 String bRedraw
SetWindowRgn(thisform.hwnd, ;

 CreateEllipticRgn(1,1,100,100), "True")

Bentuk Kotak
Declare Long CreateRectRgn IN WIN32API Long X1, Long Y1, ;
 Long X2, Long Y2
Declare Long SetWindowRgn IN WIN32API Long hWnd, Long hRgn, ;
 String bRedraw
SetWindowRgn(thisform.hwnd, ;
 CreateRectRgn(1,1,100,100), "True")

Bentuk Kotak dengan Ujung Melengkung
Declare Long CreateRoundRectRgn IN WIN32API Long X1, Long Y1, ;
 Long X2, Long Y2, Long X3, Long Y3
Declare Long SetWindowRgn IN WIN32API Long hWnd, Long hRgn, ;
 String bRedraw
SetWindowRgn(thisform.hwnd, ;
 CreateRoundRectRgn(1,1,100,100,50,50), "True")

Di Visual Foxpro bahkan tidak hanya form yang bisa dirubah bentuknya, jendela editor Visual Foxpro pun bisa diperlakukan sama, silahkan coba aja copas dan jalankan syntak diatas di Command Window dan ubah bagian syntak thisform.hwnd menjadi _vfp.hwnd. sedangkan bila ingin membuat form yang bentuknya sesuai selera (tidak hanya bulat), bisa pake skenario berikut ini :

  1. Siapkan gambar dengan bentuk tertentu, yang akan dijadikan sebagai bentuk form
  2. Tambahkan kontrol image ke form, dan arahkan properti picture  ke gambar tersebut
  3. Ubah property BackColor milik form ke warna yang jauh berbeda dengan warna gambar misal warna merah (255.0.0)
  4. Tambahkan syntak di bawah ini di INIT form  
  5. DECLARE INTEGER SetLayeredWindowAttributes IN WIN32API ;
     INTEGER HWND,  INTEGER crKey, ;   
     INTEGER bAlpha, INTEGER dwFlags 
    DECLARE INTEGER SetWindowLong IN user32.DLL INTEGER hWnd, ;
     INTEGER nIndex, INTEGER dwNewLong DECLARE INTEGER GetWindowLong IN user32.DLL INTEGER hWnd, INTEGER nIndex lnFlags = GetWindowLong(thisform.hwnd, -20)
    lnFlags = BITOR(lnFlags, 0x00080000)         SetWindowLong(thisform.hwnd, -20, lnFlags)   SetLayeredWindowAttributes(thisform.hwnd, ;
     RGB(255,0,0), 0, 1) 
    Pastikan angka 255,0,0 di syntak dan di BackColor adalah sama 5.
  6. Tinggal atur property TitleBar di form menjadi 0 - off, property BordeyStyle menjadi 0 - No Border dan jangan lupa jika ingin property ShowWindow tetap bernilai 0 / 1 maka ubah property Desktop menjadi .T., atau kalau tidak ubah saja property ShowWindow ke 2.

Sunday, October 16, 2011

Source Code Untuk Mengetahui Temperatur CPU / Processor

  No comments
Berikut ini adalah salah satu cara yang dapat digunakan untuk mengetahui temperatur atau suhu dari CPU atau prosessor dari PC atau Laptop. Cara ini nantinya bisa digunakan untuk melakukan kontrol terhadap komputer yang mempunyai beban kerja berat khususnya yang dipakai sebagai server, untuk mengendalikan kecepatan kerjanya, karena semakin tinggi suhu dari CPU / prosessor akan semakin memperlambat kerja prosesnya. Untuk melakukan hal itu bisa mencoba menggunakan syntak di bawah ini :

wbemServices=GetObject("winmgmts:" + "\\localhost\root\wmi")
wbemObjectSet=wbemServices.InstancesOf;
("MSAcpi_ThermalZoneTemperature")
For each Item in wbemObjectSet
iSuhu=(Item.CurrentTemperature - 2732) / 10
Endfor

Syntak diatas akan menampung suhu / temperatur CPU / Prosessor di variabel iSuhu dalam derajat Celcious. Bila ingin coba penerapan aplikasi di dalam sebuah form sederhanya bisa ambil contohnya di Contoh Sederhana Tampilkan Suhu Processor.


SELAMAT MENCOBA...!!