private void timer1_Tick(object sender, EventArgs e) //tick: invia gli eventi raccolti { if (events.Count == 0) { return; } //Console.WriteLine("Tick: list containing {0} elements", events.Count); EventsBuffer.AddEvents(events); events = new List <MacroEvent>(); }
private void btnStop_Click(object sender, EventArgs e) //btnAttiva: per iniziare ad inviare eventi al server (per finire usare hotkey) { if (!connected) { return; } active = true; events.Clear(); EventsBuffer.Clear(); keyboardHook.Start(); mouseHook.Start(); timer1.Start(); Task.Factory.StartNew(() => { cs.SendInt(0); try { cs.SendConfigueStatus(checkBoxInvia.Checked, checkBoxRicevi.Checked); if (checkBoxInvia.Checked) { cs.SendClipBoard(); } while (true) { cs.SendEventsList(EventsBuffer.ConsumeEvents()); } } catch (EventsBufferClosedException) { //Console. cs.SendInt(-1); if (checkBoxRicevi.Checked) { cs.recClipBoard(); } //active = false; //cs deve ricevere la clipboard dal server } }); }
private HotKeyListener hkListener = new HotKeyListener(); // ascolta se viene premuto una combinazione di tasti e ne esegue l'handler public FormClient() { InitializeComponent(); HotKey hk_exit = new HotKey(Keys.LControlKey, Keys.F12); // Evento eseguito quando viene premuto l'hotkey: smetti di catturare e inviare gli eventi (flag active da true a false) hk_exit.HotKeyHappened += (object sender, EventArgs e) => { //simulare keyup qua hk_exit.SimulateKeysUp(); keyboardHook.Stop(); mouseHook.Stop(); //Thread.Sleep(timer1.Interval); timer1.Stop(); if (events.Count > 0) { EventsBuffer.AddEvents(events); cs.SendEventsList(EventsBuffer.ConsumeEvents()); events = new List <MacroEvent>(); } active = false; EventsBuffer.Close(); }; hkListener.Add(hk_exit); //foreach(server s in serverfarm) // s.hotkey.hotkeyhappened += clientsocket.connecttoserver(s.ip,s.port); mouseHook.MouseMove += new MouseEventHandler(mouseHook_MouseMove); mouseHook.MouseDown += new MouseEventHandler(mouseHook_MouseDown); mouseHook.MouseUp += new MouseEventHandler(mouseHook_MouseUp); mouseHook.MouseWheel += new MouseEventHandler(mouseHook_MouseWheel); keyboardHook.KeyDown += new KeyEventHandler(keyboardHook_KeyDown); keyboardHook.KeyUp += new KeyEventHandler(keyboardHook_KeyUp); // Handlers di HotKeyListener vengono eseguiti dopo che gli eventi vengono aggiunti alla lista da inviare keyboardHook.KeyDown += hkListener.KeyDownListen; keyboardHook.KeyUp += hkListener.KeyUpListen; // Evento: ClientSocket si collega al server (connected da false a true) cs.Connected += (object sender, EventArgs e) => { connected = true; btnAttiva.Invoke(new MethodInvoker(() => { this.btnAttiva.Enabled = true; })); btnConnetti.Invoke(new MethodInvoker(() => { this.btnConnetti.Text = "Disconnetti"; })); }; // Evento: ClientSocker non è più collegato al server (connected da true a false) cs.Disconnected += (object sender, EventArgs e) => { connected = false; btnAttiva.Invoke(new MethodInvoker(() => { this.btnAttiva.Enabled = false; })); btnConnetti.Invoke(new MethodInvoker(() => { this.btnConnetti.Text = "Connetti"; })); // se il server si disconnette mentre il client è attivo if (active) { keyboardHook.Stop(); mouseHook.Stop(); timer1.Stop(); active = false; } //EventsBuffer.Close(); }; loadServerFarm(); foreach (Server s in Server_farm.server_list.Values) { listView1.Items.Add(s.Name); } if (listView1.Items.Count > 0) { showServerDetails(Server_farm.server_list[listView1.Items[0].Text]); listView1.Items[0].Selected = true; } listView1.Columns[0].Width = listView1.Width - 4; }