Esto debería ser simple, pero aparentemente no. Desde ... Windows 3 o más, hay un panel de control llamado Teléfono o Teléfono & Módem. En ese panel de control hay un montón de información sobre cómo un módem marcaría, suponiendo que tienes un módem conectado. Por ejemplo, necesita marcar 9 para salir, cuál es el código de área, etc. ¿Cómo puedo acceder a esta información programáticamente? Estoy usando C# .NET 2010.Cómo encontrar las reglas de marcado de Windows en .NET
Respuesta
no pude encontrar una manera de Acceso a través de .Ne envoltorio t TAPI (después de una búsqueda no tan largo), así que encendió procmon una encontradas en los que se almacena en el registro, y aquí está el código que accede a ella (se puede adaptar a sus necesidades específicas):
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"));
}
Nota:
- recomiendo usar una API oficial si hay una compatible .NET.
- Este código no se garantiza que funcione en otros sistemas operativos de Windows 7
- Si necesita pedir al usuario que rellene estos datos se puede iniciar la herramienta de configuración usando:
Process.Start(@"C:\Windows\System32\rundll32.exe",@"C:\Windows\System32\shell32.dll,Control_RunDLL C:\Windows\System32\telephon.cpl");
Vas a necesitar usar Tapi en Windows o extraer la información del registro. De acuerdo con Microsoft Tapi 3.0 no fue diseñado para ser utilizado desde código administrado, aunque el primer enlace parece haberlo hecho.
Algunos artículos que miran:
De Enlace # 2
Tome un vistazo a estas funciones TAPI:
lineGetTranslateCaps
lineTranslateAddress
lineTranslateDialog
lineSetCurrentLocation
lineGetCountry
tapiGetLocationInfo
La información se almacena en el registro en: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Telephony\Locations
Poco más código para obtener el prefijo
class Program
{
static void Main(string[] args)
{
string rootLocation = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Telephony\Locations";
getRegistryValues(rootLocation);
Console.ReadLine();
}
public static void getRegistryValues(string rootLocation)
{
RegistryKey locationsKey =
Registry.LocalMachine.OpenSubKey(rootLocation);
if (locationsKey == null) return;
string[] locations = locationsKey.GetSubKeyNames();
Console.WriteLine(locations.Length.ToString());
foreach (var location in locations)
{
Console.WriteLine(location.ToString());
RegistryKey key = locationsKey.OpenSubKey(location);
if (key == null) continue;
foreach (string keyName in key.GetValueNames())
{
if (keyName.Equals("Prefixes"))
{
string[] Prefixes = ((string[])(key.GetValue(keyName)));
Console.Write("Prefixes ");
foreach (string prefix in Prefixes)
{
Console.Write(prefix);
}
}
else
{
Console.WriteLine(keyName + " {0}", key.GetValue(keyName));
}
}
getRegistryValues([email protected]"\"+location);
}
}
- 1. .NET Windows Forms, reglas de tiempo de diseño
- 2. Mejores prácticas de marcado/estilo: ¿Cómo distribuir de manera eficiente las reglas de estilo sobre las clases de CSS?
- 3. ¿Cómo conservo las etiquetas de marcado?
- 4. ¿Cómo encontrar todas las reglas de prólogo en la base de datos
- 5. ¿Cómo puedo depurar las reglas de mod_rewrite?
- 6. Marcado de una clase estática en VB.NET
- 7. Buscando reglas simples: biblioteca de motores en .NET
- 8. ¿Cómo encontrar el RadioButton marcado dentro del elemento repetidor?
- 9. Autenticación de Windows en .NET
- 10. ¿Cómo funcionan las reglas de exclusión de gitignore?
- 11. ¿Cómo cambias el nombre de las reglas de CSS?
- 12. Motor de reglas de mayor flexibilidad para .NET
- 13. Encontrar todas las ventanas en el escritorio usando UIAutomation .NET
- 14. Eliminar todas las reglas de CSS
- 15. Sincronizar las reglas de acción guardar eclipse
- 16. Encontrar API indocumentadas en Windows
- 17. Consulta para encontrar todas las restricciones FK y sus reglas de eliminación (SQL Server)
- 18. ¿Cómo compartir las reglas de FxCop entre todos los desarrolladores?
- 19. Encontrar todas las permutaciones que coinciden con un conjunto de reglas
- 20. ¿Cómo probar las reglas comerciales de la unidad?
- 21. ¿Cómo reescribo .php a .html usando las reglas de .htaccess?
- 22. ¿Cómo elimino las reglas 'requeridas' de todas las entradas de formulario en jQuery Validate?
- 23. Citas de marcado en octopress
- 24. Justificación de las reglas de comentario en MISRA
- 25. Bluetooth API en Windows/.Net?
- 26. Deshabilitar reglas de StyleCop
- 27. ¿Cómo encontrar puntos calientes de rendimiento en la aplicación .Net?
- 28. Reescribir las reglas de salida de URL IIS7
- 29. Motor de reglas de fuente abierta con una interfaz decente para escribir reglas
- 30. ¿Cómo diseñar un motor de reglas?
Esto es genial, gracias a los dos. – Rob