Selasa, 28 Mei 2013

Tips Visual Basic - Enkripsi / Dekripsi (Penyandian) Password dan Teks


 
tips vb - enkripsi 
dekripsi Dalam tips VB kali ini, kita akan mencoba menyandikan teks atau password. Penyandian sangat diperlukan, agar setiap kata-kata yang rahasia yang tidak boleh diketahui oleh orang lain bisa dengan aman disimpan baik didalam program EXE ataupun dalam file lain. Jadi kalau ada yang coba-coba membongkar file EXE atau file penting lainnya yang telah disandikan, maka orang tersebut tidak akan dengan mudah mendapatkan teks aslinya. Kecuali kalau ia memang seorang hacker yang sangat tangguh.

Banyak teknik penyandian (enkripsi) yang telah dikembangkan saat ini, mulai dari yang sangat sederhana sampai pada yang amat kompleks dan aman. Dalam tips kali ini diberikan sebuah teknik sederhana namun kiranya sudah cukup aman untuk sebuah program kecil-kecilan. Teknik ini adalah kreasi dari John Clark Craig, bersumber dari bukunya yang berjudul Microsoft Visual Basic 4.0 Developer's Workshop Edisi Ketiga. Enkripsi ini adalah simetris, artinya teks yang telah dienkripsi bisa dikembalikan ke teks asalnya (dekripsi).

Berikut ini adalah kodenya (beberapa kodenya telah saya rubah sedikit untuk penyesuaian):

Function Cipher(TXT As String, Optional A As Integer, Optional B As Integer, Optional RV As Integer)
    Static R As Long
    Static M As Long
    Static N As Long
    Const BN As Long = 32768
    Dim I As Integer, C As Integer, D As Integer
    If IsMissing(RV) = False Then R = RV
    If IsMissing(A) Then
        If M = 0 Then M = 69
    Else
        M = (A * 4 + 1) Mod BN
    End If
    If IsMissing(B) Then
        If N = 0 Then N = 47
    Else
        N = (B * 2 + 1) Mod BN
    End If
    'proses setiap karakter
    For I = 1 To Len(TXT)
        C = Asc(Mid$(TXT, I, 1))
        'modifikasi khusus teks yg bisa dibaca saja
        Select Case C
        Case 48 To 57
            D = C - 48
        Case 63 To 90
            D = C - 53
        Case 97 To 122
            D = C - 59
        Case Else
            D = -1
        End Select
        If D >= 0 Then
            R = (R * M + N) Mod BN
            D = (R And 63) Xor D
            Select Case D
            Case 0 To 9
                C = D + 48
            Case 10 To 37
                C = D + 53
            Case 38 To 63
                C = D + 59
            End Select
            Mid$(TXT, I, 1) = Chr$(C)
        End If
    Next I
    Cipher = TXT
End Function

Perhatikan teks berwarna merah di atas (parameternya), TXT adalah teks yang akan dienkripsi/dekripsi. Sedangkan nilai A, B, dan RV bisa anda ganti-ganti. Setiap perubahan nilai A,B atau RV akan menghasilkan teks hasil enkripsi yang berbeda. Jadi anda bisa mengkombinasikannya.

Karena enkripsi ini adalah simetris, maka jika teks hasil enkripsi anda masukkan kembali ke fungsi di atas, akan menghasilkan teks aslinya kembali (tentunya menggunakan nilai A, B, dan RV yang sama dengan saat mengenkripsi).

Contoh menggunakan fungsi di atas adalah seperti berikut:

txtHasilEnkripsi.Text = Cipher(txtSumber.Text, 4, 6, 9)  
txtHasilDekripsi.Text = Cipher(txtHasilEnkripsi.Text, 4, 6, 9)

Kalau sobat mau melihat file source kode beserta contohnya, bisa didownload disini. Source kode tersebut bila dijalankan, tampilannya adalah seperti pada gambar di atas.

Tips Visual Basic - Cara Membuka Sebuah Link Website dan Email


    
Form Visual BasicDalam sebuah program, sebaiknya kita ikut menyertakan halaman homepage situs atau alamat email kita di dalam form Info/About agar orang lain dapat mengakses alamat homepage tersebut jika ingin mendapatkan update atau info terbaru tentang program. Namun, bagaimana caranya agar saat user meng-klik link website pada form, kemudian program browser (IE, firefox, Opera, atau yang lain) jalan secara otomatis untuk membuka link website tersebut seperti pada gambar di samping ini? Atau membuka program Outlook Express atau Thunderbird saat user meng-klik alamat email kita? Berikut ini caranya:

Teks berisi link website atau alamat email bisa menggunakan kontrol Label. Label tersebut diubah property-nya agar berwarna biru layaknya sebuah link di browser seperti gambar di atas. Selanjutnya untuk event-nya menggunakan event click. Berikut ini kodenya: (di sini saya menggunakan label bernama Label_Link dan Label_Email).

Option Explicit

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
    (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
    ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd _
    As Long) As Long

Private Sub Label_Email_Click()
    ShellExecute hwnd, "open", "mailto:tipsdaninfoku@abcdefg.com", _
    vbNullString, vbNullString, 1
End Sub

Private Sub Label_Link_Click()
    ShellExecute hwnd, "open", "http://tipsdaninfoku.blogspot.com/", _
    vbNullString, vbNullString, 1
End Sub

Pada kode di atas, kode berwarna biru adalah fungsi API Windows, kode ini harus ada agar bisa jalan. Selanjutnya kode berwarna merah adalah alamat email dan alamat website. Saat label email diklik, maka program pembuka email (yang default) akan berjalan dan membuka alamat email tersebut. Dan jika label link diklik, maka browser (IE, firefox, Opera, atau yg lain) akan berjalan membuka alamat URL tersebut. Alamat URL harus diawal dengan http:// atau https://, sedangkan alamat email harus diawali dengan mailto:.

Tips Visual Basic - Cara Menjalankan Program Lain Dengan Berbagai Model Jendela


           
Pada tips visual basic kali ini, kita akan mempraktekkan cara menjalankan program lain (seperti Notepad, Paint, dan lainnya) dengan berbagai macam model jendelanya, seperti maximized, minimized, normal, atau bahkan menyembunyikan jendelanya alias program tersebut akan berjalan di belakang layar. Juga bisa ditentukan apakah jendela program itu akan fokus atau tidak fokus.


Kita akan membuat contoh programnya dulu, di sini saya membuat sebuah project Standard Exe di Visual Basic. Kontrol-kontrolnya terdiri dari: CommandButton (cmdJalankanProgram), Textbox (txtProgram), dan ComboBox (cboModelJendela). Tampilannya seperti gambar di atas. Lalu untuk kode-kodenya adalah sebagai berikut:

Option Explicit

Private Enum enumJenisJendela
    Normal_dan_Fokus = vbNormalFocus
    Normal_Tidak_Fokus = vbNormalNoFocus
    Maximized = vbMaximizedFocus
    Minimized_dan_Fokus = vbMinimizedFocus
    Minimized_Tidak_Fokus = vbMinimizedNoFocus
    SembunyikanJendela = vbHide
End Enum

Private Sub JalankanProgram(sProgramPath As String, JenisJendela As enumJenisJendela)
    On Error GoTo Er:
    'cek jika file program tersebut tidak ada
    If Dir(sProgramPath) = "" Then
        MsgBox "File Tidak Ditemukan: " & sProgramPath
        Exit Sub
    End If
    'jalankan program
    Shell sProgramPath, JenisJendela
    Exit Sub
Er:
    MsgBox "Error menjalankan program " & sProgramPath & vbCrLf & _
        "Penjelasan: " & Err.Description, , "Error"
End Sub

Private Sub cmdJalankanProgram_Click()
    If cboModelJendela.ListIndex = 0 Then JalankanProgram txtProgram.Text, Normal_dan_Fokus
    If cboModelJendela.ListIndex = 1 Then JalankanProgram txtProgram.Text, Normal_Tidak_Fokus
    If cboModelJendela.ListIndex = 2 Then JalankanProgram txtProgram.Text, Maximized
    If cboModelJendela.ListIndex = 3 Then JalankanProgram txtProgram.Text, Minimized_dan_Fokus
    If cboModelJendela.ListIndex = 4 Then JalankanProgram txtProgram.Text, Minimized_Tidak_Fokus
    If cboModelJendela.ListIndex = 5 Then JalankanProgram txtProgram.Text, SembunyikanJendela
End Sub

Private Sub Form_Load()
    cboModelJendela.AddItem "Normal dan Fokus"
    cboModelJendela.AddItem "Normal, Tidak Fokus"
    cboModelJendela.AddItem "Maximized"
    cboModelJendela.AddItem "Minimized dan Fokus"
    cboModelJendela.AddItem "Minimized, Tidak Fokus"
    cboModelJendela.AddItem "Sembunyikan Jendela"
    cboModelJendela.ListIndex = 0
End Sub

Keterangan:
Fungsi utamanya adalah pada teks berwarna biru.
Warna merah adalah listing kode untuk tombol cmdJalankanProgram (CommandButton).
Warna merah muda adalah kode untuk Form.

Saat dijalankan, isikan nama file program lengkap bersama pathnya, lalu pilih jenis jendelanya, kemudian klik tombol Jalankan.

Keterangan Untuk Model Jendela:
- Fokus / Tidak fokus : menunjukkan apakah jendela program akan aktif (berada di depan jendela program lain) atau tidak.
- Normal : Tampilan standar jendela
- Maximized : Jendela akan menutupi seluruh desktop kecuali Taskbar.
- Minimized : Jendela program tidak terlihat tetapi tombol program masih ada di Taskbar. Dengan meng-klik tombol program di taskbar maka jendelanya akan muncul kembali.
- Sembunyikan jendela : Jendela program tidak terlihat begitu pula tombolnya di taskbar. Untuk menutup programnya, anda harus membuka Task Manager, caranya tekan CTRL+ALT+DEL. Lalu pada jendela Task Manager, klik tab Processes, lalu cari dan pilih program yang dijalankan, kemudian klik tombol End Process. Tampilan Task Manager seperti berikut ini:

Tips Visual Basic - Cara Merestart dan Shutdown Windows


              
Visual Basic Shutdown-RestartTerkadang dalam membuat sebuah program, kita harus men-shutdown dan merestart sistem operasi Windows untuk suatu alasan tertentu. Dalam halaman ini kita akan mempraktekkan cara tersebut dengan menggunakan Visual Basic.

Untuk restart dan shutdown Windows diperlukan bantuan beberapa fungsi API Windows. Untuk lebih jelasnya, langsung saja ke prakteknya berikut. Pertama, buat sebuah project Standard EXE dalam Visual Basic. Tambahkan dua buah kontrol CommandButton ke atas Form dan beri nama masing-masing cmdShutdown dan cmdRestart, tampilannya kurang lebih seperti gambar di samping ini.

Selanjutnya, tuliskan (atau copy) listing kode di bawah ini:

Option Explicit

Private Declare Function ExitWindows Lib "User32" Alias _
    "ExitWindowsEx" (ByVal dwReserved As Long, ByVal uReturnCode _
    As Long) As Long
Private Declare Function ExitWindowsEx Lib "User32" (ByVal _
    uFlags As Long, ByVal dwReserved As Long) As Long
Private Declare Function GetCurrentProcess Lib "kernel32" () As Long
Private Declare Function OpenProcessToken Lib "advapi32" (ByVal _
    ProcessHandle As Long, _
    ByVal DesiredAccess As Long, TokenHandle As Long) As Long
Private Declare Function LookupPrivilegeValue Lib "advapi32" _
    Alias "LookupPrivilegeValueA" _
    (ByVal lpSystemName As String, ByVal lpName As String, lpLuid _
    As LUID) As Long
Private Declare Function AdjustTokenPrivileges Lib "advapi32" _
    (ByVal TokenHandle As Long, ByVal DisableAllPrivileges As _
    Long, NewState As TOKEN_PRIVILEGES, ByVal BufferLength As _
    Long, PreviousState As TOKEN_PRIVILEGES, ReturnLength As _
    Long) As Long

Private Type LUID
    UsedPart As Long
    IgnoredForNowHigh32BitPart As Long
End Type
Private Type TOKEN_PRIVILEGES
    PrivilegeCount As Long
    TheLuid As LUID
    Attributes As Long
End Type

Private Const EWX_SHUTDOWN = 1
Private Const EWX_REBOOT = 2
Private Const EWX_FORCE = 4

Private Sub AturPrivilege()
    Dim hProc As Long, hToken As Long, lReturn As Long
    Dim tLuid As LUID, tKP As TOKEN_PRIVILEGES
    Dim tKP_Temp As TOKEN_PRIVILEGES
  
    hProc = GetCurrentProcess()
    OpenProcessToken hProc, (&H20 Or &H8), hToken
    LookupPrivilegeValue "", "SeShutdownPrivilege", tLuid
    tKP.PrivilegeCount = 1
    tKP.TheLuid = tLuid
    tKP.Attributes = &H2
    AdjustTokenPrivileges hToken, False, tKP, Len(tKP_Temp), _
        tKP_Temp, lReturn
End Sub

' ---- Ini event untuk tombol cmdRestart
Private Sub cmdRestart_Click()
    On Error Resume Next
    ExitWindows (EWX_REBOOT Or EWX_FORCE), &HFFFFFFFF
    AturPrivilege
    ExitWindowsEx (EWX_REBOOT Or EWX_FORCE), &HFFFF
End Sub

' ---- Ini event untuk tombol cmdShutdown
Private Sub cmdShutdown_Click()
    On Error Resume Next
    ExitWindows (EWX_SHUTDOWN Or EWX_FORCE), &HFFFFFFFF
    AturPrivilege
    ExitWindowsEx (EWX_SHUTDOWN Or EWX_FORCE), &HFFFF
End Sub 

Setelah selesai, jangan lupa simpan project tersebut, lalu jalankan (tekan F5). Sebelum meng-klik pada salah satu tombol di atas Form, pastikan program-program lain yang sedang anda jalankan agar ditutup, terutama jika sedang mengedit dokumen. Karena saat proses shutdown/restart, semua program akan ditutup paksa dan dokumen yang belum tersimpan akan diabaikan.
Oke ..  demikian tips VB kali ini, mudah-mudahan bermanfaat.

Tips Visual Basic: Menutup Program Lain Berdasarkan Judul Jendelanya (Caption)


           
Ini adalah sebuah tips yang cukup unik, dimana kita akan membuat program dalam visual basic untuk menutup program/aplikasi lain yang sedang berjalan dengan menggunakan judul di jendelanya (caption).

Okey .. kita langsung saja ke prakteknya. Buatlah sebuah project baru menggunakan standard EXE. Tambahkan kontrol TextBox (Text1) dan CommandButton (Command1). Untuk listing kodenya, silahkan tulis kode berikut ini:

Private Declare Function FindWindow Lib "user32" Alias _
    "FindWindowA" (ByVal lpClassName As Any, _
    ByVal lpWindowName As Any) As Long
Private Declare Function PostMessage Lib "user32" Alias _
    "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _
    ByVal wParam As Long, ByVal lParam As Long) As Long

Private Const WM_QUIT = &H12

Private Sub Command1_Click()
    tutup_program_lain (Text1.Text)
End Sub

Private Sub tutup_program_lain(sJudul As String)
    Dim iH As Long, iR As Long
  
    iH = FindWindow(0&, sJudul)
    If iH = 0 Then
        MsgBox "Judul Aplikasi Tidak Ditemukan!"
        Exit Sub
    End If
    iR = PostMessage(iH, WM_QUIT, 0&, 0&)
End Sub

Selanjutnya, jalankan program tersebut. Jangan lupa untuk menjalankan program lain yang akan jadi target, misalnya program Notepad. Perhatikan judul (caption) dari program Notepad, biasanya tertulis: Untitled - Notepad. Tulis judul tersebut di dalam textbox pada program buatan kita tadi, lalu klik tombol Command1. Ini akan menutup program Notepad tersebut. That's all.
Semoga tips vb ini membuat anda semakin senang pada visual basic

Tips Blogger - Mendaftarkan Blog ke Berbagai Search Engine


          
Jika blog kita telah berisi artikel-artikel, maka sudah waktunya memperkenalkannya kepada dunia dengan cara mendaftar ke berbagai situs search engine seperti Google, Yahoo, Bing, dan lain-lain. Berikut ini caranya:

Langkah 1. Mendaftarkan blog ke Google

Untuk mendaftarkan blog ke Google, silahkan mengakses alamat ini: http://www.google.com/addurl/ . Dalam halaman tersebut silahkan mengisikan form yang tersedia seperti pada gambar berikut:

daftar blog ke google

Setelah mendaftar di halaman tersebut, kemudian lanjut mendaftar ke Google Webmaster Tool. Beberapa situs di internet mengatakan bahwa dengan mendaftarkan blog ke Google Webmaster tool akan mempercepat blog kita terindeks di mesin pencari Google.

- Silahkan masuk ke URL ini: https://www.google.com/webmasters/tools .
- Loginlah menggunakan akun google anda (akun gmail)
- Klik tombol Add a site dan masukkan URL blog anda.
- Untuk sitemap, isikan:  atom.xml  atau rss.xml.

Langkah 2. Mendaftarkan blog ke Yahoo

Untuk mendaftarkan blog ke Yahoo, silahkan mengakses url ini: https://siteexplorer.search.yahoo.com/submit .
Untuk mendaftar di sini, sobat sekalian harus login terlebih dahulu menggunakan akun Yahoo (akun email pada Yahoo). Jadi jika belum punya email di yahoo, buat dulu email Yahoo yang baru.
Bila sudah login, sobat harus mengisikan URL blog, dan untuk mengisikan alamat feed, cukup tambahkan atom.xml atau rss.xml di belakang URL blog sobat. Contohnya:

http://tipsdaninfoku.blogspot.com/atom.xml
atau
http://tipsdaninfoku.blogspot.com/rss.xml

Langkah 3. Mendaftarkan blog ke Msn / Bing.com

Untuk mendaftarkan blog ke Msn / Bing, silahkan mengakses url ini: http://www.bing.com/webmaster/SubmitSitePage.aspx . Silahkan mengisikan alamat URL blog sobat beserta isian lainnya, seperti pada gambar berikut ini:

daftar blog ke Msn - Bing

Langkah 4. Mendaftarkan blog ke search engine lainnya secara otomatis

Selain mendaftarkan bog ke mesin pencari Google, Yahoo atau Msn / Bing, masih banyak mesin pencari lainnya yang perlu blog kita didaftarkan. Untuk mendaftarkan ke berbagai search engine secara otomatis, ada beberapa website yang menyediakan layanan ini secara gratis, yaitu sbb:

1. Submitexpress.com : http://www.submitexpress.com/submit.html
2. Freewebsubmission.com :  http://freewebsubmission.com/
3. Hostzi : http://submiter.hostzi.com/
4. Addme : http://www.addme.com/

Silahkan memilih salah satu dari 4 situs tersebut.

Langkah 5. Mendaftarkan blog ke berbagai portal blog

Setelah mendaftar di berbagai search engine, juga sobat sekalian perlu juga mendaftarkan artikel blog anda ke portal-portal blog untuk meningkatkan jumlah pengunjung ataupun ranking. Di antaranya adalah :

Jika blog anda berbahasa inggris:
1. Technorati: http://www.technorati.com/
2. Digg : http://digg.com/
3. Delicious : http://delicious.com/

Jika blog anda berbahasa Indonesia:
1. Infogue : http://www.infogue.com
2. LintasBerita : http://www.lintasberita.com/
3. Kafeinfo : http://www.kafeinfo.com

Langkah 6. Melakukan ping setiap punya artikel baru

Jika blog telah ditambahkan artikel baru / diupdate, sobat perlu melakukan ping. Ping ini berfungsi untuk memberitahu kepada berbagai mesin pencari bahwa blog anda telah terupdate atau memiliki artikel baru. Sehingga para mesin pencari tersebut akan memeriksa kembali blog anda untuk mendapatkan artikel baru tsb. Untuk melakukan ping ini, sobat boleh menggunakan situs Ping-o-matic. Alamatnya adalah:
http://pingomatic.com/

Setelah masuk ke situs ping-o-matic tersebut, isikan berbagai isian sesuai blog anda. Untuk RSS URL, isikan url blog anda ditambahkan rss.xml, jangan lupa memberi tanda cek pada semua pilihan yg ada, lalu yg terakhir adalah klik tombol Send Pings

ping-o-matic

Sekian dulu. Semoga berguna bagi anda para blogger.

Memasang Jam pada Blogger-Blogspot


           
gadget jam bloggerBanyak cara untuk memperindah tampilan blog, salah satunya adalah dengan memasang jam yang tampilannya seperti jam dinding. Ada berbagai situs yang menyediakan gadget ini, namun dalam artikel ini, kita akan menggunakan layanan dari situs worldtimeserver.com. Berikut ini cara menggunakannya pada blogger:

1. Langkah pertama, masuk dulu ke situs worldtimeserver, alamat URL-nya adalah http://www.worldtimeserver.com/clocks/  (klik di sini)

2. Di dalam halaman tersebut, perhatikan di bawah tulisan "Free Analog Clocks for Blogs and Web Sites" terdapat dua pilihan, yaitu 12 hour analog clock (12 jam menggunakan AM dan PM) dan 24 hour analog clock (24 jam mulai 00:00 sampai 23:59). Pilih/klik salah satunya.

situs wordtimeserver.com

3. Misalnya di sini kita memilih/klik yang 24 hour. Maka selanjutnya kita akan dibawa ke halaman pengeditan tampilan jam. Di halaman tersebut, pilihlah warna (Clock Color), ukuran jam (Size), lokasi (Location), nama kota (City Name) sesuai keinginan. Untuk nama kota (City Name) boleh tidak diisi.

kustomasi jam

4. Setelah selesai memilih warna, ukuran, lokasi dan nama kota, selanjutnya klik tombol Update HTML Code. Kemudian di bawah tombol tersebut, terdapat dua macam kode HTML (Option 1 dan Option 2) yang akan kita masukkan ke template blogger milik kita, pilih kode HTML pada Option 1. Pada teks kode tersebut, tekan CTRL+A, lalu CTRL+C untuk meng-copy.

copy kode HTML

5. Selanjutnya masuk ke account blogger, kllik menu Layout.

6. Klik Add a gadget, lalu pilih HTML/Javascript.

7. Tekan CTRL+V di dalam kotak teks untuk mem-paste kode yang dicopy tadi. Kemudian klik tombol Save untuk menyimpan perubahan template.

8. Prosesnya telah selesai. Sekarang buka blog kita dan lihat tampilan jam yang telah terpasang. Sebagai catatan, jika ternyata gadget jam tidak muncul, maka coba perhatikan langkah 4 di atas, gunakan kode pada Option 2. Kemudian edit gadget jam (langkah 6) yang telah terpasang pada blog. Hapus kode yang ada dan gantikan dengan kode Option 2.

Oke, selesai. Semoga info ini bermanfaat bagi anda.