Witam,

Piszę oprogramowanie pobierające dane ze źródła DDE. Do komunikacji wykorzystuję funkcje WinApi. Ustanowienie połączenia następuje po instrukcji:

IntPtr handle = Ddeml.DdeConnect(id, serviceHandle, topicHandle, IntPtr.Zero);

Jeżeli kod uruchamiany jest jako aplikacja Windows Forms to wszystko działa bez problemu. Niestety po uruchomieniu jako usługa Windows funkcja DdeConnect nie działa i otrzymuję błąd DMLERR_NO_CONV_ESTABLISHED. Jeżeli program będący serwerem DDE uruchomię z poziomu usługi poprzez Process.Start(...) to też działa poprawnie. To rozwiązanie jednak odpada bo źródła DDE mają być za założenia dowolne.

Co można zmienić w kodzie usługi aby to zadziałało? Podejrzewam, że problem leży w uprawnieniach, ale nie wiem co z tym zrobić?

Projekt pod .NET 3.5, sprawdzałem pod Windows XP i Windows 7.