これは単純なはずですが、明らかにそうではありません。 Windows 3以降では、電話機または電話機&モデムと呼ばれるコントロールパネルがあります。そのコントロールパネルには、モデムの接続方法に関する情報がたくさんあります。たとえば、出て行くために9をダイヤルする必要がありますか、市外局番は何ですか。この情報にプログラムでアクセスするにはどうすればよいですか?私はC#.NET 2010を使用しています。.NETでWindowsのダイヤル規則を見つける方法
10
A
答えて
8
私がアクセスする方法を見つけることができませんでしたそれは.Neを通して
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"));
}
:(それほど長くない検索後)のT TAPIラッパーは、私はそれがレジストリに格納されていた場所を見つけて、それをここにアクセスするコードは(あなたがあなたの特定のニーズに適応させることができます)です
procmon気合
注:.NET互換性がある場合
- 私は公式のAPIを使用することをお勧めします。
Process.Start(@"C:\Windows\System32\rundll32.exe",@"C:\Windows\System32\shell32.dll,Control_RunDLL C:\Windows\System32\telephon.cpl");
12
WindowsでTapiを使用するか、レジストリから情報を取得する必要があります。 Microsoft Tapi 3.0によると、管理されたコードからは使用されないように設計されていましたが、最初のリンクではそうしていたようです。
- :リンク#2
から
は、これらのTAPIの機能を見てみましょう:で
いくつかの記事を見て
lineGetTranslateCaps
lineTranslateAddress
lineTranslateDialog
lineSetCurrentLocation
lineGetCountry
tapiGetLocationInfo
情報がでレジストリに保存されています。HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Telephony\Locations
0
:
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. C#.Netで依存関係のアセンブリパスを見つける方法
- 2. 不規則なデータポイントで定義されたボリュームを見つける - python
- 3. CMakeはWindows上でGoogleのprotobufを見つける方法は?
- 4. Windowsのタスクリスト-v出力の正規表現を見つける
- 5. GNUstepでヘッダーファイルを見つける方法Windows XPで
- 6. 正規表現で特殊パターンを見つける方法
- 7. 大規模なXMLファイルでイベントオブジェクトを見つける方法
- 8. 特定の命名規則に従うファイル名を見つける
- 9. ジェネリックと規則の規則の規則
- 10. 正規表現の一致を見つけるPythonicの方法
- 11. .NET Framework 3.5の依存関係を見つける方法
- 12. アプリケーションの.netフレームワークを見つける方法?
- 13. Windows上でJETTY_HOMEを見つける方法
- 14. WindowsでBowerローカルキャッシュを見つけてコピーする方法
- 15. .NET HttpContextオブジェクトを見分ける方法
- 16. Windowsフォームアプリケーションの製品コードを見つける方法は?
- 17. Windowsインストーラのポップアップを見つける方法
- 18. IP範囲内のWindows PCを見つける方法
- 19. .netでネットワークエイリアスを見つける
- 20. Makefileでオブジェクトの規則が見つかりません
- 21. .NETにおけるBODMASの原則
- 22. .NET内のページアドレスを見つける
- 23. 正規表現でJavaで空のキャッチブロックを見つける方法
- 24. Javaアスタリスクでのダイヤル方法
- 25. 現在のスレッドの最大スタックサイズを.netで見つける方法は?
- 26. .NETプログラムのクラッシュダンプのデバッグ:大きなデータグラフでアイテムを見つける方法は?
- 27. .NETでfloat変数の実際の値を見つける方法
- 28. C#.netを使用してJVMを持つシステムを見つける方法は?
- 29. サービス方法の命名規則
- 30. Linuxで大規模プロジェクトのヘッダー依存関係を見つける方法
これはあなたのおかげで素晴らしいです。 – Rob