ゆき さん 2002年 06月 06日 13時 23分 25秒

皆様始めまして。ゆきです。

現在業務で初めてwshを使用して開発しているのですが、
wshに詳しい先輩等がいなくて、こちらに書き込みさせていただきました。
よろしくお願いします。

さて、質問なのですが、サーバー経由でほかのPCのexeをwshを使用して
起動させたいのですが、「エラー'80070002'指定されたファイルが見つかり
ません」というエラーが出てしまいます。


プログラムとしては、
iniファイルで設定したパス「PATH=\\yuki\aaaa\bin\」を
asp上で取得し,変数strPathに代入します。
それを

wshshell.run ""&strPath&"bbbbb.exe"と
指定して動かそうとしているのですが,
上記のようなエラーが出てしまいます。

IISの設定等色々やって、サーバーマシンでaspを動かして
みると、exeは読むのですが、パスかdllのエラーが
出てしまいます。(時にはネットワーク名が見つかりません。という
エラーも出てしまいます)

クライアント側から動かすと、上記のようなエラー「指定された
ファイルがみつかりません」と出てしまいます。

どなたか、わかる方がいらっしゃたら、ぜひお力を貸していただきたいと
思っております。
よろしくお願いします。


ゆき

Show さん (sohno@d2.dion.ne.jp) 2002年 06月 06日 09時 09分 18秒

To: Kanさん

> .... オラクルなどのデータベースに
> 接続して、データを取得するスクリプトをVBSで組めるでしょうか?

オラクル・データベース(以後Oracle)に接続してデータを取得し表示する
サンプル・スクリプトを作成してみました。

VBScriptで ODBC経由でOracleテーブルを読み出しCSV形式で標準出力に表示します。
(標準出力なのでリダイレクトすればテキストファイルとして保存できます)

稼動環境は Windows NT Workstation 4.0 SP6、Oracle R8.1.5 です。
他の稼動環境での動作確認は行っていません。

なお本スクリプトは少量データ件数を前提に作成しています(レコードセット機能を使用)
数万〜数百万行のデータを取り扱う構造になっていません。

' OraT2CSV.vbs Oracle Table To CSV 処理
' [処理内容]
' 引数に指定したパラメータを使用して
' Oracle テーブルの項目名とデータ内容をCSV形式で表示。
' 本VBScriptは Oracle ODBCドライバ利用を前提に作成。
'
' [コマンドプロンプトで実行方法]
' cscript OraT2CSV.vbs //Nologo serviceid userid password tablename [> output.csv]
' sid: Oracle サービスID(Network Configurationで設定、ORCL等)
' userid: Oracle ユーザID
' password: Oracle ユーザIDに対応するパスワード
' tablename: Oracle ユーザIDが利用できるテーブル名
' output.csv: CSV出力ファイル名を指定(未指定の場合は標準出力)
' 実行例.
' > cscript OraT2CSV.vbs //Nologo ORCL scott tiger EMP
'
' Start VBScript

Dim objArgs, objConn, objRS
Dim sid, userid, password, tablename, DriverName, strOpen, strExec

DriverName = "Oracle ODBC Driver" ' Oracle ODBC Driver名

Set objArgs = Wscript.Arguments ' コマンド引数の取得
if ( objArgs.Count <> 4 ) then ' コマンド引数が正しく設定されていない場合は強制終了
Wsh.Stdout.Write "Usage: cscript OraT2CSV.vbs //Nologo serviceid userid password tablename" & vbCrLf
Wscript.Quit 1 ' 強制終了
end if

sid = objArgs.item(0) ' Oracle サービスID
userid = objArgs.item(1) ' Oracle ユーザID
password = objArgs.item(2) ' Oracle パスワード
tablename = objArgs.item(3) ' Oracle テーブル名
' DB Connection Open パラメータ編集
strOpen = "DRIVER={" & DriverName & "};" & _
"Password=" & password & ";" & _
"UID=" & userid & ";" & _
"DBQ=" & sid & ";" & _
"ASY=OFF"
' ' テーブル内容検索文編集
strExec = "SELECT * from " & tablename

set objConn = WScript.CreateObject("ADODB.Connection") ' Create ADODB.Connection Object
objConn.ConnectionTimeout = 15 ' Connection Time Out Set 15 sec
objConn.CommandTimeout = 60 ' Command Time Out Set 60 sec

objConn.Open ( strOpen ) ' Connection Open
set objRS = objConn.Execute( strExec ) ' SQL Command Execute → レコードセット

For i=0 to objRS.Fields.Count -1
Wsh.Stdout.Write """" & objRS.Fields(i).name & """" ' 項目名表示(1行目)
if ( i = objRS.Fields.Count -1 ) Then
Wsh.Stdout.Write vbCrLf ' 行末の改行
else
Wsh.Stdout.Write "," ' 項目間の区切り文字(CSV)
end if
Next
' Wsh.Stdout.Write vbCrLf ' デバック用 項目部とデータ部間を1行空ける

' データ内容表示(2行目〜)
Do While Not objRS.EOF
For i=0 to objRS.Fields.Count -1
' Wsh.Stdout.Write objRS.Fields(i).name & ":" ' デバック用 項目名表示
if ( IsNull(objRS(objRS.Fields(i).name)) ) Then
Wsh.Stdout.Write "Null" ' Nullの場合の指定
else
Wsh.Stdout.Write """" & objRS(objRS.Fields(i).name) & """" ' 項目毎データ表示
end if
if ( i = objRS.Fields.Count -1 ) Then
Wsh.Stdout.Write vbCrLf ' 行末の改行
else
Wsh.Stdout.Write "," ' 項目間の区切り文字(CSV)
end if
Next
objRS.MoveNext
Loop

Set objArgs = Nothing ' オブジェクトの解放
Set objConn = Nothing ' オブジェクトの解放
Set objRS = Nothing ' オブジェクトの解放
Wscript.Quit 0 ' 正常終了

' End VBScript

Volk さん (chickenhearts@livedoor.com) 2002年 06月 06日 08時 16分 21秒

いつも楽しく拝見させて頂いております。
ちょっとこの場の話題にそぐわないかもしれませんが、タイトルの
「odbc-odbc bridgeのライセンス」追加方法についてお知恵を拝借
できればと存じます。
現在同製品のライセンスを「25個」所有しており、システム拡張に伴い
追加でライセンスを購入致しました。

しかし、このライセンスの追加方法がわかりません。
「Easysoft社」のhp:http://www.easysoft.comでは
ライセンスマネージャを使用した新規分の登録方法の記載はあるものの、
追加処理を同様の手順で実施したところ、「Authirozation code」を入力し
「on line request」のボタンを押下した時点で、
「Retype Code」のメッセージが表示され、登録処理が完了致しません。

可能性として、ライセンス取得通信に使用される「ポート:8884」が閉じている
件も考えられ、現在確認中ではありますが、同社HPによれば、通信系のエラー時
には相応の内容が表示されるとの事です。

突然の書きこみで大変恐縮なのですが、本製品に関し知識がおありの方、
また関連HP等をご存知の方がいらっしゃいましたら、お知らせ頂ければと
存じます。

ひろすけ さん 2002年 06月 05日 23時 45分 53秒

to たるさん、あいざわさん

アドバイスありがとうございます。
今まで知らなかったことが、いろいろ学べて感謝しています。

以前に投稿したTomcatの件で、ホンロウしてしまい。
確認作業ができない状態です。

近日中に結果はご連絡いたします。

まずは、御礼まで

ひろすけ

TTTさん さん 2002年 06月 05日 20時 57分 11秒

こんにちわ。
ちょっと教えていただけたらと思うのですが、SetDefaultPrinterメソッドに
ついてです。

WshNetwork.SetDefaultPrinter(PrinterPath)

上記のPrinterPathの値として、コンピュータ名が長すぎるとエラーになると
かいうバグはあるんでしょうか?
うまくいくプリンターとうまくいかないプリンターがあって、困っています。
よろしくお願いします。


眠れるパソコン さん 2002年 06月 05日 20時 12分 28秒
URL:http://www.book-2u.com

パソコンが出来ない人の本

この度パソコンが出来ない人のために、少しでもお役に立てばの思いから

「体で覚えた 写経T エクセル奮戦記 文字入力編」を書きました。

乃村工藝社からネット販売していますぬ笋す腓錣擦呂http://www.book-2u.com

TEL 03-5476-7020 CD-ROM 1枚 本1冊でも送っていただけます。

いま、現業で働く人々に理解力の問題では済まされないと感じ、少しでも楽に覚えられればと、

初歩的な操作の仕方をぞ匆陲垢譴亳紊漏道唆箸凌佑燭舛スΠ茲砲△辰織愁侫箸諒拔Cサ侏茲襪里任マ

と、また、扱える人が増えれば、機器やソフトの発展につながり、また各産業に働く現業の

人たちにも長年培った技術や応用力でた靴燭幣ι覆セ源困気譴襪海箸魑Г蠅弔帖△弔燭覆さn燭

公開するものです。



neo さん 2002年 06月 05日 11時 58分 31秒

初めまして。
早速ですが、質問があります。こちらのHPでWshを勉強しているのですが、Lesson10のサンプルを作成したところ、「オブジェクトでサポートされていないプロパティまたはメソッドです。:'WSHShell.CreateShortcut'」というエラーメッセージが表示されて先に進めません。
ちなみにOSはWindows2000です。どなたかお力を貸してください。よろしくお願いいたします。

たる さん 2002年 06月 04日 21時 43分 35秒

To: 管理人むたぐち さん

> DirectAnimation.DirectAnimationIntegratedMediaControlってProgIDがそもそも私の
> 環境にはないみたいです。
> これ、何のコンポーネントですか?

プログラムにあったclassid:B6FFC24C-7E13-11D0-9B47-00C04FC2F51D を検索して出たので
詳しくは良く分かりません。
DirectXコンポーネントの統合インターフェイスでしょうか。


To: ひろすけ さん

ASP中でWSHスクリプト実行はやっている途中で、たいしたことは言えないのですが、
>>>スクリプトを実行するユーザの権限はいかがですか?
これなんですが、
IWAM_<machinename>がASP中でスクリプトを実行するユーザになります。
それとスクリプトによって書き込みするようならば、
書き込みするフォルダのACLも確認してみてください。
caclsと打てばヘルプが出ると思います。

うまくいくと良いですね。

あいざわ さん 2002年 06月 04日 20時 26分 33秒

to:ひろすけさん

>リクエストされたページはMicrosoft Japanサイト内に
>存在しませんでした。
それは失礼しました。たぶんURLにスペースが入っていたためだと思います。
800a0046 でマイクロソフトのサイトを検索した結果です。

>ユーザーがターゲットマシンのローカル管理者グ
>ループに登録されているか、です。
プログラム→管理ツール→コンピューターの管理とたどって
左ペインの中の「ローカルユーザーとグループ」を開きます。
そこでローカルユーザーのadministratorグループにASPを
実行するユーザーが含まれているかを確かめてください。
#この設定が薦められるものかどうかは別ですが。
いづれにしても単純な設定の問題だと思います。

早く解決するといいですね。

ひろすけ さん 2002年 06月 04日 19時 17分 07秒

to あいざわさん

アドバイスいつも感謝しております。

>ずいぶん早い時間に仕事されているんですね。

最近IISがらみで設定がうまくいかず不眠なのです。
この件の他にIIS + Tomcatの連動やらで困っています。。
(このPCとは無関係なのですが。。)

>>スクリプトを実行するユーザの権限はいかがですか?
>>の権限とはどこのことをおっしゃっているのでしょうか?
>先にあげたURLをまだご覧になっていなければ一度
>目を通していただきたいのですが、ASPを実行する
>ユーザーがターゲットマシンのローカル管理者グ
>ループに登録されているか、です

以前にご紹介していただいたURLをたどったのですが

>リクエストされたページはMicrosoft Japanサイト内に
>存在しませんでした。

と表示されてしまい。

(できればどんなキーワードで検索してヒットしたのか
教えていただけないでしょうか?)

▲妊好D肇奪廚箸梁佻辰鬟機璽咼垢傍ー庁 をキーワード
にいろいろ探しましたが、どれもかなり難しい設定がひつようなようで。。
(今まで、私は随分安直に考えていたんだな〜と実感しました)

しかし、以前は携帯電話のWEBからそのPCのWEBにアクセスし
外からPC内のWSHなどを実行しておりました。またMSのKBにあるような
設定をしておりませんでしたので、

セイゼイ、アクセス権といえは、
(※ Cドライブ以下ではEveryOneでフルコントロールの権限は与えてあります)
ntfsにファイルを変更したとき
IUSR_マシン名というユーザー(インターネットユーザー)ができ
これをWEBの公開用のフォルダー以下(wshファイルも存在します)
のセキュリティーに追加してある程度です。

>ASPを実行する
>ユーザーがターゲットマシンのローカル管理者グ
>ループに登録されているか、です

とはIUSR_マシン名の設定のことなのでしょうか?
ご紹介していただいたURLを拝見できていないので、想像のみで
発言してしまってます。

また、通常server版たどフォルダーセキュリティーの他に
IISサービス側でセキュリティーを別に設け、IISのプロパティの
オペレーターを指定するケースがありますが、
今回のPCはW2Kproですので、オペレーターを指定するタグは
あらかじめ設定されていません。

MSにも確認してみます。もし、判明したらご報告いたします。
せひ、何かわかりましたら、ご連絡お願いします。

ひろすけ

いっちゃん さん (ichisaka@netw.co.jp) 2002年 06月 04日 17時 19分 59秒

初めまして。WMIを最近やりはじめたものです。

レジストリの操作をやりたくて、この板の過去ログで
「WMIでレジストリを操作する話」
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!root/default:StdRegProv")
を参考にさせていただいたのですが、他のコンピュータのレジストリ
を操作する方法が分からないのです。
名前空間の後ろにコンピュータ名をくっつけたりしたのですが、
unknownなエラーが返ってきます(vb6で実行)
どなたか、ご存じの方、お願いします。
#あと、WMIの名前空間の概念、方面の日本語のドキュメントが
#ありましたら、ポインタを教えていただけると幸いです。


あいざわ さん 2002年 06月 04日 13時 51分 54秒

to:ひろすけさん

ずいぶん早い時間に仕事されているんですね。
>スクリプトを実行するユーザの権限はいかがですか?
の権限とはどこのことをおっしゃっているのでしょうか?
先にあげたURLをまだご覧になっていなければ一度
目を通していただきたいのですが、ASPを実行する
ユーザーがターゲットマシンのローカル管理者グ
ループに登録されているか、です。

ひろすけさん さん 2002年 06月 04日 07時 51分 14秒

to:あいざわ さん

アドバイスありがとうございます。
以前サーバーがクラッシュしたんですが、
原因はユーティリティソフトでハードディスクを最適化中に起き
今でも原因は不明でです。(そのソフト会社にも尋ねましたが。。。)
その際、すべてをフォーマットし、インストール自体もやり直しました。

>スクリプトを実行するユーザの権限はいかがですか?
の権限とはどこのことをおっしゃっているのでしょうか?
(私は少し知識に乏しいところがあります。。。)

単独でこのwsfファイルを実行しても特に問題なく起動します。
vbsファイルも同様です。

しかし、asp → vbsを実行させると
HTTP 500 - 内部サーバー エラー
Internet Explorer

となり、wsfファイルとは結果が異なりました。
やはり あいざわさんのおっしゃる
スクリプトを実行するユーザの権限が関係しているのでしうか?

その▲好D螢廛箸鮗孫圓垢襯罅璽兇慮カ贈はどこで設定するのでしょうか?

ひろすけ

あいざわ さん 2002年 06月 03日 19時 17分 48秒

to:ひろすけさん
>アドバイスありがとうございます。
>その後、常駐ソフトをアンインストールし
>Cドライブの共有をadministratorsおよびeveryoneをフルアクセスにして
>セキュリティーもadministratorsおよびeveryoneをフルアクセスにして
>実行してみましたが、結果は同じでした。
そうですか。ただ"サーバーがクラッシュして再設定"してとのことですから
何らかの権限が失われているというのが一番あやしいと思うのですが。
ファイルの権限ではなくスクリプトを実行するユーザの権限はいかがですか?
それとエラーが出るのはこのwsfファイルの起動をかける部分のみなんでしょうか?
このwsfファイルをターゲットマシンで単独で実行したらどうなりますか?
このへんをもう一度確認されたらいかがでしょう。

ひろすけ さん 2002年 06月 03日 15時 21分 31秒

to あいざわさん

アドバイスありがとうございます。
その後、常駐ソフトをアンインストールし
Cドライブの共有をadministratorsおよびeveryoneをフルアクセスにして
セキュリティーもadministratorsおよびeveryoneをフルアクセスにして
実行してみましたが、結果は同じでした。

以前動いていたときも常駐ソフトは稼動していましたので
問題ないと思いますが、いったい突然どうしてしまったのでしょうか???

ひろすけ

HP010 さん 2002年 06月 02日 23時 08分 54秒

To:管むたぐちさん

過去逝き掘り起こしてのレス、ごくろうさまっす。
了解しました。
以来ちょこちょこと拝見させてもらい勉強しておりま

ゴメン、今くしゃみでた。
うぁ、モニタに鼻クソついた。

金曜日、(株)アンクのVBScriptポケットリファレンスを買いました。
そしてBASP21をインスコしてみました。メールを送っても何も返事が
帰ってこない仲間がおるので、『メール開封しました』ってなる
スクリプト挑戦してみます。

よろしくです。

あいざわ さん 2002年 06月 02日 10時 44分 03秒

to:ひろすけさん

>また、Cドライブのプロパティのセキュリティタブで
>「Everyone」の許可をフルコントロールに設定しました。
>実際のWEBのフォルダー(Cの下にあります)の
>インターネットゲストアカウントの権限もフルコントロールに設定しました。
>(確か以前はこれでOKだったと思います)
質問と直接関係ないんですけどこの設定はどうかと思うんですが...

で、800a0046はアクセス権限のエラーなのはご存知ですよね。
多分ここにある通り↓
www.microsoft.com/japan/support/ kb/articles/JP285/2/86.asp
「Everyone」ではなく「Administrator」の権限の話だと。
あるいは自分の経験ではウイルスソフトの常駐により同じエラーが
出たこともありました。


ひろすけ さん 2002年 06月 01日 21時 44分 04秒

こんばんは、ひろすけです。

aspからwshを実行させたいのですが(以前は実行できてました。
サーバーがクラッシュして再設定しています。)

現在の環境 W2k pro + IIS5.0 + WSH

IIS admin(サービス)の
ログオンタブ内のローカルシステムアカウントをチェックし
「デスクトップとの対話を許可する」をチェックしています。

また、Cドライブのプロパティのセキュリティタブで
「Everyone」の許可をフルコントロールに設定しました。
実際のWEBのフォルダー(Cの下にあります)の
インターネットゲストアカウントの権限もフルコントロールに設定しました。

(確か以前はこれでOKだったと思います)

何か設定忘れがあるのでしょうか?

<!-- 実行時エラー内容 -->

Microsoft VBScript 実行時エラー エラー '800a0046'

書き込みできません。

/ejob/mas/MasTransDone.asp, 行 50

<!-- エラーの場所のソース抜粋 MasTransDone.asp -->

Set vbsSHELL=Server.CreateObject("WScript.Shell")
  vbsSHELL.Run "C:\ejob\Matching\ejob.wsf",0,true //行50

  Response.Write "処理が無事終了しました。<br>"
Set vbsSHELL=Nothing

ぜひ、アドバイスお願いいたします。



土屋 さん 2002年 06月 01日 20時 47分 44秒

お久しぶりです。

昨日からちょっとWSCに凝ってます。
いいですねぇ。これ。(今ごろ気づいている。。。)

で、これで何をしているかというと、
VxEditorというテキストエディタがありまして、
http://homepage3.nifty.com/x-labo
これにDMonkeyという、JavaScript互換のマクロが搭載されています。

これがなんと、マクロから直接ActiveXオートメーションが呼び出せまして、
WScript.ShellやFileSystemObjectがそのまま使えてしまいます。
(その他のCOMももちろんですが、、、)
で、WScript.exeが持ついろいろな機能(関数など)も、
マクロから使おうかと考えまして、
WSCに到達したわけです。

外部ファイル実行でWSHを起動することももちろんできますが、
マクロ内でWSHの全機能(?)を使えるというのは格別な感じがします。

その他、このマクロは、
クリップボードの操作
コモンダイアログボックスの呼び出し
HTTPプロトコルでGETやPOSTの実行
DynaCallによるDLLの直接呼出し
SMTPやPOP3のサポート
などかなり多岐の機能を持つので、
WSH使いにとっては、ちょっとおいしいエディタなのではと思います。

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

今月号のMSDNマガジンに、WSHの特集が組まれています。
内容的には、WSH5.6の新機能と、.NET時代におけるWSHに関する考察です。
要注目ですぞ。

HDD(SeagateのBarracuda ATA4 60GBですよん)を買ったら、MSDNマガジンを
買う金がなくなってしまった(^^;

それと、VAIO U いいね。これなら電車の中で立って使える。
買っちゃうぞ。

今日は、新HDDにシステムを入れ替えつつ、チャットしようかなあと思ってますが。
参加希望の方、いらっしゃいます?



To: 名無し さん

> > Right(String(fig,"0") & CStr(num),fig)
> > (fig=桁数、num=整形したい数字)
>
> 十分な"000...0"を用意しておくだけでいいんですね φ(..)厶厶

私もこの方法を聞いたときは、あっ、と思いましたよ。

以前は回りくどい方法を考えてました(^^;
61-05 管理人むたぐち 2002/04/18 00:21 とか。

名無し さん 2002年 06月 01日 13時 23分 58秒

> Right(String(fig,"0") & CStr(num),fig)
> (fig=桁数、num=整形したい数字)

十分な"000...0"を用意しておくだけでいいんですね φ(..)厶厶

> レジストリ書き込みの件

中途半端はだめですね。ちょっと反省。

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

To: 名無し さん

> To: HP010さん
>
> CLng(0)とすれば4バイト分書き込まれましたよ
> むたぐちさんの2000/06/29 00:34:46の書き込みが参考になります
> 因みに 28 00 00 00 = &H00000028 = CLng(40)
> A0 86 01 00 = &H000186A0 = CLng(100000)

これ以上の長さのバイナリ値を書き込むには、
・WMIを使う
・TextStreamでregファイルを作成し、それをWshShell.Run "regedit /s hoge.reg"のように
サイレントモードで結合させる

という方法を紹介したことがあると思いますので、ログを参照してください。



To: ひょん さん

> >選択範囲のファイル化ですか。さりげなくcomdlg32.ocxを使ってますが、
> >これって、VBがインストールされていない環境でも動きますかねえ?
>
> IE5.0を入れると強制的に入りますです。

comdlg32.ocxは、IEなどにも付属していると思いますが、
WSHから利用するためには、VBをインストールしてライセンス情報が
書き込まれていることが必要になります。



To: たる さん

> >>“bot ばかりで人いませんね〜”ってよく怒られて
> >>ます(笑>皆様
> >あい、そういうことなので、みなさん、どうぞです。
> >私も都合がつけば、参加させていただきます。
> どんな論議があるのか興味があります。
> タイミングが合えば参加したいですね。

技術話のチャットは、なかなか難しいようです…。
結局、雑談に花が咲くのがオチというわけでして(^^;

そうそう、明日かあさってあたり、チャットしませんか? > ALL


さて、これで未解決問題はだいたい消化できましたかね?
それでは、今後ともWSH Lab.掲示板をよろしくです。

さざなみ さん 2002年 05月 31日 15時 25分 46秒

さざなみです。

>hir さん
>JScriptによる簡単なsprintfの実装がありました。
JScriptは一年前に仕事で使ったきり
やってないもので。。。。

>むたぐちさん、名無しさん
>0をつけるだけなら、
>Right(String(fig,"0") & CStr(num),fig)
>(fig=桁数、num=整形したい数字)
>とかするだけでもいいですね。

ありがとうございます。
スペースとかはいらないので今回は、この方法
でいきます。

お早いレス、ありがとうございました。

管理人むたぐち さん 2002年 05月 31日 13時 30分 54秒

いや、お昼休みなんですけど。

http://www.goice.co.jp/member/mo/amuse/javascript/expert/
にも、JavaScriptによるsprintfがあります。

0をつけるだけなら、
Right(String(fig,"0") & CStr(num),fig)
(fig=桁数、num=整形したい数字)
とかするだけでもいいですね。

> あう

どうしましたん?

名無しさん さん 2002年 05月 31日 12時 49分 57秒

あう

名無しさん さん 2002年 05月 31日 12時 48分 54秒

vbsにそういう関数が用意されてないのなら作ったらどうですか?
log10と期待する桁数を比較して足りない分だけ0を埋めたらいいだけだし

余談ですがJScriptには
Number.toPrecision()
Number.toExponential()
Number.toFixed()
っていう数字整形用のメソッドがあるんですよね
(今回の話には関係なく、指数表記と有効数字に関するものですが)
Numberオブジェクトのリファレンスにリンクがないので最近まで知りませんでした
自分で作ってから気づいたよ(-_-;)

hir さん 2002年 05月 31日 12時 27分 42秒

WSHにはsprintf相当の機能はないです。

JScriptによる簡単なsprintfの実装がありました。
http://www.newobjects.com/articles/Category/78

あとはBASP21を使うのが楽ですね。
http://www.hi-ho.ne.jp/babaq/basp21.html#0019

さざなみ さん 2002年 05月 31日 10時 08分 43秒

さざなみです。

s=hoge
For i=1 To 100
s=s+i+vbCrLf
Next

とすると
hoge1
hoge2
hoge3



と出力されますが、
hoge01
hoge02
hoge03


という風に取得したいのですが

C言語で言う、wsprintf("hoge%1d",i);
等はどうやれば実現できますか?

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

おはようございます。
昨日は途中で力尽きてしまいましたなあ(^^;
時間があんまりないので、できるところまで、リスト62の記事に時間軸を逆に沿って
回答していきます。
未解決問題をスルーしていた場合はご指摘を。



To: Nomura さん

> って書いているうちに、論点がCABファイルの作り方になって、
> WSH Lab掲示板とは外れてきました。ごめんなさい。

別に構わないんですけど、cabファイルに関しては私は知識がないので、
ちょっと参加できません。
ActiveXコントロールの配布形態って、cabだったような気がするんですが、
そういう話じゃないんですよね。

> WMIが使えないか?とも思って調べてみたのですが、
> MSDNで読む限り
> Win32_Registryでは特定のキー(例えば\SOFTWARE\MYREGISTORY)
> とかにはアクセスできないように見えます。

StdRegProvクラスてのを使えばできます。
詳しくは、12-45 管理人むたぐち 2000/04/23 00:01 の記事などをご参照ください。
WshShell.Reg*系のメソッドより高機能ですよ。



To: たる さん

> 以前にExcelヘルプは紹介されていたので、ちょっと変わった利用法を。。
> IEのアドレスにたとえば下記の文字列を入れるとCollectionオブジェクトのヘルプが表示されます。
> mk:@MSITStore:C:\PROGRA~1\COMMON~1\MICROS~1\VBA\VBA6\1041\VbLR6.chm::/html/vaobjcollection.htm
> こうやって、一意な情報にポイントするのも手かな?チルダつきなのが他の人に教えるにはちょっと厄介だけど。

インストールパスが違う場合も問題になっちゃいますねえ。
Windowsフォルダ等、パスが通っているフォルダにあるchmの場合は有効だと思います。



To: Nomu さん

> それから、VBScriptからは名前付き引数が抜本的に無理だったような
> 気がします。過去に同じくExcelのVBAを呼び出すVBScriptで名前付き引数が
> 通らなかった記憶があります。(私のやり方がまずかった
> 可能性は否定しきれません。)

そのとおりです。
VBSはVB・VBAからいくつかの機能が削除されていますが、こういう文法部分での
変更もいくつかあります。
WSHのヘルプに、VBSとVB・VBAの機能対比表がついてますので、こちらも
参考にしてください。



それでは、また。

管理人むたぐち さん (mutaguchi@roy.hi-ho.ne.jp) 2002年 05月 30日 21時 32分 40秒
URL:http://www.roy.hi-ho.ne.jp/mutaguchi/

あ、WMIとデータベースがどうつながるか、説明するのを
忘れていました。
単に、CPUのクロック周波数を見て、遅いPCでは動作しない
ようにしたかったらしいです。
…その機能が必要な理由は、本人に聞くべし…。

たしかに、クロック周波数を調べるには、WMIを使うのが
一番簡単ですよね。あれ、どういう仕組みで動いて
いるんでしょうね。なんか演算でもやらせて、その速度を
ベンチマークして、結果を四捨五入して近似値としてるのかな。

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

To: おかだ さん

> 2chって雑談するとこみたいなイメージなんですけど、
> プログラミング用の板もあるんですね。(^o^A

2chって何でもありますよん。
うまく使えば、いろいろ貴重な情報が転がってたりします。



To: そうのすけ さん

> 2ちゃんでたまたま、フォルダカスタマイズの方法を見つけてから
> 自分なりにコードを追うようになりました。
> とりあえず、ファイルのパスをコピーするコードをStandard.htt内に
> 挿入してみたところ、シングルクォーテーションを含むファイルの
> パスをクリップボードにコピーできません。
> ダブルクォーテーションとシングルクォテーションが入り混じっていて
> とても複雑でお手上げ状態です。

たしかに複雑ですよね。
私も書いていて、なんど挫折しそうになったことか。
HTML内のVBSでJSのコード入りのHTMLを出力するコードを書いてるわけで、その訳のわからなさは
一級品だと思います。"や'が、各言語でそれぞれ意味が違いますし、
エスケープの入れ方もそれぞれ違うという状態で、それが入れ子になっていて…。

シングルクォーテーションを含むパスがコピーできないバグは、ver 1.02で
修正しましたので、こちらを参照してください。
パスコピー部分だけ、JScriptを使いました。なんかVBSだと、うまくいかなかったからだったと。



To: たる さん

> 投稿作品「キューブパズル」みて
> おぉ、これはすごいとか思ったんでスクリプト抜き出してみたはいいが、音が鳴りません。
> 何を変えたらいいのでしょうか?
>
> Set DAControl = CreateObject("DirectAnimation.DirectAnimationIntegratedMediaControl")

DirectAnimation.DirectAnimationIntegratedMediaControlってProgIDがそもそも私の
環境にはないみたいです。
これ、何のコンポーネントですか?



To: keisuke さん

> WScriptオブジェクトにSleepメソッドというのがありました。
>
> WSH Lab.だけを見て勉強していたため、MSDNの存在を知りませんでした・・。

あわわ。うちのページだけで勉強すると、危険ですよー。
WSH関係のドキュメントは、HTMLヘルプとしてまとまっているので、
こちらをダウンロードするのがお勧めです。

ちなみに、SleepメソッドはWSH2.0からですね。



To: LeMU さん

> CGIゲームを自動で行動させたいのですが、どのようにすればよいのでしょうか。

うー…。
さすがに、何を答えたものか、わかんないです(^^;

HTML(ですよね?)のどこに何を入力したらいいのか、とか、どういう行動をさせるのかとか、
具体的なことがないと、ちょっと回答できませんねえ…。



To: Kan さん

> VBと多少記述方法が違うと思うんですが、オラクルなどのデータベースに
> 接続して、データを取得するスクリプトをVBSで組めるでしょうか?

できると思いますが、私はデータベースに関してはまったく知らないので、
直接の回答はできません。
ただ、過去にいくつかの事例が紹介されていると思いますので、
掲示板のログを当たってみてください。



To: とおりすがりのMASA さん

いや、彼、研究室の後輩なんですけど(^^;

> ヤッホーで"microsoft wmi scripting v1.1 library"を検索したら
> ココにきてしまったので、掲示板で質問させていただきます。
> VBなんですが、上記のライブラリをWin98で追加、使用ってできるんですか?
> WinMeでは使えるようなのですが…。

たるさんに回答をいただいてるので、詳しくは省略しますが、
Win98では、コアコンポーネントを追加すればOKです。

せっかくだから、彼が何をしようとしているか、ここで暴露しちゃる。
Accessってあるじゃないですか。あれ、FileMaker Proみたいに、書式付
テキストを入力するフィールドって無いんですよ。
でも、我々化学屋さんは、化学式を表現するのに下付き文字やイタリック、
あるいはギリシャ文字(symbolフォントを使う)が必須なんです。
そこで、VBのリッチテキストボックスコントロールを併用して、
Accessのテキストフィールドの中身を無理やり書式付表示させようと
思い立ったわけですな。
私は、マークアップ方式を進めたんですが、実装の容易さから、
「書式設定をした文字位置を別テキストフィールドに記録方式」(なんやねんそれ)を
採用したんですね。まあ、うまくいってるみたいだから、そっちでもいいんですけど…。

と、余談が過ぎました。63-*のこれまでの返信は終了。
のちほど62-*の記事に返信をしていきます。

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

こんばんは。学会から帰ってきました。
今回はポスター発表だったので、気分的にもかなり楽でした。
ランドマークタワーの展望台で、子供のようにはしゃいでいたのは
秘密です。

さて。

返信ですが、カナーリ溜め込んでますので、どれが未解決
問題か、把握しづらくなってます。そこで、変則的になりますが、
新しい書き込みから順にチェックして、未解決だった問題に
突き当たった時点で返信を書く、という方針で消化していこうかと
思います。どこまで行けるかわかりませんが…。

hir さん 2002年 05月 30日 12時 31分 44秒

掲示板の過去ログを検索してみたのですが、すでに何度か話題になって
いたのですね。>Doodle
最近は書き込まれてないようですが、作者の方も見えました。
お恥ずかしい限りで。

おかだ さん 2002年 05月 30日 11時 34分 08秒

hir さん、こんにちは!

2chって雑談するとこみたいなイメージなんですけど、
プログラミング用の板もあるんですね。(^o^A

SIGNAL9さんの画像処理コンポーネントは、最初に私が求めていた通りの、
というよりそれ以上の性能ですよ。(^^)v

ご紹介ありがとうございました!
早速使ってみます。

hir さん 2002年 05月 30日 01時 04分 45秒

おかださん>

2ch/WebProg板/ASPスレで紹介されていた、画像処理コンポーネントです。
http://www.vector.co.jp/soft/winnt/prog/se219120.html

作者がSIGNAL9さんなので驚いたものです。
グラフィックはやらないので使ったことはないです。すいません。

そうのすけ さん 2002年 05月 29日 23時 40分 16秒

はじめまして。こんにちは。
2ちゃんでたまたま、フォルダカスタマイズの方法を見つけてから
自分なりにコードを追うようになりました。
とりあえず、ファイルのパスをコピーするコードをStandard.htt内に
挿入してみたところ、シングルクォーテーションを含むファイルの
パスをクリップボードにコピーできません。
ダブルクォーテーションとシングルクォテーションが入り混じっていて
とても複雑でお手上げ状態です。
どうか、お力をお貸しください。よろしくお願いします。

たる さん 2002年 05月 29日 22時 17分 26秒

投稿作品「キューブパズル」みて
おぉ、これはすごいとか思ったんでスクリプト抜き出してみたはいいが、音が鳴りません。
何を変えたらいいのでしょうか?

Set DAControl = CreateObject("DirectAnimation.DirectAnimationIntegratedMediaControl")
Set m = DAControl.MeterLibrary
Set snd = CreateObject("DirectAnimation.DASound")
Set snd2 = m.ImportSound("C:\WINDOWS\Media\tada.wav").Sound
snd.Init m.Until(snd2, m.Timer(0.5), snd)
DAControl.Sound = snd
DAControl.Start
WScript.Sleep 1000
Set DAControl = Nothing
Set m = Nothing
Set snd2 = Nothing
Set snd = Nothing

おかだ さん 2002年 05月 29日 14時 56分 05秒

ひょんさん、こんにちは!

あれから色々調べてみたんですけど、どうやら
「昔のBASIC」=「HTA + (JScript or VBScript) + DirectAnimation」と
いう所で落ち着きそうです。

と思ってた所で、ひょんさんの@秘密工場をのぞいてみると、
「おお、これやがな!(^o^)v」って感じでしたあ!
勉強させてもらいます!

keisuke さん 2002年 05月 29日 04時 43分 33秒

先ほどの敬介です。

WScriptオブジェクトにSleepメソッドというのがありました。

WSH Lab.だけを見て勉強していたため、MSDNの存在を知りませんでした・・。
(http://www.asia.microsoft.com/japan/msdn/scripting/default.asp)

以後、気をつけます。

keisuke さん 2002年 05月 29日 00時 58分 57秒

はじめまして。
敬介と申します。

どなたか、WSHで、ウエイトを入れる方法ご存知の方教えていただけませんか?

VBだとDoEventsを入れてループさせたり、
APIでSleepしたりするんだと思うんですけど、
WSHでの方法がわかりません。
できれば、Ver2.0以下で動くやりかただとうれしいです。

突然で申し訳ありませんが、
よろしくお願いいたします。

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

およそ三週間ぶりの登場です。
ごぶさたです。ちょっと忙しかったり。失礼しました。

返信についてですが、どうしましょうね。
実は、明日から学会で横浜です。一泊ですけど。
また、気長に待っといてください。

返信つけてくれている方々、どうもありがとう。

ひょん さん 2002年 05月 28日 22時 58分 28秒
URL:http://isweb36.infoseek.co.jp/computer/hyons/

おかださん
>>VBScriptを昔のBASICみたいに使いたいといったイメージです。

うちのページにそんなのが置いてあります。(汗;
よかったらどうぞ。

LeMU さん (tao@cc22.ne.jp) 2002年 05月 28日 18時 25分 42秒

CGIゲームを自動で行動させたいのですが、どのようにすればよいのでしょうか。
しょうもない質問ですが答えてやってください。お願いします。

Kan さん 2002年 05月 28日 17時 58分 36秒

VBSというものを最近しりましたのでとても初心者ですが、質問です。
VBと多少記述方法が違うと思うんですが、オラクルなどのデータベースに
接続して、データを取得するスクリプトをVBSで組めるでしょうか?

簡単な質問かもしれませんが、よろしくおねがいします。

おかだ さん 2002年 05月 28日 16時 27分 41秒

ここ、レスポンス速いですね。
コメントありがとうございました。m(__)m

ちょっと言葉足らずで申し訳なかったのですが、
IE抜きで線画を描きたいといった感じでしょうか。
VBScriptを昔のBASICみたいに使いたいといったイメージです。
(HSPは、近いけどちょっと違う感じ…)

Nomu さん:
>(3)それでもだめなら、mspaint.exeをシェルで立ち上げて
>    キーボードイベントを送り込むとか(爆)

じつはそれ、考えました…(自爆)

>(4)勿論、VBやその他でActiveXDLLを作成して、CreateObject
>   すればGDIだろうが、OpenGLだろうがいけるはずですが、
>   そんなスキルのある人がVBSでグラフィックやろうなんて
>   思わないだろうし(爆)

おっしゃる様に、GDIとかをActiveXDLL化すればOKですね。
スキルはさておき「めんどくさ〜」と思って、誰かそういうの作ってないかなあ、
なんて思った訳です。(ものぐさですいません!)

hir さん:
>IEをホストにしてDirectAnimation系のコンポーネントを使う、
>というのは考えられますが……おかださんの意図とはたぶん
>違いますね。

確かに意図とは違いますけど、IEからDirectAnimationが使えるんですね。
ブラウザ上でのグラフィックは、フリーのものはSVGぐらいしかないと
思ってました。

>ここの投稿プログラムとか。
>ttp://www.basicmagazine.net/bmnet/0205/toukou.htm

ベーマガやん!なつかし〜!

「キューブパズル」っていうの落としてみました。
勉強させてもらいます。

*

Nomu さん、hir さん、またよろしくお願いします。

hir さん 2002年 05月 28日 01時 41分 44秒

IEをホストにしてDirectAnimation系のコンポーネントを使う、
というのは考えられますが……おかださんの意図とはたぶん
違いますね。
ここの投稿プログラムとか。
ttp://www.basicmagazine.net/bmnet/0205/toukou.htm

DirectX7からVB対応したからVBSなどでも、という話を聞いた
ことがありますが、聞きかじりです。

Nomu さん 2002年 05月 27日 19時 31分 10秒

To おかださん
VBSではグラフィックはないはずです。(多分)
やりたいグラフィックの内容にもよりますが、
一応、こんなところではないでしょうか?
但し、商用利用か個人利用のいずれの目的なのかで、
本当に利用してよい場合と×の場合があると思います。
(1)既存の画像変換(FileFormatConvertや拡大縮小など)
   なら、EasyサムネイルやDoodleといったところで
   いかがでしょう。あるいはImagingとか。(XPには
   Imagingはないそうです。)
(2)とにかく画面上に表示だけ出来ればよいレベルなら、
   DHTMLで実現するとか。
(3)それでもだめなら、mspaint.exeをシェルで立ち上げて
    キーボードイベントを送り込むとか(爆)
(4)勿論、VBやその他でActiveXDLLを作成して、CreateObject
   すればGDIだろうが、OpenGLだろうがいけるはずですが、
   そんなスキルのある人がVBSでグラフィックやろうなんて
   思わないだろうし(爆)

おかだ さん 2002年 05月 27日 17時 23分 56秒

こんにちは!(^o^)/

WSH(VBS)はよく出来てるんですけど、グラフィック機能がないですよね。
GDIでもOpenGLでもTkでもDirectDrawでも、何でもいいから、VBSから呼べる
グラフィックライブラリをご存知ないでしょうか?

たる さん 2002年 05月 25日 10時 53分 56秒

To: とおりすがりのMASA さん

> ヤッホーで"microsoft wmi scripting v1.1 library"を検索したら
> VBなんですが、上記のライブラリをWin98で追加、使用ってできるんですか?

http://www.microsoft.com/downloads/release.asp?releaseid=23142
を見てください。

とおりすがりのMASA さん 2002年 05月 23日 15時 08分 22秒

ヤッホーで"microsoft wmi scripting v1.1 library"を検索したら
ココにきてしまったので、掲示板で質問させていただきます。
VBなんですが、上記のライブラリをWin98で追加、使用ってできるんですか?
WinMeでは使えるようなのですが…。

Return