Genzo newbie just share =) Genzo noob just share: Mei 2011
selamat datang di blog tutorial saya ,blog ini di buat sederhana untuk memudahkan anda dalam membaca dan belajar :D .keep calm and enjoy =) . /yusufgenzo

Membuat Shutdown Timer Dengan Delphi

Shutdown timer, sebuah aplikasi sederhana tapi sangat besar manfaatnya. Tentunya saya tidak perlu menjelaskan panjang lebar tentang kegunaan aplikasi ini karena pasti semuanya sudah tau. Nah, sekarang saya ingin berbagi tentang cara membuat aplikasi tersebut menggunakan Borland Delphi 7. Memang tutorial ini sudah banyak di internet, namun tak ada salahnya kan jika saya juga ikut menulis artikel tentang ini. Yang penting ini hasil pemikiran sendiri, bukan hasil copy-paste dari blog orang lain.
Ok, pertama kita siapkan dulu form-nya. Desainnya sesuai selera masing-masing, yang penting didalamnya terdapat komponent Label, DatetimePicker, Timer, RadionGroup, dan 2 buah Button. Properti name untuk masing-masing komponen tidak perlu diganti, kita pake nama defaultnya saja. Untuk RadioGroup1, tambahkan 3 buah item masing-masing Shutdown, Restart, dan Log Off . Beri angka 0 untuk itemindexnya. Untuk Button1 beri caption "Aktifkan" dan caption "Batal" untuk Button2.  Untuk Timer1, beri angka 100 untuk intervalnya. Hasilnya kira-kira seperti ini :
Sekarang kita tinggal menambahkan kode programnya. Yang pertama, pada event OnCreate Form1 ketikkan kode berikut :
Timer1.Enabled:=false;
DateTimePicker1.Time:=time;
Button2.Enabled:=false;
Selanjutnya pada event Timer1.Timer :
if timetostr(time) = timetostr(DateTimePicker1.Time) then
begin
case RadioGroup1.ItemIndex of
0:winexec('shutdown -s -t 0 -f',sw_normal);
1:winexec('shutdown -r -t 0 -f',sw_normal);
2:winexec('shutdown -l -t 0 -f',sw_normal);
end;
end;
Button1 OnClick :
Button2.Enabled:=true;
Button1.Enabled:=false;
DateTimePicker1.Enabled:=false;
RadioGroup1.Enabled:=false;
Timer1.Enabled:=true;
Button2 OnClick :
Button2.Enabled:=false;
Button1.Enabled:=true;
DateTimePicker1.Enabled:=true;
RadioGroup1.Enabled:=true;
Timer1.Enabled:=false;
Ok, selesai. silahkan dicoba dikomputer masing-masing. Contoh yang sudah jadi bisa di download disini

Eksekusi Perintah DOS dan Mendapatkan Outputnya

Eksekusi perintah DOS di Delphi, tips yang sudah lama saya cari-cari dan akhirnya ketemu juga.. Nah, sebagai rasa syukur saya, maka saya ingin berbagi tips tersebut kepada anda.
Pertama-tama, buat sebuah form dan tambahkan komponen Button, Edit dan Memo masing-masing satu. Jadi ceritanya kita memasukkan perintah DOS kedalam Editbox, kemudian tombol diklik, dan output dari perintah tersebut ditampilkan di Memo.Untuk itu kita perlu menambahkan fungsi berikut kedalam program:
function GetDosOutput(CommandLine: string; Work: string = 'C:\'): string;
var
SA: TSecurityAttributes;
SI: TStartupInfo;
PI: TProcessInformation;
StdOutPipeRead, StdOutPipeWrite: THandle;
WasOK: Boolean;
Buffer: array[0..255] of AnsiChar;
BytesRead: Cardinal;
WorkDir: string;
Handle: Boolean;
begin
Result := '';
with SA do begin
nLength := SizeOf(SA);
bInheritHandle := True;
lpSecurityDescriptor := nil;
end;
CreatePipe(StdOutPipeRead, StdOutPipeWrite, @SA, 0);
try
with SI do
begin
FillChar(SI, SizeOf(SI), 0);
cb := SizeOf(SI);
dwFlags := STARTF_USESHOWWINDOW or STARTF_USESTDHANDLES;
wShowWindow := SW_HIDE;
hStdInput := GetStdHandle(STD_INPUT_HANDLE); // don't redirect stdin
hStdOutput := StdOutPipeWrite;
hStdError := StdOutPipeWrite;
end;
WorkDir := Work;
Handle := CreateProcess(nil, PChar('cmd.exe /C ' + CommandLine),
nil, nil, True, 0, nil,
PChar(WorkDir), SI, PI);
CloseHandle(StdOutPipeWrite);
if Handle then
try
repeat
WasOK := ReadFile(StdOutPipeRead, Buffer, 255, BytesRead, nil);
if BytesRead > 0 then
begin
Buffer[BytesRead] := #0;
Result := Result + Buffer;
end;
until not WasOK or (BytesRead = 0);
WaitForSingleObject(PI.hProcess, INFINITE);
finally
CloseHandle(PI.hThread);
CloseHandle(PI.hProcess);
end;
finally
CloseHandle(StdOutPipeRead);
end;
end;
Kemudian tambahkan kode berikut pada event onclick Button1:
Memo1.Text:=GetDosOutput(Edit1.Text);

Untuk mengetesnya coba ketikkan perintah "help cd". Jika sudah benar, hasilnya akan seperti gambar dibawah ini:

Source code yang sudah jadi bisa di download disini