• 0
Авторизация  
леля рачок

как из программы запустить exe фаил

Вопросы

Я написала несколько отдельных программ в RAD Studio 10.1 Berlin. Одну программу в виде меню которая запускает эти программы. Необходимо идентифицировать эти программы как программы написанные мной. Проверка посходит путем считывания label если он соответствует ожиданиям, то программа-меню записывает в label другой текст и форма на которой находится label считывает его и если все верно показывает компоненты которые содержит. Программа-меню свое свойство visible:=false; Как только программа которая была вызвана исчезает из памяти свойство программа-меню visible:=true

 

 

идентифицирует и запускает вот эта: 

Код:

unit Unit1;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,ShellAPI,
  FMX.Edit, FMX.Controls.Presentation, FMX.StdCtrls,ShellAPI;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;


implementation

{$R *.fmx}

procedure TForm1.Button1Click(Sender: TObject);
begin
ShellExecute(1, nil, PChar(Edit1.Text), nil, nil, 0)
end;

end.

Но пока она только умеет только запускать, а инфицировать не может

вторая тоже самое только без вызывающей функции

Код:

unit Unit1;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,ShellAPI,
  FMX.Edit, FMX.Controls.Presentation, FMX.StdCtrls,ShellAPI;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;


implementation

{$R *.fmx}



end.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 ответа на этот вопрос

  • 0

Во-первых запускать из-под винды программыв надо через CreateProcess, а не ShellExecute. Во вторых зачем label? У него даже hwnd нет. Проще создавать mutex. Он живёт пока живо приложение. Соответственно если создать не получилось, значит его создал кто-то другой.
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
В 25.01.2019 в 21:46, Akad сказал:

Во-первых запускать из-под винды программыв надо через CreateProcess, а не ShellExecute. Во вторых зачем label? У него даже hwnd нет. Проще создавать mutex. Он живёт пока живо приложение. Соответственно если создать не получилось, значит его создал кто-то другой.
 

ShellExecute  работает а 
 
CreateProcess подчеркивается красным и ошибку дает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу