はじめまして、VC++6.0を使い始めて仕事をしています。
今回は、LAN上に存在する他PCの時刻取得方法がわからず、質問させていただきました。
環境としては、
自ホスト:Win2000
他ホスト:Win2000
開発環境:VC++6.0 SP5
を想定しています。
ソケット通信でSNTP(タイムサーバ)から時刻取得する方法もあると思うのですが
もう少し簡単な方法で他ホストの時刻を取得したいと考えています。
VCを使い始めたばかりでわからないことだらけですが、
よろしくご教授ねがいます。
SQLサーバーがあるならクエリーで
select GetDate()
とすれば時刻がえられます。
桜時計(フリーソフト)で各マシンの時間を統一するのが一番簡単かも
同期させるのが目的なら、
コマンドプロンプトで
NET TIME \\コンピュータ名 /SET /Y
これで可能です。
system() で、実行してください。
sugiです。
みなさま、貴重な意見をありがとうございます。
今開発しているプログラムは、ミドル的な役割を持つもので、直接SQLサーバへの接続や
フリーソフトの導入はできません(仕様上の問題で)。
また、ミドルをコールする側のアプリでは時刻同期を目的にコールすることも考えられ
るのですが、時刻同期までは必要なくまた、リモートホストのYYYYMMDDhhnnssまで詳細に
戻すことが求められています。
MFCの関数、APIを駆使してどうにかLAN上のPCの時刻取得ができないか考えています。
無理なのでしょうか・・・。
どうかご教授ください。
調べた上の発言ではないので調査する時の参考程度に考えてほしいのですが、
RAS系のAPIで出来なければ、自前でサーバーとクライアントを作成しないと
難しいような気がします。
この場合、時刻を取得される側にサーバーを立てておいて取得側がクライアントで
アクセスすることになると思います。
結局、サーバープログラムがいるので一方的に取得ということにはなりませんけれど。
他ホストに一切のプログラム導入を認めないというのであれば、無理かなという気もします。
レスが遅くなりまして、失礼しました。
sugiです。
やはり、サーバ側とクライアント側部分を作成しないとだめですよね。
結局のところ、時刻同期が主ということから、リモートPCと
NET TIMEコマンドで同期を取ってから自PCの時刻を取ることで
リモートPCの時刻取得とすることにいたしました。
しかしながら、System()を使うと、一瞬コマンドプロンプトが
表示されてしまうので、Createprocessでコマンド実行するようにしました。
貴重な意見をいただきありがとうございました。