private void RemoveLinhaASK(DataGridView datagrid, string nome_coluna, DataGridViewCellEventArgs e, int x) { try { int contador = 0; // verifica se a linha está totalmente vazia if (datagrid.Columns[e.ColumnIndex].Name == nome_coluna) { DataGridViewRow obj = datagrid.Rows[e.RowIndex]; for (int i = 0; i < x; i++) { if (String.IsNullOrEmpty(obj.Cells[i].Value.ToString())) { contador++; } } if (contador == x - 1) { return; } //DialogResult resu = System.Windows.Forms.MessageBox.Show("Deseja realmente excluir ?", "Aviso", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (MessageBox.ShowMessageBoxYesNo("question", "Deseja realmente excluir ?", "Confirmar exclusão", DarkTheme).Equals("sim")) { RemoveLinhaUnica(datagrid, e); DataGridViewRow linha_select = datagrid.Rows[e.RowIndex]; datagrid.Rows.Remove(linha_select); } } } catch (Exception) { return; } }
private void sairToolStripMenuItem_Click_1(object sender, EventArgs e) { if (MessageBox.ShowMessageBoxYesNo("question", "Deseja realmente sair do iCrypto?", "Fechar aplicativo", DarkTheme).Equals("sim")) { banco.Close(); Application.Exit(); } }
private void btEnvia_Click(object sender, EventArgs e) { try { if (String.IsNullOrEmpty(tbEmail.Text)) { MessageBox.ShowMessageBoxOK("error", "Insira um e-mail válido", "Erro", DarkTheme); tbEmail.Focus(); return; } if (!tbEmail.Text.Split('@')[1].Contains('.')) { MessageBox.ShowMessageBoxOK("error", "Insira um e-mail com domínio válido.", "Erro", DarkTheme); tbEmail.Focus(); return; } if (String.IsNullOrEmpty(tbSenha.Text)) { MessageBox.ShowMessageBoxOK("error", "Insira uma senha", "Erro", DarkTheme); tbSenha.Focus(); return; } if (!VerificaEmail()) { return; } // CASO NAO TENHA NADA DE ERRADO FAÇA O LOGIN.. fromMail = tbEmail.Text; string password = tbSenha.Text; string servidor = tbSmtp.Text; if (servidor.Length <= 0) { MessageBox.ShowMessageBoxOK("error", "Digite um servidor SMTP", "Erro", DarkTheme); return; } int porta = 0; if (String.IsNullOrEmpty(tbPorta.Text.ToString())) { MessageBox.ShowMessageBoxOK("error", "Campo de porta é obrigatório.", "Erro", DarkTheme); return; } try { porta = Convert.ToInt32(tbPorta.Text); } catch (FormatException) { MessageBox.ShowMessageBoxOK("error", "Porta só deve ser digitada com números inteiros", "Erro", DarkTheme); return; } var Login = new SmtpClient(servidor, porta); PassaArgumento(Login); // Faz login Login.UseDefaultCredentials = false; Login.Credentials = new NetworkCredential(fromMail, password); if (tbEmailTo.Text.Length == 0) { MessageBox.ShowMessageBoxOK("error", "Digite um email destinatário", "Erro", DarkTheme); return; } MailMessage messageMail = new MailMessage(); messageMail.From = new MailAddress(fromMail); messageMail.To.Add(new MailAddress(tbEmailTo.Text)); messageMail.Body = richConteudo.Text; messageMail.Subject = richAssunto.Text.Length > 0 ? messageMail.Subject = richAssunto.Text : messageMail.Subject = ""; // Verifica se há anexos disponveis // Se houver, faça um Attachment e verifique o tamanho total deles. if (dataGridViewAnexo.Rows.Count > 1) { long tamanho_arquivos = 0; for (int i = 0; i < dataGridViewAnexo.Rows.Count - 1; i++) { string anexo = dataGridViewAnexo.Rows[i].Cells[0].Value.ToString(); string dir = dataGridViewAnexo.Rows[i].Cells[3].Value.ToString(); dir = dir + "\\" + anexo; Attachment attach_anexo = new Attachment(dir); messageMail.Attachments.Add(attach_anexo); FileInfo tamanho = new FileInfo(dir); tamanho_arquivos += tamanho.Length; } if (tamanho_arquivos > 26214400L) { MessageBox.ShowMessageBoxOK("error", "Os arquivos anexados resultam em um espaço maior que" + " 25MB. Email não será enviado.", "Erro", DarkTheme); return; } } cliente.EnableSsl = true; // + segurança, envio criptografado try { if (tbEmail.Text.Contains("@gmail")) { frmMenosSeguroGmail obj = new frmMenosSeguroGmail(DarkTheme); obj.ShowDialog(); string ret = obj.retornoString(); if (ret.Equals("sim")) { System.Diagnostics.Process.Start("https://myaccount.google.com/lesssecureapps"); System.Threading.Thread.Sleep(1000); if (MessageBox.ShowMessageBoxYesNo("question", "A opção menos segura foi ativada?", "Confirmar ativação", DarkTheme).Equals("sim")) { cliente.Send(messageMail); MessageBox.ShowMessageBoxOK("information", "E-mail enviado para " + tbEmailTo.Text, "Aviso", DarkTheme); return; } else { MessageBox.ShowMessageBoxOK("information", "Não será possível enviar o e-mail", "Aviso", DarkTheme); return; } } else if (ret.Equals("ativado")) { try { cliente.Send(messageMail); MessageBox.ShowMessageBoxOK("correct", "E-mail enviado para " + tbEmailTo.Text, "Aviso", DarkTheme); } catch (Exception ex) { MessageBox.ShowMessageBoxOK("error", "O envio falhou!" + "\n" + "\nCertifique que o e-mail está correto e é válido" + "\nCertifique que a senha está correta (Deve ser a senha do e-mail e não do iCrypto)" + "\nCaso seja gmail, certique que a opção 'Acesso a apps menos seguros' está ativada", "Ocorreu um erro", DarkTheme); } } else { MessageBox.ShowMessageBoxOK("information", "Não será possível enviar o e-mail", "Aviso", DarkTheme); return; } } else { cliente.Send(messageMail); MessageBox.ShowMessageBoxOK("correct", "E-mail enviado para " + tbEmailTo.Text, "Aviso", DarkTheme); } } catch (Exception) { return; } //cliente.Send(messageMail); //MessageBox.Show("E-mail enviado para " + tbEmailTo.Text, "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (SmtpException) { MessageBox.ShowMessageBoxOK("error", "Informações de configurações erradas.", "Erro", DarkTheme); return; } catch (FormatException ex) { MessageBox.ShowMessageBoxOK("error", ex.Message, "Erro", DarkTheme); return; } catch (Exception) { MessageBox.ShowMessageBoxOK("error", "O envio falhou!" + "\n" + "\nCertifique que o e-mail está correto e é válido" + "\nCertifique que a senha está correta (Deve ser a senha do e-mail e não do iCrypto)" + "\nCaso seja gmail, certique que a opção 'Acesso a apps menos seguros' está ativada", "Ocorreu um erro", DarkTheme); return; } }
private void btEncripta_Click(object sender, EventArgs e) { if (File.Exists(@"C:\iCrypto\" + "ZipadoAES.rar")) { File.Delete(@"C:\iCrypto\" + "ZipadoAES.rar"); } ArrayList apagar_linha = new ArrayList(); ArrayList arquivos_email = new ArrayList(); int nlinhas = dgvAESFiles.Rows.Count; for (int i = 0; i < nlinhas; i++) { // Encripta o arquivo com nomearquivo.extensao.aes string fileName = dgvAESFiles.Rows[i].Cells[0].Value.ToString(); // VERIFICA SE O ARQUIVO EXISTE, SE NÃO EXISTIR, TIRE DA LISTA // Por que? R: O usuario pode ter excluido o arquivo. if (!File.Exists(dgvAESFiles.Rows[i].Cells[3].Value.ToString() + @"\" + fileName)) { apagar_linha.Add(fileName); continue; } // PROCESSO DE ENCRIPTAR O ARQUIVO if (fileName.Contains(".aes")) { lblStatus.Text = "Ambíguo"; DataGridViewRow linha = dgvAESFiles.Rows[i]; dgvAESFiles.Rows.Remove(linha); lblStatus.ForeColor = System.Drawing.Color.Red; nlinhas -= 1; i -= 1; continue; } string arquivo_en = EncriptaArquivo(fileName, dgvAESFiles.Rows[i].Cells[3].Value.ToString()); // JOGA O NOME DO ARQUIVO NO BANCO JogaemBancoArquivo("Criptografar", fileName, arquivo_en.Split('\\')[arquivo_en.Split('\\').Length - 1]); banco.Close(); // verifica se a checkbox está ativa, se estiver, add na arraylist para enviar o email posteriormente if (chkEnviaArquivo.Checked) { arquivos_email.Add(arquivo_en); } // Apagar arquivos do datagrid arquivo_original = fileName; for (int y = 0; y < dgvAESFiles.Rows.Count; y++) { if (dgvAESFiles["colunaArquivo", y].Value == arquivo_original) { apagar_linha.Add(arquivo_original); //linha x coluna 1 } } FileInfo infos = new FileInfo(arquivo_en); dgvAESFiles.Rows.Add(infos.Name, infos.Length.ToString(), infos.Extension, infos.DirectoryName); dgvAESFiles.Refresh(); IncrementaProgressBar(); // Reseta Progressbar e mostra o "LOG" progressBarFile.Value = 0; lblStatus.Text = "Encriptado"; lblStatus.ForeColor = Color.Green; } // apagar todos encriptados (do arraylist que deve ser apagado) foreach (string arquivos in apagar_linha) { // busca pela linha for (int i = 0; i < dgvAESFiles.Rows.Count; i++) { if (dgvAESFiles["colunaArquivo", i].Value.ToString().Equals(arquivos)) { DataGridViewRow obj = dgvAESFiles.Rows[i]; dgvAESFiles.Rows.Remove(obj); } } } tbArquivo.Clear(); // 26214400bytes = 25MB (MAXIMO) if (chkEnviaArquivo.Checked) { // necessário calcular o espaço de todos arquivos no array, para ver se // passa de 25MB if (VerificaMBArquivos(arquivos_email)) { SMTPEnvioTexto envioEmail = new SMTPEnvioTexto("", arquivos_email, usuario, DarkTheme); envioEmail.ShowDialog(); } else { if (error == 1) { return; } // comprime o arquivo /* * DialogResult retorno = System.Windows.Forms.MessageBox.Show("Arquivos resultam em um espaço maior que 25MB.. Deseja " + * "comprimir esses arquivos ? ", "Aviso", MessageBoxButtons.YesNo, * MessageBoxIcon.Question); */ string defaultDirectory = @"C:\iCrypto\AESFile\"; if (MessageBox.ShowMessageBoxYesNo("question", "Arquivos resultam em um espaço maior que 25MB.. Deseja " + "comprimir esses arquivos ? ", "Aviso", DarkTheme).Equals("sim")) { if (File.Exists(@"C:\iCrypto\" + "ZipadoAES.rar")) { File.Delete(@"C:\iCrypto\" + "ZipadoAES.rar"); } if (!Directory.Exists(defaultDirectory)) { Directory.CreateDirectory(defaultDirectory); } else { Directory.Delete(defaultDirectory, true); Directory.CreateDirectory(defaultDirectory); } System.Threading.Thread.Sleep(900); foreach (string complete_file in arquivos_email) { string only_Name = complete_file.Split('\\')[complete_file.Split('\\').Length - 1];//Somente o nome do arquivo File.Copy(complete_file, defaultDirectory + only_Name, true); } System.Threading.Thread.Sleep(900); ZipFile.CreateFromDirectory(defaultDirectory, @"C:\iCrypto\" + "ZipadoAES.rar"); ArrayList tmp = new ArrayList() { @"C:\iCrypto\ZipadoAES.rar" }; if (!VerificaMBArquivos(tmp)) { MessageBox.ShowMessageBoxOK("error", "Arquivo comprimido maior que 25MB, impossível ser enviado.", "Erro", DarkTheme); return; } else { SMTPEnvioTexto envioEmail = new SMTPEnvioTexto("", tmp, usuario, DarkTheme); envioEmail.ShowDialog(); } // APAGA O ZIPADO (QUE É UM ARQUIVO TEMPORARIO) File.Delete(@"C:\iCrypto\ZipadoAES.rar"); } else { MessageBox.ShowMessageBoxOK("error", "Impossível de ser anexado.", "Erro", DarkTheme); return; } } } }