Senin, 27 Juli 2009

freezer media player

askum and salam monyet :P

masihkah kamu semua make winamp ato jukebox ato apalah buat muter mp3 :D
neh gw saking baeknya 3 hari 3 malem nyoba bikin maenan baru buat lo semua =))

FREEZER MEDIA PLAYER
Image

nah tuh liat gantinya media player lu yang jadul...

fitur:
supported audio file
playlist
Image
visualisation and volume control
Image


=)) nah biasa kan fiturnya... cm gw bangga aja ma buatan gw =))

bugs and report :
ketik di bawah aja :-B

belajar autoit


Image
AutoIt v3.3.0.0

©1999-2008 Jonathan Bennett & AutoIt Team


Perkenalan
AutoIt v3 adalah Software bahasa pemrograman mirip dengan BASIC yang gratis, di desain untuk mengotomatis GUI ( antarmuka grapikal ) dan membuat skrip umum. AutoIt menggunakan kombinasi dari simulasi keystroke ( akses tombol ), pergerakan mouse dan manipulasi window/kontrol gunanya untuk otomatisasi pekerjaan yang biasanya ga mungkin ato bergantung pada bahasa lain ( misalnya VBScript dan SendKeys ). AutoIt juga sangat kecil, lengkap dan bisa bekerja pada semua versi Windows tanpa ada kebutuhan "runtimes"!

AutoIt awalnya di desain untuk PC induk yang mengotomatisasi dan mengkonfigurasi ribuan PC lainnya. Seiring waktu AutoIt menjadi sebuah bahasa pemrograman yang kuat, yang mendukung pernyataan yang rumit, fungsi dari pengguna, loop dan semua yang diharapkan dari sebuah pembuat skrip.

Fitur:

* Syntax mirip BASIC yang mudah di pelajari
* mengsimulasi tekanan tombol dan pergerakan mouse
* memanipulasi windows and proses proses
* dapat berInteraksi dengan semua kontrol standar windows
* Script dapat di rubah menjadi file yang dapat dijalankan ( executable )
* membuat antarmuka Graphikal ( GUI )
* mendukung COM
* Pernyataan yang umum
* memanggil secara langsung DLL dan fungsi Windows API eksternal
* fungsi "RunAs" yang bisa di skrip
* File pembantu ( helpfile ) yang ditail dan Forum pendukung berKomunitas besar
* bisa bekerja pada Windows 95 / 98 / ME / NT4 / 2000 / XP / 2003 / Vista / 2008
* mendukung Unicode dan x64
* terdaftar resmi untuk kenyamanan
* bekerja dengan "User Account Control" ( UAC ) pada Windows Vista

AutoIt telah di desain sekecil mungkin dan bekerja sendiri tanpa file .dll eksternal atau kebutuhan entri pada registry, yang membuat AutoIt aman untuk pengguna ato server. Script dapat di kompilasi menjadi sebuah file exe dengan menggunakan Aut2Exe.

Juga telah tersedia sebuah AutoIt versi kombinasi COM dan DLL yang disebut AutoItX yang bikin lo bisa menambahkan fitur unik ke bahasa pemrograman favorite lo sendiri!

Lebih lagi, AutoIt Tetap GRATIS - tapi klo lo mau meluangkan waktu. uang dan bantuan untuk proyek ini dan Hostingan webnya, maka lo dipersilahkan menyumbang di situs AUTOIT ( Freezerland juga ). :P
Sumber: AutoIT Help File



Belajar Kelompok AutoIt

Neh hasil gw utek utek Help File Autoit, buat kalian yang kpengen belajar autoIt.
Kembali gw ingetin, INI BUKAN TUTORIAL, tapi BELAJAR BERSAMA, yang mana disini kita semua berbagi ilmu, tukar fikiran dan pendapat, trik dan tip juga kritik dan saran satu sama lain, yang ngerasa dah jago AutoIt, ga gw anjurin baca, kecuali mo ngoreksi dan nambahin.

Jadi, jangan sebut gw "GURU", "AHLI" apalagi "MASTER", karena gw belajar AutoIt ini baru 2 hari saja :P
Nah, dengan demikian, jika Code Script yang gw bahas masih taraf Darar, maklumilah, karena emang gw belom tau lebih banyak soal AutoIt, dan jangan ngambek klo ada pertanyaan2 lo yang ga bisa gw jawab yeh?

mari kita mulai deh....

Hal pertama yang harus lo kerjakan untuk belajar AutoIt adalah:

1. Berdo'a sebelom belajar, minta kepada Tuhan, kelancaran dan dibukakan Pintu Otak lo buat menerima dan memberi Ilmu.

2. Kalo belom punya Installer AutoIt nya, lo dowbload dulu deh, disini:
Code:
http://www.autoitscript.com/files/autoit3/autoit-v3-setup.exe


3. Download juga Editor Script khusus buat AutoIt, namanya SciTE disini:
Code:
http://www.autoitscript.com/autoit3/scite/download/SciTE4AutoIt3.exe


4. Download juga Editor Form namanya KODA, untuk mempermudah membuat tampilan Applikasi lo disini:
Code:
http://www.autoitscript.com/fileman/users/lookfar/koda_1.7.0.1.zip


5. Kalo semua file yang diatas udah lo download semuanya, maka lo Install deh, AutoIt dan SciTE. kalo KODA tu ga pake Install, lo extract ajah file nya, tempatin ke folder sendiri, tapi biar gampang, lo masukin ke folder AutoIt nya aja..

6. Kalo Udah, lo mau restart kompi lo silaken, klo ga juga gpp

nah, klo dah terinstall di komputer lo, sekarang lo pasti bingung, neh jalanin AutoIt kayak gmana?
Jangan bingung, klo lo dah terbiasa dengan AHK, Lo ga akan kewsulitan di AutoIT. klo pun belom terbiasa dengan AHK ato bahasa pemrograman apapun, jangan takut, gw juga belom terbiasa, jadi lo ga sendirian yang kebingungan :P

Let's Get It On!!

LATIHAN 1
sekarang buka folder dimana lo extract tuh file2 KODA yang tadi lo download. double klik file FD.exe untuk menjalankan KODA.
lalu... tiba tiba... napak dilayar monitor lo sebuah bentuk yang ga lazim, dengan beberapa tool windows di kanan kiri, dan sebuah Form kosong ( ga nyaring bunyinya ).... itulah KODA alias Form Designer untuk AutoIT.
sebenernya bikin tampilan Aplikasi, ga pake KODA juga bisa, lo semua bisa langsung ketik di script semua control2 nya, letak dan ukurannya, dsb.

Image

Keterangan:
1. Standar menuBar, lo tau lah ini buat apaan.
2. Object TreeView, ini buat liat dan akses control2 yang ada di app yang lagi lo bikin.
3. Object Inspector, ini buat liat dan atur properties dari control2 aplikasi lo.
4. Form yang lagi lo kerjain, nanti disini lo simpen semua kontrol lo, kayak tombol, kotak edit, dsb.
5. Form List, ini adalah daftar Form form yang lagi lo kerjain.

nah, klo dah kebuka kayak gini, lo dah siap neh, desain applikasi lo, mo dibikin kayak apa, kontrol apa ajah yang mo lo masukin ke aplikasi lo....

yuk ah, mulai bikin sesuatu...

* Klik Form nya, lalu lo liat di Object Inspector, lo klik Caption, lalu ganti "Form 1" dengan "Latihan1", nama ini yang akan kita pake buat sementara...

* coba lo bikin Kotak edit ( Edit ), caranya klik gambar kotak putih bergaris kayak icon file txt dimenubar ( diatas form ) lalu tunjuk mouse lo ke form, klik dan seret mouse lo, sampe ukuran editbox nya sesuai dengan keinginan lo.

* posisikan editbox tadi sesuai keinginan lo.

* liat di Object inspector, klik pada "Lines" dan klik kotak kecil di situ, maka akan muncul window "String list editor", itu adalah isi editbox yang lo buat, hapus saja isinya, jadi editbox lo akan kosong pada saat form dijalankan. klik OK.

* Kembali ke Object Inspector, sekarang lo klik tab "Styles" yang berada di paling bawah. hilangkan centang pada WS_HSCROLL & WS_VSCROLL, untuk menghilangkan ScrollBar pada editbox tadi jika ga diperlukan.

* buat 1 lagi editbox, caranya seperti diatas, ato lo bisa Klik kanan pada editbox yang dah ada, lalu pilih Copy dan Paste di Form.

* Posisikan Editbox nya dengan menyeret editbox nya, ato tekan tombol CTRL + tombol panah.

* Buat 3 tombol, caranya, lo klik gambar kotak kecil bertuliskan "ok" di menuBar, dan lakukan seperti saat lo bikin Editbox diatas.

* Pada Object Inspector, lo bisa atur Caption ( tulisan ) pada tombol tombol barusan, nama tombol, dan aturan yang laennya, buat saat ini, biarin aja deh dulu.

* setelah semua tersusun rapi, lo klik OnClick, lalu set pilihannya ke "Notify", lalu klik OK. ini agar di script yang nanti otomatis terbuat, sudah ada label untuk tombol2 ini.

* untuk EditBox, lo klik OnChange, dan set ke "Notify" juga.

* Setelah semua lo atur, lo atur tu ukuran form, biar proporsional ma ukuran kontrol2nya, klo ga jg gpp, terserah lo deh :P

* Klik Generate Code, letaknya di sebelah kanan gambar disket ( save ) ato lo pencet ajah F9, maka akan muncul sebuah window "Code", klik segitiga kacil di sebelah kanan tulisan "Copy to clipboard" dan pilih "Save to file", lalu klik Save to Filenya tersebut.
jika ada pertanyaan Your current form not saved. In order to use Update function you should save form before saving script. Do you want to save form?, lo pilih OK untuk save form lo, Lalu kasi nama tu Form sebagai latihan1.kxf, lalu lo klik lagi save to file, dan save code yang dihasilkan oleh KODA menjadi file berekstensi .au3, kasi nama latihan1.au3

* Tutup KODA nya.

* buka folder dimana lo simpen tu file au3, biasanya klo lo ga robah tempat save nya, ada di folder "Forms" di dalem folder dimana KODA berada. klik kanan file latihan1.au3 yang baru saja dihasilkan oleh KODA dan pilih "Edit Script", maka file nya akan ( biasanya ) dibuka secara otomatis oleh SciTE, inget kan apa tu SciTE?

* Hasilnya kira2 kayak gini:

Code:
#include
#include
#include
#include

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate( "Latihan1", 173, 84, 192, 124 )
$Edit1 = GUICtrlCreateEdit( "", 4, 5, 163, 20, BitOR( $ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN ) )
$Edit2 = GUICtrlCreateEdit( "", 4, 31, 163, 20, BitOR( $ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN ) )
$Button1 = GUICtrlCreateButton( "Button1", 4, 59, 51, 20, 0 )
GUICtrlSetTip( -1, "Tombol ini akan membaca Editbox 1" )
$Button2 = GUICtrlCreateButton( "Button2", 60, 59, 51, 20, 0 )
GUICtrlSetTip( -1, "Tombol ini akan membaca Editbox 2" )
$Button3 = GUICtrlCreateButton( "Button3", 116, 59, 51, 20, 0 )
GUICtrlSetTip( -1, "Tombol ini akan menghapus isi Editbox" )
GUISetState( @SW_SHOW )
#EndRegion ### END Koda GUI section ###

While 1
Dim $Teks1, $Teks2
$nMsg = GUIGetMsg( )
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Edit1
Case $Edit2
Case $Button1
Case $Button2
Case $Button3
EndSwitch
WEnd



ga perlu sama persis dengan yang gw kasi diatas lah, yang penting mirip gituh
di AutoIt, Setiap Kontrol yang dipake, diwakili oleh 1 variable, seperti yang kita liat diatas, EditBox diwakili oleh $Edit1, tombol 1 diwakili oleh $Button1.
Variable ini disebut juga nama kontrol, bisa diatur di KODA ato bisa lo ganti langsung di script nya.
untuk saat ini, biarga bikin bingung, gw ga ganti nama kontrolnya, biarkan seadanya dulu deh

Bagian ini:
Code:
#include
#include
#include
#include

itu gw sebut ajah Deklarasi Header, ato pernyataan function eksternal yang akan disertakan dalam script yang akan lo buat. tentang penjabaran lebih ditel, kita tunda aja dulu untuk saat ini, belom saatnya pusing2 mikirin yang begituan, toh segalanya dah otomatis dibikin ma KODA

* mulai deh kita ngutek ngutek code, dan sekalian berkenalan dengan SciTE, Script Editor nya AutoIT.

* Pada bagian yang ini:

Code:
While 1
Dim $Teks1, $Teks2
$nMsg = GUIGetMsg( )
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Edit1
Case $Edit2
Case $Button1
Case $Button2
Case $Button3
EndSwitch
WEnd

lo robah jadi kayak gini:

Code:
While 1
$nMsg = GUIGetMsg( )
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit

Case $Edit1
Case $Edit2

Case $Button1
MsgBox( 0, "Info", "Tombol 1 neh", 1 )

Case $Button2
MsgBox( 0, "Info", "Yang ini Tombol 2...", 1 )

Case $Button3
MsgBox( 0, "Info", "nahhh yang ini Tombol 3 neh", 1 )
EndSwitch
WEnd

lalu lo save tu file, minimize SciTE, lalu lo double click tu file Latihan1.au3, klo lo ga ada salah waktu ngetik, pasti bisa berjalan dengan mulus neh...

* Coba lo klik tombol 1, 2 dan 3. klo bener koding nya, maka akan muncul message box, yang berdurasi 1 detik tiap message box nya.

* Latihan 1 dan perkenalan selesai sampe sini.....

* Lalu, lo bertanya, untuk apa tuh 2 kotak edit yang dibikin? kok belom dikasi apa apa? Tenang, itu gw bikin kayak gitu, buat dipake di latihan selanjutnya

* sekarang lo maen2 dulu deh ma tombol nya, klo dah puas, lo pahami tuh, Nama kontrol, variable dan semua yang dah ada di Latihan1.


LATIHAN 2

Pada latihan kali ini, kita akan belajar menggunakan manipulasi window, dan penggunaan keystroke.

* Buka file latihan1.kxf yang dah lo bikin sebelomnya oleh KODA, biasanya ada di folder "Forms", lalu lo pilih "file" pada menubar, lalu pilih "save as", dan lo kasi nama tu file jadi "Latihan2.kxf". ini maksudnya agar kita punya 2 file form, yang mana kedua file ini akan kita pake dalam latihan kali ini.

* ganti nama ( caption ) form nya jadi "Latihan2".

* tambahkan 3 tombol pada form, lalu lo robah semua Caption tombol yang ada, jadi seperti ini:

Button1 = Isi
Button2 = Ambil
Button3 = Hapus
Button4 = Click1
Button5 = Click2
Button6 = Click3

* Set Status "OnClick" semua tombol nya menjadi "Notify".

* lalu lo pencet F9, dan klik Save to file, lalu lo kasi nama tu file "Latihan2.au3"

* Tutup lagi KODA nya, klo ada pilihan disuruh safe form ke file, okeh-in ajah dehh

* Edit Script "Latihan2.au3" menggunakan SciTE. hasil generate KODA kira2 kayak gini:

Code:
#include
#include
#include
#include

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate( "Latihan2", 173, 104, 192, 124 )
$Edit1 = GUICtrlCreateEdit( "", 4, 5, 163, 20, BitOR( $ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN ) )
$Edit2 = GUICtrlCreateEdit( "", 4, 31, 163, 20, BitOR( $ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN ) )
$Button1 = GUICtrlCreateButton( "isi", 4, 59, 51, 20, 0 )
GUICtrlSetTip( -1, "Tombol ini akan mengisi Editbox Target" )
$Button2 = GUICtrlCreateButton( "ambil", 60, 59, 51, 20, 0 )
GUICtrlSetTip( -1, "Tombol ini akan membaca Editbox Target" )
$Button3 = GUICtrlCreateButton( "hapus", 116, 59, 51, 20, 0 )
GUICtrlSetTip( -1, "Tombol ini akan menghapus isi Editbox Target" )
$Button4 = GUICtrlCreateButton( "Click1", 4, 80, 51, 20, 0 )
GUICtrlSetTip( -1, "Tombol ini akan meng-Klik Button1 Target" )
$Button5 = GUICtrlCreateButton( "Click2", 60, 80, 51, 20, 0 )
GUICtrlSetTip( -1, "Tombol ini akan meng-Klik Button2 Target" )
$Button6 = GUICtrlCreateButton( "Click3", 116, 80, 51, 20, 0 )
GUICtrlSetTip( -1, "Tombol ini akan meng-Klik Button3 Target" )
GUISetState( @SW_SHOW )
#EndRegion ### END Koda GUI section ###

While 1
Dim $Teks1, $Teks2
$nMsg = GUIGetMsg( )
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit

Case $Edit1
Case $Edit2
Case $Button1
Case $Button2
Case $Button3
Case $Button4
Case $Button5
Case $Button6
EndSwitch
WEnd


keterangannya sama ajah ma yang latihan 1, cuma beda dikit, yang ini punya 6 tombol.

lalu, pada bagian ini:

Code:
While 1
Dim $Teks1, $Teks2
$nMsg = GUIGetMsg( )
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit

Case $Edit1
Case $Edit2
Case $Button1
Case $Button2
Case $Button3
Case $Button4
Case $Button5
Case $Button6
EndSwitch
WEnd

lo tambahin jadi kayak gini:

Code:
While 1
Dim $Teks1, $Teks2
$nMsg = GUIGetMsg( )
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit

Case $Edit1
$Teks1 = ControlGetText( $Form1, "", $Edit1 )

Case $Edit2
$Teks2 = ControlGetText( $Form1, "", $Edit2 )

Case $Button1
ControlSetText( "Latihan1", "", "Edit1", $Teks1 )
ControlSetText( "Latihan1", "", "Edit2", $Teks2 )

Case $Button2
$Teks1 = ControlGetText( "Latihan1", "", "Edit1" )
$Teks2 = ControlGetText( "Latihan1", "", "Edit2" )
ControlSetText( $Form1, "", $Edit1, $Teks1 )
ControlSetText( $Form1, "", $Edit2, $Teks2 )

Case $Button3
ControlSetText( "Latihan1", "", "Edit1", "" )
ControlSetText( "Latihan1", "", "Edit2", "" )
ControlSetText( $Form1, "", $Edit1, "" )
ControlSetText( $Form1, "", $Edit2, "" )
$Teks1 = ""
$Teks1 = ""

Case $Button4
ControlClick( "Latihan1", "", "Button1" )

Case $Button5
ControlClick( "Latihan1", "", "Button2" )

Case $Button6
ControlClick( "Latihan1", "", "Button3" )
EndSwitch
WEnd


gw terangin dikit2 yah.... sapa tau bener :P

Code:
While...WEnd

Loop yang berdasarkan pernyataan kondisi. disini ada While 1, arti langsungnya adalah, "Ketika 1", 1 adalah on, bekerja, berjalan, dll. jadi artinya tu kira kira: "Ketika Script berjalan"
loop ini akan berakhir jika kondisi tidak sesuai, misalnya script nya di berhentikan ato di matiin.
rumus:
Code:
While Pernyataan
Perintah2 yang dijalankan klo pernyataan cocok ato benar
Wend

_____________________________________________________________

Code:
$nMsg = GUIGetMsg( )

Baris ini mengawasi dan mengambil setiap aksi yang kita lakukan terhadap window script ini, misalnya klik tombol, ngetik teks, dll, dan menyimpan setiap pemicu event ( kejadian ) tsb kedalam variable "$nMsg".
_____________________________________________________________

Code:
Dim $Teks1, $Teks2

ini namanya Declaration, alias pernyataan variable, untuk menyimpan string/data. ( bener ga yah? )
_____________________________________________________________

Code:
Switch $nMsg

ini adalah pernyataan pilhan kondisi. jika kondisi dari $nMsg sama dengan salah satu pilihan di bawah, maka jalankan perintah yang ada di pilihan itu, fungsinya sama dengan "Select Case"
_____________________________________________________________

Code:
Case $Edit1
$Teks1 = ControlGetText( $Form1, "", $Edit1 )

ini salah satu pilihan kondisi $nMsg diatas.
ini di jalan kan kalo Edit 1 menerima perubahan isi nya, jadi begitu lo ketik di edit, tu data langsung di masukin ke variable $Teks1.
rumus:
Code:
$namaVariable = ControlGetText( $namaWindow, $TeksPadaWindownya, $namaControlYangMoDiambilTeksnya )

_____________________________________________________________

Code:
Case $Button1
ControlSetText( "Latihan1", "", "Edit1", $Teks1 )
ControlSetText( "Latihan1", "", "Edit2", $Teks2 )

ini dijalankan ketika kita klik tombol 1, makan akan mengisi Edit1 dan Edit2 pada window Latihan1, dengan isi dari variable $Teks1 dan $Teks2
rumus:
Code:
ControlSetText( namaWindow, TekspadaWindow, ControlYangMoDiSetTextnya, Teksnya )

_____________________________________________________________

Code:
Case $Button4
ControlClick( "Latihan1", "", "Button1" )

akan di kerjaka jika tombol 4 di tekan, yang mana akan meng-klik tombol 1 pada window latihan1.
rumus:
Code:
ControlClick( namaWindow, TeksPadaWindow, NamaTombolYgMoDiKlik )

_____________________________________________________________

Code:
EndSwitch

Akhir dari pilihan
_____________________________________________________________

* Save File nya, ingat, ini adalah File Latihan2.au3.

* coba lo jalankan Latihan1 dan Latihan2.

* kalo lo ga ada salah ketik, maka hasilnya akan ada 2 window, window Latihan1 dan window Latihan2...

* sekarang lo ketik something lah di edit1 dan 2 window Latihan2, lalu lo klik tombol "Isi", maka teks tersebut akan nampak juga di window Latihan1.

* Klik "Hapus", maka semua teks yang ada di window latihan1 dan latihan2 akan terhapus

* sekarang, lo ketik sesuatu edit1 dan edit2 di window latihan1, lalu klik "Ambil", maka teks2 itu akan atampil di edit1 dan edit2 pada window latihan2.

* Click1 akan mengklik tombol 1 pada window latihan1, dst.

* Sekian Latihan kedua kita kali ini, skarang lo eksperimen aja dulu ma yang udah lo pelajari dari latihan1 ma latihan2 yah??? :P


LATIHAN 3

Sekarang kita naek dikit neh, dari cuman isi editbox ma klak klik sana sini, kita masuk ke yang "rada tinggian" dikit yeh?
di latihan ini, kita bahas soal ListBox, yang mana Kontrol ini banyak dipake di tool2 kiker, misalnya buat daftar target, daftar Nik, dll.

di latihan ini gw langsung kasi sample aja deh, gw pikir, cape juga ngetik2, lagian, gw yakin, lo dah pada ngerti deh, gmana bikin form, ngisi kontrolnya, trus yang dasar2 nya lah, klo lom ngerti juga, ya silaken nanya disini yah

neh script sample nya, lo copy dan paste ajah, bikin jadi file "latihan3.au3".

Code:
#cs ----------------------------------------------------------------------------

AutoIt Version: 3.3.0.0
Author: The_Freezer

Script Function:
Latihan 3.
Dasar Listbox

#ce ----------------------------------------------------------------------------
#include
#include
#include
#include
#include

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate( "Latihan3", 328, 351, 192, 124 )
$Edit1 = GUICtrlCreateEdit( "", 5, 300, 157, 20, BitOR( $ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN ) )
$Edit2 = GUICtrlCreateEdit( "", 165, 300, 157, 20, BitOR( $ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN ) )
$List1 = GUICtrlCreateList( "", 5, 6, 157, 292, BitOR( $LBS_SORT,$LBS_STANDARD,$WS_VSCROLL,$WS_BORDER ) )
$List2 = GUICtrlCreateList( "", 165, 5, 157, 292, BitOR( $LBS_SORT,$LBS_STANDARD,$WS_VSCROLL,$WS_BORDER ) )
$Tambah = GUICtrlCreateButton( "Tambah", 5, 324, 76, 21, 0 )
GUICtrlSetTip( -1, "Tombol ini akan menambahkan isi Edit1 ke List1" )
$TambahSmua = GUICtrlCreateButton( "Tambah smua", 86, 324, 76, 21, 0 )
GUICtrlSetTip( -1, "Tombol ini akan menambahkan semua isi List1 ke List2" )
$Hapus = GUICtrlCreateButton( "Hapus 1", 165, 324, 50, 21, 0 )
GUICtrlSetTip( -1, "Tombol ini akan menghapus isi Edit2 dari List2" )
$HapusSmua = GUICtrlCreateButton( "HpsSmua", 216, 324, 55, 21, 0 )
GUICtrlSetTip( -1, "Tombol ini akan menghapus isi List1 dan List2" )
$KickSmua = GUICtrlCreateButton( "HAJAR", 272, 324, 50, 21, 0 )
GUICtrlSetTip( -1, "Tombol ini akan meng-kick isi List2" )
GUISetState( @SW_SHOW )
#EndRegion ### END Koda GUI section ###

While 1
$nMsg = GUIGetMsg( )
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit

Case $Edit1
;Baca data di Edit1
$Teks1 = GUICtrlRead( $Edit1 )

Case $Edit2
;Baca data di Edit1
$Teks2 = GUICtrlRead( $Edit2 )

Case $Tambah

;tambah data listbox
_GUICtrlListBox_AddString( $List1, $Teks1 )

;Kosongkan Edit1
GUICtrlSetData( $Edit1, "" )

Case $Hapus
$Teks2 = GUICtrlRead( $Edit2 )

;Cari data yg dibaca diatas di listbox2 dan simpan indexnya jika ada yang sama
;True = harus sama persis, misal: ABCD = ABCD
;False = yang penting ada kesamaan, misal: ABC = ABCD ato BC = ABCD
$Index = _GUICtrlListBox_FindString( $List2, $Teks2, True )

;hapus String yang tersimpan dalam listbox yang berindex '$index'
_GUICtrlListBox_DeleteString( $List2, $Index )

Case $TambahSmua
;hitung dari 0 sampe ke jumlah isi listbox1 dikurangi 1
For $Index = 0 to _GUICtrlListBox_GetCount( $List1 )-1

;tambahkan text dari listbox1 yg berindex 'Index' ke Listbox2
_GUICtrlListBox_AddString( $List2, _GUICtrlListBox_GetText( $List1, $Index ) )

Next
Case $HapusSmua
;hapus semua isi listbox1 dan listbox2
_GUICtrlListBox_ResetContent( $List1 )
_GUICtrlListBox_ResetContent( $List2 )

Case $KickSmua
For $Index = 0 To _GUICtrlListBox_GetCount( $List2 )-1

;pura2 nya ini proses ngekik smua nik yang ada di dalam listbox2
MsgBox( 0, "Kick All", "Nge-Kick si " & _GUICtrlListBox_GetText( $List1, $Index ), 1 )

Next

Case $List1
;Tambahkan data yang diklik di listbox1 ke listbox2
_GUICtrlListBox_AddString( $List2, _GUICtrlListBox_GetText( $List1, _GUICtrlListBox_GetCurSel( $List1 ) ) )

Case $List2

;Set text pada edit 2 dg data yang diklik pada listbox2
GUICtrlSetData( $Edit2, _GUICtrlListBox_GetText( $List2, _GUICtrlListBox_GetCurSel( $List2 ) ) )

EndSwitch
WEnd


nah tuh... disitu dah gw sertain keterangan2 asli dapet ngarang gw, ga tau bener apa kaga tuh keterangan dan penggunaan syntaxnya, maklum, baru 2 hari baca help file autoit nya :P

silaken di coba....

latihan3 ini, gw lebih ke tanya jawab ajah deh, yang ngerasa dah gape maen2 ma AutoIt, silaken nambahin disini, jangan malu2 apalagi pelit Ilmu, gw kutuk pantat lo bisulan segede ember dah kalo lo pelit2 =))

di Latihan berikutnya, gw akan bahas soal TCP/IP socket di AutoIt, yang sampe saat ini masih gw pelajari. alhamdulillah, dah berhasil bikin 1 aplikasi kayak migpro, ntar gw ulas disini semua nya
Makasi dah buang waktu membaca Artikel gw yang kurang berguna ini :)



Langkah2 menuju FMPC (AHK)

ORIGINAL POST BY FREEZER

Kata pengantar
Ini bukan tutorial, cuman berbagi aja ma temen2 semua.
Ni gw buka langkah2 gw bikin FMPC.
Maaf gw bukan mo ngajarin, gw bukan programmer, bukan guru apalagi master... sekali lagi, gw cuman berbagi aja...
:D

mulai yu?

Apa yang dibutuhkan?

Pertama-tama, yang lo harus lakukan adalah download 2 file dibawah ini:

1. AUTOHOTKEY main software.
Code:
http://www.autohotkey.com/download/AutoHotkeyInstall.exe

install aja kalo lo udah dapet file nya. Restart kompi lo walo softwarenya ga minta restart.

2. SMARTGUI.
Code:
http://www.autohotkey.com/download/smartgui.zip

lo cukup ekstrak ni file kemana aja lo mau, tanpa instalasi. Tapi lebih baek lo ekstrak ni file ke folder autohotkey yang baru lo install.

Cukup 2 file itu saja yang dibutuhkan. Total besar 2 file tsb sekitar 3 Mb.

Pengenalan AHK

Autohotkey (AHK) adalah pemrograman yang sederhana, tapi hasilnya luar biasa. Lo bisa bikin hampir aplikasi apa aja oleh software ini. Tapi intinya, software ini intinya automatisasi pada window, seperti keystroke dan penggerak mouse.
Cukup lah basa basinya, gw ga pinter nerangin, lagian kalo panjang lebar juga, gw yakin, ga semua bakal lo baca.
Disini gw ga serta merta ngasi source code FMPC, tapi gw kasi langkah2nya, mulai dari awal ya?
Ibaratnya, gw ngasi lo pancing buat nyari ikan sendiri, ketimbang gw ngasi ikan ke lo, ntar pada males usaha...
:P

Latihan 1

langkah-langkah yang kudu lo ambil dalam ngebuat satu aplikasi adalah:

1. Niat. Niat yang kuat, bisa nganter lo ke tujuan. Seberat dan sesusah apapun yang lo hadepi, pasti bisa asal ada niat yang kuat.
2. Tujuan. Artinya, lo punya tujuan, buat apa ni aplikasi yang lo bikin, apa alat ngekik? Apa alat flood? Apa alat olah raga? He3x...

3. Perancangan. Lo rancangin dulu aplikasi lo, bentuk, ukuran, kelengkapan, dll. Menurut pengalaman gw, perancangan yang kurang matang akhirnya malah bikin kaco, puyeng sendiri...

4. Mencari tau. Ga usah malu bertanya, ntar malah lo mandeg ga maju2.

5. P.D. Jangan minder liat hasil orang yang lebih dari lo punya. Apa yang lo bisa, kerjakan.

6. Ni gw mo ngasi jurus, apa mo ngasi wejangan ya?
:)

Udah ah. Kita langsung aja belajar kelompoknya...

Langkah 1: pembentukan aplikasi.

Untuk bikin aplikasi pada AutoHotKey, lo kudu bikin dulu "Form" nya. Form ato disebut juga GUI (Graphical User Interface) adalah tampilan dasar dimana control (tombol2, kotak2 edit, dll) mencloknya.
Ada 2 cara bikin GUI, yaitu:
  • Manual, lo bisa ketik semua control, dan form dengan code2.
  • Auto, lo tinggal drag & drop (tarik & jatuhkan) control2 pada form. Cara ini yang paling praktis dan mudah. Gw saranin lo pake cara ini aja.
cara yang kita pake cara auto.
Buka program SmartGUI yang tadi lo ekstrak.
Disana lo bisa liat ada 1 form (kotak besar) yang kosong. Di atasnya ada tool bar yang berisi teks, edit, button, dll.
Kita eksperimen dulu aja.
* Lo klik kiri "button" pada toolbar, lalu lo arahkan mouse ke form yang kosong, ntar di mouse lo ada tombol yang akan lo bikin. Klik kiri lg didalam form dimana tombol itu mau lo letakin. Lalu lo sesuaikan ukuran yang lo inginkan. Lalu lo klik kiri lagi. Selesai, selamat lo udah bisa bikin FMPC!
=p. He3x... Ga dinx...

* Sekarang lo klik kanan pada tombol yg barusan lo bikin, akan ada pop up menu yang isinya move control, duplicate control, set position, change label, dll. Lo klik kiri aja duplicate control, makan tombol tadi lo duplikat, dan letakan di sebelah tombol pertama.

* Klik kanan lagi, pilih change label, lalu lo kasi nama tu tombol "SATU".

* Lakukan hal yang sama pada tombol satunya lagi, kasi nama "DUA".

* Buat 1 EditBox, klik kiri logo edit di tool bar dan letakan di form di atas ato dibawah 2 tombol tadi, ato dimana aja suka2 lo. Sesuaikan ukuran dg yang lo inginkan, jangan terlalu kecil, biar bisa nampung teks banyak.

* Klik kanan editbox ntu, pilih change label, kosongkan aja, hapus tulisan "edit" nya.

* Ubah ukuran form, sesuaikan dengan control2 tadi. Caranya lo tunjuk pinggiran form nya, lantas lo tarik ke kiri, tarik ke kanan, la la la la la la la la laa laaaaa... Eh.... :malu: Ke atas ato ke bawah, suka suka lo aja.

* Save file nya, kasi nama "Latihan 1", kalo muncul kotak pilihan "save GUI to clipboard, Save new GUI to file, dan Save Modified GUI to file", lo pilih "Save New GUI to file" ato kayak gt lah...
Save ke folder dimana lo bisa inget dengan mudah. Kalo gw biasanya suka disimpen di Desktop aja dulu, biar gampang.

* Test GUI yang baru lo bikin, caranya, klik file, pilih Test Script. Lo akan liat hasilnya. Tutup kalo lo dah puas liat2.

*Tutup SmartGUI, kalo ada pilihan "save Gui to clipboard" dll, pilih no aja.

Langkah 2: pengkodean.

* Klik kanan pada file "Latihan 1" yang barusan lo bikin pake SmartGUI. Pilih "edit script". Kalo pilihan "edit script" ga ada, lo bisa pilih "open with", pilih notepad ato msword. Kalo lo punya notepad++, lebih bagus, soalnya dari tampilan lebih oke tu.

* kalo lo udah buka, bakalan nampak code kayak gini:
Code:
Gui, Add, Button, x6 y6 w60 h30, SATU
Gui, Add, Button, x66 y6 w60 h30, DUA
Gui, Add, Edit, x6 y37 w120 h50,
;created by smartGUI bla bla bla
Gui, Show, x120 y200 w135 h95, New Gui
Return

GuiClose:
ExitApp

Kayak gitulah kira2...

* gw coba terangin dikit ya...
  • Gui, Add, type control, x y w h, nama adalah perintah/code pada script yang memberitahu script bahwa ada penambahan type control pada GUI, pada posisi x y dari titik kiri atas GUI dan berukuran w h serta dengan nama "nama".
  • Gui, Show, x y w h, nama GUI memberi perintah pada script untuk menampilkan GUI/Form pada layar monitor dengan posisi x y, dan ukuran w h serta dengan nama "Nama GUI".
  • Return perintah ini tanda untuk script mengakhiri suatu rangkaian perintah.
  • GuiClose: ini disebut "label". Label adalah penanda pada script dimana berisi rangkaian perintah2 yang harus dijalankan oleh script jika suatu kejadian terjadi. Semisal disini, jika GUI ditutup maka script menjalankan perintah ExitApp yaitu mengakhiri aplikasi. Akan beda jika di script dihilangkan label "GuiClose:" nya, maka walopun GUI udah nutup, tapi aplikasinya akan tetap berjalan di Background (resident), ini bisa dilihat di Tray sistem, akan ada icon "H" walo GUI udah lo tutup.

* lo ganti aja nama GUI yg tadinya "New Gui" jadi "Latihan1" ato suka2 lo lah. Inget, nama ini akan sering dipake di dalem script ntar, jadi mantapkan pilihan nama Gui dari awal, ato lo bakalan ngedit nama Gui dispanjang Script.

* yu, kita mulai blajar ngisi code nya...
Waktu dijalankan, GUI yg lo bikin udah tertampil, tapi fungsi tombol2 ga ada kan? Nah, tombol2 ini harus diberi code perintah agar tercapai segala maksud dan tujuannya... Halah halah... =p
sekarang ketik ini, ato copy paste ajalah, gw tau lo lo pada males ngetik, maunya pan autolist mulu... =p
Code:
;ini cuman comment
;label untuk perintah2 yang dikerjakan saat tombol SATU atau DUA diklik

ButtonSATU:
ControlSetText, Edit1, Lo ngeklik tombol SATU, Latihan1
Return

ButtonDUA:
ControlSetText, Edit1, Lo ngeklik tombol DUA, Latihan1
Return


* Save file nya, lantas double click file yang barusan lo save, lihat hasilnya. Coba lo klik tombol SATU ato tombol DUA, di Editbox akan ada tulisan bahwa lo dah ngeklik tombol yang mana.

* Selamat! Lo udah mulai pinter ni, besok udah siap2 bikin kayaknya... Ckakakakakakakak...

* gw terangin dikit2 lagi...
  • ButtonSATU/DUA: adalah "Label" yang dijalankan ketika tombol SATU diklik.
  • ControlSetText, Control, text, nama GUI adalah perintah menampilkan text dan mengganti yg lama pada kotak Edit1, dengan tulisan "lo ngeklik tombol..." pada GUI "Latihan1".
sekarang coba lo ganti2 tulisan "Lo ngeklik tombol..." jadi apa aja suka2 lo, lalu save dan test jalankan applikasinya...

Latihan 2

Kita lanjut dah latihan kita.
Gw anggap lo dah pinter bikin GUI ma masang control2 nya. Nah sekarang kita masuk ke pembahasan yang laen.
Disini kita bahas pemasangan ComboBox dan ListBox juga cara ngisinya.

* Pertama, lo buka file "Latihan 1" yang dah lo bikin. Kalo lo belom punya, baca dulu di atas, jalanin dulu apa yang gw tulis sebelomnya.
Buka file "Latihan 1" di SmartGUI. Lalu lo tambahkan 1 combobox dan 1 listbox kedalem form ya udah ada. Tempatkan dengan rapi, dan sesuaikan ukurannya dengan keinginan lo.

* Perbesar ukuran GUI kalo ga cukup.

* Ganti nama combobox dan listbox yang ada, kosongin aja.

* kalo udah selese, lo pilih "Save As" dan kasi nama file "Latihan 2". Pilih "Save modified Script to file", dengan begitu, code yang udah kita bikin ga ilang.

* tutup SmartGUI.

* Edit Script yang barusan lo bikin, yaitu "Latihan 2".

* Pasti akan ada baris perintah tambahan kayak gini:
Code:
Gui, Add, ComboBox, x y w h,
Gui, Add, ListBox, x y w h,


* Nah, gw minta lo perhatiin ni, kita ubah fungsi 2 tombol yang dah ada sebelom nya. Juga nambahin fungsi variable dan gosub pada Combo dan Listbox. Aslinya kayak gini ni kira2 script punya lo:
Code:
Gui, Add, Button, x y w h, SATU
Gui, Add, Button, x y w h, DUA
Gui, Add, Edit, x y w h,
Gui, Add, ComboBox, x y w h,
Gui, Add, ListBox, x y w h,
Gui, Show, x y w h, Latihan1
Return
...
...
...

kira kira gitu lah...

* Nah, lo ganti tu jadi kayak gini:
Code:
Gui, Add, Button, x y w h, TAMBAH
Gui, Add, Button, x y w h, HAPUS
Gui, Add, Edit, x y w h vTeks gTeks,
Gui, Add, ComboBox, x y w h r5 vCombo gCombo, Daftar1|Daftar2|Daftar3|Daftar4|Daftar5
Gui, Add, ListBox, x y w h vList gList, %daftar%
Gui, Show, x y w h, Latihan2
Return
...
...
...

Liat baek baek, mana yang gw tambahin dari code diatas.

Keterangan

* nama tombol SATU dan DUA diganti jadi TAMBAH dan HAPUS.

* vTeks dan gTeks adalah nama variabel dan perintah gosub untuk kotak Edit.
  • Fungsi variable adalah penamaan blok data yang ada didalem Edit box dengan nama "Teks".
  • Fungsi gosub adalah tindakan yang diambil oleh script dan loncat ke label "Teks" jika kotak Edit menerima masukan, misalnya kita ngetik disitu, gitu. Harus diingat, setiap memberikan perintah gosub (gTeks, gList, gCombo, dll) lo kudu wajib dan harus bikin Label yang namanya sama ma gosub nya (Teks, List, Combo, dll) tanpa huruf g.

* Daftar1|...|Daftar5 pada baris combobox adalah isi dari combobox, lo bisa ganti dengan apa yang lo mau, asal tiap item dipisah dengan tanda | (pipe), bukan huruf L ato huruf i tu. Letak di keyboard, 1 tombol ma \.
Juga ada r5, itu tandanya, combobox hanya memperlihatkan 5 baris teks saja. Jika item lebih dari 5 maka akan ada scroller disampingnya ntar.

* %daftar% pada baris listbox, menyatakan nama variable yang akan ditampilkan di listbox. Berbeda dengan variable List (vList), variable List adalah variable yang menyimpan data yang kita pilih/klik dari daftar Listbox.

* nama Gui diganti jadi "Latihan2", biar lo ga bingung.

Selanjutnya

* bikin Label untuk tiap "gosub", kayak gini:
Code:
Teks:
Gui, Submit, NoHide
Return

Combo:
Gui, Submit, NoHide
Return

List:
Gui, Submit, NoHide
Return


* Gui, Submit, NoHide adalah pernyataan untuk script menyimpan data yang ada pada tiap2 control (Submit) kedalam memori dan bisa ditampilkan (NoHide).

* ganti label dibawah ini:
Code:
ButtonSATU:
ControlSetText, Edit1, lo ngeklik SATU, Latihan1
Return

ButtonDUA:
ControlSetText, Edit1, lo ngeklik DUA, Latihan1
Return


jadi kayak gini:
Code:
ButtonTAMBAH:
GuiControl,, Listbox1, %Teks%|
Return

ButtonHAPUS:
GuiControl,, Listbox1, |
Return


code nya kudu kayak gitu ya? Perhatiin koma dan pipe (|) nya tu, salah tempat ato kurang, bisa erur...

* GuiControl,, ListBox1, %Teks%| menyatakan kalo tombol TAMBAH diklik, menambahkan isi dari variabel "Teks" pada Edit box ke ListBox.
Perlu diingat, jika isi variable ato disebut juga "String" akan dipakai, maka nama variable itu harus diapit oleh tanda %. Kalo ga, ntar nama variablenya yang muncul, bukan string nya.
Fungsi tanda "|" (pipe) disini menyatakan kalo listbox ntu akan menerima item baru pada baris baru.

* GuiControl,, Listbox1, | menyatakan kalo tombol HAPUS diklik, maka Listbox akan diganti semua isinya dengan "kosong".

* tambahkan code ini pada label combo:
Code:
aslinya

Combo:
Gui, Submit, NoHide
Return

jadi:

Combo:
Gui, Submit, NoHide
ControlSetText, Edit1, %Combo%, Latihan2
Return


* seperti yang pernah diulas sebelumnya, tentang perintah ControlSetText untuk menampilkan text di kotak edit, tapi kali ini yang ditampilkan isi dari variable "Combo" yang dipilih dari item combobox, jadi tiap lo pilih item di combobox, otomatis akan masuk ke editbox.

fmpc sample
pass : http://freezerland.org

Latihan 3

Lanjuuuut...
:))

sekarang kita udah tau bikin tombol, editbox, combobox dan listbox, juga cara ngisi ngapus dan memfungsikannya.

Saatnya lanjut ke yang sedikit rumit ya...
Gw mo ngasi tau cara gemana Aplikasi lo bisa menulis dan membaca data ke/dari file .ini untuk migpro.

Menulis file .ini

* Buka SmartGUI.

* Buat 1 GUI baru, jangan pake yang udah lo bikin sebelomnya.

* Buat 11 kotak Edit, susun rapi dengan ukuran sama.
Hilangkan teks "edit" pada tiap kotak.

* Buat 11 text, susun rapi, disamping tiap kotak edit, mo di kiri ato di kanan (ga pake la la la la) kotak editnya.
Namain text tadi dengan ID01 sampe ID10 dan 1 buah dengan nama Password

* Buat 3 tombol dengan ukuran yang sama, lalu namai "SAVE", "LOAD" dan "CLEAR".

* sesuaikan ukuran GUI dengan control2 yang lo bikin.

* Save GUI yang lo bikin, kasi nama "Latihan 3"

* Tutup SmartGUI.

* Edit file yang baru lo bikin. Isinya kurang lebih kayak gini:
Code:
Gui, Add, Edit, x y w h,
Gui, Add, Edit, x y w h,
Gui, Add, Edit, x y w h,
Gui, Add, Edit, x y w h,
Gui, Add, Edit, x y w h,
Gui, Add, Edit, x y w h,
Gui, Add, Edit, x y w h,
Gui, Add, Edit, x y w h,
Gui, Add, Edit, x y w h,
Gui, Add, Edit, x y w h,
Gui, Add, Edit, x y w h,
Gui, Add, Text, x y w h, ID01
Gui, Add, Text, x y w h, ID02
Gui, Add, Text, x y w h, ID03
Gui, Add, Text, x y w h, ID04
Gui, Add, Text, x y w h, ID05
Gui, Add, Text, x y w h, ID06
Gui, Add, Text, x y w h, ID07
Gui, Add, Text, x y w h, ID08
Gui, Add, Text, x y w h, ID09
Gui, Add, Text, x y w h, ID10
Gui, Add, Text, x y w h, Password
Gui, Add, Button, x y w h, SAVE
Gui, Add, Button, x y w h, LOAD
Gui, Add, Button, x y w h, CLEAR
Gui, Show, x y w h, New GUI
Return

GuiClose:
ExitApp

kayak gitu lah kurang lebih...
* ganti nama GUI dari "New GUI" menjadi "Latihan 3"

* Beri variable untuk semua EditBox (vTeks1 - vTeks10 + vPass) dan gosub (gTeks1 - gTeks10 + gPass) jadi kurang lebih kayak gini:
Code:
Gui, Add, Edit, x y w h vTeks1 gTeks1,
...
...
...
Gui, Add, Edit, x y w h vTeks10 gTeks10,
Gui, Add, Edit, x y w h vPass gPass,


* Buat Label sub untuk semua gosub pada EditBox:
Code:
Teks1:
Gui, Submit,NoHide
Return
...
...
...
Teks10:
Gui, Submit,NoHide
Return

Pass:
Gui, Submit,NoHide
Return


* Bikin Label untuk tiap tombol:
Code:
ButtonSAVE:
Return

ButtonLOAD:
Return

ButtoanCLEAR:
Return


* untuk save data ke ini file, kita harus tau isi dari ini file yang dipake migpro.

* Buka satu ini file, baik dari FMPC, MCC ato MPS. Kalo FMPC namanya setup.ini, ato migpro.ini. Liat didalem nya pasti ada daftar kayak gini:
Code:
[FMPC]
id01=
id02=
id03=
...
...
...
Psswd=

kayak gitu lah...

* [FMPC], baris ini disebut Header ato Section, ditandai dengan [].

* id01 - psswd disebut key (kata kunci).

* Hal diatas Penting untuk diingat, kalo mo nge-save data ke sebuah ini file, agar nanti ga salah waktu nge-load nya.

* Tambahkan code dibawah ini ke Label ButtonSAVE:
asalnya:
Code:
ButtonSAVE:
Return

jadi:
Code:
ButtonSAVE:
IniWrite, %Teks1%, setup.ini, FMPC, id01
...
...
...
IniWrite, %Teks10%, setup.ini, FMPC, id10
IniWrite, %Pass%, setup.ini, FMPC, psswd
Return


* IniWrite, %Teks1%, setup.ini, FMPC, id01 adalah perintah Menulis (IniWrite) isi variable "Teks1" (%Teks1%) ke file "setup.ini", di section FMPC, pada kata kunci (key) "id01". Berlaku juga untuk baris baris yang laen. Jadi intinya perintah itu adalah:
IniWrite, teksnya, nama file, section/header, kata kunci/key

kalo lo bingung diantara baris perintah ada titik2, itu hanya mempersingkat aja, lo kudu tulis baris kayak baris diatasnya, berurutan dari id01 sampe psswd. Bukan kudu diketik titik2 kayak gitu...

* Sekarang, save filenya.

* Coba lo jalankan, kalo ga ada yang salah ketik, pasti GUI nya keluar dengan selamat.

* isi kotak kotak yang kosong dengan apa aja, suka2 lo, namanya juga percobaan...

* Lalu lo klik tombol SAVE.

* Kalo ga ada yang salah dalam codenya, di folder dimana script ini berada, akan tercipta sebuah file bernama "setup.ini".

* Coba lo buka file "setup.ini" yang baru tercipta. Liat dalemnya, apa sesuai dengan apa yang lo isikan di kotak2 Edit ato ga?

* Kalo sesuai, brarti lo dah sukses meng-kode Save ke file ini... Selamat!!
:D

Membaca file ini

* Tambahkan code berikut pada Label "ButtonLOAD".
Asalnya:
Code:
ButtonLOAD:
Return

jadi:
Code:
ButtonLOAD:
IniRead, varTeks1, setup.ini, FMPC, id01
...
...
...
IniRead, varTeks10, setup.ini, FMPC, id10
IniRead, varPass, setup.ini, FMPC, psswd

ControlSetText, Edit1, %varTeks1%, Latihan 3
...
...
...
ControlSetText, Edit10, %varTeks10%, Latihan 3
ControlSetText, Edit11, %varPass%, Latihan 3

Return


* seperti biasa, titik2 itu artinya, lo kudu ketik semua urutan id02, id03, dst.

* IniRead, varTeks1, setup.ini, FMPC, id01 artinya, membaca (IniRead) dan masukan hasilnya ke variable "varTeks1" dari file "setup.ini" pada Section "FMPC" dan pada kata kunci "id01"

* ControlSetText, Edit1, %varTeks1%, Latihan 3 artinya, pasang teks pada control "Edit1", isi variable "varTeks1" di GUI "Latihan 3".

* kalo dah lo ketik smua, coba lo save tu file, dan jalankan dengan double klik pada file.

* kalo lo dah sukses, maka setiap lo klik LOAD, maka isi dari ini file lo akan terpasang di kotak2 Edit lo...
Kalo belom ada yang keluar, coba lo bikin lagi, lalu save, check file setup.ini yang tercipta, kalo ada datanya, coba tutup GUI nya, lantas jalankan lagi, dan klik LOAD. Kalo muncul, berarti SUKSES!! :sip:
=d

Membersihkan kotak Edit

* Ketik ini di script lo, untuk tombol CLEAR.
Asalnya:
Code:
ButtonCLEAR:
Return

jadi:
Code:
ButtonCLEAR:
ControlSetText, Edit1,, Latihan 3
...
...
...
ControlSetText, Edit11,, Latihan 3
Return


* ControlSetText, Edit1,, Latihan 3 artinya, pasang teks pada kotak "Edit1" tulisan kosong yang ditandai oleh 2 koma (lihat 2 buah koma yang nempel, itu bukan salah ketik, emang harusnya gitu), pada GUI "Latihan 3".

* coba lo save dan test run dengan double klik file nya.

* Klik LOAD lalu akan muncul nama2 di kotak EditBox.

* Klik CLEAR, apa semua teks ilang? Kalo iya, maka SUKSES!!! :sip: =d

Menghilangkan Icon applikasi di sistem Tray

* tiap lo jalanin applikasi lo, pasti muncul icon hijau bertuliskan "H" pada system Tray (kotak kecil dipojok kanan bawah, yg ada jam nya).

* Untuk ngilangin nya, cukup ketik code dibawah ini:
Code:
#NoTrayIcon

letakkan pada baris paling awal script

gitu ajah...

* save file nya, lalu test jalankan, ada ga tu iconnya?

* kalo ga ada, brarti lo SUKSES!!! =d

Menentukan direktori kerja script

* Direktori kerja adalah alamat folder tempat dimana ntar file yang diakses ato dibuat oleh script berada.

* Untuk menentukan Direktori kerja kita bisa atur dengan memberikan script kita code perintah sebagai berikut:
Code:
SetWorkingDir C:\Document and settings\My Documents\Project\

perintah ini menyatakan untuk menetapkan direktori kerja (SetWorkingDir) script di "C:\Document and settings\My Documents\Projects\", alamat direktori ini bisa lo ganti suka2 lo.

* Setiap script mengakses ato membuat file, pasti yang pertama dicari adalah alamat direktori kerja dulu.

* Untuk flexibilitas, sebaiknya penetapan direktori kerja tidak solid/static pada 1 alamat direktori saja (C:\bla\bla\bla), gmana kalo seandainya script nya pindah folder? Ato malah pindah komputer? Bisa2 ga akan terakses tu file2 karena beda nama direktori...
Untuk ngatasinnya, pake code ini:
Code:
SetWorkingDir %A_ScriptDir%

%A_ScriptDir% adalah alamat dimana script lo berada. Jadi lo ga usah ganti/ketik lg alamat script lo kalo pindah tempat. Secara otomatis script akan mencari file ke folder tempat script berada, dimanapun itu.

* Code ini disimpan di baris baris awal pada script sebelum GUI.

* Save file, dan coba jalankan, bikin file ini dan baca, lalu coba pindah folder tu script nya lantas bikin lagi file ini dan baca lagi, berhasil ga tu?
Kalo berhasil, selamat!!!

Menggunakan MessageBox

* MessageBox adalah kotak pesan yang bisa dimunculkan pada kesempatan apapun yang kita inginkan.

* Isi kotak pesan bisa apa saja, sesuai dengan keinginan kita.

* Isi kotak pesan bisa kita jadikan "Test Point" pada script yang tengah kita kerjakan.

* Edit file "Latihan 3" yang barusan.

* Tambahkan code dibawah ini:
Code:
MsgBox, isi pesan

dimana aja lo kepengen tu kotak pesen muncul. "isi pesan" lo ganti aja ma apa yg lo mau. Suka2 ajalah...

* Contoh, untuk memberitahukan kalo data udah di save ke file, kita munculkan kotak pesan, sebagai berikut:
Code:
ButtonSAVE:
IniWrite, %Teks1%, setup.ini, FMPC, id01
...
...
...
IniWrite, %Teks10%, setup.ini, FMPC, id10
IniWrite, %Pass%, setup.ini, FMPC, psswd
;ini msgbox yang gw maksud
MsgBox, Data udah di save
Return


* Save file, dan coba jalanin.

* Sekarang tiap kali lo ngeklik tombol SAVE akan keluar messageBox yang ngasi tau kalo data udah di Save.

* Lo kasi aja MessageBox ditiap event yang lo pengen kayak LOAD dan CLEAR.

* Segitu aja dulu ya?
Ntar kita sambung lagi...

* Makasi... =))

freezer simple player

awal nulis blog ini aku milih berbagi tentang freezer simple player. kenapa aku milih ini... coz kayaknya bangga deh bisa bikin player mp3 sendiri..
  • freezer simple player
  • version 1.0.0
  • copyright @ freezerlab 2009
intinya lo semua harus tau dikit dasarnya autohotkey. kalo belom silahkan download dolo barang2 yang di perlukan
nah oke kita mulai langsung aja yep


#SingleInstance Force
FileInstall, SoundFunctions.ahk, SoundFunctions.ahk, 0
FileInstall, Filter.ini, Filter.ini, 0
SetBatchLines -1
#NoEnv
SetTimer, UpdateSound,5000
SetTimer, UpdateTime,100
SetTimer,UpdateProgress,1000
SetTimer,CheckStatus,100
SoundGet, MV
RSound := Round(MV)
playing = 0
IniRead, Filter, Filter.ini, Config, F
SetTitleMatchMode, 3

gui, color, black
gui, font, cwhite
Gui, Add, Picture, x6 y155 w20 h20 gStopF, %A_ScriptDir%\fmp-stop-o.bmp
Gui, Add, Picture, x46 y155 w20 h20 gPauseF, %A_ScriptDir%\fmp-pause-o.bmp
Gui, Add, Picture, x26 y155 w20 h20 gResumeF, %A_ScriptDir%\fmp-play-o.bmp
Gui, Add, Progress, x66 y155 w220 h20 -Smooth hwndhwnd vProgress Range1-100 vProgress, 0
Gui, Add, Slider, x410 y5 w20 h150 vertical vVSlider Range0-100 gVolumeC AltSubmit invert, %MV%
Gui, Add, Text, x296 y157 w60 h20 vSongTime, 0:0 of 0:0
Gui, Add, Text, x356 y157 w60 h20 vVText, volume`:%RSound%
Gui, Add, StatusBar, x6 y70 w270 h20 vapdet, Not Playing A File

gui, font, cblue
Gui, Add, ListView, grid x6 y5 w400 h150 gPlayLV vLV, Name|Type|Dir
LV_ModifyCol(1, "200 Text")
LV_ModifyCol(2, "45 Integer Right")
LV_ModifyCol(3, "150 Integer Right")
Menu, MyContextMenu, Add, OPEN, OpenMF
Menu, MyContextMenu, Add, ADD TO LIST, AddC
Menu, MyContextMenu, Add, CLEAR, EC
Menu, MyContextMenu, Default, Open
Gui, Show, x195 y115 h200 w425, freezer source player
Return

UpdateClock:
If cTime = %A_Now%
exit
else
cTime := A_Now
SetTimer, UpdateClock, OFF
FormatTime, Time, , HH:mm:ss
GuiControl, , Time , %Time%
SetTimer, UpdateClock, 10
Return

GuiClose:
exitapp
return

GuiContextMenu: ; Launched in response to a right-click or press of the Apps key.
if A_GuiControl <> LV ; Display the menu only for clicks inside the ListView.
return
; Show the menu at the provided coordinates, A_GuiX and A_GuiY. These should be used
; because they provide correct coordinates even if the user pressed the Apps key:
Menu, MyContextMenu, Show, %A_GuiX%, %A_GuiY%
return


;Sound Controls
UpdateSound:
Gui, Submit, NoHide
SoundGet, MVU
RSound := Round(MVU)
Guicontrol,,VSlider,%MVU%
GuiControl,,VText,Volume`:%RSound%
return

VolumeC:
Gui, Submit, NoHide
SoundSet,%VSlider%,master
GuiControl,, VText,Volume`:%VSlider%
Return
;Sound Controls

OpenMF:
CheckSong := Sound_Status(hSound)
If CheckSong = playing
{
Sound_Stop(hSound)
playing = 0
}
Gui, +OwnDialogs
FileSelectFile, Filetoplay, 3, , Select Media File,Audio %Filter%
If Filetoplay =
msgbox,No File Selected

filename=
sleep 100
SplitPath, Filetoplay, filename
sleep 100

hSound := Sound_Open(Filetoplay)
If Not hSound
return
playing = 1
Sound_Play(hSound)
Guicontrol,,Progress,0
Guicontrol,% "+Range1-" Sound_Length(hSound) / 1000,Progress
SplitPath, Filetoplay, filename
SB_SetText("Now Playing " filename)
return

StopF:
Sound_Stop(hSound)
playing = 0
Guicontrol,,Progress,0
GuiControl,,SongTime,0:0 of 0:0
SB_SetText("Not Playing A File")
return

PauseF:
Sound_Pause(hSound)
return

ResumeF:
Sound_Resume(hSound)
return

UpdateTime:
If playing = 0
return
If(Sound_Pos(hSound) = Sound_Length(hSound))
return
GuiControl,,SongTime,% Tohhmmss(Sound_Pos(hSound)) . " of " . Tohhmmss(Sound_Length(hSound))
return


UpdateProgress:
If playing = 0
return
If(Sound_Pos(hSound) = Sound_Length(hSound))
return
Guicontrol,,Progress,% (Sound_Pos(hSound) / 1000)
Return

CheckStatus:
Status := Sound_Status(hSound)
If Status = stopped
{
sleep 1500
Guicontrol,,Progress,0
Guicontrol,,SongTime,0:0 of 0:0
SB_SetText("Not Playing A File")
}
return


PlayLV:
LV_GetText(filetoplaylv, A_EventInfo, 3)
CheckSong := Sound_Status(hSound)
If CheckSong = playing
{
Sound_Stop(hSound)
playing = 0
}
hSound := Sound_Open(filetoplaylv)
If Not hSound
return
playing = 1
Sound_Play(hSound)
Guicontrol,,Progress,0
Guicontrol,% "+Range1-" Sound_Length(hSound) / 1000,Progress
SplitPath, filetoplaylv, filenamelv
SB_SetText("Now Playing " filenamelv)
return

UpdateLV:
Gui, Submit, NoHide
LV_Delete()
Loop, %Directory%\*.*
LV_Add("", A_LoopFileName, A_LoopFileSizeMB, A_LoopFileExt,A_LoopFileFullPath)
LV_ModifyCol()
LV_ModifyCol(2,"Integer")
return

AddC:
FileSelectFile, FileToAdd, 3,%A_Desktop% , Select Media File,Audio %Filter%
If FileToAdd =
{
msgbox, No File Selected
return
}
SplitPath, FileToAdd, FTDName,,EXT
LV_Add("",FTDName,EXT,FileToAdd)
LV_ModifyCol()
return

EC:
LV_Delete()
return




#Include SoundFunctions.ahk
^h::
IfWinExist, freezer source player
WinHide, freezer source player
else
WinShow, freezer source player
return
nah itu main scriptnya. tapi gak berhenti sampai disitu aja. kita masih butuh 1 file lagi
soundfunctions.ahk
Sound_Open(File, Alias=""){
IfNotExist, %File%
{
ErrorLevel = 2
Return 0
}
If Alias =
{
Random, rand, 10, 10000000000000000000000000000000000000
Random, randd, 10, 10000000000000000000000000000000000000
Alias = AutoHotkey%rand%%randd%
}
Loop, %File%
File_Short = %A_LoopFileShortPath%
r := Sound_SendString("open " File_Short " alias " Alias)
If r
{
ErrorLevel = 1
Return 0
}Else{
ErrorLevel = 0
Return %Alias%
}
}

Sound_Close(SoundHandle){
r := Sound_SendString("close " SoundHandle)
Return NOT r
}

Sound_Play(SoundHandle, Wait=0){
If(Wait <> 0 AND Wait <> 1)
Return 0
If Wait
r := Sound_SendString("play " SoundHandle " wait")
Else
r := Sound_SendString("play " SoundHandle)
Return NOT r
}

Sound_Stop(SoundHandle){
r := Sound_SendString("seek " SoundHandle " to start")
r2 := Sound_SendString("stop " SoundHandle)
If(r AND r2)
{
Return 0
}Else{
Return 1
}
}

Sound_Pause(SoundHandle){
r := Sound_SendString("pause " SoundHandle)
Return NOT r
}

Sound_Resume(SoundHandle){
r := Sound_SendString("resume " SoundHandle)
Return NOT r
}

Sound_Length(SoundHandle){
r := Sound_SendString("set time format miliseconds", 1)
If r
Return 0
r := Sound_SendString("status " SoundHandle " length", 1, 1)
Return %r%
}

Sound_Seek(SoundHandle, Hour, Min, Sec){
milli := 0
r := Sound_SendString("set time format milliseconds", 1)
If r
Return 0
milli += Sec * 1000
milli += Min * 1000 * 60
milli += Hour * 1000 * 60 * 60
r := Sound_SendString("seek " SoundHandle " to " milli)
Return NOT r
}

Sound_Status(SoundHandle){
Return Sound_SendString("status " SoundHandle " mode", 1, 1)
}

Sound_Pos(SoundHandle){
r := Sound_SendString("set time format miliseconds", 1)
If r
Return 0
r := Sound_SendString("status " SoundHandle " position", 1, 1)
Return %r%
}

Sound_SeekSeconds(SoundHandle, Sec){
r := Sound_SendString("seek " SoundHandle " to " Sec)
Return NOT r
}

Sound_SetBass(SoundHandle){
r := Sound_SendString("setaudio " SoundHandle " bass to 1000")
Return
}

Sound_SendString(string, UseSend=0, ReturnTemp=0){
If UseSend
{
VarSetCapacity(stat1, 32, 32)
DllCall("winmm.dll\mciSendStringA", "UInt", &string, "UInt", &stat1, "Int", 32, "Int", 0)
}Else{
DllCall("winmm.dll\mciExecute", "str", string)
}
If(UseSend And ReturnTemp)
Return stat1
Else
Return %ErrorLevel%
}

Tohhmmss(milli){
min := Floor(milli / (1000 * 60))
hour := Floor(milli / (1000 * 3600))
sec := Floor(Floor(milli/1000) - (min * 60))
Return min ":" sec
}


oke selesai.. moga itu bisa lo cerna semua yeh
kalopun belom lo bisa komen di bawah