안녕하십니까?
Windows7때메 골머리 썩고 있습니다.
하나 해결하면 하나가 말썽이네요.
이제 마지막 같은데..XP에서는 잘 돌아갑니다.
근데 Window7에서 ActiveX로 SendMessage하고 다른 프로그램에서 WMCopyData로 받아줘야하는데
XP에서는 잘 메시지가 전달되는데 Windows7에서는 메시지가 전달이 안됩니다.
ActiveX를 보면
procedure TaxCatWebhard.SendMsg(AHandel: THandle; AMsg: string);
var
CDS: TCopyDataStruct;
S2 : pchar;
S1 : string;
begin
try
if AMsg = '' then
exit;
if AHandel = 0 then
exit;
showmessage('hhhhhh');
FillChar(CDS,SizeOf(TCopyDataStruct),#0);
{$IFDEF WIN32}
S1 := AMsg + #0;
CDS.cbData := Length(S1)* 2;
CDS.lpData := pChar(S1);
SendMessageW(AHandel, WM_COPYDATA, 0, LongInt(@CDS));
showmessage('aaaa');
{$ELSE}
S2 := PChar( AMsg );
CDS.cbData := Length(S2) + 1;
CDS.lpData := S2;
SendMessage(AHandel, WM_COPYDATA, 0, LongInt(@CDS));
showmessage('bbbb');
{$ENDIF}
except
showmessage(Exception(ExceptObject).Message);
end;
end;
메시지 띄워보면 이상없이 다 진행됩니다.
근데 받아주는 실행 프로그램(.exe)에서 메시지를 못받습니다.
그런데 디버깅모드로 띄워놓고 하면 메시지 받습니다. (받아주는 프로그램에서는 문제가 없다고 보는게
다른 exe파일간에 메시지는 실행파일에서 잘 받습니다.
아주 환장하것습니다....도데체가 무슨 문제인지 영 감이 안잡힙니다.
셑팅값에 문제가 있는건지....
조언부탁드립니다.
ActiveX를 실행하는 Explorer를 관리자권한으로 실행시키면 메시지가 날라가고
아니면 안날갑니다.
좋은 방법이 없을 까요?