Windows Registry အပိုင်း (၄)

Chapter(3)

Windows Registry ကို Script များရေးပြီး ပြုပြင်ခြင်း

ဒီအခန်းမှာ ကျွန်တော်တို့ Windows Registry ကို Script ရေးပြီးပြုပြင်ကြရအောင်…..
Script
ရေးမယ်ဆိုပြီး အရမ်းလည်း လန့်မသွားပါနဲ့၊ နားလည်ပြီးသာ လူတွေကလည်း
အရမ်းလွယ်တယ်လို့ မထင်မိပါနဲ့။ သဘောတရားနားလည်ရင် လွယ်ပါတယ်။

ကျွန်တော်တို့ Windows
ရဲ့ Operation System မှာ ပါ၀င်တဲ့ Command Propt (cmd) ကို သုံးပြီး
ပြုပြင် သွားမှာဖြစ်ပါတယ်။ Script ရေးဖို့တော့ ထုံးစံအတိုင်း Note Pad
ကိုပဲ အသုံးပြုကြတာပေါ့ဗျာ။


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 မဟုတ်တဲ့ တခြားစာလုံး တစ်ခုခုကိုရိုက်ထည့်မယ်ဆိုရင်တော့ အဲ့ဒီ စာသားသာ ထပ် တလဲလဲ ပေါ်နေမှာဖြစ်ပါတယ်။

Leave a Reply

Your email address will not be published. Required fields are marked *