Aplikasi Sistem Keamanan Windows Menggunakan Flash Disk Dengan Visual Basic

(1)

APLIKASI SISTEM KEAMANAN WINDOWS MENGGUNAKAN

FLASH DISK DENGAN VISUAL BASIC

TUGAS AKHIR

FITRIAH SAVIRA

072406120

PROGRAM STUDI D-3 ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA

MEDAN

2010


(2)

APLIKASI SISTEM KEAMANAN WINDOWS MENGGUNAKAN FLASH DISK DENGAN VISUAL BASIC

TUGAS AKHIR

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh gelar Ahli Madya Komputer

FITRIAH SAVIRA 072406120

PROGRAM STUDI D-3 ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA

MEDAN 2010


(3)

PERSETUJUAN

JuduL : APLIKASI SISTEM KEAMANANAN WINDOWS

MENGGUNAKAN FLASH DISK DENGAN VISUAL BASIC

Kategori : TUGAS AKHIR

Nama : FITRIAH SAVIRA

Nomor Induk Mahasiswa : 072406120 Program Studi : MATEMATIKA

Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN

ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA

Diluluskan di

Medan, Juni 2010

Diketahui / Disetujui oleh

Departemen Matematika FMIPA USU Pembimbing, Ketua,

Dr. Saib Suwilo, M.sc Drs. F. Bu’ulolo M. Si


(4)

PERNYATAAN

APLIKASI SISTEM KEAMANAN WINDOWS MENGGUNAKAN FLASH DISK DENGAN VISUAL BASIC

TUGAS AKHIR

Saya mengakui bahwa tugas akhir ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, 1 Mei 2010

FITRIAH SAVIRA 072406120


(5)

PENGHARGAAN

Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Pemurah dan Maha Penyayang, dengan limpahan berkah dan rahmat-Nya kertas kajian ini berhasil diselesaikan dalam waktu yang telah ditetapkan.

Ucapan terima kasih saya sampaikan kepada Bapak Drs. F. Bu’ulolo M. Si selaku pembimbing pada penyelesaian tugas akhir ini yang telah memberikan panduan dan kepercayaan penuh kepada saya untuk menyempurnakan kajian ini. Ucapan terima kasih juga ditujukan kepada Ketua Departemen Bapak Dr. Saib Suwilo, M.Sc., Dekan dan Pembantu Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara, semua dosen pada Departemen Matematika FMIPA USU, dan rekan-rekan kuliah khususnya kelas Komputer B 2007. Akhirnya tidak terlupakan kepada Ayah, Bunda, dan semua ahli keluarga yang selama ini memberikan bantuan dan dorongan yang diperlukan. Semoga Tuhan Yang Maha Esa akan membalasnya.


(6)

ABSTRAK

Kajian ini bertujuan untuk membangun sebuah aplikasi sistem keamanan Windows. Aplikasi ini dibangun menggunakan bahasa perangkat lunak Microsoft Visual Basic 6.0. Aplikasi ini bekerja untuk dapat mengunci komputer menggunakan flash disk. Tujuan utama sistem ini adalah untuk menjaga keamanan pada Windows yang mudah dipahami dan digunakan oleh masyarakat luas.


(7)

DAFTAR ISI

Halaman

Persetujuan iii

Pernyataan iv

Penghargaan v

Abstrak vi

Daftar Isi vii

Daftar Tabel ix

Daftar Gambar x

Bab 1 Pendahuluan 1

1.1 Latar Belakang 1

1.2 Identifikasi Masalah 2

1.3 Maksud dan Tujuan Penulisan 2

1.4 Ruang Lingkup Masalah 3

1.5 Metode penelitian 3

1.6 Sistematika Penulisan 4

Bab 2 Landasan Teori 6

2.1 Pengertian Komputer 6

2.2 Pengertian Software 8

2.3 Sekilas Mengenai Visual Basic 6.0 9

2.3.1 Struktur Aplikasi Visual Basic 6.0 11 2.4 Sekilas Mengenai Flash Disk 20

Bab 3 Perancangan Sistem 21

3.1 Perancangan Sistem 21

3.2 Algoritma Program 21

3.2.1 Algoritma Menjalankan Program 22

3.2.2 Algoritma Membuka Windows yang Terkunci 22

3.2.3 Algoritma Tampilan Awal Program 23

3.2.4 Algoritma Sub Menu Set/Change Password 23 3.2.5 Algoritma Tampilan Windows yang Terkunci 24

3.5 Flowchart 24

Bab 4 Implementasi Sistem 27

4.1 Pengertian Implementasi Sistem 27


(8)

4.3 Komponen-komponen Kebutuhan Sistem 29

4.3.1 Hardware 29

4.3.2 Software 30

4.3.3 Brainware 31

4.4 Demonstrasi Program 32

4.4.1 Tampilan Awal Software 33

4.4.2 Tampilan Mengisi Password/Mengganti Password 33

4.4.3 Tampilan Komputer Terkunci 34

4.4.4 Tampilan Membuka Kunci 34

Bab 5 Kesimpulan 35

5.1 kesimpulan 35

5.2 saran 36

Daftar Pustaka 37

LAMPIRAN A. LISTING PROGRAM LAMPIRAN B. SURAT-SURAT


(9)

DAFTAR TABEL

Halaman

Tabel 2.1 Tipe-tipe Data Visual Basic 17

Tabel 2.2 Operator Aritmatika 18

Tabel 2.3 Operator Perbandingan 18


(10)

DAFTAR GAMBAR

Halaman

Gambar 2.1 Tampilan Dasar Ms Visual Basic 10

Gambar 2.2 Jendela Utama Visual Basic 13

Gambar 2.3 Jendela Form 13

Gambar 2.4 Jendela Proyek 14

Gambar 2.5 Toolbox Visual Basic 15

Gambar 2.6 Jendela Properti 15

Gambar 2.7 Jendela Layout Form 16

Gambar 2.8 Flash Disk, dengan berbagai macam dan bentuk 20 Gambar 4.1 Tampilan Sistem Operasi Windows XP 30 Gambar 4.2 Tampilan Microsoft Visual Basic 6.0 31

Gambar 4.3 Tampilan Awal Program 33

Gambar 4.4. Tampilan Mengisi Password/Mengganti Password 33

Gambar 4.5 Tampilan Komputer Terkunci 34


(11)

ABSTRAK

Kajian ini bertujuan untuk membangun sebuah aplikasi sistem keamanan Windows. Aplikasi ini dibangun menggunakan bahasa perangkat lunak Microsoft Visual Basic 6.0. Aplikasi ini bekerja untuk dapat mengunci komputer menggunakan flash disk. Tujuan utama sistem ini adalah untuk menjaga keamanan pada Windows yang mudah dipahami dan digunakan oleh masyarakat luas.


(12)

BAB 1

PENDAHULUAN

1.1 Latar Belakang

Dalam era globalisasi sekarang ini, komputer merupakan alat yang sangat dibutuhkan oleh banyak instansi dan perusahaan-perusahaan milik negara maupun swasta. Pemakaian komputer dewasa ini semakin berkembang pesat di segala bidang sesuai dengan kemajuan jaman. Sejalan dengan lajunya perkembangan dunia teknologi modern saat ini, banyak mengakibatkan perubahan kehidupan manusia dalam menangani setiap permasalahan yang terjadi yang ada hubungannya dengan proses pembangunan secara menyeluruh.

Jika diperhatikan dan ditelusuri kemajuan yang telah dicapai itu, maka akan terlihat dengan jelas bahwa permasalahannya adalah terletak pada penggunaan perangkat lunak (software). Keterkaitan manusia sangatlah dibutuhkan dalam membangun sebuah software. Penulis tertarik membuat suatu software yang berupa aplikasi sistem keamanan Windows menggunakan flash disk dengan Visual Basic.


(13)

1.2 Identifikasi Masalah

Membangun sebuah sistem keamanan pada Windows agar tidak dapat digunakan sembarang user telah menjadi kebutuhan bagi sebagian masyarakat. Oleh karena itu, bagaimana membangun sebuah aplikasi sistem keamanan pada Windows menggunakan flash disk yang mudah dipahami dan digunakan oleh masyarakat luas.

1.3 Maksud dan Tujuan Penulisan

Maksud penulisan tugas akhir ini adalah untuk merancang suatu aplikasi keamanan pada Windows yang sederhana yang berguna bagi pengguna komputer yang membutuhkan privasi lebih pada komputernya, agar tidak dapat digunakan sembarang user. Tujuan dari penulisan tugas akhir ini adalah untuk membangun sebuah aplikasi sistem keamanan Windows menggunakan flash disk dengan bahasa pemrograman Visual Basic.

1.4 Ruang Lingkup Masalah

Keamanan serta privasi bagi pengguna sebuah komputer pribadi saat ini sangatlah minim karena dapat digunakan oleh sembarang user. Sehingga di sini sangat dibutuhkan suatu aplikasi sistem yang dapat menjaga komputer atau Windows dari


(14)

sembarang user. Untuk menghindari hal-hal yang menyimpang dari maksud dan tujuan penulis membatasi permasalahan hanya pada pembuatan sebuah aplikasi sistem keamanan Windows menggunakan flash disk dengan Visual Basic.

1.5 Metode Penelitian

Metode penelitian yang digunakan dalam tulisan ini, adalah studi literatur dengan cara mengumpulkan teori-teori dari buku maupun dari internet yang berhubungan dengan Visual Basic.

1.6 Sistematika Penulisan

Adapun sistematika penulisan laporan Tugas Akhir ini adalah sebagai berikut :

BAB 1 : Pendahuluan

Dalam bab ini penulis menguraikan Latar Belakang, Identifikasi Masalah, Maksud dan Tujuan Penulisan, Ruang Lingkup Masalah, Metode Penelitian dan Sistematika Penulisan.


(15)

BAB 2 : Landasan Teori

Dalam bab ini penulis menguraikan beberapa hal yang berhubungan dengan teori Visual Basic.

BAB 3 : Perancangan Sistem

Dalam bab ini menguraikan tentang perancangan software sederhana agar dapat menjaga keamanan Windows yang dapat dipakai oleh siapa saja dengan cepat dan mudah.

BAB 4 : Implementasi Sistem

Dalam bab ini dijelaskan dan diuraikan tentang pembuatan serta perancangan sistem yang merupakan inti dari permasalahan dalam Tugas Akhir ini.

BAB 5 : Kesimpulan dan Saran


(16)

BAB 2

LANDASAN TEORI

2.1 Pengertian Komputer

Komputer (computer) berasal dari bahasa Latin computare yang berarti menghitung. Komputer mempunyai arti yang sangat luas dan berbeda untuk orang yang berbeda. Komputer adalah sistem elektronik untuk memanipulasi data yang cepat dan tepat serta dirancang dan diorganisasikan supaya secara otomatis menerima dan menyimpan data input, memprosesnya dan menghasilkan output di bawah pengawasan suatu langkah instruksi-instruksi program yang tersimpan di memori (stored program). Sedangkan yang disebut dengan program adalah kumpulan instruksi atau perintah terperinci yang sudah dipersiapkan supaya komputer dapat melakukan fungsinya dengan cara yang sudah tertentu. (Pengenalan Komputer, Jogiyanto Hartono, 1999).

2.2 Pengertian Software

Software (perangkat lunak), merupakan program-program komputer yang berguna untuk menjalankan suatu pekerjaan sesuai dengan yang dikehendaki. Program tersebut


(17)

ditulis dengan bahasa khusus yang dimengerti oleh komputer. Software terdiri dari beberapa jenis, yaitu ;

1. Sistem Operasi, seperti DOS, Unix, Linux, Novell, OS/2, Windows, adalah software yang berfungsi untuk mengaktifkan seluruh perangkat yang terpasang pada komputer sehingga masing-masing dapat saling berkomunikasi. Tanpa ada sistem operasi maka komputer tidak dapat difungsikan sama sekali.

2. Program Utility, seperti Norton Utility, Scandisk, PC Tools, dll. Program utility berfungsi untuk membantu atau mengisi kekurangan/kelemahan dari sistem operasi, misalnya PC Tools dapat melakukan perintah format sebagaimana DOS, tapi PC Tools mampu memberikan keterangan dan animasi yang bagus dalam proses pemformatan. File yang telah dihapus oleh DOS tidak dapat dikembalikan lagi tapi dengan program bantu hal ini dapat dilakukan.

3. Program Aplikasi, seperti GL, MYOB, Payroll. Merupakan program yang khusus melakukan suatu pekerjaan tertentu, seperti program gaji pada suatu perusahaan. Maka program ini hanya digunakan oleh bagian keuangan saja tidak dapat digunakan oleh departemen yang lain. Biasanya program aplikasi ini dibuat oleh seorang programmer komputer sesuai dengan permintaan / kebutuhan seseorang / lembaga/ perusahaan guna keperluan intern-nya.

4. Program Paket, seperti Microsoft Office, Adobe Photoshop, Macromedia Studio, Open Office adalah program yang disusun sedemikian rupa sehingga dapat digunakan oleh banyak orang dengan berbagai kepentingan. Seperti MS-office, dapat digunakan oleh departemen keuangan untuk membuat nota, atau bagian administrasi untuk membuat surat penawaran dan lain sebagainya.


(18)

5. Bahasa Pemrograman, PHP, ASP, dBase, Visual Basic. Merupakan software yang khusus digunakan untuk membuat program komputer, apakah itu sistem operasi atau program paket. Bahasa pemrograman ini biasanya dibagi atas 3 tingkatan, yaitu ;

1. Low Level Language, bahasa pemrograman generasi pertama, bahasa

pemrograman jenis ini sangat sulit dimengerti karena instruksinya menggunakan bahasa mesin. Biasanya yang mengerti hanyalah pembuatnya saja.

2. Middle Level Language, merupakan bahasa pemrograman tingkat

menengah di mana penggunaan instruksi sudah mendekati bahasa sehari-hari, walaupun begitu masih sulit untuk dimengerti karena banyak menggunakan singkatan-singkatan seperti STO artinya simpan (singkatan dari STORE) dan MOV artinya pindah (singkatan dari MOVE). Yang tergolong kedalam bahasa ini adalah Assembler, ForTran (Formula Translator).

3. High Level Language, merupakan bahasa tingkat tinggi yang mempunyai

ciri mudah dimengerti, karena menggunakan bahasa sehari-hari, seperti BASIC, dBase, Visual Basic, VB.Net.


(19)

2.3 Sekilas Mengenai Visual Basic 6.0

Visual Basic pada dasarnya adalah bahasa pemrograman komputer. Bahasa pemrograman adalah perintah-perintah atau instruksi yang dimengerti oleh komputer untuk melakukan tugas-tugas tertentu. Bahasa pemrograman Visual Basic merupakan bahasa yang mudah dipahami sehingga manusia sekarang lebih banyak memilih pemrograman Visual Basic.

Visual Basic selain disebut sebagai bahasa pemrograman, juga sering disebut sarana (tool) untuk menghasilkan program-program aplikasi berbasis Windows. Beberapa kemampuan atau manfaat dari Visual Basic diantaranya seperti:

a. Untuk membuat program aplikasi berbasis Windows

b. Untuk membuat objek-objek pembantu program seperti control Activex, File, Help, Aplikasi internet dan sebagainya

c. Menguji program dan menghasilkan program akhir berakhiran EXE yang bersifat Executable, atau dapat langsung dijalankan.

Bagi programmer pemula yang baru ingin belajar program, lingkungan Visual Basic dapat membantu membuat program berbasis Windows dengan mudah. Sedangkan bagi programmer tingkat lanjut, dengan kemampuannya yang besar dapat digunakan untuk membuat program yang kompleks, misalnya dalam lingkungan Netwoking atau Client Server. Bahasa pemrograman Visual Basic cukup sederhana dan menggunakan kata-kata bahasa Inggris yang umum digunakan dan tidak perlu lagi menghapal sintaks-sintaks maupun format-format bahasa yang bermacam-macam. Di


(20)

dalam Visual Basic semuanya sudah disediakan dalam pilihan-pilihan yang tinggal diambil sesuai kebutuhan. Selain itu, sarana pengembangannya yang bersifat visual lebih memudahkan untuk mengembangkan program aplikasi berbasis Windows ini, bersifat Mouse Driven (digerakkan dengan mouse) dan berdaya guna tinggi.

Gambar 2.1 Tampilan Dasar MS Visual Basic

2.3.1 Struktur Aplikasi Visual Basic 6.0

Lingkungan pemrograman Visual Basic mengandung semua sarana yang dibutuhkan untuk membangun program-program yang hebat untuk Windows dengan cepat dan efisien, Visual Basic merupakan bahasa pemrograman terstruktur. Struktur aplikasi visual basic terdiri dari :


(21)

1. Form, yaitu windows atau jendela di mana akan membuat user interface atau tampilan yang merupakan antar muka program yang akan dibuat.

2. Kontrol, yaitu tampilan berbasis grafis yang dimasukkan pada form untuk membuat interaksi dengan pemakai (textbox, label, frame, dan lain-lain).

3. Propertis, yaitu nilai atau karakteristik yang dimiliki oleh sebuah objek Visual Basic. Contoh : Name, Caption, Size, dan lain-lain

4. Metode, yaitu serangkaian perintah yang sudah tersedia suatu yang dapat diminta untuk mengerjakan tugas khusus.

5. Prosedure Kejadian/Event Prosedure, yaitu kode yang berhubungan dengan suatu objek yang dapat diminta untuk mengerjakan tugas khusus. Kode ini akan mengeksekusi ketika ada respon dari pemakai kode ketika ada event tertentu.

6. Prosedure Umum, yaitu kode yang tidak berhubungan dengan suatu objek. Kode ini harus diminta oleh aplikasi.

7. Modul/Module, yaitu kumpulan dari prosedure umum, deklarasi variable dan definisi konstanta yang digunakan oleh aplikasi.

Untuk membuat aplikasi Visual Basic, mempunyai langkah-langkah sebagai berikut :

1. Membuat user interface atau tampilan

2. Mengatur property

3. Menulis kode program


(22)

Visual basic juga mempunyai tampilan layar yang terdiri dari :

1. Main Windows (Jendela Utama)

Main Windows terdiri dari title bar (baris judul), menu bar, dan tool bar, baris judul berisi nama proyek. Baris judul juga berisi mode operasi. Visual Basic sekarang dan form yang aktif. Menu bar merupakan menu drop-down di mana dapat mengontrol operasi lingkungan Visual Basic. Toolbar berisi kumpulan gambar yang mewakili perubahan yang ada di menu. Jendela utama juga menampilkan lokasi dari form aktif di sudut kiri atas layar, lebar serta panjang form.

Gambar 2.2 Jendela Utama Visual basic

2. Form Windows (Jendela Form)

Form Windows adalah pusat dari pengembangan aplikasi Visual Basic. Di sinilah tempat merancang aplikasi yang akan atau diinginkan.


(23)

Gambar 2.3 Jendela Form

3. Project Windows (Jendela Proyek)

Project Windows menampilkan daftar form dan modul proyek. Proyek merupakan kumpulan dari modul form, modul class, modul standart, dan file sumber yang membentuk suatu aplikasi.

Gambar 2.4 Jendela Proyek

4. Toolbox

Toolbox adalah kumpulan dari proyek yang digunakan atau membuat user interface serta kontrol bagi program aplikasi. Ada dua cara untuk menempatkan kontrol pada suatu form:


(24)

a. Klik ganda kontrol dalam toolbox, selanjutnya dapat mengubah besar dan ukuran serta memindahkannya dengan metode drag dan drop.

b. Klik kontrol dalam toolbox, kemudian pindahkan pointer mouse pada jendela form, kursor akan berubah menjadi crosshairt(+).

Gambar 2.5 Toolbox Visual Basic

5. Properti Windows (Jendela Properti)

Properti Windows berisi daftar struktur setting property yang digunakan pada sebuah objek yang terpilih. Kotak drop-down pada bagian atas jendela berisi daftar semua objek pada form yang aktif. Ada dua tab tampilan : Alphabetic (urut abjat) dan Catagorized (urut berdasarkan kelompok).


(25)

Gambar 2.6 Jendela Properti

6. Form Layout Windows (Jendela Layout Form)

Form menampilkan posisi form relatif terhadap layar monitor pada saat program dijalankan atau dieksekusi (Running/Compiling).

Gambar 2.7 Jendela Layout Form

Visual Basic 6.0 juga memiliki beberapa keistimewaan antara lain :

a. Menggunakan platform pembuatan program yang diberi nama dexplorer studio, yang memiliki tampilan dan saran yang sama dengan visual basic J ++. Dengan begitu dapat belajar bahasa pemrograman lainnya dengan mudah, tepat dan cepat tanpa harus belajar lagi.


(26)

b. Memiliki compiler yang handal yang dapat mendefinisikan file Executable efisien.

c. Memiliki beberapa tambahan saran wizard yang baru. Wizard adalah sarana yang mempermudah di dalam pembuatan aplikasi dengan mengotoritaskan tugas–tugas tertentu.

d. Kemampuan membuat active X dan fasilitas internet yang lebih banyak.

e. Sarana akses data yang lebih cepat dan handal untuk membuat database yang mempunyai kemampuan yang lebih tinggi.

f. Visual Basic 6.0 memiliki variasi atau edisi yang disesuaikan dengan kebutuhan pemakainya.

Visual Basic menyediakan berbagai tipe data seperti pada tabel dibawah ini. Tipe– tipe data yang digunakan dalam Visual Basic 6.0 antara lain :

Tabel 2.1 Tipe-tipe Data Visual Basic

Tipe Ukuran Byte Karakter

Integer 2 %

Long 4 Ε

Single 4 !

Double 8 #

Currency 8 @

String 1 $

Byte 1

Boolean 2

Date 8

Object 4

16+1 per


(27)

Untuk melakukan berbagai manipulai dan pengolahan data Visual Basic menyediakan berbagai operator antara lain :

Operator aritmatika digunakan untuk operasi aritmatika. Operator Aritmatika

Tabel 2.2 Operator Aritmatika Operator Operasi

^ Pemangkatan - Tanda Negatif

* , / Perkalian dan pembagian \ Pembagian integer

Mod Modulus sisa pembuangan + , - Penambahan dan pengurangan

+ , ε Penggabungan string

Operator perbandingan digunakan untuk membandingkan suatu data dengan data yang lain dan menghasilkan nilai logika benar atau salah, tetapi antara kedua data tersebut harus mempunyai nilai atau tipe data yang sama

Operator Perbandingan

Tabel 2.3 Operator Perbandingan. Operator Operasi

= Sama dengan < > Tidak sama dengan < Lebih kecil

> Lebih besar

<= Lebih kecil atau sama dengan >= Lebih besar atau sama dengan


(28)

Operator logika digunakan untuk mengekspresikan satu atau lebih dari dua data (ekspresi) dan data logika (bolean) sehingga menghasilkan data logika yang baru. Operator Logika

Tabel 2.4 Operator Logika Operator Operasi

Not Tidak

And Dan

Or Atau

Xor Exclusive Or

Eqv Ekivalen

Imp Implikasi

2.4 Sekilas Mengenai Flash Disk

USB flash disk merupakan alat penyimpanan memori flash yang bertipe NAND, memiliki alat penghubung USB yang terintegrasi. Flash disk biasanya berukuran kecil, ringan, serta bisa dibaca dan ditulis dengan mudah. Kapasitas yang tersedia untuk USB flash disk terdiri 128 MB sampai 64 GB.

USB flash disk memiliki banyak kelebihan dibandingkan alat penyimpanan data lainnya, khususnya disket atau cakram padat. Alat ini lebih cepat, kecil, dengan kapasitas lebih besar, serta lebih dapat diandalkan (karena tidak memiliki bagian yang bergerak) dibandingkan dengan disket.


(29)


(30)

BAB 3

PERANCANGAN SISTEM

3.1. Perancangan Sistem

Perancangan sistem adalah merupakan upaya perusahaan untuk memulai memiliki sistem baik yang lama maupun untuk mulai memiliki sistem yang baru. Perancangan sistem dilakukan setelah mendapat gambaran dengan jelas apa yang harus dikerjakan.

3.2 Algoritma Program

Algoritma adalah urutan langkah-langkah berhingga untuk memecahkan masalah logika atau matematika. Adapun algoritma yang akan dibahas antara lain yaitu:


(31)

3.2.1 Algoritma Menjalankan Program

Langkah 1 : Hidupkan komputer, akan muncul tampilan awal Windows.

Langkah 2 : Input flash disk pada komputer.

Langkah 3 : Jalankan program pengunci Windows, kemudian pilih flash disk yang akan digunakan.

Langkah 4 : Masukkan password untuk mengunci Windows, klik ok.

Langkah 5 : Windows terkunci.

3.2.2 Algoritma Membuka Windows yang Terkunci

Langkah 1 : Komputer hidup dalam keadaan terkunci.

Langkah 2 : Komputer akan meminta flash disk untuk membuka kunci.

Langkah 3 : Masukkan flash disk ke komputer, komputer akan meminta password untuk membuka Windows yang terkunci.

Langkah 4 : Jika password benar maka kunci pada komputer akan terbuka.

Langkah 5 : Jika password salah komputer akan meminta password kembali sampai password benar.


(32)

Langkah 1 : Klik sub menu refresh, untuk melihat flash disk yang ada pada computer.

Langkah 2 : Jika klik sub menu select, untuk memilih flash disk yang akan digunakan untuk mengunci Windows.

Langkah 3 : Tandai pada Gunakan drive kedua, jika ingin menggunakan dua buah flash disk untuk mengunci Windows.

Langkah 4 : Tandai pada use password, jika ingin mengunci Windows dengan menggunakan password.

Langkah 5 : Jika klik sub menu set/change, untuk mengisi atau mengubah password.

Langkah 6 : Jika klik sub menu help, maka akan muncul tampilan cara menggunakan program.

Langkah 7 : Jika klik sub menu cancel, untuk membatalkan penggunaan program.

Langkah 8 : Jika kllik sub menu ok, untuk mengunci Windows.

3.2.4 Algoritma Sub Menu Set/Change Password

Langkah 1 : Ketik pada Password Lama jika sudah pernah menjalankan program dan mempunyai password.


(33)

Langkah 2 : Ketik pada Password Baru jika ingin mengganti password lama atau baru, atau jika belum pernah menjalankan program sebelumnya.

Langkah 3 : Jika klik sub menu cancel, untuk membatalkan penggunaan password pada penguncian Windows.

Langkah 4 : Jika klik sub menu ok, untuk mengunci Windows dengan password yang sudah di ketik pada Password Baru.

3.2.5 Algoritma Tampilan Windows yang Terkunci

Langkah 1 : Ketik password pada kolom yang disediakan.

Langkah 2 : Klik sub menu ok untuk membuka program pengunci windows.

3.3 Flowchart

Flowchart adalah penyajian yang sistematis tentang proses dan logika dari kegiatan penanganan informasi atau penggambaran secara grafik dari langkah-langkah dan urut-urutan prosedur dari suatu program. Flowchart menolong analis dan programmer untuk memecahkan masalah ke dalam segmen-segmen yang lebih kecil dan menolong dalam menganalisis alternatif-alternatif lain dalam pengoperasian.

System flowchart adalah urutan proses dalam sistem dengan menunjukkan alat media input, output serta jenis media penyimpanan dalam proses pengolahan data.


(34)

Program flowchart adalah suatu bagan dengan simbol-simbol tertentu yang menggambarkan urutan proses secara mendetail dan hubungan antara suatu proses (instruksi) dengan proses lainnya dalam suatu program.


(35)

Flowchart program

F

T T start

flashdisk

Input password

Komputer unlock

password

Komputer lock


(36)

BAB 4

IMPLEMENTASI SISTEM

4.1 Pengertian Implementasi Sistem

Implementasi Sistem adalah suatu prosedur yang dilakukan untuk menyelesaikan sistem yang ada dalam dokumen rancangan sistem yang telah disetujui dan mengujinya, menginstal dan memulai menggunakan sistem baru yang diperbaiki.

Adapun langkah-langkah yang dibutuhkan dalam implementasi sistem adalah :

1. Mendapatkan software dan hardware yang tepat serta sesuai untuk merancang software.

2. Menyelesaikan rancangan sistem.

3. Menulis, menguji, mengontrol dan mendokumentasikan software.


(37)

4.2 Tujuan Implementasi Sistem

Adapun tujuan-tujuan dari implementasi sistem, yaitu :

1. Mengkaji rangkaian sistem baik dari segi software maupun hardware sebagai sarana pengolah data dan penyaji informasi.

2. Menyelesaikan rancangan sistem yang ada dalam dokumen sistem yang baru atau yang telah disetujui.

3. Memastikan bahwa pengunjung dapat mengoperasikan dengan mudah terhadap sistem yang baru dan mendapat informasi yang baik dan jelas.

4. Memperhitungkan bahwa sistem telah memenuhi permintaan pemakai yaitu dengan menguji sistem secara menyeluruh.

5. Memastikan bahwa sistem yang telah berjalan dengan lancar dengan mengontrol dan melakukan instalasi secara benar.

4.3 Komponen-komponen Kebutuhan Sistem

Komponen-komponen yang sangat berperan dalam menunjang penerapan sistem yang dirancang terhadap pengolahan data. Beberapa komponen yang dibutuhkan sistem untuk dapat beroperasi dengan baik antara lain :


(38)

4.3.1 Hardware

Hardware merupakan komponen yang sangat dibutuhkan dalam mewujudkan sistem yang diusulkan. Dalam hal ini penulis merinci spesifikasi komponen hardware yaitu :

a. Personal komputer dengan processor Intel(R) core(TM)2 Duo CPU

b. Hardisk 4.2 GB.

c. Monitor Super VGA.

d. Memori minimal 64 MB.

e. Flash disk

f. Keyboard dan mouse

g. Printer sebagai media percetakan

4.3.2 Software

Hardware tidak akan apat memecahkan suatu masalah tanpa adanya komponen software. Adapun software yang digunakan dalam pembuatan aplikasi ini adalah :


(39)

Gambar 4.1 Tampilan Sistem Operasi Windows XP

b. Microsoft Visual Studio 6.0

Software ini berfungsi sebagai text editor dalam penulisan script Visual Basic Versi 6.0. dalam pembuatan software.


(40)

4.3.3 Brainware

Konsekuensi dari pada dibentuknya atau dikembangkannya proyek sistem komputerisasi atau adanya mesin komputer sebagai alat bantu yang mampu dibidang pengolahan data, maka aspek manusia yang menangani proyek tersebut harus juga dipikirkan. Inilah yang digolongkan kepada aspek brainware. Untuk menjalankan sistem yang dibuat oleh penulis yang dibutuhkan seorang operator. Dengan membutuhkan orang yang memiliki keahlian dalam bidang komputer, diharapkan desain yang dirancang dapat dikembangkan ke arah yang lebih baik guna menunjang penginformasian yang lebih cepat, tepat dan akurat.

Faktor Brainware dalam hal ini adalah manusia yang dibutuhkan adalah :

a. Sistem analis, yaitu orang yang membentuk dan membangun fasilitas rancangan sistem

b. Programmer, yaitu orang yang mengerti bahasa pemrograman yang

digunakan dalam membuat dan membangun program.

c. Operator, yaitu orang yang menangani langsung dalam pengelolahan data, mulai dari mempersiapkan data sampai dalam pengentrian atau pemasukan data dalam komputer.


(41)

4.4 Demonstrasi Program

Adapun tampilan program yang dirancang adalah sebagai berikut

4.4.1 Tampilan Awal Software

Gambar 4.3 Tampilan Awal Program


(42)

Gambar 4.4 Tampilan Mengisi Password / Mengganti Password

4.4.3 Tampilan Komputer Terkunci

Gambar 4.5 Tampilan Komputer Terkunci

4.4.4 Tampilan Membuka Kunci


(43)

BAB 5

KESIMPULAN DAN SARAN

5.1Kesimpulan

1. Bahasa pemrograman Visual Basic merupakan bahasa yang mudah dipahami sehingga manusia sekarang lebih banyak memilih pemrograman Visual Basic.

2. Berdasarkan pengujian, software ini mampu menjaga keamanan Windows serta dapat digunakan bagi pengguna komputer yang sangat membutuhkan privasi pada perangkat komputernya agar tidak dapat digunakan sembarang user hanya dengan mengunci Windows menggunakan flash disk. Selain itu, cara penggunaan software ini pun tidak cukup rumit sehingga keamanan Windows dapat terjaga dengan aman dan pasti.


(44)

5.2 Saran

1. Dapat dikembangkannya lebih banyak lagi software yang bersifat open source dengan kualitas bersaing, sehingga membantu dalam pembelajaran teknologi informasi.

2. Pengembangan terhadap tampilan aplikasi, antara lain dengan lebih memperhatikan keselarasan warna tampilan aplikasi sebagaimana dikerjakan oleh pihak yang telah berpengalaman dalam desain.

3. Dengan adanya software yang telah dibuat ini diharapkan berguna bagi pengguna komputer.

4. Penulis menyadari kekurangan akan program ini, maka untuk melanjutkan agar mendapat hasil yang paling maksimal sebaiknya program dikembangkan sebagai fasilitas berdasarkan yang di kehendaki.


(45)

DAFTAR PUSTAKA

Adi Kurniadi. 2000. Pemograman Microsoft Visual Basic 6.0. Jakarta: Penerbit Elex Media Komputindo.

M. Agus, J. Alam. 1999. Pengenalan Microsoft Visual Basic 6.0. Jakarta: Penerbit Elex Media Komputindo.


(46)

L

A

M

P

I

R

A

N


(47)

LAMPIRAN A : LISTING PROGRAM

a. Forms

frmLock.frm

Option Explicit

Implements IEnumWindowsSink Dim frmhWnd As Long

Dim FirstTime As Boolean

'// Check if password is correct if used Private Sub cmdPass_Click()

If txtPass.Text = Password Then timHide.Enabled = False ShowAllWnd lstHidden Unload Me

End If End Sub

'// Initialize the locking Private Sub Form_Load() FirstTime = True EnumerateWindows Me frmhWnd = Me.hwnd DoEvents

lblInfo1.Caption = "Komputer Anda Terkunci" timHide.Enabled = True

timCD.Enabled = True End Sub

'// Part of enumeration thing

Private Property Get IEnumWindowsSink_Identifier() As Long IEnumWindowsSink_Identifier = Me.hwnd

End Property

'// Enumerate all windows and show which ones are visible '// Pulled from VbAccelerator

'//

Private Sub IEnumWindowsSink_EnumWindow(ByVal hwnd As Long, bStop As Boolean) On Error Resume Next

Dim IsFound As Boolean Dim i As Long


(48)

If IsWindowVisible(hwnd) = 1 Then For i = 0 To lstHidden.ListCount - 1 IsFound = False

If lstHidden.List(i) = hwnd Then IsFound = True

Exit For End If Next i

If IsFound = False Then

WindowControl hwnd, HideWnd lstHidden.AddItem hwnd Exit Sub End If End If Else SetTopMost frmhWnd End If End Sub

'// Countdown to prepare the form Private Sub timCD_Timer() If Val(timCD.Tag) < 3 Then

timCD.Tag = Val(timCD.Tag) + 1 End If

If Val(timCD.Tag) = 3 Then

lblInfo1.Caption = "Jika flash disk sudah dimasukkan,tekan Enter" FirstTime = False

timCD.Enabled = False End If

End Sub

'// Make sure every window except itself gets hidden.

'// To restore everything properly, we put hidden objects in a list Private Sub timHide_Timer()

EnumerateWindows Me

If GetAsyncKeyState(13) <> 0 Then If CheckDrives = True Then If PassUse = True Then lblInfo1.Visible = False txtPass.Visible = True cmdPass.Visible = True Else

timHide.Enabled = False ShowAllWnd lstHidden Unload Me

End If End If End If


(49)

End Sub

'// Function to check wether a valid drive is inserted Private Function CheckDrives() As Boolean Dim fso

Dim Drive

Dim DrvChkD(2) As Boolean Dim DrvChk As Boolean DrvChkD(1) = False DrvChkD(2) = False DrvChk = False '// Prepare the FSO

Set fso = CreateObject("Scripting.FileSystemObject") DoEvents

If FirstTime = False Then

lblInfo1.Caption = "Searching keys..." End If

'// This part retrieves the serial numbers from the removable media For Each Drive In fso.Drives

If Drive.IsReady = True Then If DualDrive = True Then

If Drive.SerialNumber = SelDrvSerD(1) Then DrvChkD(1) = True

End If

If Drive.SerialNumber = SelDrvSerD(2) Then DrvChkD(2) = True

End If Else

If Drive.SerialNumber = SelDrvSer Then DrvChk = True

End If End If End If Next

'// Here it will compare the serialnumbers If FirstTime = False Then

If DualDrive = True Then

If DrvChkD(1) = False Or DrvChkD(2) = False Then

lblInfo1.Caption = "Jika flash disk sudah dimasukkan,tekan Enter" MsgBox ("Key Missing"), vbExclamation, "Key Security"

CheckDrives = False Exit Function End If

CheckDrives = True Else


(50)

lblInfo1.Caption = "Jika flash disk sudah dimasukkan,tekan Enter" MsgBox ("Key Missing"), vbExclamation, "Key Security"

CheckDrives = False Else

CheckDrives = True End If

End If Else

FirstTime = False End If

End Function

'// Show all windows that were hidden

Private Function ShowAllWnd(WndList As Object) Dim i As Long

For i = 0 To WndList.ListCount - 1

WindowControl WndList.List(i), ShowWnd Next i

End Function

frmPassword.frm

Private Sub cmdCancel_Click() Unload Me

End Sub

'// Check if old password is correct and change password Private Sub cmdOK_Click()

If txtOPass.Text = Password Then Password = txtNPass.Text Call GSSettings(SetS, False) DoEvents

Unload Me Else

MsgBox ("Password Salah"), vbExclamation, "Key Security" txtOPass.Text = ""

txtNPass.Text = "" txtOPass.SetFocus End If

End Sub

Private Sub lbl1_Click() End Sub


(51)

frmSetting.frm

Public Enum VF Visible = 0 Enabled = 1 End Enum

'// If the checkbox is checked enable/disable the 'edit' button Private Sub chkPass_Click()

CheckChk chkPass, cmdPass, Enabled

If chkPass.Value = Checked Then PassUse = True

Else

PassUse = False End If

End Sub

'// Same as above

Private Sub chkPass_KeyPress(KeyAscii As Integer) chkPass_Click

End Sub

'// When you choose for a secondary drive, a second button will appear Private Sub chkSecondary_Click()

CheckChk chkSecondary, cmdSelect1, Visible

If chkSecondary.Value = Checked Then cmdSelect2.Caption = "Select (2)" lblSelDrv.Caption = "Selected Drives: -" DualDrive = True

Else

cmdSelect2.Caption = "Select"

lblSelDrv.Caption = "Selected Drive: -" DualDrive = False

End If End Sub

'// Same as above

Private Sub chkSecondary_KeyPress(KeyAscii As Integer) chkSecondary_Click

End Sub

'// Unload the form


(52)

Unload Me End Sub

'// Resize form to show/hide label Private Sub cmdHelp_Click() timResize.Enabled = True End Sub

'// Save settings and lock the computer Private Sub cmdOK_Click()

GSSettings SetS, False DoEvents

frmLock.Show Unload Me End Sub

'// Show password edit dialog Private Sub cmdPass_Click() frmPassword.Show End Sub

'// Refresh drives list

Private Sub cmdRefresh_Click() LoadDrives tvDrives

End Sub

'// If this button is clicked we deal with dualmedia. '// Here it will set the first drive

Private Sub cmdSelect1_Click() On Error Resume Next

SelDrvD(1) = tvDrives.SelectedItem.Text

If Left(tvDrives.SelectedItem.Key, 3) = "SER" Then

SelDrvSerD(1) = Split(tvDrives.SelectedItem.Key, "SER")(1) Else

SelDrvSerD(1) = 0 End If

If SelDrvD(2) <> "" Then

lblSelDrv.Caption = "Selected Drives: " & Chr(34) & SelDrvD(1) & Chr(34) & " && " & _

Chr(34) & SelDrvD(2) & Chr(34) Else


(53)

End If End Sub

'// Set second or only drive Private Sub cmdSelect2_Click() On Error Resume Next

If chkSecondary.Value = Checked Then SelDrvD(2) = tvDrives.SelectedItem.Text

If Left(tvDrives.SelectedItem.Key, 3) = "SER" Then

SelDrvSerD(2) = Split(tvDrives.SelectedItem.Key, "SER")(1) Else

SelDrvSerD(2) = 0 End If

lblSelDrv.Caption = "Selected Drives: " & Chr(34) & SelDrvD(1) & Chr(34) & " && " & _

Chr(34) & SelDrvD(2) & Chr(34) Else

SelDrv = tvDrives.SelectedItem.Text

If Left(tvDrives.SelectedItem.Key, 3) = "SER" Then SelDrvSer = Split(tvDrives.SelectedItem.Key, "SER")(1) Else

SelDrvSer = 0 End If

lblSelDrv.Caption = "Selected Drive: " & Chr(34) & SelDrv & Chr(34) End If

End Sub

'// Load drives list and get settings Private Sub Form_Load()

LoadDrives tvDrives GSSettings GetS, True End Sub

'// Resize form for help

Private Sub timResize_Timer() If timResize.Tag = "Grow" Then If Me.Width < 6510 Then Me.Caption = ""

Me.Width = Me.Width + 160 End If

If Me.Width = 6510 Or Me.Width > 6510 Then Me.Width = 6510

Me.Caption = "Settings" timResize.Tag = "Shrink" timResize.Enabled = False End If


(54)

Else

If Me.Width > 3825 Then Me.Caption = ""

Me.Width = Me.Width - 60 End If

If Me.Width = 3825 Or Me.Width < 3825 Then Me.Width = 3825

Me.Caption = "Settings" timResize.Tag = "Grow" timResize.Enabled = False End If

End If End Sub

'// Get the drives

Private Function LoadDrives(Treeview As Object) Dim fso

Dim Drive

Treeview.Nodes.Clear

Set fso = CreateObject("Scripting.FileSystemObject") DoEvents

For Each Drive In fso.Drives If Drive.IsReady = True Then '0 = Unknown

'1 = Removable '2 = Fixed '3 = Remote '4 = Cd-Rom '5 = Ram Disk DoEvents

Select Case Drive.DriveType Case 0

If Drive.SerialNumber <> 0 Then

Treeview.Nodes.Add , , "SER" & Drive.SerialNumber, Drive.DriveLetter & ":\", 1

Else

Treeview.Nodes.Add , , Drive.DriveLetter, Drive.DriveLetter & ":\", 1 End If

Case 1

If Drive.SerialNumber <> 0 Then

'// You can change the maximum size of removable media to own '// will. This is here to seperate external and internal disks

'// but as the years fly by there is no much difference anymore... If Drive.TotalSize < 3000000 Then

Treeview.Nodes.Add , , "SER" & Drive.SerialNumber, Drive.DriveLetter & _

":\", 4 Else


(55)

Treeview.Nodes.Add , , "SER" & Drive.SerialNumber, Drive.DriveLetter & _

":\", 1 End If Else

If Drive.TotalSize < 3000000 Then

Treeview.Nodes.Add , , Drive.DriveLetter, Drive.DriveLetter & _ ":\", 4

Else

Treeview.Nodes.Add , , Drive.DriveLetter, Drive.DriveLetter & _ ":\", 1

End If End If Case 3

If Drive.SerialNumber <> 0 Then

Treeview.Nodes.Add , , "SER" & Drive.SerialNumber, Drive.DriveLetter & ":\", 5

Else

Treeview.Nodes.Add , , Drive.DriveLetter, Drive.DriveLetter & ":\", 5 End If

Case 4

If Drive.SerialNumber <> 0 Then

Treeview.Nodes.Add , , "SER" & Drive.SerialNumber, Drive.DriveLetter & ":\", 2

Else

Treeview.Nodes.Add , , Drive.DriveLetter, Drive.DriveLetter & ":\", 2 End If

Case 5

If Drive.SerialNumber <> 0 Then

Treeview.Nodes.Add , , "SER" & Drive.SerialNumber, Drive.DriveLetter & ":\", 1

Else

Treeview.Nodes.Add , , Drive.DriveLetter, Drive.DriveLetter & ":\", 1 End If End Select End If Next End Function

Private Function CheckChk(ChkBox As Object, CmdButton As Object, VisibleOrEnabled As VF)

On Error Resume Next

If ChkBox.Value = Checked Then If VisibleOrEnabled = Enabled Then CmdButton.Enabled = True Else

CmdButton.Visible = True End If

Else

If VisibleOrEnabled = Enabled Then CmdButton.Enabled = False Else


(56)

CmdButton.Visible = False End If

End If

End Function

Private Sub tvDrives_BeforeLabelEdit(Cancel As Integer) End Sub

b. Modules

modMain.bas

Option Explicit

Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long

Public Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer Public Declare Sub keybd_event Lib "user32.dll" (ByVal bVk As Byte, ByVal bScan As Byte, _

ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

Public Declare Function SetWindowPos& Lib "user32" (ByVal hwnd&, ByVal hWndInsertAfter&, _

ByVal X&, ByVal Y&, ByVal cX&, ByVal cY&, ByVal wFlags&)

Public Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long

Public Password As String Public SelDrv As String Public SelDrvSer As String Public SelDrvD(2) As String Public SelDrvSerD(2) As String Public DualDrive As Boolean Public PassUse As Boolean Const SW_HIDE = 0 Const SW_SHOW = 5

Public Const VK_SHIFT As Long = &H10 Public Const VK_CONTROL As Long = &H11 Public Const VK_MENU As Long = &H12

Public Const KEYEVENTF_EXTENDEDKEY = &H1 Public Const KEYEVENTF_KEYUP = &H2

Public Const HWND_TOPMOST& = -1 Public Const SWP_NOMOVE& = &H2 Public Const SWP_NOSIZE& = &H1


(57)

Public Const SWP_NOACTIVATE& = &H10 Enum GS

GetS = 0 SetS = 1 End Enum Enum wFunction ShowWnd = 0 HideWnd = 1 End Enum Enum ED Enable = 0 Disable = 1 End Enum

'// Sets the window on top

Public Sub SetTopMost(ByVal hwnd&)

Call SetWindowPos(hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE Or SWP_NOACTIVATE)

End Sub

'// Show or hide a window

Public Sub WindowControl(hwnd As Long, WindowFunction As wFunction) Select Case WindowFunction

Case ShowWnd

ShowWindow hwnd, SW_SHOW Case HideWnd

ShowWindow hwnd, SW_HIDE End Select

End Sub

'// Get or set the settings

'// OK, this is a weak way to save the password. If you intend to '// use this as real security, you may want to add a little encryption. Public Function GSSettings(GetOrSet As GS, DoActions As Boolean)

If GetOrSet = GetS Then

If GetSetting("KeySecure", "a", "pwuse") = "1" Then PassUse = True

Else

PassUse = False End If

Password = GetSetting("KeySecure", "a", "pw")

If GetSetting("KeySecure", "a", "dd") = "1" Then DualDrive = True


(58)

DualDrive = False End If

SelDrv = GetSetting("KeySecure", "a", "sd") SelDrvSer = GetSetting("KeySecure", "a", "sds") SelDrvD(1) = GetSetting("KeySecure", "a", "sd1") SelDrvD(2) = GetSetting("KeySecure", "a", "sd2") SelDrvSerD(1) = GetSetting("KeySecure", "a", "sd1s") SelDrvSerD(2) = GetSetting("KeySecure", "a", "sd2s") If DoActions = True Then

If DualDrive = True Then

frmSettings.chkSecondary.Value = Checked Else

frmSettings.chkSecondary.Value = Unchecked End If

If PassUse = True Then

frmSettings.chkPass.Value = Checked Else

frmSettings.chkPass.Value = Unchecked End If

End If Else

If PassUse = True Then

SaveSetting "KeySecure", "a", "pwuse", "1" Else

SaveSetting "KeySecure", "a", "pwuse", "0" End If

If DualDrive = True Then

SaveSetting "KeySecure", "a", "dd", "1" Else

SaveSetting "KeySecure", "a", "dd", "0" End If

SaveSetting "KeySecure", "a", "pw", Password SaveSetting "KeySecure", "a", "sd", SelDrv SaveSetting "KeySecure", "a", "sds", SelDrvSer SaveSetting "KeySecure", "a", "sd1", SelDrvD(1) SaveSetting "KeySecure", "a", "sd2", SelDrvD(2) SaveSetting "KeySecure", "a", "sds1", SelDrvSerD(1) SaveSetting "KeySecure", "a", "sds2", SelDrvSerD(2) End If

End Function

'// ** I don't use this in my code simply because it doesn't work... ** '// But in theory this would block combinations like ctrl+alt+del.

'// The idea is, we hold down the shift key. Try to hit ctrl+alt+del again, and '// nothing will happen.

Public Function BlockLoKeys(State As ED) If State = Enable Then


(59)

If GetAsyncKeyState(VK_CONTROL) <> 0 Then keybd_event VK_SHIFT, 0, 0, 0

DoEvents End If

If GetAsyncKeyState(VK_MENU) <> 0 Then keybd_event VK_CONTROL, 0, 0, 0 keybd_event VK_SHIFT, 0, 0, 0 DoEvents

End If End If

If State = Disable Then

keybd_event VK_SHIFT, 0, KEYEVENTF_KEYUP, 0 keybd_event VK_CONTROL, 0, KEYEVENTF_KEYUP, 0 End If

'Example: '========

'keybd_event VK_H, 0, 0, 0 ' press H

'keybd_event VK_H, 0, KEYEVENTF_KEYUP, 0 ' release H End Function

modWindows.bas

Option Explicit

Public Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long

Public Declare Function IsWindowVisible Lib "user32" (ByVal hwnd As Long) As Long Public Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, _

ByVal cch As Long) As Long

Public Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long

Public Declare Function BringWindowToTop Lib "user32" (ByVal hwnd As Long) As Long Public Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long

Public Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, _

ByVal nMaxCount As Long) As Long Type RECT

Left As Long Top As Long Right As Long Bottom As Long End Type


(60)

Public Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long

Public Const WM_COMMAND = &H111 Private m_cSink As IEnumWindowsSink

Public Function EnumWindowsProc(ByVal hwnd As Long, ByVal lParam As Long) As Long Dim bStop As Boolean

bStop = False

m_cSink.EnumWindow hwnd, bStop If (bStop) Then

EnumWindowsProc = 0 Else

EnumWindowsProc = 1 End If

End Function

Public Function EnumerateWindows(ByRef cSink As IEnumWindowsSink) As Boolean If Not (m_cSink Is Nothing) Then Exit Function

Set m_cSink = cSink

EnumWindows AddressOf EnumWindowsProc, cSink.Identifier Set m_cSink = Nothing

End Function

Public Function WindowTitle(ByVal lHwnd As Long) As String Dim lLen As Long

Dim sBuf As String ' Get the Window Title:

lLen = GetWindowTextLength(lHwnd) If (lLen > 0) Then

sBuf = String$(lLen + 1, 0)

lLen = GetWindowText(lHwnd, sBuf, lLen + 1) WindowTitle = Left$(sBuf, lLen)

End If End Function

Public Function ClassName(ByVal lHwnd As Long) As String Dim lLen As Long

Dim sBuf As String lLen = 260

sBuf = String$(lLen, 0)

lLen = GetClassName(lHwnd, sBuf, lLen) If (lLen <> 0) Then

ClassName = Left$(sBuf, lLen) End If

End Function

Public Sub ActivateWindow(ByVal lHwnd As Long) SetForegroundWindow lHwnd


(61)

c. Class Modules

cFindWindow.cls

Option Explicit

Implements IEnumWindowsSink Private m_sTitleToFInd As String Private m_sClassToFind As String Private m_lHwndFound As Long

Public Property Let TitleToFind(ByVal sTitle As String) m_sTitleToFInd = sTitle

m_lHwndFound = 0 End Property

Public Property Get TitleToFind() As String TitleToFind = m_sTitleToFInd

End Property

Public Property Let ClassToFind(ByVal sClass As String) m_sClassToFind = sClass

m_lHwndFound = 0 End Property

Public Property Get ClassToFind() As String ClassToFind = m_sClassToFind

End Property

Public Property Get hWndFound() As Long hWndFound = m_lHwndFound

End Property

Private Function pbTitleFound(ByVal lHwnd As Long) As Boolean Dim sWinTitle As String

sWinTitle = WindowTitle(lHwnd)

If (pbTextMatch(m_sTitleToFInd, sWinTitle)) Then pbTitleFound = True

End If End Function

Private Function pbTextMatch(ByVal sMatch As String, ByVal sText As String) As Boolean Dim lLen As Long

' sMatch is the text to match, sText is the Window title: If Left$(sMatch, 1) = "%" And Right$(sMatch, 1) = "%" Then Debug.Print sText, sMatch

If (Len(sMatch) <= 2) Then pbTextMatch = True Else

If (InStr(sText, Mid$(sMatch, 2, Len(sMatch) - 2)) <> 0) Then pbTextMatch = True


(62)

End If

ElseIf Left$(sMatch, 1) = "%" Then If (Len(sMatch) <= 0) Then pbTextMatch = True Else

lLen = Len(sMatch) - 1 If (lLen <= Len(sText)) Then

If InStr(sText, Mid$(sMatch, 2)) <> 0 Then pbTextMatch = True

End If End If End If

ElseIf Right$(sMatch, 1) = "%" Then lLen = Len(sMatch) - 1

If (Len(sMatch) <= 0) Then pbTextMatch = True Else

If (lLen <= Len(sText)) Then

If InStr(sText, Left$(sMatch, lLen)) <> 0 Then pbTextMatch = True

End If End If End If Else

If (sMatch = sText) Then pbTextMatch = True End If

End If End Function

Public Function FindWindow() As Boolean m_lHwndFound = 0

EnumerateWindows Me

FindWindow = (m_lHwndFound <> 0) End Function

Private Function pbClassFound(ByVal lHwnd As Long) As Boolean Dim sClass As String

sClass = ClassName(lHwnd)

If (pbTextMatch(m_sClassToFind, sClass)) Then pbClassFound = True

End If End Function

Private Sub IEnumWindowsSink_EnumWindow(ByVal hwnd As Long, bStop As Boolean) Dim bFound As Boolean

Dim bTitleCheckFalse As Boolean If (IsWindowVisible(hwnd)) Then If Len(m_sTitleToFInd) > 0 Then


(63)

bFound = pbTitleFound(hwnd) If Not (bFound) Then

bTitleCheckFalse = True End If

End If

If Len(m_sClassToFind) > 0 And Not (bTitleCheckFalse) Then bFound = pbClassFound(hwnd)

End If End If

If (bFound) Then

m_lHwndFound = hwnd End If

bStop = bFound End Sub

Private Property Get IEnumWindowsSink_Identifier() As Long IEnumWindowsSink_Identifier = Rnd * 1000000000

End Property

IEnumWindowsSink.cls

Option Explicit

Public Sub EnumWindow(ByVal hwnd As Long, ByRef bStop As Boolean) End Sub

Public Property Get Identifier() As Long End Property


(1)

DualDrive = False End If

SelDrv = GetSetting("KeySecure", "a", "sd") SelDrvSer = GetSetting("KeySecure", "a", "sds") SelDrvD(1) = GetSetting("KeySecure", "a", "sd1") SelDrvD(2) = GetSetting("KeySecure", "a", "sd2") SelDrvSerD(1) = GetSetting("KeySecure", "a", "sd1s") SelDrvSerD(2) = GetSetting("KeySecure", "a", "sd2s") If DoActions = True Then

If DualDrive = True Then

frmSettings.chkSecondary.Value = Checked Else

frmSettings.chkSecondary.Value = Unchecked End If

If PassUse = True Then

frmSettings.chkPass.Value = Checked Else

frmSettings.chkPass.Value = Unchecked End If

End If Else

If PassUse = True Then

SaveSetting "KeySecure", "a", "pwuse", "1" Else

SaveSetting "KeySecure", "a", "pwuse", "0" End If

If DualDrive = True Then

SaveSetting "KeySecure", "a", "dd", "1" Else

SaveSetting "KeySecure", "a", "dd", "0" End If

SaveSetting "KeySecure", "a", "pw", Password SaveSetting "KeySecure", "a", "sd", SelDrv SaveSetting "KeySecure", "a", "sds", SelDrvSer SaveSetting "KeySecure", "a", "sd1", SelDrvD(1) SaveSetting "KeySecure", "a", "sd2", SelDrvD(2) SaveSetting "KeySecure", "a", "sds1", SelDrvSerD(1) SaveSetting "KeySecure", "a", "sds2", SelDrvSerD(2) End If

End Function

'// ** I don't use this in my code simply because it doesn't work... ** '// But in theory this would block combinations like ctrl+alt+del.

'// The idea is, we hold down the shift key. Try to hit ctrl+alt+del again, and '// nothing will happen.

Public Function BlockLoKeys(State As ED) If State = Enable Then


(2)

If GetAsyncKeyState(VK_CONTROL) <> 0 Then keybd_event VK_SHIFT, 0, 0, 0

DoEvents End If

If GetAsyncKeyState(VK_MENU) <> 0 Then keybd_event VK_CONTROL, 0, 0, 0 keybd_event VK_SHIFT, 0, 0, 0 DoEvents

End If End If

If State = Disable Then

keybd_event VK_SHIFT, 0, KEYEVENTF_KEYUP, 0 keybd_event VK_CONTROL, 0, KEYEVENTF_KEYUP, 0 End If

'Example: '========

'keybd_event VK_H, 0, 0, 0 ' press H

'keybd_event VK_H, 0, KEYEVENTF_KEYUP, 0 ' release H End Function

modWindows.bas

Option Explicit

Public Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long

Public Declare Function IsWindowVisible Lib "user32" (ByVal hwnd As Long) As Long Public Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, _

ByVal cch As Long) As Long

Public Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long

Public Declare Function BringWindowToTop Lib "user32" (ByVal hwnd As Long) As Long Public Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long

Public Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, _

ByVal nMaxCount As Long) As Long Type RECT

Left As Long Top As Long Right As Long Bottom As Long End Type


(3)

Public Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long

Public Const WM_COMMAND = &H111 Private m_cSink As IEnumWindowsSink

Public Function EnumWindowsProc(ByVal hwnd As Long, ByVal lParam As Long) As Long Dim bStop As Boolean

bStop = False

m_cSink.EnumWindow hwnd, bStop If (bStop) Then

EnumWindowsProc = 0 Else

EnumWindowsProc = 1 End If

End Function

Public Function EnumerateWindows(ByRef cSink As IEnumWindowsSink) As Boolean If Not (m_cSink Is Nothing) Then Exit Function

Set m_cSink = cSink

EnumWindows AddressOf EnumWindowsProc, cSink.Identifier Set m_cSink = Nothing

End Function

Public Function WindowTitle(ByVal lHwnd As Long) As String Dim lLen As Long

Dim sBuf As String ' Get the Window Title:

lLen = GetWindowTextLength(lHwnd) If (lLen > 0) Then

sBuf = String$(lLen + 1, 0)

lLen = GetWindowText(lHwnd, sBuf, lLen + 1) WindowTitle = Left$(sBuf, lLen)

End If End Function

Public Function ClassName(ByVal lHwnd As Long) As String Dim lLen As Long

Dim sBuf As String lLen = 260

sBuf = String$(lLen, 0)

lLen = GetClassName(lHwnd, sBuf, lLen) If (lLen <> 0) Then

ClassName = Left$(sBuf, lLen) End If

End Function

Public Sub ActivateWindow(ByVal lHwnd As Long) SetForegroundWindow lHwnd


(4)

c.

Class Modules

cFindWindow.cls

Option Explicit

Implements IEnumWindowsSink Private m_sTitleToFInd As String Private m_sClassToFind As String Private m_lHwndFound As Long

Public Property Let TitleToFind(ByVal sTitle As String) m_sTitleToFInd = sTitle

m_lHwndFound = 0 End Property

Public Property Get TitleToFind() As String TitleToFind = m_sTitleToFInd

End Property

Public Property Let ClassToFind(ByVal sClass As String) m_sClassToFind = sClass

m_lHwndFound = 0 End Property

Public Property Get ClassToFind() As String ClassToFind = m_sClassToFind

End Property

Public Property Get hWndFound() As Long hWndFound = m_lHwndFound

End Property

Private Function pbTitleFound(ByVal lHwnd As Long) As Boolean Dim sWinTitle As String

sWinTitle = WindowTitle(lHwnd)

If (pbTextMatch(m_sTitleToFInd, sWinTitle)) Then pbTitleFound = True

End If End Function

Private Function pbTextMatch(ByVal sMatch As String, ByVal sText As String) As Boolean Dim lLen As Long

' sMatch is the text to match, sText is the Window title: If Left$(sMatch, 1) = "%" And Right$(sMatch, 1) = "%" Then Debug.Print sText, sMatch

If (Len(sMatch) <= 2) Then pbTextMatch = True Else

If (InStr(sText, Mid$(sMatch, 2, Len(sMatch) - 2)) <> 0) Then pbTextMatch = True


(5)

End If

ElseIf Left$(sMatch, 1) = "%" Then If (Len(sMatch) <= 0) Then pbTextMatch = True Else

lLen = Len(sMatch) - 1 If (lLen <= Len(sText)) Then

If InStr(sText, Mid$(sMatch, 2)) <> 0 Then pbTextMatch = True

End If End If End If

ElseIf Right$(sMatch, 1) = "%" Then lLen = Len(sMatch) - 1

If (Len(sMatch) <= 0) Then pbTextMatch = True Else

If (lLen <= Len(sText)) Then

If InStr(sText, Left$(sMatch, lLen)) <> 0 Then pbTextMatch = True

End If End If End If Else

If (sMatch = sText) Then pbTextMatch = True End If

End If End Function

Public Function FindWindow() As Boolean m_lHwndFound = 0

EnumerateWindows Me

FindWindow = (m_lHwndFound <> 0) End Function

Private Function pbClassFound(ByVal lHwnd As Long) As Boolean Dim sClass As String

sClass = ClassName(lHwnd)

If (pbTextMatch(m_sClassToFind, sClass)) Then pbClassFound = True

End If End Function

Private Sub IEnumWindowsSink_EnumWindow(ByVal hwnd As Long, bStop As Boolean) Dim bFound As Boolean

Dim bTitleCheckFalse As Boolean If (IsWindowVisible(hwnd)) Then If Len(m_sTitleToFInd) > 0 Then


(6)

bFound = pbTitleFound(hwnd) If Not (bFound) Then

bTitleCheckFalse = True End If

End If

If Len(m_sClassToFind) > 0 And Not (bTitleCheckFalse) Then bFound = pbClassFound(hwnd)

End If End If

If (bFound) Then

m_lHwndFound = hwnd End If

bStop = bFound End Sub

Private Property Get IEnumWindowsSink_Identifier() As Long IEnumWindowsSink_Identifier = Rnd * 1000000000

End Property

IEnumWindowsSink.cls

Option Explicit

Public Sub EnumWindow(ByVal hwnd As Long, ByRef bStop As Boolean) End Sub

Public Property Get Identifier() As Long End Property