1 (edited by blackjurist 2023-05-22 08:12:32)

Topic: Как сделать кнопку, которая будет открывать стороннее приложение?

Всем доброго дня, я как человек далёкий от создания скриптов и коддинга, прошу помощи в создании скрипта для кнопок которые будут открывать при нажатии на них сторонние программы.
В данном проекте, есть форма frmSoft,  на которой располагаются кнопки открытия приложений для дальнейшей работы с ними:
1 кнопка WINBOX будет открываться из папки находящейся в папке проекта: apps\winbox\winbox64.exe
2 кнопка RMS VIEWER будет открываться из папки расположенной C:\Program Files (x86)\Remote Manipulator System - Viewer\rutview.exe

Буду очень благодарен за помощь!!!

проект в ссылке https://disk.yandex.ru/d/rRhFMId0cnfl4A

Re: Как сделать кнопку, которая будет открывать стороннее приложение?

Привет
1. Включите «scripts»; это создает «events tab» (см. «screenshot» в приложении).
2. Выберите свою форму и кнопку, для которой вы хотите создать «event».
3. Выберите тип события — в данном случае это «on click». Введите имя для вашего события «onclick» (например, «winbox» или «rmsviewer», а затем «doubleclick». Это приведет вас к редактору сценариев, где вы увидите, что он создал пустую «procedure».
4. Между строками «begin» и «end» введите соответствующую инструкцию — в вашем случае вы хотите использовать команду «openfile», а затем введите местоположение программы.
В приложенном примере вам может понадобиться изменить расположение программы, если я ее не правильно скопировал.
Я добавил две дополнительные кнопки, чтобы продемонстрировать, что вы можете делать. Кнопка «GOOGLE» использует команду «openurl» вместо команды «openfile».
Надеюсь, это поможет.
Derek
.
1.  Turn on 'scripts' ;  this creates an 'events tab'.
2.  Select your form and the button you want to create an 'event' for.
3.  Choose the event type - in this case it is 'onclick'.  Enter a name for your 'onclick' event (for example 'winbox' or 'rmsviewer' and then 'doubleclick'.  This takes you to the script editor where you will see that it has created an empty 'procedure'.
4.  Between the 'begin' and 'end' lines type in the relevant instruction - in your case you want to use the 'openfile' command and then enter the location of the program.
In the attached example, you might need to change the location of the program if I've not copied it correctly.
I've added two extra buttons to demonstrate the sort of things you can do.  The 'GOOGLE' button uses the 'openurl' command instead of the 'openfile' command.

Post's attachments

Attachment icon mechanics.zip 1.16 mb, 94 downloads since 2023-05-22 

Re: Как сделать кнопку, которая будет открывать стороннее приложение?

derek wrote:

Привет
1. Включите «scripts»; это создает «events tab» (см. «screenshot» в приложении).
2. Выберите свою форму и кнопку, для которой вы хотите создать «event».
3. Выберите тип события — в данном случае это «on click». Введите имя для вашего события «onclick» (например, «winbox» или «rmsviewer», а затем «doubleclick». Это приведет вас к редактору сценариев, где вы увидите, что он создал пустую «procedure».
4. Между строками «begin» и «end» введите соответствующую инструкцию — в вашем случае вы хотите использовать команду «openfile», а затем введите местоположение программы.
В приложенном примере вам может понадобиться изменить расположение программы, если я ее не правильно скопировал.
Я добавил две дополнительные кнопки, чтобы продемонстрировать, что вы можете делать. Кнопка «GOOGLE» использует команду «openurl» вместо команды «openfile».
Надеюсь, это поможет.
Derek
.
1.  Turn on 'scripts' ;  this creates an 'events tab'.
2.  Select your form and the button you want to create an 'event' for.
3.  Choose the event type - in this case it is 'onclick'.  Enter a name for your 'onclick' event (for example 'winbox' or 'rmsviewer' and then 'doubleclick'.  This takes you to the script editor where you will see that it has created an empty 'procedure'.
4.  Between the 'begin' and 'end' lines type in the relevant instruction - in your case you want to use the 'openfile' command and then enter the location of the program.
In the attached example, you might need to change the location of the program if I've not copied it correctly.
I've added two extra buttons to demonstrate the sort of things you can do.  The 'GOOGLE' button uses the 'openurl' command instead of the 'openfile' command.

Спасибо за разъяснения! помогло понять,
единственное в кнопке winbox exe файл будет лежать в папке самого проекта, как это указать, что бы не переписывать постоянно где будет лежать папка у каждого пользователя?
это папка у меня лежит так : C:\Users\user\Documents\My Visual DataBase\Справочник механиков АЗС\apps\winbox\winbox.exe
а ктото ее закинет куда угодно. вот при этом кнопка будет срабатывать?
procedure winbox (Sender: TObject; var Cancel: boolean);
begin
  openfile('C:\C:\Users\user\Documents\My Visual DataBase\Справочник механиков АЗС\apps\winbox\winbox64.exe');
end;

Re: Как сделать кнопку, которая будет открывать стороннее приложение?

Привет
Если я правильно понял ваш вопрос, вам просто нужно указать путь к файлу «winbox64.exe» относительно вашего приложения.
Таким образом, не имеет значения, где установлено ваше приложение, и скрипт не нужно каждый раз менять.
Внесите это изменение в свой код

procedure winbox (Sender: TObject; var Cancel: boolean);
begin
  openfile(extractfilepath(application.exename) + '\apps\winbox\winbox64.exe');
end;

Derek.

Re: Как сделать кнопку, которая будет открывать стороннее приложение?

Спасибо!