Thursday, 12 July 2012

0 Buat Proces Manager lewat DOS



Akhirnya yang telah ditunggu sekian lama telah tiba..hehe..yup, benar bgt..apalagi kl bukan tips keren (mungkin tidak sama sekali) dari seorang �Newbie� sejati.. Seperti yg saya janjikan pada artikel sebelumnya, maka berdasarkan permintaan pemirsa yang akan menjadi topik artikel kali ini (Vol.2) adalah �Process Manager�. Penasaran, mari kita simak selengkapnya di �Buat Proses Manager Lewat DOS�


Oke langsung saja kita mulai acaranya. Pasti rekan - rekan semua udah pada tau apa itu �Task Manager�. Kalau belum tau sebaiknya cari tau sendiri ya. Nah, program yang akan kita buat kali ini adalah Program sederhana yg berguna untuk mengatur proses yg berjalan pada sistem operasi Windows (seperti Task Manager). �Process Manager� yg akan kita buat kali ini hanyalah sebagai contoh pembelajaran saja. Hanya ada 2 fitur didalamnya, maka silahkan dikembangkan agar menjadi lebih baik.

tips ini ditujukan untuk kalangan Intermediate dan Expert (dlm Batch Programming). Untuk para newbie mungkin hanya untuk mencoba-coba saja, karena tidak ada penjelaskan secara menyeluruh fungsi �Perintah2/Syntax� yg digunakan, hanya pada bagian penting saja.

Langsung saja kita buat programnya :
[1]. Buka Notepad (text editor), truz copy paste script dibawah :

HERE is THE CODE
tested on Windows XP sp2)



___________________________ start script _____________________________
@echo off
mode 33,25
setlocal ENABLEDELAYEDEXPANSION
Title Process Manager
:Begin
PUSHD
CD /D �!TEMP!�
set �TASKLIST=%windir%\system32\tasklist.exe�
set �FIND=%windir%\system32\find.exe�
set �wmic=%windir%\System32\Wbem\wmic.exe�
set �Explore=%windir%\explorer.exe�

:Reload
cls
set num=0
echo.________________________________
echo.[ Process Name ] [ PID ]
echo.�����������
if not defined NAME set NAME=%USERNAME%
!TASKLIST! /FI �USERNAME eq !NAME!� /FO TABLE /NH >�plist.txt�
for /f �tokens=*� %%a in (plist.txt) do (
set /a num+=1
set �list=%%a�
set �list=!list:~0,32!�
echo.!list!
)
echo.________________________________
Del /f /q �plist.txt� >nul 2>&1
Title !NAME! � [!num!] Process Running.
if not defined ac (
if /i �!NAME!�==�%USERNAME%� goto :USR
if /i �!NAME!�==�SYSTEM� goto :SYS
)
if /i �!ac!�==�K� goto :Kill
if /i �!ac!�==�S� goto :SYSTEM
if /i �!ac!�==�U� goto :USER
if /i �!ac!�==�E� goto :Explore
set �ac=�
GOTO :Reload

:USER
set �NAME=�
set �ac=�
GOTO :Reload
:USR
echo.CH : K=Kill, S=System, E=Explore
set /p �ac=Manage : �
GOTO :Reload

:SYSTEM
set NAME=SYSTEM
set �ac=�
GOTO :Reload
:SYS
echo.CH : K=Kill, U=User, E=Explore
set /p �ac=Manage : �
GOTO :Reload

:Kill
echo.Type PID to Kill..
set /p �PID=PID : �
if not defined PID goto :Reload
Taskkill /F /PID !PID! >nul 2>&1
if errorlevel 1 (echo.No Task Running w/ this PID.) else (
if !PID! geq 0 if !PID! lss 10 (
echo.Can�t kill Critical Process
goto :clr_var2
) else (
echo.Success : Task with PID=!PID!
echo. has been KILLED..
))
:clr_var2
set �ac=�
set �PID=�
PAUSE>NUL
GOTO :Reload

:Explore
echo.Type PID to Explore..
set /p �PID=PID : �
if not defined PID goto :Reload
if !PID! lss 10 goto :clr_var
if !PID! gtr 10000 goto :clr_var
!wmic! process get ProcessID,ExecutablePath >�path.txt�
for /f �tokens=1,2 delims=      � %%a in (�type �path.txt� ^| !FIND! � !PID! ��) do (
set �exepath=%%~dpa�
)
if not defined exepath (
echo.No Task Running w/ this PID.
PAUSE>NUL
) else (!Explore! �!exepath!�)
set �ac=�
:clr_var
set �PID=�
set �exepath=�
Del/f /q �path.txt� >nul 2>&1
GOTO :Reload

:END
____________________________ end script _____________________________

[2]. Save dgn Extensi [.BAT], misal : PM.bat

Atau, bisa langsung Download Scriptnya Di Sini.
# Penjelasan :
Code diatas sengaja saya buat terbagi menjadi bbrp subfuction/subprogram agar memudahkan untuk dibaca dan dipahami. Berikut Penjelasan tiap sub fungsinya :

[Baris 1-4]
Perintah standart dalam memulai Batch Programming.

[:Begin]
Awal proses, berupa pendeklarasian variabel. Terkadang dlm program yg melakukan looping bbrp kali kita harus mendefinisikan command external sebagai varibel.

[:Reload]
Di sini akan terjadi looping sesuai penggunaan, berfungsi menampilkan proses yang sedang berjalan. Secara Default menampilkan �USER Process�. Terdapat juga Menu dgn 4 Pilihan (User,System,Kill,Explore).

[:USER]
Jika kita memilih Menu User (tekan �u�), maka program akan dinavigasikan ke subfunsgi ini. Fungsinya adalah untuk Mengganti Nama User untuk proses yang akan ditampilkan menjadi %Username%.

[:SYSTEM]
Hampir sama dgn subfungsi USER, tapi fungsinya untuk menganti Nama User menjadi �SYSTEM�.

[:Kill]
Fungsi untuk membunuh proses. Perintah yang digunakan pasti dah pada tau semua yaitu �TASKKILL�.

[:Explore]
Fungsi untuk mengexplore tempat File executable proses tsb berada. Menggunakan perintah �wmic� (Windows Management Instrumentation Command Line). Adabanyak fungsi dalam perintah ini. Untuk menggunakannya pastikan service �Windows Management Instrumentation� sedang berjalan.

[:END] � Akhir dari program ini.

# Penggunaan :

Sekarang jalankan Program yang sudah kita buat.
Pada saat pertama kali dijalankan, secara default akan menampilkan User Process.


Gambar diatas adalah tampilan awal. Ada3 menu Pilihan yaitu :
[tekan �K�] : Kill � Membunuh proses.
[tekan �S�] : System � Menampilkan System Process.
[tekan �E�] : Explore � Mengexplore App Path dgn Windows Explorer.

Coba, kita tekan �S�, lalu [ENTER]
Maka Program akan menampilkan System process spt Gambar dibawah :


Untuk menampilkan kembali USER process, tekan �U�, lalu [ENTER].
Sekarang kita coba membunuh proses. Tekan �K�, lalu [ENTER].
Maka akan tampil Prompt sprti gambar dibawah ini :


Misal, kita akan membunuh proses �Winamp.exe�, tinggal ketik aja PID-nya.
Jika berhasil akan menampilkan pesan seperti pada gambar.


Fitur ke-2 adalah Explore. Tekan �E�, lalu [ENTER] untuk menggunakannya.
Truz, tinggal ketik aja PID proses yang ingin diexplore (Lihat gambar).


muncul dah windows explorer yang dinavigasikan ke tempat Executable File tsb berada.

Tapi �Process Manager� ini masih sederhana. Kamu bisa menambahkan Fitur lain misalnya untuk melihat �Service Process�, Menjalankan Proses baru, Hapus Proses (kill & Delete File), dll.

Selamat Mencoba....
















0 Comments

Bagaimana Pendapat Anda ?