To do a dialog with a ProgressBar
do the following:
Start a class with the name you want, for example:
public class ProgressoDeInstalacao : System.Windows.Forms.Form
{ /* ... */ }
Declare this variable with all the files you want to install:
string[] ArquivosParaInstalar = [@"\bin32\dedicated.exe", @"\bin32\sdk.exe", @"\etc\lib.def", @"\etc\resume32.def"];
Put this in the constructor method:
public ProgressoDeInstalacao()
{
//até ai OK, crie uma variável com o total de itens:
Int32 TotalDeItens = ArquivosParaInstalar.Count();
//Suponha que você tem sua ProgressBar dentro dum diálogo, vamos chamar-la de "Processo"
Processo.MaxValue = TotalDeItens; //altera o total de itens
Processo.Value = 0; //reseta o valor dela
this.Update(); //atualiza
}
Now let's create a method called InstallFile
where you will install the file:
void InstallFile(string Arquivo)
{
System.IO.File.Copy(Arquivo, @"C:\Arquivos de programas\<nome do seu app>\" + IO.Path.GetFilenameWithoutExtension(Arquivo) + IO.Path.GetExtension(Arquivo));
/* Explicação:
@"C:\Arquivos de programas\<nome do seu app>\" = é onde seus arquivos serão copiados
IO.Path.GetFilenameWithoutExtension(Arquivo) = é o nome do seu arquivo sem sua extensão e caminho
IO.Path.GetExtension(Arquivo) = extensão do arquivo
*/
}
Now the worker:
public void Trabalhar()
{
foreach (string arquivo in ArquivosParaInstalar)
{
Processo.Value += 1; //Aumenta o processo para 1 arquivo.
Processo.Update(); //Opcional. É recomendado por isso para atualizar o ProgressBar.
try {
InstallFile(arquivo); //copia o arquivo para a pasta
} catch ex {
System.Console.WriteLine(@"Erro: {0}", ex.Message) //Ocorreu um erro, no console vai mostrar por que.
}
}
}
Now when you install the application, call with this simple line:
ProgressoDeInstalacao dialogo = new ProgressoDeInstalacao()
dialogo.Trabalhar(); //irá começar o trabalho
Hugs, if it does not help, comments in the post.