Q&A

  • [급질문]EXE와 EXE간에 있는 폼을 연동하고 싶습니다..
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;





0  COMMENTS