Member 12315889 Ответов: 1

Можем ли мы запустить windows exe из windows task schudler


Я создал одно приложение windows, которое создаст папку и запишет в нее файл.



я создал планировщик задач в windows server 2012 R2, как показано ниже
2. я должен был настроить учетную запись, которая имеет доступ администратора
3.

Проблема:
1. Планировщик заданий выполните команду файл EXE . но проблема заключается в том, что он не открывает форму, чтобы скрипт vb не нашел кнопку, чтобы нажать ее, чтобы задача была запущена.
2. я не уверен, в чем проблема. но я чувствую, что для того, чтобы нажать кнопку enter из скрипта vb, форма должна быть открыта в системе.

Примечание:когда я когда-либо пытался дважды щелкнуть по пакетному файлу, он открывал форму и нажимал на кнопку. работает, как и ожидалось .

Что я уже пробовал:

1.создан Планировщик заданий. где я дал путь к пакетному файлу . что он делает , так это пакетный файл вызывает vb-скрипт, а vb-скрипт вызывает exe-файл и нажимает кнопку enter, чтобы exe - файл начал выполняться.
2. ниже приведена конфигурация планировщика задач
Step 1: Create a batch file you wish to run and place it under a folder where you have enough permissions. For example under C drive.

Step 2: Click on Start and under search, type in Task and click open Task Scheduler.

Step 3: Select Create Basic Task from the Action pane on the right of the window.

Step 4: Under Create Basic Task, type in the name you like and click Next.

Step 5: From the Trigger select the option you like and click Next.

I chose Daily and clicked Next, which brought me to this screen.

Step 6: Then click on Start a Program and click Next.

Step 7: Now click on Browser and select the batch file you like to run.

Step 8: Finally, click on Finish to create the Task.

Step 8: Click on Run with Highest privilege then click OK.



Мой Vb скрипт выглядит следующим образом
<pre lang="vb">
Dim shell

set shell = WScript.CreateObject("WScript.Shell")

shell.Run "\\10.248.8.162\Shared\Sunil\DailyReporting\RunTool\Tool\ProductionMonitoringTool.exe"

shell.AppActivate "MonitoringForm"

WScript.Sleep 2000

shell.SendKeys "Going to press enter"
shell.SendKeys "{ENTER}"
shell.SendKeys "pressed enter"

1 Ответов

Рейтинг:
2

Dave Kreskowiak

Не совсем ясно, какое приложение вы написали. Это приложение Windows Forms, которое вы написали, или консольное приложение? Или вы запускаете какой-то другой встроенный исполняемый файл Windows и пытаетесь манипулировать им с помощью своего приложения? О какой кнопке ты говоришь? Что это за история с этим VBScript и как она связана со всем остальным?

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

VBScript не сможет "нажать кнопку" на рабочем столе, который никогда не получает пользовательский ввод.

Кроме того, чтобы запустить это задание с доступом к сети, учетная запись, под которой вы настраиваете задание планировщика, должна иметь доступ к сетевому ресурсу, как и любой другой пользователь, который будет это делать. Запуск этого задания под учетной записью LocalSystem (SYSTEM) не будет работать. У него не будет доступа к сетевым ресурсам.


johannesnestler

Я думал то же самое - простое решение, возможно, просто использовать аргументы командной строки и запустить приложение в режиме "консоли", который выполняет эту работу без формы. Но ОП не дал достаточно релевантной информации, как вы указали...

Member 12315889

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

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

если вышеприведенное положение верно, то не могли бы вы, пожалуйста, дать мне знать, как я могу найти кнопку, чтобы нажать?

Dave Kreskowiak

Проблема в том, что "пакетный файл" не может найти кнопку и нажать ее, когда эта кнопка никогда не сможет иметь фокус ввода.

Вы допустили ошибку, сделав это приложение Windows Forms вместо консольного приложения.

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