masa さん 2002年 12月 30日 00時 21分 08秒

 RESありがとうございます
http://softplaza.biglobe.ne.jp/text/1999sp/wsh/wsh3-6.html
見るのですが VB自体も初心者で、感覚がつかめず
 まず 読んで勉強してみます。 なんか出来そうな気がするのですが
 サンプルがあればいいのだが 
  エクセル以外ではどうやって調べるのだろう 
  ともかく読んでみます
   
  SIGNAL9 さん ありがとうございます。

Oracion さん 2002年 12月 29日 22時 16分 29秒

Cscriptにてスクリプトファイルを実行した時の
実行時エラーや構文エラーが発生した時、OSに終了コード0が帰ってきます。
OSに0以外の終了コードを返すにはOn Error ステートメントでトラップし、Wscript.Quitを利用して終了コードを返す以外に方法はないのでしょうか?

ちなみにWSHのバージョンは5.6を使用しています。


SIGNAL9 さん 2002年 12月 28日 11時 08分 18秒

>masaさん

えー、挙げられているアプリはExcelですね。
この場合、Wsh.RunでEXEを動かす…という発想がちょっと違います(^^;)

ExcelなどのプログラムはCOMサーバとしての機能を持っています。WSHでは
このようなCOMサーバを操作する場合、CreateObjectで操作するのが正解で
しょう。
こちらのページなど参考になるのではないでしょうか
http://softplaza.biglobe.ne.jp/text/1999sp/wsh/wsh3-6.html

質問1の答えは、はい。
VBAのAはアプリケーションのAで、VBSのSはスクリプトのSです。
同じVBの言語形式をベースにしてますが、変数の型の扱いなど仕様は
異なります。が、上の例でいえば、Excel自体がCOMというWSHから操
作できる形のインタフェイスを持っているのでそれを通して操作がで
きます。

質問2もはい。ただ、いわゆる排他(同じファイルを開けるとか)に関
してはエラー処理を含めて考慮する必要があります。

masa さん 2002年 12月 26日 10時 20分 33秒

「アプリケーションの実行に下記のようなVBSで簡単に起動が
かかるよ」 と「ここが詳しいよ」て 紹介されて VBSが何者かも
わからず ここの基礎編 L1 L2 L3 と読させて頂いています。
少し興味が出てきたところなんですが

同じアプリケーションを2つ起動させて 1つは、会話処理 1つはバッチ処理
して使いたいなーと思っています。
下記のサンプルも スタートバーで起動するので 出きるのかな?と思っているのですが

質問1 そのアプリ(excelでもいいんですが)のVBSから制御て出来るものなんでしょうか?
excel マクロは、 VBAですよね A と S これとの関係も分からず
出来るのかな?と
(VBSにファイルを簡単に選択する方法が見つからなかったのですが
excel が入っていれば excel のファイル開く の動作だけ利用するて出来る
のかな?

質問2 会話で使っているexcel には、影響させず 隠れてスタートバーにあるexcel
に対して 集計などの制御をするて出来るものなんでしょうか?

はじめてで、チグハグな質問をしているかと思うのですがよろしくお願い致します。


set WshShell=WScript.CreateObject("WScript.Shell")
Return=WshShell.Run("excel.exe",2,FALSE)

松尾 さん 2002年 12月 25日 22時 12分 01秒

何とかなったようです。
WinMgmt.exeを直接スタートアップから起動することで、wbemcntl.exeを起動してその後終了することと同じになるようです。

松尾 さん 2002年 12月 24日 20時 00分 04秒

9xマシン間でのWMIによるリモート制御についてお伺いします。

むたぐちさんの過去の記事を参考にしてなんとか制御できました。どうもありがとうございました。

ところで、制御される側でOS起動後に一回でもwbemcntl.exeを起動しないと制御側で「RPCサーバーは使えません」のエラーになるようですね。

で、wbemcntl.exeをスタートアップから常に起動するようにするとして、その後終了させても良いようですが、起動オプションの設定などで、起動後にWMIに接続したら終了させるようにすることは出来ないでしょうか?

Lib30 さん 2002年 12月 21日 18時 40分 02秒

さいきんむたぐちさんどうしたんだろうなあ。



To boreas さん

> Win98seで、二重起動防止になっているアプリを、
> レジストリなどをいじって、二重起動させる方法ありますでしょうか

二重起動防止というのはOSが提供する機能ではなく、アプリケーションが
自前でその機能を実装しています。そのため、ソースコードを書き換えない限り
二重起動しないソフトを二重起動できるようにするのは無理でしょう。

ただ、ソフトによっては起動中のプロセスから自アプリ名を探し、すでにあれば
起動しないという方法をとっているものもあります。その場合は元exeファイルを
別名でコピーしてやると起動できる場合もあります。



To 忘れな草 さん

Replace関数は第一引数に文字列を指定する必要があるため、Documentオブジェクトから
中のテキストを取り出してそれを渡してやる必要があるかと思います。
あと、Word自体もReplaceメソッドを持っているため、そちらを使うという手もあるでしょう。
土屋さんのサイトに詳しくあります。
http://csx.jp/~tsuchiya/



To ビギナーさん

> Windowsを起動すると、最初に毎回必ず
> ・・・Windowsスクリプティングホスト スクリプト実行エラー"C:\WINDOWS\PONTS\ARIAL.vbs行番号3 カラム0"指定されたファイルが見つかりません・・・
> と出てくるのですが、どうすれば解決しますか?

ちょっと検索してみたのですが、ほとんどヒットしないところをみるとウイルスではなさそうですね。
スタートメニュー内のスタートアップ内にARIAL.vbsというファイルがあればそれを削除してみてください。


ビギナー さん 2002年 12月 20日 16時 27分 39秒

初めて質問させていただきます。
Windowsを起動すると、最初に毎回必ず
・・・Windowsスクリプティングホスト スクリプト実行エラー"C:\WINDOWS\PONTS\ARIAL.vbs行番号3 カラム0"指定されたファイルが見つかりません・・・
と出てくるのですが、どうすれば解決しますか?
このサイトで同じような質問をされているようなのですが、ウィルスが原因とか。この症状の出る機械でメールの送受信はしていません。インターネットへの接続はしています。それでもウィルスに感染することはあるのですか?
それとも別の原因でしょうか?
このような質問でもご回答いただけるのでしょうか?よろしくお願いいたします。

ああさん さん (aasan003@yahoo.co.jp) 2002年 12月 20日 14時 59分 51秒

こんにちわ
たまに出てきては質問だけで大変恐縮なのですが、1つ教えてください。
LANでつながっているサーバー(WIN2000server)に共有フォルダを設定したITO思い、こちらのダウンロードページの共有を作るサンプルスクリプトを
ダウンロードさせて頂きました。
このスクリプトはローカルのPCに対して共有設定をするものでしたので書き足そうと思い、下記のように書いて実行したのですが、うまくいきませんでした。

Set oShare=GetObject("winmgmts:{impersonationLevel=impersonate}!Win32_Share")を

Set oShare=GetObject("winmgmts:{impersonationLevel=impersonate}!//servername!Win32_Share")とサーバー名をを書き加えたのですが「リモートサーバーマシンが存在しないか、利用出来ません」とのエラーです。
何か根本的に間違っているのでしょうか?
ご指摘いただければ幸いです。ちなみにスクリプトを動かすPCはWIN2000PROです。
宜しくお願いします。 ああさん

telmi さん (km890@hotmail.com) 2002年 12月 20日 13時 40分 44秒

リモート スクリプトを実行できるようにコンピュータを設定するには:
MSDNのページに以下のようにあるのですが、Poledit.exe も windowsscript.adm 見つかりません。
どこかにあるのでしょうか?
「サーバー上で Poledit.exe を使用して、リモート WSH を有効にします。
メモ 管理者がリモート WSH を有効にするには、Windows 2000 リソース キットを入手するか、http://msdn.microsoft.com/scripting にアクセスして WSH の設定値が記述されている ファイルを入手する必要があります。windowsscript.adm ファイルは、適用されるグループのポリシーを設定するサーバーにコピーしなければなりません。」

neko さん 2002年 12月 20日 11時 52分 38秒

ファイルの移動で
ネットワークでつながっている他のPCの指定したフォルダにファイルを移動したいのですが、
パスがよくわかりませんでした。。

ObjFile.Move "\\端末名\\d$TEST\ファイル名.txt"

ではダメですよね。。
ご存知の方いらしたら教えていただけないでしょうか?

忘れな草 さん 2002年 12月 20日 10時 53分 10秒

御サイトでのサンプルを参考に致しまして、
ある特定のフォルダ内に存在するWord文書のすべてを取得し、
特定の文字列を探し出し、置き換えるという文字列変換モジュールの
作成を試みています。

Word文書のDocumentsオブジェクトを取得するところまでは完成致しました。

あとは、Documentsオブジェクトに対してReplace関数にてと思ったのですが、ここでその方法が分りません。

Documentsに対してReplaceが有効なのか、
または、ReadLineにて1行づつバッファに取り込んで
Replaceする必要があるのかどうかそのあたりにつきましてアドバイス
頂ければ幸いです。

For Each Obj In F.Files

Set myDocument = myWord.Documents.Open (FName)
myDocument = Replace(myDocument,find,replace)

Next

のようなコードを書いてみたのですが、
そのような処理はできないとエラーを喰らってしまいます。

アドバイス宜しくお願いします。

忘れな草



boreas さん 2002年 12月 20日 01時 44分 42秒

ちょっと管轄外だと思うのですが、教えてください
Win98seで、二重起動防止になっているアプリを、
レジストリなどをいじって、二重起動させる方法ありますでしょうか
大雑把過ぎてわからないなどの場合、スルーしてくださって結構です

たる さん 2002年 12月 19日 22時 11分 07秒

To: aiko さん

> SP3以降の12/中旬ごろのいくつかのセキュリティ問題の修正プログラム
> のUpdateを行いました。
新しいUpdateですね。Q3249298あたりかな。
ちょっと調べたのですが、内容的にこのバグの方が深刻すぎな事もあり該当する記述はありませんでした。
つーか、これ入れない人は回線につなげないで欲しいくらい。

> いろいろ調べまして、どうも日付に関するスクリプトが不具合をだしている
> ようです。
ここの前辺りにResponse.Write sDateとか入れてみるとか。
sDateはVaridate前の文字列変数のつもり。適当に読み替えてください。

> サーバにスクリプトエラーが表示され、クライアント側からはwebにアクセスできない表示になります。

ここはスクリプト掲示板なので、これ以上の解決は該当前後のスクリプトおよびエラーの詳細の提示という事になりますね。
管理者なら戻すとかの選択肢もありますが、そちらの方向はネットワークにつなげている以上ちょっと勧められません。

あと、化けますので半角カナは使わないで下さい。

aiko さん 2002年 12月 19日 18時 42分 42秒

たるさん さっそくのご意見ありがとうございます。
本来ならばMSに確認すべきところなのですが、どなたか同じ症状に
合われた方がいればと思い掲載させていただきました。

>質問1.このWindows2000serverはクライアントで動かしているのですか?
wwwserver用仕立てており、adminにてログインし、操作しています。

>質問2.あなたはWeb管理者ですか?利用者ですか?
新米管理者です。

>質問3.きっかけとなるそれはいつの適用WindowsUpdateですか?
SP3以降の12/中旬ごろのいくつかのセキュリティ問題の修正プログラム
のUpdateを行いました。

> 半角文字列を入力する欄に全角文字列を入れた場合、
> サーバにエラー構文が表示され、Webがとまってしまいます。
>質問4.この表示はクライアント表示ですか?スクリプトエラーログですか?
スクリプトエラーログです。
いろいろ調べまして、どうも日付に関するスクリプトが不具合をだしている
ようです。

>質問5.Webサーバが止まるのですか?表示上これ以上画面遷移が出来なく止まって見えるだけですか?
サーバにスクリプトエラーが表示され、クライアント側からはwebにアクセスできない表示になります。
サーバ側でスクリプトエラーを閉じれば、またクライアント側から正常にwebにアクセスできます。

> 今まではこのような症状は起きずに、”正確に入力してください”
問合わせページでは、必要事項(名前、住所、生年月日等)を入力してもらい
asp箕荷を使ってmdb箕荷に筑粟を保存するとともに担当者にメールにて転送する仕組みになっています。
今までは生年月日が半角指定に指定していても、もし全角で入力した場合でも
スクリプトエラーが出たことはありませんでした。

>質問6.その画面に遷移するのにCookieは必要ですか?
いいえ
>質問7.クライアントのブラウザはIE6ですか?
はい
>質問8.このWebの利用者は他にもいるのですか?そこからの同様のクレームは聞けませんか?
はい、今のところ一般ユーザーからのクレームはありません。

MSにUPDATEの件で問い合わせをしたのですが、サーバー製品は有償サポートになるといわれ、逡巡しているところです。



あずさ さん (character@msi.biglobe.ne.jp ) 2002年 12月 19日 06時 03分 30秒

たるさんありがとうございました。また、よく知らないものでごめんなさい。

たる さん 2002年 12月 18日 23時 31分 05秒

To: あずさ さん

>ウィンドウズ98でウイルスメールの攻撃を受けてまずドキュメントなどのファイルが壊れ、数ヶ月後にパソコンが起動しなくなったのですが、
>大切なアドレスを取り出したいので、使える復元ソフトなど、何か良い方法はないでしょうか。
ここはスクリプト掲示板で、ユーティリティソフトについては管轄外です。
攻撃から起動しなくなったのとだいぶブランクがあるようですので、
その間にバックアップの措置があれば助かる可能性がありますが、無ければかなり厳しいでしょう。

To: aiko さん

> Windows2000serverでWindowsupdateを行った後、
> 問い合わせページのaspがうまく作動しなくなりました。
質問1.このWindows2000serverはクライアントで動かしているのですか?
質問2.あなたはWeb管理者ですか?利用者ですか?
質問3.きっかけとなるそれはいつの適用WindowsUpdateですか?

> 半角文字列を入力する欄に全角文字列を入れた場合、
> サーバにエラー構文が表示され、Webがとまってしまいます。
質問4.この表示はクライアント表示ですか?スクリプトエラーログですか?
質問5.Webサーバが止まるのですか?表示上これ以上画面遷移が出来なく止まって見えるだけですか?

> 今まではこのような症状は起きずに、”正確に入力してください”
> との画面に進んでいました。
質問6.その画面に遷移するのにCookieは必要ですか?
質問7.クライアントのブラウザはIE6ですか?
質問8.このWebの利用者は他にもいるのですか?そこからの同様のクレームは聞けませんか?

これらの解答による分岐があるので、今回はここまでしか聞けないです。

aiko さん 2002年 12月 18日 11時 24分 10秒

どなたかアドバイスをお願いいたします。
Windows2000serverでWindowsupdateを行った後、
問い合わせページのaspがうまく作動しなくなりました。

半角文字列を入力する欄に全角文字列を入れた場合、
サーバにエラー構文が表示され、Webがとまってしまいます。

今まではこのような症状は起きずに、”正確に入力してください”
との画面に進んでいました。

よろしくお願いします。

あずさ さん (character@msi.biglobe.ne.jp) 2002年 12月 17日 20時 43分 31秒

初心者の失敗です。ウィンドウズ98でウイルスメールの攻撃を受けてまずドキュメントなどのファイルが壊れ、数ヶ月後にパソコンが起動しなくなったのですが、大切なアドレスを取り出したいので、使える復元ソフトなど、何か良い方法はないでしょうか。情けない質問でごめんなさい。ご存知の方、初心者向けでお願いします。

たる さん 2002年 12月 16日 23時 41分 47秒

To: 彩 さん

> 『Deleteメンバ関数はインデックスで指定した位置から、指定した数の要素を削除します。』
> と私の参考書には載っているのですが、この削除方法(例)を教えてください!

メンバ関数って事はC++?
でもDeleteはMFCにもないよなぁ。どこぞで実装されたクラスのことは、そのところで聞くのがベターかと。

>VBで、『リストボックス』内の表示をTabのような機能を使って揃えたいのですが、どうしたら良いのでしょうか。
>同質問で、『picture』を使った時の表示を揃える方法も教えてください。

う〜ん、こっちは何なのか見当もつきません。
TabっていうとTabStripのことかな?
pictureはPictureBoxかな(すまん、VB今手元に無いんよ、代わりにVB.NETを見ながら考えられる事を見ているんだけど)


さん 2002年 12月 16日 18時 27分 12秒

どうも。
マタマタ彩です。

VBで、『リストボックス』内の表示をTabのような機能を使って揃えたいのですが、どうしたら良いのでしょうか。

同質問で、『picture』を使った時の表示を揃える方法も教えてください。

さん 2002年 12月 15日 21時 24分 36秒

こんにちわ。
はじめまして。

現在VBのスクリプト作りに挑戦しております。
どうしても自分では解決できずに、途方にくれた先に、貴方のHPを見つけ、拝見させていただいた者です。

『Deleteメンバ関数はインデックスで指定した位置から、指定した数の要素を削除します。』
と私の参考書には載っているのですが、この削除方法(例)を教えてください!

私の場合、Arrayに含まれている3番目の関数を削除したいのですが。
例) FName(3)

FName(3) = Remove
FName(3) = Delete
等、色々試みたのですが、うまく行きません。

情報ご提供ありがとうございます。
お返事いただければ大変光栄です。

たる さん 2002年 12月 14日 14時 10分 46秒

To: hirorin さん

http://www.trendmicro.co.jp/vinfo/virusencyclo/default5.asp?VName=VBS_PINOCC.A
VBS_PINOCC.Aだと思います。

下記では違うウイルスでしたけどね。VBS_LEE.D派生か。
やる事は同じく上記のページを頼りにスタートアップレジストリの値を消すだけかと。
これで分からなければノートン先生に消してもらいましょ。

hirorin さん (hiro12270815@yahoo.co.jp) 2002年 12月 14日 09時 06分 00秒

誰か教えてくださーい!
Windowsを起動すると、最初に"C:\WINDOWS\SYASHIN3.vbs"が見つかりませんと出てきます対処方法をどなたか知っている方教えてください。
ウィルスに感染してしまいファイルを削除してしまったからなのはわかっているのですが・・・
過去の内容に同じ現象の事例がありますが、対応方法がわからないのでよろしくお願いします。。。

たる さん 2002年 12月 11日 23時 50分 26秒

To: yuu さん

> VBSの重複起動のチェックをおこないたいのですが記述がわかりません。
> VBSでやるにはどのようにするのでしょうか?
WSHでは出来ません。あきらめてローカルリソースに書き込んでください。
強制終了対策を含めると難しいかも。

To: 西六郷 さん

> うまくいきません。どこが悪いのか教えて頂きたいのです。
> Wordのマクロではうまくいくのですが、
WordでうまくいってWSHで行かない場合
定義済み定数
名前付引数
を疑ってみてください。
そこを変えて動かしてみて、まだダメだったらまた下さい。

To: さば さん

> 不定期(2〜3日に一回)に更新されかつ名前も変わるファイル(拡張子は同じです。因みにそのフォルダないには同じ拡張子のファイルは存在しません)を自動で確認しにいって、自分のフォルダにあるファイルと比較して新しければこれをコピーして、且つ古いファイルを削除するようなスクリプトってどんな感じになるんでしょうか?
確認するけど、送り側のファイル群をA、受け側のファイル群をBとすると、
A⊆Bでいいの?
なら、まず全てのBをキーを拡張子、値をフルパスでDictionaryに入れて、
Aを一つづつ拡張子をキーにかけて存在チェック。
引っかかったら、後はfile.DateLastModifiedで比較すればよろしいかと。

> また、その場合、コピーをした場合特定のクライアント機にメールでその旨しらせることはできますでしょうか?
> このWHSを実行したいと考えてるのがw2kサーバーでIIS5.0も入ってます。
> SMTPサービスを開始していればCDOが使えると聞きました。
> その場合もWHSとして一緒に記述するんでしょうか?
CDOって、使った事ないなぁ。
62-03でBASP21を使ったメール送信スクリプト書いてますので、関数部だけでも参考になれば。
日本のWin Webサーバーなら大抵入れてるって話なので。→BASP21

ところでWHSってなぁに。

さば さん (shab0181@yahoo.co.jp) 2002年 12月 10日 23時 57分 36秒

プログラム超初心者のさばです。初めまして。WHSで教えて欲しいのですが、
不定期(2〜3日に一回)に更新されかつ名前も変わるファイル(拡張子は同じです。因みにそのフォルダないには同じ拡張子のファイルは存在しません)を自動で確認しにいって、自分のフォルダにあるファイルと比較して新しければこれをコピーして、且つ古いファイルを削除するようなスクリプトってどんな感じになるんでしょうか?

単に、
???FileCopy("サーバー名\フォルダ名\ファイル名","ホスト名\フォルダ名\ファイル名"
で成功の場合MSGをだすように作ることはできたんですが、なにせファイル名を自動で検索しにいくような内容には全くなっていないので、ファイル名を正確に記載する必要があり、全く意味をなしていません。
非常にど素人で恐縮ですが、宜しくご指導いただけたらと存じます。

また、その場合、コピーをした場合特定のクライアント機にメールでその旨しらせることはできますでしょうか?
このWHSを実行したいと考えてるのがw2kサーバーでIIS5.0も入ってます。
SMTPサービスを開始していればCDOが使えると聞きました。
その場合もWHSとして一緒に記述するんでしょうか?

宜しくお願いいたします。

西六郷 さん 2002年 12月 10日 20時 28分 05秒

はじめまして、西六郷と申します・
下記のコードは、Wordに図形を貼り付けて
グループ解除して線の太さを0.5に指定し、また
グループ化するというものですが色々やってみましたが
うまくいきません。どこが悪いのか教えて頂きたいのです。
Wordのマクロではうまくいくのですが、
よろしくお願いします。

Dim ObjWord
Set ObjWord = CreateObject("Word.Application")
ObjWord.Visible = True
ObjWord.Documents.Add

With ObjWord.Selection
.PasteSpecial, DataType=(wdPasteOLEObject) '1.図形を貼り付ける
.ShapeRange.Ungroup.Select '2. グループ解除する
.ShapeRange.Fill.Visible = msoFalse '3. 塗りつぶし「なし」
.ShapeRange.Line.Weight = 0.5 '4. 線の太さを0.5にする
.ShapeRange.Line.ForeColor.RGB = RGB(0, 0, 0) '5. 線の色を黒にする
If .ShapeRange.Count > 1 Then '6. オブジェクトが2つ以上の時
.ShapeRange.Group.Select '7. グループ化する
End If
.ShapeRange.Left = MillimetersToPoints(0) '8. 図形を一番左にする
.ShapeRange.Top = MillimetersToPoints(0) '9. 図形を一番上にする
.Collapse '10. 選択解除
End With

Set ObjWord = Nothing

ワッキ− さん 2002年 12月 10日 09時 42分 05秒

さざなみさんどうもありがとうございました。

非常に単純な解決方法ですが、batファイルのプロパティのプログラムのタグに”プログラム終了時にウィンドウを閉じる”という所をチェックすればOKでした。
さざなみさんに教えて頂いた方法でもチャレンジしてみます。

メソ さん 2002年 12月 09日 15時 30分 25秒

たるさん、ありがとうございます。

Set doc = Me

で、よかったのですね。これでバッチリうまくいきました。
又、ご指摘いただいた、

If doc.Frames.Length = 0 Then ...

の部分ですが、DocumentCompleteイベント自体が、FrameとFrame内のDocumentそれぞれで独立して発生しますので修正前の状態でも問題なく動くようです。
(3つのFrameを持つURLに言った場合は4回DocumentCompleteが起きる)

とにかく、Meでイベントが起きたオブジェクトそのものが取得できるのが分かったので幅がかなり広がりました。ありがとうございました。

yuu さん (azarashi_jpn@hotmail.com) 2002年 12月 09日 14時 58分 07秒

はじめまして。

VBSの重複起動のチェックをおこないたいのですが記述がわかりません。
VBではApp.PrevInstanceでチェックすればできるのですが、
VBSでやるにはどのようにするのでしょうか?
よろしくお願いします。

CAT さん 2002年 12月 09日 01時 32分 10秒

たるさん、ありがとうございます。
自分の場合、<form action="***.asp" target="content">では
うまく動いてくれなかったのでいろいろ試してみたんですが
最終的にparent.Frames("ターゲット指定").Location.Href = "アドレス"で
動きました。。
いろいろとありがとうございましたー

たる さん 2002年 12月 07日 19時 01分 25秒

To: CAT さん

> あのー、htmlで他のページにフレームのターゲット指定して飛ばすときは
> <a href="***" target="***">でいけるのですが、VBSの場合はどの命令で
> それが可能でしょうか?
> Response.Redirect "***"で行けるかと思ったのですが、ターゲットの指定が
> わかりませんでした。。

ブラウザの制御はASPの範疇じゃないです。
contentというウィンドウ(フレーム)に結果を出したいなら
<form action="***.asp" target="content">
でよいかと。

CAT さん 2002年 12月 07日 15時 54分 30秒

たるさん、ありがとうございます。。
>いえ、その方法のほうが簡単というだけで
そうですね。そのほうがてっとり早いですね。。ありがとうございます。。
その方法で行きたいとおもいます。

で、最後にもう1つだけいいですか?
あのー、htmlで他のページにフレームのターゲット指定して飛ばすときは
<a href="***" target="***">でいけるのですが、VBSの場合はどの命令で
それが可能でしょうか?
Response.Redirect "***"で行けるかと思ったのですが、ターゲットの指定が
わかりませんでした。。
すみませんが、最後にこれだけアドバイスください。。
よろしくおねがいします。

たる さん 2002年 12月 07日 15時 10分 35秒

To: CAT さん

> やはりその方法しかないでしょうか?
いえ、その方法のほうが簡単というだけで一つのページでやれる事はやれます。
が、キャッシュ制御、再訪チェックをしないといけないので、

> やはり、そうなってくると後はhtmlの方で目立たなく作るしかないですねー。。
出来るなら、それが一番良いです。

CAT さん 2002年 12月 07日 14時 21分 48秒

たるさん。たびたびありがとうございます。。
やはりその方法しかないでしょうか?
実は前に作ったやつがそのタイプで、今回は1つのASPの中で
ページ移動しなくてもできないかと思いやってみました。。
やはり、そうなってくると後はhtmlの方で目立たなく作るしかないですねー。。

たるさん、ありがとうございます!!

たる さん 2002年 12月 07日 14時 01分 18秒

To: CAT さん

> COMポートにコマンドを送るサブルーチンとonclickのサブルーチンを作って
> <server></server>みたいな感じでクライアントとサーバを分ければ可能でしょうか?ごめんなさい、、もうすこしだけヒントほしいです。
基本的には、2つのページが必要です。フォーム(leftbtnをtype="submit"に変更)と送信完了(実際の処理(1))ページ。

CAT さん 2002年 12月 07日 13時 45分 04秒

こんにちは、、タルさん、レスありがとうございます。。
>サーバサイドとクライアントサイドの動作について切り分けしてみてください。
COMポートにコマンドを送るサブルーチンとonclickのサブルーチンを作って
<server></server>みたいな感じでクライアントとサーバを分ければ可能でしょうか?ごめんなさい、、もうすこしだけヒントほしいです。

>Comポートを空けたいのはサーバのマシンですか?クライアントのマシンですか?
COMポートを空けたいのはサーバ側です。
また、今回はRS232Cにコマンドを送信するだけでOKです。

なにか参考になるようなドキュメントがありましたら教えてほしいです。
初心者の質問でごめんなさいです。

たる さん 2002年 12月 07日 10時 24分 31秒

To: メソ さん

> InternetExplorerにて、Frame内のActiveなDocumentを取得する方法はあるのでしょうか?
> DocumentのEventをWHSにて取得して、それを活用したいのですが上手い方法が浮かびません。

> If doc.Frames.Length = 0 Then
> Set doc.onclick = GetRef("Document_OnClick")
> End If
> End Sub

If doc.Frames.Length = 0 Then
' Set doc.onclick = GetRef("Document_OnClick")
MsgBox "NoFrame" 'おまけ
ElseIf doc.Frames.Length = 1 Then
Set doc.Frames(0).document.onclick = GetRef("Document_OnClick")
MsgBox "1Frame(s)"
ElseIf doc.Frames.Length = 2 Then
Set doc.Frames(1).document.onclick = GetRef("Document_OnClick")
MsgBox "2Frame(s)"
End If


> Set doc = Ie.Document '<--ここをActiveなFrameのDocumentにしたい
Set doc = Me '<--ここをActiveなFrameのDocumentにしたい

に変更してみてください。


To: CAT さん

> 今、VBSからMSCOMMを利用してシリアルポートにコマンドを送信する
> VBSを作ってるのですが、なかなかうまくいかないのでこちらでアドバイスを
サーバサイドとクライアントサイドの動作について切り分けしてみてください。
Comポートを空けたいのはサーバのマシンですか?クライアントのマシンですか?
後の命令を先に書いた物(その時点ではすでに消えている。実行されているマシンも違う。受信に関する記述はまるで無い)にお願いは出来ません。

CAT さん 2002年 12月 07日 00時 14分 49秒

こんにちは、はじめまして、、
今、VBSからMSCOMMを利用してシリアルポートにコマンドを送信する
VBSを作ってるのですが、なかなかうまくいかないのでこちらでアドバイスを
もらえないかと書き込みしました。

pws4.0の中に下記のようなASPファイル置いて実行はできたのですが、
次のステップで躓いてます。。
===asp@==========
<%@LANGUAGE="VBScript"%>
<%
Set MSComm1 = CreateObject("MSCOMMLib.MSComm.1")
MSComm1.CommPort = 1
MSComm1.PortOpen = True
MSComm1.Output =(2) & "R" & "10" & vbCr
Set MSComm1 = Nothing
%>
===================
上のプログラムをボタンのOnClickで実行したくて下記のようにしました。
=================================
<script language="VBScript">
  Sub leftbtn_OnClick
Set MSComm1 = CreateObject("MSCOMMLib.MSComm.1")
MSComm1.CommPort = 1
MSComm1.PortOpen = True
MSComm1.Output =(0) & "L" & "10" & vbCr
Set MSComm1 = Nothing
End Sub
</script>
=================================

しかし、うまく動かずscript languageの宣言を<%、%>に変えて実行するとOnClickが動かず、script languageの宣言だとMSCOMMが動きません。
両方試してみましたが無理でした。。。
プログラムの書き方が悪いのだと思うのですが
何か良い方法はないでしょうか??
できましたらアドバイスおねがいします!!

さざなみ さん 2002年 12月 05日 09時 51分 20秒

さざなみです。

> ワッキ― さん
> DOSウィンドウを閉じる方法...

WshShellのSendKeys


EXIT[ENTER]

を送ってみてはいかがでしょうか。

メソ さん 2002年 12月 03日 14時 05分 38秒

メソと申します。早速ですが、質問させてください。

InternetExplorerにて、Frame内のActiveなDocumentを取得する方法はあるのでしょうか?
DocumentのEventをWHSにて取得して、それを活用したいのですが上手い方法が浮かびません。

下記ScriptはDocumentがClickされたときにそのURLを表示するだけのScriptですが、Frameが使用されているとTopのDocumentURLしか表示できません。
OnClickにもOnClick(pDisp)のような引数があればよいのですが・・・。

どなたかご存知の方がいらっしゃいましたら、ご教授ください。
よろしくお願いいたします。

'-- Script start -----------
Option Explicit
Dim IE

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

Do : WScript.Sleep 100 : Loop

Sub IE_DocumentComplete(ByVal pDisp,ByVal URL)
Dim doc

Set doc = pDisp.Document
If doc.Frames.Length = 0 Then
Set doc.onclick = GetRef("Document_OnClick")
End If
End Sub

Sub Document_OnClick()
Dim doc

Set doc = Ie.Document '<--ここをActiveなFrameのDocumentにしたい
MsgBox "ActiveDocument URL is " & vbCrLf & doc.URL
End Sub

Sub IE_OnQuit()
WScript.Quit
End Sub
'-- Script End -----------

ワッキ― さん 2002年 12月 02日 14時 48分 05秒

【教えて下さい】
今日から始めた初心者ですが、WHSでドライバーの使用量をTxtファイルに出力するプログラムを作りました。
このプログラムを毎日一回、定期的に走らせようと思い「Time Keeper」というソフトでプログラムのバッチファイルを実行させたのですが、DOSのウィンドウが閉じてくれませんでした。
どなたか、DOSウィンドウを閉じる方法か、別の方法で自動的に定期的にWHSを走らす方法をご存知の方、教えて頂けないでしょうか?

たる さん 2002年 11月 30日 22時 10分 31秒

To: 省吾 さん

> [フォルダオプション]−[表示タブ]にある
> "すべての隠しファイルを表示する、しない"
http://gelsof.tripod.com/old/hfs.htm
これって、WSHで実現可能なんだろうか?
レジストリをいじってもそれを反映するリフレッシュ動作がダメポ。

To: WSH初心者 さん

> WindowsXPの終了時にFTPでファイル転送した後、終了するような
> WSHでのスクリプトの記述の仕方が分かりません。

とりあえず、FTPでバッチ処理するスクリプトを作ってみました。
処理中は実行が止まっていますのでその後終了すると良いでしょう。
Sub SendByFTP(sServer, sUser, sPassword, sServerDir, asFilePath)
Dim oFS, sTemp, WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
Set oFS = WScript.CreateObject("Scripting.FileSystemObject")
sTemp = oFS.BuildPath(oFS.GetParentFolderName(WScript.ScriptFullName), oFS.GetTempName())
Set oTSFtpCmd = oFS.OpenTextFile(sTemp, 2, True)

oTSFtpCmd.WriteLine "open " & sServer
oTSFtpCmd.WriteLine sUser
oTSFtpCmd.WriteLine "cd " & sServerDir
oTSFtpCmd.WriteLine "type binary"
For Each sFile In asFilePath
oTSFtpCmd.WriteLine "put " & sFile
Next
oTSFtpCmd.WriteLine "quit"

oTSFtpCmd.Close

' FTP を実行
sCmd = "%Systemroot%\System32\ftp.exe -s:" & sTemp
WshShell.Run cmd, 0, True
oFS.DeleteFile sTemp
End Sub

SendByFTP "www.ftpserver.co.jp","WellKnownUser" , "passwordstring", "pubs", Array("FileName1","FileName2")

To: champ さん

> 起動している アプリケーションを終了させるには
> どのようにすれば 良いでしょうか?

38-39 管理人むたぐち さん
とか。terminateで探せばそれこそ山のように見つかりますよ。

To: たかお さん

> WSHで、ファイルのコピーを行いたいのですが、下記の処理が実行可能かどうか
> 教えて頂ければと思います。
> 1.InputBoxで、日付を取得。
> 2.取得した日付よりもフォルダA内のファイルが最終更新日が新しければフォルダBへのコピー対象とする。
> 3.コピー対象のファイルのPathを取得。

> ex. c:\main\wsh\htmlからc:\copy\wsh\htmlへ移動したい。
>
> このような処理はWSHで可能なのでしょうか?
可能です。ただ、XCOPY使った方が手っ取り早いです。こんな感じ。

sPathA = "〜" ' 送り元ディレクトリ。最後に\は入れないで
sPathB = "〜" ' 送り先ディレクトリ。最後に\は入れないで
Do
sDate = InputBox("日付を入力")
If CStr(sDate) = "" Then WScript.Quit(0)
Loop Until IsDate(sDate)
datNewDate = CDate(sDate)
sCmd = "xcopy " & sPathA & " " & sPathB & " /e /y /D:" & Month(datNewDate) & "-" & Day(datNewDate) & "-" & Year(datNewDate)
WScript.CreateObject("WScript.Shell").Run sCmd, 0, True

To: しまあき さん

> WSHからBATを実行する際に引数として任意の値を渡すことは可能でしょうか。

上記の例ではXCOPY.EXEですが、バッチファイルにしても可能です。

To: chuff さん

> Sub ScanFolder (A)
> をした後、
> Sub ScanFolder(B)
> に処理が行ってしまいます。
> なぜでしょうか?

そのScanFolderという関数の仕様なのではないでしょうか?

kei さん 2002年 11月 30日 12時 00分 54秒


>たる さん

>Windowsを起動すると、最初に毎回必ず・・・スクリプトファイル"C:\WINDOWS\SYASHIN3.vbs"が見つかりません・・・と出てくる
この問題については、おかげさまで解消しました。
ありがとうございました!

接続時の音、タスクバーの不具合についてはまだわかりませんが、引き続き、調べて行きたいと思います。

たる さん 2002年 11月 30日 08時 58分 57秒

To: kei さん

> Windowsを起動すると、最初に毎回必ず・・・スクリプトファイル"C:\WINDOWS\SYASHIN3.vbs"が見つかりません・・・と出てくるんですが、どうやったら解決しますか?

http://www.symantec.co.jp/region/jp/sarcj/data/v/vbs.moon@mm.html

接続時の音、タスクバーの不具合は分かりません。

kei さん 2002年 11月 30日 04時 39分 56秒

Windowsを起動すると、最初に毎回必ず・・・スクリプトファイル"C:\WINDOWS\SYASHIN3.vbs"が見つかりません・・・と出てくるんですが、どうやったら解決しますか?
恐らく理由は、VBS.Moon@mmというウィルスに感染してしまった為に、c:\WINDOWS\syashinx.vbsとc:\WINDOWS\syashin3.vbsの2つのファイルを削除してしまったせいだと思うのですが。
この削除を行ってから@ネット接続時のあの独特の音がしないA接続中である事を示すマーク(モニターの絵のやつ)が右下のバーに表示されないと言った不具合も生じました。
初心者ですので、詳しく教えて頂けるとありがたいです ...

小林 さん 2002年 11月 27日 15時 26分 34秒

まあいいじゃないですかさま
ありがとうございましたそのほうほうでできました。

chuff さん 2002年 11月 27日 14時 32分 23秒

質問があります。
ひとつのプログラム上に同じ処理をするSubステートメントがあります。
フォルダを検索させているのですが、
引数のPathは違います。
Sub ScanFolder (A)
をした後、
Sub ScanFolder(B)
を行いたいのですがじ紊傍\劼靴ソSub ScanFolder(B)
に処理が行ってしまいます。
なぜでしょうか?
どなたか教えて頂けませんでしょうか?

しまあき さん 2002年 11月 26日 15時 27分 12秒

WSHからBATを実行する際に引数として任意の値を渡すことは可能でしょうか。
ご教授願います

たかお さん 2002年 11月 26日 13時 48分 29秒

はじめまして。
WSHで、ファイルのコピーを行いたいのですが、下記の処理が実行可能かどうか
教えて頂ければと思います。
1.InputBoxで、日付を取得。
2.取得した日付よりもフォルダA内のファイルが最終更新日が新しければフォルダBへのコピー対象とする。
3.コピー対象のファイルのPathを取得。
3.フォルダAもフォルダBも同じディレクトリ構造なので、Pathの途中を変更してぅ侫D襯タBにコピーする。
ex. c:\main\wsh\htmlからc:\copy\wsh\htmlへ移動したい。

このような処理はWSHで可能なのでしょうか?
可能であればその対処法も教えてただければと思います。
宜しくお願い致します。

Return