YOSSHI さん (mol@mcc.spacetown.ne.jp) 2000年 07月 31日 16時 56分 26秒

こんにちは。WSHに関して2つ質問があります。
初心者なので稚拙な質問で申し訳ありませんが、教えてください。

1.WSHをつかって、マシンに設定されているIPアドレス等の情報を
戻り値にする方法を教えてください。

2.WSHで書いたスクリプトを実行中は実行中のダイアログ以外に
フォーカスが移らないようにするのはどうしたらいいですか?
または、コントロールパネル等で、最小化ができないダイアログ等
について、表示させない状態で処理を行うことはできるなら
その方法を教えてください。

宜しくお願いします。

管理人むたぐち さん (mutaguchi@roy.hi-ho.ne.jp) 2000年 07月 30日 18時 49分 31秒
URL:http://www.roy.hi-ho.ne.jp/mutaguchi/

ドメインを取得しました。
URLはこちら↓
http://www.wshlabs.com/



…嘘です(爆)
しかし、偶然とはいえこんなページがあるとは。

水質調査をやったり、浄水器のようなものを作っている会社みたいなんですが、
個人的には興味のある分野だったりします(^^;
(どちらかというと、Windows Script Hostよりは私の専門分野に近いかも(謎))

それにしても、WSHってなんの略なんでしょうね。

管理人むたぐち さん (mutaguchi@roy.hi-ho.ne.jp) 2000年 07月 30日 03時 25分 37秒
URL:http://www.roy.hi-ho.ne.jp/mutaguchi/

To: megumegu さん

> 現在、Win2000環境でWSHを使用し、ネットワークドライブ&ネットワークプリンタの割り当てのログオンスクリプトを作成しています。
> Lesson12を参考にしているのですが、ネットワークプリンタをLPTに割り当ててから、接続してますよね?その方法しかないのでしょうか?

あのLesson12は、私がネットワークを組んでいないこともあって、サンプルコードが
動作未確認になっていますが、どうも動作しない場合もあるようですね…。

AddPrinterConnectionメソッドのかわりにAddWindowsPrinterConnectionメソッドを
使ってみるのはいかがでしょうか?
このメソッドは、WSH2.0(Win2000には最初からインストールされています)で新しく
追加されたもので、ヘルプを信じれば、

WshNetwork.AddWindowsPrinterConnection strPrinterPath, strDriverName[,strPort]

という構文になっているようです。
Win2000では、strDriverNameとstrPortを指定しても無視されるそうです。
つまり、strPrinterPath(ネットワークプリンタのパス)を指定するだけでいい
(特定のポートに割り当てなくても良い)ということになるはずです。
試してみてはいかがでしょうか。

megumegu さん (megu-m@zb3.so-net.ne.jp) 2000年 07月 29日 18時 45分 22秒

はじめまして。
現在、Win2000環境でWSHを使用し、ネットワークドライブ&ネットワークプリンタの割り当てのログオンスクリプトを作成しています。
Lesson12を参考にしているのですが、ネットワークプリンタをLPTに割り当ててから、接続してますよね?その方法しかないのでしょうか?
というのも、どうしてもプリンタ接続がうまくいかないのです。
LPTにはきちんとネットワークプリンタの値が入っているのですが、プリンタの画面には出てきませんし、アプリケーションで印刷を選んでも、プリンタが出てきません。

もし、よろしければ、すでにこのWSHで成功している方、アドバイスを御願いします。

スクリプトの記述はLesson12とまったく同じなので、省略させていただきます。

よろしく御願いします。

管理人むたぐち さん (mutaguchi@roy.hi-ho.ne.jp) 2000年 07月 29日 17時 44分 54秒
URL:http://www.roy.hi-ho.ne.jp/mutaguchi/

To: ishimura さん

> 今回は私(私の会社)が開発している製品を紹介したいと思います。

もしかして、この掲示板で得られた情報が使われているのですか?
なら、教授料として売上の5%を要求します。

# jokeですよ(^^;

> そして、いろいろなアドバイスを頂きたいと思います。

製品の宣伝は、あまり掲示板とかに書き込まないほうがいいでしょうね。
かえって製品の信用を落とすこともありますよ。

それと、JavaScriptをオンにしていないと見られないページもどうかと思います。
# というわけで(?)、私は見てません。

> 製品の紹介などしてもいいのかな?

WSHやスクリプトに関係ないのなら、ご遠慮ください。
# と言ってももう遅いですが。



To: Lib30 さん

> こういう書き込みはもっと他でやったほうが効果があると思います。

効果があるかどうかはともかく、慎重に宣伝の場所を選んだ方がいいですね。
場合によってはSPAMとなりかねませんし。ご注意を。

Lib30 さん (lib30@yo-mail.co.jp) 2000年 07月 29日 15時 51分 46秒
URL:http://www.ob.aitai.ne.jp/~kazoo/

To ishimura さん

>今回は私(私の会社)が開発している製品を紹介したいと思います。
>そして、いろいろなアドバイスを頂きたいと思います。
これはこの掲示板を見にきている人たちに対しての書き込みですか?
あまりWSHに関係のない製品ですね。個人的にもあまり興味がないのでパスします。
こういう書き込みはもっと他でやったほうが効果があると思います。

ishimura さん (ishimura@adgator.co.jp) 2000年 07月 29日 14時 48分 53秒

いつも有難うございます。
今回は私(私の会社)が開発している製品を紹介したいと思います。
そして、いろいろなアドバイスを頂きたいと思います。
製品の紹介などしてもいいのかな?

製品の概要は、
FTPからクライアントに自動配信を行うシステムです。
自動配信を行う内容は、起動画面、終了画面、スクリーンサーバー
背景画面、音です。背景画面には色々なコンテンツがあります。
今後、ユーザーサービスの強化を目指しています。コンテンツの充実や
ポイント制を用いたサービスなどを予定しています。

製品は下記のHPからダウンロードできます。
http://www.adgator.co.jp

色々なアドバイスをお待ちしております。

管理人のむたぐちさんへ
 私用な用件を掲示して申し訳ございません。

管理人むたぐち さん (mutaguchi@roy.hi-ho.ne.jp) 2000年 07月 29日 02時 38分 21秒
URL:http://www.roy.hi-ho.ne.jp/mutaguchi/

またまた面白い発見をしてしまったので、書き込みます。
これまで述べてきたShellFolderViewオブジェクトのScriptプロパティから、
*.httの内部オブジェクト(DHTMLのオブジェクト)にアクセスできることが判明しました。
もちろん、フォルダをWeb表示にしておくことが必須です。
# ShellFolderViewオブジェクトのViewOptionsプロパティで、Web表示されているか否かを
# 取得できるかと思ったのですが…まあ、この際どうでもいいでしょう。

下のスクリプトは、*.httにアクセスすることで、フォルダウィンドウに表示されている情報を
とってきたり、表示を変えたり、*.htt内で定義されている関数を実行できたりするという
ことを示すデモンストレーションです。
ごみ箱を表示させておくと、recycle.htt内に記述されているごみ箱を空にする関数(Empty)
を実行します。
なお、*.httに定義されている関数やオブジェクトは、WindowsやIEのバージョンによって
異なるので、下のスクリプトはWin2000+IE5.01(フォルダWeb表示)以外では動作しない
かもしれません。

On Error Resume Next
Set Shell = WScript.CreateObject("Shell.Application")
For Each window In Shell.Windows
Set document=window.document
If typename(document)="IShellFolderViewDual" Then
Set oScript = document.Script 'HTMLWindow2オブジェクトを返す
If document.Folder.title="ごみ箱" Then
msg=msgbox (oScript.L_Intro_Text & vbCrLf & "ゴミ箱を空にしますか?", _
vbYesNo) '変数の表示
If msg=vbYes Then Call oScript.Empty '関数の実行

Else
msgbox oScript.Info.InnerText '情報ペインに表示されている内容を表示
oScript.FolderName.InnerText="WSHからのいたずら" 'フォルダ名を書き換える
oScript.window.document.body.style.color="red" '文字を赤に(スタイルの変更)
End If
End If
Next


というわけで、WSHからエクスプローラの機能をとことんまで扱えることがわかってきました。
後は、検索機能を使う方法についてが明らかになればいいのですが。


# それにしてもこの掲示板は行頭のスペース・タブが表示されなくなるので見にくいですね。
# HTMLのソースを見たほうが見やすいかも…。
# スペース・タブは表示されないだけで、文字列データとしては持っているので、
# 変換をかけてやれば見やすくなりそうです。AKiOSさんにお願いして実装していただこうかな?


管理人むたぐち さん (mutaguchi@roy.hi-ho.ne.jp) 2000年 07月 29日 01時 32分 37秒
URL:http://www.roy.hi-ho.ne.jp/mutaguchi/

前回挙げたShellFolderViewオブジェクトへアクセスするスクリプトのサンプルは
あまり面白くなかったので、ちょっとばかり実用的なサンプルを作成してみました。
短いスクリプトですが、ファイルが自動的に選択されていく様子は一見の価値あり
かもしれません。
また、結構いろいろなオブジェクトの機能を使っているので、割と参考になるかも…。

最初からfolder.httに書いとけばいいじゃん、という声も聞こえてきそうですが、
WSHによる外部からのアクセスだと、フォルダをWeb表示させていなくても内部オブジェクト
を扱えるというメリットがあります。

'30日以内に更新されたファイルを選択
Set Shell = WScript.CreateObject("Shell.Application")
For Each window In Shell.Windows
Set document=window.document
If typename(document)="IShellFolderViewDual" Then
Set oFolder = document.Folder
Set oFolderItems = oFolder.Items
For Each oFolderItem In oFolderItems
If DateDiff("d",oFolderItem.ModifyDate,Now)<=30 Then
document.SelectItem oFolderItem,1 '選択
Else
document.SelectItem oFolderItem,0 '選択解除
End If
Next
window.StatusText="30日以内に更新された" & _
document.SelectedItems.Count & "個のオブジェクトを選択"
End If
Next





To: TERASHIMA さん

> ファイルの保存をするとき、保存先が選べるボックスがでますが、このボックスを
> WSHで呼び出すソースの書き方はありますか。

CommonDialogコントロールを呼び出す方法ですね。
以下のコードは、Visual Basicをインストールしている環境でのみ動作します。

Set Dlg = WScript.CreateObject("MscomDlg.CommonDialog")
Dlg.Filter= "VBSファイル(*.vbs)|*.vbs"
Dlg.MaxFileSize=5000
Dlg.FilterIndex=0
Dlg.ShowSave

msgbox Dlg.Filename

なお、複数ファイルを選択できるようにする方法については、過去記事リスト10の3番目の
記事を参照してください。

CommonDialogコントロールの詳しいリファレンスは、MSDNライブラリにあると思います。



To: ishimura さん

> ファイル読み込み処理は参考になりました。
> 有難うございました。しかし、MSDNの説明が英語なので・・・

Lib30さんと私の説明でとりあえず使えるようにはなったのではないでしょうか。
VBSで実現するには、GetRef関数がポイントになるでしょう。

説明は英語とはいえ、コード自体は万国共通ですしね。

> スクリーンセーバーが起動したときにイベントを取りたいのですが
> 無理なのでしょうか?

WSHの標準機能では無理として、何かのコンポーネントにそういう機能が
付属しているかもしれませんが、あいにく私は存じておりません。

VB/VC++などの開発言語を使うなら、もちろんWin32APIを使えば可能でしょう。
# やり方はもちろんわかりません(^^;

ishimura さん (ishimura@adgator.co.jp) 2000年 07月 28日 18時 36分 33秒

ファイル読み込み処理は参考になりました。
有難うございました。しかし、MSDNの説明が英語なので・・・

今回も質問したいのですが、
Active Disk Top上でHTMLファイルを起動させています。
スクリーンセーバーが起動したときにイベントを取りたいのですが
無理なのでしょうか?

TERASHIMA さん (terashima@d-web.co.jp) 2000年 07月 28日 18時 09分 32秒

ファイルの保存をするとき、保存先が選べるボックスがでますが、このボックスを
WSHで呼び出すソースの書き方はありますか。
教えてください。

管理人むたぐち さん (mutaguchi@roy.hi-ho.ne.jp) 2000年 07月 27日 12時 27分 48秒
URL:http://www.roy.hi-ho.ne.jp/mutaguchi/

○WSHからShellFolderViewオブジェクトにアクセスする方法

連続で申し訳ないんですが、また新発見したので書き込みます。
# GetRef関数についていろいろ試しているうちに気づきました。

Set Shell = WScript.CreateObject("Shell.Application")

For Each window In Shell.Windows
Set document=window.document
If typename(document)="IShellFolderViewDual" Then
'↑IE5をインストールしていない場合は"IShellFolderView"になると思う。
MsgBox document.FocusedItem.Path
End If
Next

これは、現在開かれているフォルダ内で、フォーカスのあたっているアイテム
(ファイルorフォルダ)のパスを表示させるというものです。

これで今まで謎だった、ShellFolderViewオブジェクトにアクセスする方法というのが明らかに
なりました。いろいろ応用が可能だと思います。

具体的には、ShellWindowsオブジェクト(表示されているフォルダやIEのウィンドウの集合)
の要素である、IWebBrowser2オブジェクトのDocumentプロパティが返すオブジェクトの
クラスがIShellFolderViewDualである場合(=フォルダウィンドウ)、そのオブジェクトは
ShellFolderViewオブジェクトです。
もしHTMLDocumentというクラスだった場合(=IEのウィンドウ)は、DHTMLでいうところの
Documentオブジェクトと等価です(これについてはすでにどこかで解説しましたね)。

ShellFolderViewオブジェクトの簡単な解説。
MSDNライブラリ(英語版)に詳しいリファレンスがありますが…。
括弧内はShell32.dllのバージョンが5.00以上(つまりWin2000)の場合です。

・プロパティ
Application …Shell(IShellDispatch2)オブジェクトを返す
FocusedItem …フォーカスのあたっているアイテムのFolderItemオブジェクトを返す
Folder …そのウィンドウが表示しているフォルダのFolder(Folder2)オブジェクトを返す
ViewOptions …未調査
Parent …未調査
Script …未調査

・メソッド
PopupItemMenu …ポップアップを出す?
SelectedItems …選択中のアイテムを含んだFolderItems(FolderItems2)オブジェクトを返す
SelectItem …アイテムを選択する

・イベント
EnumDone …アイテムの選択が解除されたとき?
SelectionChanged …アイテムの選択が変化したとき?
# GetRef関数でおそらくバインドが可能でしょう。


ところで、IWebBrowser2オブジェクトのイベントをバインドすることも可能だと思います。
つまり、表示中のIEやフォルダウィンドウが閉じられたとき(OnQuit)、移動したとき(NavigateComplete2)
などを検出することができるでしょう…と思ったんですが、これは無理でした。



○GetRef関数の使用例

これはおまけです。あるHTMLページの機能を外部から拡張するような使い方が
できるようになるわけです。

'この掲示板に名前などを自動付加する機能を追加

Dim document

Set IE = WScript.CreateObject("InternetExplorer.Application","IE_")

IE.Visible=True
IE.Navigate("http://www.roy.hi-ho.ne.jp/mutaguchi/bbs/index.shtml")

Do
WScript.Sleep 100
Loop

Sub IE_DocumentComplete(ByVal pDisp, URL)
Set document=IE.Document
Set document.Forms(0).OnSubmit = GetRef("Form_OnSubmit")
End Sub

Sub IE_OnQuit()
WScript.Quit
End Sub

Function Form_OnSubmit()

For Each tag In document.Forms(0).all
If tag.tagName="INPUT" Then
If tag.Name="email" Then tag.Value="mutaguchi@roy.hi-ho.ne.jp"
If tag.Name="url" Then tag.Value="http://www.roy.hi-ho.ne.jp/mutaguchi/"
If tag.Name="name" Then tag.Value="管理人むたぐち"
End If
Next

Select Case MsgBox("書き込みする?",vbYesNoCancel)
Case vbNo
If MsgBox("消去しますか?",vbYesNo)=vbYes Then
document.Forms(0).Reset
End If
Form_OnSubmit=False
Case vbCancel
Form_OnSubmit=False
End Select

End Function


もちろん上で述べた、ShellWindowsと併用して、現在表示中のIEのページに対しておこなうようにも
改良できます。

Set Shell = WScript.CreateObject("Shell.Application")

For Each window In Shell.Windows
Set document=window.document
If typename(document)="HTMLDocument" Then
If document.location.href="http://www.roy.hi-ho.ne.jp/mutaguchi/bbs/index.shtml" Then
Set document.Forms(0).OnSubmit = GetRef("Form_OnSubmit")
'Set window.OnQuit=GetRef("IE_OnQuit")←これは無理みたい
End If
End If
Next

Do
WScript.Sleep 100
Loop

...あとは同様

管理人むたぐち さん (mutaguchi@roy.hi-ho.ne.jp) 2000年 07月 27日 08時 02分 41秒
URL:http://www.roy.hi-ho.ne.jp/mutaguchi/

さらに追加です。

GetRef関数を使って、WSHからCreateObjectしたIEのオブジェクトを通じて、
HTMLエレメントのイベントをバインドする方法もわかりました。
# これはmicrosoft.public.scripting.wshの情報です。(Message-ID: <efVoq0X9$GA.271@cppssbbsa05>)

たとえば、<button id="btnclick">のonClickイベントをバインドするには以下のように
します。
ConnectObjectメソッドなんて最初から必要なかったんですね(^^;

Set IE= WScript.CreateObject("InternetExplorer.Application","IE_")
<中略>
Sub IE_DocumentComplete(ByVal pDisp, URL)
Wscript.Echo "Hello from ie_DocumentComplete"
set doc = ie.Document
set doc.all.btnclick.onclick = getref("btnclick_OnClick")
End Sub

Function btnclick_OnClick
WScript.Echo "Hello from btnclick_OnClick"
End Function


思い出したのでついでに補足ですが、以前(16-07)、「VBSではJavaScriptの
returnステートメントに相当する、値を返す機能がない」という嘘を書いていましたが、
これはイベントハンドラの記述にSubプロシージャではなく、Functionプロシージャを
使えばいいだけのことでしたね。
# これはMSDNライブラリの記述の仕方も悪いんですが。

たとえば、このように。

Function form1_OnSubmit()
msg=msgbox("submit?",vbYesNo)
If msg=vbNo Then
frm1_OnSubmit=False 'window.event.returnValue=FalseでももちろんOK
End If
End Function


VBSというものも、結構奥が深いものなんですね。
まだその仕様を十分には把握していないようです。


これもまたついでに追加ですが
> データバインド(IE4以上?)を使えば、CSVファイルを簡単に読み出せます。
CSVファイルへのアクセスの機能は、数あるデータアクセスオブジェクトの一つである、
Tabular Data Control (TDC)の機能になるらしいです。

さらに面白いことに、HTML自体をデータソース(MSHTMLデータソース)として扱うことも
できるようです。この場合、<object>要素のdata属性にデータソースとなるHTMLファイルの
URLを指定するようです。

詳しくはMSDNライブラリをどうぞ(Web公開日本語版でも記述されているといいのですが)。

管理人むたぐち さん (mutaguchi@roy.hi-ho.ne.jp) 2000年 07月 27日 05時 53分 20秒
URL:http://www.roy.hi-ho.ne.jp/mutaguchi/

To: Lib30 さん

> http://msdn.microsoft.com/workshop/author/behaviors/reference/methods/startdownload.asp

ここを見てきたんですが、VBSでの記述は結構興味深いですね。

GetRef関数を使って、関数ポインタを参照しています。
つまり、startDownloadメソッドの第二引数は、関数ポインタということになります。
さらに言うと、onDownloadDoneプロシージャのアドレスを示すポインタということに
なります。

# setTimeoutメソッドなんかは、関数名を直接指定するという点で興味深い対比が見られますね。

# GetRef関数は、VBScript ver.5.0からサポートされています。

ずっと前のことになりますが(13-16の記事)、私はVBSでは関数ポインタを
サポートしていないと書いたんですが、また嘘でしたね。
あのときの例でいくと、
Set document.all.Machine.onchange=GetRef("document.parentwindow.onchng")
となるようです。

また、IE:DOWNLOADエレメントという、IEの独自拡張エレメントを使っている
ところがまた面白いです。
XHTMLですね。これは。
# HTA:Applicationと同様ですね。

今後、名前空間を利用した要素の拡張方法が主流になっていくんでしょう。

管理人むたぐち さん (mutaguchi@roy.hi-ho.ne.jp) 2000年 07月 27日 05時 22分 13秒
URL:http://www.roy.hi-ho.ne.jp/mutaguchi/

To: しみじみ さん

> VBS講座・応用編のLesson9をしているのですが、実行をすると
> 「オブジェクトがありません。:'WScript'」
> というメッセージが表示され実行できません。

えっと、ブラウザではなく、ちゃんとWSHを通してVBSを動かしていますでしょうか?
通常なら、拡張子VBSのファイルがWSHに関連付けられています。

具体的にエラーが出るスクリプトを書いていただけると何かわかるかもしれません。



To: ishimura さん

> もう一つお聞きしたいのですが、
> ASPのファイルを起動させた後に自動的に終了させる
> 方法を教えて頂きたいのですが?

window.closeでOKと思います。
「スクリプトからウィンドウが閉じられようとしています」とかいう警告が出ますが。

> ASPファイルを立ち上げた後、10秒後
> に自動的に終了するパターンでも構いません。

window.setTimeoutで制御することができます。

window.setTimeout("window.close", 10000)
という感じでしょうか。




To: Lib30 さん

フォローありがとうございました。

> 詳しくは以下のページに資料があります(英語)。
> http://msdn.microsoft.com/workshop/author/behaviors/reference/methods/startdownload.asp
>
> ちなみにこのページにVBScriptでの実行例も載っていました。

あとで見てみますね。
それにしても、MSHTMLをオブジェクトブラウザで調べてみても、このstartDownload
メソッドは見当たらないんですよね。何故だろう?



To: kobahide さん

> dhtml にwsh を使わなくても、text file 読み込みできるんですからね。
> これまでは、java applet を用意にしないと出来ないことですからね。

データバインド(IE4以上?)を使えば、CSVファイルを簡単に読み出せます。
詳しくはhttp://www.st.rim.or.jp/~makoto3/ などにサンプルがあるのでごらんください。

http://www.st.rim.or.jp/~makoto3/dhtml_ie/dhtml_ie0044.html
このあたりが初出でしょうか。

# ソートや絞込みなどができてすごく便利です。

kobahide さん (kobahide@geocities.co.jp) 2000年 07月 27日 02時 43分 39秒

Lib30 さんへ

>すみません、憶測でセキュリティーホールだといってしまいましたが、実際はこの
>ちゃんとした対策が取られていたのですね。以後よく調べて書き込みします
 いや(^^;) あやまるようなことはないので(^^;) 

 Lib30 さんが教えてくれた情報はとても阿智あるものですね。
dhtml にwsh を使わなくても、text file 読み込みできるんですからね。
これまでは、java applet を用意にしないと出来ないことですからね。
 csv file を読み込んで、テーブルに加工して表示とか。。
 便利じゃないですか(^^)

kobahide さん (kobahide@geocities.co.jp) 2000年 07月 27日 02時 33分 17秒

ishimura さんへ
>ASPのファイルを起動させた後に自動的に終了させる
>方法を教えて頂きたいのですが?
 ようするに、ブラウザを自動的に閉じるようなクライアントスクリプト
を知りたいと言うことですね。
 javascript で、self.close でいいんだよね。
 でも、セキュリティ的な問題がある動作ですから、実際には
動作しません。IE3 は期待どうりに閉じてくれるけど。



Lib30 さん (lib30@yo-mail.co.jp) 2000年 07月 26日 21時 49分 29秒
URL:http://www.ob.aitai.ne.jp/~kazoo/

To kobahide さん
>ローカルファイルとして、指摘のhtml を開くと、確かに、他のローカルファイルの中身を見れますね。でも、Http ページとして開いた場合は、
>全くローカルファイルにアクセスすることばできないようですが。
すみません、憶測でセキュリティーホールだといってしまいましたが、実際はこのように
ちゃんとした対策が取られていたのですね。以後よく調べて書き込みします。

>内容なのですが、ファイルの中身がどの変数に格納
>されているのか良くわかりません。
ページ内にはgetFileContentsとputFileContentsの二つの関数があります。
このうち、putFileContentsにはひとつのパラメーターがあり、たとえば
function AAAA(){
putFileContents("Hello!")
}
とやれば、ページ内には Hello という文字列が表示されます。
それで、もうひとつの関数のgetFileContentsの中には stertDownlode というメソッドがあります。
これは二つのパラメーターをとり、一つ目にはファイルへのパス、二つ目はファイル内容を渡す関数の名前を指定します。
この二つ目の引数に指定する関数には、一つのパラメーターをとるものの関数名を指定します。
そうすれば、startDownlodeが実行されたときにその二つ目の引数に指定した関数のパラメーターに
自動的にファイルの内容を当てて実行するのですが......。
わかったでしょうか?
詳しくは以下のページに資料があります(英語)。
http://msdn.microsoft.com/workshop/author/behaviors/reference/methods/startdownload.asp

ちなみにこのページにVBScriptでの実行例も載っていました。

ishimura さん (ishimura@adgator.co.jp) 2000年 07月 26日 19時 49分 31秒

いつも有難うございます。

Lib30さんが
2000年07月25日17時05分35秒に書き込まれていた
内容なのですが、ファイルの中身がどの変数に格納
されているのか良くわかりません。
例えば、ファイルの中身を表示させる方法など
詳しく説明して頂けないでしょうか?
私の勉強不足で申し訳ございませんがよろしくお願いします。

もう一つお聞きしたいのですが、
ASPのファイルを起動させた後に自動的に終了させる
方法を教えて頂きたいのですが?

例)下記のプログラムを実行した後、自動的にウインドウを閉じる方法
  IEを終了する方法です。ASPファイルを立ち上げた後、10秒後
  に自動的に終了するパターンでも構いません。
  <%
   Set DbCon = Server.CreateObject("ADODB.Connection")
   DbCon.Open ("DSN=test;UID=test;PWD=test")
   StrSQL = "insert into test values ('0');"
   dbCon.Execute(StrSQL)
   dbCon.close
  %>

kobahide さん (kobahide@geocities.co.jp) 2000年 07月 26日 07時 40分 40秒

kobahide です。

セキュリティホールじゃないんよーな・・・
 win98se +ie5.01 の環境でテストしてました。

>しかし、ローカルのファイル名がわかっている場合、その内容をスクリプトを使っ
>読み取ることが可能というのはセキュリティホールにはならないんでしょうか…。
 ローカルファイルとして、指摘のhtml を開くと、確かに、他のローカルファイルの中身を見れますね。でも、Http ページとして開いた場合は、
全くローカルファイルにアクセスすることばできないようですが。

 ローカル側での安全なファイルアクセス(読み込みオンリー)は、穴
だったかな・・・。たぶん違うよーな・・・、

Lib30 さん (lib30@yo-mail.co.jp) 2000年 07月 25日 21時 28分 42秒
URL:http://www.ob.aitai.ne.jp/~kazoo/

>しかし、ローカルのファイル名がわかっている場合、その内容をスクリプトを使って
>読み取ることが可能というのはセキュリティホールにはならないんでしょうか…。
まさに穴だらけですね。いいんでしょうか?でもこれの場合はファイルの書き込みまではできないのでいいですが。

>ところで、このコードをVBSに直したいのですが、一つわからない点があります。
>それは、fileContents.startDownload("textfile.txt", putFileContents);
>というところで、startDownloadメソッドの第二引数に指定しているのが関数で
>あるという点です。
>これって、どういう意味なんでしょうか? putFileContentsの引数も指定していな>いし…。
これは第二引数に指定した関数を実行し、その関数の引数に第一引数で指定したファイルの
内容を当てる、という意味のようです。ちなみに僕もVBSにすることはできませんでした。

しみじみ さん (trident@ceres.dti.ne.jp) 2000年 07月 25日 19時 32分 40秒

はじめまして。しみじみです。

VBS講座・応用編のLesson9をしているのですが、実行をすると
「オブジェクトがありません。:'WScript'」
というメッセージが表示され実行できません。
環境
WinNT4.0
WindowsScript5.5

インストールがまずかったのでしょうか?
よろしくお願いします。


管理人むたぐち さん (mutaguchi@roy.hi-ho.ne.jp) 2000年 07月 25日 18時 52分 45秒
URL:http://www.roy.hi-ho.ne.jp/mutaguchi/

○Windows2000の「フォルダのショートカット」をWSHから作成する方法

Windows2000では、「フォルダのショートカット」という新しい仕組みが追加されました。

作成方法は、「スタート」ボタンにフォルダをドロップし、「ショートカットをここに
作成」がいちばん簡単です。

こうやって作成された「フォルダのショートカット」は、普通のショートカットと違い、
中身をポップアップで階層表示できるという点が異なります。

この「フォルダのショートカット」の実態は、「フォルダへの普通の
ショートカット(target.lnk)」とdesktop.iniが入った「システムフォルダ」です。

よって、これをWSHで作成するには、実態を忠実に再現すればよいと思って、
やってみたところ見事成功しました。

以下は、スタートメニューに「マイネットワーク」を登録する例です。

sPath="D:\Documents And Settings\ユーザー名\スタート メニュー\マイネットワーク\"

Set WshShell = WScript.CreateObject("WScript.Shell")
Set Fs = WScript.CreateObject("Scripting.FileSystemObject")

Set oFolder=Fs.CreateFolder(sPath)
oFolder.Attributes=4
Set oFolder=Nothing

Set oLink=WshShell.CreateShortcut (sPath & "target.lnk")
oLink.TargetPath="::{208D2C60-3AEA-1069-A2D7-08002B30309D}"
oLink.Save
Set oLink=Nothing

Set oTs=Fs.CreateTextFile(sPath & "desktop.ini")
oTs.WriteLine "[.ShellClassInfo]"
oTs.WriteLine "CLSID2={0AFACED1-E828-11D1-9187-B532F1E9575D}"
oTs.WriteLine "Flags=2"
oTs.WriteLine "ConfirmFileOp=0"
oTs.Close

まあ、見てもらえればおわかりでしょうが「そのまま」です。

oLink.TargetPath="::{208D2C60-3AEA-1069-A2D7-08002B30309D}"というのは、
マイネットワークのクラスIDなので、ここにマイコンピュータのクラスID
::{20D04FE0-3AEA-1069-A2D8-08002B30309D}を指定してやることで、マイコンピュータの
「フォルダのショートカット」も作成可能です。
もちろん、ここに普通のフォルダのパスを指定することもできます。
(ちなみに、クラスID指定で特殊フォルダのショートカットを作ることができるという
のもちょっとしたTipsですね。これも今まで気づかなかったんですが。)

oLink.Saveの一つ前の行に、
oLink.Description="ネットワークにあるコンピュータを表示します。"
のようなコメントを入れてもちゃんと反映されます。

WshShellとFileSystemObjectだけでできるというのが面白いですね。




To: kobahide さん

> これですが。。放置するのですか? 

私としては、ご本人にメールを送り、注意する以上のことはできません。

>  少なくとも、web site のURL を公開し、そのサイトについての
> コメントがあなたのHPで見られることを期待します。

URLの公開はできません。
ここで公開してしまうと、不正にライセンスキーを入手するための手段を
このページを見ている方々に示してしまうことになりますので…。

また、この掲示板は基本的にWSHなどのスクリプトの情報交換や、Windows Scripting
Host Laboratoryに関することを話題にするために設置したものであるということを
ご了承ください。




To: shigehara さん

> エラー:ActiveXコンポーネントはオブジェクトを作成できません。:'Scripting.FileSystemObject'"
> というエラーダイアログが出てきます。なぜこのようになるのかわからず困っています。> ファイルオープンの仕方がおかしいのでしょうか?

【おじさま】さんがご指摘のとおりです。
# 【おじさま】さん、フォローありがとうございました。

付け加えておくと、警告を出さないようにする方法というのもないわけでは
ありません。
詳しくは掲示板ログ11の22番目の記事を見てください。注意点もあるので。

また、下のLib30さんのアイデアも今回の目的にはぴったりだと思います。



To: Lib30 さん

> セキュリティの制約なしでクライアントパソコン内のファイルの内容を取得する方法がわかったので載せておきます。

情報提供に感謝します。
これ、すごいですね。
Win2000+IE5.01の環境で正常に動作しました。

しかし、ローカルのファイル名がわかっている場合、その内容をスクリプトを使って
読み取ることが可能というのはセキュリティホールにはならないんでしょうか…。

ところで、このコードをVBSに直したいのですが、一つわからない点があります。
それは、fileContents.startDownload("textfile.txt", putFileContents);
というところで、startDownloadメソッドの第二引数に指定しているのが関数で
あるという点です。
これって、どういう意味なんでしょうか? putFileContentsの引数も指定していないし…。

もしかして、JavaScriptにはあるが、VBSにはない構文なんでしょうか。それなら
ちょっとお手上げですね(^^;

shigehara さん 2000年 07月 25日 18時 03分 47秒

おじさま さんへ

回答ありがとうございます。
この部分で実はかなり悩んでいました。一つ問題が解決し、ホッとしています。
解決方法もあると言う事なのでHTAについても参照してみたいと思います。
また何かありましたら、お願いします。

【おじさま】 さん (tomiyama@seagreen.ocn.ne.jp) 2000年 07月 25日 17時 09分 14秒
URL:http://homepage1.nifty.com/~tomiyama/

shigehara さん

これは IE のセキュリティの仕様です。shigehara さんの記載ミスではあり
ません。

今回はたまたまお手元にある自作の HTML ファイルなのですが、本来 HTML
ファイルというのは世界中のどこかにある誰が作ったとも分からない HTML
ファイルをオンラインでブラウザで開くわけですから、もしかしたら凄く危
険なスクリプトが記載されていることもあるわけです。

そこで HTML 内に FileSystemObject のようにやろうと思えば危険なことも
できてしまうオブジェクトがあるとこういったメッセージが出て「本当にや
っちゃって良いの?」と質問してきます。ここで「いいえ」だとオブジェク
トは使えませんからエラーになります。

解決方法ですが、もしも IE5 以降をお使いで、しかもあくまでもローカルで
お使いになるものならば、HTML ファイルの拡張子を .hta に変更してみてく
ださい。

HTA についての詳細はこのサイトにもむたぐちさんが詳しく記載されておら
れますのでそちらを参照してください。

Lib30 さん (lib30@yo-mail.co.jp) 2000年 07月 25日 17時 05分 35秒
URL:http://www.ob.aitai.ne.jp/~kazoo/

セキュリティの制約なしでクライアントパソコン内のファイルの内容を取得する方法がわかったので載せておきます。

<html>
<head>
<title>テキストファイルの内容を表示</title>
<style TYPE="text/css">
<!--
#fileContents { behavior:url(#default#download);}
-->
</style>
<script language="JavaScript">
<!--
function putFileContents (s) {
fileContents.innerHTML = s;
}
function getFileContents ( ) {
if(navigator.userAgent.indexOf("MSIE 5") >= 0){
fileContents.startDownload("textfile.txt", putFileContents);
}
}
//-->
</script>
</head>

<body onload="getFileContents();">
<p id="fileContents"></p>
</body>
</html>

結構いろいろなことに応用できそうです。ちなみにActiveXオブジェクトを作成しなくてもいいため速度が早いです

shigehara さん 2000年 07月 25日 16時 25分 42秒

半角カナを使用してしまい、文字化けしてしまいました。すみませんでした。
もう一度書き直します。

<SCRIPT LANGUAGE="VBScript">
Set obj = CreateObject("Scripting.FileSystemObject")
Set fp = obj.OpenTextFile("test.txt", 1, False, False)
        ・
        ・
        ・
</SCRIPT>
のようにファイルオープンを行い1行読み込むような処理を作成したいのですが、作成したHTMLファイルを表示すると、

"このページのソフトウェア(ActiveXコントロール)のいくつかは、安全でない可能性があります。実行しないことをお勧めします。実行を許可しますか?"

というダイアログが出てきます。ここで"はい"を選択すれば問題ないのですが、"いいえ"選択すると

"ランタイム エラーが発生しました。
デバックしますか?
行:XXX
エラー:ActiveXコンポーネントはオブジェクトを作成できません。:'Scripting.FileSystemObject'"
というエラーダイアログが出てきます。なぜこのようになるのかわからず困っています。ファイルオープンの仕方がおかしいのでしょうか?

shigehara さん 2000年 07月 25日 16時 10分 59秒

はじめまして。
1ヶ月位前からVBScriptを使用し、HTMLを作成しています。
ちょっとわからないことがあり質問させてください。

<SCRIPT LANGUAGE="VBScript">
Set obj = CreateObject("Scripting.FileSystemObject")
Set fp = obj.OpenTextFile("test.txt", 1, False, False)
            ・
            ・
            ・
</SCRIPT>
のように、歎縦箕荷を軌餅櫃キ1行読み込むような処理を作成したいのですが、
作成したHTML箕荷を表示すると、

"このページのソフトウェア(ActiveX 際壷為)のいくつかは、安全でない可能性があります。実行しないことをお勧めします。実行を許可しますか?"

というダイアログが出てきます。ここで"はい"を選択すれば問題ないのですが、"いいえ"を選択すると、
"忿晴ム 閑阿ニ_犬靴泙靴拭」
筑舗Wしますか?
行:XXX
閑ー:ActiveX際累鞍歡は橘渕洽個を作成できまん。
               :'Scripting.FileSystemObject'"
という閑粟涓越五がでてきます。なぜこのようになるのかわからず困っています。
箕荷軌餅櫃了妬C「泙困い里任靴腓Δ@ゥ


kobahide さん (kobahide@geocities.co.jp) 2000年 07月 25日 04時 27分 28秒

管理人むたぐち さん へ。
2000年 07月 22日 09時 56分 22秒 のご発言にある
>少し他のみなさんのご意見も拝聴したいところですね…。
># ライセンスキーを公開されている、情報源のWebサイトの作者さんにメールで
># お知らせしたところ、とくに問題はないという認識をされているようでした。
 これですが。。放置するのですか? 私にこれだけしつこく
質問をしておきながら、貴方は、目の前にある、あなたと同じ
間違いを犯している人間を放置するのですか?

 少なくとも、web site のURL を公開し、そのサイトについての
コメントがあなたのHPで見られることを期待します。

 

管理人むたぐち さん (mutaguchi@roy.hi-ho.ne.jp) 2000年 07月 25日 00時 25分 45秒
URL:http://www.roy.hi-ho.ne.jp/mutaguchi/

To: 【おじさま】 さん

> IE5.5 には搭載されているスクリプトなのでもうちょっと早く出るかなと
> 思っていましたが案外遅かったですね。。

前回のWindows Script 5.1の時も、日本語版はなかなかでなかったですしね。
それでも、だんだん間隔が短くはなってきているようですよ。

> ちなみに JScript と VBScriptのドキュメントも 5.5 用になっています

一応ダウンロードしておいた方がいいかもしれないですね。
WSH2.0のヘルプは前と変わってないのでしょうが。




To: kobahide さん

詳しいご解説ありがとうございました。
私にもようやく理解できました。

>  VB5CCE のインストールによって、確かにそれは成立するようですが、そうであっても、あなたがライセンスキーを公開することは、VB%CCE の使用許諾条件に違反しますよね。

はい、おっしゃるとおりだと思います。

> (正規購入)だけが開発ツール上でActiveX を利用できるという大きな利益を、
> 侵害されていたのですよね。もしも、コモンダイアログ以外のActiveXで
> このような事が繰り返されたら・・・

まずいですよね。
今後も、ライセンスの問題に関しては十分注意して取り扱っていきたいと思います。




To: ishimura さん

> また、無理と言われてしまいそうですが・・・

そんなに何回も言ってましたっけ(^^;
まあ私が無知だから無理だと思っているだけで、実際はできるということも
ありえますから、あまり過信しないでくださいね。

> 誰がアクティブディスクトップ画面のボタンを
> クリックしたのか識別する方法があれば
> どんなやり方でもかまいませんので、
> 教えてください。

要するに、アクティブデスクトップに表示したHTMLファイルのボタンがクリックされた
ことを検知する方法というわけですよね。

これについては私もちょっと調査中(なんとなく、アクティブデスクトップを使った
付箋紙マネージャHTA or WSHみたいなのを作ってみようかな、とちょっと思った)なんですが、
アクティブデスクトップのHTML領域にアクセスする方法というのがわからないんですよね。
# ShellUIHelperオブジェクトで、コンポーネントを任意の位置に貼り付けることは
# できても、それ以上のことはできないようです。

これがIEのウィンドウなら、Shell.Windowsからむりやりアクセスできるんですが、
アクティブデスクトップのオブジェクトをスクリプトから列挙する方法というのは、
まだわかっていません。
# あ、でもどっちにしろ、ボタンを押したというイベントをWSHが取得することは
# できない(connectobjectメソッドでできそうなものなんですが)ので駄目なことに変わりはないか…。

ただ、VC++を使うなら、スクリプトを使うことにこだわることもないわけですから、
IEが提供する何らかのAPIを使えば可能かもしれません。

IActiveDesktopインターフェースとか?

# ちなみに私はVC++の知識はないです…。MSDNライブラリなどから情報を入手してください。

# なんとなく、ご質問の意味を取り違えているような気もするんですが、何か
# 見当違いのこと言ってます? 私。

ishimura さん (ishimura@adgator.co.jp) 2000年 07月 24日 19時 49分 38秒

いつも質問ばかりで申し訳ございません。
また、無理と言われてしまいそうですが・・・

アクティブディスクトップ画面で表示させている
HTMLファイルのボタンをクリックしたら、
ファイルの内容を読み込みたいのですが
無理なのでしょうか?

何がしたいかと言うと
誰がアクティブディスクトップ画面のボタンを
クリックしたのか識別したいのです。
(サーバーのDBに保存したいのです)

レジストリにユーザーIDの情報を持っていますが、
レジストリの読み込みは、インターネットの
セキュリティ上難しそうです。

そこで、ファイルにIDを出力して読み込ませる
方法を考えたのですが、無理でしょうか?

ファイルにIDを出力させるのは、VCで作成した
プログラム(パソコンに常駐)で行います。

誰がアクティブディスクトップ画面のボタンを
クリックしたのか識別する方法があれば
どんなやり方でもかまいませんので、
教えてください。

kobahide さん (kobahide@geocities.co.jp) 2000年 07月 23日 01時 46分 45秒

管理人むたぐち さん wrote
>わかるのですが、フリーのActiveXコントロールのライセンスキー公開に関しては
>どういう点が問題になるかわからなかったための質問です。
and
>ちなみに私は該当OCXは配布していません。MSのサイトでは無償配布されています。

 仮に、「MS が該当OCX を単独でラインセスキーを添付して無償配布している」のであっても、あなたがそれを無断転載することは許可されていないと
思いますが?オンラインソフトウェアの世界の常識ですよね。

 そして、仮定の要件である「MS が該当OCX を単独でラインセスキーを添付して無償配布している」は現実ですか? 私はあり得ないと思いますが?
 VB5CCE のインストールによって、確かにそれは成立するようですが、そうであっても、あなたがライセンスキーを公開することは、VB%CCE の使用許諾条件に違反しますよね。

 ActiveX うんぬんの話は、私がはしょりすぎました。というか、好きこのんで
この掲示板をみているわけではないです。質問されているので、とりあえず応えようとうだけです。私自身は、全部理解しています。VB5製OLS など公開していますから。


># スクリプトを書くことは「開発」なのか?
># また、公開されたスクリプトを利用するときに「開発時」ライセンスが要るのは>何故か?
 VB の仕組みはこうです。コンパイル時に、実行時ライセンスをExe
の中に埋め込みます。それにとって、ActiveX はロード可能となります。
 WSH,では、この機能(IClassFactory2)を実装して
いないので、開発時ライセンスによってロード可能とする必要があるわけです。
 IE ブラウザでは、LPK ファイルから実行時ライセンスを取得できますので、
関連があると前回、発言しました。(はしょりすぎましたが)
 
 たった、これだけの理由(wsh で利用したい)で、あなたがライセンスキー
を公開したことににより、開発時ライセンスを取得しているユーザー
(正規購入)だけが開発ツール上でActiveX を利用できるという大きな利益を、
侵害されていたのですよね。もしも、コモンダイアログ以外のActiveXで
このような事が繰り返されたら・・・

>実行時ライセンスに関しては、ブラウザだけに適用されるもののようですね。
>WSHや、VBアプリを使用する際には実行時ライセンスは必要ありません(という
>か、勝手に与えられるというべきか)。
それは間違いです。実際には、前述のようになっています。

【おじさま】 さん (tomiyama@seagreen.ocn.ne.jp) 2000年 07月 22日 12時 26分 35秒
URL:http://homepage1.nifty.com/~tomiyama/

管理人むたぐちさん

>もうとっくにリリースされていると思っていたのですが、日本語版というのは
>やはり若干の遅れがでますね。

IE5.5 には搭載されているスクリプトなのでもうちょっと早く出るかなと
思っていましたが案外遅かったですね。ちなみに JScript と VBScript
のドキュメントも 5.5 用になっています。書庫ファイル名が以前と同じ
なので分かりにくいのですが、昨日の午前中はまだ 5.1 用のままでした
が夜には 5.5 用になっていました。このドキュメントの作成で公開まで
に遅れが出たのかもしれません。

管理人むたぐち さん (mutaguchi@roy.hi-ho.ne.jp) 2000年 07月 22日 11時 21分 59秒
URL:http://www.roy.hi-ho.ne.jp/mutaguchi/

To: 【おじさま】 さん

> Windows Script 5.5 の日本語版が出てますね。

もうとっくにリリースされていると思っていたのですが、日本語版というのは
やはり若干の遅れがでますね。

ちなみにURLは↓
http://www.asia.microsoft.com/Japan/Developer/Scripting/default.htm

変更点としては、主に正規表現周りの機能増強らしいです。
私はあまり(全然?)使わないので、あまり嬉しいバージョンアップではないです(^^;



To: Lib30 さん

> ReGetをアンインストールしてIE5.5をインストールしてみたところ(実は6回目のインストール)、
> 見事不具合が解消しました。情報提供ありがとうございます。

やはり。
私がIE5.5が不具合の塊だという錯覚を覚えてしまうのも、ReGetとの相性の悪さに
起因する不具合報告が多数なされているというのが原因のような気がしてきました。

ともかく、Windows、IE系のニュースグループではすっかりFAQになってしまっています。
# TTFキャッシュの破壊、OutlookExpressの本文中のリンクをクリックするとC:\が
# 開いてしまうという二大FAQに続く勢いです(笑)

管理人むたぐち さん (mutaguchi@roy.hi-ho.ne.jp) 2000年 07月 22日 09時 56分 22秒
URL:http://www.roy.hi-ho.ne.jp/mutaguchi/

To: kobahide さん

>  音楽CD に「MP3化してweb に公開してはいけない」なんて書いてないです
> よね。やってはいけないと書いていなければ、いいんじゃないの? って
> 思ってますか?

まあ、「個人的に楽しむ場合を除き、著作権法上、無断複製は禁止されて
います」とかかいてありますが…。
この場合は、著作権法という法律に違反しているのだということが明確に
わかるのですが、フリーのActiveXコントロールのライセンスキー公開に関しては
どういう点が問題になるかわからなかったための質問です。
# 問題となるとしたら、契約違反になるのでしょうが、どの契約に違反していたのか
# 知っておきたかったのです。

>  貴方には製品を個人として使用する権利が与えられています。それ以上の
> 権利は与えられていません。ライセンスキーと該当OCX を貴方が公開する
> 権利をMSKK が与えるはずがありません。

ええ、そのことがどこかに明文化されているのなら、ぜひ読んでみたいのですが…。
やはりMSに直接聞くべき問題なのかな?

ちなみに私は該当OCXは配布していません。MSのサイトでは無償配布されています。
また、そのOCXを使用するVBのアプリとともにであれば配布できることは、製品に付属の
redist.txtに記述してあります。(この部分を読んで不安に思われる方がいらっしゃるかも
しれないので念のための補足です)

>  つまり、常識で、やってはいけないことは分かるはずです。社会(法律)
> というものは良心と常識を元に成り立っています(僕は理解しています)

やってはいけないということが私にはわからなかったため、このような
事態をひきおこしてしまいました。

このキーの公開によって、だれ(私・MS・VBユーザー含めて)が損をするという
わけでもないし、むしろ情報として有益だと思っていたくらいです。

# MP3の場合は、アーティストや発売元などに損害を与えるという点で全然違うと思います。

少し他のみなさんのご意見も拝聴したいところですね…。
# ライセンスキーを公開されている、情報源のWebサイトの作者さんにメールで
# お知らせしたところ、とくに問題はないという認識をされているようでした。

> ActiveX のランセンスキーについて

簡潔にまとめていただき、ありがとうございました。

> これは、ActiveX に署名(ライセンス)することで、作成者が製品の安全性を主張する> ための機能です。

それは「デジタルサイン」のことでは?
実行時・開発時ライセンスとは別物のようです。

>  ActiveX には、実行時ランセンスと開発時ライセンスがあり、コモンダイアログ
> で問題になったのは、開発時ライセンスです。ActiveX に関するランセンスは、
> ブラウザにだけ適用される話です。微妙に違いますが、実現の方法などで、強く
> 関連しています。

開発時ライセンスは、ブラウザだけに適用されるというわけではないでしょう。
このライセンスキーがなければ、VBでの開発時にcomdlg32.ocxをフォームに貼り付ける際、
開発時ライセンスがないというエラーが出てしまい使用できません。
# 前回紹介したツールは、まさにそのためにあるわけですね。

スクリプト中で使用するのに、開発時ライセンスが必要だというのもおかしな話だと
思っていたりします。
# スクリプトを書くことは「開発」なのか?
# また、公開されたスクリプトを利用するときに「開発時」ライセンスが要るのは何故か?

実行時ライセンスに関しては、ブラウザだけに適用されるもののようですね。
WSHや、VBアプリを使用する際には実行時ライセンスは必要ありません(というか、
勝手に与えられるというべきか)。

kobahide さん (kobahide@geocities.co.jp) 2000年 07月 22日 05時 31分 39秒

ActiveX のランセンスキーについて

 これは、ActiveX に署名(ライセンス)することで、作成者が製品の安全性を主張するための機能です。同時に、実際に、ダウンロードされているActiveX がランセンスした作者本人が公開しているものであることを確認することもできます。

 ActiveX には、実行時ランセンスと開発時ライセンスがあり、コモンダイアログ
で問題になったのは、開発時ライセンスです。ActiveX に関するランセンスは、
ブラウザにだけ適用される話です。微妙に違いますが、実現の方法などで、強く
関連しています。

kobahide さん (kobahide@geocities.co.jp) 2000年 07月 22日 05時 14分 25秒

>このページをごらんのみなさんに、正式なライセンスを得る方法を示したつもです。
 この点は、評価したいですね。VB5CCE のインストールで解決するならば、その
情報は、すべての人にとって有益でしょう。

>そういえば、comdlg32.dllを呼び出すフリーのコンポーネントというのもあるようですね。
 あります。DLL は、OS に組み込まれていますから、VB のライセンスとは無関係です。よって、それをコールするAcitiveX を公開してもなにも問題ありません。


>後学のためにお聞きしたいのですが、今回のライセンスキー公開にかんして、
>具体的にVB6 Professional Editionの使用許諾契約書のどの条項に反している
>と思われますか?
 とほほ・・といいう感じですが・・・・この質問がなければ、あなたの事は
違う目でみることもできたのだろうと思いますが・・・
 音楽CD に「MP3化してweb に公開してはいけない」なんて書いてないです
よね。やってはいけないと書いていなければ、いいんじゃないの? って
思ってますか?
 貴方には製品を個人として使用する権利が与えられています。それ以上の
権利は与えられていません。ライセンスキーと該当OCX を貴方が公開する
権利をMSKK が与えるはずがありません。ま、見つかっても、訴訟なんて
ことにはならないと思いますが・・・社会的には、信用を失うかも
しれませんね。
 つまり、常識で、やってはいけないことは分かるはずです。社会(法律)
というものは良心と常識を元に成り立っています(僕は理解しています)

 


# たしかにはっきりとは理解していないかもしれない…。
# http://www.microsoft.com/JAPAN/developer/vbasic/Docs/Intcon/Intcon.htm
# というページも見つけたんですが、これは関係ある…?


Lib30 さん (lib30@yo-mail.co.jp) 2000年 07月 21日 23時 54分 22秒
URL:http://www.ob.aitai.ne.jp/~kazoo/

To【おじさま】

>nifty の情報ですが、ReGet というツールがあるとそういう不具合が
>出るそうです。
ReGetをアンインストールしてIE5.5をインストールしてみたところ(実は6回目のインストール)、
見事不具合が解消しました。情報提供ありがとうございます。

【おじさま】 さん (tomiyama@seagreen.ocn.ne.jp) 2000年 07月 21日 12時 54分 34秒
URL:http://homepage1.nifty.com/~tomiyama/

Windows Script 5.5 の日本語版が出てますね。

管理人むたぐち さん (mutaguchi@roy.hi-ho.ne.jp) 2000年 07月 21日 03時 09分 37秒
URL:http://www.roy.hi-ho.ne.jp/mutaguchi/

To: AKiOS さん

> セルのwidthとheightが1ピクセルのテーブルを作ります。
> 百聞は一見に如かずということで、動くサンプルを紹介します。

ありがとうございます。
やはり、実物を見るのが一番手っ取り早いですね(^^;

> # 若干、反応が鈍いですが、なかなかの出来ですよ。(^^;

たしかにちょっと鈍いですが、IEのレンダリング能力の限界なんでしょう。

> # 問題は中間色を使いたいときどうするか、ですね。

この世に漢字はごまんとありますから(Unicodeでは5万もない?)、漢字と
対応させてやればHighColorまでは表示可能なんではないかと…(本当か?)

で、こうやって表示されたアイコンの著作権は誰にあるんでしょう(^^;



To: Lib30 さん & 西 さん

> >新しい質問なのですが、HTAなどで画像を表示した上で,それをクリックすると
> >WSHが動作するような方法はありませんか?

> といった感じでどうでしょう。

フォローありがとうございます。
このあたりはDHTMLの基本になるので、MSDNライブラリ等で調べてみると
いいのではないでしょうか。 > 西さん



To: 【おじさま】 さん & Lib30さん

> >ところでつい最近IE5.5をインストールしてみたのですが、なぜかページを
> >表示することができません。
>
> nifty の情報ですが、ReGet というツールがあるとそういう不具合が
> 出るそうです。

この情報については、ネットニュースでも見かけました。というか、頻繁に
報告されています。

> とは言っても私は
> この ReGet というのがどういうツールなのか知らないのですが、も
> しお使いでしたら試してみてください。

いわゆるダウンロード支援ユーティリティですね。
それにしてもReGetユーザーの多さは目を見張るものがありますね。

管理人むたぐち さん (mutaguchi@roy.hi-ho.ne.jp) 2000年 07月 21日 01時 33分 29秒
URL:http://www.roy.hi-ho.ne.jp/mutaguchi/

To: kobahide さん

>  こちらのHPの管理人さんは、かなり細かい情報をお持ちのようで、
> その点に関しては関心してしまいますが・・・ラインセンスキーを公開
> してしまうという姿勢は、とてもほめられたものではありません。

ええ、それはよく承知しています。

>  無償のソフトからもこのライセンスキーが取得できるとか、自分は
> 銅製品の正規購入者であるとか、弁解がましいことを述べられているようですが、

このページをごらんのみなさんに、正式なライセンスを得る方法を示したつもりです。
そういえば、comdlg32.dllを呼び出すフリーのコンポーネントというのもあるようですね。

正式購入者であることを示したのは、VB6CLI.EXEおよびVB5cli.exeの使用権を
持っているということが言いたかっただけです。
# まあ、持っていない場合はインストールチェックではねられるだけなんでしょうが。

>  使用許諾条件うんぬんをはっきりと理解せずに、同じような間違いを起こす、
> 半分アングラに足をつっこんでしまうHP作者の登場を抑制するために、今回
> の私の指摘は必要なものだったと思っています。

ライセンスの問題に関してはよくわかっていなかったので(掲示板ログ参照)、
今回のkobahideさんのご指摘によってようやく違反行為であることがわかりました。

後学のためにお聞きしたいのですが、今回のライセンスキー公開にかんして、具体的に
VB6 Professional Editionの使用許諾契約書のどの条項に反していると思われますか?
# たしかにはっきりとは理解していないかもしれない…。
# http://www.microsoft.com/JAPAN/developer/vbasic/Docs/Intcon/Intcon.htm
# というページも見つけたんですが、これは関係ある…?

kobahide さん (kobahide@geocities.co.jp) 2000年 07月 21日 00時 04分 35秒

ライセンス・キーについて

 こちらのHPの管理人さんは、かなり細かい情報をお持ちのようで、
その点に関しては関心してしまいますが・・・ラインセンスキーを公開
してしまうという姿勢は、とてもほめられたものではありません。
 やっていることは、音楽コンテンツの無断使用と同じようなものです。

 無償のソフトからもこのライセンスキーが取得できるとか、自分は
銅製品の正規購入者であるとか、弁解がましいことを述べられているようですが、
 使用許諾条件うんぬんをはっきりと理解せずに、同じような間違いを起こす、
半分アングラに足をつっこんでしまうHP作者の登場を抑制するために、今回
の私の指摘は必要なものだったと思っています。
 
 これだけの技術をもっている人でも、社会性に欠けてしまって、
残念なことだと思います。ま、あなたが社会人かどうか、私は
しりませんが(^^;)

 

【おじさま】 さん (tomiyama@seagreen.ocn.ne.jp) 2000年 07月 20日 23時 15分 09秒
URL:http://homepage1.nifty.com/~tomiyama/

Lib30 さん

全くハズレかもしれませんが

>ところでつい最近IE5.5をインストールしてみたのですが、なぜかページを
>表示することができません。

nifty の情報ですが、ReGet というツールがあるとそういう不具合が
出るそうです。ReGet をアンインストールするか、ReGet の設定で、
ブラウザとの連携を off にすると直るそうです。とは言っても私は
この ReGet というのがどういうツールなのか知らないのですが、も
しお使いでしたら試してみてください。

西 さん 2000年 07月 20日 23時 00分 52秒

Lib30さんへ
私も同じことになりWindowsを再インストールしました。
WIN95でしたがホームページを開くとエラーが発生し,使い物にはなりませんでした。IE5,01sp1でとどめておくことをお勧めします。
ウィン2000だとアプリケーションの追加と削除が使えなくなりました。
MSHTA,EXEがエラーを出します。つまり,アンインストールできません。
それとご回答ありがとうございました。

Lib30 さん (lib30@yo-mail.co.jp) 2000年 07月 20日 21時 36分 34秒
URL:http://www.ob.aitai.ne.jp/~kazoo/

かなり文字化けしてしまいましたが、
▲據璽犬鬟瀬Ε鵐蹇璽匹靴討い泙坑
ではなく
ページをダウンロードしています
です。

ちなみに下の記事はミスです。

Lib30 さん (l) 2000年 07月 20日 21時 34分 55秒

▲據璽犬鬟瀬Ε鵐蹇璽匹靴討い泙坑

Lib30 さん (lib30@yo-mail.co.jp) 2000年 07月 20日 21時 33分 33秒
URL:http://www.ob.aitai.ne.jp/~kazoo/

To 西さん

>新しい質問なのですが、HTAなどで画像を表示した上で,それをクリックすると
>WSHが動作するような方法はありませんか?

<SCRIPT type="text/vbscript" LANGUAGE="VBScript">
Sub Img01_OnClick
MsgBox "クリックされました"
End Sub
</SCRIPT>
<IMG SRC="image.gif" id="Img01">

といった感じでどうでしょう。

ところでつい最近IE5.5をインストールしてみたのですが、なぜかページを表示することができません。
自分のページを開くと強制終了するし、ほかのページを開こうとしても▲據璽犬鬟瀬Ε鵐蹇璽匹靴討い泙坑
とステータスバーに表示されたっきりで一向に表示されません。ローカルのページでさえ
そうやって表示されるため、ネットの回線速度は関係なさそうですが、皆さんの中でIE5.5を入れたとき、そんなことが起きませんでしたか?
ちなみに何か変わったことをしたかと言えばネットから直接インストールせずに一度ハードディスクの中に
セットアップファイルをダウンロードした後インストールしたことぐらいです。
ちなみにWin98で、もとのIEは5.0でした。

【おじさま】 さん (tomiyama@seagreen.ocn.ne.jp) 2000年 07月 20日 19時 24分 04秒
URL:http://homepage1.nifty.com/~tomiyama/

comdlg32.ocx の件は、私の質問が元だったと思います。
結果的に皆様にご迷惑をお掛けして申し訳ありませんで
した。

西 さん 2000年 07月 20日 13時 30分 12秒

ご回答ありがとうございます。回答が過去の記事になっていたのでちょっとびっくりしました。

新しい質問なのですが、HTAなどで画像を表示した上で,それをクリックすると
WSHが動作するような方法はありませんか?

管理人むたぐち さん (mutaguchi@roy.hi-ho.ne.jp) 2000年 07月 20日 07時 00分 03秒
URL:http://www.roy.hi-ho.ne.jp/mutaguchi/

comdlg32.ocxのライセンスの件ですが、このコントロールとライセンスは、事実上
無償で配布されているようです。

Visual Basic 5.0 Control Creation Edition(VB5CCE)がMicrosoftのWebサイトで
無償配布されていますが、この中に、comdlg32.ocxおよびそのライセンスが
含まれているためです。

よって、ライセンスに抵触せずこのコントロールを使用するには、VB5CCEを
インストールすれば良いようです。

ダウンロードサイトはこちら:
http://www.microsoft.com/japan/developer/vbasic/controls/controls.htm

VB5CCEにcomdlg32.ocxおよびそのライセンスが含まれていることは、次の
ドキュメントに記載されています。
http://support.microsoft.com/support/kb/articles/Q181/8/54.asp

また、
http://download.microsoft.com/download/vb60ent/Sample30/1/W9XNT4/EN-US/VB6CLI.EXE
および
http://download.microsoft.com/download/vb50pro/UtilA1/1/WIN98/EN-US/VB5cli.exe
からダウンロードできるツールを使用して、comdlg32.ocxのライセンスキーが
書き込めることを確認しました。ただし、このツールはVB5(CCE含む)もしくはVB6が
インストールされている環境でのみ動作するようです。

(なお、私はVB6 Professional Edition(非アップグレード)およびVB5 Learning Edition
のライセンスを所有しています。)

もちろん、「ライセンスが事実上無償で入手できる」から「ライセンスキーを公開
しても良い」ことにはならないので、今後もライセンスキーは掲載しません。

Return