[summary: This binkd/0.9.2 executable for WinNT fixes the bug that didn't allow to run binkd as a service. Now this is possible, with the help of instsrv and srvany tools that can be found in WindowsNT Resourse Kit.] From: "Dmitry Semkin" To: "Nick Soveiko" Subject: Re: BinkD для NT и 95 Date: Sun, 16 Nov 1997 13:21:35 +0300 Mime-Version: 1.0 Content-Type: text/plain; charset="koi8-r" Content-Transfer-Encoding: 8bit BinkD/NT и BinkD/95 - обычные консольные приложения. Стоит NT. Накойхер (глагол) мне на консоли эти буквы и цифры? Все что надо есть в журнале. Кроме того. Как бы сделать так, чтобы это крутилось под NT постоянно , независимо от того, работает кто на машине, нет, залочена ли она, чтобы автоматически стартовала... И, главное, чтобы никакой удак, кроме меня, не мог его погасить (что, в случае, если приложение висит на экране, легко сделать, нажав заповедный крестик в правом верхнем углу окна). Это предпосылки. В WindowsNT Resourse Kit есть две хорошие задачки, называющиеся instsrv и srvany, с помощью которых я могу _любое_ приложение запустить как сервис. При этом оно живет себе, с экраном не общается и старт/стоп только через панель управления. Все хорошо, но нет. BinkD отлавливает LogOff и благополучно умирает. За это отвечает функция BOOL SigHandler(DWORD SigType) в файле nt\breaksig.c. Точнее ее кусок case CTRL_LOGOFF_EVENT: Log(1,"Interrupted by Logoff"); break; Вот эта часть исправляется на case CTRL_LOGOFF_EVENT: Log(1,"LogOff detected"); exitfunc(); return (FALSE); break; После чего BinkD продолжает жить и работать по-Ленински после LogOff. Это одно. Второе. Чтобы собрать это удовольствие под Visual C++ 5.0 в файл tools.h (я так понимаю, он появился в версии 0.9.2, поскольку предыдущие собирались на ура) необходимо включить #include Иначе компилятор не знает про тип size_t со всеми вытекающими. P.S. Я тут подумал, наверное грамотнее будет #if !defined(NT) && !defined(W95) #include #end ======================================================================== This binkd/0.9.2 executable for WinNT fixes the bug that didn't allow to run binkd as a service.