Windows Registry ကို Script မ်ားေရးၿပီး ျပဳျပင္ျခင္း
ဒီအခန္းမွာ ကၽြန္ေတာ္တို႔ Windows Registry ကို Script ေရးၿပီးျပဳျပင္ၾကရေအာင္…..
Scriptေရးမယ္ဆိုၿပီး အရမ္းလည္း လန္႔မသြားပါနဲ႕၊ နားလည္ၿပီးသာ လူေတြကလည္းအရမ္းလြယ္တယ္လို႔ မထင္မိပါနဲ႕။ သေဘာတရားနားလည္ရင္ လြယ္ပါတယ္။ ကၽြန္ေတာ္တို႔ Windowsရဲ႕ Operation System မွာ ပါ၀င္တဲ႕ Command Propt (cmd)ကိုသံုးၿပီးျပဳျပင္သြားမွာျဖစ္ပါတယ္။Scriptေရးဖို႔ေတာ႔ထံုးစံအတိုင္းNotePadကိုပဲအသံုးျပဳၾကတာေပါ႔ဗ်ာ။
Script မေရးမွီ သိသင္႔တာေလးေတြနဲ႕ သတိျပဳသင္႔တာေလးေတြကို ပထမ စေျပာျပခ်င္ပါတယ္။
Script ေရးမယ္႔သူဟာ မိမိေရးလိုတဲ႕ Registry Setting အခ်က္အလက္ေတြကို ေကာင္းေကာင္းသိထားရပါမယ္။ အဓိက အေနနဲ႕ေတာ႔ Registry Editor ထဲမွာ သြားတဲ႕ လမ္းေၾကာင္းအဆင္႔ ဆင္႔ကိုေပါ႔။ ေနာက္တစ္ခုကေတာ႔ လမ္းေၾကာင္းတစ္ခုရဲ႕ အဆံုးမွာပါ၀င္တဲ႕ Subkey ေအာက္က Value Name, Data Type, Data ေတြကိုလည္း သိေနရပါမယ္။
အစပိုင္းမွာ အနည္းငယ္ အခက္အခဲရွိႏိုင္ေပမယ္႔ Script ကို ေကာင္းေကာင္းေရးႏိုင္သြားရင္
Manual ေတာင္ မျပင္ခ်င္ေတာ႔ပါဘူး။ Script နဲ႕ျပင္ဆင္ျခင္းဟာ ပိုမို လြယ္ကူ၊ ျမန္ဆန္ပါတယ္။
အခု Script ထဲမွာ ပါ၀င္မယ္႔ Parameter ေတြကိုေျပာျပပါ႔မယ္။ သတ္မွတ္ခ်က္ေလးေတြေပါ႔။
1. @echo off
ဒါကေတာ႔ Script ရဲ႕ အစပိုင္းမွာေရးသားရတဲ႕ စကားလံုးပါ။ ကၽြန္ေတာ္တို႔ Win+R ကိုႏွိပ္လိုက္ရင္ Run Dialogbox က်လာပါမယ္။ အဲ႕ဒီအထဲမွာ cmd လို႔ရိုက္ထည့္လိုက္ၿပီး Enter ေခါက္လိုက္ရင္ Windows
Command Prompt ေပၚလာပါတယ္။ အဲ႕ဒီ Cmd ရဲ႕ Dos Mode မွာဆိုရင္ C:\Documents and Settings\Admin စတဲ႕စာတန္းႀကီးေပၚေနပါလိမ္႔မယ္။ ကၽြန္ေတာ္တို႔ Script ေတြနဲ႕ အလုပ္လုပ္တဲ႕ အခ်ိန္မွာ အျမင္ရွင္းရွင္းေလးနဲ႕ အလုပ္လုပ္လို႔ရေအာင္ @echo off ဆိုတာကိုရိုက္ထည့္လိုက္ျခင္းျဖင္႔ အထက္က C:\Documents and Settings\Admin
စာတန္းကို ေပ်ာက္ေနေစပါတယ္။
2. echo
ဒါကေတာ႔မိမိ ေဖာ္ျပလိုတာ စာသားကို Dos Mode မွာ Output(ျမင္ရေအာင္) ျပမယ္႔ စာတန္းရဲ႕ ေရွ႕မွာသံုးပါတယ္။ ျပသလိုတဲ႕ စာတန္းကို echo ရဲ႕ ေနာက္မွာဘားတစ္ခ်က္ပုတ္ၿပီး ေရးပါတယ္။
ဥပမာ။ Sai Kyaw Swar Wai is handsome boy. ကိုေရးခ်င္တယ္ဆိုပါစို႔… ဟီဟိ
echo Sai Kyaw Swar Wai is handsome boy. ေပါ႔………..
3. echo.
echo ေနာက္မွာ ဖူးစေတာ႔(.) ပါလာရင္ေတာ႔ တစ္ေၾကာင္းျခားလိုက္တာပါ။ စာတန္းေတြ ၾကည့္လို႔ ေကာင္းေအာင္ ခ်ဲလိုက္တဲ႕ သေဘာပါပဲ။
4. :_
Full
Column & Under Score သေကၤတႏွစ္ခုပါတဲ႕ Keyword ကေတာ႔ Script တစ္ခုရဲ႕
အစိတ္အပိုင္းတစ္ခုဆိုတာကို သတ္မွတ္ေပးတာပါ။ ေခါင္းစဥ္ငယ္ေပါ႔ဗ်ာ။
5. color
color ဆိုမွေတာ႔ အေရာင္ေပါ႔ဗ်ာ……. Background Color နဲ႕ စာလံုး Color ကိုေရြးေပးတာပါ။ ဥပမာ အေနနဲ႕ 0A ဆိုရင္ ေရွ႕က 0 က ေနာက္ခံ Background, ေနာက္က A က စာလံုးအေရာင္ ကိုေျပာတာပါ။
အကယ္လို႔မ်ား 0 မပါပဲ A တစ္လံုးထဲေရးထားမယ္ဆိုရင္ေတာ႔ Background အေရာင္ဟာ Default
အေရာင္ ျဖစ္တဲ႕ အနက္ေရာင္ပဲ ျဖစ္ေနပါလိမ္႔မယ္။ အေရာင္ေတြနဲ႕ ပါတ္သက္လို႔ keyword ေတြကို သိခ်င္တယ္ဆိုရင္ cmd ထဲမွာ color/? ဆိုၿပီးရိုက္ထည့္ၿပီး ရွာၾကည့္လို႔ရႏိုင္ပါတယ္။
6. set val=
ဒါကေတာ႔
ရွင္းျပရင္နည္းနည္းပိုရႈပ္မယ္။ လုပ္ရင္းနဲ႕ေတာ႔ နားလည္သြားမွာပါ။
အၾကမး္ေျပာျပရမယ္ဆိုရင္ user က Input တစ္ခုသြင္းလိုက္တဲ႕ အခါ အဲ႕ဒီ Input ကို Val ဆိုတဲ႕ ကိန္းရွင္တစ္ခုအေနနဲ႕ သတ္မွတ္မယ္လို႔ေျပာတာပါ။ Variable အမ်ိဳးမ်ိဳးရွိတဲ႕ အနက္ String အမ်ိဳးအစားပဲျဖစ္ရမယ္လို႔ေျပာတာပါ။
ဒီေနရာမွာ set ဆိုတဲ႕ keyword က အေသျဖစ္ေပမယ္႔ val ကေတာ႔ ႀကိဳက္ရာေပးလို႔ရပါတယ္။
7. set /p val=
အထက္က နည္းတူပါပဲ။ ဒါကေတာ႔ User ကို Input တစ္ခု ရိုက္ထည့္ေပးဖို႔ ေတာင္းတာပါ။
/p ပါတဲ႕ အတြက္ သတ္မွတ္ထားတဲ႕ input မဟုတ္ရင္ program က အလုပ္မလုပ္ပါဘူး။ val ကေတာ႔ အရွင္ပါ။
8. if
ဒါကေတာ႔ ကိန္းရွင္တစ္ခုကို သတ္မွတ္ၿပီးလို႔ user က input သြင္းလိုက္တဲ႕အခါမွာ သတ္မွတ္ထားတာမွန္ရင္ ဘာလုပ္ပါ၊ သတ္မွတ္ထားတာမဟုတ္ရင္ ဘာလုပ္ပါ ဆိုတာကို if နဲ႕ေရးပါတယ္။ သိပ္မရွင္းေတာ႔ဘူးဗ်ာ…. ရွင္းေလရႈပ္ေလျဖစ္သြားလိမ္႔မယ္။ နားမလည္ေသးတဲ႕လူေတြအဖို႔ေပါ႔။ နားလည္တဲ႕သူေတြအဖို႔ေတာ႔ ေအးေဆးေပါ႔ေနာ္…….. (သူ႔ရဲ႕ေနာက္မွာ /I ပါလာရင္( if /I ) ဆိုရင္ Input က A = a , ႀကီးႀကီး၊
ေသးေသး အလုပ္လုပ္ပါတယ္၊)
9. cls
ဒါကေတာ႔ သန္႔ရွင္းေရးပါ။ Screen မွာ ရႈပ္ေနရင္ cls ကိုသံုးလိုက္၊ အကုန္ရွင္းၿပီးသားပဲ။
10. pause
ဒါကေတာ႔ တစ္ခုခုလုပ္ၿပီးလို႔ နားတဲ႕အခ်ိန္မွာ ျပသဖို႔ ေရးတဲ႕စကားလံုးပါပဲ။
ဒီစာလံုးေလးထည့္လိုက္ရင္ “Press any key to continue” ဆိုတာ ေပၚလာပါလိမ္႔မယ္။
11. goto
ဒါကေတာ႔ ဘယ္သြားမလဲ ေမာင္ေရခဲ ေပါ႔။ သြားခ်င္တဲ႕ ေခါင္းစဥ္ခြဲကို ျပေပးရပါတယ္။
ခဏက အထက္မွာေရးထားတဲ႕ “ :_ ” ေခါင္းစဥ္ခြဲကိုသြားတဲ႕လမ္းေၾကာင္းပါ။
12. call
ေကာ ဆိုမွေတာ႔ ေခၚတာေပါ႔ေနာ္။ လက္ရွိ program ကေန ခ်ိတ္ဆက္ထားတဲ႕ ေနာက္
Program တစ္ခုကို လွမ္းေခၚတာပါ။ call Hide 1.cmd ဆိုရင္ Hide 1.cmd ဆိုတဲ႕ ဖိုင္ကို run ေပးပါလိမ္႔မယ္။
13. exit
လက္ရွိ program ကေနထြက္မယ္လို႔ေျပာတာပါ။
14. reg add
ဒါေလးကေတာ႔ အေရးႀကီးပါတယ္။ အဓိက အစိတ္အပိုင္းလည္းဟုတ္ပါတယ္။ add ဆိုေတာ႔ ေပါင္းတာ၊
ထည့္တာေပါ႔ေနာ္။ reg ေတြကို ေပါင္းထည့္္ၾကတဲ႕ အခါ သံုးပါတယ္။ သူ႔မွာလည္း ဆင္႔ကဲ( လက္ခြဲ ) Parameter ေလးေတြ၊ သတ္မွတ္ခ်က္ ေလးေတြရွိပါတယ္။ အသံုးမ်ားတာက /v, /ve, /t, /d, /f တို႔ျဖစ္ပါတယ္။
/v
- ကေတာ႔ Value တစ္ခုကိုနာမည္ေပးခ်င္တဲ႕အခါ သံုးပါတယ္။ reg add ရဲ႕ေနာက္မွာ ဘားတစ္ခ်က္ပုတ္ၿပီး ေရးပါတယ္။ ေနာက္ၿပီး သူ႔ေနာက္မွာပဲ ဘားတစ္ခ်က္ပုတ္ၿပီး ထည့္ခ်င္တဲ႕ reg ရဲ႕ Value ကိုရိုက္ထည့္ပါတယ္။
/ve - ကေတာ႔ Value Name ကို User က မေပးပါ။ စက္ကေပးတဲ႕ Default ကိုပဲ သံုးပါမယ္ ဆိုတဲ႕ အခါ သံုးပါတယ္။
/t
- ကေတာ႔ Value ရဲ႕ Data Type ကို ေၾကာ္ျငာတာပါ။ Data Type (၅) မ်ိဳးထဲက ဘယ္ Data type ကို သံုးမယ္ဆိုတာကို /t ခံၿပီးေၾကာ္ျငာပါတယ္။ ဥပမာ - REG_DWORD ကို ေၾကာ္ျငာမယ္ဆိုရင္ /t reg-dword ဆိုၿပီး /t ေနာက္မွာ ဘားတစ္ခ်က္ပုတ္ၿပီး ေၾကာ္ျငာပါတယ္။ /t ဆိုတဲ႕ စာသားမပါလာဘူးဆိုရင္ေတာ႔
စက္က သူ႔ရဲ႕ Default Data Type ျဖစ္တဲ႕ REG_SZ လို႔ပဲ သတ္မွတ္သြားမွာျဖစ္ပါတယ္။
/d - ကေတာ႔ DATA ေၾကာ္ျငာတာပါ။ ထံုးစံအတိုင္း သူ႔ေနာက္မွာ ဘားတစ္ခ်က္ပုတ္ၿပီး ေရးပါတယ္။
/f
- ကေတာ႔ data တစ္ခုကိုထည့္တာပဲျဖစ္ျဖစ္၊ ဖ်က္တာပဲျဖစ္ျဖစ္ ျပဳလုပ္တဲ႕အခါ
ယခင္က သတ္မွတ္ထားတဲ႕ တန္ဖိုး တစ္ခုခုရွိေနပါလိမ္႔မယ္။ အဲ႕ဒီ တန္ဖိုးကို
ဖ်က္မလားလို႔ program က user ကို ျပန္ေမးတတ္ပါတယ္။ /f ထည့္ထားရင္ေတာ႔
မေမးနဲ႕ တန္းဖ်က္လိုက္ပါလို႔ ေျပာတာပါပဲ။
15. reg delete
ရွင္းပါတယ္။
ဖ်က္တာေပါ႔ reg ကိုဖ်က္တာပါ။ reg add မွာ တစ္ခုခု ထည့္မယ္ဆိုရင္ Value name /v, Data type /t, /d တို႔ကို မျဖစ္မေနထည့္ေပးမွ reg တန္ဖိုးထည့္လို႔ရမွာပါ။ reg delete မွာေတာ႔ /v တစ္ခု ဖ်က္တာနဲ႕ တင္
လံုေလာက္ပါတယ္။ တန္ဖိုးကို ဖ်က္မလားလို႔ မေမးေစခ်င္ရင္ေတာ႔ တစ္လက္စတည္း /f
ပါ ထည့္လိုက္။ ဒါဆိုအရွင္းပဲ………………….
ဒါေတြအားလံုးဟာ
Script ေရးမယ္႔ Parameter ေလးေတြပါပဲ။ အရမ္းမခက္သလို၊ အရမ္းလည္း
မလြယ္ကူပါဘူး။ ဒါေတြဖတ္ၿပီးရင္ေတာ႔ ဘာမွန္းလဲ သိဦးမယ္ မထင္ပါဘူး။
သံုးလိုက္မွပဲ သိမွာပါ။ တစ္ခုသတိျပဳရမွာက ဘားတစ္ႀကိမ္ပုတ္တာကအစ
တူညီရပါတယ္။ မဟုတ္ရင္ Script က အလုပ္မလုပ္ပါဘူး။
ကၽြန္ေတာ္တို႔
Script (Program) တစ္ခု မစ ခင္မွာ Program တစ္ခုနဲဲ႕ ပါတ္သတ္လို႔
အနည္းငယ္ေျပာျပခ်င္ပါတယ္။ Program တစ္ခုမွာ Input , Process , Output
ဆိုၿပီးသံုးမ်ိဳးရွိပါတယ္။
Input = User က ထည့္ေပးရတာ
Process = ကြန္ပ်ဴတာက လုပ္ေဆာင္ေပးတာ
Output = လုပ္ေဆာင္ခ်က္ေတြကို ျပသေပးတာ
ဒီသံုးမ်ိဳးကို အလ်ဥ္းသင္႔ေအာင္ စဥ္းစားေပးရပါတယ္။ စၿပီးမေရးခင္ကတည္းကေပါ႔။
အလုပ္လုပ္သြားတဲ႕ နည္းလမ္းေတြကေတာ႔ ဒီသံုးမ်ိဳးကို ပတ္လည္ရိုက္တာပါပဲ။ R တာေပါ႔ဗ်ာ…..
Input ------------à Process -------------à Output
ဒီသေဘာကေတာ႔ ရွင္းပါတယ္။ ေရးတယ္- လုပ္တယ္ - ျဖစ္သြားတယ္။
Output-----------à Input----------à Process------------à Output
ဒါကေတာ႔
ျဖစ္ႏိုင္တာေတြ ခ်ျပမယ္။ User ကို ေရြးခ်ယ္ခြင္႔ေပးမယ္။ User ကေရြးခ်ယ္လိုက္တဲ႕ (Input) ကို ကြန္ပ်ဴတာက အလုပ္လုပ္တယ္။ ျပင္ဆင္တဲ႕ အတိုင္းျဖစ္သြားတယ္။
ဒီေတာ႔
ကိုယ္ေရးမယ္႔ Script က ဘယ္လိုလမ္းေၾကာင္းက သြားမလဲ၊ မေမးမျမန္းေတာ႔ပဲ
ထည့္စရာရွိတာေတြထည့္၊ ဖ်က္စရာရွိတာေတြ ဖ်က္မွာလား။ စသည္ျဖင္႔ကို Script
မေရးခင္ အႀကမ္းေရးဆြဲထားသင္႔ပါတယ္။ Psuedo Code & Flow Chart ေတြေတာ႔
မဆြဲပါနဲ႕။ ဒါေတြပါဆြဲခ်င္တယ္ဆိုရင္ေတာ႔ ဒီမွာ ၀င္ဖတ္လိုက္ပါ။ (အဟိ ေၾကာ္ျငာ ၀င္လိုက္တာ )။
ကဲ စၿပီး လက္တည့္စမ္းလိုက္ရေအာင္ဗ်ာ………….
ပထမဦးဆံုးအေနနဲ႕ Run Command ကိုေဖ်ာက္ၾကည့္မယ္။ တစ္ခါတည္းမေျပာမဆို မေဖ်ာက္ဘူးဗ်ာ။
အရင္ေမးၾကည့္ၿပီးမွ ေဖ်ာက္တာေပါ႔။ ေအာက္က စာသားေတြကို Note Pad ထဲကို ကူးထည့္လိုက္ပါ။
@echo off
color 0a
:-main
echo.
echo.
set /p val= Do you want to hide Run Dialogbox(y/n)?
if /I "%val%"=="y" goto -Hide
if /I "%val%"=="n" goto -Quit
goto:-main
:-Hide
echo.
echo.
reg add hkcu\software\microsoft\windows\currentversion\pol icies\explorer /v NoRun /t reg_dword /d 1
echo.
echo.
pause
exit
:-Quit
exit
ဒါေလးကိုကူးၿပီး
notepad ထဲထည့္၊ ေနာက္ၿပီး ႀကိဳက္တဲ႕နာမည္ေပးၿပီး .cmd နဲ႕သိမ္းလိုက္။
ဥပမာ norun.cmd ေပါ႔။ သိမ္းလိုက္တဲ႕ ဖိုင္ေလးကို ၾကည့္လိုက္ရင္
စက္သြားပံုေလးနဲ႕ ေပၚေနလိမ္႔မယ္။ ဒါေလးကိုႏွစ္ခ်က္ ႏွိပ္လိုက္ရင္
Do you want to hide Run Dialogbox(y/n)?
ဆိုတာေလးေပၚလာလိမ္႔မယ္။
အနက္ေရာင္ေနာက္ခံေပၚမွာ အစိမ္းေရာင္ စာတန္းနဲ႕။ Run ကို ပိတ္ခ်င္တယ္ ဆိုရင္ y လို႔ရိုက္လုိက္ၿပီး Enter ေခါက္လုိ္က္ပါ။ ဒါဆိုရင္ေတာ႔
The operation completed successfully Press any key to continue…
ဆိုတာေပၚလာၿပီး ကီး တစ္ခုခုကို ႏွိပ္လုိက္တာနဲ႕ cmd လဲ အလို အေလွ်ာက္ပိတ္သြားပါလိမ္႔မယ္။
n ႏွိပ္ၿပီး Enter ေခါက္လိုက္မယ္ဆိုရင္ေတာ႔ တစ္ခါတည္း cmd ပိတ္သြားမွာျဖစ္ပါတယ္။
y , n မဟုတ္တဲ႕ တျခားစာလံုး တစ္ခုခုကိုရိုက္ထည့္မယ္ဆိုရင္ေတာ႔ အဲ႕ဒီ စာသားသာ ထပ္ တလဲလဲ ေပၚေနမွာျဖစ္ပါတယ္။
(ဆက္လက္ေဖာ္ျပပါအံုးမည္)
မူရင္း-MZEducation မွ ကူးယူေဖာ္ျပသည္။
0 comments:
Post a Comment