Penggunaan WinAPI untuk memanipulasi bentuk form

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.

Source Code Untuk Mengetahui Temperatur CPU / Processor

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

Source Code untuk Menjalankan Start Menu dengan Memanfaatkan SendKeys

Berikut ini adalah cara yang teman - teman dapat gunakan untuk menjalankan start menu. Dengan melakukan hal ini, seolah - olah teman - teman melakukan klik pada tombol start windows sehingga menampilkan start menu. Untuk melakukan ini kita menggunakan function sendkeys untuk mengirimkan kombinasi tombol CTRL + ESC sehingga start menu dapat ditampilkan. Berikut ini source codenya :

objShell = CreateObject("WScript.Shell")
objShell.SendKeys("^{esc}")

Function SendKey digunakan untuk mengirimkan perintah yang berupa tombol yang ada di keyboard, sehingga kita bisa menggantikan penekanan tombol di keyboard dengan syntak. Bila teman - teman ingin melakukan percobaan atau mau bereksplorasi dengan fungsi Sendkeys ini silahkan ganti syntak yang berwarna merah dengan daftar parameter penekanan tombol di bawah ini :

  • BACKSPACE = {BACKSPACE}, {BS}, or {BKSP}
  • BREAK = {BREAK}
  • CAPS LOCK = {CAPSLOCK}
  • DEL or DELETE = {DELETE} or {DEL}
  • DOWN ARROW = {DOWN}
  • END = {END}
  • ENTER = {ENTER} or ~
  • ESC = {ESC}
  • HELP = {HELP}
  • HOME = {HOME}
  • INS or INSERT = {INSERT} or {INS}
  • LEFT ARROW = {LEFT}
  • NUM LOCK = {NUMLOCK}
  • PAGE DOWN = {PGDN}
  • PAGE UP = {PGUP}
  • PRINT SCREEN = {PRTSC}
  • RIGHT ARROW = {RIGHT}
  • SCROLL LOCK = {SCROLLLOCK}
  • TAB = {TAB}
  • UP ARROW = {UP}
  • F1 = {F1}
  • CTRL = ^
  • ALT = %
  • SHIFT = +
  • Huruf, angka atau karakter lain bisa langsung ketikkan karakter yg dimaksud, misal ingin mengirim tombol CTRL+A maka tinggal berikan parameter ^A 
Sebenarnya function SendKeys dapat digantikan dengan syntak bawaan Visual Foxpro yaitu KEYBOARD. Dimana format dari function KEYBOARD adalah sebagai berikut :

KEYBOARD cKeyboardValue

Contoh :

KEYBOARD "{CTRL+LEFTARROW}" 
KEYBOARD "{CTRL+A}"

Daftar dari parameter untuk cKeyboardValue adalah sebagai berikut :

  • LEFTARROW = LEFTARROW
  • RIGHTARROW = RIGHTARROW
  • UPARROW = UPARROW
  • DOWNARROW = DNARROW
  • HOME = HOME
  • END = END
  • PAGE UP = PGUP
  • PAGE DOWN = PGDN
  • DEL = DEL
  • BACKSPACE = BACKSPACE
  • SPACEBAR = SPACEBAR
  • INS = INS
  • TAB = TAB
  • SHIFT+TAB = BACKTAB
  • Left Brace = LBRACE
  • Right Brace = RBRACE
  • ENTER = ENTER
  • F1 to F12 = F1, F2, F3 ... 
  • CTRL+F1 to CTRL+F12 = CTRL+F1, CTRL+F2 ... 
  • SHIFT+F1 to SHIFT+F12 = SHIFT+F1, SHIFT+F2 ... 
  • ALT+F1 to ALT+F12 = ALT+F1, ALT+F2, ALT+F3 ... 
  • ALT+0 to ALT+9 = ALT+0, ALT+1, ALT+2 ... 
  • ALT+A to ALT+Z = ALT+A, ALT+B, ALT+C ... 
  • CTRL+LEFT ARROW = CTRL+LEFTARROW
  • CTRL+RIGHT ARROW = CTRL+RIGHTARROW
  • CTRL+HOME = CTRL+HOME
  • CTRL+END = CTRL+END
  • CTRL+PAGE UP = CTRL+PGUP
  • CTRL+PAGE DOWN = CTRL+PGDN
  • CTRL+A TO CTRL+Z = CTRL+A, CTRL+B, CTRL+C ... 
  • CTRL+0 = CTRL+0
  • RIGHT MOUSE BUTTON = RIGHTMOUSE
  • LEFT MOUSE BUTTON = LEFTMOUSE
  • MOUSE BUTTON = MOUSE
  • ESC = ESC
Meskipun sebenarnya function Keyboard bawaan Visual Foxpro telah lengkap dan bisa menggantikan function SendKeys, akan tetapi untuk menjalankan start menu yang memerlukan kombinasi tombol CTRL+ESC hanya bisa dilakukan oleh function SendKeys sedangkan function Keyboard tidak diijinkan untuk melakukan perintah dengan kedua kombinasi tombol tersebut.


SELAMAT MENCOBA...!!

Source Code untuk Mengubah Password Login Windows

Berikut ini adalah cara yang teman - teman dapat gunakan untuk mengubah password dari username yang digunakan untuk login ke Windows. Cara ini menggunakan fasilitas net user yang dimiliki oleh command windows yang dapat digunakan untuk mengubah password berdasarkan username yang ada. Bila teman - teman ingin menggunakan dan memasukkan modul ini ke dalam aplikasi yang dibuat dari Visual Foxpro, silahkan coba source code di bawah ini :

cUSR="administrator"
cPSW="foxpromania"
Execscript("! net user "+cUSR+" "+cPSW)

Silahkan atur username yang mau diubah passwordnya melalui variable cUSR, dalam contoh diatas yang mau diubah passwordnya adalah username administrator. Dan silahkan atur password baru bagi username tersebut melalui variable cPSW, dalam contoh diatas password baru yang diberikan ke username administrator adalah foxpromania. Setelah menjalankan syntak diatas, silahkan log off windows dan login dengan password baru. Silahkan coba tetapi hati - hati jangan sampai lupa passwordnya....!!



SELAMAT MENCOBA...!!

Source Code untuk Mengatur Default Home Page di Internet Explorer

Berikut ini adalah cara yang dapat teman - teman gunakan untuk mengatur Home Page dari Internet Explorer. Dengan melakukan hal ini maka setiap user yang membuka Internet Explorer akan melihat halaman Website yang telah diatur sebagai Home Page. Salah satu fungsi dari melakukan pengaturan Home Page ini adalah membantu mempromosikan produk atau jasa yang teman - teman punya melalui aplikasi yang telah dibuat.

Jika teman - teman memasukkan modul ini ke dalam aplikasi yang teman - teman buat, dan mengarahkan alamat Home Page ke website atau blog yang teman - teman punyai, maka otomatis setiap user yang pernah menjalankan program atau aplikasi yang teman - teman buat, akan selalu membuka halaman blog atau website teman - teman ketika mereka menjalankan Internet Explorer. Dari situlah teman - teman dapat menjadikan ini sebagai cara untuk membantu mempromosi kan produk atau jasa yang teman - teman miliki. 

Untuk melakukan pengaturan Home Page secara otomatis melalui source code, teman - teman bisa menggunakan syntak di bawah ini :

objWshShell = CreateObject("WScript.Shell")
strHomePage = "http://www.foxpromania.co.cc"
objWshShell.RegWrite("HKCU\Software\Microsoft\"+;
 "Internet Explorer\Main\Start Page", strHomePage)

Silahkan isikan variable strHomePage dengan alamat dari blog atau website yang teman - teman miliki.



SELAMAT MENCOBA...!!