###前提・実現したいこと
共有PCの時刻を取得したい
###補足情報(言語/FW/ツール等のバージョンなど)
C#.NET(FWは最新)
htsignが👍を押しています
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
ベストアンサー
WQLでWin32_LocalTimeクラスを叩くことで取得できると思います。
リモートコンピュータの WMI にアクセスする方法が参考になるかと思います。
c#
1class Sample 2{ 3 static void Main(string[] args) 4 { 5 const string ServerName = "server"; 6 const string UserName = "user"; 7 const string Password = "pass"; 8 9 var option = new ConnectionOptions { Username = UserName, Password = Password }; 10 var scope = new ManagementScope(string.Format(@"\\{0}\root\cimv2", ServerName), option); 11 var searcher = new ManagementObjectSearcher(scope, new ObjectQuery("SELECT * FROM Win32_LocalTime")); 12 ManagementObjectCollection collection = searcher.Get(); 13 foreach (ManagementObject mo in collection) 14 { 15 Console.WriteLine(string.Format("{0:D4}年{1:D2}月{2:D2}日({3}) {4:D2}時{5:D2}分{6:D2}秒", 16 mo["Year"], mo["Month"], mo["Day"], (DayOfWeek)(uint)mo["DayOfWeek"], 17 mo["Hour"], mo["Minute"], mo["Second"])); 18 } 19 Console.ReadLine(); 20 } 21}
手元の環境的な問題でリモートマシンへのアクセスはテストしていませんが、ローカルの場合(searcher
にscope
を渡さない場合)に時刻が取れるところまでは確認しました。
参照設定でSystem.Management.dll
を追加する必要があります。
投稿2016/09/28 02:10
編集2016/09/28 02:54総合スコア870
0
バッチを叩くのが一番簡単です。
ネットワーク経由で他端末の時刻を確認する
その後、C#からバッチを呼び出して結果を取得してください。
外部アプリケーションを起動する、ファイルを関連付けられたソフトで開く
投稿2016/09/28 01:57
総合スコア1294
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答ありがとうございました。
上記方法で、C#ソース上で解決できました。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/28 05:05