Как заставить иконку в трее запущенной программы появляться из набора запланированных задач, независимо от того, вошел ли пользователь в систему или нет? - PullRequest
0 голосов
/ 12 июня 2018

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

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

Итак, есть ли способ заставить значок на панели задач запущенной программы отображаться при вызове из запланированной задачи, установленной для запуска независимо от того, вошел ли пользователь в систему илине?(даже если это означает, что в пакетном файле должен быть указан конкретный пользователь / пароль профиля Windows)

Вот пакетный файл, выполненный из запланированной задачи, обратите внимание, что значок на панели задач отсутствует на shell.Run line atвнизу:

@if (@CodeSection == @Batch) @then
@echo off & setlocal

set "URL=http://**********HIDDEN**********.php?pull=1";
cscript /nologo /e:jscript "%~f0" "%URL%";

goto :EOF
@end

var x = WSH.CreateObject("Microsoft.XMLHTTP");

x.open("GET",WSH.Arguments(0),false,"********","********");
x.setRequestHeader('User-Agent','XMLHTTP/1.0');
x.send('');
while (x.readyState != 4) WSH.Sleep(50);

if (x.status == 200 && x.responseText == '1') {
    var shell = WScript.CreateObject("WScript.Shell");
    shell.Run('"C:\\Program Files\\TightVNC\\tvnserver.exe"');
}

1 Ответ

0 голосов
/ 12 июня 2018

Что ж, я закончил тем, что выполнил вторую запланированную задачу, которая запускается только тогда, когда пользователь вошел в систему, и этот пакетный файл запускает программу, делая ее значок на панели задач видимым.Он запускается через 3 секунды после первой запланированной задачи, которая, как видно из OP, извлекает байт с сервера, но затем внизу, вместо выполнения shell.Run (), создает текстовый файл cookie и вторую запланированную задачузабирает его через 3 секунды.

Таким образом, когда компьютер автоматически отключается / выходит из сеанса Windows, первая запланированная задача запускает службу вместо приложения (без значка, но кого это волнует), но затем, когда пользовательрегистрируется в сеансе Windows, вторая запланированная задача берет текстовый файл cookie, оставленный первой запланированной задачей, и отображает значок в трее.

Работает как чудо, но стоит отметить, что все запущеноиз запланированной задачи, установленной для запуска независимо от того, вошел ли пользователь в систему или нет, НИКОГДА не будет отображаться значок панели задач / панели задач / уведомлений, НИКОГДА. Все последующие всплывающие программы, процессы или команды из этой запланированной задачи будут невидимы для пользователя.Например, если он запускается в закрытом сеансе, даже если указан пользователь / пароль учетной записи Windowsредактировать в запланированном задании и что программа запускается от имени указанной учетной записи пользователя.Это просто способ запланированных задач, это своего рода ограничение, IMO, но его можно преодолеть с помощью упомянутого выше взлома.

Чтобы предотвратить любые сбои, так как эта запланированная задача выполняется каждые 5 минут, я использовалбинарный файл CMDH.exe размером 8 КБ, который я связал с пакетными файлами, развернутыми на компьютерах.http://www.gate2.net/tools/cmdh/cmdh.html

...