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

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

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

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

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

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

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

Прямая ссылка на скачивание.По ней всегда будет актуальная версия.
P.S. Писал лично для себя и для контроля за тем, что происходит на моем компьютере во время моего отсутствия. Очень помогает решить многие проблемы, когда кто-то что-то "наклацал"
Вложения
Тип файла: zip HideScreener_1.0.0.0.zip (6.8 Кб, 2010 просмотров)
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
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru