Selamat Datang di Kang Bahor.blogspot.com

Copy protection pada software

Di sebuah milis ada yang bertanya tentang software copy protection. Berikut ini adalah reply saya (yang terlanjur kepanjangan dan merasa sayang kalau tidak diblog)

> iya…kepikirannya sih maen di coding aja… or di satu file tertentu (.INI file) trus di umpetin di folder tertentu, tp pasti akan tetep ke detect klo usernya jago. Ada ga yah cara lainnya?

Cara-cara lain banyak. Namun sebelumnya, perlu dipahami keadaan/kenyataan tentang software copy protection.
SEMUA software copy protection bisa dijebol sehingga program bisa dikopi ke mesin lain dan dijalankan. Satu-satunya cara supaya tidak bisa dijebol adalah dengan membuat dua buah instance yang berbeda: full version dan partial version (physically crippled/incomplete). Tapi ini sebenarnya hanya metode distribusi, bukan murni termasuk mekanisme copy protection. Jika keberadaan instance yang full version sudah didapatkan, maka copy protection yang membuat software virtually crippled/incomplete/non-functional akan bisa dijebol.

Copy protection secara umum ada 2 jenis:
1. Semua informasi untuk mem-verifikasi kelegalan copy/instalasi dimiliki oleh copy/instalasi tersebut (tidak butuh akses ke hal-hal yang eksternal misalnya hardware dongle, customized/protected disc, validasi dari server external via Internet/dial-up). Penjebolan untuk jenis proteksi ini bisa cukup ‘memalukan’, yaitu program penjebol bisa menghasilkan/generate informasi yang seharusnya hanya bisa dihasilkan oleh produser aslinya. Contoh klasiknya adalah WinZip yang penjebolnya bisa menghasilkan pasangan user dan key yang dibutuhkan — istilah populernya: keygen (key generator).

2. Instalasi/copy butuh hal-hal eksternal. Proteksi ini bisa dijebol dengan 2 cara: a) Mengubah file program sehingga eksekusi untuk melakukan verifikasi akan selalu menghasilkan valid/benar. Ini biasanya disebut dengan: crack atau patch. b) Membuat simulasi/emulasi hal-hal yang eksternal tersebut. Misalnya untuk protected disc, dilakukan pencegatan terhadap system call yang mengakses disc/drive dan melakukan emulasi untuk memberikan hasil yang diharapkan oleh program. Untuk hardware dongle dan external server feedback, jika response yang diharapkan adalah sekedar ‘VALID’ atau ‘INVALID’, maka bisa dilakukan pencegatan juga. Namun jika yang diharapkan adalah kode-kode hasil enkripsi, akan sangat sulit untuk mengemulasinya atau melakukan cryptanalysis, terutama untuk external server feedback.

Ada satu lagi jenis proteksi yaitu hardware lock-in: copy/instalasi dibuat/kustomisasi secara khusus hanya bisa berjalan di konfigurasi komputer tersebut. Caranya: user mengirimkan konfigurasi komputernya (melalui program tertentu yang disediakan oleh produser) lalu produser melakukan kustomisasi khusus untuk user ini. Proteksi ini pada dasarnya adalah tipe yang kedua (bergantung hal eksternal) dan cara penjebolannya akan analogis dengan hardware dongle.

Para penjebol/cracker biasanya memiliki target yang level ‘kebanggaannya’ sebanding dengan kompleksitas penjebolan:
1. Time spoofing. Ini biasanya untuk instance yang full version namun dibatasi hanya bisa digunakan selama beberapa waktu (trial period). Penggunaan VMWare yang dipost rekan lain termasuk kategori ini walaupun bukan murni upaya penjebolan. Beberapa program yang kurang hati-hati bahkan bisa ditipu hanya dengan mengubah jam sistem secara sementara (pada awal loading saja, lalu dikembalikan ke jam sebenarnya). Penjebolan jenis ini pada umumnya tidak memiliki kompleksitas yang tinggi. Contoh yang aktual adalah penjebolan pada proteksi Windows Vista. Secara default, jika pada instalasi tidak dimasukkan key apapun, copy/instalasi akan masuk ke dalam evaluation/trial mode yang berlaku selama 30 hari. Periode 30 hari inipun sebenarnya bisa diperpanjang 3x lagi (total jadi 120 hari) menggunakan program yang disediakan Vista sendiri tanpa hack apapun. Penjebolan terakhir berhasil membuat Vista tertipu untuk selalu mengira baru digunakan 1 hari atau kurang.

2. Patching. Penjebolan biasanya hanya memerlukan pengubahan file pada sedikit tempat, yaitu pada saat verifikasi dilakukan. Untuk ini, penjebol hanya perlu mengamati tempat-tempat/waktu-waktu tertentu yang menjadi kandidat berlakunya verifikasi. Ini biasanya dilakukan dengan debugging tools tanpa harus melakukan reverse engineering yang terlalu banyak. Namun karena ada file yang diubah, para konsumen (pemakai hasil penjebolan) biasanya lebih memilih untuk memasukkan sendiri informasi/key yang dibutuhkan. Ini masuk kepada penjebolan berikutnya: key generator.

3. Key generator dan external factor emulation. Penjebolan ini kompleksitasnya paling tinggi. Supaya bisa menghasilkan informasi yang bisa diverifikasi secara normal (tanpa hack) oleh program, maka penjebol perlu melakukan reverse engineering untuk mengetahui bagaimana/algoritma program tersebut dalam melakukan verifikasi.

Dari paparan di atas, kesimpulannya adalah: semua proteksi bisa dijebol. Namun begitu, bukan berarti software tidak perlu diproteksi (pembahasan ini ruang lingkupnya adalah software komersial, bukan open source). Yang perlu dipikirkan dan diputuskan adalah: akan diproteksi sampai tahap mana dan terhadap siapa. Basis usernya sedikit atau banyak, fungsinya spesifik atau umum, kustomisasi bergantung pada keterlibatan produser atau minimal, ada trade secret atau tidak (copy protection berguna untuk deter/menurunkan niat untuk dikopi ke banyak orang sehingga kemungkinan jatuh ke tangan reverse engineer handal lebih kecil), dsb.

Jika ini adalah tugas kantor (software produksi perusahaan tempat kita bekerja), biasanya saya mulai dengan menjelaskan fakta bahwa tidak ada proteksi yang 100% aman dari penjebolan. Berikutnya, dianalisa penggunaan software tersebut sendiri dan dirembukkan sampai tahap apa kompleksitas proteksi yang dibutuhkan. Setelah diputuskan kemudian dibuat implementasi paling sederhana sebagai proof of concept (POC) pada tahap yang disetujui. Pengalaman saya, bersama dengan software protection, juga dibutuhkan verifikasi penggunaan jumlah user yang dilisensi (biasanya pada software yang server based) dan user registration (informasi nama, alamat, kontak, dll). POC bisa dilakukan secara sendiri-sendiri maupun terintegrasi. Pengalaman lagi, karena biasanya deadline mepet, POC sering naik statusnya jadi production code. Karena itu, dalam POC juga tidak bisa terlalu ‘culun’ proteksinya.

Sori jadi kepanjangan nulisnya. Mungkin bisa mulai dulu dari software yang akan diproteksi ini bagaimana akan digunakannya. Pelan-pelan dari situ bisa dianalisa kebutuhan proteksinya.

Kangbahor.blogspot.com@2008
|
Pengenala Java
17.55 | Author: Kang Bahor's
Nih Buat yang kemareen nanyain mengenai java....

Java
- by : kangbahor.blogspot.com -

Pendahuluan

Bahasa Pemrograman Java

Apakah Java itu ? Java merupakan bahasa pemrograman berorientasi objek yang dikembangkan oleh Sun Microsystem, suatu perusahaan yang terkenal dengan Workstation UNIX high-end.

Sejak dirilis pada tahun 1995, bahasa pemrograman Java dengan cepat memperoleh popularitas di kalangan para pemrogram. Keberhasilan ini disebabkan teknologi baru yang diperkenalkan Sun Microsystems yaitu Java Virtual Machine (JVM), yang memungkinkan sebuah aplikasi dijalankan di atas platform apa saja sepanjang pada mesin tersebut dipasang JVM.

Program yang dihasilkan dengan bahasa Java dapat berupa applet (aplikasi kecil yang berjalan di atas web browser) maupun berupa aplikasi mandiri yang dijalankan dengan program Java Interpreter. Contoh program yang ditulis dengan bahasa Java adalah HotJava yang berupa sebuah web browser.

Karakteristik Java

Java adalah sebuah bahasa pemrograman berorientasi obyek murni. Jadi program – program Java berada dalam sebuah struktur kelas – kelas dan obyek – obyek. Pada dasarnya sintaks pada bahasa Java mirip dengan sintaks pada bahasa C atau C++. Java bertipe kuat (strongly-typed). Ini berarti semua tipe data terikat secara statis atau dengan kata lain setiap nama variabel diasosiasikan dengan sebuah tipe data tunggal yang dikenali pada saat kompilasi.

Ciri utama dari program Java adalah :

*
JVM (Java Virtual Machine)
* Garbage Collection
* Code Security

Keuntungan dan Kelemahan dari Java

1. Java merupakan bahasa pemrograman berorientasi objek (OOP).
2. Memiliki tingkat fleksibilitas yang tinggi dan program Java bersifat modular serta kode dapat digunakan kembali.
3. Java relatif lebih mudah untuk dipelajari.
4. Java lebih sederhana, karena telah menghilangkan beberapa fitur dari C++ yang membingungkan dan sukar untuk dipelajari.
5. Java memiliki kinerja yang tinggi dan handal.
6. Java dapat dipergunakan sebagai penterjemah sehingga dapat digunakan pada lingkungan komputer jenis apapun tanpa merubah kode program kembali.
7. Java memiliki tingkat keamanan yang sangat baik.
8. Multithreading, sehingga program java dapat melakukan beberapa perintah (program) sekaligus.


Dasar 1 <--

Dasar Pemrograman Java

Setting Path dan ClassPath

Setelah anda menginstal software pengembang program Java yaitu SDK, setelah itu anda diharapkan untuk menyeting path dan classpath dari software Java tersebut. Hal ini diharapkan agar pada saat booting akan mencari direktori yang ada untuk file target. Misalkan anda menginstal pada dirktori default yaitu c:\jdk.1.2.2\bin maka anda harus mengetikkan perintah sebagai berikut pada file autoexec.bat (pada window 9x) karena file ini yang akan dieksekusi pada saat booting. Dan untuk sistem operasi seperti window 2000 atau Xp kita harus mengesetnya pada environment variabelnya.

PATH=C:\jdk.1.2.2\bin

Setelah anda mengeset path maka anda diharapkan juga untuk mengeset ClassPath yaitu class-class lain yang digunakan oleh program Java. Perintah untuk menyeting ClassPath adalah sebagai berikut :

SET CLASSPATH=.;C:\jdk1.2.2\lib\tools .jar;

Aturan Dasar

Sebelum kita mencoba untuk membuat program berbasis Java, kita harus memperhatikan sejumlah aturan umum dari penggunaan sintaks bahasa Java :

1. Java bersifat case-sensitive. Jadi saat anda mengetikkan kode Java, anda harus berhati-hati untuk menggunakan huruf besar dan kecil dengan benar.
2. Secara umum, Java mengabaikan spasi kosong. Spasi kosong terdiri dari karakter yang tidak muncul pada layar, seperti spasi, tab, baris baru, dll. Seperti yang digunakan dalam pemformatan text.
3. Tanda {} adalah simbol pengelompokkan dalam Java. Mereka menandai awal dan akhir dari program.
4. Setiap pernyataan Java diakhiri dengan simbol ;.
5. Komentar ditandai dengan // yang membuat komentar pada satu baris saja dan tanda /* -- */ yang membuat komentar lebih dari satu baris

Dasar 2 <--

Mengkompilasi dan menjalankan program

Untuk menkompilasi sebuah program yang berekstensi .java kita menggunakan program yang disebut javac.exe. Jika tidak terdapat kesalahan pada program maka kompiler akan menghasilkan sebuah file dengan ekstensi .class pada direktori yang sama dengan direktori file .java tersebut. Misalnya kita ingin mengkompile file Hello.java maka pada command prompt kita ketikan :

C:\javac Hello.java

Jika tidak ada pesan kesalahan maka akan dihasilkan file yaitu Hello.class. Untuk menjalankan file ini maka kita gunakan program java.exe yaitu program yang digunakan untuk menjalankan program-program Java. Misal setelah dihasilkan file Hello.class maka kita ketikkan perintah berikut pada command prompt :

C:\java Hello

Pada program java.exe tersebut terdapat 2 macam option yaitu :

1. java [nama file] untuk menjalankan program-program berekstensi .class
2. java –jar [nama file] untuk menjalankan program-program berekstensi .jar

Tipe Data

Ada empat macam tipe data sederhana yang dapat kita gunakan dalam program Java yaitu :

1.
Integer : Terdiri dari int, short, byte, dan long.
2.
Angka floating point : terdiri dari float dan double.
3.
Karakter : Menyimpan satu karakter
4.
Boolean : Bernilai True atau False.

Dasar 3 <--

User Interface

Pada dasarnya bahasa pemrograman Java itu berbasis text. Sedangkan JVM tidak dapat dilihat kita hanya dapat menghidupkannya seperti pada saat menjalankan program dengan perintah java, dan biasanya untuk menulis source code dari java kita menggunakan program - program text editor seperti Notepad (Window) dan KWrite (Linux). Tetapi sebenarnya pada saat sekarang sudah banyak IDE yang dapat digunakan untuk membantu pembuatan program dengan Java antara lain VisualAge for Java, Java Studio, dan Jbuilder.

Deklarasi Variabel

Untuk pembahasan serta contoh - contoh pendeklarasian variabel pada program Java silahkan klik disini.

Contoh Program Sederhana

Disini kita akan melihat sebuah contoh program sederhana yang dapat menampilkan kata hello world pada layar. Untuk melihat code program beserta penjelasannya silahkan klik disini.

Operator - Operator Java

Pada bahasa pemrograman Java terdapat beberapa macam operator yang harus kita ketahui. Sebagai contoh operator aritmetik seperti +-/*. Untuk lebih jelasnya tentang operator - operator yang lain silahkan klik disini.


Looping ( Pengulangan )

Ada tiga macam pengulangan(looping) yang dapat digunakan dalam Java yaitu while, do-while, dan for.

Dengan while statement-statement yang berada pada badan loop akan dieksekusi selama suatu kondisi yang diberikan benar(true). Jika kondisi salah maka looping akan berhenti. Bentuk umumnya adalah sebagai berikut :

while(kondisi){
statement;
….. ;
}

Contoh penggunaan while :

public class ulang{
public static void main(String[] arg){
int nilai =1;
while(nilai<10){
System.out.println(nilai);
nilai++;
}
}
}

Pada do-while tidak jauh berbeda dengan while hanya saja kondisi berada diakhir statement, sehingga pernyataan yang ada pada bagian loop akan dieksekusi setidaknya satu kali. Bentuk umum dari statement ini adalah :

do{
statement;
statement;
} while(kondisi);

Contoh penggunaannya sama dengan contoh while diatas hanya pada bagian while kita pindahkan keakhir looping.

Dengan menggunakan for kita dapat mengetahui secara tepat berapa kali kita ingin melakukan looping. Bentuk umum dari for adalah sebagai berikut :

for(index_awal;index_akhir;iterasiindex){
statement;
statement;
}

Contoh penggunaan for adalah sebagai berikut :

public class ulang{
public static void main(String[] arg){
int x;
for(x=0;x<=3:x++){
System.out.println(“Nilai x : “+x);
}
}
}

Pada contoh diatas kita melakukan looping dan pencetakkan nilai x dengan nilai awal x = 0 dan nilai akhir x = 3. Dan looping yang terjadi adalah menambahkan x dengan satu tiap kali looping pada iterasi (x++).

Kondisi (If - Else dan Switch)

Untuk menggunakan statement kondisi pada Java kita dapat menggunakan statement if. Bentuk standar dari statement ini adalah :

If(kondisi){
….;
….;
}else{
….;
….;
}

Contoh penggunaan statement If yaitu seperti berikut :

public class kondisi{
public static void main(String[] args){
int userinput;
userinput = Keyin.inInt(“Masukkan 1 atau 2 “);
if(userinput == 1) System.out.println(“Anda
memasukkan angka1”);
Else System.out.println(“Anda memasukkan angka 2”);
}
}

Selain statement if kita juga dapat menggunakan statement switch. Bentuk umum dari statement ini adalah :

switch (ekspresi){
case nilai1:
statement1;
[break;]
case nilai2:
statement2;
[break;]
[default:]
statement default;
[break;]
}

Kata kunci break digunakan agar bila kondisi yang dicari sudah ditemukan maka eksekusi segera diarahkan pada akhir bentuk switch. Pada blok terakhir (default) pernyataan break tidak diperlukan namun biasanya dimasukkan untuk meningkatkan readibilitas. Contoh penggunaan switch :

public class kondisi{
public static void main(String[] arg){
int userinput;
userinput=Keyin.inInt(“Masukkan 1 atau 2”);
switch(userinput){
case 1: System.out.println(“Anda memasukkan
angka 1”);
break;
case 2: System.out.println(“Anda memasukkan
angka 2”);
break;
default: System.out.println(“Anda memasukkan
angka lain”)
break;
}
}
}

ARRAY

Array adalah sebuah grup beraturan dari variabel yang sama tipenya. Tiga operasi yang penting dalam pembuatan array adalah :

* Deklarasi array
* Pembuatan dan alokasi array
* Inisialisasi atau akses array

Sebagai contoh mendeklarasikan sebuah array bertipe integer :

int[] kelas;

Untuk membuat sebuah array, gunakan kata kunci new :

kelas = new int[10]

Kita bisa menjalankan kedua operasi dalam sebuah pernyataan tunggal :

int[] kelas = new int[10]

dimana :

kelas = deklarasi
new int[10] = alokasi

Untuk memasukkan nilai pada array tersebut adalah dengan cara sebagai berikut :

kelas[0] = 1;
kelas[1] = 2;
……
kelas[9]=10;
atau dengan statemen tunggal seperti berikut:
int kelas[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

Contoh program sederhana yang menggunakan array :

1 : class ArrayTest {
2:
3: String[] firstNames = { "Agus", "Ahmad",
"Dijas", "Eko","Luhur" };
4: String[] lastNames = new String[firstNames.length];
5:
6: void printNames() {
7: int i = 0;
8: System.out.println(firstNames[i]
9: + " " + lastNames[i]);
10: i++;
11: System.out.println(firstNames[i]
12: + " " + lastNames[i]);
13: i++;
14: System.out.println(firstNames[i]
15: + " " + lastNames[i]);
16: i++;
17: System.out.println(firstNames[i]
18: + " " + lastNames[i]);
19: }
20:
21: public static void main (String args[]) {
22: ArrayTest a = new ArrayTest();
23: a.printNames();
24: System.out.println("----------");
25: a.lastNames[0] = "Sugianto";
26: a.lastNames[1] = "Suryahaminata T";
27: a.lastNames[2] = "Swartch";
28: a.lastNames[3] = "Yulianto";
29: a.lastNames[4] = "Sapto N";
30: a.printNames();
31: }
32: }


Java memberikan class library untuk pemrograman dasar dengan GUI, yang lazim disebut Abstract Windowing Toolkit (AWT). Ide dasar dibalik AWT adalah bahwa graphical program Java merupakan kumpulan dari komponen bersarang (nested component), diawali dari bagian luar window kemudian melangkah ke komponen UI yang terkecil. Komponen-komponen tersebut dapat secara nyata dilihat di layar, seperti windows, menu bars, buttons dan text fields dan dapat juga terdiri dari containers yang bisa berisi komponen-komponen lain. Pemrograman grafis dalam Java melalui sekumpulan paket yang kita sebut Java Foundation Class (JFC). Dalam Java 1.2 kelas-kelas fondasi berisi API berikut :

* Abstract Windows Toolkit atau AWT
* Komponen-komponen pergerakkan
* Java 2D
* Java Accessibility

AWT Java adalah paket grafis inti dari program Java. AWT berisi kelas-kelas untuk pembuatan dan pengoperasian Graphical User Interface, dan untuk melakukan operasi penggambaran dan pelukisan. AWT menyediakan dukungan untuk transfer berbasis clipboard, manipulasi citra, font, pencetakkan, operasi geometris 2D, dan input. Salah satu kelas yang paling berguna adalah java.awt.Component. Pada kelas ini terdapat komponen-komponen seperti tombol, menu, scrollbar, dll.

Java 2D adalah sebuah rancangan bagi ekstensi AWT yang berisi grafis yang telah ditingkatkan, operasi text, penanganan citra, definisi warna dan komposisi, deteksi hit, dan pencetakkan yang tidak bergantung pada piranti.

Tidak seperti Applet, untuk membuat GUI dari suatu aplikasi kita harus membuat jendela kita sendiri untuk menampilkan aplikasi yang kita buat. Class yang paling biasa digunakan adalah kelas frame yang terdapat pada class java.awt.Frame. Ada juga tampilan dengan menggunakan class java.awt.Window.

Untuk melihat contoh - contoh program grafik yang menggunakan AWT anda dapat mengklik di sini.

Udah duluu yach cape banget nih nulisnya ok! brow... see you next time... bye
|
Chatting
17.47 | Author: Kang Bahor's
Chatting
- by : kangbahor.blogspot.com


Persiapan <--

Tentu saja kalian pernah chatting kan? entah menggunakan mirc, ym, plasa, dll. Terpikirkah di benak kalian bagaimana cara membuatnya? (he he he... sok puitis banget ngomongnya). Ternyata konsep yang digunakan sederhana lohh. Kira-kira gini algoritmanya: Tugas server hanya menunggu datangnya koneksi dari klien. Begitu ada user yang masuk, server langsung merespon dan menyediakan tempat untuknya. Kemudian akan server menunggu user baru lagi hingga batas yang telah ditentukan. Ini semua menggunakan winsock loohh... Ok dech, langsung aja yach... tapi maaf yanh lagi males gambar jadi gk da gambar nya deh.....

Sekarang jalankan vb kamu dan gunakan standard.exe

Klik project=>components dan cek Microsoft Winsock Control 6.0. Kalo sudah tambahkan satu form lagi dan tambah kan textbox, label, command button dan winsock seperti gambar dibawah ini:

Jangan lupa pastikan protokol yang digunakan winsock adalah TCP

Sekarang tinggal nulis programnya, untuk yang pertama buat server dulu ya


Kode Program 1 <--

Tulis program dibawah ini (sebaiknya ditulis jangan di copy+paste, akan lebih baik hasilnya):
------------------dari sini, tapi garis ini jangan ikut lohh...------------------

1: Private Sub Command1_Click()
2: 'Menutup winsock
3: Winsock1.Close
4: End
5: End Sub
6:
7: Private Sub Form_Load()
8: 'Menset port yang digunakan, sebaiknya digunakan
port >1300
9: Winsock1.LocalPort = 1300
10: 'Perintah ini membuat program ini menjadi server
untuk menunggu koneksi dari klien
11: Winsock1.Listen
12: 'Memunculkan Form klien
13: Form2.Show
14: End Sub
15:
16: Private Sub Winsock1_ConnectionRequest(ByVal
requestID As Long)
17: 'Cek apakah winsock ditutup atau tidak jika tidak
maka akan ditutup
18: If Winsock1.State <> sckClosed Then
19: Winsock1.Close
20: End If
21: 'Menerima request dari klien
22: Winsock1.Accept requestID
23: End Sub
24:
25: Private Sub Winsock1_DataArrival(ByVal bytesTotal
As Long)
26: Dim str As String
27: 'Menerima data yang diterima dan ditampung
di variabel str
28: Winsock1.GetData str
29: 'Mengosongkan text2 (data yang diterima)
30: text2.Text = ""
31: 'Menampilkan data yang diterima di text2
32: text2.Text = str
33: End Sub
34:
35: Private Sub Text1_KeyPress(KeyAscii As Integer)
36: On Error GoTo keluar
37: 'Jika user menekan enter, data akan dikirim
38: If KeyAscii = 13 Then
39: 'Data yang tertulis ditext dikirim
40: Winsock1.SendData txtKirim.Text
41: Text1.Text = ""
42: Text1.SetFocus
43: End If
44: keluar:
45: Exit Sub
46: End Sub

------------------yup sampai disini------------------

Cape juga nulisnya yach... Tapi kalo kalian nulis sendiri (gak copy+paste) pasti ngerti maksud program ini, jadi gak usah dijelasin yah...



Kode Program 2 <--

Sekarang tinggal nulis program buat Client Saja. Program yang dituliskan sama dengan server. Hanya pada baris 16-23 tidak perlu ditulis. Selain itu pada Form load ada sedikit perubahan karena dia klien, perhatikan:
------------------dari sini, ingat garis ini jangan ikut lohh...-----------------

1: Private Sub Form_Load()
2: 'Port yang digunakan harus sama dengan yang
di server
3: Winsock1.RemotePort = 1300
4: 'IP Address/namanya harus sama dengan yang
di server
5: sckClient.RemoteHost = "127.0.0.1"
6: 'yang ini untuk ngecek doank
7: If sckClient.State <> sckClosed Then
8: sckClient.Close
9: End If
10: 'Ini biar terhubung dengan server
11: sckClient.Connect
12:
13: End Sub

------------------oooppp.... sampai disini aja------------------

kelar juga buatnya... sekarang tinggal ngejalaninnya nich (pencet F5)... tapi jangan lupa save dulu :). Gimana hasilnya? lumayan kan? ini hanya dasar dari penggunaan winsock untuk chatting loohh... Banyak sekali kegunaan yang lain.

Naaahhh... kan udah dikasih tau sourcenya, sekarang gua punya tugas buat kalian:

1. Kan itu menggunakan 2 Form, gimana jika ingin menggunakan satu Form? Caranya gampang gunakan 2 winsock, tapi coba buat kalo bisa
2. Coba kunjungin di sini di sana ada program chatting yang bagus (sudah mendekati net meeting)
3. Kalo kalian chatting dengan mirc kan bisa ngobrol berdua doank (bukan di channel), coba buat programmnya :p
4. O iya, lupa nih. Karena program ini hanya menerima satu klien, jadi gak seru. Buat server biar bisa nerima banyak klien. Gunakan array.
|
Belajar Dasar Visual Basic 6.0
17.44 | Author: Kang Bahor's
Matiin komputer dengan keyboard
- by : kangbahor.blogspot.com



Persiapan <--

Bagaimana cara matiin komputer? Tentu dengan mengklik start > shut down. Bisa juga dengan cara menekan Alt+F4. Naahh... sekarang kita buat program dengan vb untuk mematikan komputer yang semuanya dilakukan dari keyboard. Program ini menggunakan win api yang ditulis di modul. Kita mulai yach

Sekarang jalankan vb kamu dan gunakan standard.exe

untuk properties Form1, ubah properti BorderStyle menjadi none

Setelah selesai, tambahkan sebuah TextBox dan hasilnya seperti gambar dibawah

Tambahkan modul dengan cara mengklik menu Project > Add Module

Akan tampil kotak dialog, tekan saja enter.

Penulisan Kode Program 1 <--

Naahhh... persiapan sudah selesai, sekarang save dulu pekerjaan kamu :). Kalo sudah sekarang kita masuk ketahap kedua, penulisan program. Klik dua kali modul

dan akan tampil halaman kosong. tempat penulisan program. Tulis program dibawah ini (sebaiknya ditulis jangan di copy+paste, akan lebih baik hasilnya):
--------------dari sini, tapi garis ini jangan ikut lohh...--------------

1: 'Buat Hotkey (fungsi api buat hotkey:
pas kita nekan tombol kombinasi program ini jalan)
2: '-----------
3: Public Const WM_SETHOTKEY = &H32
4: Public Const WM_SHOWWINDOW = &H18
5:
6: ' contoh tombol, kalian bisa cari kombinasi
tombol yang lain
7: Public Const HK_SHIFTA = &H141 'Shift + A
8: Public Const HK_SHIFTB = &H142 'Shift + B
9: Public Const HK_CONTROLA = &H241 'Control + A
10: Public Const HK_ALTZ = &H45A 'Alt + Z ini yang
kita gunakan
11: Declare Function SendMessage Lib "user32" Alias
"SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long,
ByVal wParam As Long, lParam As Long) As Long
12: Declare Function DefWindowProc Lib "user32"
Alias "DefWindowProcA" (ByVal hwnd As Long,
ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam
As Long) As Long
13:
14: 'Matiin Komputer (yang ini fungsi api buat matiin
komputer)
15: '---------------
16: Public Const EWX_LOGOFF = 0 ' untuk Log off
17: Public Const EWX_SHUTDOWN = 1 ' untuk Shut down
18: Public Const EWX_REBOOT = 2 ' untuk reboot.
19: Public Const EWX_FORCE = 4 ' untuk menutup semua
aplikasi yang sedang berjalan.
20: Public Const EWX_POWEROFF = 8 ' Shutdown sistem dan
kalau memungkinkan matikan powernya (Tipe Casing ATX)
21:
22: Public Declare Function ExitWindowsEx
Lib "user32.dll" (ByVal uFlags As Long, ByVal
dwReserved As Long) As Long

------------------yup sampai disini------------------

Cape juga nulisnya yach... Tapi kalo kalian nulis sendiri (gak copy+paste) pasti ngerti maksud program ini, jadi gak usah dijelasin yah...


Penulisan Kode Program 2 <--

Sekarang tinggal nulis program buat Form1 aja. Caranya klik kanan Form1 dan pilih View Code

akan tampil halaman kosong. tempat penulisan program. Tulis program dibawah ini (ingat loohhh... sebaiknya ditulis jangan di copy+paste)
--------------dari sini, ingat garis ini jangan ikut lohh...-------------

1: Private Sub Form_Load()
2: 'biar formnya gak keliatan :P
3: Me.Height = 1
4: Me.Width = 1
5:
6: ' spesifikasikan hotkey (Alt + Z) yang akan
di-set, kalo mau tombol lain sesuaikan saja
7: erg& = SendMessage(Me.hwnd, WM_SETHOTKEY,
HK_ALTZ, 0)
8:
9: ' Cek jika berhasil, kalo gagal program akan
keluar
10: If erg& <> 1 Then 'error
11: MsgBox "Tombol Alt + Z sudah diisi oleh
program lain... :(, Ada dua kemungkinan:" _
& vbLf & "1. Program ini sudah dijalankan" _
& vbLf & "2. Ada Program lain yang menggunakan
tombol Alt + Z (non aktifkan/tutup program tersebut)",
vbOKOnly, "Error"
12: End
13: End If
14:
15: ' definisikan perintah jika tombol hotkey
tersebut ditekan
16: erg& = DefWindowProc(Me.hwnd, WM_SHOWWINDOW, 0, 0)
17: End Sub
18:
19: Private Sub Text1_KeyPress(KeyAscii As Integer)
20: Dim a As Integer
21: Dim tanya As Integer
22:
23: 'Disini kita nulis program buat matiin komputer
setelah
24: 'mencet Alt + Z
25:
26: 'Ini buat ganti user
27: 'Kode ascii 71=G dan 103=g
28: If (KeyAscii = 71) Or (KeyAscii = 103) Then
29: tanya = MsgBox("ganti user dikomputer ini?",
vbYesNo,"konfirmasi")
30: If tanya = 6 Then
31: a = ExitWindowsEx(0, 0)
32: End If
33: End If
34:
35: 'Ini buat matiin komputer
36: 'Kode ascii 77=M dan 109=m
37: If (KeyAscii = 77) Or (KeyAscii = 109) Then
38: tanya = MsgBox("matiin komputer?", vbYesNo,
"konfirmasi")
39: If tanya = 6 Then
40: a = ExitWindowsEx(1, 0)
41: End If
42: End If
43:
44: 'Ini buat restart
45: 'Kode ascii 82=G dan 114=g
46: If (KeyAscii = 82) Or (KeyAscii = 114) Then
47: tanya = MsgBox("restart komputer?", vbYesNo,
"konfirmasi")
48: If tanya = 6 Then
49: a = ExitWindowsEx(2, 0)
50: End If
51: End If
52:
53: 'Ini buat keluar dari program ini
54: 'Kode ascii 81=Q dan 113=q
55: If (KeyAscii = 81) Or (KeyAscii = 113) Then
56: tanya = MsgBox("matiin program ini?", vbYesNo,
"konfirmasi")
57: If tanya = 6 Then
58: a = ExitWindowsEx(2, 0)
59: End
60: End If
61: End If
62:
63: 'yang ini buat ngosongin textbox, jadi apapun
yang ditulis gak bakal ketulis
64: KeyAscii = 0
65:
66: End Sub

------------------oooppp.... sampai disini aja------------------

kelar juga buatnya... sekarang tinggal ngejalaninnya nich (pencet F5)... tapi jangan lupa save dulu :). Gimana hasilnya? lumayan kan? program ini akan mematikan komputer dengan menutup programnya dulu bila memungkinkan.


Penutup <--

Naaahhh... kan udah dikasih tau sourcenya, sekarang gua punya tugas buat kalian:

1. Buat help-nya seperti contoh klik di sini
2. Program yang kita buat masih menampilkan pesan konfirmasi pada saat mau matiin, kalo mau hilangkan saja pesan itu
3. Program ini bisa langsung otomatis dijalankan pada saat komputer idup, tugas kamu adalah buat program itu (sebenarnya sich mau gua buat, tapi males :D, caranya cukup tinggal panggil fungsi api buat ngedit registry atau taruh saja di startup di msconfig)
4. Program ini hanya berjalan baik di win 98 dan Me, tahu kah kalian agar bisa jalan di win lainnya? kalo tau kasih tau yach :D
5. Kayaknya lebih bagus apabila program ini menjadi tray icon. jadi user cukup mengklik tray icon atau dengan hotkey. Gunakan api juga.
|
SDN LEUWINANGGUNG - CICURUG
17.41 | Author: Kang Bahor's
SDN LEUWINANGGUNG - CICURUG
|