06/05/03 17:13:18
> Set reader = CreateObject("MSXML2.SAXXMLReader)
> 迄は分かるんだが、
全然わかってないってことじゃんw
Set reader = CreateObject("~")
は調べるまでもなくわかることだし。
まあとりあえずリファレンスでも読んでこい。
リファレンス読んで解らないなら、ここで説明しても理解できないだろうし。
553:551
06/05/03 22:06:15
スマン自己解決……というか「出来ない」ってのが分かった。
>>552
> 全然わかってないってことじゃんw
> まあとりあえずリファレンスでも読んでこい。
説明足らなかった。ゴメン。
サンプルとしてMSDNのJumpStart for Creating a SAX2のVB版とC++版が有ったんだが、IVBSAXContentHandler(ISAXContentHandler)継承(VBはImplements)したクラスをSAXXMLReaderのcontentHandler(putContenthandler())に渡してたのよ。
これWSHでどうやるのかな、と。
勝手に実装したクラス作って渡してみても『型が違う』って怒られるし。
調べてみたら『出来ない』って。しょうがない、DOMでやるか。
554:デフォルトの名無しさん
06/05/08 02:46:20
夜更けですみません。
WindowsのVersionを調べるのってWSHから可能でしょうか?
555:デフォルトの名無しさん
06/05/08 05:52:08
>>554
Versionつっても具体的にどーゆーVersion?
95/98/Me/NT/2000/XP/2003 みたいな区別を付けたいの?
ビルド番号やSPを知りたいの?
英語版/日本語版/International版みたいな違いを知りたいの?
質問する時はもっと明確質問してくれないと、困るよ君ぃ。
556:デフォルトの名無しさん
06/05/08 08:25:04
「困るよ君ぃ」 と言いたいだけなんちゃうかと
557:デフォルトの名無しさん
06/05/08 10:34:05
「Version」は95/98/Me/NT/2000/XP/2003 みたいな区別
ビルド番号は「ビルド番号」
SPは「サービスパック適用状態」
英語版/日本語版/International版みたいな違いは「言語区分」
558:デフォルトの名無しさん
06/05/08 10:49:20
で?
559:デフォルトの名無しさん
06/05/08 10:53:03
「困るよ君ぃ」
560:デフォルトの名無しさん
06/05/08 14:08:02
違いが判別できればええんとちゃう?
561:デフォルトの名無しさん
06/05/08 14:49:51
ていうか、100や200も回答があるわけじゃないんだし
たかが、3つや4つなら、それぞれの回答を書いてやれば良いじゃんw
漏れは調べないと分かんないから、そこまでしてやる気はないが
562:554
06/05/08 18:59:29
すみません。Yahoo検索 - Windows*バージョン*取得で方針が見えてきました。
ExcelVBAからなら、Windowsのバージョンを取得できるみたいなので、
Excelオブジェクトを宣言して使えばとりあえず対応できそうです。
9x系かNT系かで、内部処理を変えたかったもので…。
ちなみに今までは、If WScript.CreateObject("WScript.Network").ComputerName = "~" Then
で、根気よく対応していました。
わざわざMeに、Excelインストールするのが面倒なので、IEオブジェクトでも、似たのが
なかったか探してみます。
レスありがとうございました。
563:デフォルトの名無しさん
06/05/08 19:04:06
>>562
> 9x系かNT系かで、内部処理を変えたかったもので…。
そのくらいなら環境変数 ComSpec で判断すればいいと思うけど。
564:デフォルトの名無しさん
06/05/12 23:23:58
>>529
糞ソフトの宣伝乙
565:562
06/05/21 11:16:51
>>563
WScript.CreateObject("WScript.Shell").Environment.Item("COMSPEC")
できました。ありがとうございましたー
566:デフォルトの名無しさん
06/06/02 00:39:07
wshを最近始めた者です。
CreateObject("Scripting.FileSystemObject").GetFolder(パス).SubFolders
からFor Each 文を使用してサブフォルダのリストを取得出来ますが
For Eachを使わずに・・SubFolders.Item(1)のような形で同じようにパスの
取得をすることは可能でしょうか?
ググってみましたが、For Eachの方法しか見つかりませんでした。
567:デフォルトの名無しさん
06/06/02 01:15:05
コレクションと配列は似ているようで微妙に違うからなぁ
一旦配列に入れてみるとかしか思いつかないや
568:デフォルトの名無しさん
06/06/02 01:19:22
ちょっと調べたところ、Foldersコレクションのキーはフォルダ名になってる模様
569:566
06/06/02 01:35:49
ありがとうございます。
自分も検索して
Folders.Item("MyFolder")のようにフォルダ名を入れれば取得出来ることは確認出来た
のですが・・フォルダ名ではなく整数型で取得は出来ないものかと思っています。
570:デフォルトの名無しさん
06/06/02 01:43:44
できないよ。
やりたいのなら配列に入れ直せ。
571:566
06/06/02 01:52:14
そうですか
ありがとうございました。
572:デフォルトの名無しさん
06/06/02 18:33:56
vbsを勉強したいのですが、みんな何の本で勉強しました?
本屋に行ってもイマイチ良さそうなのが無いので
573:デフォルトの名無しさん
06/06/02 18:42:54
今更 VBS と言うのも……
574:デフォルトの名無しさん
06/06/02 19:46:55
全部ネットで勉強できた
575:デフォルトの名無しさん
06/06/02 20:45:06
>>572
vbs ⊂ WSH … って考えたら (ここ "WSH(・∀・)スレッド! " だし)
スレリンク(win板:2-5番)
大概は
URLリンク(download.microsoft.com)
URLリンク(www.roy.hi-ho.ne.jp)
あたりなのかな?
WSHを始めよう - @IT
URLリンク(www.atmarkit.co.jp)
なんてのも始まったネ。
576:デフォルトの名無しさん
06/06/03 12:12:47
>>572
おれはここから始めたよ
@IT:運用 Windows管理者のためのWindows Script Host入門
URLリンク(www.atmarkit.co.jp)
577:デフォルトの名無しさん
06/06/04 13:06:02
>>575-576
糞サイトの宣伝乙
578:デフォルトの名無しさん
06/06/04 13:49:16
>>577
内容が理解できない = 糞サイト?
579:デフォルトの名無しさん
06/06/04 15:00:24
@ITが糞サイトとか言ってる香具師がいるぞ
580:デフォルトの名無しさん
06/06/04 22:51:43
糞サイトだろ?
581:デフォルトの名無しさん
06/06/04 23:32:43
@ITは結構他では扱っていない内容もカバーしてるから
俺もあそこの情報は重宝してるが、質については弁護できんな。
582:572
06/06/05 09:35:25
レス遅れましたが有難うございました。
紹介して頂いたページで勉強してみます
583:デフォルトの名無しさん
06/06/16 16:38:03
WSHで同じワークグループ内のコンピュータ名を
取得する方法はないのでしょうか?
具体的には、ネットワーク内のあるコンピュータの起動状況を確認して
起動していればネットワークドライブに接続するスクリプトを書きたいのですが・・・
584:デフォルトの名無しさん
06/06/16 17:33:58
> WSHで同じワークグループ内のコンピュータ名を
> 取得する方法はないのでしょうか?
あるよ。
つ Google
585:デフォルトの名無しさん
06/06/16 18:49:26
ググっても見つからなかったのですがorz
とりあえずcscriptの方で動かしてます。
586:デフォルトの名無しさん
06/06/17 10:35:27
URLリンク(www.codecomments.com)
587:デフォルトの名無しさん
06/06/17 11:53:06
set wbemServices = GetObject("winmgmts:{impersonationLevel=impersonate}")
この行のあるプログラムをcscriptで実行しようとしたとき、(実行者はAdministrator)
Server 2003 では問題出ないのですが、2000 Server 上では
(ソースファイル名)(上の行の番号) SWbemServices: アクセスは拒否されました
というメッセージが出て止まってしまいます。
wbemServices や impersonate で検索してみたのですが、
impersonate が権限を取得出来る可能性が高いので推奨
というくらいのことしか分かりませんでした。
何か解決策をご存知の方はいらっしゃいますでしょうか?
588:デフォルトの名無しさん
06/06/17 12:02:58
自己レスです
検索してたら
「SeSecurityPrivilegeが割り当てられている必要があります」
「ない場合は、"Access Denied"がアプリケーションに返されます」
という記述が見つかりました
もう少し調べてうまくいったらご報告します
589:デフォルトの名無しさん
06/06/17 18:12:41
Aフォルダの中にあるファイルとフォルダを全て削除する。
ただしBフォルダ以外。
上記の操作をWSHで可能ですか?
色々調べたんですが、一時的にBフォルダを別の場所に移動
してから一括削除する方法位しか思いつかなくて・・・
590:デフォルトの名無しさん
06/06/17 18:32:51
>>586
さんくす
591:デフォルトの名無しさん
06/06/17 18:54:56
>>589
Aフォルダ自体に削除処理を掛けることばかり考えずに
Aフォルダ以下のSubFolders、Filesをループで削除する処理を作って
そのループの中でBフォルダの名前に一致した場合は削除処理を行わないようにすれば良い。
つーか
> 時的にBフォルダを別の場所に移動
> してから一括削除する方法
に何か問題でもあるの?
別パーティションに移動するとかなら移動処理に時間が掛かるだろうが
Bフォルダのパスを2回書き換えるだけで実際には移動せずに済むんだから、
そういう不都合も無いでしょ。いったい何が不満なの?
592:デフォルトの名無しさん
06/06/17 19:28:36
FAT32なのかもしれん
593:デフォルトの名無しさん
06/06/17 19:33:13
Win2000をサービスパックとか何も入れずに使っているのですが、
何やらXPだとかサービスパックだとかの場合、ADODBが殺されて使えない、
というような話を聞いたのですが本当なのでしょうか?
ADODBを使ったスクリプトを他人のコンピュータ(特にXP)でも動作させたいのですが、どういう状況なのか教えてくださいませ。
594:デフォルトの名無しさん
06/06/17 19:42:58
「Win2000をサービスパックとか何も入れずに」
しね
595:デフォルトの名無しさん
06/06/17 23:17:29
Dim SettingFile1
Set SettingFile1 = ~
Dim SettingFile2
Set SettingFile2 = ~
みたいなのを動的に増やしていきたいのですが、
どうすればいいのでしょうか?
596:デフォルトの名無しさん
06/06/17 23:24:41
配列にする
597:589
06/06/18 04:42:54
>>591
Bフォルダの容量が大きいので、移動は避けたかったんですよ。
で、教えて頂いた通りにやってみるとできました!
objStartFolder =
ShowSubfolders objFSO.GetFolder(objStartFolder)
Sub ShowSubFolders(Folder)
For Each Subfolder in Folder.SubFolders
Set objFolder = objFSO.GetFolder(Subfolder.Path)
ShowSubFolders Subfolder
If not objFolder = objStartFolder & "Bフォルダ" Then
objFSO.DeleteFolder(objFolder),true
End If
Next
End Sub
598:デフォルトの名無しさん
06/06/18 19:49:21
Windows板のスレから移動してきました。質問させてください。
変数に格納されている文字列を元にした名前を持つグローバル関数を定義したいのですが
WSH ではグローバル変数・関数が集まっているオブジェクトって存在するのでしょうか?
(ブラウザでのJavaScript実行環境における window にあたるオブジェクト)
具体的には InternetExplorer のイベントを監視する為に
function observe(s, f) { window["InternetExplorer_On" + s] = f; }
のようなコードを書きたいのです。
Global オブジェクトかな、とも思ったのですが、うちの環境(Windows XP sp2)では
参照しようとするとエラーがでてしまいます。なんで…(´・ω・)
eval を使う手も考えましたが、実行されるのが関数の中なのでグローバルにできません…。
599:デフォルトの名無しさん
06/06/18 20:11:12
マルチ乙
600:598
06/06/18 20:28:20
>>599
いえ、マルチとならないよう、向こうのスレで質問を中止する旨を書き込んだのですが
まずかったのでしょうか…。こちらのスレに移動する、という事も書きました。
601:デフォルトの名無しさん
06/06/18 21:42:38
>>598
代用法はあるが、そのものの方法は無い。
602:デフォルトの名無しさん
06/06/19 19:03:27
開発環境はメモ帳ですか?
603:デフォルトの名無しさん
06/06/19 20:36:15
VS2005
604:デフォルトの名無しさん
06/06/19 23:44:16
おいらはメモ帳派
605:デフォルトの名無しさん
06/06/20 02:26:33
インターネット上のファイル(URLリンク(......))のタイムスタンプを調べて、
更新されていればダウンロードし、「ファイル名+日付.pdf」リネームする
するスクリプトを作りたいんですが、他の部分はともかくネット上のファイルに
アクセスする方法がわからないのですが、何かよい方法はあるでしょうか?
606:デフォルトの名無しさん
06/06/20 03:57:24
取りあえず HTTP で公開されてるファイルには XMLHTTP とか使う。
そもそもそのサーバが最終更新日時をヘッダに含めてくれるのか? とか。
If-Modified-Since ヘッダを使えばできるかもな。
607:605
06/06/21 00:15:12
>>606
XMLHTTPでなんとかアクセスできるようにはなりましたけど、
タイムスタンプの取得がうまくいきませぬ。
If-Modified-Sinceヘッダに関しては、
URLリンク(www.su-jine.com)
こんなサイト発見して、目的のサーバが対応してるところまでは
調べれましたが、問題はそのヘッダをどうやって送るかが、わかりませぬ。
もちろんググッてはみたもののヘッダ送信に関する資料が見つからず・・・。
あればできそうなのに・・・。HTTPの仕様に関する資料とか探せばいいのかな?
とにかく助言ありがとうございました。
608:デフォルトの名無しさん
06/06/21 00:56:28
last_modified = XMLHTTP.getResponseHeader("Last-Modified");
XMLHTTP.setRequestHeader("If-Modified-Since", last_modified);
> もちろんググッてはみたもののヘッダ送信に関する資料が見つからず・・・。
XMLHTTP ヘッダー
でググったら一発で見つかったけど・・・?
609:605
06/06/21 01:08:36
ぐは!本当だ。申し訳なかとです、修行が足りませなんだ・・・。orz
おかげでなんとか出来そうです。
ありがとうございました。
610:デフォルトの名無しさん
06/06/24 15:49:45
スクリプトだと実行できてEXEだと実行できないような状態ってありますか?
611:デフォルトの名無しさん
06/06/24 15:59:39
状態? なんの?
612:デフォルトの名無しさん
06/06/24 18:15:18
>>594
教えてくれたら死にます。なので教えて下さい。
原因はおそらくADODBがIObjectSafetyをサポートしているのでIEから使えてしまう事が原因だと思いますが、これの対策としては
1. ADODBをIObjectSafety非サポートに変更
2. ADODBのレジストリ登録を削除
3. ADODBのモジュール自体を削除
のいずれかだと思います。MSが取った対策はどれですか?
#・・・しかしスクリプトな人達って疲れる・・・(^^;)
613:デフォルトの名無しさん
06/06/24 18:17:56
スクリプトもexeの実行だよ。
関連付け設定していれば、スクリプトファイル(コードを書いたファイル)を実行してるように感じるかもしれないが、
その実、Wscript.exeを実行して、スクリプトファイルを渡すという処理が行われている。
exeが実行できなかったら、.vbsや.jsを実行(ダブルクリック、Enter)したって何も起きない。
614:デフォルトの名無しさん
06/06/24 18:28:19
> 教えてくれたら死にます。なので教えて下さい。
教えたら死ぬという確かな証拠と、
あなたの死後、死んだことを証明するものを提示する手段を明らかにしてください。
>教えてくれたら死にます。
という前提があって
> なので教えて下さい。
という欲求があるのだから、当然前提は明確にしないとね。
615:デフォルトの名無しさん
06/06/24 21:59:11
>>614
お前みたいなレスは一番(゚⊿゚)イラネ
616:デフォルトの名無しさん
06/06/24 22:02:14
>>615
オマエモナー
617:デフォルトの名無しさん
06/06/24 22:11:49
>>615
ID出ない板は便利だね( ̄ー ̄)ニヤリッ
618:605
06/06/25 00:26:49
遅レスでスマソ。
とりあえず、ファイルの更新日時をチェックする部分はできますた。
url = "URLリンク(......)
Set objHTTP = CreateObject("MSXML2.XMLHTTP")
Call objHTTP.Open("GET",Url,False)
objHTTP.send
Last_Modified = objHTTP.getResponseHeader("Last-Modified")
s = split(Last_Modified)
strWeekday = s(0)
strDay = s(1)
strMonth = s(2)
strYear = s(3)
strTime = s(4)
こんな感じで更新日時はゲットできますた。
教えていただいた方にまずは感謝です。
アリガト!(´▽`)
あとはダウンロードするだけですが、
HTMLとかテキストデータをDLする方法はいくつか見かけたのですが、
バイナリファイルのダウンロードの方法はどんな方法があるのでしょうか?
619:デフォルトの名無しさん
06/06/25 00:32:47
おいおい、それくらいちょっと調べればすぐ出てくるだろ?
てか XMLHTTP だけでも(アップロードだが)バイナリデータのがトップだ。
620:デフォルトの名無しさん
06/06/25 00:58:49
普通に取ってデコードする
621:605
06/06/25 01:22:52
>>619
XMLHTTPだけでも~~~
って、ことはXMLHTTPを使えばできるってことですよね?
うーん、.ResponseTextメソッドとか.ResponseBodyメソッドとかを
使うってことですか?
>>620
普通に取ってデコードするってことは、
上記のような方法で取ってきたデータを
なんらかのデコード処理をしたあとでファイルに書き出すということでしょうか?
レスありがとうございました。
まだまだ検索が甘かったようなので、もう一度探しに行っていきます。
622:デフォルトの名無しさん
06/06/25 23:02:37
>>621
バイナリはADODB.Streamで保存する
別にデコードはいらんだろ
623:デフォルトの名無しさん
06/06/26 00:05:45
ADODB.Stream使わないで保存できないの?
624:605
06/06/26 00:28:41
ADOBO.Streemで検索を掛けていたら、
ここにそのまんまな解決方法が載っていました。
URLリンク(www.roy.hi-ho.ne.jp)
ためしにサンプル通りに作ってみたところ見事ダウンロードできました。うはっ!!
もうあまりにまんまでなぜ見つけられなかったか、
自分の不甲斐なさに涙が出てきました。
レスして頂いた方々へ→本当にありがとうございました。m(__)m
625:612
06/07/01 20:28:54
私は以下の掲示板で活動してるAK○という者なんですが、教えていただけないでしょうか?
URLリンク(www.roy.hi-ho.ne.jp)
別のスレや掲示板で聞き直してもいいのですが、たくさんそういう事をすると検索の時に引っ掛かって邪魔だ、とよく言われるので。
626:デフォルトの名無しさん
06/07/10 01:40:01
>625
アロンのトコじゃねぇか、ソコの住人の方が詳しいんじゃね?
627:デフォルトの名無しさん
06/07/29 21:16:12
>>625
糞掲示板の宣伝乙
628:デフォルトの名無しさん
06/08/02 19:47:22
JScript の Array オブジェクトを、VBArray に変換する方法を教えてください
629:628
06/08/02 20:12:57
自己解決。
DynWrap Helper にまんまそのとおりのコードがありました。
630:デフォルトの名無しさん
06/08/15 11:45:30
Microsoft.XMLDOMを利用してxmlファイルを作る場合なのですが
ただ単にappendChildで追加していってSaveすると
<root><item>a</item><item>b</item></root>
というファイルが出来るのですが、これを改行やインデントを入れて
<root>
<item>a</item>
<item>b</item>
</root>
とするには、何をすれば良いのですか?
まさか自前で文字列解析するなんてことはないだろうから
XMLDOMのプロパティなりなんなりでこの辺の設定が出来ると思うのですが
具体的にどうすれば良いのか解りません。ご教示お願いします。
631:デフォルトの名無しさん
06/08/15 15:01:49
>>630
改行や空白もテキストノードの一種だから、データとしては前者の改行が無いものが正しいんだよね。
どうしても整形したいならXSLTで変換かなぁ。勘だけど。
632:デフォルトの名無しさん
06/08/15 19:37:59
>>631も言ってるようにそこはデータだから勝手に整形しちゃいかん。
やるんだったらこう。
<root
><item>a</item
><item>b</item
></root>
633:デフォルトの名無しさん
06/08/15 20:00:52
>>632
それは完全に間違い。
634:デフォルトの名無しさん
06/08/15 20:52:52
>>633
脊髄反射するな。
635:デフォルトの名無しさん
06/08/15 23:05:23
>>630
それらしきプロパティはあって、使えるかと思って以前試したけど
それほど簡単ではなかった。
DOMDocument には PreserveWhitespace というプロパティがあって、これが
falseのとき、ドキュメント内の空白は保存時に自動的にインデントされる仕様。
ところが、インデントする対象が "ドキュメント内の空白" なため、
以下のような既存文書を読んだ場合、
<root>
<item>a</item>
</root>
<root>と<item>の間、</item>と</root>の間は空白扱いなので、
書き込むときも(空白=>インデント変換によって)同様にインデントされるが、
新規に
<root><item>a</item></root>
というデータを作成してsaveしても途中に空白がないので、保存しても
そのままではインデントしてくれない。
仕方がないので、要素をルートから再帰的にたどってタグとタグの間に
テキスト要素がなければ問答無用で1つの空白を挿入するという補助関数
を作って保存前に呼んでた。
636:630
06/08/16 09:50:58
>>631
> 改行や空白もテキストノードの一種だから、データとしては前者の改行が無いものが正しいんだよね。
> そこはデータだから勝手に整形しちゃいかん。
それは違うと思います。確かに改行や空白はテキスト要素として扱われます。
だから<root>をテキストノードとして扱い、余計な改行や空白が入っては拙い場合は、前者の書き方が正しいと言えますが
<root>がエレメントノードであり、テキスト要素を利用しない場合は、テキスト要素に何が入ろうと間違いも問題もありません。
つまり改行や空白を入れれば、それらもテキスト要素として取得されるという仕様なだけの話であり、
テキスト要素に改行や空白を使ってはいけないなんてことはないので、改行や空白が取得されては困る場合だけ避ければ良いことだと思います。
少なくとも>>630後者の記述は、仕様に沿った正しいXMLファイルとして扱えています。
>>633
間違いでは無いと思いますよ。
>>632も>>630後者も、どちらもXMLの仕様には違反していません。
ただ条件付きで>>630後者は、<root>のテキスト要素に改行や空白は入っては拙い場合は不都合があるというだけです。
>>635
ありがとうございます。理想通りに改行&インデントされました。
やはりこういう記述を正式にサポートしてたのですね。
637:デフォルトの名無しさん
06/08/16 10:54:42
EXEにできない時点で糞
638:デフォルトの名無しさん
06/08/16 11:06:57
何処の誤爆だ?
639:デフォルトの名無しさん
06/08/17 05:42:20
EXEにできないヨネ?
640:デフォルトの名無しさん
06/08/17 11:33:48
なぜEXEにできないと糞なの?
Windowsならどんな環境でも大体は実行できるのに。
コード隠蔽したいってこと?
641:デフォルトの名無しさん
06/08/17 17:27:39
>>639
URLリンク(www.vector.co.jp)
642:デフォルトの名無しさん
06/08/17 17:36:51
できるのかーーー
普通のウインドウも作れる?
643:デフォルトの名無しさん
06/08/17 17:59:22
HTA使えば余裕
644:デフォルトの名無しさん
06/08/17 19:42:43
WSHの限界は何処ですか?
645:デフォルトの名無しさん
06/08/17 19:51:16
COMの限界
646:デフォルトの名無しさん
06/08/17 19:53:30
exeにしたければJScript.NETでも使ったほうがいいような気もする
コンパイラ jsc.exe はバージョンの新しい順に
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322
C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705
あたりにある。
とは行ってもWSHのJScriptはほとんどそのままではコンパイルできないね。
647:デフォルトの名無しさん
06/08/17 19:56:34
構造体はありますか?
648:デフォルトの名無しさん
06/08/17 20:04:42
クラスならあります。C#等で定義した構造体は使える。
649:デフォルトの名無しさん
06/08/21 20:42:48
多分スレ違いだけど適当な場所が無いので教えてください。m(__)m
Aというコンピュータのa.batからBのコンピュータのb.vbsを起動させたい。
b.vbsはあくまでもB自身で起動させたいというのがポイントです。
(Bのメモリ空間で実行したい)
どんなコマンドを書けば実行できますか?
ヒントでもいいから教えてもらえると助かります。
650:デフォルトの名無しさん
06/08/21 20:46:58
>>649
> どんなコマンドを書けば実行できますか?
普通に。
651:デフォルトの名無しさん
06/08/21 20:48:37
'普通に。' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
652:デフォルトの名無しさん
06/08/21 23:02:06
>>649
WshControllerというのがあるらしい。
URLリンク(msdn.microsoft.com)
とか
653:デフォルトの名無しさん
06/08/21 23:20:49
>>652
どうもです。m(__)m
WshControllerでぐぐったらいろいろと事例がでてきました。
研究してみます。
654:デフォルトの名無しさん
06/08/22 06:40:04
先輩、
WSHでデスクトップのアイコンの座標を取得できますか?
655:デフォルトの名無しさん
06/08/22 20:11:55
>>654
WScript.exeの機能だけでは出来ませんが、
そういう機能を有するCOMを作れば取得できます。
後のことは、あなたがそのCOMを作るのに使う言語のスレでどうぞ。
COM作れないなら、出来ないってことで諦めるか、勉強して作れるようになりましょう。
656:デフォルトの名無しさん
06/08/22 23:45:56
COM作れば、そりゃ何でも出来るわな。
657:デフォルトの名無しさん
06/08/23 00:12:11
COM作れば、億万長者にもなれますか?
658:デフォルトの名無しさん
06/08/23 06:08:54
COMMAND.COMをつくったゲイツくんはおかねもちになりました。
659:デフォルトの名無しさん
06/08/24 22:52:51
Excel.Run "Macro1"
660:デフォルトの名無しさん
06/08/26 19:08:32
>>639
>>641
でも、一旦EXE化してしまうと、そのファイルを直接メモ帳で修正…って作業が、不可能になる。
使いながら、どんどんVersion UPさせて行くようなスクリプトがWSH/VBSは、特に多いから、メンテ上不利かも。
という事で、VBを持っていれば、Shell()関数で、同じフォルダに在るAutoexec.vbs を自動で読みに行くEXEを
作ってしまうと良い感じです。呼び出す時はEXEでありながら、なおかつ、メンテもしやすい環境になる。
Autoexec.vbs には、VBで作ったEXEファイルから、Drag&Dropしたファイルのフルパス情報を渡すようにしとけば、
ファイルとEXEの関連付け設定をした場合にも、実際には、VBS内で定義したアプリケーションで開いてくれる。
テキストファイルをランダムで、メモ帳/EmEditor/TeraPad/秀丸 に送る環境とかも、簡単にできるし、メンテも楽です。
そう言えば、昔、メモ帳トラッパー.exe ってアプリがあったのを思い出した…
661:デフォルトの名無しさん
06/08/26 19:38:47
>>660
ごめん、そこまでしてEXE化する理由が本当にわかんない。
なぜスクリプトファイルを直に使わないの?
662:デフォルトの名無しさん
06/08/26 20:25:11
>>661
VBSファイルだと、Drag&Dropはできても、Wクリックしたファイルの関連付けはできないですよね。
>>660は、そういう問題に関しての、回避例として簡単&便利かと思って。
VBSは、他の技術と組合わせて使う事で、更に便利になるツールだから、逆にスクリプトとして使う事だけにこだわらなくてもいいと思う。
663:デフォルトの名無しさん
06/08/26 20:31:45
関連付けは普通にできる。
664:デフォルトの名無しさん
06/08/26 20:52:59
> VBSファイルだと、Drag&Dropはできても、Wクリックしたファイルの関連付けはできないですよね。
いいえ出来ますよ。君が無知なのはどうでもいいが、勝手に出来ないことにしないように。
> そういう問題に関しての、回避例として簡単&便利かと思って。
わざわざスクリプトのトラッパーなんか作るより、関連付けの仕様を覚えて使いこなす方が
10倍簡単で100倍便利で1000倍クールです。
> VBSは、他の技術と組合わせて使う事で、更に便利になるツールだから、逆にスクリプトとして使う事だけにこだわらなくてもいいと思う。
それはスクリプトとして使いこなしてる人が言うと納得できる台詞だが、君レベルの人が言うと滑稽なだけ。
665:デフォルトの名無しさん
06/08/26 21:10:52
>>663-664 そうは言っても、
Win2K SP4だけど、
ファイルタイプの編集から、アクションを実行するアプリケーションで、
X:\P114.vbs "%1"を入れても、
指定されたアプリケーションが見つかりませんでした。
ファイル名とパスが正しいかどうか確かめてください。
なんて言われるだけだし。
自分の持ってる知識を組合せて実現して行くのが、その人にとっての一番の
解法だと思う。別に俺の方法が間違ってるってわけでもないもんねー
知ってるか知らないかだけで、そんなに居丈高になれる奴のほうが、気がおかしいんじゃないの?
とは言え、ちょっと恥ずかしいから、ググってくるか…
次の話進んでて構わないよ。
666:デフォルトの名無しさん
06/08/26 21:25:24
>>665
X:\P114.vbs は非実行ファイルだ(アプリケーションでない)から
%SystemRoot%\System32\WScript.exe X:\P114.vbs "%1" %*
のようにしなければならない。
667:デフォルトの名無しさん
06/08/26 22:05:20
スクリプトファイルを動かしてるインタプリタの存在も知らなかったのか
668:デフォルトの名無しさん
06/08/26 22:36:15
>>666
めっちゃレスが早いんですが、もしかして、上の人(>>663-664)と同一人物だったりしますか?
人気スレでもないのに、そんなに人が居るわけもないだろうし…
ありがとうございます。検索中&確認中中だったのですが、まだ解法が見つかってなかったので助かりました。
無事動作を確認いたしました。
基本を忘れていました。
( >>667 また、そーゆー事を…)
669:デフォルトの名無しさん
06/09/25 12:05:56
VBScriptってVBなんだから
With Wscript
.echo "hell world!"
End with
っていうのがなんで出来ないのか?と思ってやってみたら出来た。
670:デフォルトの名無しさん
06/09/25 13:27:37
そういうのはチラシの裏に書け
671:デフォルトの名無しさん
06/09/25 17:26:19
WshShell,RUNの第二、第三パラメーターのデフォルト値って いくつっすか?
URLリンク(www.atmarkit.co.jp)
第三パラメータのデフォルトはFALSEっぽいんだけど、第二がよくわからん。0?
672:デフォルトの名無しさん
06/09/25 20:31:34
まあ普通に考えると 5 (SW_SHOW) だと思うよ
673:デフォルトの名無しさん
06/09/26 00:16:52
今ではまったく使い物にならなくなった第1版が大幅改訂するらしい
-----------------------------------------------------------
『WSHクイックリファレンス 第2版』
羽山 博 著
ISBN4-87311-309-1
定価3,990円
■ロングセラー書の改訂版。最新のWSH 5.6対応に対応して大幅改訂!■
WSH(Windowsスクリプトホスト)を使えば、従来のWindowsバッチファイル
よりも複雑なバッチ処理が可能です。OSレベルで管理されているデータにも
アクセスできるので、システム管理やネットワーク管理にも重宝します。
本書は、WSHの本格的な活用に役立つリファレンスです。Windowsスクリプト
ホストの初歩から応用までを豊富なサンプルとともにていねいに説明します。
最新のWSH5.6対応。
============================================================
674:デフォルトの名無しさん
06/09/27 12:41:25
HSPで中空扇形を書いて中も塗りつぶしたいのですが、どうすりゃいいっすか?
675:デフォルトの名無しさん
06/09/27 19:47:33
いろいろなサイトを閲覧して、ローカルPCに溜まったCookieファイルを、VBScriptで定期的に自動消去する処理は、どうすれば良いでしょうか?
URLリンク(www.happy2-island.com)
ファイルの削除を参考にしてみましたが、Cookieファイルの指定がうまくできませんでした。
676:デフォルトの名無しさん
06/09/27 19:53:47
>675
ブラウザで設定する方が早くね?
677:デフォルトの名無しさん
06/09/27 19:54:12
うまくできないとは?
678:デフォルトの名無しさん
06/09/27 22:23:42
別にWSHでやらなくても、既存のソフトが山ほどあるような。
それをタスクスケジューラに登録すればいいじゃない。
679:デフォルトの名無しさん
06/09/28 03:44:07
スレリンク(hp板:214番)
680:デフォルトの名無しさん
06/10/01 14:31:08
台形の面積を求めたいんだけど、
Option Explicit
Dim A, B, C, D
A = InputBox("上底 cm","値を入力してください")
B = InputBox("下底 cm","値を入力してください")
C = InputBox("高さ cm","値を入力してください")
D = (A + B) * C / 2
MsgBox D & " 平方cm"
これだと、(A + B) のところが2桁の数字の左数字と右数字という文字の関係になってしまい、
計算式として認識してくれないんだが、A + B をどう囲えばいい?
681:デフォルトの名無しさん
06/10/01 14:42:28
CInt とか CCur とか
682:デフォルトの名無しさん
06/10/01 14:44:38
>>680
A,B,CそれぞれCDbl関数で括れば?
683:デフォルトの名無しさん
06/10/01 15:01:32
A か B どちらか一方を数値にすればおk
684:デフォルトの名無しさん
06/10/01 15:20:22
A = CDbl(InputBox("上底 cm","値を入力してください"))
こうすることで、解決できました。
ありが㌧
685:デフォルトの名無しさん
06/10/01 23:27:59
例外処理きちんとしようぜ。
IsNumericっていう便利な関数あるんだから。
686:デフォルトの名無しさん
06/10/02 10:17:57
A=A+0
っていうのでどうでしょ?
687:デフォルトの名無しさん
06/10/02 10:43:37
洒落で言ってるの?
688:デフォルトの名無しさん
06/10/02 12:34:41
>>687
どれがしゃれ?
689:デフォルトの名無しさん
06/10/02 13:10:26
いや、君に聞いてるんだけど。
690:デフォルトの名無しさん
06/10/02 19:40:26
"って、chr(34)で入れるしかないですか?
"""とか"^""とか"\""とか、だめ?
691:デフォルトの名無しさん
06/10/02 19:47:59
WScript.Echo('"');
692:デフォルトの名無しさん
06/10/02 22:06:20
>>690
VBScript の場合は、Chr() 関数を使うしかない。
JScript の場合は、シングルクォーテーションで囲っても良いし
エスケープシーケンスを使って \" と書いても良い。
"\""って発想が出てくる喪前に JScript 。
693:デフォルトの名無しさん
06/10/02 22:11:47
""""
1 文字列囲い開始
2 ダブルクォーテイションのエスケープ文字
3 ダブルクォーテイション
4 文字列囲い閉じ
694:680
06/10/03 08:39:28
>>685 IsNumericの存在を始めてしったが、使いこなせないのが鬱 Or=z__
修行に出るわ
695:690
06/10/03 10:38:54
>>693
さんくす。うまくいきました。
それ、どっかにドキュメントがありますか?
696:デフォルトの名無しさん
06/10/03 18:34:07
ソースだせやゴルア!ってこと?
697:690
06/10/03 19:16:06
>>696
そんな言い方はしてないw
698:デフォルトの名無しさん
06/10/03 19:40:06
>>690
Visual Basic における文字列の基本
URLリンク(msdn2.microsoft.com)
699:デフォルトの名無しさん
06/10/04 08:38:01
SeraphyScriptTools を使って、GUI画面作っているのですが…
URLリンク(www.vector.co.jp)
CommonDialogオブジェクトの
MultiOpenFileDialog
メソッドで配列を取得するんだけどVBのVariant配列が帰ってくるんです。
それでこれをJScript上で取得したいんだけど、方法を知っている方いらっしゃらないでしょうか?
700:デフォルトの名無しさん
06/10/04 09:38:03
>>699
つ URLリンク(hp.vector.co.jp)
701:690
06/10/04 10:35:54
>>698
だんけ
702:デフォルトの名無しさん
06/10/04 16:02:23
URLリンク(d.hatena.ne.jp)
703:デフォルトの名無しさん
06/10/04 17:09:48
>>699
varName = new VBArray(safeArray)
704:699
06/10/04 20:24:45
>703
サンキュ! 解決した!
705:デフォルトの名無しさん
06/10/04 23:31:31
初心者です。初めて質問します。C#からWshを使おうと思っています。
現在、既に開かれているIEのテキストを取得しようと試みています。
そのため、IEのWindowのIEオブジェクトを取得しようと
思っているのですが、その取得方法が分かりません。
Set Shell = Wscript.CreateObject("Shell.Application");
//既に開かれているWindowからIEを探す処理
//IEオブジェクトからテキストを抜き出す処理
DocumentプロパティからIHTMLDocumentを取得するとよい??
大体このような流れだと思うのですが、詳細が分かりません。
どなたかご教授願います。
ちなみにIE6.0.0系を使おうと思っています。
706:デフォルトの名無しさん
06/10/04 23:55:48
>>705
つSystem.Runtime.InteropServices.Marshal.GetActiveObject
流れはおおよそ間違っていないが、WSHは全く関係しない。
707:デフォルトの名無しさん
06/10/05 00:08:36
>706
素早い回答、真に有難う御座います。
この方法を使うとC#から直接COMオブジェクトを利用できると思ってイイですか?
708:デフォルトの名無しさん
06/10/10 00:17:37
>>671
wShell.Run(strCommand, [intWindowStyle], [bWaitOnReturn])
のintWindowStyleのデフォルトを調べてみました。
関連付けのコマンドラインに、%Sを指定すると、ここに、WindowStyleが入ります。
ダブルクリック 1
ドロップ 5
wShell.Run 1
CMD.EXE /C 1
START /MIN 7
START /MAX 3
でした。
709:690
06/10/12 10:42:56
>>708
ってことは、1ですかね?どうもありがとうございまs
710:デフォルトの名無しさん
06/10/12 12:23:32
10 ではないだろうか
711:デフォルトの名無しさん
06/10/13 16:36:50
10じゃなくて1のようです。
712:デフォルトの名無しさん
06/10/18 00:15:06
WindowsのGUIからではなくコマンドまたはスクリプトを用いて
各インターフェイスの「Microsoft ネットワーク用ファイルとプリンタ共有」
のチェックを外す事は可能でしょうか?
ローカルエリア接続が出来れば結構です。
netshやサービスのコマンドを見てみてもそれらしき、項目はありませんでした。
どなたか教えてくださいm(_ _)m
713:デフォルトの名無しさん
06/10/18 02:21:10
>>712
Windows XP SP2なら
netsh firewall set service FILEANDPRINT DISABLE
とやればWindowsファイヤウォールの設定によって
同等の効果が得られそうだけど、
スクリプトでやるとしたらWMI使ったりレジストリ操作したりで面倒そう。
714:デフォルトの名無しさん
06/10/18 21:17:37
>>713
ありがとうございます。
OSはWinXPSP2ですが、各インターフェイスごとというのが難しいようですね。
例えば無線LANでは有効、有線LANでは無効といった使い方をしたいんです。
715:デフォルトの名無しさん
06/10/21 13:59:22
うろおぼえなのですが、マウスの右クリックと同じ動作をさせるInvokeとかなんとかっていう機能があったような。
あんまり関係ないでしょうか?
716:デフォルトの名無しさん
06/10/25 01:01:48
wshでセットした変数をバッチスクリプトで使うには
environmentを使えばいいのでしたっけ?
717:デフォルトの名無しさん
06/10/25 01:38:14
>>673
これってどうなの?
718:デフォルトの名無しさん
06/10/25 11:10:37
全然ダメ
719:デフォルトの名無しさん
06/10/25 19:49:07
sendkeysは左右のshiftとctrl(各々個別に)が使い分けられない事を知った。
Sendinputやらkeyeventやらのモノがあるらしいが、どこ見ても難しい;;
ぶっちゃけ↓だけメモ帳にいれて.vbsにすると、実行されるじゃない?
msgBOX "aaaaa"
ま、ここまで簡単でなくとも、も少し簡単な例はないですか?
720:デフォルトの名無しさん
06/10/26 18:02:16
ようやくHTAの引数の読み込み方が分かった…
721:デフォルトの名無しさん
06/10/26 18:03:21
シマタ誤爆。
722:デフォルトの名無しさん
06/10/26 23:46:40
( ´_ゝ`)フーン
723:デフォルトの名無しさん
06/10/28 21:44:40
>>720
ちなみに、WSHと同じく、Arguments で取得できたりするの?
724:デフォルトの名無しさん
06/10/28 22:42:40
>>723
資料読めばわかるけど、HTA の設定をするための <HTA:APPLICATION /> タグってのがある。
これに id 属性を設定すると、設定した id を使って
スクリプト中からこのタグを表したオブジェクトにアクセスできるようになる。
<HTA:APPLICATION id="app" applicationname="MyApplication" />
こうすると、例えば JS では app.applicationName で "MyApplication" が参照できる。
んで、このオブジェクトの commandLine プロパティに起動時のコマンドライン文字列が入ってる。
調べた限りでは、引数が取得できるのはこのプロパティを通してのみで、
自動的に Arguments のように配列にわけてくれたりはしない。
725:723
06/10/29 00:15:11
>>724
丁寧にありがとう。
726:デフォルトの名無しさん
06/10/29 00:20:36
誤爆っていってんだから紛争地域にいってやれよ
スレリンク(tech板)
727:デフォルトの名無しさん
06/10/29 13:09:19
いや向こうのスレからネタ拾ってきたんでしょ。
それに紛争している訳でもないし。
728:デフォルトの名無しさん
06/11/02 00:18:45
外部からVBスクリプトで書かれた関数を呼び出すにはどうしたらよいでしょうか?
例として、
cscript hoge.vbs foo
(hoge.vbsのモジュール的な箇所は実行しつつもfoo関数を呼び出す)
729:デフォルトの名無しさん
06/11/02 00:25:45
モジュール的な箇所にfoo関数を呼び出すコードを書く
730:デフォルトの名無しさん
06/11/02 00:27:11
.vbs でなく .wsf にVBSを書くようにして
cscript hoge.wsf //job:foo
のようにする。
731:デフォルトの名無しさん
06/11/02 00:46:50
コマンドラインの第1引数に少し文字列付け足して、Evalに渡す。
732:デフォルトの名無しさん
06/11/02 00:49:01
>>729,730
貴重な情報ありがとうございます。
どちらの方法もよさそうなのでとりあえず両方作ってみようと思います。
ありがとうございました。
733:デフォルトの名無しさん
06/11/02 00:50:37
>>731
引数を渡して内部で関数を呼び出すカンジですよね。
勉強も兼ねているので色々試してみたいと思います。
ありがとうございました。
734:デフォルトの名無しさん
06/11/02 01:37:53
>>733
完成したら、さらしてね
735:デフォルトの名無しさん
06/11/03 21:48:05
>>728
VBscriptハッカーズマニュアルの続編の本に、
Executeメソッド内に、他のvbsプログラム(←関数の集まりを入れておく) を実行するコードを書いておくっていう裏技を紹介してた。
これで、vbsから、別のvbs内の関数を使える。
でも、呼び出されるvbsコード内に、不要なコードが入ってると、それも実行されてしまうみたいなので、
>>730 のように、wsfとか、htaから呼び出すのが、基本みたい。
736:デフォルトの名無しさん
06/11/03 21:55:39
WshShortcut オブジェクトのRelativePathってどう使うんでしょう?
設定は出来ても、参照はできず、実行もできないみたい。
737:デフォルトの名無しさん
06/11/04 18:42:49
>>736
ちゃんと実装されてないのでは
738:デフォルトの名無しさん
06/11/04 18:52:42
バッチファイルにJScriptを埋め込む例(※参照)。
バッチファイルの拡張子は .cmd で。
@if (0)==(0) echo off
setlocal
set me=%0
cscript.exe //nologo //e:jscript %me:.cmd=%.cmd %*
goto :eof
@end
// ここからJScript
var args = WScript.Arguments;
for (var i = 0; i < args.length; i++)
WScript.Echo(i, args(i));
※↓
スレリンク(tech板:100番)
スレリンク(tech板:72番)
739:デフォルトの名無しさん
06/11/04 19:23:08
そんな枯れた情報をいきなり書かれてもねぇw
740:デフォルトの名無しさん
06/11/04 21:09:03
しかも、情報が劣化してる。変なことせずとも、
CScript.exe //NoLogo /E:JScript "%~f0"
でよい。
741:デフォルトの名無しさん
06/11/04 21:14:11
あれ、//Eでなくても通るのね。訂正。
CScript.exe //NoLogo //E:JScript "%~f0"
742:デフォルトの名無しさん
06/11/04 21:30:18
では、こんなのも。バッチでクリップボードを処理する例。
@ECHO OFF
FOR /F "delims=" %%0 IN ('MSHTA.EXE "javascript:var s=clipboardData.getData('text');if(s)new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(s);close();"') DO ECHO %%0
でも、これ、WSHじゃないな。
743:デフォルトの名無しさん
06/11/04 21:45:40
FileSystemObject ObjectのGetStandardStreamって日本語版の
Windows Script V5.6 ドキュメント(Script56.CHM)には載ってないよね
744:デフォルトの名無しさん
06/11/04 21:47:57
MSDNライブラリ参照
745:デフォルトの名無しさん
06/11/04 21:57:22
MSDN見ても日本語では載ってないから英語版のscript56.chmでいいや
746:デフォルトの名無しさん
06/11/07 02:01:01
wscript実行時に窓に表示される
バージョン情報と、~All rights reserved の文字を
表示させないようにすることはできますか?
ご教示ください。
747:746
06/11/07 02:20:21
すいません。解決しました。
//nologo ですね。
748:デフォルトの名無しさん
06/11/13 02:26:09
WScript.ShellのRegWriteメソッドで、バイナリ値で「00 00 00 00」を書き込む方法を教えてください。
.regに書き出して結合するとかreg.exeやWMIを使うとかではなくRegWriteでの方法です。
WinXP/WSH5.6
749:デフォルトの名無しさん
06/11/13 09:10:43
>>748
var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.RegWrite ("HKCU\\Software\\company\\application\\bin_value", 0, "REG_BINARY");
750:748
06/11/13 17:49:22
>>749
回答ありがとうございます。しかし、それだと「00 00」になるんです。
そして第二引数をCByte(0)にすると、「00」になります。
この板の方なら、同じ0でも、「00 00」と「00 00 00 00」の意味が違うことは
解ってると思いますが、望む結果は「00 00 00 00」なんです。
WMIだとArray(0,0,0,0)を書き込むことで「00 00 00 00」になるんですが
これと同じ結果をRegWriteで行いたいと言うことです。
引き続きよろしくお願い合います。
751:デフォルトの名無しさん
06/11/13 19:20:09
>>750
やってみれば簡単に理解できると思いますがJScriptなら 4バイトになるぞ。
しかし、CByte()を知ってるのにCLng()を思いつかないとは・・・
752:デフォルトの名無しさん
06/11/13 21:38:12
イメージ名で指定して、そのプロセスが動いているかどうか判定したいのですが、
wshでできるでしょうか。
できるならその方法を教えていただきたいです。
753:デフォルトの名無しさん
06/11/13 21:50:21
WMI 使えば出来るな。
Win32_Process
754:752
06/11/13 22:38:52
ありがとうございます
755:デフォルトの名無しさん
06/11/15 14:23:49
スレリンク(charaneta2板)
756:デフォルトの名無しさん
06/11/17 20:55:41
Windows PowerShell Version 1.0
URLリンク(www.microsoft.com)
URLリンク(www.microsoft.com)
ell/default.mspx
757:デフォルトの名無しさん
06/11/18 00:22:30
VBscriptもしくはVB6.0でバイナリデータのファイル操作ってできますか?
758:デフォルトの名無しさん
06/11/18 00:25:41
っOpen
759:デフォルトの名無しさん
06/11/19 00:20:45
IEを起こして取れますが、遅いので、
Set Document=CreateObject("htmlfile")
Document.write "<input type=text id=xxx>"
Document.all.xxx.value="ほげほげ"
MsgBox Document.all.xxx.scrollWidth
で、文字列の表示幅を取ろうとしたのですが、0しか返って来ません。
"htmlfile"は、ウィンドウを持たないので、~Widthなどは取れないってことでしょうか?
760:デフォルトの名無しさん
06/11/19 00:49:40
>>759
<INPUT>エレメントの持つプロパティで、
それっぽいのは offsetWidth かな?
scrollWidthやめて、offsetWidth にしたらどう?
761:デフォルトの名無しさん
06/11/19 18:13:52
VBscriptで
A=150
Dim B(A)
Dim C(A)
Dim D(A)
というふうに配列宣言時、添え字の数字に変数を使いたいのですが、エラーになります。
解決方法を教えて下さい。
762:デフォルトの名無しさん
06/11/19 18:33:39
Dim A
A = 150
ReDim B(A)
ReDim C(A)
ReDim D(A)
763:デフォルトの名無しさん
06/11/19 20:52:54
>>762
俺もそう思ったw
764:761
06/11/19 21:53:39
>>762
そうやってもエラーになります
765:761
06/11/19 21:56:40
すいません勘違いでした。無事できました。
766:デフォルトの名無しさん
06/11/21 22:30:28
StrCnvさえ使えたら
767:デフォルトの名無しさん
06/11/21 22:49:45
うちではVBSで使ってるよ。>>VBランタイム内のStrCnv
768:デフォルトの名無しさん
06/11/21 23:24:09
>>767
kwsk
769:デフォルトの名無しさん
06/11/23 00:32:32
>>766
>StrCnvさえ使えたら
なにがしたいの?なくても困ること特にないけど。
770:デフォルトの名無しさん
06/11/23 11:45:18
そんなこと言ったらWSH自体使わなくても(r
771:デフォルトの名無しさん
06/11/23 15:48:49
>>767
VBで、VBの内部オブジェクトを公開するCOMを作ったことあるけど、
MSはそういう使い方保証してないし、開発ライセンスのないひとに
そのCOMを提供するのはどうかなというのと、
どうしても必要ということがなくてやめた。
>>766
VB持ってたら作ってみたら。
EXCELなど持ってたらVBAでも同様のことできるのでは。
772:デフォルトの名無しさん
06/11/25 19:05:25
直接使えばいいのに
773:デフォルトの名無しさん
06/11/29 15:52:47
子供の為にPCの起動を監視する(起動したら掲示板に「起動しました」と書き込む)スクリプトを書いているのですが、
レジストリのローカルマシーン(都合があって)の方にスタートアップを登録したのですが、うまく起動しないことがあります。
通常の起動なら大丈夫なのですが、スタートアップだと1/5ぐらいの確立でしか起動してくれないです・・・
xmlhttpを使ってます。
774:デフォルトの名無しさん
06/11/29 16:21:55
>>773
コード貼り付けてよ
775:デフォルトの名無しさん
06/11/29 17:02:41
>>773
ネットワークがUPしてないんだろ。1分くらいしてから処理開始しなよ。
あとそれたとえ相手が自分の子供でも犯罪行為だから。
こんな人間がいるとは、リアルで気分悪くなった。
776:デフォルトの名無しさん
06/11/29 17:20:18
>>773
イベントビューアでログ見れば済む事を
なぜわざわざ掲示板に書かせるんだね?
777:デフォルトの名無しさん
06/11/29 20:11:20
ヒント: 自分の子供じゃない
778:デフォルトの名無しさん
06/11/29 20:52:30
ヒント: 子供云々は口実で、本当はストーカー行為目的。
779:デフォルトの名無しさん
06/11/29 22:25:06
一応WScript.sleep で120000ミリ秒待機するようにしてます
犯罪行為になるならば、HD上にログに残す方法でやるしかないんでしょうね
確かにキーロガーとか仕込めばストーカーですね
780:デフォルトの名無しさん
06/11/29 22:28:53
だからイベントビューア
781:デフォルトの名無しさん
06/11/30 18:36:23
きっとお兄さんたちに人気がありそうな容貌をした小学生のお子さんなんだろう
だとしたらそこまでして監視したいという気持ちもわかる
がやっぱ気分悪いな
782:デフォルトの名無しさん
06/11/30 21:08:54
ここにいるのはお子様ばかりか?
俺はすべてのファイルを監査対象にして、何をいつ触ったかまで細かくフルロギング!
もちろん監査ログは5分おきに携帯へ逐一転送。
万一の場合にはリモートから即座にシャットダウン可能です。
まあ、愛する我が子を危険なインターネットから守るにはこのぐらいして当然ですよね。
783:デフォルトの名無しさん
06/11/30 21:12:38
>>782
まだまだヒヨっ子だなw
784:デフォルトの名無しさん
06/11/30 21:44:29
楽しい釣り場でつね
785:デフォルトの名無しさん
06/11/30 22:06:11
うん。
でも釣る側の俺は楽しいが、
釣られる奴等は悔しがってるんだろうなw
786:デフォルトの名無しさん
06/12/06 04:02:33
統合アーカイバのKBAってちゃんと動く?
Path = "C:\\DATA\\PROG\\WSH\\KBA\\test.zip"
Set UnZip = CreateObject("KBA.UNZIP")
Result = UnZip.FileCount(Path)
WScript.Echo Result
Result = "" & UnZip.OpenArc(Path)
WScript.Echo Result
こういうのをやると、FileCount()は動くのに、OpenArc()は動かない。
OpenArc()が動かないとファイル情報系のメソッドが全く使えない。
787:786
06/12/07 02:09:01
ProgIDが"KBA.UNZIP"だからUNZIP32.DLLだけあればいいかと思ったけど違った・・・orz
788:デフォルトの名無しさん
06/12/15 17:09:58
Windows板で質問して、WSHなら出来そうって事でやってきました。
やりたい事は、
ショートカットなどをダブルクリックするごとに、
1)タスクバーを自動的に隠す設定にする。
2)1を解除。
というものです。
WSH無しでもいけそうならお教えいただけるとありがたいです。
ググってみたのですが、WSH関係のサイトにタスクバーについて
の処理というのが見つけられず、困っている次第です。
よろしくおながいします。
789:デフォルトの名無しさん
06/12/15 17:43:51
SHAppBarMessage 使うアプリを書いてそれを呼び出す
790:デフォルトの名無しさん
06/12/15 18:01:16
メニューでやってることを、SendKeysでやらせる。
or
レジストリの変更箇所を見つけて、RegWriteで書き換える。+ 即反映の何か。
791:こんな時間まで何やってんだろ俺.wsf
06/12/16 04:10:35
<job>
<script language="JScript">
function deRLE(src){
return src.replace(/\s/g,"").replace(/(.)\.(.)/g,function($0,$1,$2){
return Array(parseInt($2,35)+(($2<"A")?56:($2<"a")?-6:20)).join($1);});}
</script>
<script language="VBScript">
Set fso=CreateObject("Scripting.FileSystemObject")
path=fso.BuildPath(fso.GetSpecialFolder(2),"SwHide.exe")
Set elm=CreateObject("Microsoft.XMLDOM").createElement("data")
elm.DataType="bin.base64":elm.text=deRLE(getResource("bin"))
With CreateObject("ADODB.Stream")
.Open:.Type=1:.Write elm.NodeTypedValue:.SaveToFile path:.Close
End With
CreateObject("WScript.Shell").Run path,1,True
WScript.Sleep 1000:fso.DeleteFile path
</script>
<resource id="bin">
TVqQAAMA.BEA.B//8AALgA.GQA.syA.C4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm
5vdCBiZSBydW4gaW4gRE9TIG1vZGUuDQ0KJA.HvsN/Fa9GxlmvRsZZr0bGWqN7slm7RsZZr0
bCWadGxlkwXw5Zp0bGWTBfJlmrRsZZSaWNoa9GxlgA.RBQRQAATAEDADWwgkUA.HOAAAwELA
QgAAAIA.BEA.GBA.CQA.BIA.CBA.BQA.CgAABA.HEA.HBA.CBA.GIAAAQAABAAABA.DEAAAE
A.FBA.MBAgAAA8A.9A.tIAAAEA.hC50ZXh0A.BRQA.CQA.CgA.BQA.PCAAAGAucmRhdGEAAJ
YA.CIA.CIA.BGA.PBAAABALmRhdGEA.BEA.CDA.bQAAAwA.9A.9A.9A.9A.9A.9A.9A.9A.9
A.dIPsJFaLNQggQACNRCQEUGoEx0QkDCQAAADHRCQQA.CP/WD7bIg/H/jVQkBIPhAVKDyQJq
ColMJCz/1moA/xUAIEAAXgA.9A.9A.9A.9A.9A.9A.9A.9A.9A.LXCA.FB4IA.FEwgA.KGog
A.BIAAAVCA.LiiA.BggA.aFwgA.FeCA.FC5AEV4aXRQcm9jZXNzAEtFUk5FTDMyLmRsbAAAd
gBTSEFwcEJhck1lc3NhZ2UAU0hFTEwzMi5kbGwA.9A.9A.9A.9A.9A.9A.9A.h=
</resource>
</job>
792:デフォルトの名無しさん
06/12/16 04:26:22
>>791 のバイナリ部分も一応書いとくね
#include <windows.h>
#include <shellapi.h>
void WINAPI WinMainCRTStartup()
{
APPBARDATA abData;
abData.cbSize = sizeof(APPBARDATA);
abData.hWnd = NULL;
if (SHAppBarMessage(ABM_GETSTATE, &abData) & ABS_AUTOHIDE) {
abData.lParam = ABS_ALWAYSONTOP;
} else {
abData.lParam = ABS_AUTOHIDE | ABS_ALWAYSONTOP;
}
SHAppBarMessage(ABM_SETSTATE, &abData);
ExitProcess(0);
}
793:デフォルトの名無しさん
06/12/16 04:39:04
マジで何やってるんだかw
794:デフォルトの名無しさん
06/12/16 10:27:55
何これ?
795:デフォルトの名無しさん
06/12/16 11:30:57
おもしろいけど
実行ファイル生成するんだったら
次回からそれ実行した方がはやいよなww
796:デフォルトの名無しさん
06/12/16 14:04:03
>>791
せめて.NETかPowerShellにならん?
797:デフォルトの名無しさん
06/12/16 14:11:46
>>791 5行目訂正
parseInt($2,35) → parseInt($2,36)
それと>>792のコード自体がXPじゃないと動作しないみたいですね。
データがほとんど0(A)だったんで適当にRLE圧縮してみたんだけど
もっとかっこいい圧縮スクリプトって無いかな?かな?
798:デフォルトの名無しさん
06/12/16 14:14:15
>>796
なぜ、このスレで聞くww
799:デフォルトの名無しさん
06/12/16 14:20:25
WSCで定数を公開する方法を教えてください。
現在は読み取り専用のプロパティで固定数を返してますが
FileSystemObjectのForReadingやADODB.StreamのadTypeBinaryのように
インスタンスのメンバとしてではなく、そのまま書けば使えるようにしたいのです。
800:799
06/12/16 14:20:47
▼public要素(公開メンバ)
<public>
<method name="hoge">
<parameter name="arg"/>
</method>
<property name="foo">
<get/>
</property>
<property name="bar">
以下略
▼WSCスクリプト
Public Sub hoge(arg)
End Sub
Public Function get_foo
get_foo = 1
End Function
Public Function get_bar
get_foo = 2
End Function
以下略
▼呼び出し側スクリプト
Call obj.hoge(obj.foo)
現在こんな感じですが、呼び出し側で
Call obj.hoge(foo) で同じ効果が出せるようにしたいのです。
もちろん呼び出し側で定数宣言しろとかは無しで。
FileSystemObjectやADODB.Streamも宣言無しで定数を使えるので、
それと同じようにしたいのです。
801:デフォルトの名無しさん
06/12/16 15:59:58
WSC側で、JScriptで、
function xconst(Me){
Me['xxx']=111;
Me['yyy']=222;
}
呼び出し側で、VBScriptで、
wsc.xconst Me
とすれば、xxxやyyyが使えるようになる。
JScriptなら、wsc.xconst(this);
802:799
06/12/16 16:21:03
>>801
回答ありがとうございます。しかし、そういう事ではなくて、先にも書いたように
FileSystemObjectやADODB.Streamなんかの定数と同じように使いたいんです。例えば
<job>
<reference object="Scripting.FileSystemObject"/>
<script language="VBScript">
WScript.Echo CreateObject("Scripting.FileSystemObject").OpenTextFile(WScript.ScriptFullName, ForReading).ReadAll
</script>
</job>
という感じでForReadingが使えるように、呼び出し側のスクリプトで何かするのではなく
reference要素の設定だけで定数を使えるようにしたいのです。
reference要素の設定をしなければFileSystemObjectやADODB.Streamの定数も宣言無しには使えないので、
「FileSystemObjectやADODB.Streamと同じように」というのは「reference要素の設定だけで」という意味で使ってます。
引き続きよろしくお願いします。
803:デフォルトの名無しさん
06/12/16 16:32:35
>>802
>引き続きよろしくお願いします。
やっぱりな。そう来ると思ったよ。
スレ違い。MSに言え。
804:デフォルトの名無しさん
06/12/16 16:40:56
wscじゃむりなんじゃね?
つーかFileSystemObjectのForReadingってただの整数で定数じゃないんじゃ?
adTypeBinaryは定数ったってCOMの実装でenumなんでしょ
805:799
06/12/16 16:51:36
>>803
お手数お掛けしました。
今後は他の方の回答を待ちますので私のことは無視してください。
>>804
リファレンスには定数と書いてあったので、定数だと思い込んでました。
どちらにしてもForReadingと同じ使い方が出来れば良いだけなのですが。
「無理なのでは?」という意見をいただけるのもありがたいのですが、
失礼ながら他の方が知ってる可能性もあるので、もうしばらく待ちます。
806:デフォルトの名無しさん
06/12/16 16:52:28
可読性にこだわるなら数値のかわりに文字列を使えばいいじゃない。
807:デフォルトの名無しさん
06/12/16 17:04:50
>>799
無視できるように、コテハン使ってください。
例えば、
「引き続きよろしくお願いします。」
「木に縁(よ)りて魚を求む」
808:デフォルトの名無しさん
06/12/16 17:12:34
徳川埋蔵金を信じている人に何を言っても無駄ですよ。>みなさん
809:デフォルトの名無しさん
06/12/16 17:13:11
ハンドルじゃないけど名前欄に799って入れてるんだからこのスレ指定で799という名前を消せばいいじゃん
スレ単位での無視条件設定できない糞専ブラ使ってるとかならそれはそういうソフト選んだ自分の責任だ
というか嫌味なコテ押しつけたいだけか?
810:デフォルトの名無しさん
06/12/16 17:23:39
過疎スレで熱くなるなよ
811:デフォルトの名無しさん
06/12/16 17:29:20
いいえ、今後は、でなく、最初から無視したいから、スレッドを超えたコテハンにして。
と言ってるのですよ。参考、検索「引き続きよろしくお願いします。 」
だって、どんな答えもそれは私の求めているものとは違う、というだけなんですよ。
最初から、条件を明示すればよいのに。
「代替方法の提案や出来ないという回答は不要」というふうに。
812:デフォルトの名無しさん
06/12/16 17:40:27
この子、どうしたんだろう?
813:デフォルトの名無しさん
06/12/16 18:49:51
>>811
あなたを無視したいから「スレッドを超えたコテハン」とやらにして。
って煽って欲しいんじゃない?
814:デフォルトの名無しさん
06/12/16 18:53:59
>>811
あなたを無視したいから「スレッドを超えたコテハン」とやらにして。
815:デフォルトの名無しさん
06/12/16 20:21:09
>>811
あなたを無視したいから「スレッドを超えたコテハン」とやらにして。
816:デフォルトの名無しさん
06/12/16 20:30:03
次のWSHのネタをどうぞ
↓
817:デフォルトの名無しさん
06/12/16 20:39:12
WSHで811みたいな根暗で陰気な奴を消す方法を教えてください
818:デフォルトの名無しさん
06/12/16 21:06:02
そういうCOM作って呼び出しなさい。
819:デフォルトの名無しさん
06/12/16 21:28:47
自分では上から見下ろし、バカな質問者を叩く側だと思ってたのに
何を間違えたか皆から見下され、叩かれる立場になってしまった811(´・ω・) カワイソス
820:デフォルトの名無しさん
06/12/16 21:40:07
どこが?上から見下ろし、バカな質問者を叩く側だと見えんけど
821:デフォルトの名無しさん
06/12/16 21:49:31
最初っから上に居るようには見えないってか
822:デフォルトの名無しさん
06/12/16 21:59:49
見方がおかしいのかなぁ
スレリンク(win板:103-番)
と同じ流れだと言ってるんでしょ
823:デフォルトの名無しさん
06/12/16 22:01:21
なんだ811本人かw
824:デフォルトの名無しさん
06/12/16 22:03:18
もう諦めろ
お前は玩具側の人間だ
825:デフォルトの名無しさん
06/12/16 22:07:40
. .: : : : : : : : :: :::: :: :: : :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
. . : : : :: : : :: : ::: :: : :::: :: ::: ::: ::::::::::::::::::::::::::::::::::::::
. . .... ..: : :: :: ::: :::::: :::::::::::: : :::::::::::::::::::::::::::::::::::::::::::::
Λ_Λ . . . .: : : ::: <こんなはずでは・・・・・
/:彡ミ゛ヽ;)ー、 . . .: : : :::::: :::::::::::::::::::::::::::::::::
/ :::/:: ヽ、ヽ、 ::i . .:: :.: ::: . :::::::::::::::::::::::::::::::::::::::
/ :::/;;: ヽ ヽ ::l . :. :. .:: : :: :: :::::::: : ::::::::::::::::::
 ̄ ̄ ̄(_,ノ  ̄ ̄ ̄ヽ、_ノ ̄ ̄ ̄ ̄
>>811
826:ひとりぼっちのクリスマス
06/12/16 22:15:38
.: : : : : : : : :: :::: :: :: : :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::☆:::::::+::::::::::::::
. . : : : ::::/⌒ヽ: ::: :: : :::: :: ::: ::: :::::::::::::::::::::::::..,,::。:+:::::::::::::::::::::::
. .... ..::::/ <`O:: :: ::: :::::: :::::::::::: : :::::::::::::::::::+,::o;;::・;,:::::::::::::::::::::
⊂ニニニ⊃. . .: : : ::: : :: ::::::::: ::::::::::::::::..<;;::・,,::;ゞ;;o;*::.:::::::::::
/:彡ミ゛ヽ;)ー、. . .: : : :::::: ::::::::::::::::,,;;;<;+::;;;´;*::o*:,,;;ゞ;;::::::::
./ /ヽ/ヽ、ヽ i. . .: : : :::::::: :::::::::::;;;*;;;〇;ゞ;*::;;:<;;;*;:;ゞ;;o;
/ / 。 ヽ ヽ l :. :. .:: : :: ::<;;;;〇;ゞ;*::o,ゞ ;*;;;;*ゞ;*:o
 ̄(_,ノ  ̄ ̄ ̄ヽ、_ノ ̄ ̄ ;;;*;;;〇;ゞ;*::;;;;;*ゞ;*::o, 〇;;; *
>>811 : : : : : : llllllll : : : : : :
田田田
827:デフォルトの名無しさん
06/12/16 22:18:04
おまえら便乗しすぎw
828:デフォルトの名無しさん
06/12/16 22:37:03
811の人気に嫉妬
829:デフォルトの名無しさん
06/12/16 22:41:37
もうWSHと関係ない話は別のところでやってくれ
830:デフォルトの名無しさん
06/12/16 23:39:12
Public Const get_foo=1
のほうが簡単。
831:デフォルトの名無しさん
06/12/17 01:05:03
wsfファイルのサイズが500KB超えると開けなくなるみたいだ。残念。
832:デフォルトの名無しさん
06/12/17 18:37:43
なーおまいら、>>830って通るか?
うちじゃエラーになるんだが
833:マチルダ
06/12/19 10:37:20
WSHでIEオブジェクトを作成してそれのProcessIDを取得する方法を教えて欲しいのですが。
今は下記の手順でブラウザにキー送信をしていますが、「タイトルの文字列」が変更した場合には通用しません。
なので、ProcessID指定で確実にSendKeysをしたいのです。
InternetExplorer.Application + ProcessIDでぐぐっても見つけられませんでした。
要はProcessID指定で確実にブラウザにSendKeysしたいんです。
よろしくお願いします。
Set IE = WScript.CreateObject("InternetExplorer.Application","IE_")
Set sShell = WScript.CreateObject("WScript.Shell")
sShell.AppActivate("ブラウザのwebページのタイトル文字列")
sShell.SendKeys "ほげほげ"
参考にしたページ
URLリンク(www.atmarkit.co.jp)
> 一方のプロセスIDは、Execを使って起動したプログラムでは、WshScriptExecオブジェクトのProcessIDプロパティから取得できる。