emang virus bikin ane BT, tp klo gak da virus ane kadang ngerasa keilangan.
ane mo sedikit share,
Sebenernya program VB ini bukan murni buatan ane, program ini merupakan pengembangan dari program sebelumnya yaitu pPoliEdit yg ane dapet dari CD Visual Basic 2003. And hasil dari pencarian ane di Mbah Google, mengenai Registry Windows XP.
Utility ini bagi ane lumayan ngebantu wat ngilangin dampak dari virus yang ngerubah registry (ex: Folder Options ilang, dll)
Component yang diperlukan (ActiveX): Microsoft Windows Common Controls 6.0 (SP6).
ToolBox yang dipake: 1 TreeView, 2 Command Button and 1 ImageList
Properties LineStyle pada TreeView diubah menjadi 1-tvwRootLine
Buat 1 Modul and copy paste or ketik sendiri source dibawah ini :
Public Declare Function SHRestartSystem Lib "Shell32" Alias "#59" (ByVal hOwner As Long, ByVal sPrompt As String, ByVal uFlags As Long) As Long
Public Const Restart_Logoff = &H0
Public Const Restart_ShutDown = &H1
Public Const Restart_Reboot = &H2
Public Const Restart_Force = &H4
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As Long
Private Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long
Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long
Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
Private Const REG_DWORD As Long = 4
Private Const KEY_ALL_ACCESS As Long = &H3F
Private Const HKEY_CURRENT_USER As Long = &H80000001
Private Const ERROR_SUCCESS As Long = 0
Private Function regValue_Exist(ByVal hKey As Long, ByVal sRegKeyPath As String, ByVal sRegSubKey As String) As Boolean
Dim lKeyHandle As Long
Dim lRet As Long
Dim lDataType As Long
Dim lBufferSize As Long
lKeyHandle = 0
lRet = RegOpenKey(hKey, sRegKeyPath, lKeyHandle)
If lKeyHandle <> 0 Then lRet = RegQueryValueEx(lKeyHandle, sRegSubKey, 0&, lDataType, ByVal 0&, lBufferSize)
If lRet = ERROR_SUCCESS Then
regValue_Exist = True
lRet = RegCloseKey(lKeyHandle)
Else
regValue_Exist = False
End If
End Function
Private Sub regDelete_Sub_Key(ByVal hKey As Long, ByVal sRegKeyPath As String, ByVal sRegSubKey As String)
Dim lKeyHandle As Long
Dim lRet As Long
If regValue_Exist(hKey, sRegKeyPath, sRegSubKey) Then
lRet = RegOpenKey(hKey, sRegKeyPath, lKeyHandle)
lRet = RegDeleteValue(lKeyHandle, sRegSubKey)
lRet = RegCloseKey(lKeyHandle)
End If
End Sub
Private Sub regCreate_LongValue(ByVal hKey As Long, ByVal sRegKeyPath As String, ByVal sRegSubKey As String, lKeyValue As Long)
Dim lKeyHandle As Long
Dim lRet As Long
Dim lDataType As Long
lRet = RegCreateKey(hKey, sRegKeyPath, lKeyHandle)
lRet = RegSetValueEx(lKeyHandle, sRegSubKey, 0&, REG_DWORD, lKeyValue, 4&)
lRet = RegCloseKey(lKeyHandle)
End Sub
Public Sub DisableCPL(sGroup As String, sKey As String)
Call regCreate_LongValue(HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Policies\" & sGroup, sKey, 1)
End Sub
Public Sub EnableCPL(sGroup As String, sKey As String)
Call regDelete_Sub_Key(HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Policies\" & sGroup, sKey)
End Sub
Public Function IsCPLEnable(sGroup As String, sKey As String) As Boolean
IsCPLEnable = Not regValue_Exist(HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Policies\" & sGroup, sKey)
End Function
Pada Form ketik or copy paste source di bawah ini :
[b]Dim bDirtyBit As Boolean
Dim asRegName(1 To 37) As String
Dim nExplorer As Long, nNetwork As Long, nSystem As Long, nDos As Long
Private Sub Command1_Click()
Dim n As Node
For Each n In TreeView1.Nodes
If n.Image = 1 Then Call DisableCPL(n.Parent.Text, n.Key)
If n.Image = 2 Then Call EnableCPL(n.Parent.Text, n.Key)
Next
Command1.Enabled = False
If SHRestartSystem(hWnd, "(Note: Beberapa Perubahan tidak memerlukan Restart)" & vbCrLf & vbCrLf & Chr$(0), Restart_Reboot) = vbYes Then
Unload Me
End
End If
End Sub
Private Sub Command2_Click()
Unload Me
End Sub
Private Sub Form_Load()
Dim Root As Node
Dim s1 As String, s2 As String, n As Long
InitRegArray
With TreeView1.Nodes
For i = 1 To UBound(asRegName)
If i = nExplorer Then Set Root = .Add(, , , "Explorer", 3)
If i = nNetwork Then Set Root = .Add(, , , "Network", 3)
If i = nSystem Then Set Root = .Add(, , , "System", 3)
If i = nDos Then Set Root = .Add(, , , "Dos", 3)
Root.ExpandedImage = 4
n = InStr(1, asRegName(i), ",")
s1 = Left$(asRegName(i), n - 1)
s2 = Mid$(asRegName(i), n + 1)
.Add Root, tvwChild, s1, s2, Abs(IsCPLEnable(Root.Text, s1)) + 1
Next i
End With
Command1.Caption = "&Apply"
Command1.Enabled = False
Command2.Caption = "&Close"
Caption = "vbPoliEdit"
End Sub
Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)
Command1.Enabled = True
bDirtyBit = True
If Node.Image = 1 Then Node.Image = 2 Else Node.Image = 1
End Sub
Private Sub InitRegArray()
nExplorer = 1
' Menu staff
asRegName(1) = "NoRun,Sembunyikan Menu Run"
asRegName(2) = "NoFind,Sembunyikan Menu Find"
asRegName(3) = "NoSetFolders,Sembunyikan Folders di Menu Settings"
asRegName(4) = "NoSetTaskbar,Sembunyikan Taskbar di Menu Settings"
asRegName(5) = "NoRecentDocsHistory,Sembunyikan Recent Menu Documents"
asRegName(6) = "ClearRecentDocsHistory,Bersihkan Recent Menu Documents"
asRegName(7) = "NoFolderOptions,Sembunyikan Folder Options"
'desktop staff
asRegName( 8 ) = "NoDeletePrinter,Lumpuhkan penghapusan printer"
asRegName(9) = "NoAddPrinter,Lumpuhkan penambahan printer"
asRegName(10) = "NoClose,Membuang printah Shutdown"
asRegName(11) = "NoSaveSettings,Tidak dapat menyimpan Settings"
asRegName(12) = "NoDesktop,Sembunyikan semua Items pada Desktop"
asRegName(13) = "NoDrives,Sembunyikan Drives dari Desktop"
asRegName(14) = "NoNetHood,Sembunyikan Network icon dari Desktop"
asRegName(15) = "NoInternetIcon,Sembunyikan Internet icon dari Desktop"
asRegName(16) = "NoPrinterTabs,Lumpuhkan Details dan General Pages"
'Network
nNetwork = 17
asRegName(17) = "NoNetSetup,Lumpuhkan Network Control Panel"
asRegName(18 ) = "NoNetSetupIDPage,Lumpuhkan Identification Page"
asRegName(19) = "NoNetSetupSecurityPage,Lumpuhkan Access Control Page"
asRegName(20) = "NoFileSharingControl,Lumpuhkan File dan Print Sharing Controls"
asRegName(21) = "NoFileSharing,Lumpuhkan File Sharing"
asRegName(22) = "NoPrintSharing,Lumpuhkan Print Sharing"
'System
nSystem = 23
asRegName(23) = "NoDispCPL,Lumpuhkan Display System Control Panel"
asRegName(24) = "NoDispBackgroundPage,Lumpuhkan Display Control Background Page"
asRegName(25) = "NoDispScrSavPage,Lumpuhkan Display Control Screen Saver Page"
asRegName(26) = "NoDispApperancePage,Lumpuhkan Display Control Apperance Page"
asRegName(27) = "NoDispSettingPage,Lumpuhkan Display Control Setting Page"
asRegName(28 ) = "NoConfigPage,Lumpuhkan Configuration Page"
asRegName(29) = "NoDevMgrPage,Lumpuhkan Device Manager Page"
asRegName(30) = "NoFileSysPage,Lumpuhkan File System Page"
asRegName(31) = "NoVirtMemPage,Lumpuhkan Virtual Memory Page"
asRegName(32) = "NoAdminPage,Lumpuhkan Remote Administration Page"
asRegName(33) = "NoProfilePage,Lumpuhkan User Profiles Page"
asRegName(34) = "NoPwdPage,Lumpuhkan Change Passwords Page"
asRegName(35) = "NoSecCPL,Lumpuhkan Password Control Panel"
' Dos
nDos = 36
asRegName(36) = "Disabled,Lumpuhkan MS-DOS prompt"
asRegName(37) = "NoRealMode,Lumpuhkan MS-DOS app at real mode"
End Sub[/b]
Ngegunaiinya tinggal kasih tanda ceklis tuk aktifkan registry yg dipilih, or buang tanda ceklis klo mang ga mau diaktifkan
Sebenernya pada program ini masih bisa ditambahin registry-registry Windows XP yang laennya. Tapi takut kepanjangan (padahal mah ane ga bisa) jadi ya Cuma segitu za. Klo mo tambahin registry yg lain silahkan tambahin sendiri za.