![]() |
Перевод фокуса на программу, запускаемую из планировщика (notepad++)
Программы, которые необходимо часто запускать с правами администратора, а также те, которые размещаются в автозагрузке, запускаю ярлыком через планировщик.
Для некоторых программ (например, Notepad++) нужно реализовать перевод фокуса на эту программу. Вот в этой статье описывается способ с командой start применительно к Windows 7: В качестве примера приводится команда: /c start /d "C:\Windows\System32\" cmd.exe Не понятно, что за "/с" здесь указывается перед командой start ? Проблема 1. notepad++ невозможно нормально прописать в качестве программы по умолчанию для текстовых файлов и логов: 1) Настройки ассоциаций в параметрах самой программы никакого эффекта не приносят 2) В списке программ "Приложения по умолчанию - Задать значения по умолчанию по приложению" программы "notepad++" нет и добавить её в этот список невозможно (нет соответствующий кнопок) 3) Единственный вариант - добавлять "notepad++" для каждого расширения конкретно ("Выбор стандартных приложений для типов файлов"). Так и сделал - для .txt и .log. Но при этом имеем: - при запуске текстового файла из Far Manager, проводника или ярлыком notepad++ нормально запускается - но при запуске текстового файла через задачу планировщика (в качестве действия указывается путь к текстовому файлу) открывается окно "Каким образом вы хотите открыть этот файл ?" с выделенным пунктом "notepad++". А ведь запуск через планировщик как раз нужен для реализации запуска с правами администратора без подтверждения. Проблема 2. Для того, чтобы запустить текстовый файл с помощью "notepad++" с правами администратора без подтверждения, приходится в планировщике явно указывать программу для запуска (галка "Запускать с наивысшими правами" устанавливается): Код:
"C:\Program Files\Notepad++\notepad++.exe" "F:\...\error.log" Код:
start /d "C:\Program Files\Notepad++\" "notepad++.exe" "F:\...\error.log" Итого. Нужно либо: а) заставить Windows 10 средствами планировщика (когда в качестве действия указывается путь к текстовому файлу) сразу запускать notepad++ без окна "Каким образом вы хотите открыть этот файл ?" б) "Научить" планировщик выполнять команду: Код:
start /d "C:\Program Files\Notepad++\" "notepad++.exe" "F:\...\error.log" |
Цитата:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run (или где там оно еще себя пишет. обычно тут, но есть еще парочка мест) в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run --- Свойства notepad.exe - Совместимость - Изменить для всех - Запускать от Админа(галочку жмакнуть) - и настроить ассоциации у него на *.log, *.txt Т.к. он будет от Админа, то будет доступ в кусты реестра для записи. ---- для запуска оконных приложений (GUI) через start указывай пустое имя_окна Код:
start "" /d "C:\Program Files\Notepad++\" "notepad++.exe" "F:\...\error.log" |
Цитата:
2. «/c» — это параметр интерпретатора команд cmd.exe, означающий «выполнить команду, идущую за данным параметром и завершить работу приложения». Почему именно интерпретатор команд? Потому что start — внутренняя команда интерпретатора, а не внешняя утилита в виде исполняемого файла. Цитата:
|
Iska, Без конкретики, но, при запуске, получить хендл окна по заголовку и отдать ему фокус, Не?
|
Цитата:
![]() |
Цитата:
Цитата:
Код:
cmd.exe /c start /d "C:\Windows\System32\" cmd.exe |
Цитата:
npp.7.4.2.Installer.x64.exe В начале установки там имеется галка, отвечающая за портативную версию - она снята. После установки имеем: 1) В "Пуск - Недавно установленные программы" отсутствует 2) В "Параметры - Приложения и возможности" в списке установленных приложений присутствует (Notepad++ 64-bit x64 7.4.2) 3) В "Приложения по умолчанию - Задать значения по умолчанию по приложению" в списке программ программы "notepad++" нет Ещё раз переустановил (удалил и установил). Поведение абсолютно то же самое: 1) при запуске текстового файла из Far Manager, проводника или ярлыком notepad++ нормально запускается 2) при запуске текстового файла через задачу планировщика (в качестве действия указывается путь к текстовому файлу) открывается окно "Каким образом вы хотите открыть этот файл ?" с выделенным пунктом "notepad++" |
Цитата:
Правда, моргает окно cmd.exe. Но зато запускаемая программа фокус нормально получает. Код:
cmd.exe /c start "" /d "C:\Program Files\Notepad++\" "notepad++.exe" "F:\...\error.log" Цитата:
Код:
cmd.exe /c start "" /d "F:\..." "error.log" Но в конечной команде всё равно оставил явный вызов notepad++.exe на всякий случай. Раз уж он такой капризный... Код:
cmd.exe /c start "" /d "C:\Program Files\Notepad++\" "notepad++.exe" "F:\...\error.log" |
CyraxZ, я не уверен, что:
Цитата:
Код:
cmd.exe /c start "" "C:\Program Files\Notepad++\notepad++.exe" "F:\...\error.log" |
Цитата:
|
Цитата:
|
Время: 09:42. |
Время: 09:42.
© OSzone.net 2001-