Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.07.2018, 18:16   #1
DarkEvolution
Новичок
Джуниор
 
Регистрация: 22.07.2018
Сообщений: 2
По умолчанию Передача настроек из моей формы в стороннюю программу

Код моей программы
Код:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Controls, Forms,
   Dialogs, StdCtrls, ExtCtrls;



  type
  TForm1 = class(TForm)
    btn5: TButton;
    CheckBox1: TCheckBox;
    Button1: TButton;
    Timer1: TTimer;
    procedure btn5Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Button1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);

  private
    fRestore: Boolean;
  public
  end;


var
  Form1: TForm1;
  _PluginProc: function(Code: Cardinal; p1, p2, p3: widestring): widestring; stdcall;
implementation



{$R *.dfm}



function PluginProc(Code: Cardinal; p1: widestring = ''; p2: widestring = ''; p3: widestring = ''): widestring;
begin
  Result := _PluginProc(Code, p1, p2, p3);

end;


 ///кнопка закрытия окна
procedure TForm1.btn5Click;
begin
  Close;
end;


  //// чекбох
procedure TForm1.Button1Click(Sender: TObject);
begin
if CheckBox1.Checked   then
PluginProc(0);

end;



procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin

 Action := caNone;
  Hide;
end;


   procedure TForm1.FormCreate(Sender: TObject);
begin

end;

///по верх всех окон
procedure TForm1.Timer1Timer(Sender: TObject);
begin
SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE or SWP_NOMOVE)
end;

end.


код который используется в сторонней программе
Код:
uses sysutils;

procedure Buffer();
begin
print('Buffer'); 	
Engine.SetTarget(50019);
delay(500);
Engine.DlgOpen();
delay(500);
Bypass('Mage');
delay(1500);
Bypass('Prof');
delay(1500);
Bypass('Magnus');
delay(1500);
Bypass('Back');
delay(1500);
Bypass('PREMIUM');
delay(1500);
Bypass('Malari');
delay(1500);
Bypass('Nobless');
delay(1500);
delay(1500);
Bypass('Seraph');
delay(1500);
Engine.CancelTarget;
end;
 
  //тп спот 
procedure Step_9();
begin
  Buffer();
Engine.SetTarget(300017);
delay(500);
Engine.DlgOpen();
delay(500);
Engine.DlgSel (1);
delay(500);
 Bypass('P');
delay(500);
end;

function PluginProc(Code: Cardinal; p1, p2, p3: WideString): WideString; stdcall;
begin
  case code of       
  
    0: Buffer();
    1: Engine.unstuck;
    2: Engine.Msg('Bot', p1, StrToInt(p2));
    3: Result := IntToStr(User.X);
    4: Result := IntToStr(User.Y);
    5: Result := IntToStr(1);
    6: Result := User.Name;
  end;  
end; 

procedure StartPlugins;
begin
  Script.StartPlugin(Script.Path + 'plugin.dll', @PluginProc, True{модально});  
end;

begin
  Script.MainProc(@StartPlugins);
  Delay(-1);
end.


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


_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 25.07.2018 в 10:13.
DarkEvolution вне форума Ответить с цитированием
Старый 25.07.2018, 02:03   #2
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,859
По умолчанию

Цитата:
Сообщение от DarkEvolution Посмотреть сообщение
Как сделать так чтоб моя форма передавала только настройки в стороннюю программу и все действия выполнялись в сторонней программе?
О каких настройках вы говорите? В вашем коде вы ничего не предаёте в стороннюю программу. От слова совсем.
northener вне форума Ответить с цитированием
Старый 26.07.2018, 21:11   #3
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,442
По умолчанию

Цитата:
Сообщение от DarkEvolution Посмотреть сообщение
тому когда выполняются действия в сторонней программе форма моей программы зависает.
Поток зависает или окно? Окно отвесить можно периодически обрабатывая сообщения через Application.ProcessMessages
Человек_Борща вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как закрыть стороннюю программу программно 1_4yma_1 Общие вопросы Delphi 5 08.06.2018 13:43
Запустить стороннюю программу с ПРАВАМИ АДМИНИСТРАТОРА - Delphi WinAPI yurius Общие вопросы Delphi 6 15.05.2016 15:19
Отображение excel таблицы внутри моей формы samouelson Компоненты Delphi 4 25.05.2010 15:53
Чтобы приложение не уходило за пределы моей формы Marsel737 Общие вопросы Delphi 24 28.01.2010 09:56