Форум программистов, компьютерный форум, киберфорум
Бета-тестирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.51/595: Рейтинг темы: голосов - 595, средняя оценка - 4.51
213 / 139 / 8
Регистрация: 18.08.2010
Сообщений: 1,018

HideScreener - программа для скрытого создания скриншотов компьютера

12.06.2012, 04:50. Показов 136943. Ответов 277
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Возможно велосипед, но я нужного в гугле для себя не нашел, потому написал свой скрытый скриншотер.

Особености:
  • Полностью скрытая работа. У программы нет вообще никакого интерфейса. Все настройки задаются через ini-файл. Интерфейс не реализован специально, чтобы программа случайно себя не выдала.
  • Скриншоты делаются автоматически через интервал указанный в настройках(в секундах) в папку, которая также указывается в настройках.
  • Возможность задавать качество скринов. Важная для меня опция, поскольку если компьютер работает сутками, то папка со скринами очень быстро разрастается в размерах. Этого помогает избежать задание низкого качества скринов.
  • Если даже происходит какая-то непредвиденная ошибка в программе, все сообщения пишутся в файл, а не выводятся на экран, после чего программа тихо перезагружается и дальше продолжает работать.
  • Имя программы замаскировано под виндовый файл svchost.exe

Прошу протестировать, есть ли глюки. Для меня сейчас очень важно протестировать на отсутствие ошибок, выводимых на экран.

Признателен буду за любой отловленный баг

Прямая ссылка на скачивание.По ней всегда будет актуальная версия.
P.S. Писал лично для себя и для контроля за тем, что происходит на моем компьютере во время моего отсутствия. Очень помогает решить многие проблемы, когда кто-то что-то "наклацал"
Вложения
Тип файла: zip HideScreener_1.0.0.0.zip (6.8 Кб, 1993 просмотров)
9
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.06.2012, 04:50
Ответы с готовыми решениями:

Посоветуйте программу для скрытого создания скриншотов
Всем привет. Завелась у нас тут в офисе "крыска", которая портит документы word и excel одного из сотрудников. По имени пользователя,...

Программа для создания скриншотов
Здравствуйте. Подскажите удобную программу, при помощи которой можно вырезать часть экрана и сделать пометки маркером на скриншоте.

Программа Joxi (для создания скриншотов) (Не запускается)
Доброго времени суток ! Недавно переехал на линукс. Обживаю ... Столкнулся с проблемой: Скачал пакет программы Joxi с официального...

277
 Аватар для LeniumSoft
1454 / 847 / 150
Регистрация: 06.06.2012
Сообщений: 2,370
22.08.2012, 12:13
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Tolias28 Посмотреть сообщение
Да если честно хочется самому тоже практиковаться, а не все на других сваливать) По этому пожалуй наверное я сам этим займусь)
А я всёж погемороюсь надосуге. У меня просто есть мысли о том как это всё сделать легче. Как пример для тебя. На примерах ведь изучать то удобнее. Мне просто охото чтото лёгкое поделать!!!! Ато уже мозги плывут от нагруза. У нас на работе просто проект на Silverlight состоящий из 248 модулей.
0
22.08.2012, 12:18  [ТС]

Не по теме:

Цитата Сообщение от LeniumSoft Посмотреть сообщение
У нас на работе просто проект на Silverlight состоящий из 248 модулей.
Сцупер!:good::)

0
не Администратор ^_^
 Аватар для Unick
988 / 223 / 23
Регистрация: 03.05.2009
Сообщений: 1,493
Записей в блоге: 1
22.08.2012, 21:06
Цитата Сообщение от Tolias28 Посмотреть сообщение
Действительно сюрприз... Было бы намного легче, если бы я знал при каких именно настройках это произошло и что за компьютером в тот час делалось (может там скринсейвер запустился или что-то еще)...
были открыты браузер Опера и Скайп
точно не помню, но скорее всего
Я запустил программу, поменял настройки, перезапустил программу...
Видимо запустилось две версии... а может и нет...

Но если так, то поставь проверку, чтобы два экземпляра не запускалось

Tolias28
Считаю что сайт надо сделать, программа пользуется популярностью, но о ней мало народу знает... Она много кому может понадобится
Уважаю за то, что такую хорошую программу распространяешь бесплатно. Поэтому я помогу тебе с сайтом.
Напиши мне в личку свой скайп.
1
не Администратор ^_^
 Аватар для Unick
988 / 223 / 23
Регистрация: 03.05.2009
Сообщений: 1,493
Записей в блоге: 1
22.08.2012, 22:11
забыл
Миниатюры
HideScreener - программа для скрытого создания скриншотов компьютера  
Вложения
Тип файла: rar Desktop.rar (261 байт, 5 просмотров)
1
42 / 17 / 0
Регистрация: 19.08.2012
Сообщений: 41
23.08.2012, 09:49
Цитата Сообщение от Unick Посмотреть сообщение
забыл
файлы с окончанием END указывают на время перехода системы (из состояния простоя- Idle) в активное. Tolias28 уже писал об этом выше. Т.е. это своего рода файлы-флаги :-)
1
не Администратор ^_^
 Аватар для Unick
988 / 223 / 23
Регистрация: 03.05.2009
Сообщений: 1,493
Записей в блоге: 1
23.08.2012, 10:30
Цитата Сообщение от yurap Посмотреть сообщение
файлы с окончанием END указывают на время перехода системы (из состояния простоя- Idle) в активное. Tolias28 уже писал об этом выше. Т.е. это своего рода файлы-флаги :-)
ясно.
0
213 / 139 / 8
Регистрация: 18.08.2010
Сообщений: 1,018
23.08.2012, 11:29  [ТС]
Цитата Сообщение от Unick Посмотреть сообщение
забыл
)) так вы о этих файлах имели в веду, когда говорили:
Цитата Сообщение от Unick Посмотреть сообщение
хотя в самом начале работы выдала 3 пустых файла
?? ))))

Добавлено через 39 секунд
если да, то это нормальная работа программы, так и должно быть! У них же ж даже расширение отличается))) Другое дело, если бы JPG-файлы были пустые) Я специально сделал другое расширение, чтобы не плутать с JPG-ами, а вижу люди всеравно путаются))

Добавлено через 6 минут
Цитата Сообщение от Unick Посмотреть сообщение
Видимо запустилось две версии... а может и нет...
Но если так, то поставь проверку, чтобы два экземпляра не запускалось
да, проверку на наличие двух версий я уже реализовал в версии 1.0.4.23a, которую выложил в посте №149. Там же описание новых изменений. Перед использованием новых версий программы желательно прочитывать о новых функциях, которые описаны в текстовом файле в папке с программой, чтобы потом не возникало таких недоразумений, как у вас с пустыми файлами)))
1
 Аватар для LeniumSoft
1454 / 847 / 150
Регистрация: 06.06.2012
Сообщений: 2,370
23.08.2012, 13:35
Тут всплывал вопрос о том что твоя прога не распознаёт переменные среды из файла настроек. Только из консоли(потому что собственно она сама это и делает).

C#
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
/// <summary>
        /// Возвращает путь заменяя переменные среды.
        /// </summary>
        /// <param name="path"></param>
        /// <returns></returns>
        public static string GetPathWithEnvironmentVariables(string path)
        {
            string result = path;
 
            //Получаем все переменные среды выполнения.
            var allEnvironmentVariables = Environment.GetEnvironmentVariables();
            Dictionary<string, string> allEnvironmentVariablesUperKey = new Dictionary<string, string>();
 
            //Переводим все ключи в верхний регистр.
            foreach (DictionaryEntry entry in allEnvironmentVariables)
            {
                allEnvironmentVariablesUperKey.Add(entry.Key.ToString().ToUpper(), entry.Value.ToString());
            }
 
            Regex regex = new Regex("%[a-zA-Z]+%", RegexOptions.IgnoreCase);
 
            MatchCollection matches = regex.Matches(path);
 
            foreach(Match match in matches)
            {
                string key = match.Value.Replace("%","");
                result = result.Replace(match.Value, allEnvironmentVariablesUperKey[key.ToUpper()]);
            }
 
            return result;
        }
Эта функция поможет тебе обработать подобные пути из файла настроек.

Поддерживает всё что есть ТУТ

Пропусти через неё все пути которые вытаскиваешь из файла с настройками.

Добавлено через 3 минуты
Например вот это: \\MYSERV\Shares\ScreenShots\%ComputerNam e%\%UserName% разобрала правильно!
0
213 / 139 / 8
Регистрация: 18.08.2010
Сообщений: 1,018
23.08.2012, 13:41  [ТС]
LeniumSoft, ты что, издеваешься?
1. Раньше кидал мне код как делать скрины, когда он у меня в программе уже был
2. Позднее кинул мне ссылку о том, как узнавать в программе неактивность системы, когда у меня в программе это уже тоже больше месяца было
3. Теперь кидаешь мне код, как распознавать CMD-переменные, когда я это уже тоже вчера реализовал (смотри вчерашний пост №149, когда я выложил версию 1.0.4.23a)

Ты специально с меня издеваешься и троллишь меня? Если нет, то пожалуйста будь повнимательнее и не делай больше так... Я благодарен, что ты хочешь мне помочь, но пойми, это немного начинает раздражать, когда человек регулярно подталкивает тебя сделать то, что ты и так уже сделал, а он тебе всеравно это твердит из-за своей невнимательности
1
 Аватар для LeniumSoft
1454 / 847 / 150
Регистрация: 06.06.2012
Сообщений: 2,370
23.08.2012, 13:43
Цитата Сообщение от Tolias28 Посмотреть сообщение
Ты специально с меня издеваешься и троллишь меня?
Я просто не посмотрел ещё твою новую штуку! Щас гляну! Уговорил!
0
213 / 139 / 8
Регистрация: 18.08.2010
Сообщений: 1,018
23.08.2012, 13:52  [ТС]
Цитата Сообщение от LeniumSoft Посмотреть сообщение
Я просто не посмотрел ещё твою новую штуку!
Ну то продолжай и дальше так делать: не смотреть мои новые сообщения, в которых я описываю новые добавленные функции, и говорить мне, чтобы я их добавил. Возможно у меня когда-то на это терпение кончится...

Добавлено через 6 минут
To LeniumSoft
Кстати, по поводу тобою предложенного кода: не знаю зачем ты используешь функцию на целых 24 строки. Я вчера все это сделал одной строчкой:
C#
1
screenPath = Environment.ExpandEnvironmentVariables(sets.Path);
0
 Аватар для LeniumSoft
1454 / 847 / 150
Регистрация: 06.06.2012
Сообщений: 2,370
23.08.2012, 13:58
Цитата Сообщение от Tolias28 Посмотреть сообщение
не знаю зачем ты используешь функцию на целых 24 строки.
Просто я знаю исходники Environment.ExpandEnvironmentVariables и её скорость выполнения. Поэтому сделал свою которая немного быстрее! Она мне на большом проекте нужна была.

Добавлено через 51 секунду
C#
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
public static string ExpandEnvironmentVariables(string name)
    {
      if (name == null)
        throw new ArgumentNullException("name");
      if (name.Length == 0)
        return name;
      string[] strArray = name.Split(new char[1]
      {
        '%'
      });
      StringBuilder stringBuilder = new StringBuilder();
      int num1 = 100;
      StringBuilder lpDst = new StringBuilder(num1);
      for (int index = 1; index < strArray.Length - 1; ++index)
      {
        if (strArray[index].Length != 0)
        {
          lpDst.Length = 0;
          string lpSrc = "%" + strArray[index] + "%";
          int num2 = Win32Native.ExpandEnvironmentStrings(lpSrc, lpDst, num1);
          if (num2 == 0)
            Marshal.ThrowExceptionForHR(Marshal.GetHRForLastWin32Error());
          while (num2 > num1)
          {
            num1 = num2;
            lpDst.Capacity = num1;
            lpDst.Length = 0;
            num2 = Win32Native.ExpandEnvironmentStrings(lpSrc, lpDst, num1);
            if (num2 == 0)
              Marshal.ThrowExceptionForHR(Marshal.GetHRForLastWin32Error());
          }
          if (((object) lpDst).ToString() != lpSrc)
          {
            stringBuilder.Append(strArray[index]);
            stringBuilder.Append(';');
          }
        }
      }
      new EnvironmentPermission(EnvironmentPermissionAccess.Read, ((object) stringBuilder).ToString()).Demand();
      lpDst.Length = 0;
      int num3 = Win32Native.ExpandEnvironmentStrings(name, lpDst, num1);
      if (num3 == 0)
        Marshal.ThrowExceptionForHR(Marshal.GetHRForLastWin32Error());
      while (num3 > num1)
      {
        num1 = num3;
        lpDst.Capacity = num1;
        lpDst.Length = 0;
        num3 = Win32Native.ExpandEnvironmentStrings(name, lpDst, num1);
        if (num3 == 0)
          Marshal.ThrowExceptionForHR(Marshal.GetHRForLastWin32Error());
      }
      return ((object) lpDst).ToString();
    }
0
213 / 139 / 8
Регистрация: 18.08.2010
Сообщений: 1,018
23.08.2012, 14:03  [ТС]
Цитата Сообщение от LeniumSoft Посмотреть сообщение
немного быстрее
хм. Ну в принципе я сделал в программе так, что эта функция запускается только 2 раза при старте программы. Первый раз для получения пути для скринов при активности, второй раз для неактивности. И еще один раз этот метод отрабатывает, если задан путь к файлу настроек через ключ коммандной строки. В дальнейшем при работе программы метод ExpandEnvironmentStrings() больше не запускается ни разу, потому что прога использует готовые строки с путями, полученные в начале работы, потому сильно на скорость это не повлияет. Хотя если этот метод действительно очень тормознутый, то я заменю ее кодом, что вы предложили. Лишние граммы производительности всегда приветствую
0
251 / 163 / 14
Регистрация: 10.03.2012
Сообщений: 544
23.08.2012, 14:07
Цитата Сообщение от Tolias28 Посмотреть сообщение
метод ExpandEnvironmentStrings() больше не запускается ни разу
А если юзер вздумает изменить переменные окружения во время работы скриншотера?
0
 Аватар для LeniumSoft
1454 / 847 / 150
Регистрация: 06.06.2012
Сообщений: 2,370
23.08.2012, 14:08
Не! На меленьких проектах это не критично! Мне просто надо было разобрать 12000+- путей. Вот там стандартная работала почти 40 секунд. А своей я умудрился перебрать за 13. Правда в своей я немного не так делал. В ней все переменные были вынесены во внешнюю переменную и они не получались каждый раз. Это тоже прибавило скорость. А Regex как оказалось работает вполне шустро несмотря на то что все говорят о его тормознутости.
0
213 / 139 / 8
Регистрация: 18.08.2010
Сообщений: 1,018
23.08.2012, 14:16  [ТС]
Цитата Сообщение от iprog Посмотреть сообщение
А если юзер вздумает изменить переменные окружения во время работы скриншотера?
то ничего не произойдет до следующей перезагрузки программы. Это ж так во всех прогах реализовано Программа читает настройки из файла только при старте программы и больше к нему не обращается

Добавлено через 5 минут
Цитата Сообщение от LeniumSoft Посмотреть сообщение
Не! На меленьких проектах это не критично! Мне просто надо было разобрать 12000+- путей. Вот там стандартная работала почти 40 секунд. А своей я умудрился перебрать за 13
а, ну это понятно. Но учитывая, что в HideScreener обращение к этой функции происходит максимум 3 раза(а не 12 тысяч раз), то если я перепишу тот метод на предложенный вами код, то моя программа при старте будет запускаться быстрее на 0,00675 секунды
Хотя 3 миллисекунды для одной функции... хм, что-то она действительно сильно тормознутая...

Не по теме:

А строки какого содержания в вашем проекте были?



Добавлено через 1 минуту

Не по теме:

Цитата Сообщение от LeniumSoft Посмотреть сообщение
Вот там стандартная работала почти 40 секунд. А своей я умудрился перебрать за 13
В таких случаях чаще прибегают даже к unmanaged-коду с PInvoke-вызовами:)

0
 Аватар для LeniumSoft
1454 / 847 / 150
Регистрация: 06.06.2012
Сообщений: 2,370
23.08.2012, 14:19
Цитата Сообщение от Tolias28 Посмотреть сообщение
В таких случаях чаще прибегают даже к unmanaged-коду с PInvoke-вызовами
В Silverlight запущенном в браузере это проблематично!
0
23.08.2012, 14:47  [ТС]

Не по теме:

Цитата Сообщение от LeniumSoft Посмотреть сообщение
В Silverlight запущенном в браузере это проблематично!
Короче я так понял ты пишешь только на одном Silverlight'е:)

0
 Аватар для LeniumSoft
1454 / 847 / 150
Регистрация: 06.06.2012
Сообщений: 2,370
23.08.2012, 17:42
Цитата Сообщение от Tolias28 Посмотреть сообщение
Короче я так понял ты пишешь только на одном Silverlight'е
Да нет! Я на всём пишу! Просто на работе это сейчас приоритетная задача. Серверная часть реализована и отлично работает. А вот на клиентской постоянно разрабатываются новые модули. А клиентская часть именно на SL5.
0
123 / 121 / 6
Регистрация: 21.12.2011
Сообщений: 348
23.08.2012, 19:42
Tolias28, я не понимаю твоё ревностное отношение к помощи LeniumSoft. Человек адекватный, знающий, тем более работает на большом проекте. Ты не обязан брать исходник его, но прислушаться имеет смысл, ибо опыт это такая штука, которую не опишут ни в какой книжке.

Я не вижу ничего плохого в том, что опытный! человек, берется паралельно! твоему проекту рефакторить старую! версию. Ты мог бы много времени экономить, разрабатывая новые фичи, зная что база в этот момент потихоньку улучшается.

На копирайты, насколько я понимаю, никто не претендует, присутствует только человеческая благодарность и желание помочь.

Подумай.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.08.2012, 19:42

Программа для создания скриншотов с возможностью загружать их на хостинг
Прошу оценить мой проект, высказать плюсы и минусы, сказать что добавить, что убрать. Оценить дизайн, работоспособность программы,...

Подскажите бесплатную программу для скрытого снятия скриншотов!
нужна программа которая делает в скрытом для пользователя виде скриншоты, с возможностью заданию интервала, 10 секунд, 1 мин, 5 мин итд......

Написание службы для создания скриншотов
Всем привет! Есть код который делает снимок экрана. Пытаюсь переделать его в службу. Просьба помочь. using System; using...

Сервис для создания скриншотов программы
Пример скриншотов можно посмотреть тут https://play.google.com/store/apps/details?id=com.whatsapp Есть какой-то генератор для создания...

Программа для снятия скриншотов с ip-камеры по расписанию
Добрый день. Ребята. Вопрос такой. Есть ip-камера. Нужна программа для автоматического получения скриншотов с этой камеры, т.е. по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
180
Ответ Создать тему
Новые блоги и статьи
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru