.NET特集
 N1.Web関連
 Q1.VS2005自作Visualizer
 R1.OpenCV

VB6特集
 S1.Net関連(95/98)
 S2.Net関連(NT)
 S3.コモンダイアログの拡張
 S4.MailSlot関連
 S5.RAS関連
 S6.セキュリティ関連
 S7.FAX制御(Win2000)
 S8.ADSIの利用
 T1.グラデーションバー
 T2.アイコンメニュー
 T3.バーコード(NW7)
 Net関連(95/98)
Net 関連では、ネットワーク機能関連の API (Netで始まる API 関数)の解説を行います。 特に、WindowsNT では、Net 関連の API 関数は、数多くサポートされてるのは知られていますが、Windows95/98 ではどうでしょうか? よく知られているのが、WNet で始まる API 関数です。本サイトでもいくつか取り上げていますが、これだけではなく、 Windows95/98 でも、数多くの Net 関連の API 関数がサポートされているのです。(最近気づいた...)
これらサポートされている関数の詳しい説明は、SDK にもほとんど記載されていません。 何を頼りにこれら関数を解読したかというと、C のヘッダーファイル「SVRAPI.H」なのです。 ですから、各関数の引数、定数などの説明に不適切な所もあると思いますが、ご容赦願います。 各自「SVRAPI.H」に目を通しておくのも良いかと思います。 では、これらの関数で何が出来るのでしょうか?よく知られているアプリケーションでいえば、Windows 付属の「ネットウォッチャー」の機能、 また、共有資源の制御(追加、削除、変更)などを行えます。この特集では、 最終的には「ネットウォッチャー」が作成可能なくらいの機能の説明を行います。 Window95/98 専用です。WindowsNT では、これら関数(サンプル)は正常に動作しません。 本特集内での API 関数の記述に Net????95とありますが、この95は、WindowsNTとの識別の為に付けています。
 1.セッション情報の取得、切断
サーバー(コンピュータ)の共有資源に接続(アクセス)しているセッション(ユーザー)情報を列挙します。 また、接続しているセッション(ユーザー)の切断も行えます。 リモート管理が行えるサーバー(コンピュータ)の場合、パスワード入力ダイアログボックスも表示します。 ネットウォッチャーの機能を忠実に再現できていると思います。 ネットウォッチャーでの「表示」-「ユーザーごと」の表示状態と、「管理」-「ユーザーの切断」を行います。
NetSessionEnum95,NetSessionDel95,WNetUseConnection,GetComputerName,MoveMemory, lstrlenA,lstrcpyA, mErr.bas汎用モジュール(エラー文字列取得), mSHBF.bas汎用モジュール(フォルダ選択ダイアログ)
WNetUseConnection 関数を使用して、リモート管理が可能なサーバ(コンピュータ)の場合に、パスワードを入力して、 参照が可能になっています。情報を取得できるサーバー(コンピュータ)は、OS が Windows95/98 で、 リモート管理が行えるよう設定されていなければなりません。

サンプルダウンロード
 2.ネットワーク共有ファイル情報、切断
サーバー(コンピュータ)の共有ファイルに接続(アクセス)しているユーザー)情報を列挙します。 また、接続しているファイルの切断(閉じる)も行えます。 リモート管理が行えるサーバー(コンピュータ)の場合、パスワード入力ダイアログボックスも表示します。 ネットウォッチャーでの「表示」-「ファイルごと」の表示状態と、「管理」-「ファイルを閉じる」を行います。
NetFileEnum95,NetFileClose2,WNetUseConnection,GetComputerName,MoveMemory,lstrlenA,lstrcpyA, mErr.bas汎用モジュール(エラー文字列取得),mSHBF.bas汎用モジュール(フォルダ選択ダイアログ)
WNetUseConnection 関数を使用して、リモート管理が可能なサーバ(コンピュータ)の場合に、パスワードを入力して、 参照が可能になっています。情報を取得できるサーバー(コンピュータ)は、OS が Windows95/98 で、 リモート管理が行えるよう設定されていなければなりません。

サンプルダウンロード
 3.ネットワーク共有資源情報の取得
サーバー(コンピュータ)の共有資源の情報(フォルダ名、共有名、コメント、アクセス権、パスワードなど)を取得します。 ネットウォッチャーでの「表示」-「共有フォルダごと」と同じ処理です。
NetShareEnum95,WNetUseConnection,GetComputerName,MoveMemory,lstrlenA,lstrcpyA, mErr.bas汎用モジュール(エラー文字列取得),mSHBF.bas汎用モジュール(フォルダ選択ダイアログ)
NetShareEnum95 関数は、WNetOpenEnum,WNetEnumResource,WNetCloseEnum とほぼ同等の処理を行いますので、 なるべく、こちらを使用するのを推奨します。

サンプルダウンロード
 4.ネットワーク共有資源情報の取得、変更
4.で取得できた共有資源情報の変更を行います。第三弾のソースを拡張しての説明になります。 エクスプローラのフォルダで右クリックして表示される「プロパティ」の「共有」タブと同じ処理です。 ネットウォッチャーでの「管理」-「共有フォルダのプロパティ」と同じ処理です。
NetShareGetInfo95, NetShareSetInfo95, NetShareEnum95, WNetUseConnection, GetComputerName, MoveMemory, lstrlenA, lstrcpyA, mErr.bas汎用モジュール(エラー文字列取得), mSHBF.bas汎用モジュール(フォルダ選択ダイアログ)
取得できた情報を表示する場合には、StrConv 関数を使用して Unicode変換します。 データをセットする場合には、StrConv関数を使用して ANSI変換します。 これら変換を行わなかった場合、変な設定になってしまいます。

サンプルダウンロード
 5.ネットワーク共有資源情報の追加、解除
共有資源の追加、解除を行います。第四弾のソースを拡張しての説明になります。 4.では行えなかった、共有名の変更も行えるようになっています。 エクスプローラのフォルダで右クリックして表示される「プロパティ」の「共有」タブと同じ処理です。 ネットウォッチャーでの「管理」-「共有フォルダの追加」と「管理」-「フォルダの共有解除」と同じ処理です。
NetShareAdd95, NetShareDel95, NetShareGetInfo95, NetShareSetInfo95, NetShareEnum95, WNetUseConnection, GetComputerName, SHChangeNotify, MoveMemory, lstrlenA, lstrcpyA, mErr.bas汎用モジュール(エラー文字列取得), mSHBF.bas汎用モジュール(フォルダ選択ダイアログ)
SHChangeNotify関数を使用して、共有資源を追加、解除した場合の情報を反映させています。 具体的には、通常、エクスプローラより共有資源を追加した場合には、フォルダのアイコンが手のついたアイコンになりますが、 これを反映する為に、SHChangeNotify関数を使用しています。解除も同様です。 取得できた情報を表示する場合には、StrConv関数を使用して Unicode変換します。 データをセットする場合には、StrConv関数を使用してANSI変換します。これら変換を行わなかった場合、変な設定になってしまいます。

サンプルダウンロード

Copyright © 2005 tadahiro higuchi. All Rights Reserved.