Конференция "WinAPI" » Передать работающему приложению параметры [D7, WinXP]
 
  • Zalum (29.04.09 11:58) [0]
    Добрый день! Я написал программу запуска приложения(MyProject) и передачи ему параметров из другого приложения(Technologics).
    Код следующий:
    procedure TForm1.FormCreate(Sender: TObject);
    var
    i: Integer;
    List: TStringList;
    begin
      a := -1;
      b := -1;
      if FindCmdLineSwitch( 'reg', ['/','-'], True  ) then
        begin
          StartReg;
          Application.Terminate;
          Exit;
        end;

      List := TStringList.Create;
      try
        for i:=1 to ParamCount do List.Add( ParamStr(i) );

        a :=    StrToIntDef( List.Values['A_ID'],    TechId );
        b :=     StrToIntDef( List.Values['B_ID'],     VerId );

      finally
        List.Free;
      end;

    Edit1.Text:= IntToStr(a );
    Edit2.Text:= IntToStr(b );
    end;

    procedure TForm1.StartReg;
     procedure Check( Result: Boolean );
     begin
       if not Result then raise Exception.Create( 'Îøèáêà ðåãèñòðàöèè â ðååñòðå! Íå ìîãó ïðîâåñòè ðåãèñòðàöèþ!' );
     end;
    var
    Reg: TRegistry;
    begin
     Reg := TRegistry.Create;
     try
       Reg.RootKey := HKEY_LOCAL_MACHINE;
       Check( Reg.OpenKey( 'Software\CSDN\TCS\111\1111', True ) );
       Reg.WriteString ( 'DisplayText', 'Ìîé Ïðèìåð ðåäàêòîðà ýñêèçîâ ÷åðåç ÀÏÈ' );
       Reg.WriteString ( 'CreateCmd', 'A_ID=%A_ID% A_ID=%A_ID%  ' );
       ....
       Reg.WriteString ( 'ExeName', Application.ExeName );
     finally
       Reg.Free;
     end;
    end;


    Но дело в том, что при запуске приложения повторно с другими параметрами открывается еще одна  Form1 с новыми параметрами(приложение запускается в еще одном экземпляре), так можно открыть бесконечно много. А мне нужно, что бы при повторном запуске форма оставалась открыта, просто менялись параметры. Может кто знает как это сделать?
  • Сергей М. © (29.04.09 12:42) [1]
  • Zalum (29.04.09 16:04) [2]
    Может кто может подкинуть исходники(самые простые), чтобы разобраться с WM_COPYDATA?
  • Сергей М. © (29.04.09 17:04) [3]
    Что конкретно не понятно ?
  • Eraser © (30.04.09 01:51) [4]
    > [2] Zalum   (29.04.09 16:04)

    прежде чем браться за программирование - научись пользоваться интернетом, освой какой-нибудь поисковик для начала.

    http://www.google.com/search?client=opera&rls=ru&q=delphi+WM_COPYDATA&sourceid=opera&ie=utf-8&oe=utf-8
  • Германн © (30.04.09 02:08) [5]

    > Zalum   (29.04.09 16:04) [2]
    >
    > Может кто может подкинуть исходники(самые простые), чтобы
    > разобраться с WM_COPYDATA?
    >

    Имхо, порочный метод познания сущности!
    Примите и прочь!
 
Конференция "WinAPI" » Передать работающему приложению параметры [D7, WinXP]
Есть новые Нет новых   [134435   +33][b:0][p:0.002]