2011-12-08 12 views
10

To powinno być proste, ale najwyraźniej nie. Od .. Windows 3 lub tak, jest panel sterowania o nazwie Telefon lub telefon & Modem. W tym panelu kontrolnym znajduje się garść informacji o tym, jak modem będzie dzwonił, zakładając, że masz podłączony modem. Na przykład, musisz wybrać numer 9, aby wyjść, jaki jest numer kierunkowy i tak dalej. W jaki sposób mogę programowo uzyskać dostęp do tych informacji? Używam C# .NET 2010.Jak znaleźć zasady wybierania okna w .NET

Odpowiedz

8

nie mogłem znaleźć sposób dostępu to poprzez .Ne wrapper t TAPI (po niezbyt długich poszukiwaniach), więc wystrzelił w górę procmon znaleźć gdzie był przechowywany w rejestrze, a oto kod, który uzyskuje dostęp do go (można ją dostosować do konkretnych potrzeb):

RegistryKey locationsKey = 
    Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Telephony\Locations"); 
if (locationsKey == null) return; 
string[] locations = locationsKey.GetSubKeyNames(); 
foreach (var location in locations) 
{ 
    RegistryKey key = locationsKey.OpenSubKey(location); 
    if (key == null) continue; 
    Console.WriteLine("AreaCode {0}",key.GetValue("AreaCode")); 
    Console.WriteLine("Country {0}",(int) key.GetValue("Country")); 
    Console.WriteLine("OutsideAccess {0}", key.GetValue("OutsideAccess")); 
} 

Uwaga:

  1. polecam użyć oficjalnego API jeśli istnieje .net zgodne jeden.
  2. Ten kod nie jest gwarantowana do pracy na innych systemów operacyjnych niż Win 7
  3. Jeśli trzeba monitować użytkownika o wypełnienie tych danych można uruchomić narzędzie konfiguracji przy użyciu:

Process.Start(@"C:\Windows\System32\rundll32.exe",@"C:\Windows\System32\shell32.dll,Control_RunDLL C:\Windows\System32\telephon.cpl");

12

Będziesz musiał użyć Tapi w systemie Windows lub wyciągnąć informacje z rejestru. Według Microsoft Tapi 3.0 nie został zaprojektowany do użytku z kodu zarządzanego, choć wydaje się, że pierwszy link to zrobił.

Niektóre artykuły patrzeć:

  1. Tapi3.0 Application Development
  2. VB.Net accessing TAPI Dialing Rules

z linku # 2

Spójrz na tych TAPI funkcji:

  1. lineGetTranslateCaps
  2. lineTranslateAddress
  3. lineTranslateDialog
  4. lineSetCurrentLocation
  5. lineGetCountry
  6. tapiGetLocationInfo

informacji są przechowywane w rejestrze pod adresem: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Telephony\Locations

+0

To świetnie, dzięki wam. – Rob

0

Jeszcze więcej kodu, aby uzyskać prefiks

Powiązane problemy