public static string Var(string chave)
 {
     chave = chave.ToLower();
     string retorno = "FALHA AO OBTER CONFIGURAÇÃO SOLICITADA";
     string[] lines = File.ReadAllLines(vars.Path + @"\config\config.txt");
     if (File.Exists(vars.Path + @"\config\config.txt"))
     {
         try
         {
             foreach (string line in lines)
             {
                 if (!line.Contains("--"))
                 {
                     string key, value;
                     string[] linha = line.Split('=');
                     key = linha[0].ToLower();
                     value = linha[1];
                     if (key == chave)
                     {
                         retorno = value;
                         break;
                     }
                 }
             }
         }
         catch (Exception ex)
         {
             alerta a = new alerta(
                 "Falha ao obter configurações",
                 "Não foi possivel obter configurações, verifique o log abaixo",
                 ex.Message);
         }
     }
     else
     {
         MessageBox.Show("Não foi possivel localizar o arquivo de configurações, por favor verifique!");
     }
     return retorno;
 }
        public static bool Var(string chave, string valor)
        {
            Cursor.Current = Cursors.WaitCursor;
            chave = chave.ToLower();
            valor = valor.ToLower();
            List<String> newFile = new List<string>();

            string[] file = File.ReadAllLines(vars.Path + @"\config\config.txt");

            foreach (string line in file)
            {
                if (!line.Contains("--"))
                {
                    string key, value;
                    string[] linha = line.Split('=');
                    key = linha[0].ToLower(); ;
                    value = linha[1].ToLower(); ;
                    if (key == chave)
                    {
                        value = valor;
                    }
                    newFile.Add(key + "=" + value);
                }
            }
            try
            {
                File.WriteAllLines(vars.Path + @"\config\config.txt", newFile.ToArray());
                Cursor.Current = Cursors.Default;
                return true;
            }
            catch (Exception ex)
            {
                alerta a = new alerta("Erro ao salvar arquivo de configuração", "", ex.Message);
                Cursor.Current = Cursors.Default;
                return false;
            }
        }
        public void listaBancos()
        {
            string servidor, usuario, senha;
            servidor = txtBDEnd.Text;
            usuario = txtBDUser.Text;
            senha = txtBDPass.Text;

            if (servidor != "" && usuario != "" && senha != "")
            {
                Cursor.Current = Cursors.WaitCursor;
                /* Limpamos a lista de seleção */

                cbBDBanco.Items.Clear();

                List<string> bancos = new List<string>();

                /* Lemos os bancos */
                try
                {
                    SqlConnection conn = new SqlConnection("Data Source=" + servidor + ";"
                        /*+ "Initial Catalog=master;*/+ "User Id=" + usuario + ";Password="******";" /*Pooling=false"*/);

                    var cmd = conn.CreateCommand();

                    conn.Open();
                    cmd.CommandText = /*"use master;*/ "SELECT name FROM sysdatabases;";
                    var result = cmd.ExecuteReader();

                    while (result.Read())
                    {
                        bancos.Add(result["name"].ToString());
                    }

                    /* Adicionamos na lista de seleção */

                    foreach (string banco in bancos)
                    {
                        cbBDBanco.Items.Add(banco);
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Falha ao carregar lista do banco de dados, por favor, tente novamente. \n" + ex.Message);
                }
                Cursor.Current = Cursors.Default;
            }
            else
            {
                alerta a = new alerta(
                    "Preencha todos os campos",
                    "Falha ao carregar banco de dados, por favor, preencha todos os campos."
                    );

            }
        }
        public void logar()
        {
            string user, pass;
            user = txtUsuario.Text;
            pass = txtSenha.Text;

            if (user != "" && pass != "")
            {
                Cursor.Current = Cursors.WaitCursor;
                string servidor, usuario, senha, banco, sistema, select;
                servidor = config.Var("servidor");
                usuario = config.Var("usuario");
                senha = config.Var("senha");
                banco = config.Var("banco");
                sistema = config.Var("sistema");
                select = "";

                SqlConnection conn = new SqlConnection("Data Source=" + servidor + ";"
                    + "Initial Catalog=" + banco + "; User Id=" + usuario + ";Password="******";");

                var cmd = conn.CreateCommand();
                try
                {
                    conn.Open();

                    if (sistema == "order")
                    {
                        select = "select codigo, nome, Privilegiado, Nome_Completo from usuarios where nome like '%"
                            + user + "%' and senha = '" + fn.MD5(senha) + "'";
                    }
                    else
                    {
                        select = "select codigo, nome, dir1 from recep where nome like '%"
                            + user + "%' and senha = '" + senha + "'";
                    }
                    cmd.CommandText = select;
                    var result = cmd.ExecuteReader();
                    /* Verificamos se há registro(ou seja, se os dados são válidos)*/
                    if (result.HasRows)
                    {
                        while (result.Read())
                        {

                            /* Verificamos os direitos */
                            /*ORDER*/
                            if (sistema == "order")
                            {
                                if (result["Privilegiado"].ToString() == "-1")
                                {
                                    vars.Auth = true;
                                    vars.User = result["nome_completo"].ToString();
                                    this.Close();
                                }
                                else
                                {
                                    erro_login();
                                }
                            }
                            else
                            {
                                if (result["dir1"].ToString() == "1")
                                {
                                    vars.Auth = true;
                                    vars.User = result["nome"].ToString();
                                    this.Close();
                                }
                                else
                                {
                                    erro_login();
                                }
                            }
                        }
                    }
                    else
                    {
                        erro_login();
                    }
                }
                catch (Exception ex)
                {
                    alerta a = new alerta(
                        "Não foi possivel conectar a base de dados",
                        @"Não foi possivel conectar a base de dados usando as configurações fornecidas.
                        Por favor, verifique-as em config\config.txt." + Environment.NewLine + "Informações adicionais:",
                        ex.Message
                        );
                }
            }
            else
            {
                MessageBox.Show(
                    "Por favor, digite seu usuário e senha",
                    "Falha na autenticação",
                    MessageBoxButtons.OK,
                    MessageBoxIcon.Warning
                    );
            }
        }
 public bool online(string endereco, string nome = "")
 {
     bool line;
     Ping p = new Ping();
     PingReply pr;
     try
     {
         pr = p.Send(endereco);
         if (pr.Status == IPStatus.Success)
         {
             line = true;
         }
         else
         {
             line = false;
         }
     }
     catch (Exception e)
     {
         line = false;
         log("Exception encontrada: " + e.Message);
         alerta a = new alerta(
             "Falha ao verificar maquina",
             "Máquina " + nome + "em " + endereco + " está offline",
             e.Message
             );
     }
     return line;
 }
        public void addPC(string nome, string endereco, bool batch = false, bool forceoff = false)
        {
            Cursor.Current = Cursors.WaitCursor;
            /* Obtem os dados */
            string status = "Aguardando";
            bool isOn = false,
                sistema = false,
                backup = false;
            /* Verificamos se existe valor para ser adicionado */
            if (nome != "" && endereco != "")
            {
                /* informativo apenas para sabermos se este veio pela lista de execução
                 * automatica, ou se está sendo adicionado por meio do formulário*/
                if (batch) { log("ADICIONANDO" + nome + ", " + endereco + " PELA LISTA SALVA"); }

                string tempendereco = endereco.Replace("\\", "");
                /* Testamos se o pc está disponível na rede...*/
                if (!forceoff || batch)
                {
                    isOn = online(tempendereco);
                }
                if (!isOn && !batch && !forceoff)
                {
                    /* Estamos tentando adicionar uma maquina Offline,
                     * questionamos se realmente será para atualizar*/

                    DialogResult d = MessageBox.Show("Deseja adicionar maquina offline?", "Maquina Offline", MessageBoxButtons.YesNo);
                    if (d == DialogResult.Yes)
                    {
                        addPC(nome, endereco, false, true);
                    }
                }
                if (isOn || forceoff || batch)
                {
                    /* Adiciona na lista */
                    ListViewItem pc = new ListViewItem();
                    /* Checked, Nome, Endereço, Online, Sistema, Backup, Status */
                    if (sistema)
                    {
                        pc.Checked = true;
                    }
                    else
                    {
                        pc.Checked = false;
                    }

                    pc.SubItems.Add(nome);
                    pc.SubItems.Add(endereco);
                    pc.SubItems.Add(isOn.ToString());
                    pc.SubItems.Add(sistema.ToString());
                    pc.SubItems.Add(status);

                    lvPC.Items.Add(pc);
                    alerta a = new alerta(
                        "Itens a serem adicionados",
                        "",
                        "Nome: " + nome + Environment.NewLine
                        + "Endereço: " + endereco + Environment.NewLine
                        + "Online: " + isOn + Environment.NewLine
                        + "Sistema: " + sistema + Environment.NewLine
                        + "Backup: " + backup + Environment.NewLine
                        );
                }
                /* Limpa os campos */
                txtNomePC.Text = "";
                txtEnderecoPC.Text = "";
                /* Retorna o foco para o primeiro campo */
                txtNomePC.Focus();
                if (!batch)
                {
                    //savelist();
                }
            }
            else
            {
                MessageBox.Show("Por favor, preencha os campos NOME e ENDEREÇO");
            }
            Cursor.Current = Cursors.Default;
        }