Вход | Регистрация
    1  2   

Мой гений дарит Вам программу для закрытия навязчивых окон 1С.

↓ [mishaPH, 19.05.20 - 15:42]
Мой гений дарит Вам программу для закрытия навязчивых окон 1С.
Я
   Гений 1С
 
15.05.20 - 17:33
1. Поставлю себе, очень полезная программа75% (3)
4. Ставить непонятно что на комп? А пин-код не надо?25% (1)
2. Хрень забавная но бесполезная0% (0)
3. Бесполезная поделка.0% (0)
Всего мнений: 4

Мопед не мой. Писал не я, а нанятый мною программист на Си.
Но использую на практике, поэтому делюсь с вами.
https://geniy1s.ru/developments-1s/adm-1s/zakrytie-navyazchivyh-okon-1s/
Надеюсь, не нарушаю никаких принципов 1С этой разработкой?
 
 Партнерская программа EFSOL Oblako
   Cyberhawk
 
1 - 15.05.20 - 17:35
Расширение бы лучше сделал
   Гений 1С
 
2 - 15.05.20 - 17:36
(1) Расширение надо в каждую базу вставлять, а так один раз вставил в автозапуск и забыл.
   Cyberhawk
 
3 - 15.05.20 - 17:38
(2) Подключение расширения при желании можно сделать через выполнение команды в cmd, на худой конец - спец. обработку по установке расширения в пользовательском режиме сваять и опять-таки ее из cmd запускать
   Cyberhawk
 
4 - 15.05.20 - 17:38
Ну и расширение-то кроссплатформенно, в отличие от сабжа
   Cyberhawk
 
5 - 15.05.20 - 17:39
Да еще и секундная задержка. Мрак.
   Гений 1С
 
6 - 15.05.20 - 17:39
(3) Можно, но сложно. Зачем, если можно просто?
   Гений 1С
 
7 - 15.05.20 - 17:40
(5) Ну это лучше, чем закрывать руками с утра 100500 окон
   Cyberhawk
 
8 - 15.05.20 - 17:40
(6) Путаешь простоту с кустарной работой
   Гений 1С
 
9 - 15.05.20 - 17:44
(8) Возможно, но я не перфекционист. Работает и ладно. Лучше чтобы хорошо работало СЕЙЧАС, чем идеально НИКОГДА
   Злопчинский
 
10 - 15.05.20 - 17:50
(9) тоже правильно!
   VladZ
 
11 - 15.05.20 - 17:59
(0) Да, реально уже бесят. Но тут, на мой взгляд, нужно решать концептуально: написать в фирму 1с, чтобы эти окошки не вываливались при старте.

Хочешь узнать, нужно ли обновление - нажми, бл*дь, кнопку!
Хочешь узнать какие-то новости - нажми, бл*дь, кнопку!

А то получается не программа, а ёлка новогодняя.
   Гений 1С
 
12 - 15.05.20 - 17:59
(11) надеюсь это надо воспринимать как "Спасибо"? ;-)
   VladZ
 
13 - 15.05.20 - 18:03
(12) На работе такое не поставишь.
А на домашнем компе нужно видеть, что будет происходить на компе пользователя.

Это всё, конечно, хорошо. Но устанавливать это я не буду.
   Cyberhawk
 
14 - 15.05.20 - 18:37
(11) Кнопку никто нажимать не будет. Но сделать эти алерты помягче - через тот же центр уведомлений - однозначно стоит
   Гений 1С
 
15 - 15.05.20 - 18:56
(13) почему не поставишь?
   Garykom
 
16 - 15.05.20 - 19:11
(0) Слабо тоже самое на https://oscript.io/ сделать?

там можно свои пакеты делать и в один exe собрать да.
   Гений 1С
 
17 - 15.05.20 - 19:13
(16) не интересно
   Garykom
 
18 - 15.05.20 - 19:18
(17) Ты понимаешь что твой exe готовый с хз что внутри никто вменяемый не запустит у себя?
А скомпилить код на c++ ню ню
   Гений 1С
 
19 - 15.05.20 - 19:19
(18) На чистом си. Ггг. Ну я же Гений 1С, мне можно доверять. Но хотите - компилируйте, выкладывайте у себя на сайтах, если вам больше доверяют.
   Garykom
 
20 - 15.05.20 - 19:20
(18)+ Точнее не ню ню а кто может скомпилить то такую хрень простейшую написать никаких проблем нет.
Вот если ты это же не только под Windows но и для Linux с macOS покажешь :)
   impulse9
 
21 - 15.05.20 - 19:20
(0) если там нет майнера, то никакой ты не гений )
   Garykom
 
22 - 15.05.20 - 19:22
(19) На чистом Си ? Да ну?
file.seekg(0, std::ios::beg);
   Garykom
 
23 - 15.05.20 - 19:25
(21) Не обязательно майнер сразу засовывать, достаточно чтобы стучался в инет и качал оттуда куда для выполнения
   Garykom
 
24 - 15.05.20 - 19:25
(23) *код для выполнения
   Гений 1С
 
25 - 15.05.20 - 19:26
(22) ггг... Пардон: Компилятоh bcc из пакета Embarcadero RAD (Berlin)
   Garykom
 
26 - 15.05.20 - 19:28
(25) Эээ нескромный вопрос. Почем брал?
http://store.embarcadero.ru/catalog/rubric/32
   Гений 1С
 
27 - 15.05.20 - 19:35
(26) Не в курсе. Писал для меня чувак. ;-)
   Гений 1С
 
28 - 15.05.20 - 19:37
Попробуй GCC https://gcc.gnu.org/
   Garykom
 
29 - 15.05.20 - 19:38
(28) У меня нет проблем скомпилить и легко могу это на go переписать или на lazarus только нафуя?
   Гений 1С
 
30 - 15.05.20 - 19:40
(29) ну как тебе сказать, чтобы не обидеть. Есть многое на свете друг Горацио, что и не видно с первого зырка!
 
 
   Garykom
 
31 - 15.05.20 - 19:40
   Гений 1С
 
32 - 15.05.20 - 19:41
(31) Это к чему?
   Garykom
 
33 - 15.05.20 - 19:43
(32) Это к тому что Lazarus бесплатен, ide с компилятором занимают мало места и код тоже прост и компактен.
Скомпилировать легко и просто было бы для желающих скачав готовый проект и убедившись что там нет лишнего.

И есть инструменты лучше чем C++ для подобных задач.

Короче вот вроде бы ты и полезную штуку сделал но через одно место и не сам.
   Гений 1С
 
34 - 15.05.20 - 19:48
(33) Перепиши. Тут такой момент. Кому надо - скачают моё ЕКЗЕ. Кому надо - улучшат и перепишут. Если не надо - останется как есть, то бишь буду пользоваться только я.
   v77
 
35 - 15.05.20 - 22:01
Вот на лазарусе то же самое. Только без мютекса(и так сойдет)

program wc;
{$mode objfpc}{$H+}
uses
  SysUtils,
  Classes,
  Windows;
const
  FileName = 'kwnd';
  Err1 =
    'Не найден файл "kwnd". Список заголовков окон должен быть записан в файле "kwnd"';
  Err2 =
    'Файл "kwnd" пуст. Список заголовков окон должен быть записан в файле "kwnd"';

procedure DoExit(s: string);
  var
    W, T: WideString;
  begin
    W := Utf8Decode(s);
    T := Utf8Decode('Ошибка');
    MessageBoxW(0, PWideChar(W), PWideChar(T), MB_OK);
    ExitProcess(1);
  end;

var
  list: TStringList;
  Timer: integer;
  s: string;
  hWnd: THandle;
begin
  list := TStringList.Create;
  if not FileExists(FileName) then
    DoExit(Err1);
  list.LoadFromFile(FileName);
  if list.Count = 0 then
    DoExit(Err2);
  Timer := 1000;
  if ParamCount > 0 then
  begin
    if TryStrToInt(ParamStr(1), Timer) then
      Timer *= 1000;
  end;
  while True do
  begin
    for s in list do
    begin
      hWnd := FindWindow(nil, PChar(s));
      if (IsWindow(hWnd)) then
        SendMessage(hWnd, WM_SYSCOMMAND, SC_CLOSE, 0);
    end;
    Sleep(Timer);
  end;
  list.Free;
end.  

   Gimalaj
 
36 - 15.05.20 - 22:31
(34) >> то бишь буду пользоваться только я
Ты не одинок. Я тоже буду :)
   mikecool
 
37 - 15.05.20 - 22:50
(0) что-то, Серега, в последнее время мало ты нам даришь...
и впрямь - основной возраст для свершений и подвигов до 25, а потом только почивание на лаврах
   Garykom
 
38 - 15.05.20 - 23:26
(35) Кстати идея то неплоха.

Сделать утилиту в трей по типу баннерезки.
Суть что появилось левое окно - тыкаем в трей, там список всех окон, выбираем которое резать и опс оно добавлено в файлик для закрытия в цикле.
   Волшебник
 
Модератор
39 - 16.05.20 - 00:01
(37) дык и этот мопед не его
   Гений 1С
 
40 - 16.05.20 - 10:48
(39) мой не мой, какая разница. Важен результат
   Гений 1С
 
41 - 16.05.20 - 10:51
(37) дарю сейчас больше себе. Здоровый эгоизм
   v77
 
42 - 16.05.20 - 11:16
(38) Да мне как то фиолетово на это всё. Потратить за день пару кликов мышкой не так накладно. Раньше бесило, а шас как то привык на автомате закрывать сразу.
   v77
 
43 - 16.05.20 - 12:37
Вот подшаманил немножко


Содержимое скопировать в файл wc.lpr
Скачать и установить FreePascal https://sourceforge.net/projects/freepascal/files/Win32/3.0.4/fpc-3.0.4.i386-win32.exe/download
Открыть консоль. Перейти в папку, где лежит wc.lpr. Выполнить fpc wc.lpr
wc.o можно удалить
program wc;
{$apptype gui}
{$mode objfpc}{$H+}
{$codepage UTF8}
uses
  SysUtils,
  Classes,
  Windows;

const
  FileName = 'kwnd';
  Err2: unicodestring =
    'Файл "kwnd" пуст. Список заголовков окон должен быть записан в файле "kwnd"';
  Err: unicodestring = 'Ошибка';

  procedure DoExit(s: UnicodeString);
  begin
    MessageBoxW(0, PWideChar(s), PWideChar(Err), MB_OK);
    ExitProcess(1);
  end;

var
  list: TStringList;
  ww: array of UnicodeString;
  Timer: integer;
  w: UnicodeString;
  hWnd: THandle;
begin
  list := TStringList.Create;
  if not FileExists(FileName) then
    begin
        list.Add('Информация - Бухгалтерия предприятия, редакция 3.0');
        list.Add('Рекомендуется обновить версию конфигурации');
        //list.Add('Запуск 1С:Предприятия'); 

        list.SaveToFile(FileName);
    end else
  list.LoadFromFile(FileName);
  if list.Count = 0 then
    DoExit(Err2);
  for w in list do
  begin
    setlength(ww, length(ww) + 1);
    ww[length(ww) - 1] := w;
  end;
  list.Free;
  Timer := 1000;
  if ParamCount > 0 then
  begin
    if TryStrToInt(ParamStr(1), Timer) then
      Timer *= 1000;
  end;
  while True do
  begin
    for w in ww do
    begin
      hWnd := FindWindowW(nil, PWideChar(w));
      if (IsWindow(hWnd)) then
        SendMessage(hWnd, WM_SYSCOMMAND, SC_CLOSE, 0);
    end;
    Sleep(Timer);
  end;
end.


   Гений 1С
 
44 - 16.05.20 - 12:55
(43) Ого, Паскаль. Он еще жив? ;-) Дельфи-стайл, вау-вау. ;-)
(42) знаешь, как копейка бережет рубль, так и клик бережет час.
   Злопчинский
 
45 - 16.05.20 - 13:05
а что там такое Лазарус и Киликс? это же что-то типа Делфей?
   spectre1978
 
46 - 16.05.20 - 13:25
(45) кайликс это Дельфи и есть, только кросс-платформеная. Вернее была, потому что сейчас, кажется, этот проект переродился во что-то другое у эмбаркадеро. А лазарус это свободный софт по мотивам Дельфи, написанный с применением компилятора фрипаскаль и своей библиотеки визуальных компонентов, похожей на VCL.
   Dmitry1c
 
47 - 16.05.20 - 13:30
(0) какие окна-то закрывает?

я тоже такую писал, моя закрывает оповещения, но новости закрыть не может
   Garykom
 
48 - 16.05.20 - 13:31
(45) Это бесплатный кроссплатформенный дельфи https://www.lazarus-ide.org/
Даже под Android c iOS можно писать - но не нужно.
Для декстопных/консольных утилит подходит идеально.
   Dmitry1c
 
49 - 16.05.20 - 13:32
namesToKill.push_back((LPCSTR)"Подключение Интернет-поддержки");
    namesToKill.push_back((LPCSTR)"Новые сообщения для расшифровки по 1С-Отчетности");
    //namesToKill.push_back((LPCSTR)"Напоминания");

    namesToKill.push_back((LPCSTR)"Рекомендуется обновить версию конфигурации");
    namesToKill.push_back((LPCSTR)"Обновление модуля документооборота с контролирующими органами");
    namesToKill.push_back((LPCSTR)"1C-Отчетность - отчетность прямо из 1С!");
    namesToKill.push_back((LPCSTR)"Проверка правомерности использования конфигурации");
    namesToKill.push_back((LPCSTR)"1С-Отчетность");

    vector<LPCSTR> namesToKillByName;
    namesToKillByName.push_back((LPCSTR)"V8ConfirmationWindowTaxi");
    namesToKillByName.push_back((LPCSTR)"V8NotificationWindow");
    namesToKillByName.push_back((LPCSTR)"V8StateDlg");

моя вот это умеет закрывать
   spectre1978
 
50 - 16.05.20 - 13:32
(47) 1совские. Что есть обновление, информационный блок при начале работы, вот это вот все. В (0) по ссылке написано.
   Garykom
 
51 - 16.05.20 - 13:33
(48)+ Кому интересно то есть отличный шаблон ВК на Lazarus
https://github.com/Zawullon/fpnativeapi
   Dmitry1c
 
52 - 16.05.20 - 13:34
Я не понял, а зачем Г1С использовал мьютекс?
   spectre1978
 
53 - 16.05.20 - 13:34
(48) ну с Дельфи у него общего как у опенофиса с мсофисом. т.е. местами имитирует, а местами различия очень даже заметные.
   Dmitry1c
 
54 - 16.05.20 - 13:35
И где у Г1С определяется список того, что на может закрыть?
   spectre1978
 
55 - 16.05.20 - 13:36
(52) шоб прогу дважды не запустили. Эта фишка бродила ещё по дельфийским фидошным конфам году в 1998
   Dmitry1c
 
56 - 16.05.20 - 13:36
(55) синглтон чтоль?
   Garykom
 
57 - 16.05.20 - 13:36
И да напишите кто нить (38) утилиту трей "с обучением" какие окна закрывать.
Чтобы как uBlock Origin или AdBlock работала.

Левые окна не только в 1С есть, многий софт (от adobe например) тоже всякие окошки обновления/рекламы показывает.
   Dmitry1c
 
58 - 16.05.20 - 13:37
Ну моя программа занимает 200кб в оперативной памяти, даже не представляю что будет, если я два экземпляра её без мьютекса запущу :)
   spectre1978
 
59 - 16.05.20 - 13:38
(56) типа того. Только не на уровне проги, как у банды четырех, а на уровне работающего экземпляра ОС.
   Garykom
 
60 - 16.05.20 - 13:38
(57) А потом допилить ее до "Обновлятора 1С" ))
 
 
   Garykom
 
61 - 16.05.20 - 13:39
(60)+ И разрешить из 1С через http соединяться с этой прогой в трее и управлять чем то.
А потом и "плагины" туды ))
   Dmitry1c
 
62 - 16.05.20 - 13:41
(54) +по текстовому файлу. понял.

я тоже так думал сделать, но потом забил хрен.
   spectre1978
 
63 - 16.05.20 - 13:47
(58) В какой-то момент несуществующему хэндлу окна сообщение пошлёте. Ну и проц будут два процесса больше жрать чем один.
   Garykom
 
64 - 16.05.20 - 13:50
(58) Сделай свою прогу "полезным вирусом" который борется с тиранией 1С ))
   spectre1978
 
65 - 16.05.20 - 13:50
(62) да. Там, кстати, коряво у него сделано - строки произвольной длины читаются из файла, а потом это копируется через strcpy в строку фиксированной длины 1024. Можно атаковать.
   Гений 1С
 
66 - 16.05.20 - 15:18
(46) Назови мне хоть одну причину, почему нужно использовать Паскаль вместо Си? Убогий язык, как по мне...
(47) сходи в статью и почитай. Там картинки с примерами есть. Новости и сообщения о бэкапе не закрывает, да. Ибо это не окна. Вернее, окна, но без заголовка, а определенного класса. Их сложно идентифицировать.
(49) это замечательно, но где ее можно заюзать? И где ты был, когда я гуглил эту программу для закрытия окон? ;-) Зато теперь любой желающий может зайти на мой сайт и скачать полезный инструмент.
(52) мьютекс использовал не я, а программист. Задача была - не запускать дважды. В принципе, да, можно было при старте по списку процессов пробежаться. Но я не стал придираться.
(54) в файле kwnd без расширения.
(57) ну пока они напишут, будь хардкорным и пиши руками заголовки в kwnd. :-) используй Au3info или подобные.
(58) моя занимает 472 килобайта в ОЗУ.
(62) простота - признак мастерства. ггг..
(65) пользователь сам себя что ли атаковать будет? ;-)
   acht
 
67 - 16.05.20 - 15:25
И где ты был, когда я гуглил? [x]
   Garykom
 
68 - 16.05.20 - 15:49
(66) >Назови мне хоть одну причину, почему нужно использовать Паскаль вместо Си? Убогий язык, как по мне...
Язык 1С не менее убогий, дело не в ЯП а в его возможностях, платформе, фреймворках, библиотеках.

Delphi/Lazarus на данный момент до сих пор остается отличной штукой, хотя уже есть ничуть не хуже.
Вот как раз C++ это убогий - и даже этот убогий ты не смог осилить.
Как впрочем и я не смог на достаточном уровне. Ибо нахрена учить суахили когда есть эсперанто.
   aka AMIGO
 
69 - 16.05.20 - 15:54
(68) ""Язык 1С не менее убогий"" - не подходит определение, сравнивать его с каким-либо другим - бессмысленно, это объектно-ориентированный язык, и, слава богу, не нужно знать языков других для составления специфических алгоритмов на нём. Менее универсален, существует только в одной среде - это - ДА, но говорить об убогости - неуместно.
   v77
 
70 - 16.05.20 - 16:07
(66) Паскаль конечно убогий язык. Им ничего лизнуть нельзя.
   Garykom
 
71 - 16.05.20 - 16:24
Хе прикольная штука Rust

extern crate winapi;
extern crate user32;
use std::ffi::CString;

fn main() {
    println!("Hello, world!");
    let window_name = CString::new("hello-rust").unwrap();     
    unsafe {
        let h_wnd = user32::FindWindowA(std::ptr::null_mut(), window_name.as_ptr());
        user32::SendMessageA(h_wnd, winapi::WM_SYSCOMMAND, winapi::SC_CLOSE, 0);
    }
}
   Garykom
 
72 - 16.05.20 - 16:25
(71) и да я Rust 20 минут назад впервые поставил и попробовал
   v77
 
73 - 16.05.20 - 16:51
(72) Правильно. Go ты уже изучил. Можно приступать к Rust
   ДенисЧ
 
74 - 16.05.20 - 16:54
(71) паскаль, жс и мфц в одной коробке?
   Гений 1С
 
75 - 16.05.20 - 16:56
(68) я на первой работе работал на BC++ и VC++. И че? Но не стоит устраивать холивар. Си просто изящнее Паскаля, примерно как JSON изящнее XML
   ДенисЧ
 
76 - 16.05.20 - 17:06
(75) "Си просто изящнее Паскаля"
Мда. Был бы тут twit - я бы его на тебя поставил...
   Besogonskiy
 
77 - 16.05.20 - 17:11
Полезная на мой взгляд программа. Гений как всегда на высоте.
   Garykom
 
78 - 16.05.20 - 17:28
(75) Извини но ты какую то хрень спорол.
Если ты "на первой работе работал на BC++ и VC++" то написать самому нечто вроде (0) полчаса максимум.
И неважно сколько лет прошло.
   v77
 
79 - 16.05.20 - 18:05
(75) А в институте ты не учился случайно?
   v77
 
80 - 16.05.20 - 18:11
(78) Такое может быть. У баб часто бывает. Институт закончила, замуж вышла и забыла всё нахер. Нет у человека интереса просто.
   Garykom
 
81 - 16.05.20 - 18:18
(80) Значит в институте не сами учились а натягивали глобус на сову.
Это полнейшая тупость несколько лет потратить в никуда, ради диплома который фактически не нужен.
   Garykom
 
82 - 16.05.20 - 18:21
(81)+ Возраст до 25 лет самый продуктивный для обучения и свершений.
Далее все становится сильно хуже и если не получить до 25 лет базу и не развить интеллект с памятью то дальше все. Только деградация с точки зрения физиология и вот такие "гении" которые лисапеды выдают как открытие.
   NorthWind
 
83 - 16.05.20 - 18:22
(66) на мой взгляд, вариант с мьютексом как раз проще и изящнее, чем ковырять список процессов. Единственный недостаток мьютекса - то что это лишний объект который потребляет ресурсы системы - в нынешних условиях смешон.
   NorthWind
 
84 - 16.05.20 - 18:25
+ (66) пользователь сам себя атаковать не будет, наверно. Но есть понятие - опасный и безопасный код. Когда вы можете в конфигурационные файлы или в поля ввода набить какой-нибудь херни и программа упадет или выполнит несанкционированное действие - это считается плохо
   ДенисЧ
 
85 - 16.05.20 - 18:29
(82) Вот что ты совершил в 25? Я совершил самую большую глупость в жизни, например...
   rphosts
 
86 - 16.05.20 - 18:30
(0) у кого-то на "острове разума" каждый поц может ставить любую хрень на комп/сервер?
   rphosts
 
87 - 16.05.20 - 18:31
(85) пошёл в кодеры?
   Garykom
 
88 - 16.05.20 - 18:32
(85) Догадался бросить универ когда понял что это хрень и трата времени.
   ДенисЧ
 
89 - 16.05.20 - 18:32
(87) Не, это раньше. Лет на 15..
   ДенисЧ
 
90 - 16.05.20 - 18:34
(88) В 25 лет бросить универ - это надо постараться... У меня в 23 уже диплом был...
   rphosts
 
91 - 16.05.20 - 18:34
(89) c 10 лет кодил? Круто!!!
   rphosts
 
92 - 16.05.20 - 18:34
(90) бросил аспирантуру? Женился?
   Garykom
 
93 - 16.05.20 - 18:35
(90) В 3-й раз бросил )) К тому времени давно работал сисадмином и программистом
   ДенисЧ
 
94 - 16.05.20 - 18:38
(93) Ну, у меня это был уже второй красный )))
(92) аспирантуру? У меня есть борода, но это не значит, что...
   ДенисЧ
 
95 - 16.05.20 - 18:38
(93) Видели мы сисадминов в 25 лет....
   Garykom
 
96 - 16.05.20 - 18:43
(95) В 23 года в одиночку (ну кроме помощи знакомых/друзей) с нуля поднимал сетку на 200 компов и админил с dc (понятно что винда) и прочими железками.
Параллельно изучая программирование.
   Djelf
 
97 - 16.05.20 - 18:50
(96) Поддерживаю. Это сильно зависит от скорости обучения, от знания английского (сейчас это на порядок менее актуально), от количеств бухла и распределения времени.
В принципе сейчас можно сисадмином уже и в 15лет стать, я не говорю по топ-лэвел, где все очень сложно, но но 200 компов знаний может уже хватить.
   Garykom
 
98 - 16.05.20 - 18:53
(97) Сейчас это даже проще ибо нет есть в помощь с кучей ресурсов.
А тогда была жопа в 2002-2003 ибо диалап (редко редко и очень дорого был adsl) и ресуров в инете почти не было.
Приходилось книжки бумажные искать и читать а так же методом тыка.
   Garykom
 
99 - 16.05.20 - 18:55
(98)+ Вот это блин была как библия https://10.img.avito.st/1280x960/5722799310.jpg и подобные книги
   Garykom
 
100 - 16.05.20 - 18:57
  1  2   

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.