質問: お世話になっています。 現在、VB6で書かれたプログラムをVB.NETに書き換えるにあたり、 ↓の対応表を参考にWIN32APIを.NET Framework APIに変換しようとしています。 Microsoft Win32 と Microsoft .NET Framework API との対応 WIN32にて「GetComputerName」の名称で使用された関数を変換しようとした際、 対応する.NET Framework API の候補には ・System.Environment.MachineName ・System.Windows.Forms.SystemInformation.ComputerName の二つがあげられています。 サンプル コード作成し実行してみたところ、どちらもVB6の「GetComputerName」と同様の結果が得られました。 二つの.Net Framework APIには何か違いがあるのでしょうか? また、どちらの関数でリプレイスするのが正しいのでしょうか? ご存知の方いらっしゃいましたらよろしくお願いいたします。
回答: .NET 4.6.1において どちらもGetComputerName Win32APIで返されるコンピューター名なので結果は同じです。 .NETのソースのコメントを見ると環境情報(`System.Environment`)か、OSの情報か(`System.Windows.Forms.SystemInformation`) の区分けは一応はあるみたいですけど、WinFormsアプリケーションならどちらでもよさそうです。 WPFなどなら、参照設定追加しなくて済む `System.Environment.MachineName`の方がいいでしょうね。