Kamis, 28 Oktober 2010

Desktop Locker

Aplikasi ini merupakan aplikasi pengunci desktop / komputer sederhana. Aplikasi ini akan membatasi hampir seluruh aktivitas komputer sampai aplikasi ini di-unlock / diakhiri.
Meskipun ini sederhana, namun Anda harus mengingat password-nya.
Download source code-nya disini.

Label: , ,

Rabu, 27 Oktober 2010

Fungsi-fungsi String

Dalam Visual Basic terdapat banyak fungsi yang digunakan untuk mengolah data bertipe string. Berikut ini adalah penjelasan tentang fungsi-fungsi string yang sering digunakan.
  • LCase(x) , digunakan untuk mengubah semua huruf dalam string x menjadi kecil semua. Contoh:
    s = LCase("Aku Bisa") , maka nilai s adalah "aku bisa"

  • UCase(x) , digunakan untuk mengubah semua huruf dalam string x menjadi besar semua. Contoh:
    s = LCase("Aku Bisa") , maka nilai s adalah "AKU BISA"

  • Left(x,n) , digunakan untuk mengambil karakter dari string x yang dimulai dari kiri sebanyak n. Contoh:
    VB 6.0, s = Left("Aku Bisa", 3)
    VB .NET, s = Strings.Left("Aku Bisa", 3)
    maka nilai s adalah "Aku"

  • Right(x,n) , digunakan untuk mengambil karakter dari string x yang dimulai dari kanan sebanyak n. Contoh:
    VB 6.0, s = Right("Aku Bisa", 3)
    VB .NET, s = Strings.Right("Aku Bisa", 3)
    maka nilai s adalah "isa"

  • Mid(x,m,n) , digunakan untuk mengambil karakter dari string x yang dimulai dari karakter ke m sebanyak n. Contoh:
    s = Mid("Aku Bisa", 2, 2) , maka nilai s adalah "ku"

  • LTrim(x) , digunakan untuk menghapus karakter spasi di bagian kiri dari string x.
    Contoh: s = LTrim("     Aku Bisa     ") , maka nilai s adalah "Aku Bisa     "

  • RTrim(x) , digunakan untuk menghapus karakter spasi di bagian kanan dari string x.
    Contoh: s = RTrim("     Aku Bisa     ") , maka nilai s adalah "     Aku Bisa"

  • Trim(x) , digunakan untuk menghapus karakter spasi di bagian kiri dan kanan dari string x. Contoh:
    s = Trim("     Aku Bisa     ") , maka nilai s adalah "Aku Bisa"

  • Len(x) , digunakan untuk menghitung jumlah karakter dari string x. Contoh:
    s = Len("Aku Bisa") , maka nilai s adalah 8.

  • String(n,x) , digunakan untuk membuat karakter x sebanyak n. Contoh:
    VB 6.0,  s = String(10, "A")
    VB .NET, s = New String("A", 10)
    maka nilai s adalah "AAAAAAAAAA"

  • Space(n) , digunakan untuk membuat karakter spasi sebanyak n. Contoh:
    s = Space(10) , maka nilai s adalah "          "

  • Asc(x) , digunakan untuk mengetahui nilai ASCII dari karakter x. Contoh:
    s = Asc("A") , maka nilai s adalah 65

  • Chr(x) , digunakan untuk mengetahui karakter dari nilai ASCII x. Contoh:
    s = Chr(65) , maka nilai s adalah "A"

  • InStr(x,n) , digunakan untuk mengetahui posisi karakter n didalam string x. Contoh:
    s = InStr("Aku Bisa", "u") , maka nilai s adalah 3

  • StrComp(x,y,n) , digunakan untuk membandingkan string x dan string y berdasarkan n. Jika n bernilai 0 maka akan dibandingkan secara case-sensitive, sedangkan jika n bernilai 1 maka akan dibandingkan secara biasa. Contoh:
    s = StrComp("Aku", "aku", 0) , maka nilai s adalah -1
    s = StrComp("Aku", "aku", 1) , maka nilai s adalah 0
    Khusus untuk fungsi ini, jika menghasilkan nilai 0 maka dianggap sebagai True, dan jika menghasilkan nilai selain 0 maka dianggap False.

  • StrConv(x,n) , digunakan untuk mengubah huruf dalam string x berdasarkan nilai n. Contoh:
    s = StrConv("Aku Bisa", 1) , maka nilai s adalah "AKU BISA"
    s = StrConv("Aku Bisa", 2) , maka nilai s adalah "aku bisa"
    s = StrConv("aku bisa", 3) , maka nilai s adalah "Aku Bisa"

  • StrReverse(x) , digunakan untuk membalikkan posisi huruf dalam string x. Contoh:
    s = StrReverse("Aku Bisa") , maka nilai s adalah "asiB ukA"

  • Replace(x,m,n) , digunakan untuk menggantikan karakter m dalam string x dengan karakter n. Contoh:
    s = Replace("Kamu Juga Bisa", "a", "o") , maka nilai s adalah "Komu Jugo Biso"

  • Split(x,n)(i) , digunakan untuk memecah string x berdasarkan karakter n dengan penomoran i. Contoh:
    s = Split("Kuda,Kerbau,Sapi,Kambing,Macan", ",")(0) , maka nilai s adalah "Kuda"
    s = Split("Kuda,Kerbau,Sapi,Kambing,Macan", ",")(1) , maka nilai s adalah "Kerbau"
    s = Split("Kuda,Kerbau,Sapi,Kambing,Macan", ",")(4) , maka nilai s adalah "Macan"

  • Join(x,n) , digunakan untuk menggabungkan rangkain string x yang dihubungkan dengan string n. Contoh:
    VB6, s = Join(Array("Hani", "Indah", "Budi", "Herman"), " & ")
    VB.NET, s = Join(New Object() {"Hani", "Indah", "Budi", "Herman"}, " & ")
    maka nilai s adalah "Hani & Indah & Budi & Herman"



Fungsi-fungsi diatas juga dapat djadikan fungsi lain diantaranya adalah :
  1. Mengecek keberadaan string dalam string. Misalnya Anda ingin memeriksa ada tidaknya string "a" dalam string "anda berhasil", maka kodenya adalah :
    If CBool(InStr("anda berhasil", "a")) Then
    'jika ada
    Else
    'jika tidak ada
    End If
  2. Menghitung karakter tertentu dalam string. Misalnya Anda ingin menghitung karakter "a" dalam string "anda berhasil", maka kodenya adalah :
    t = "anda berhasil"
    s = Len(t) - Len(Replace(t, "a", ""))
    maka nilai s adalah 3

  3. Menghitung jumlah kata dalam string. Misalnya Anda ingin menghitung jumlah kata dalam string "anda berhasil", maka kodenya adalah :
    s = UBound(Split("anda berhasil", " ")) + 1
    maka nilai s adalah 2

  4. Menghilangkan karakter tertentu dalam string. Misalnya Anda ingin menghilangkan karakter "a" dalam string "anda berhasil", maka kodenya adalah :
    s = Replace("anda berhasil", "a", "")
    maka nilai s adalah "nd berhsil"

  5. Mengisi variabel array dinamis dengan string. Contoh kodenya sebagai berikut :
    Dim Binatang() As String
    Binatang = Split("Kuda,Kerbau,Sapi,Kambing,Macan", ",")
    maka variabel Binatang memiliki 5 index (0-4) dengan rincian:
    nilai Binatang(0) = "Kuda"
    nilai Binatang(1) = "Kerbau"
    nilai Binatang(2) = "Sapi"
    nilai Binatang(3) = "Kambing"
    nilai Binatang(4) = "Macan"



CATATAN : Dalam beberaa fungsi string, terdapat optional property 'CompareMethod'. Bila properti ini bernilai Binary, maka fungsi tersebuat melakukan metode case-sensitive terhadap string. Sedangkan bila bernilai Text, maka fungsi tersebuat tidak melakukan metode case-sensitive.

Label: , , ,

Jumat, 22 Oktober 2010

File dan Folder Properties

Fungsi berikut ini digunakan untuk membuka jendela properties dari file, folder, dan drive.

[ VB 6.0 ]
Buat Module baru dan ketikkan :
Private Type SHELLEXECUTEINFO
cbSize As Long
fMask As Long
hwnd As Long
lpVerb As String
lpFile As String
lpParameters As String
lpDirectory As String
nShow As Long
hInstApp As Long
lpIDList As Long
lpClass As String
hkeyClass As Long
dwHotKey As Long
hIcon As Long
hProcess As Long
End Type
Private Declare Function ShellExecuteEx Lib "shell32" Alias "ShellExecuteExA" (SEI As SHELLEXECUTEINFO) As Long

Public Sub ShowProperties(ByVal PathName As String)
Dim SEI As SHELLEXECUTEINFO
SEI.cbSize = Len(SEI)
SEI.fMask = &HC
SEI.lpVerb = "properties"
SEI.lpFile = PathName
Call ShellExecuteEx(SEI)
End Sub




[ VB .NET ]
Buat Module baru dan ketikkan :
<System.Runtime.InteropServices.StructLayout(System.Runtime.InteropServices.LayoutKind.Sequential)> Private Class SHELLEXECUTEINFO
Public cbSize As Integer
Public fMask As Integer
Public hwnd As Integer
<System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.LPWStr), Microsoft.VisualBasic.VBFixedString(255)> Public lpVerb As String = ""
<System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.LPWStr), Microsoft.VisualBasic.VBFixedString(255)> Public lpFile As String = ""
<System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.LPWStr), Microsoft.VisualBasic.VBFixedString(255)> Public lpParameters As String = ""
<System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.LPWStr), Microsoft.VisualBasic.VBFixedString(255)> Public lpDirectory As String = ""
Public nShow As Integer
Public hInstApp As Integer
Public lpIDList As Integer
Public lpClass As String
Public hkeyClass As Integer
Public dwHotKey As Integer
Public hIcon As Integer
Public hProcess As Integer
End Class

Private Declare Auto Function ShellExecuteEX Lib "shell32.dll" Alias "ShellExecuteEx" (ByVal SEI As SHELLEXECUTEINFO) As Integer

Public Sub ShowProperties(ByVal PathName As String)
Dim SEI As New SHELLEXECUTEINFO
SEI.cbSize = System.Runtime.InteropServices.Marshal.SizeOf(GetType(SHELLEXECUTEINFO))
SEI.lpFile = PathName
SEI.fMask = &HC
SEI.lpVerb = "properties"
ShellExecuteEX(SEI)
End Sub




Contoh : Misalkan Anda inngin membuka properti file yang berlokasi di "D:\Documents\Picture\Logo\Gambar.jpg", tinggal ketikkan :
ShowProperties ("D:\Documents\Picture\Logo\Gambar.jpg")

Label: , , ,

Kamis, 21 Oktober 2010

Mengetahui Tipe Drive

Fungsi berikut ini digunakan untuk mengetahui tipe suatu drive, apakah harddisk, cd-rom atau yang lain. Buat sebuah Module baru dan ketikkan :
Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Integer

Public Function DriveType(ByVal Letter As String) As String
Select Case GetDriveType(Letter)
Case 2: DriveType = "Removable" 'floppy, flashdrive, sd card
Case 3: DriveType = "Fixed" 'harddisk
Case 4: DriveType = "Remote"
Case 5: DriveType = "CD-Rom"
Case 6: DriveType = "RAM Disk"
Case Else: DriveType = "Unknown"
End Select
End Function

Misalkan kita ingin mengetahui drive C, tinggal ketikkan saja :
s = DriveType("C:\")

Label: , , ,

Selasa, 19 Oktober 2010

Special Folder

Special folder atau folder khusus adalah folder yang digunakan Windows untuk menyimpan data tertentu, misalnya folder My Documents, My Music, Favorites, History, Recent, dll. Berikut ini adalah kode fungsi untuk mengetahui lokasi folder-folder tersebut.

[ VB 6.0 ]
Buat Module baru dan ketikkan :
Private Declare Function SHGetSpecialFolderLocation Lib "shell32" (ByVal hwnd As Long, ByVal nFolder As Long, Pidl As Long) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal Pidl As Long, ByVal FolderPath As String) As Long

Enum SpecialFolderConst
sfAppData = 26
sfCDBurning = 59
sfCookies = 33
sfDesktop = 0
sfFavorites = 6
sfFonts = 20
sfHistory = 34
sfLocalAppData = 28
sfMyDocuments = 5
sfMyMusic = 13
sfMyPictures = 39
sfMyVideo = 14
sfNetHood = 19
sfPrintHood = 27
sfProfile = 40
sfProgramFiles = 38
sfRecent = 8
sfSendTo = 9
sfStartMenu = 11
sfStartMenuPrograms = 2
sfStartUp = 7
sfSystem = 37
sfTempInternet = 32
sfTemplates = 21
sfWindows = 36
End Enum

Public Function SpecialFolder(ByVal SFConst As SpecialFolderConst) As String
Dim Pidl As Long
Dim s As String * 260
Dim l As Long
l = SHGetSpecialFolderLocation(0, SFConst, Pidl)

If l = 0 Then
l = SHGetPathFromIDList(Pidl, s)
If l = 1 Then
s = Left(Trim(s), InStr(s, Chr(0)) - 1)
SpecialFolder = Trim(s)
End If
End If
End Function


[ VB .NET ]
Dalam VB.NET sudah terdapat fungsi untuk mengetahui lokasi Special Folder, contoh kodenya (mengetahui lokasi folder My Documents) adalah :
s = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
Tapi jika fungsi diatas kurang memadai, maka harus dibuat fungsi buatan sendiri seperti berikut :
Buat Module baru dan ketikkan :
Private Declare Function SHELL32_GetFolderPath Lib "shell32.dll" Alias "SHGetFolderPathA" (ByVal hwndOwner As Integer, ByVal nFolder As Integer, ByVal hToken As Integer, ByVal dwFlags As Integer, ByVal lpszPath As String) As Integer

Enum SpecialFolderConst
sfAppData = 26
sfCDBurning = 59
sfCookies = 33
sfDesktop = 0
sfFavorites = 6
sfFonts = 20
sfHistory = 34
sfLocalAppData = 28
sfMyDocuments = 5
sfMyMusic = 13
sfMyPictures = 39
sfMyVideo = 14
sfNetHood = 19
sfPrintHood = 27
sfProfile = 40
sfProgramFiles = 38
sfRecent = 8
sfSendTo = 9
sfStartMenu = 11
sfStartMenuPrograms = 2
sfStartUp = 7
sfSystem = 37
sfTempInternet = 32
sfTemplates = 21
sfWindows = 36
End Enum

Public Function SpecialFolder(ByVal SFConst As SpecialFolderConst) As String
Dim s As String = Space(260)
Dim i As Integer
i = SHELL32_GetFolderPath(0, SFConst, 0, 0, s)
If i = 0 Then
i = InStr(s, vbNullChar)
Return IIf(i > 0, Left(s, i - 1), s)
Else
Return ""
End If
End Function



Untuk contoh penggunannya (My Documents) ketikkan :
s = SpecialFolder(sfMyDocuments)

Label: , , , ,

Mendeteksi Ctrl, Shift, dan Alt

Tombol keyboard Ctrl, Shift, dan Alt biasanya digunakan untuk kombinasi shortcut, tapi sayangnya tidak semua event dalam Visual Basic mampu mendeteksi ketiga tombol tersebut. Maka dari itu, harus dibuatkan kode untuk mendeteksinya, berikut kodenya :

Di bagian '(Declarations)' dari Form ketikkan :
Private Declare Function GetKeyState Lib "user32" (ByVal vKey As Integer) As Integer
Const kShift = 16
Const kCtrl = 17
Const kAlt = 18

Untuk contoh penggunaannya (mendeteksi tombol Ctrl) ketikkan :
If GetKeyState(kCtrl) And &H8000 Then
'jika tombol Ctrl ditekan
End If
Sedangkan untuk tombol Shift dan Alt, tinggal gantikan saja tulisan yang berwarna merah dengan "kShift" atau "kAlt" (tanpa tanda petik).

Anda juga dapat melakukan kombinasi seperti berikut :
If GetKeyState(kCtrl) And GetKeyState(Asc("A")) And &H8000 Then
'jika Ctrl + A ditekan
End If

Atau kombinasi seperti berikut :
If GetKeyState(kCtrl) And GetKeyState(kShift) And GetKeyState(kAlt) And &H8000 Then
'jika Ctrl + Shift + Alt ditekan
End If

Label: , , ,

Minggu, 17 Oktober 2010

Berjalan Saat StartUp

Kode berikut ini akan membuat aplikasi Anda dijalankan otomatis saat komputer mulai dinyalakan (startup).

[ VB 6.0 ]
Untuk mengaktifkannya ketikkan :
s = Replace(App.Path & "\" & App.EXEName & ".exe", "\\", "\")
Set Reg = CreateObject("WScript.Shell")
Reg.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\" & App.EXEName, s
Untuk menghapus / membatalkannya ketikkan :
On Error Resume Next
Set Reg = CreateObject("WScript.Shell")
Reg.RegDelete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\" & App.EXEName
Untuk mengetahui apakah sudah aktif di Startup atau belum gunakan fungsi ini :
Function OnStartup() As Boolean
On Error GoTo Ero
s = Replace(App.Path & "\" & App.EXEName & ".exe", "\\", "\")
Set Reg = CreateObject("WScript.Shell")
OnStartup = (Reg.Regread("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\" & App.EXEName) = s)

Exit Function
Ero:
OnStartup = False
End Function


[ VB .NET ]
Untuk mengaktifkannya ketikkan :
Dim Reg = CreateObject("WScript.Shell")
Reg.RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\" & My.Application.Info.AssemblyName, Application.ExecutablePath)
Untuk menghapus / membatalkannya ketikkan :
On Error Resume Next
Dim Reg = CreateObject("WScript.Shell")
Reg.RegDelete("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\" & My.Application.Info.AssemblyName)
Untuk mengetahui apakah sudah aktif di Startup atau belum gunakan fungsi ini :
Function OnStartup() As Boolean
Dim Reg = CreateObject("WScript.Shell")
Try
OnStartup = (Reg.Regread("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\" & My.Application.Info.AssemblyName) = Application.ExecutablePath)
Catch
OnStartup = False
End Try
End Function


[ VB Script ]
Untuk mengaktifkannya ketikkan :

Set Reg = CreateObject("WScript.Shell")
Reg.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\" & WScript.ScriptName, WScript.ScriptFullName
Untuk menghapus / membatalkannya ketikkan :

On Error Resume Next
Set Reg = CreateObject("WScript.Shell")
Reg.RegDelete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\" & WScript.ScriptName

Label: , , , ,

Jumat, 15 Oktober 2010

Keyboard Disco

Pada jenis Keyboard standar, pastinya terdapat 3 buah lampu led di bagian kanan atas. Lampu led tersebut merupakan indikator dari NumLock, CapsLock, dan ScrollLock. Kode berikut ini akan membuat ketiga lampu led tersebut kedap-kedip seperti lampu disco.

Buat sebuah Project baru dengan sebuah Form didalamnya. Tambahkan 1 kontrol Timer (Enabled=True; Interval=100) ke dalam Form tersebut.

[ VB 6.0 ]
Di bagian '(Declarations)' dari Form ketikkan :
Dim SH As Object
Di bagian 'Form_Load' ketikkan :
App.TaskVisible = False
Me.Hide
Set SH = CreateObject("WScript.Shell")
Lalu di bagian 'Timer1_Timer' ketikkan :
Randomize
Select Case CInt(Rnd() * 2)
Case 0: SH.SendKeys ("{NUMLOCK}")
Case 1: SH.SendKeys ("{CAPSLOCK}")
Case 2: SH.SendKeys ("{SCROLLLOCK}")
End Select


[ VB .NET ]
Di bagian '(Declarations)' dari Form ketikkan :
Dim SH As Object = CreateObject("WScript.Shell")
Di bagian 'Form1_Shown' ketikkan :
Me.Hide()
Lalu di bagian 'Timer1_Tick' ketikkan :
Randomize()
Select Case CInt(Rnd() * 2)
Case 0 : SH.SendKeys("{NUMLOCK}")
Case 1 : SH.SendKeys("{CAPSLOCK}")
Case 2 : SH.SendKeys("{SCROLLLOCK}")
End Select


[ VB Script ]
Buka Notepad dan ketikkan :
Set SH = CreateObject("WScript.Shell")
Do
Randomize
Select Case CInt(Rnd * 2)
Case 0
SH.SendKeys "{NUMLOCK}"
Case 1
SH.SendKeys "{CAPSLOCK}"
Case 2
SH.SendKeys "{SCROLLLOCK}"
End Select
WScript.Sleep 100
Loop
Simpan dengan ekstensi *.vbs, misalnya "disco.vbs"

Label: , , , , ,

Buka Tutup CD-Rom

Kode ini akan melakukan buka tutup drive CD-Rom di komputer secara terus-menerus.
Buat sebuah Project baru dengan sebuah Form didalamnya. Tambahkan 1 kontrol Timer (Enabled=True; Interval=1000) ke dalam Form tersebut.

[ VB 6.0 ]
Di bagian '(Declarations)' dari Form ketikkan :
Dim CD As Object
Di bagian 'Form_Load' ketikkan :
App.TaskVisible = False
Me.Hide
Set CD = CreateObject("WMPlayer.OCX.7").cdromCollection
Lalu di bagian 'Timer1_Timer' ketikkan :
Dim i As Integer
For i = 0 To CD.Count - 1
CD.Item(i).Eject()
Next


[ VB .NET ]
Di bagian '(Declarations)' dari Form ketikkan :
Dim CD As Object = CreateObject("WMPlayer.OCX.7").cdromCollection
Di bagian 'Form1_Shown' ketikkan :
Me.Hide()
Lalu di bagian 'Timer1_Tick' ketikkan :
Dim i As Integer
For i = 0 To CD.Count - 1
CD.Item(i).Eject()
Next


[ VB Script ]
Buka Notepad dan ketikkan :
Set CD = CreateObject("WMPlayer.OCX.7").cdromCollection
Do
For i = 0 to CD.Count-1
CD.Item(i).Eject
Next
WScript.Sleep 1000
Loop
Simpan dengan ekstensi *.vbs, misalnya "bukatutup.vbs"

Label: , , , , ,

Sabtu, 09 Oktober 2010

Mengakses Kalkulator Windows

Apabila Anda mengerjakan aplikasi yang berkaitan dengan angka atau keuangan, sebaiknya Anda menambahkan fasilitas kalkulator didalamnya, sehingga dapat mempermudah user bila menginginkan proses penghitungan secara manual.

Jika Anda tidak bisa atau mungkin malas membuat kalkulator sendiri, gunakan saja kalkulator bawaan windows. Kodenya adalah :
Shell ("calc.exe")

Kode diatas hanya sekedar digunakan untuk menjalankan kalkulator, namun jika Anda menginginkan tidak terjadinya duplikasi atau penggandaan, ikuti langkah berikut :

1. Di bagian '(Declarations)' dari Form ketikkan :
[ VB 6.0 ]
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long

[ VB .NET ]
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA"(ByVal lpClassName As String, ByVal lpWindowName As String) As Integer
Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Integer) As Integer


2. Untuk menjalankannya ketikkan :
Dim l
l = FindWindow("scicalc", vbNullString)
If l = 0 Then
Shell ("calc.exe")
Else
SetForegroundWindow (l)
End If

Label: , , ,

Aplikasi Sekali Jalan

Terkadang programmer ingin membuat aplikasi yang hanya boleh dijalankan atau dieksekusi sekali saja, sehingga tidak terjadi duplikasi aplikasi. Tentunya jika aplikasi dijalankan lebih dari sekali akan beresiko, apalagi kalau aplikasi tersebut merupakan aplikasi pengolah file atau database.

[ VB 6.0 ]
Buat Module baru dan ketikkan :
Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
Declare Function OpenIcon Lib "user32" (ByVal hwnd As Long) As Long
Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long

Sub ShowPrevInstance()
Dim OldTitle As String
Dim l As Long 'window handle

OldTitle = App.Title
App.Title = "This App Will Be Closed"

l = FindWindow("ThunderRT6Main", OldTitle)
If l = 0 Then Exit Sub
l = GetWindow(l, 3)

OpenIcon (l)
SetForegroundWindow (l)

End
End Sub
Dan di Form awal di bagian 'Form_Load' ketikkan :
If App.PrevInstance = True Then 'jika sudah
ShowPrevInstance 'memfokuskan ke aplikasi sebelumnya
End If



[ VB .NET ]
Langkah ini diterapkan pada VS 2005 :
Dobel klik item 'My project' pada jendela Solution Explorer, dan berikan tanda centang pada pilihan 'Make single instance application'.

Label: , , ,

Kamis, 07 Oktober 2010

Fungsi IIF

Apakah Anda tahu tentang fungsi IIF di Visual Basic? Jika tidak, berikut ini penjelasan singkatnya. Sebenarnya fungsi IIF sama dengan fungsi IF biasa, yang sama-sama digunakan untuk memeriksa benar tidaknya (true / false) suatu ekspresi, hanya saja strukturnya lebih sederhana. Jika Anda mempunyai pengalaman dengan aplikasi MS Excel, maka Anda dapat dengan mudah menggunakan fungsi ini, karena struktur fungsi IIF dalam Visual Basic sama persis dengan fungsi IF dalam MS Excel. Berikut strukturnya :
IIf ( Ekspresi yang diperiksa, Nilai jika ekspresi True, Nilai jika ekspresi False )

Contoh penggunaanya seperti ini :
b = IIf(a = 1, "Setuju", "Tidak setuju")
Dapat dilihat bahwa ada dua variabel yaitu 'a' dan 'b'. Terjemahan kode diatas adalah Jika variabel 'a' bernilai 1, maka variabel 'b' bernilai "Setuju", dan Jika variabel 'a' tidak bernilai 1, maka variabel 'b' bernilai "Tidak setuju".

Anda juga dapat melakukan pencabangan seperti ini :
b = IIf(a < 2, IIf(a = 1, "Kuda", "Macan"), "Sapi")
Jika 'a' bernilai kurang dari 2, maka :
            (Jika 'a' bernilai 1, maka 'b' bernilai "Kuda", dan Jika tidak maka 'b' bernilai "Macan")
dan Jika 'a' tidak kurang dari 2 maka 'b' bernilai "Sapi".

Label: , , ,

Rabu, 06 Oktober 2010

Validasi Alamat Email

Berikut ini adalah fungsi untuk memeriksa valid tidaknya string yang berisikan alamat email.

Buat Module baru dan ketikkan :
Function IsEmail(ByVal Str As String) As Boolean
Set r = CreateObject("VBScript.RegExp")
r.IgnoreCase = True
r.Pattern = "^[\w-\.]+@\w+\.\w+$"
IsEmail = r.Test(Str)
End Function

Contoh penggunannya ketikkan :
s = IsEmail("alamatemail@yahoo.com")

Label: , ,

Nilai RGB dari Warna

Fungsi RGB di Visual Basic digunakan untuk mengkonversi suatu rangkaian bilangan integer menjadi bilangan kode untuk format warna. Lalu bagaimana jika ingin membalikkan fungsi tersebut (mengubah bilangan kode warna menjadi bilangan kode-kode RGB).
Berikut ini contoh kode untuk mengetahui nilai RGB dari kontrol Picture (BackColor) :

[ VB 6.0 ]
Dim Warna As Long
Warna = Picture1.BackColor
  
Dim R As Integer, G As Integer, B As Integer
R = Warna And (Not &HFFFFFF00)
G = (Warna And (Not &HFFFF00FF)) \ &H100&
B = (Warna And (Not &HFF00FFFF)) \ &HFFFF&
  
MsgBox "Nilai Red = " & R
MsgBox "Nilai Green = " & G
MsgBox "Nilai Blue = " & B


[ VB .NET ]
Dim Warna As Color
Warna = PictureBox1.BackColor

MsgBox("Nilai Red = " & Warna.R)
MsgBox("Nilai Green = " & Warna.G)
MsgBox("Nilai Blue = " & Warna.B)

Label: , ,