2010-03-15 7 views
2

DDE pokes를 보내거나받을 수있는 타사 도구가 있습니다. DDE 스파이를 사용하여 Powerbuilder를 사용하여이를 복제 할 수있는 타사 DDE 서버 에뮬레이터와의 통신을 모니터링했습니다. 내가 알 수있는 한, 이것은 따뜻한 링크를 사용하고 있습니다. 나는 execremote가 뒤 따르는 openchannel을 사용해 보았지만, 호출 유형은 'execute'로 설명됩니다. 마찬가지로 클라이언트와 에뮬레이터가 시작되면 등록 된 서버 목록에도 나타나지만 내 응용 프로그램에서는/ user32.dll을 사용하는 것으로 간주했지만 대부분의 DDE 호출이 작동하지 않습니다. PB는 콜백을 지원하지 않기 때문에 Powerbuilder. 아무도이 지역의 정보 방향으로 나를 가리킬 수 있습니까? ..... 조금 더 조정 한 후 핫 링크를 열어 보았습니다. 응용 프로그램에서 '찌르는'버튼을 클릭하면 내 powerbuilder가 hotlinkalarm 이벤트를 트리거합니다. 소스 등을 선택할 수는 있지만 데이터는 없습니다. 또한 명령을 다시 보내야하지만, 모든 응답은 true 또는 false를 전송합니다. DDE 에뮬레이터의 일부 Delphi/Pascal 코드가 있지만 DDE 호출은 Powerbuilder 코드와 약간 다릅니다.Powerbuilder에서 DDE 통신에 대한 쿼리

+0

PowerBuilder에서 수행 할 작업을 명확히하십시오. DDE 만 지원하는 다른 앱에서 정보를 얻어야하는 경우에만 PB로 DDE 만 사용합니다. DDE는 kludgy이므로 COM으로 대체되었습니다. –

답변

2

답변을 찾으셨습니까? 나는 당신이하고있는 일을 완전히 이해하는지 확신하지 못하지만, 여기 당신이 볼 필요가 있다고 생각되는 것들이 있습니다.

StartServerDDE 기능을 사용하면 DDE 대화에 대한 핸들, 다음 코드 윈도우 이벤트 (응용 프로그램 수준 이벤트가 작동하지 않습니다) 오픈 창을 가지고 있어야합니다하는 DDE 서버와 응용 프로그램을 설정합니다. 이것은 등록 된 서버를 보지 못한 이유 일 수 있습니다. DDE 서버를 종료 할 때 StopServerDDE를 사용하십시오. 요구 사항이 필요로 데이터를 전송 수신을 달성하기 위해 DDE 서버 창에서 다음 이벤트에 대한

코드, 모두는 다음과 같습니다

RemoteExec 이벤트 (클라이언트가 요청을 보냈습니다) 사용 GetCommandDDE 명령 문자열을 얻을 수 클라이언트는 클라이언트 응용 프로그램 0,123에서 (클라이언트가 데이터를 보내는 지) 사용 GetDataDDE이 (REF 문자열을 통해) 데이터를 얻을 수

RemoteSend 이벤트 명령을 보내 어떤 클라이언트 응용 프로그램 이름을 볼 수 사용 GetCommandDDEOrigin를 전송사용 GetDataDDEOrigin은 (클라이언트가 데이터를 요청) 사용 SetDataDDE는 클라이언트 DDE 응용 프로그램

나는이 도움이 되었으면 좋겠로 데이터를 전송하는 데이터

RemoteRequest 이벤트를 보내 어떤 클라이언트 응용 프로그램 볼 수 있습니다.

관련 문제