IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Matyáš Černohous:15.4.2013 17:35

Zdravím, chtěl bych se zeptat jak udělat progressBar abych viděl jak postupuje stahování. Kód na stahování je zde:

rivate void button1_Click(object sender, EventArgs e)
        {
            WebClient client = new WebClient();

            string filename = "C:\\Program Files\\cesta\\xxxx.exe";

            try
            {
                client.DownloadFile(textBox1.Text, filename);
            }
            catch (WebException ex)
            {
                MessageBox.Show(ex.ToString(), "chyba", MessageBoxButtons.OK);
            }


        }

ale nevím jak udělat aby se progressBar.value updatoval podle % stažení.
díky

Editováno 15.4.2013 17:36
 
Odpovědět
15.4.2013 17:35
Avatar
Odpovídá na Matyáš Černohous
Luboš Běhounek Satik:15.4.2013 17:45

Event DownloadProgres­sChanged u webclienta.

http://msdn.microsoft.com/…=vs.90).aspx

Editováno 15.4.2013 17:46
Nahoru Odpovědět
15.4.2013 17:45
https://www.facebook.com/peasantsandcastles/
Avatar
Odpovídá na Luboš Běhounek Satik
Matyáš Černohous:15.4.2013 22:17

Ještě bych měl jednu otázku, zjistil jsem si pomocí

string cesta=System.Reflection.Assembly.GetExecutingAssembly().Location;

aktuální pozici souboru, ale když to zadám do

client.DownloadFileAsync(new Uri("http://neco.cz/app.exe"), cesta);

tak se to nezačne stahovat. (Potřebuji ho nahradit novějším)

Editováno 15.4.2013 22:18
 
Nahoru Odpovědět
15.4.2013 22:17
Avatar
Odpovídá na Matyáš Černohous
Luboš Běhounek Satik:15.4.2013 22:22

Nemůžeš přehrát právě spuštěný soubor jiným. Většinou se to řeší tak, že je malá aplikace nebo skript, který to udělá za tebe.

Nahoru Odpovědět
15.4.2013 22:22
https://www.facebook.com/peasantsandcastles/
Avatar
Odpovídá na Luboš Běhounek Satik
Matyáš Černohous:15.4.2013 22:33

To vím, ale je zajímaví že když zadám

string cesta = "cesta k souboru\\nazevprogramu.exe"

a pak použiju

client.DownloadFileAsync(new Uri("http://neco.cz/app.exe"), cesta);

tak to funguje

 
Nahoru Odpovědět
15.4.2013 22:33
Avatar
Odpovídá na Luboš Běhounek Satik
Matyáš Černohous:15.4.2013 22:52

Jinak, kdybych po kliknutí na Aktualizovat zavřel tu hlavní app a otevřel "aktualizátor" který by to stáhnul a po dokončení stahování otevřel tu původní, aktualizovanou app, to by šlo ? A mohl bych nějak zjistit v "aktualizátoru" místo uložení hlavní app ?

 
Nahoru Odpovědět
15.4.2013 22:52
Avatar
Odpovídá na Matyáš Černohous
Luboš Běhounek Satik:16.4.2013 0:08

Jj, obojí je možné :)

Nahoru Odpovědět
16.4.2013 0:08
https://www.facebook.com/peasantsandcastles/
Avatar
Odpovídá na Luboš Běhounek Satik
Matyáš Černohous:16.4.2013 11:02

A nevíš jak se dá zjistit v běžícím programu, místo uložení vypnutého programu.

 
Nahoru Odpovědět
16.4.2013 11:02
Avatar
Odpovídá na Matyáš Černohous
Luboš Běhounek Satik:16.4.2013 13:18

Musíš si ho nějak předat (nebo prohledat všechny disky, ale to je prasárna a nemáš jistotu, jestli jsi našel tu verzi, kterou hledáš, když by to měl uživatel v PC vícekrát.

Lepší je to umístění programu mít uložené v registrech nebo si to umístění předat při spouštění aktualizační aplikace - třeba přes spouštěcí argumenty.

Nahoru Odpovědět
16.4.2013 13:18
https://www.facebook.com/peasantsandcastles/
Avatar
Odpovídá na Luboš Běhounek Satik
Matyáš Černohous:16.4.2013 16:41

Mě napadlo uložit si tu cestu do texťáku a pokaždým spuštění ji přepisovat, a uložení programu byych udělal tak, že bych načetl date z txt a pak bych to stáhnul tam, ale nevím jestli to bude fungovat :D

Editováno 16.4.2013 16:41
 
Nahoru Odpovědět
16.4.2013 16:41
Avatar
Odpovídá na Matyáš Černohous
Luboš Běhounek Satik:16.4.2013 16:56

Předej si to přes ty argumenty - když hlavní aplikace spouští tu updatovací, tak jí to předej v parametrech a pak v tý updatovací to v main() funkci je to pole strngů args .

Nahoru Odpovědět
16.4.2013 16:56
https://www.facebook.com/peasantsandcastles/
Avatar
Odpovídá na Luboš Běhounek Satik
Matyáš Černohous:16.4.2013 17:03

S tímhle jsem ještě nedělal, jka bych to měl udělat ?

 
Nahoru Odpovědět
16.4.2013 17:03
Avatar
Odpovídá na Matyáš Černohous
Luboš Běhounek Satik:16.4.2013 18:01

Kdyz spoustis ten updatovaci program, tak mu muzes predat parametry

  • pokud to spoustis treba pres Process, tak
Process.Start("app.exe", "parametr - v tvem pripade cesta k updatovanemu souboru");

a tom updateru pak jen prectes ty stringy v metode main(String[] args) v args.

Nahoru Odpovědět
16.4.2013 18:01
https://www.facebook.com/peasantsandcastles/
Avatar
Odpovídá na Luboš Běhounek Satik
Matyáš Černohous:16.4.2013 18:17

Nevím jestli to dělám správně, ale nechce to fungovat.
V hlavní app je tohle :

      string filename = System.Reflection.Assembly.GetExecutingAssembly().Location;

private void button1_Click(object sender, EventArgs e)
       {
           Process.Start("C:\\Program Files\\Updater.exe", filename);
       }

a v updateru:

public Form1(String[] args)
       {
           InitializeComponent();
           string text = args.ToString();
       }
Editováno 16.4.2013 18:17
 
Nahoru Odpovědět
16.4.2013 18:17
Avatar
Odpovídá na Matyáš Černohous
Luboš Běhounek Satik:16.4.2013 18:24

Kod vypada dobre, nechce to fungovat?

Tak to uz vim, co tomu je.
Je to rozbity.

EDIT: jo, uz to asi vidim, ta funkce main je v program.cs, uz tam si musis vythanout v tom updateru to jmeno souboru.

Editováno 16.4.2013 18:25
Nahoru Odpovědět
16.4.2013 18:24
https://www.facebook.com/peasantsandcastles/
Avatar
Odpovídá na Luboš Běhounek Satik
Matyáš Černohous:16.4.2013 18:46

Díky moc, funguje to :)

 
Nahoru Odpovědět
16.4.2013 18:46
Avatar
Odpovídá na Luboš Běhounek Satik
Matyáš Černohous:16.4.2013 23:04

Snad už poslední otázka. První app spouštím s právy administrátora, ale pokud updater stahuje do program Files potřebuje taky administrátora, ale nevím jak to nastavit ( třeba aby před spuštěním updateru vyskočilo okno s volbou jestli to chce spustit jako admin, nebo ne)

 
Nahoru Odpovědět
16.4.2013 23:04
Avatar
Nahoru Odpovědět
16.4.2013 23:58
https://www.facebook.com/peasantsandcastles/
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 21 zpráv z 21.