2012-08-09 14 views
6

mam powodzeniem odbierania danych DDE z platformy obrotu ThinkOrSwim do programu Excel przy użyciu tej formuły komórek:Połącz z ThinkOrSwim wykorzystaniem NDDE w .NET

=TOS|Last!AAPL 

Jednak, gdy próbuję się połączyć ThinkOrSwim DDE w użyciu NDDE library aplikacji .Net C#, pojawia się następujący komunikat o błędzie, który jest taki sam, jak w przypadku, gdyby platforma ThinkOrSwim w ogóle nie działała:

Klient nie mógł połączyć się z "TOS | LAST". Upewnij się, że aplikacja serwera działa i obsługuje ona określoną nazwę nazwy usługi i nazwy tematu.

Dokładnie ta sama metoda połączenia z NDDE działała w 2009 r. I nie powiodła się, gdy ponownie wykorzystałem ją w 2012 r. Być może ThinkOrSwim wprowadziło pewne zmiany w swojej aplikacji, aby ją zablokować? Zastanawiam się, co robić dalej ... albo znajdź sposób, żeby NDDE działało (lepiej), albo uruchom arkusz kalkulacyjny Excela w mojej aplikacji .Net (niechlujny).

Mam nadzieję, że ktoś tutaj wie, w jaki sposób mogę nadal używać NDDE i rozwiązać ten problem z połączeniem.

Click to download small code library I created to demonstrate this problem (Visual Studio 2010). Po wczytaniu strony musisz kliknąć Plik-> Pobierz.

Bounty służy tylko do odpowiedzi pokazujących rozwiązanie, które używa czystego rozwiązania .NET/windows api. Automatyzacja programu Excel w .Net nie jest akceptowana dla nagrody.

Pobierz ThinkOrSwim od: https://mediaserver.thinkorswim.com/installer/InstFiles/thinkorswim_jse6_installer.exe Skontaktuj się ze mną prywatnie, jeśli potrzebujesz szczegółów logowania.

Odpowiedz

1

Wreszcie znalazłem rozwiązanie: musiałem uruchomić Visual Studio jako administrator, aby uruchomić go w debugowaniu. Aby działał .exe, musiałem dodać plik app.manifest z następującym kodem:

<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> 
    <security> 
     <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3"> 
     <requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> 
     </requestedPrivileges> 
    </security> 
    </trustInfo> 
3

prawym przyciskiem myszy na thinkorswim.exe, przejdź do zakładki kompatybilności

Zaznacz pole „Uruchom jako administrator” na dole.

Kliknij Zastosuj.

+0

Dzięki Charvind, było to bardzo zbliżone do odpowiedzi, której potrzebowałem. Zobacz mój poniżej. – bboyle1234