Friday, November 1, 2013

VB6 Trik - Mengukur Dimensi String Tanpa Fungsi API

Menjelaskan mengenai cara mengukur dimensi string yang menggunakan objek font tertentu tanpa menggunakan fungsi API.

Untuk berbagai keperluan, terkadang kita membutuhkan sebuah prosedure untuk mengukur dimensi sebuah string. Di samping dengan menggunakan fungsi API GetTextExtentPoint32, kitapun dapat mengukurnya dengan sebuah trik yang sederhana, di bawah ini adalah contohnya:

Option Explicit

Private Type hwFONT
Height As Integer
Width As Integer
End Type

Private Function GetWidthHeight(LabelCaption As String) As hwFONT
Dim lbl As Label, hwF As hwFONT
Set lbl = Controls.Add("VB.Label", "lblTestWidthHeight")
With lbl
.Caption = LabelCaption
.AutoSize = True
.Refresh
End With
hwF.Width = lbl.Width
hwF.Height = lbl.Height
GetWidthHeight = hwF
Controls.Remove "lblTestWidthHeight"
End Function

Private Function GetFontWidthHeight(LabelCaption As String, _
Optional FontName As String = "MS Sans Serif", _
Optional FontSize As String = 8) As hwFONT
Dim lbl As Label, hwF As hwFONT
Set lbl = Controls.Add("VB.Label", "lblTestWidthHeight")
With lbl
.FontName = FontName
.FontSize = FontSize
.Caption = LabelCaption
.AutoSize = True
.Refresh
End With
hwF.Width = lbl.Width
hwF.Height = lbl.Height
GetFontWidthHeight = hwF
Controls.Remove "lblTestWidthHeight"
End Function

Private Function GetFontObjectWH(LabelCaption As String, fntAny As StdFont) As hwFONT
Dim lbl As Label, hwF As hwFONT
Set lbl = Controls.Add("VB.Label", "lblTestWidthHeight")
With lbl
.Caption = LabelCaption
.AutoSize = True
Set .Font = fntAny
.Refresh
End With
hwF.Width = lbl.Width
hwF.Height = lbl.Height
GetFontObjectWH = hwF
Controls.Remove "lblTestWidthHeight"
End Function

Private Sub cmdTest1_Click()
Dim hwF As hwFONT
hwF = GetWidthHeight("Test")
List1.AddItem "Test"
Shape1.Width = hwF.Width
Picture1.Cls
Picture1.Print "Height: " & hwF.Height & vbCrLf & "Widht: " & hwF.Width
End Sub

Private Sub cmdTest3_Click()
Dim fntList As StdFont
Dim hwF As hwFONT
Set fntList = List1.Font
Dim strString As String
strString = "Test Font object"
List1.AddItem strString
hwF = GetFontObjectWH(strString, fntList)
Shape1.Width = hwF.Width
Picture1.Cls
Picture1.Print "Height: " & hwF.Height & vbCrLf & "Widht: " & hwF.Width
End Sub

Private Sub cmdTest2_Click()
Dim hwF As hwFONT
hwF = GetFontWidthHeight("Just Test")
List1.AddItem "Just Test"
Shape1.Width = hwF.Width
Picture1.Cls
Picture1.Print "Height: " & hwF.Height & vbCrLf & "Widht: " & hwF.Width
End Sub
Selanjutnya, dari contoh-contoh di atas yang akan kita gunakan untuk berbagai keperluan adalah:
Private Type hwFONT
Height As Integer
Width As Integer
End Type

Private Function GetFontObjectWH(LabelCaption As String, fntAny As StdFont) As hwFONT
Dim lbl As Label, hwF As hwFONT
Set lbl = Controls.Add("VB.Label", "lblTestWidthHeight")
With lbl
.Caption = LabelCaption
.AutoSize = True
Set .Font = fntAny
.Refresh
End With
hwF.Width = lbl.Width
hwF.Height = lbl.Height
GetFontObjectWH = hwF
Controls.Remove "lblTestWidthHeight"
End Function

Download project: String dimension (font height and width)

READ MORE - VB6 Trik - Mengukur Dimensi String Tanpa Fungsi API

Tuesday, October 1, 2013

Menghapus Virus Shortcut - Cara Termudah

Mengenai cara termudah menghapus virus shortcut/copy of shortcut/ramnit/recycler - Sebelumnya saya pernah memposting bagaimana cara menghapus virus copy of shortcut secara manual klik di sini. Pada saat itu, cara tersebut terbukti efektif, yakni sebelum virus copy of shortcut dapat menginfeksi file *.exe, *.dll, .html seperti sekarang ini. Lalu sekarang bagaimana?

Langkah-langkah menghapus virus ramnit

  • Download ramnit killer (PCMAV Express for Ramnit) klik di sini
  • Tutup seluruh aplikasi yang sedang berjalan
  • Putuskan koneksi internet (tidak boleh ada koneksi internet)
  • Jalankan dialog run dengan menekan Win + R atau klik Start >> Run
  • Ketik 'msconfig' (tanpa menggunakan tanda petik)
  • Pilih tab Startup >> Disable All >> OK seperti gambar di bawah:
Windows MSConfig
Gambar: Mendisable seluruh program pada startup

  • Restart komputer
  • Jalankan PCMAV Express for Ramnit
  • Biarkan ia bekerja hingga selesai.
  • Setelah selesai, Anda dapat meng-enable-kan kembali aplikasi-aplikasi yang berjalan pada startup yang sebelumnya Anda disablekan.
Win + R
Gambar: Menekan tombol Win + R


PCMAV Express untuk menghapus virus Ramnit - Copy Of Shortcut - Recycler
Gambar: PCMAV Express untuk menghapus virus Ramnit - Copy Of Shortcut - Recycler


Demikian mengenai cara menghapus virus copy of shortcut dengan mudah. Semoga bermanfaat.

Keywords: cara, menghilangkan, virus, copy, of, shortcut, menghapus, +, recycler, (ramnit), mudah, mengatasi, ramnit, manual, dan, secara, bagaimana, shorcut, pcmav, express, for, ramnit.shortcut, membasmi, membersihkan, uninstall, software, hapus, killer, aplikasi, untuk, ramnit,shortcut,recycler, hilangkan, pada, windows, 7, basmi, file, to, membuang, membunuh, download, 1, 2, 3, 4, di, bersihkan, penghapus.

READ MORE - Menghapus Virus Shortcut - Cara Termudah

Kamus Bahasa Arab v3.0 | Download

Alhamdulillah Kamus Bahasa Arab v3.0 telah selesai. Kamus Bahasa Arab v3.0 merupakan kelanjutan Kamus Bahasa Arab v2.0.1

Sebelum proses instalasi Software Kamus Bahasa Arab v3.0, pastikan bahwa windows Anda mendukung penulisan arab penuh. Mengenai tatacara setting arabic pada windows XP klik link disamping Cara Setting Arabic Pada Windows XP.

Download: Kamus Bahasa Arab v3.0

Perhatian:
Untuk kenyamanan Anda, scan terlebih dahulu menggunakan Anti Virus sebelum melakukan proses instalasi.

Mengenai hal-hal yang berhubungan dengan kamus bisa Anda klik disini.
 Keywords: download, kamus, bahasa, arab, indonesia, untuk, windows, 7, xp, 8, v3.0, free, offline, software, v3, online, aplikasi
READ MORE - Kamus Bahasa Arab v3.0 | Download

VB6 Hash Class - MD5 , SHA-1, SHA-256, SHA-384, SHA-512

VB6 Hash Class - MD5 , SHA-1, SHA-256, SHA-384, SHA-512
Option Explicit

Private Declare Function CryptAcquireContext Lib "advapi32.dll" Alias "CryptAcquireContextA" _
(ByRef phProv As Long, ByVal pszContainer As String, ByVal pszProvider As String, _
ByVal dwProvType As Long, ByVal dwFlags As Long) As Long
Private Declare Function CryptReleaseContext Lib "advapi32.dll" _
(ByVal hProv As Long, ByVal dwFlags As Long) As Long
Private Declare Function CryptCreateHash Lib "advapi32.dll" _
(ByVal hProv As Long, ByVal Algid As Long, ByVal hKey As Long, ByVal dwFlags As Long, _
ByRef phHash As Long) As Long
Private Declare Function CryptDestroyHash Lib "advapi32.dll" _
(ByVal hHash As Long) As Long
Private Declare Function CryptHashData Lib "advapi32.dll" _
(ByVal hHash As Long, pbData As Any, ByVal cbData As Long, ByVal dwFlags As Long) As Long
Private Declare Function CryptGetHashParam Lib "advapi32.dll" _
(ByVal hHash As Long, ByVal dwParam As Long, pbData As Any, ByRef pcbData As Long, _
ByVal dwFlags As Long) As Long

Private Const PROV_RSA_FULL As Long = 1
Private Const PROV_RSA_AES As Long = 24
Private Const CRYPT_VERIFYCONTEXT As Long = &HF0000000

Private Const HP_HASHVAL As Long = 2
Private Const HP_HASHSIZE As Long = 4

Private Const ALG_TYPE_ANY As Long = 0
Private Const ALG_CLASS_HASH As Long = 32768

Private Const ALG_SID_MD2 As Long = 1
Private Const ALG_SID_MD4 As Long = 2
Private Const ALG_SID_MD5 As Long = 3
Private Const ALG_SID_SHA As Long = 4
Private Const ALG_SID_SHA_256 As Long = 12
Private Const ALG_SID_SHA_384 As Long = 13
Private Const ALG_SID_SHA_512 As Long = 14

Private Const CALG_MD2 As Long = (ALG_CLASS_HASH Or ALG_TYPE_ANY Or ALG_SID_MD2)
Private Const CALG_MD4 As Long = (ALG_CLASS_HASH Or ALG_TYPE_ANY Or ALG_SID_MD4)
Private Const CALG_MD5 As Long = (ALG_CLASS_HASH Or ALG_TYPE_ANY Or ALG_SID_MD5)
Private Const CALG_SHA As Long = (ALG_CLASS_HASH Or ALG_TYPE_ANY Or ALG_SID_SHA)
Private Const CALG_SHA_256 As Long = (ALG_CLASS_HASH Or ALG_TYPE_ANY Or ALG_SID_SHA_256)
Private Const CALG_SHA_384 As Long = (ALG_CLASS_HASH Or ALG_TYPE_ANY Or ALG_SID_SHA_384)
Private Const CALG_SHA_512 As Long = (ALG_CLASS_HASH Or ALG_TYPE_ANY Or ALG_SID_SHA_512)

' Create Hash
Private Function CreateHash(abytData() As Byte, ByVal lngAlgID As Long) As String
Dim hProv As Long, hHash As Long
Dim abytHash(0 To 63) As Byte
Dim lngLength As Long
Dim lngResult As Long
Dim strHash As String
Dim i As Long
strHash = ""
If CryptAcquireContext(hProv, vbNullString, vbNullString, _
IIf(lngAlgID >= CALG_SHA_256, PROV_RSA_AES, PROV_RSA_FULL), _
CRYPT_VERIFYCONTEXT) <> 0& Then
If CryptCreateHash(hProv, lngAlgID, 0&, 0&, hHash) <> 0& Then
lngLength = UBound(abytData()) - LBound(abytData()) + 1
If lngLength > 0 Then lngResult = CryptHashData(hHash, abytData(LBound(abytData())), lngLength, 0&) _
Else lngResult = CryptHashData(hHash, ByVal 0&, 0&, 0&)
If lngResult <> 0& Then
lngLength = UBound(abytHash()) - LBound(abytHash()) + 1
If CryptGetHashParam(hHash, HP_HASHVAL, abytHash(LBound(abytHash())), lngLength, 0&) <> 0& Then
For i = 0 To lngLength - 1
strHash = strHash & Right$("0" & Hex$(abytHash(LBound(abytHash()) + i)), 2)
Next
End If
End If
CryptDestroyHash hHash
End If
CryptReleaseContext hProv, 0&
End If
CreateHash = LCase$(strHash)
End Function

' Create Hash From String(Shift_JIS)
Private Function CreateHashString(ByVal strData As String, ByVal lngAlgID As Long) As String
CreateHashString = CreateHash(StrConv(strData, vbFromUnicode), lngAlgID)
End Function

' Create Hash From File
Private Function CreateHashFile(ByVal strFileName As String, ByVal lngAlgID As Long) As String
Dim abytData() As Byte
Dim intFile As Integer
Dim lngError As Long
On Error Resume Next
If Len(Dir(strFileName)) > 0 Then
intFile = FreeFile
Open strFileName For Binary Access Read Shared As #intFile
abytData() = InputB(LOF(intFile), #intFile)
Close #intFile
End If
lngError = Err.Number
On Error GoTo 0
If lngError = 0 Then CreateHashFile = CreateHash(abytData(), lngAlgID) _
Else CreateHashFile = ""
End Function

' MD5
Public Function CreateMD5Hash(abytData() As Byte) As String
CreateMD5Hash = CreateHash(abytData(), CALG_MD5)
End Function
Public Function CreateMD5HashString(ByVal strData As String) As String
CreateMD5HashString = CreateHashString(strData, CALG_MD5)
End Function
Public Function CreateMD5HashFile(ByVal strFileName As String) As String
CreateMD5HashFile = CreateHashFile(strFileName, CALG_MD5)
End Function

' SHA-1
Public Function CreateSHA1Hash(abytData() As Byte) As String
CreateSHA1Hash = CreateHash(abytData(), CALG_SHA)
End Function
Public Function CreateSHA1HashString(ByVal strData As String) As String
CreateSHA1HashString = CreateHashString(strData, CALG_SHA)
End Function
Public Function CreateSHA1HashFile(ByVal strFileName As String) As String
CreateSHA1HashFile = CreateHashFile(strFileName, CALG_SHA)
End Function

' SHA-256
Public Function CreateSHA256Hash(abytData() As Byte) As String
CreateSHA256Hash = CreateHash(abytData(), CALG_SHA_256)
End Function
Public Function CreateSHA256HashString(ByVal strData As String) As String
CreateSHA256HashString = CreateHashString(strData, CALG_SHA_256)
End Function
Public Function CreateSHA256HashFile(ByVal strFileName As String) As String
CreateSHA256HashFile = CreateHashFile(strFileName, CALG_SHA_256)
End Function

' SHA-384
Public Function CreateSHA384Hash(abytData() As Byte) As String
CreateSHA384Hash = CreateHash(abytData(), CALG_SHA_384)
End Function
Public Function CreateSHA384HashString(ByVal strData As String) As String
CreateSHA384HashString = CreateHashString(strData, CALG_SHA_384)
End Function
Public Function CreateSHA384HashFile(ByVal strFileName As String) As String
CreateSHA384HashFile = CreateHashFile(strFileName, CALG_SHA_384)
End Function

' SHA-512
Public Function CreateSHA512Hash(abytData() As Byte) As String
CreateSHA512Hash = CreateHash(abytData(), CALG_SHA_512)
End Function
Public Function CreateSHA512HashString(ByVal strData As String) As String
CreateSHA512HashString = CreateHashString(strData, CALG_SHA_512)
End Function
Public Function CreateSHA512HashFile(ByVal strFileName As String) As String
CreateSHA512HashFile = CreateHashFile(strFileName, CALG_SHA_512)
End Function

Keywords: vb6, md5, hash, function, sha256, hashing, in, vb, sha512, generator, sha1, sha, vba, algorithm, sha512.dll

READ MORE - VB6 Hash Class - MD5 , SHA-1, SHA-256, SHA-384, SHA-512