VC++5.0を使用してPCが起動しているか調べる方法について

このQ&Aのポイント
  • VC++5.0を使用して相手PCが生きているか?相手の特定フォルダを参照できるか?を確認できる方法を教えて頂けますでしょうか?(具体的のソースLVで教えて頂けるとありがたいです)
  • ネットワーク環境は、ホストサーバー(Windows 2000 Server)に各PC(Windows XP Professinal)がつながっています。ホストサーバー上の特定フォルダには、各端末でネットワークドライブを割り当てており、参照できるようになっています。
  • 一定期間PCで端末間を参照しないとCopyFileに失敗してしまう可能性があるため、VC++5.0を使用して相手PCが起動しているかどうかや特定フォルダを参照できるかどうかを確認する方法を教えてください。
回答を見る
  • ベストアンサー

VC++5.0を使用してPCが起動しているか調べる方法について

VC++5.0を使用して相手PCが生きているか? 相手の特定フォルダを参照できるか? を確認できる方法を教えて頂けますでしょうか? (具体的のソースLVで教えて頂けるとありがたいです) ネットワーク環境は、 ホストサーバー(Windows 2000 Server)に各PC(Windows XP Professinal)がつながっています。 ホストサーバー上の特定フォルダには、各端末で ネットワークドライブを割り当てており、 参照できるようになっています。 この状態でプログラムの中で::CopyFile()を使用して ファイルをコピーしています。 通常は正常に動作してファイルのコピーができているのですが1月とか2月経過すると急にファイルコピーが失敗してしまう現象が発生しています。 これが発生した後、ホストからエクスプローラで端末を参照するとまたファイルコピーができるようになります。 ということは、一定期間PCで端末間同士を参照しないとCopyFileに失敗してしまうのでは?と考えています。 プログラム上でpingを発行する方法も考えましたが pingが通ってもMicrosoft Windows Networkに対応した APIを実行しないとファイルがコピーできないかも? という心配があるので、これに対応した方法を教えて 頂きたいです。 ネットワークの事がわかっていないので Microsoft Windows Networkとか書いているのですが 適切でないかもしれません。。。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

No.1です。 - まず。リトライ3回では少なすぎます。 - CopyFileに渡すパスで、ホスト名を使っている箇所をIPアドレスを直接入れてみてください。"\\hostname\共有フォルダ"てな感じです。うまくいくなら下記URLで名前解決の仕組みを理解。 http://www.samba.gr.jp/doc/browsing/fig_2.html - CopyFileに失敗した後にGetLastError()を呼んでエラーの詳細を調べてみてください。 - 端末が22もあるなら、ライセンス数確認してね。 - CopyFileは、プロトコルを特定しているわけではないので・・・。普通TCP/IPかな。もしなっていなかったら、TCP/IPの設定で、NetBIOSを "NetBIOS over TCP/IP有効にする"にしといてください。(ホスト、クライアント) http://www.atmarkit.co.jp/icd/root/15/5787515.html - 一台だけおかしくなるなら、そのPCのケーブルを交換したり、別のハブにつなげたりしたら?ケーブルが長すぎるとか、接触不良とか、ハブ(リピータ)を複数超えて接続されているとかないですか?

lise_001
質問者

お礼

朝早くにご回答ありがとうございます! 確かに名前解決で失敗している可能性が高いのでIPを直接打ち込む事にします。 (最初は相手がわからなくなるのであれば再度接続コマンドを発行してやればいいと思っていましたがIP直接打ちにすることにします。) ありがたい事にそれぞれのPCは固定IPを割り振っているので、多分それで今までの問題は起こらなくなると思います。 (プログラムを作って確認してみます) それで最後の部分は書き方が悪かったです。 日がすぎると22端末のうちランダムに送信できない状況が発生していくという感じでした。ただ、頻繁に参照しにいくPCは本現象が発生してなかったので多分。。。という感じでした。 今回は色々ありがとうございました。 また一つ勉強になりました。

その他の回答 (1)

回答No.1

ファイルコピーが失敗している原因を探るのが先決。 ping が通ったところでファイルコピーが通るとは限らない。プロトコルが違う。 プログラム的にはリトライをする他はない。 まずは、Windows2000Serverのイベントビューアーでシステムログを見てみる。 あと確認する事は、通常のライセンスだと5クライアントだからその制限に引っかかってるんじゃないのか?Win2000Svrを再起動してしばらくはうまくいくなら疑っても良い。あと、未処理の印刷のスプールがたまっているとかないか?Webサーバーとしても使っていて統合認証をかけているとか?まずは、情報収集して質問を投げなおすことをお勧めするよ。 質問にある情報ではこのくらいしかいえない。

lise_001
質問者

補足

ご回答ありがとうございます。 pingではやはりダメだということがわかり一つ前進しました。 ファイルのコピーはXPのほうからホストPCに向かって実行しています。 これは一日一回Windowsのタスクスケジューラを使って該当プログラムを起動しプログラムの中で3度リトライをかけています。 その時、::CopyFileの戻り値を見てエラーログをはいているのですが戻り値のエラーは「送信先ディレクトリがみつかりません」というエラーです。 ホストPCには22端末つながっており通常は全て成功しています。 また、ホストは受信専用マシンとして使用しているため印刷処理、Webサーバーなどは使っていません。 そして、このエラーが発生した後はエクスプローラで相手を参照しないとずっとコピーできなくなってしまうため、おろらく一定期間アクセスしないとCopyFileで使用しているプロトコルが相手PCを認識できなくなっているのだろうと考えた次第です。 そして、今CopyFileはどのプロトコルを使ってるのかわからないのが悩みです。 例えば、この類はエクスプローラでネットワーク一覧を開いた時、グループ内でぶらさがってるPCが見えなくなる時があると思うのですがこれと同じたぐいなのでしょうか? (後、コピーできなくなるのは22端末全てではありません。急にその中の1つがおかしくなります)

関連するQ&A

  • 共有フォルダへのフォルダ作成とファイルコピー

    PC1からPC2の共有フォルダへのフォルダ作成とファイルコピーを行いたいのですが、 フォルダ作成に「_mkdir」を使用しているのですが、 これではフォルダを作成してくれませんでした。 ファイルコピーも「CopyFile」で1個づつコピーすることはできたのですが、 複数のファイルを一気にコピーする方法がわかりません。 これも「SHFileOperation」を使用してみたのですが、 ネットワークでは使用できないみたいです。 要は、PC1からPC2の共有フォルダへ、 指定のフォルダとその中のサブフォルダ及びファイル類全てを コピーしたいのです。 Windows上でドラック&ドロップで行うような感じです。 元々はPC1内だけでのフォルダ作成やファイルコピーをしていいたのですが、 これをネットワークでもできるようにしないとならなくなり、 調べてみたのですが、 いまいちネットワークプログラミングを理解できなくてこちらに質問させて頂きました。 どなたか情報をお持ちの方がいらっしゃいましたら お力をお貸しください。 よろしくお願いいたします。

  • クライアントPCからファイルのアップロード

    ASPでファイルをアップロードするシステムを作っています。 クライントPCにあるファイル(<Input type=file>タグを使ってファイルのパスを取得)を、サーバーPCの指定したフォルダへコピーしたいです。 FileSystemObjectを使って、このような処理は可能でしょうか? Set objFileSys = CreateObject("Scripting.FileSystemObject") objFileSys.CopyFile "C:TEST\ABC.txt","D:TEST\" 現在、このような記述をしたところサーバーPCの"C:TEST\ABC.txt"をサーバーPCの"D:TEST\"へコピーするだけになってしまいます。 やりたいことはクライアントPCの"C:TEST\ABC.txt"をサーバーPCの"D:TEST\"へコピーです。 なにか良い方法がありましたら教えてください。

  • CopyFileコマンドでのファイルのコピーに失敗

      お世話になります。 VisualBasic6.0(SP3)で作成したアプリの件で質問があります。 このアプリ(例:test.exe)はクライアントPC毎に、特定のフォルダに置いてあります。 実行するとサーバー機の特定のフォルダからクライアントPCの特定のフォルダへ ファイル(abc.exe)をコピーします。 今までOSがWindowsXPのクライアントPC(複数台)では数年間正常動作していたアプリです。 最近OSがWindows7 Proの新規PCが数台追加されたのですがそのうちの1台でファイルのコピーに失敗します。 ※APIのCopyFileにてファイルのコピーを行っています。 【実行環境】  サーバー機   OS:Windows2003 Server  クライアントPC   A(コピー○) OS:WindowsXP Pro(32bit)+ウィルスバスター(企業向け版?)   B(コピー○) OS:Windows7 Pro(32bit)+ウィルスバスター(企業向け版?)   C(コピー×) OS:Windows7 Pro(32bit)+Microsoft Security Essentials 原因がプログラムなのか、導入してあるセキュリティソフトなのか、それ以外なのか・・。 何かお気づきの点などありましたらご教授下さい。 ※客先の環境ですので情報が少なくて申し訳ありません。 よろしくお願い致します。

  • Window XP-PC間でのファイル共有

    windows XP間でのファイル共有を考えております。 以下のような実装を考えています。 【前提条件】 PC間はローカルNWで接続されている。 【処理内容】 1. サーバPCでプログラムを起動する。(ダブルクリック) ~以下、自動で行う~ 2. サーバPCはクライアントPCの特定のフォルダに日付フォルダを作成する ex.) サーバPCはクライアントPCにアクセスしてCドライブ直下に『20121201』フォルダを作成する 3. サーバPCは特定のフォルダにあるファイルをクライアントPCの日付フォルダにコピーする ex.) サーバPCはマイドキュメントにあるすべてのWordファイルをクライアントPCの『20121201』フォルダにコピーする 4. サーバPCはクライアントPCと切断する なるべくカスタマイズがしやすいように バッチファイルやVBSで実装したいと思っています(組み合わせてもいいです)。 しかし、実現方法が思いつきません。 助けてください。 ⇒具体的な実装方法を記載してくださるとうれしいです。

  • 他PCへのファイルコピー

    お世話になります。 Webからファイルアップロードしたいのですが、 ファイルサーバーがWebサーバーとは別になっています。 IISで仮想ディレクトリには設定したのですが、 うまくアップできません。 で、ローカルディレクトリにファイルをアップしてから ファイルコピーしようとしたのですが、 やはりできません。 Set objFSO = Server.CreateObject("Scripting.FileSystemObject") objFSO.CopyFile "C:\test\aaa.txt", "\\server1\c:\temp\aaa.txt",True マシンserver1のtempフォルダをネットワークドライブZにしてみて objFSO.CopyFile "C:\test\aaa.txt", "z:\temp\aaa.txt",True としてみてもダメでした。 どうすればアップできるでしょうか? なにか権限の問題でもあるのでしょうか?

  • VirtualPCのIP割り振りと通信方法について

    VirtualPCにMicrosoft Loopback Adapterを追加してIPの割り振りで、 ifconfig eth1 192.168.0.2/24 のように設定してホストPCからPingをしたところ、 正常に通ることができたのですが、VMを再起動するとeth1に設定したIPが初期化されてしまい、 Pingも通らなくなってしまいます。 また、ホストPC、ゲストPCとも192.168.0.2でPingが通るのですが、 ホストPCのエクスプローラーから \\192.168.0.2\~ としても、アクセスできませんでした。 1)eth1に設定したIPを再起動しても維持する方法は、ifconfigコマンドでは駄目なのでしょうか? 2)ホストPCのエクスプローラーから通信する場合に、まだ何か設定で足りないところがあるのでしょうか? 大変恐縮ですがご教示いただけますよう、宜しくお願い致します。 ======================================== 【補足】 ホストPC:Windows7 Home Premium ネットワークインターフェース: 1枚目:NAT 2枚目:Microsoft Loopback Adapter ========================================

  • 隠しフォルダへのネットワークドライブの割り当て方法は?

    ファイルサーバーの隠しフォルダを参照する時に、\\server\〔フォルダ〕名で参照することは出来るのですが、これをネットワークドライブとしてコンピューター上で参照することは出来るのでしょうか? 隠れているので、普通のネットワークドライブの割り当てをしても、出てこないので困っています。 どうかやりかたを教えてください。 どうぞよろしくお願いいたします。

  • サーバのセキュリティ

    既存のネットワークにWindws Server 2000とXP Proの端末を追加しました。 既存の端末からは追加した2000サーバに対してPingが通るのに、 新規に追加した端末らPingが通りません。 マイネットワークのネットワーク全体から階層を参照していくと、サーバ名は表示されています。 でもアクセスするとリソースにアクセス権がありませんが表示されました。 Windows Server 2000ののセキュリティ設定がおかしいと思います。 どの様な設定をすればいいのでしょうか?

  • VBAでネットワークコンピュータのファイルにアクセスできない(XL2000)

    EXCEL2000で、EXCELのファイルと、データ専用のファイルを組にして運用しています。都度データファイルのバックアップを取るために、VBA中でネットワークコンピュータ(LAN)のフォルダにFileCopyしようとするのですが、ファイルが見つからないというエラーが出て、コピー出来ません。しかし、エクスプローラーで一回ネットワークフォルダーを開いてから終了し、再度VBAを実行すると問題なくコピー出来ます(何か道筋が出来るらしい)。 また、WEBで調べてAPIのCopyFileを用いると良いという記事をみて、トライしましたが事態は同じでした。なお、過去の類似の質問で、WindowsXPの場合のMicrosoftの情報が紹介されていましたが、本ケースでは両方のPCともWindows98です。 以上、宜しくお願いします。

  • サーバへのネットワーク接続不可原因

    社内ネットワークのサーバ1台へPING通信、ファイル共有等ネットワーク接続ができなくなりました。 問題のサーバの状態を確認したら、ローカルログオンは可能、LANランプも点灯状態でした。 (同ネットワークの端末1台も同じ現象が起きています。同ネットワーク他のサーバ、端末は問題ありません。) サーバーを再起動して復旧しましたが、 原因が特定できず、困っております。 どなたか思い当たる点がありましたら、ご教授いただけますでしょうか? よろしくお願いいたします。

専門家に質問してみよう