投稿者 魔界の仮面弁士  (社会人) 投稿日時 2008/12/1 20:45:50
> VBファンなら必ずチェックする気がします。
揚げ足をとる気はありませんが、「必ず」というのは聊か大袈裟かと。(^^;


> それこそ公式資料が見当たらないのに、どこから仕入れているんだろうと思いました。
仕入先は人それぞれですが、一連の資料としてはまとまっておらず、あちこちに
情報が分散している場合もありますので、その分野に対してどこまで熱意を持って
調べられるか。そして日頃から、専門外の分野にまで網を広げているかどうかが
鍵となるでしょう。(って、何の回答にもなっていませんけれども)


で。文書化されていない情報の場合は、仕入先としては
 ・今は資料が無いだけで、一定時期(あるいは一部ユーザーのみ)には公開されていた。
  (例えば、パートナー契約企業のみに公開される資料などが存在します)
 ・Try & Error を繰り返して経験する。
  (レジストリを操作・監視して、動作の変化を調べるとか)
 ・内部情報を解析するなどして、それらしいところに中りを付ける。
  (Dependency Walker, Spy++, DDESpy, Regmon, APImon, Accessible Explorer など)
 ・Microsoft 内の当時の開発者や担当者、関係者などから仕様を直接聞く。
  (最近は blog で、内部仕様の一部が公開可能な範囲内で配信される場合も)
 ・他の人が仕入れた知識からの又聞き。
などがあるかと思います。


> Windowsのソースコードが公開されたとかされないとか、
公開されていますが、全ての範囲というわけでは無かったはず。
(確認しようとしたら、閲覧認証用の IC カードが期限切れだった…)


> 今回のパス情報とか公開にならないのかなあ、とか。
起動処理の基本は、ShellExecute(Ex) API にあります。(それに加えて、
シェル エクステンションや DDE が関わってくる場合もあります)

で。コマンドライン引数については、各アプリケーションに固有の設定であり、
統一された仕様は存在しません(引数を無視するアプリケーションも多いです)。
たとえばエクスプローラのコマンドライン引数を見ても、使用可能な引数は
Windows および エクスプローラ自身のバージョンによって異なります。


> 実は私も中高年向けのランチャーといって始めたのですが、
他者が作ったランチャーで、ソースコードが公開されている物を見ていくと、
いろいろと参考になるかも知れませんね。
たとえ、自分が知らない言語(人間語/コンピュータ語)で書かれたソースでも、
何をやっているかを推測する役には立つでしょうし。

たとえば昔、コマンドライン ランチャーが流行った時期のソフトで、こんなのとか。
http://www.momo-lab.net/inu/momomemo.html


> ネットワーク関連のみをピックアップしようかと考えました。
「ネットワーク関連」と一口に言っても、いろいろありますよ。(^^;

ネットワーク設定なら、最近の環境では、WMI を使う方法が使えます。
具体的には、Win32_NetworkAdapterConfiguration クラスなどが相当します。
(WMI を扱うなら、VB よりも PowerShell の方が便利ですけれどね)

あとは NETSH コマンドを使うのも手です。これなら、バッチファイルで十分。
http://technet2.microsoft.com/WindowsServer/ja/library/397d5a3d-87eb-49ce-b9f5-da58d000aa6d1041.mspx?mfr=true


> ちなみに私の環境はVISTAですが、バージョンによっても指定方法などはだいぶ異なるものでしょうか?
同じ部分もありますが、違っている所もあるのは確かですね。
これは手作業で変える場合の見た目の違いだけでなく、プログラム制御でも同様です。

たとえば Vista であれば、IPv6 系の設定項目がありますが、古い OS では、
IPv4 にしか対応していなかったりしますしね。

また上記 NETSH にしても、Win2000 では使えますが、NT4.0 では使えません。
WMI については、Vista では標準搭載ですが、Win95/98 では追加インストールが
必要になります(環境によって使用可能なクラス/メソッドさえも異なります)。

そのため処理内容によっては、OS のバージョンをチェックするようにして、
それぞれごとに異なるコードを記述しなければならないかも知れません。


> XP利用者の方が多いような噂話も聞き、以前のバージョンでも使える物を目指しております。
そのためには、動作検証用に Windows XP の端末が必須となりますね。
VirtualPC でも良いので、XP の環境を用意しておきましょう。
XP を持っている知人に動作検証をお願いするのも手です。

また XP は、「Service Pack 2 以降を適用したもの」と、それ以前の
「未適用/Service Pack 1 適用」とでも、動作面で違いがありますので、
できれば、複数バージョンの環境を用意できると良いですね。

さらに言えば、「開発環境」と「動作環境」は別にしておいた方が良いので、
可能であれば Vista も、Visual Studio を未インストールなまっさらな物を
用意しておく事が望ましいです。(個人だと、なかなかそこまで手が回りませんが)


> その昔はコマンドプロンプトの黒い画面上から打ち込んであらゆる操作をしたそうですが、
今でもコマンド プロントの存在は大きいですよ。たとえば Windows Server 2008 の
Server Core インストールでは、エクスプローラさえ用意されません。
http://www.microsoft.com/japan/windowsserver2008/technologies/server-core.mspx


> 例えばコントロールパネルだったら、それを開く指定方法など、
一連の回答にもありますように、コントロール パネルの各アイテムの実体は、
拡張子 cpl のファイル群です。最近は control コマンドからも呼び出せますね。
http://www.atmarkit.co.jp/fwin2k/win2ktips/585cplcmd/cplcmd.html

これら cpl は DLL の一種であり、古い環境においては、設定画面を開くためには
コマンドラインから RunDLL32.exe 経由で開く必要がありました。
http://support.microsoft.com/kb/164787/ja

最近の OS では *.cpl 単独でも実行できますが、それは cpl 拡張子に対して
『rundll32.exe shell32.dll,Control_RunDLLAsUser "%1",%*』
が実行されるよう、関連付けが行われているためです。

なお、「どのタブを開くか」などの設定をコマンドライン等から
操作できるかどうかは、それぞれの cpl にも依存しています。


> ネットワーク設定を親切にエスコートするプログラム。
Windows 98 の頃、メーカー製各社のパソコンでは、デスクトップ上に
プロバイダ各社の「我が社を使って接続するにはこれをダブルクリック!」な
アイコンがずらずらと並んでいて、辟易した思い出が…。


> 話の大小や中心がつかみにくかったかもしれません。
neptune さんの話と被りますが、ネットワーク設定といっても、その範囲は膨大です。
OS の設定だけでなく、突き詰めればハードウェアの設定まで必要な場合もあります。

自分以外が使うツールとなれば、環境も千差万別なので、まずは
「そもそも、何と何を設定すれば、ネットワークが使用可能となるのか」を
調べる事から始めてみてください。(まずは、手作業での設定方法の把握から…)