掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ローカルエリア接続を無効にする方法について (ID:52882)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
このままレスつかづにずりずり下がっていくのも何かなーということで。 ずばりそのもののコードではないですが。 環境は Win2000sp4 VC++6.0 sp5です。(5.00.2195) User は Administrator グループです。 前回の質問者のリクエストで WMI を指定していたものですから、 その筋に沿った使用例を示していました。 ネットワーク接続なら NetUseDel( NULL,"Z:", USE_FORCE ); または WNetCancelConnection2( "z:", CONNECT_UPDATE_PROFILE, FALSE); //ドライブ Z: を切断 でドライブやプリンタの接続を解除できます。 コマンドラインで net use ...してみて。 デバイス一覧からデバイスドライバの登録を削除するなら SetupDiXXXXXX() 系ですね。「SetupDi」で検索。 #未テスト ローカルエリア接続はサービスの停止で達成できますね。 [マイコンピュータ][管理][サービス][Workstation] -> 停止 正攻法なら、EnumServicesStatusEx()で列挙し、見つけてからOpenService() と思ったのですが、 EnumServicesStatusEx() については、ライブラリに存在せず、ヘッダファイルも見つかりません(VC Header)。 ネットで検索すると、 http://www.cygwin.com/ml/cygwin-patches/2001-q4/msg00363/w2kServiceEXupdate.patch を見つけたのですが、怪しい。 ライブラリが見つからないのでテストできず。 仕方ないので 直接名前を調べてテストしました。 Workstation の名前は "lanmanworkstation" でした。 SC_HANDLE hSC; SC_HANDLE hSCSvc; SERVICE_STATUS s_svcstat; DWORD dwResume = 0; // 失敗でNULL if( hSC = OpenSCManager( "Neptune", SERVICES_ACTIVE_DATABASE, SC_MANAGER_ALL_ACCESS )) { if( hSCSvc = OpenService( hSC, "lanmanworkstation", SERVICE_ALL_ACCESS )) { if(! ControlService( hSCSvc, SERVICE_CONTROL_STOP, &s_svcstat )) { DWORD dwErr = GetLastError(); CString cs; cs.Format("%08X",dwErr); MessageBox( cs, "ERROR", MB_ICONSTOP ); } CloseServiceHandle( hSCSvc ); } CloseServiceHandle( hSC ); } このままではエラーコード 0000041B が返されます。 依存するサービスがあるので止められませんとのこと。 再帰的に依存するサービスを止めなければならないようだ。 EnumDependentServices() 他に影響すると困るので、とりあえず、テストを中止します。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.