
Microsoft Visual C++ 6.0 で、パスワード入力の必要なネットワークリソースのログインを行うようにするため、
WNetAddConnection2()
を使ってみました。様々なサンプルコードを参考にプログラムを書きましたが、エラー1219が返されます。
自分のコンピューター:"MyComputer1"
ユーザー認証によりログインしたいネットワーク上のコンピューター名と共有名
コンピューター名 : "ServPC02"
共有名 : "ShareData"
ユーザー名 : "Admin"
パスワード : "pass"
こんな感じでプログラムを書きました。
class CMyTest
{
public:
void Open();
};
void CMyTest::Open()
{
NETRESOURCE nr ;
ZeroMemory(&nr , sizeof(NETRESOURCE) );
nr.dwType = RESOURCETYPE_DISK ;
nr.lpLocalName = NULL ;
nr.lpRemoteName = _T("\\\\ServPC02\\ShareData") ;
nr.lpProvider = NULL ;
DWORD dwResult = WNetAddConnection2(&nr , _T("pass") , _T("admin") , 0) ;
}
戻り値は、dwResult = 1219 です。
ここで、コンピューター名 "ServPC02"のIPアドレスを gethostbyname() 関数により取得し、
nr.lpRemoteName = _T("\\\\192.168.2.100\\ShareName") ;
としてWNetAddConnection2() を実行すると成功します。戻り値は0になり、この共有リソースの中にあるフォルダを検出することが可能になります。
なぜこのような現象が起こるのでしょうか?
IPアドレスを取得してネットワークのユーザー認証を行わせる方法を取ればいいけれど、コンピューター名をそのまま設定するとエラーになる理由が知りたいです。
ファイアウォールの問題など、プログラミング以外の部分の問題でしょうか。
OSは、Windows Vista (32bit)です。
No.1ベストアンサー
- 回答日時:
使ったことないのでなんとも言えませんが…
>戻り値は、dwResult = 1219 です。
errlookによると…
「同じユーザーによる、サーバーまたは共有リソースへの複数のユーザー名での複数の接続は許可されません。サーバーまたは共有リソースへの以前の接続をすべて切断してから、再試行してください。」
だそうです。
http://msdn.microsoft.com/ja-jp/library/cc446983 …
には戻り値としてERROR_SESSION_CREDENTIAL_CONFLICTは記載されていないんですよねぇ。
http://msdn.microsoft.com/en-us/library/windows/ …
英語のページだと戻り値が記載されていないもの(=Ohter)の場合はFormatMessage()で確認してや。
ってことになっているのでerrlook.exe使用したワケですが。
ログオンしているユーザー名とは別に既にコネクション張られている…とか?
# 一定時間の無アクセスで切断される…とか???
> IPアドレスを取得してネットワークのユーザー認証を行わせる方法を取ればいいけれど、コンピューター名をそのまま設定するとエラーになる理由が知りたいです。
ここだけ見るとコンピュータブラウザ関係ですかねぇ…。
とはいえ、ネットワークコンピュータの一覧に出ていなくても名前解決ができれば接続は可能かと思われますが……。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(OS) Windows11のファイル共有 1 2022/12/08 10:42
- その他(プログラミング・Web制作) awkの$NR 2 2022/10/24 11:11
- Wi-Fi・無線LAN PCWi-Fiの設定方法がわからなくて困っています。 4 2022/12/28 18:30
- Windows 10 外部ドライブにマウントできない問題について 9 2022/03/22 18:08
- ネットワーク 家庭内LANの2台のPC間で「ネットワーク資格情報の入力」で引っかかってフォルダが共有できない 1 2022/12/11 23:37
- Windows 10 windowsセキュリティーでパスワードエラー 1 2022/06/14 19:49
- PHP DBのハッシュ化したパスワードをpassword_verifyで戻し照合したのですが上手く行きません 2 2023/02/06 13:24
- その他(開発・運用・管理) Windowsバッチファイルでリモートデスクトップを自動ログインするが確認画面が出る対処方法 1 2022/12/19 15:48
- UNIX・Linux Ubuntu on Xorgのログインについて 2 2023/08/10 15:16
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
このQ&Aを見た人はこんなQ&Aも見ています
-
C#でのWNetAddConnection3の使い方を教えてください
その他(プログラミング・Web制作)
-
WNetAddConnection2で困っています
C言語・C++・C#
-
VB.netでDLLを読み込んで実行する際に、スタックを不安定にしていますというエラーが出ます。
Visual Basic(VBA)
-
-
4
C++でネットワークパスのファイルかフォルダの存在かどうかを取得する方法
C言語・C++・C#
-
5
WNetAddConnection*()の使い方
Visual Basic(VBA)
-
6
ネットワーク上のフォルダにアクセスする
Visual Basic(VBA)
-
7
フルパスから最後のディレクトリ名を取得したい。
Visual Basic(VBA)
-
8
プログラム内でネットワークドライブを指定して接続することは可能でしょうか?
C言語・C++・C#
-
9
.NETアプリを作ったときの .manifest ファイルって必要なの
C言語・C++・C#
-
10
CStringのFindで文字列検索を行いたいのですが
C言語・C++・C#
-
11
ODBC経由の処理が遅い
SQL Server
-
12
ファイルやディレクトリの存在確認を行う方法
C言語・C++・C#
-
13
オブジェクト参照がオブジェクト インスタンスに設定されていません というエラーについて
Microsoft ASP
-
14
共有フォルダへのフォルダ作成とファイルコピー
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
不正ログインされました。対応...
-
Excelのセルにユーザー名...
-
Steamのアカウントにログインで...
-
メールアドレスで上付きのハイフン
-
ユニクロやGUのシフト管理アプ...
-
CSVファイルを添付するときにパ...
-
メールを返信したら、英語のメ...
-
ワードに入力したメールアドレ...
-
インスタのアカウントが削除さ...
-
カカオトークを退会せずにアン...
-
解約済みの iPadについて 解約...
-
インスタの乗っ取り解除につい...
-
YouTubeが毎回ログインしないと...
-
「そのメールアドレスはすでに...
-
インターネットカフェでCD書き...
-
カカオで退会せずに、アプリだ...
-
携帯電話を解約してもSMSの受信...
-
カカオトークについて教えてく...
-
メールアドレスを人に教えるの...
-
email.ne.jpのメールアドレスを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelのセルにユーザー名...
-
Steamのアカウントにログインで...
-
ユニクロやGUのシフト管理アプ...
-
runas実行した時にきかれるパス...
-
インスタの乗っ取り解除につい...
-
メールを返信したら、英語のメ...
-
CSVファイルを添付するときにパ...
-
YouTubeが毎回ログインしないと...
-
email.ne.jpのメールアドレスを...
-
カカオで退会せずに、アプリだ...
-
携帯電話を解約してもSMSの受信...
-
iPhoneのiCloudメールなよです...
-
メールアドレスで上付きのハイフン
-
メールをパスワードつきで送る方法
-
「そのメールアドレスはすでに...
-
インスタの捨て垢で友達のスト...
-
「@」(アットマーク)の無いメ...
-
sageがついてるメールアドレス
-
スタディプラスではアカウント...
-
カカオトークを退会せずにアン...
おすすめ情報