
A mellékelt példa lefordítása után a GenerateFolder.reg állományban javítsa ki az ott található elérési útvonalat arra, ahová a GenerateFolder.exe került az Ön gépén, majd adja hozzá a registry-hez a GenerateFolder.reg tartalmát. Ettől kezdve, ha egy mappán jobb gombbal kattint, akkor megjelenik a Generate folder menüpont is a többi között, mellyel elindíthatja Generate.exe alkalmazást.
Kezdjük azzal, hogy miként rendelhető új menüpont az Intéző gyorsmenüjéhez akkor, amikor a felhasználó egy-egy mappára kattint jobb gombbal. Ehhez a Windows regisztrációs adatbázisától kell segítséget kérnünk. A HKEY_CLASSES_ROOT főkulcs alatt találunk egy Folder nevű bejegyzést. Itt a Shell alkulcsnál adhatunk meg újabb menüpontokat, egyszerűen csak hozzunk létre egy új bejegyzést egyedi névvel:
[HKEY_CLASSES_ROOT\Folder\shell\GenerateFolder]
@="Generate folder..."
Ezen bejegyzésen belül kell egy Command nevű kulcsot kell létrehoznunk, melynél meg tudjuk adni, hogy melyik alkalmazás legyen elindítva a menüpont kiválasztásakor. A megadott program elérési útja és neve után a %L jelölés helyére automatikusan annak a mappának az elérési útja kerül, melyen a felhasználó jobb gombbal kattintott. Így a program indulásakor paraméterként kapja meg annak a mappának a nevét, melyben létre kell hoznia az új könyvtárakat.
[HKEY_CLASSES_ROOT\Folder\shell\GenerateFolder\Command]
@="F:\\So\\Cso\\0223\\GenerateFolder\\GenerateFolder.exe %L"
Ezt a paramétert rögtön fel is dolgozzuk a program indulásakor és az értékét megjelenítjük a label1 felirataként.
label1.Text=Environment.CommandLine. Split(' ')[1]+@"\";
A két további szükséges adat - a mappa név és a darab szám - megadása után a button1-re történő kattintással indítható el a létrehozás folyamata.
private void button1_Click(object sender, System.EventArgs e)
{
if (label1.Text!="")
{
string path;
Ez a folyamat egy cikluson belül folyik, mely annyiszor fut, ahány mappát létre szeretnénk hozni. A létrehozásban a Directory osztály CreateDirectory függvénye segít bennünket.
for (int i=1; i<=Convert.ToInt32(textBox2.Text); i++)
{
path=label1.Text+textBox1.Text+i.ToString("00");
Directory.CreateDirectory(path);
}
}
Close();
}