Kezdőoldal » Számítástechnika » Programozás » Hogyan lehet ezt megoldani?...

Hogyan lehet ezt megoldani? (Lényeg lent)

Figyelt kérdés

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 .



2017. máj. 26. 21:11
1 2
 1/11 anonim ***** válasza:

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.

2017. máj. 26. 21:14
Hasznos számodra ez a válasz?
 2/11 A kérdező kommentje:

Értem.

Csak a megvalósításban is kellene segítség , hogy hogyan lehet a kiválasztott programokat és csak azokat telepíteni ?

2017. máj. 26. 21:38
 3/11 anonim ***** válasza:
100%
Úgy lehetne ezt megoldani, hogy miután kiválasztottad a telepítendő programokat, az appod nézzen bele a jelenleg futó folyamatokba. Nézze azt, hogy ha véget ér az egyik telepítő folyamata, akkor utána indítsa el a másikat.
2017. máj. 26. 21:39
Hasznos számodra ez a válasz?
 4/11 A kérdező kommentje:

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 .

2017. máj. 26. 21:51
 5/11 anonim ***** válasza:
100%

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.

2017. máj. 26. 21:51
Hasznos számodra ez a válasz?
 6/11 A kérdező kommentje:

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 . ☺

2017. máj. 26. 21:55
 7/11 anonim ***** válasza:

#5 válaszoló vagyok.


Elrontottam a kódot. Pillanat, most írom VS-ben a jót. Bocsi!

2017. máj. 26. 22:06
Hasznos számodra ez a válasz?
 8/11 A kérdező kommentje:
Semmi baj , úgy is csak holnap leszek otthon hogy tudjak valamit vele kezdeni .
2017. máj. 26. 22:20
 9/11 anonim ***** válasza:

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.

2017. máj. 27. 00:12
Hasznos számodra ez a válasz?
 10/11 A kérdező kommentje:

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.

2017. máj. 27. 07:36
1 2

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!