Вопрос Помогите добавить Синтаксис 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 синтаксис в мой код?
 

Crachlow

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

Изучая функционал Планировщика заданий, я столкнулся с необычной проблемой.
У меня есть файл с заданием, для Планировщика заданий, который я создал на первом ПК и он прекрасно импортируется и работает на втором ПК. Но такой способ экспорта - импорта Задания для меня не удобен, я начал искать способ как упростить перенос файла с заданием и нашел Папку Библиотеки Планировщика заданий по адресу 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 /?
 

Егор1988-00

Новичок
Спасибо всем за подсказки, буду штудировать примеры. Отпишусь по итогу..
 

Егор1988-00

Новичок
В 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}"
код стал выглядеть так, скомпилировал, запустил.
что то не срабатывает, файл не прописался(
 
Последнее редактирование:

Crachlow

Старожил
/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
создается и удаляется
 
Последнее редактирование:

Crachlow

Старожил
Код:
; 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 это что?
 

Егор1988-00

Новичок
Код:
[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:
только теперь дефендер ругается - будет тема для нового поста)
Но спасибо, очень выручил!
 

Егор1988-00

Новичок
Дефендер, наверное, ругается на файл который ты запускаешь?
файл точно не причем, сам по себе файл запускается без проблем, точнее программа.
на сколько я понимаю, он ругается на метод извлечения файлов.
прикрепил внизу скрин его подозрений)
image_2023-06-10_18-30-34.png
 

Crachlow

Старожил
это имя моей задачи, которая запускает программу 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
тоже пропиши что бы при удалении задание удалялось
 

Егор1988-00

Новичок
Я запускал инсталлятор чистый без доп. файлов с дефендер, пришлось ставить на виртуальную машину новую ось, в моей убит деф. на глухо, никаких срабатываний нет. Задние создает и никаких срабатываний.
Код:
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

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

Crachlow

Старожил
файл точно не причем, сам по себе файл запускается без проблем, точнее программа.
на сколько я понимаю, он ругается на метод извлечения файлов.
прикрепил внизу скрин его подозрений)
Посмотреть вложение 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"" замени на свое
 

Crachlow

Старожил
Код:
[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
 
Последнее редактирование:

Егор1988-00

Новичок
Код:
[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
но к сожалению файл НЕ добавился в исключения дефа почему то(
 
Сверху