Маленькое окно на C#, собирается компилятором из состава Windows: ставить нечего, зависимостей нет — как и у всего остального в проекте. Запускает node дочерним процессом, показывает его вывод, прячется в трей, красит значок по /api/state. Node теперь уходит вместе с окном: окно держит его stdin, server.mjs при DEEPSEEK_TRAY=1 слушает close на этой трубе. Job Object не подошёл бы — он забрал бы с собой и браузер, который человеку нужен. Окно смотрит на checked, а не только на ready: снимок обновляет сторож, и без этой проверки окно показывало бы «готов» через секунду после смерти браузера. Поэтому /api/state отдаёт ещё и watchdogSec. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
16 lines
657 B
Batchfile
16 lines
657 B
Batchfile
@echo off
|
|
rem ASCII only - cmd.exe reads .cmd in the system codepage, not UTF-8.
|
|
rem Builds deepseek-api.exe from tray.cs with the C# compiler shipped in Windows.
|
|
setlocal
|
|
set CSC=%WINDIR%\Microsoft.NET\Framework64\v4.0.30319\csc.exe
|
|
if not exist "%CSC%" set CSC=%WINDIR%\Microsoft.NET\Framework\v4.0.30319\csc.exe
|
|
if not exist "%CSC%" (
|
|
echo csc.exe not found. .NET Framework 4.x is required.
|
|
exit /b 1
|
|
)
|
|
"%CSC%" /nologo /target:winexe /optimize+ /out:"%~dp0deepseek-api.exe" ^
|
|
/r:System.dll /r:System.Drawing.dll /r:System.Windows.Forms.dll ^
|
|
/r:System.Web.Extensions.dll "%~dp0tray.cs"
|
|
if errorlevel 1 exit /b 1
|
|
echo Built: %~dp0deepseek-api.exe
|