API함수에 관한한 문외한 입니다...
아래 코딩도 여기서 참조를 한건데요...
답변부탁드립니다...
login.exe (login, main이라는 두개의 폼이 있습니다..)
program.exe (login을 거쳐 실해시키는 프로그램입니다..)
먼저 login.exe를 거쳐서
(login다음에 main이 나옵니다.. main에서 원하는 버튼을 클릭시에 )
...winexec를 써서 program.exe를 띄우고...
program.exe를 종료하면... login.exe에서 login 폼이 아닌 main 폼을 띄우고 싶습니다...
그러니까.. EXE와 EXE사이에서 다른쪽 FORM을 제어하고 싶습니다...
방법이 있을까요..?
글구..
exe끼리 메세지를 주고 받는데... 왜.. IE가 같이 뜰까요...? 제가 코딩한것이 이것입니다..
주는쪽에 있는
SendMessage(hwnd_BroadCast, WM_CopyData, wParam(Application.Handle),
lParam(@DataStruct));
이 부분에서 ie가 뜹니다... (왜 뜨는지는 잘 모르겠어요...)
메시지.(변수값은) 정상적으로 전달이 가능합니다...ie만 안뜨면 되거든요..
----------
주는쪽
-----------
procedure TMain_menu.FormCreate(Sender: TObject);
begin
IWVarHandle := RegisterWindowMessage('sendtovar');
end;
procedure TMain_menu.gp_VarDeclare(Sender: TObject);
var
DataStruct : TCopyDataStruct;
Data : TData;
begin
Data.UserName := UserName;
Data.LeaderName := LeaderName;
Data.BalsinCode := BalsinCode;
Data.Balsinname := Balsinname;
DataStruct.dwData := IWVarHandle;
DataStruct.cbData := SizeOf(TData);
DataStruct.lpData := @Data;
SendMessage(hwnd_BroadCast, WM_CopyData, wParam(Application.Handle),
lParam(@DataStruct));
end;
--------
받는쪽
--------
procedure Tfrm_main.FormCreate(Sender: TObject);
begin
MessageHandle := RegisterWindowMessage('sendtovar');
end;
procedure Tfrm_main.WndProc(var wpMessage: TMessage);
var
Data: TData;
begin
If (wpMessage.Msg = WM_CopyData) And
(PCopyDataStruct(wpMessage.lParam)^.dwData = MessageHandle) Then
begin
CopyMemory(@data, PCopyDataStruct(wpMessage.lParam)^.lpData, SizeOf
(TData));
wpMessage.Result := 1;
// login된 밧의 문자열을 나타낸다.
UserName := Data.UserName;
LeaderName := Data.LeaderName;
BalsinCode := Data.BalsinCode;
Balsinname := Data.Balsinname;
end
else
inherited WndProc(wpMessage);
end;