Пример #1
0
        private static async void PrtHooked(object sender, KeyEventArgs e)
        {
            PrtScr_Hook.StopHook(PrtHooked);                        // Во время обработки приостанавливаем перехват
            json_st.ResponsePost Resp = new json_st.ResponsePost(); // Хранилище ответа
            try
            {
                byte[] Scr = Combine.GetScreen(); // Шаг 2: получаем изображение
                if (Settings.Save)
                {
                    SaveScr.Save(Scr);                // Сохраняем при надобности на диск
                }
                Resp = await Combine.SendScreen(Scr); // Шаг 3: отправка изображения

                Scr = null;
            }
            catch
            {
                Resp.message = "Error"; // Если не удалось отправить изображение
            }
            if (Resp.filename.Length > 4 && Resp.code != 415 && Resp.code != 0)
            { // Шаг 4: Если результат положительный, то отправить его в буфер обмена
                Clipboard_s.ToClipboard(Settings.HTTP_ADDRESS + "/" + Resp.filename);
            }
            GC.Collect();                     // Вызываем сборщик мусора дважды
            PrtScr_Hook.StartHook(PrtHooked); // Возобновление шага 1
            GC.Collect();
        }
Пример #2
0
        static void Main(string[] args)
        {
            if (Process.GetProcesses().Count(p => p.ProcessName == Process.GetCurrentProcess().ProcessName) > 1)
            { // Найден иной процесс с данным названием
                if (ProcessRepair())
                {
                    return;
                }
            }
            if (!System.IO.File.Exists("Newtonsoft.Json.dll"))
            { // Не найдена важнейшая библиотека для чтения и записи в стандарте Json
                switch (MessageBox.Show("Newtonsoft.Json.dll not found!\nContinue?", "ScrTilla", MessageBoxButtons.YesNo, MessageBoxIcon.Error))
                {
                case DialogResult.No: return;

                case DialogResult.None: return;

                case DialogResult.Cancel: return;
                }
            }
            PrtScr_Hook.StartHook(PrtHooked);
            using (ScrTilla.FormTaskbar f = new ScrTilla.FormTaskbar())
            {
                PrtScr_Hook.PrintScreen += f.ClipboardSet;
                Application.Run(f);
                PrtScr_Hook.PrintScreen -= f.ClipboardSet;
            }
            PrtScr_Hook.StopHook(PrtHooked);
        }