-
Notifications
You must be signed in to change notification settings - Fork 0
/
LogUso.cs
133 lines (113 loc) · 4.87 KB
/
LogUso.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
using System;
using Microsoft.Win32;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Windows.Forms;
using System.Net.Mail;
namespace ZonView017
{
class LogUso
{
public LogUso()
{
}
/// <summary>
/// Monta o log de uso
/// </summary>
/// <param name="TempoExec">Tempo de execução do processo</param>
/// <param name="Evento">nome do projeto</param>
public void MontaLog(string TempoExec, string Evento, string Projeto)
{
RegistryKey RegKey = Registry.LocalMachine;
RegKey = RegKey.OpenSubKey("HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0");
Object cpuSpeed = RegKey.GetValue("~MHz");
Object cpuType = RegKey.GetValue("VendorIdentifier");
//Console.WriteLine("You have a {0} running at {1} MHz.", cpuType, cpuSpeed);
OperatingSystem os = Environment.OSVersion;
string NumProc = Environment.ProcessorCount.ToString();
string Memoria = Environment.WorkingSet.ToString();
string strLog = cpuType + ";" + cpuSpeed + ";" +
os.Platform.ToString() + ";" + os.ServicePack + ";" + os.VersionString +
";" + TempoExec + ";" + Evento;
GravaLog(strLog);
}
/// <summary>
/// faz a gravação do logo no arquivo de log
/// </summary>
/// <param name="LOG">Log de uso a ser gravado</param>
private void GravaLog(string LOG)
{
string CaminhoLOG = Application.StartupPath + "\\LOG.txt";
StreamReader sr = new StreamReader(CaminhoLOG);
string TodoLOG = sr.ReadToEnd();
sr.Close();
TodoLOG = TodoLOG + "\t\r" + LOG;
StreamWriter sw = new StreamWriter(CaminhoLOG);
sw.Write(TodoLOG);
sw.Close();
}
/// <summary>
/// Questiona se o usuário deseja enviar o log de uso
/// </summary>
public void Questiona()
{
Random rnd = new Random();
int i = rnd.Next(0, 10);
if (i < 3)
{
string mensagem = "Esta é uma versão de testes. \t\r" +
"Gostaria de auxiliar no desenvolvimento nos enviando o arquivo de registro de uso?\t\r" +
"Este arquivo não contém informações pessoais, e pode ser lido em: " +
Application.StartupPath + "LOG.txt";
if (MessageBox.Show(mensagem, "Ajude-nos a melhorar este software", MessageBoxButtons.YesNo)
== DialogResult.Yes)
{
string CaminhoLOG = Application.StartupPath + "\\LOG.txt";
StreamReader sr = new StreamReader(CaminhoLOG);
string TodoLOG = sr.ReadToEnd();
sr.Close();
EnviaLog(TodoLOG);
StreamWriter sw = new StreamWriter(CaminhoLOG);
sw.Write("");
sw.Close();
}
}
}
/// <summary>
/// envia o log via email
/// </summary>
/// <param name="Mensagem">texto do arquivo de log a ser enviado</param>
private void EnviaLog(string Mensagem)
{
try
{
//Command line argument must the the SMTP host.
SmtpClient client = new SmtpClient("smtp.uep.cnps.embrapa.br");
// Specify the e-mail sender.
// Create a mailing address that includes a UTF8 character
// in the display name.
MailAddress from = new MailAddress("[email protected]",
"ViZon",
System.Text.Encoding.UTF8);
// Set destinations for the e-mail message.
MailAddress to = new MailAddress("[email protected]");
// Specify the message content.
MailMessage message = new MailMessage(from, to);
message.Body = Mensagem;
// Include some non-ASCII characters in body and subject.
message.Body += Environment.NewLine;
message.BodyEncoding = System.Text.Encoding.UTF8;
message.Subject = "[LOG - Vizon]";
message.SubjectEncoding = System.Text.Encoding.UTF8;
string userState = "test message1";
client.SendAsync(message, userState);
MessageBox.Show("O registro foi enviado com sucesso! Obrigado!");
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
}
}// fim classe
}// fim namespace