Hogyan lehet ezt megoldani? (Lényeg lent)
Szóval Visual Studio (C#) alatt szeretnék egy olyan programot (Windows Form App.-ot) készíteni ahol Checkboxok által kiválasztott programokat (programok telepítőjét) nyitja meg es azokat sorrendben telepiti .
A lenyeg hogy ha ujra teszem a gepem akkor mindent fel kell telepiteni egyesevel (VLC , WinRAR es egyeb programokat)
Es mivel azon a gepen nincs internet igy letolteni se tudom a dolgokat , meg amugy is szeretnem tanulni a C#-ot szoval minden felekepp meg szeretnem,csinalni ezt a programot.
Remelem ertehto , ha nem akkor kerdezzetek .
Megoldás valahogy így néz majd ki: készítesz egy programot ami feltelepíti ezeket majd a programhoz csinálsz egy telepítőt amihez hozzácsatolod a többi program telepítőjét.
és ilyen lesz: feltelepíted a programodat majd lefuttatva a többi telepítőt is elinditja.
Értem.
Csak a megvalósításban is kellene segítség , hogy hogyan lehet a kiválasztott programokat és csak azokat telepíteni ?
Hmm
Tetszik hogy igy rá akartok vezetni a dolgokra , csak magával a C#-val nem vagyok ennyire jóba hogy ilyeneket meg tudnék csinálni .
Checkboxal még igy nem dolgoztam (hogy ilyen folyamatok vigyen végbe , sorrendel együtt)
Nem azt kérem hogy írjátok meg nekem , hanem csak a kulcs kódokat , hogy utánna tudjak olvasni ezeknek .
Berakod a programodba a Checkboxokat ugye, meg egy gombot. Miután a gombra rákattintasz, olyasmit kellene csinálnia, hogy:
Process folyamat = new Process();
if (checkbox.IsChecked == true)
{
folyamat.Start("telepitodneve.exe")
}
Ha ki is szeretné várni az appod, mire befejeződik a folyamat, akkor használd a folyamat.WaitForExit();-et.
Ahha
Tiszta angol az egész :)
Nem gondoltam volna hogy ennyire egyszerű
Köszönöm szépen a segítséget , ment a zöld kéz . ☺
#5 válaszoló vagyok.
Elrontottam a kódot. Pillanat, most írom VS-ben a jót. Bocsi!
Szóval, itt vagyok.
Ez egy elég érdekes kód, amit én itt összedobtam, de ellátja valamennyire a funkcióját.
Csináltam minden folyamatnak 1 függvényt:
public void process1() //itt létrehozom a függvényt
{
if (checkBox1.Checked == true) //itt egy feltételbe beleteszem a folyamat indítását: ha a checkbox1 nevű elem ki van pipálva, akkor teljesül az if kapcsos zárójelei között lévő parancs
{
Process p = Process.Start("explorer.exe"); //létrehozok egy folyamatot, és elindítom példaképpen a fájlkezelőt. Ezt természetesen behelyettesítheted, amivel akarod. Csak arra figyelj, hogy ha útvonalat adsz meg, akkor az már pl. @"mappa\explorer.exe". Egyébiránt ha az appoddal egy mappában lévő fájlt nyitsz meg, akkor elég a sima "".
p.WaitForExit(); //itt kivárja az app, amíg be nem fejeződik a megnyitás
p.EnableRaisingEvents = true; //itt engedélyezet az eseményeket, ami ez alatt van pl
p.Exited += P_Exited; //ez az event akkor teljesül, ha kilépett a folyamat
}
}
public void process2()
{
if (checkBox2.Checked == true)
{
Process p1 = Process.Start("explorer.exe");
p1.WaitForExit();
p1.EnableRaisingEvents = true;
p1.Exited += P1_Exited;
}
}
public void process3()
{
if (checkBox3.Checked == true)
{
Process p2 = Process.Start("explorer.exe");
p2.WaitForExit();
p2.EnableRaisingEvents = true;
p2.Exited += P2_Exited;
}
}
Így fog teljesülni az első függvényben lévő Exited event:
private void P_Exited(object sender, EventArgs e)
{
DialogResult res = MessageBox.Show("Szeretnéd elkezdeni a második telepítést?", "Kérdés", MessageBoxButtons.YesNo); //itt létrehozok egy párbeszédablak eredményt (ez arra reagál, hogy milyen gombot nyomtál meg a párbeszédablakban)
if (res == DialogResult.Yes) //ha a párbeszédablak eredménye egyenlő az igen gombbal, tehát ha rányomsz az igenre, akkor teljesül a kettes folyamat függvénye
{
process2();
}
}
És így tovább. Ha valami rosszul mondtam, a többiek majd kijavítanak.
Nagyon sokat segítettél (miattam nem kellett volna éjfélig ezzel bajlódnod , rá ért volna) , mégegyszer nagyon szépen köszönöm 😃.
Ment a zöld kéz.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!