• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

ptrci

A tentar criar minha primeira aplicação windows

4 mensagens neste tópico

Estou a tentar fazer a minha primeira aplicação windows em C#.

Estou a construir o meu próprio Service pack para windows xp e vista.

Estou a tentar criar uma barra de progresso. Para mostrar o progresso de instalação das actualizações e outros.

Ou seja a aplicação vai correr esta listagem em comandos de sistema:

894391.exe /quiet /norestart
896358.exe /quiet /norestart
896422.exe /quiet /norestart
896423.exe /quiet /norestart
896424.exe /quiet /norestart
896428.exe /quiet /norestart
898461.exe /quiet /norestart
899587.exe /quiet /norestart
899588.exe /quiet /norestart
899591.exe /quiet /norestart
900725.exe /quiet /norestart

Nota: a listagem não esta completa.

Eu queira que a barra de progressos começa em zero no primeiro comando e acabasse no ultimo comando.

Estou a usar o:  Microsoft Visual C# 2005 Express Edition

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pegas no valor 100, divides pelo numero de comandos e vais incrementado esse valor na progress bar no fim de cada comando...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tenho uma duvida, já estive a procura na net, mas não obtive resposta.

No StartInfo, é possível o WorkingDirectory não ter o caminho completo para o ficheiro a ser executado.

O esquema é este

Aplicação a correr

|

| - Windows_Vista

|      |

|      | -- Ficheiros a executar

Queria chegar aos ficheiros a executar. queira isto porque vou correr a aplicação no dvd e a unidade de dvd muda de computador a computador.

Esta aqui o código que estou a usar para executar processos:

               #region processos de Intalação SP1
                System.Diagnostics.Process proc = new System.Diagnostics.Process();

                {
                    try
                    {
                        KB_text.Text = "Windows6.0_KB938194_x86";
                        Ficheiro_text.Text = "938194_x86.msu";
                        info_text.Text = "This update resolves a number of individual issues which may be affecting some computers running Windows Vista. These issues have been reported by customers using the Error Reporting service, product support, or other means. Installing this update will improve the reliability and hardware compatibility of Windows Vista in a variety of scenarios.";
                        Data_text.Text = "2007-07-29";
                        System.Threading.Thread.Sleep(5000);
                        proc.EnableRaisingEvents = false;
                        proc.StartInfo.UseShellExecute = false;
                        proc.StartInfo.RedirectStandardOutput = true;
                        proc.StartInfo.CreateNoWindow = false;
                        proc.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; //Esconde a Janela
                        proc.StartInfo.WorkingDirectory = "\\\\windows_vista\\";
                        proc.StartInfo.FileName = "938194_x86.msu";
                        proc.StartInfo.Arguments = "/quiet /norestart";
                        proc.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Minimized;
                        proc.Start();            //Inicia o processo
                        proc.WaitForExit();      //Aguarda até acabar o processo
                        proc.Close();            //fecha o processo
                        progressBar1.Value += 1; //Barra de Progressos
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Erro na actualização deste ficheiro: " + ex);
                        MessageBox.Show("Não cancele a actualização. A instalação vai continuar");
                    }
                }

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Como tens a directoria windows_vista na mesma pasta do programa, o caminho correcto é windows_vista\ e não \\windows_vista\

Com \\windows_vista\ o que ias fazer era procurar por um computador na rede chamado windows_vista em vez de uma directoria dentro da directoria actual

proc.StartInfo.WorkingDirectory = @"windows_vista\"; // Se usares uma @ antes de uma string, a string é interpretada literalmente, sem caracteres de escape

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora