2017-05-13 34 views
6

Mam aplikację kliencką C#, która łączy się z wieloma serwerami. Zauważyłem, że konieczne jest użycie aktywowanych reguł NetLimiter w celu poprawnego połączenia mojego klienta o wyższym priorytecie, gdy na komputerze klienckim jest tak dużo ruchu.Jak mogę osadzić NetLimiter w mojej aplikacji

Nie znalazłem żadnych dokumentów o tym, jak mogę osadzać i programować reguły w tej aplikacji. Jednak przeczytałem here, że ktoś próbował użyć API Netlimiter, ale nie powiodło się.

Czytam gdzieś, że mogę napisać własną aplikację, która używa TC API systemu Windows w here i oznaczyć DSCP, aby priorytety. Ale przed ustawieniem opcji przepływu mojej aplikacji C# dotarłem do problemu this.

Proszę, poprowadź mnie w tym wydaniu.

+1

Jeśli chcesz programowo zmienić sposób, w jaki program NetLimiter traktuje program, musisz użyć interfejsu API NetLimiter. Jeśli NetLimiter rzuca błędy, musisz a) skonsultować się z dokumentacją NetLimiter i/r b) otworzyć wywołanie serwisowe z NetLimiter. – paulsm4

+0

@ paulsm4 Gdzie mogę znaleźć API? nie znalazłem żadnego na swojej stronie internetowej. –

Odpowiedz

2

Look here. Connect() i SetRule() to jedyne dostępne interfejsy API.

NetLimiter wydaje się być obiekt COM, więc go używać z C# trzeba coś takiego:

dynamic myownlimiter = Activator.CreateInstance(Type.GetTypeFromProgID("NetLimiter.VirtualClient")); 
myownlimiter.Connect("host", "port"); 

a następnie użyć SetRule() jak opisano w pierwszym linku.

+0

'Type.GetTypeFromProgID (" NetLimiter.VirtualClient ")' zwraca null –

+0

@MatinLotfaliee autorzy prawdopodobnie zmienili nazwę klasy. [Patrz tutaj] (https://stackoverflow.com/questions/660319/where-can-i-find-all-of-the-com-objects-that-can-be-created-in-powerershell), aby wyświetlić listę wszystkich Nazwy obiektów COM w systemie i znajdź odpowiedni. – hidefromkgb