![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Передать работающему приложению параметры [D7, WinXP]
Zalum © (2009-04-29 11:58:00)Добрый день! Я написал программу запуска приложения(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 с новыми параметрами(приложение запускается в еще одном экземпляре), так можно открыть бесконечно много. А мне нужно, что бы при повторном запуске форма оставалась открыта, просто менялись параметры. Может кто знает как это сделать?
Германн (2009-04-30 02:08:00) [1]
> Zalum (29.04.09 16:04) [2]
>
> Может кто может подкинуть исходники(самые простые), чтобы
> разобраться с WM_COPYDATA?
>
Имхо, порочный метод познания сущности!
Примите и прочь!
Eraser (2009-04-30 01:51:00) [2]> [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
Сергей М. (2009-04-29 17:04:00) [3]Что конкретно не понятно ?
Zalum (2009-04-29 16:04:00) [4]Может кто может подкинуть исходники(самые простые), чтобы разобраться с WM_COPYDATA?
Сергей М. (2009-04-29 12:42:00) [5]http://pcmag.ru/issues/detail.php?ID=9945