ptrci 0 Posted August 3, 2007 Report Share Posted August 3, 2007 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 Link to post Share on other sites
Guest id194 Posted August 3, 2007 Report Share Posted August 3, 2007 Pegas no valor 100, divides pelo numero de comandos e vais incrementado esse valor na progress bar no fim de cada comando... Link to post Share on other sites
ptrci 0 Posted August 7, 2007 Author Report Share Posted August 7, 2007 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"); } } Link to post Share on other sites
Saco 0 Posted August 9, 2007 Report Share Posted August 9, 2007 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 Link to post Share on other sites
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now