WSH(・∀・)スレッド!
..
211:デフォルトの名無しさん
05/05/09 20:16:32
>>210
当初 >>203 で言っていた「あるレジストリキー」というのがいくらかでも
特定されたものであれば、レジストリキーの有無で条件分岐できるだろうと
いうこと。今回言っているように、どのようなキーが存在するかさえ不明で
あれば >>208 の示した手段がベター。
212:デフォルトの名無しさん
05/05/09 20:56:52
>206
エラーの出そうな操作の直後に
if err<>0 then
〜
end if
でエラーの場合の動作を(msgboxとかexit doとか)。
213:デフォルトの名無しさん
05/05/09 23:32:34
>>211
すいません、レジストリキーの有無ってどうやって調べるんですか?
214:デフォルトの名無しさん
05/05/11 21:46:18
キーをオープンしてみれば分かる
215:デフォルトの名無しさん
05/05/11 21:46:36
>>213
そのくらい調べりゃすぐ分かるだろ
自分で調べろよ
216:デフォルトの名無しさん
05/05/14 10:59:37
すいません、キーはどうやってオープンすればいいのか…
217:デフォルトの名無しさん
05/05/14 18:33:51
キーを読み取ってみてエラーが発生したら分岐させる?
218:デフォルトの名無しさん
05/05/16 18:58:29
急速にスレの質が低下してまいりました
219:デフォルトの名無しさん
05/05/17 14:07:51
急速という割には、ペース遅すぎな希ガス
220:デフォルトの名無しさん
05/05/20 13:45:42
スレッドストッパーの俺様が来ましたよ
221:デフォルトの名無しさん
05/05/20 22:35:57
そこでスレッドリバイバーの漏れ様の登場ですよ
222:デフォルトの名無しさん
05/05/20 23:09:32
そこでハイパースレッディングな俺様の登場ですよ!!
223:デフォルトの名無しさん
05/05/23 01:18:56
おまいらちっとはwsh使へ
224:デフォルトの名無しさん
05/05/23 23:05:05
いやぷぅ(~o~)
225:デフォルトの名無しさん
05/05/24 23:12:11
バッチファイルと違って、タスクマネージャくらいからしか強制終了できないのが辛い。
あとは時間指定ぐらいですかね?
でも、環境によって実行時間が違ってくるから時間による終了は入れたくないなぁ。
226:デフォルトの名無しさん
05/05/25 02:25:23
バッチで強制終了させりゃいいじゃん。
バッチでできんことはWSHにやらせて。
227:デフォルトの名無しさん
05/05/25 19:59:47
向き不向きを考えて使えって事か。
そりゃそうか。
バッチファイルで何行も同じようなこと書きたくないなぁと思って
vbsならスマートかな、と思ってやってみたんですた。
まぁコマンドプログラム呼び出すたびにアクティブなウインドウがそっちに移るんで
それも困ってたトコなんでやっぱバッチのほうが向いてるかも
228:デフォルトの名無しさん
05/05/26 05:03:19
>225-227 cscript.exe もちゃんと使おうな
229:225=227
05/05/26 19:59:30
URLリンク(www.atmarkit.co.jp)
コマンドラインスクリプトのことかーーーー!!!
初めて知りました。
多謝でつ。
230:デフォルトの名無しさん
05/05/27 12:38:44
WSHは略だけど
CScriptも略してCSHとは言わんな
231:デフォルトの名無しさん
05/05/27 22:27:43
wshはwscript.exeの略じゃないし
232:デフォルトの名無しさん
05/06/01 13:26:13
JScriptでショートカットのファイルを吐き出したいです
どうすれば出来ますか?
233:デフォルトの名無しさん
05/06/01 14:11:25
>>232
URLリンク(www.microsoft.com)
234:デフォルトの名無しさん
05/06/01 15:51:26
>>233
ありがとう
235:デフォルトの名無しさん
05/06/01 18:24:40
一定の間隔をおいて標準入力をテキストファイルに出力するにはどーしたらいい?
おしえてー
236:デフォルトの名無しさん
05/06/01 22:30:52
>235
一定の間隔とは行間のことだと勝手に想像して書いてみる
んでもって言語の指定ないから勝手にJScript
var ROW_SPACES=1;
var a=WScript.StdIn.ReadAll().split("\r\n");
var f=new ActiveXObject("Scripting.FileSystemObject").CreateTextFile("outfile.txt");
for(var i=0;i<a.length;i++){
f.WriteLine(a[i]);
for(var c=0;c<ROW_SPACES;c++)f.WriteLine();
}
f.Close();
237:デフォルトの名無しさん
05/06/02 01:45:36
間隔っつったらやっぱ時間じゃねえの?
while (!WScript.StdIn.AtEndOfStream) {
WScript.StdOut.Write(WScript.StdIn.ReadAll());
WScript.Sleep(10000);
}
238:236
05/06/02 02:20:20
>237
標準入力→テキストファイル、ってあるから
多分行間じゃないかなあと予測した
逆なら劣化ページャみたいな物と予測したのだけど
あと StdIn.AtEndOfStream() は試したら
存在しないみたいでエラー出たから ReadAll()
239:デフォルトの名無しさん
05/06/02 03:24:38
時間だとすると標準入力をテキストファイルに出力するのに一定の間隔を空ける意味が良く分からん
240:236
05/06/02 15:24:26
>239
そう、私もそれが言いたかった、ごめん_| ̄|○
てか、StdIn.AtEndOfStream てプロパティだから
括弧付けると駄目なのね…逝って来る_| ̄|○
241:デフォルトの名無しさん
05/06/03 17:59:10
ひょっとしてこういうことがしたいのかも
do while True
do while (not WScript.StdIn.AtEndOfStream)
WScript.StdOut.Write(WScript.StdIn.ReadAll())
loop
WScript.Sleep(5000)
loop
242:デフォルトの名無しさん
05/06/05 17:59:02
>241
ReadAllなのにAtEndOfStreamを待つのか?
243:デフォルトの名無しさん
05/06/05 20:51:29
tail -f
みたいな動きをさせるためじゃないかな
244:デフォルトの名無しさん
05/06/10 09:57:18
「デヴァイスマネージャ」の
「USBルートハブ」を無効にして
再度,有効にするという操作を
WSH にしてみてください
245:デフォルトの名無しさん
05/06/10 12:35:24
msgbox "USBハブのコード抜け"
msgbox "抜いたらもう一回挿せ"
246:デフォルトの名無しさん
05/06/10 12:50:41
>>245
【ご主人様】メイドさんスクリプト【ご命令を】
スレリンク(tech板)
247:デフォルトの名無しさん
05/06/10 14:01:26
Private Sub Command1_Click()
Dim UsbSet As SWbemObjectSet
Dim Usb As SWbemObject
Dim Locator As SWbemLocator
Dim Service As SWbemServices
Dim MesStr As String
Set Locator = New WbemScripting.SWbemLocator
Set Service = Locator.ConnectServer
Set UsbSet = Service.ExecQuery("Select * From Win32_USBHub")
For Each Usb In UsbSet
MesStr = MesStr + "USBハブの名前:" + Usb.Description + vbCrLf + _
"USBハブのデバイスID:" + Usb.DeviceID + vbCrLf
Next
MsgBox "USBハブの情報です。" + vbCrLf + _
vbCrLf + MesStr + vbCrLf + "ですよ。"
Set UsbSet = Nothing
Set Usb = Nothing
Set Locator = Nothing
Set Service = Nothing
End Sub
248:デフォルトの名無しさん
05/06/10 14:03:22
Private Sub Command1_Click()
Dim UsbSet As SWbemObjectSet
Dim Usb As SWbemObject
Dim Locator As SWbemLocator
Dim Service As SWbemServices
Dim MesStr As String
Set Locator = New WbemScripting.SWbemLocator
Set Service = Locator.ConnectServer
Set UsbSet = Service.ExecQuery("Select * From Win32_USBController")
For Each Usb In UsbSet
MesStr = MesStr & Usb.Name & vbCrLf
Next
MsgBox "USBコントローラの一覧です。" & vbCrLf & _
vbCrLf & MesStr & vbCrLf & "ですよ。"
Set UsbSet = Nothing
Set Usb = Nothing
Set Service = Nothing
Set Locator = Nothing
End Sub
249:デフォルトの名無しさん
05/06/10 14:10:00
URLリンク(www.microsoft.com)
250:デフォルトの名無しさん
05/06/10 14:44:59
>>244
UWSC使ってみ
URLリンク(www.h7.dion.ne.jp)
251:デフォルトの名無しさん
05/06/15 10:03:13
ご存知の方いらしたらご指導お願い致します
var oShell = WScript.CreateObject("Shell.Application");
var oFolder = oShell.NameSpace("fURLリンク(192.168.*.**)保存/");
var desktop = oShell.NameSpace(0);
var objFolderItems = desktop.Items();
for(var i = 0; i < objFolderItems.Count; i++) {
var ofitem = objFolderItems.Item(i);
if(ofitem.Name == "日報.xls") {
oFolder.CopyHere(ofitem);
WScript.Sleep(6000);
break;
}
}
日報.xlsをサーバーにFTPを使ってコピーするプログラムを作成しました
前日の同名ファイルに上書きして毎日保存しているのですが
ファイルの上書き確認ダイアログが出てしまうの非表示にして自動的に
上書きしたいのですが、よろしくお願い致します。
252:デフォルトの名無しさん
05/06/15 10:17:31
ふつうにftpコマンド使った方がよくね?
253:デフォルトの名無しさん
05/06/15 10:47:54
>>252
というと確認ダイアログをちゃんと出したほうが良いということでしょうか?
一応、転送終了後にファイルの更新日時や内容を軽くchkしていますので
サーバー側で定期的に別フォルダにバックアップしているので、間違いで
上書きしてもとりあえず問題ないのです
objFolder.CopyHere vItem, [vOptions]
FOF_NOCONFIRMATION 0x0010 上書きしますかとか聞いてこなくなる
oFolder.CopyHere(ofitem, 0x0010);
oFolder.CopyHere(ofitem , 0x0010);
こんなのを見つけて直してみても直りませんね
254:252
05/06/15 11:35:37
>>253
いあ、ftpでファイルをアップするだけの用途なら、
-sオプション付けて、動作指定したファイル記述するだけで良さそうだなー
と思っただけ
255:デフォルトの名無しさん
05/06/15 12:30:00
なるほどそういう事でしたか、コマンドプロンプトでやるのでしょうか
wshで記述できるのでしょうか?
勉強不足でして、バッチファイルの作り方も危ういので
>>251
で晒したソースもよそ様のサンプルを使って作成したので理解度0に近いのです
256:デフォルトの名無しさん
05/06/15 13:08:51
コマンドプロンプトでもwshでも可能
ftpの-sオプションについては↓みれば大体分かると思う
URLリンク(www.atmarkit.co.jp)
257:デフォルトの名無しさん
05/06/15 20:02:10
その前に、ftpコマンドの成功、失敗の判定をスクリプトやバッチファイルでできるのか?
258:デフォルトの名無しさん
05/06/15 20:20:50
もう一回アクセスしてファイルの日付がアップロードした日時になってるかとか
サイズがローカルのものと同じになっているかとかをチェックすれば出来なくはない
259:251
05/06/16 10:07:09
報告遅くなりまして申し訳御座いません
それと皆様に助言頂き感謝しております。
ftpの-sオプションについて教えて頂いたサイトを目下勉強中ですが
構文エラーが出てしまいうまくいかない状況です。しばらくサンプルを
作成して試してみますので、どうしても分からなかったら又ご助言を
よろしく御願い致します
260:デフォルトの名無しさん
05/06/16 14:20:45
おしごとでWSH使ってるんですが、
WSHのファイルインクルードって vbs しかインクルードできんのですか?
<script langage=VBScript src="aaaaaaa.vbs"/>
これでWSHスクリプトをインクルードしようとすると最初のJOBタグでエラーになってこのやろうちくしょう。
vbsでファイルインクルードがあればいいんですが・・・。
261:デフォルトの名無しさん
05/06/16 18:48:58
langage
262:デフォルトの名無しさん
05/06/16 18:58:11
で、vbsのインクルードはできたのか?
日本語で質問してくれると助かる。
263:デフォルトの名無しさん
05/06/16 19:19:11
JScriptはほぼ同じ方法で取り込める
だがwsfを取り込むってのは出来ないハズ
wsfにコードを書くと再利用するときに困るから
私の場合、コードは全てvbsに書き、wsfは取り込むのみで使う
264:260
05/06/16 23:55:51
>>261
ちょっとあせってたのさ。
>>262
おいっす。落ち着きます。で。対象のvbsファイルをFileSystemObjectで開いて、
ReadAllメソッド使ってソースをひとつの変数に突っ込んでExecute関数で実行っていう方法なら見つかった。
vbsには正式なインクルードはないみたい。wsfにはあるけど。
↓詳しくは見てください。
URLリンク(www.trickpalace.net)
>>263
やっぱりそうなるのね orz
再利用できる共通コードの中で、別の共通コード使いたい場合で困りますよね。
265:デフォルトの名無しさん
05/06/17 05:46:46
まずはここの情報は全て押さえとくとヨロシ。
MS社員の有志というか暇というか。一応純正だからw
URLリンク(groups.msn.com)
FAQやDOWNLOADに情報満載。
266:デフォルトの名無しさん
05/06/17 13:24:19
>>265
Σ(゚д゚lll)ズガーン。英語!?www
(´∀`;)ゝいやぁ。漏れ純正の日本人だから英語ダメスwww
と思ったけど、FAQはクリックすればサンプルコード出てくるだけだからわかりやすいね。アリガタス
267:デフォルトの名無しさん
05/07/18 02:39:27
ホス
268:デフォルトの名無しさん
05/07/20 01:42:04
ホシュホシュ
269:デフォルトの名無しさん
05/07/25 22:41:51
ホシュホシュ
270:デフォルトの名無しさん
05/07/27 16:45:29
Windows2000にて
WSH使って、タスクスケジューラへ
自動的にタスクを追加するには
どうすればいいか御存知の方いますか?
昔、どこかで出来るような発言してる人がいたので
結構ググッたけど、見つからなかった・・・
271:デフォルトの名無しさん
05/07/27 17:22:24
XPだったらschtasks使えば楽そう
Win32_ScheduledJobはATコマンドと同等だったはずだし、
IScheduledWorkItemとかITaskScheduler辺りを使えばどーだろ・・・
272:270
05/07/28 15:13:25
>271
調べてみたけど、使い方よくわかんなかったので
ATコマンドで妥協しました。('A`)
XPはschtasksがあるからいいですね。
273:デフォルトの名無しさん
05/07/28 15:29:52
ATコマンドってモデムのアレですか?
274:デフォルトの名無しさん
05/07/28 15:36:55
>>273
釣りなのか、マジなのか、なんかの揚げ足取りなのか知らないけど
コマンドプロンプト開いて、「at /?」と入力してみれ
275:デフォルトの名無しさん
05/07/28 15:41:41
ああ、UNIXのat相当なんですね。大文字で書かれると分からんもんですね。
276:デフォルトの名無しさん
05/07/28 15:55:30
>>274
いや、モデムの方だろ
277:デフォルトの名無しさん
05/07/29 02:35:30
schtasksはユーザー権限でログオンしている時
管理者アカウントでタスクを実行しようとしても
拒絶されるから嫌いだ。
そのくせ10回に1回うまくいったりするあたり、
単なるバグなんじゃねぇかと。
278:デフォルトの名無しさん
05/07/31 12:46:54
>>277
うほっタイムリーなネタ
だから実行できなかったのか!
なんかいい解決方法ないのかな。
XPでATコマンドってまだ使えたっけ?
279:デフォルトの名無しさん
05/07/31 14:39:24
>>278
そう実行できない。
2002年から2003年にかけて死ぬほど検証したし
海外までググったしMSプレミアムサポートに問い合わせもした。
結局使えそうで使えないコマンドなんだわ。<schtasks
XPでもATコマンドは使える。
ただ管理者アカウントでログオンしてないと
コマンドが受け付けられないので注意。
これはNT4時代からずっとそうなので諦めるしかない。
管理者アカウントでログオンするなら
schtasksだって使えるんだよね。。。
> なんかいい解決方法ないのかな。
これまで携わったプロジェクトでは
配布ソリューション(SMSやその類似品)を使って
バッチを配布して管理者権限でキックしたり、
管理端末から(ドメインAdminでログオン)から
目的の端末にリモート実行させたりしてた。
あとはスタートアップスクリプトに仕掛けたりとかそういう感じ。
あとはサーバーに「特定のテキストファイルがあれば
ファイル名と同名のユーザーの端末上でコマンド実行」
という趣旨の定期監視タスクを仕掛けておいて、
ユーザーがバッチを起動すると、
サーバー側で監視してるフォルダに
テキストファイルが作られるみたいな構成とか。
わずかな事やるのに結構遠回りしてるなぁ。orz
280:デフォルトの名無しさん
05/07/31 16:07:05
>>279
>海外までググったし
そうか。プログラミングのノウハウは国内にはあまり無いから
ググる時にも必ず「ウェブ全体」を選んでたけど
まだそういう時代じゃないんだな
281:デフォルトの名無しさん
05/07/31 16:26:33
>>280
や、失礼。
ググった結果(主に英語サイト)から
海外サイトを延々見てまわり、の方が正確。
お詫びして訂正します。ゴメンチャイ。
どうでもいいがヘブライ語みたいなサイトも見たよ。
チンプンカンプンだっつーの。
282:デフォルトの名無しさん
05/08/04 22:35:08
(・∀・)アゲ!!
283:デフォルトの名無しさん
05/08/06 22:53:34
WSHで起動中の特定の名前のウィンドウの
存在の有無を確認する方法ってありますか?
284:デフォルトの名無しさん
05/08/07 09:40:02
>>283
WMIでWin32_Processをクエリーするしかないんじゃねーの?
でもこの方法、WindowsXP以外はWMICoreのインスコが必要だったと思うが。
285:283
05/08/07 13:10:15
>>284
レスありがとうございます。自己解決しました。
VBScriptのappactivate("ウィンドウ名")=Falseで
判定することができました。
286:デフォルトの名無しさん
05/08/08 14:53:27
リンクリストみたいなコレクションありませんか?
ハッシュ(Scripting.Dictionary)と配列はあったのですが・・・。
やりたいことは、文字列をコレクションに溜め込んで、最後にJoinで一つの文字列にしたいのですが、
ハッシュだと溜め込むことはできそうですが、最後にJoinしたときに順番がバラバラになりそうで利用できません。
要素の追加にコストが掛からず、最後に文字列結合できるコレクションなどはないでしょうか。
287:デフォルトの名無しさん
05/08/08 16:55:07
>>286
Arrayではコストがかかりすぎるのでしょうか。
288:デフォルトの名無しさん
05/08/08 17:53:42
>>286
そりゃあデータ構造を考えれば普通に不可能だろう。
289:デフォルトの名無しさん
05/08/16 20:39:16
みんなデバッグ環境はナニを使ってる?
290:デフォルトの名無しさん
05/08/16 21:56:50
jsファイル ダブルクリックして
テキストファイル出力で変数の値みる
291:デフォルトの名無しさん
05/08/21 01:11:37
var WShell = new ActiveXObject("WScript.Shell");
WShell.Run("c:\\******\\hoge.exe");
のように実行ファイルを動かし、hoge.exeからJScriptの変数に何らかの値を代入することは可能でしょうか?
292:デフォルトの名無しさん
05/08/22 13:25:15
>>291
こんな感じでしょうか。
この例ではHello, world!の後の改行までsに代入されてしまってますが。
----------
D:\>type hello.js
print("Hello, world!");
D:\>type hello2.js
var WshShell = new ActiveXObject("WScript.Shell");
var oExec = WshShell.Exec("d:\\hello.exe");
var s = oExec.StdOut.ReadAll();
WScript.StdOut.Write("[" + s + "]");
D:\>jsc /nologo hello.js
D:\>hello.exe
Hello, world!
D:\>cscript //nologo hello2.js
[Hello, world!
]
D:\>
----------
293:デフォルトの名無しさん
05/08/22 13:49:53
>>289
//X オプション + VSでデバグ。
294:291
05/08/24 16:04:26
>>292
ありがとうございます。
解決しました。
295:286
05/08/30 16:39:36
>>287-288
レスありがとう。
やりたいことは Java のStringWriterクラスでしたが、
writeメソッドで受け取った文字列を溜め込んで、
toStringメソッドで結合して返すってことをやりたかったのです。
それで実際に Scripting.Dictionary で、試してみたら
Joinしたときに順番がバラバラになるかと思ったんですが、
追加した順番に文字列が結合されたので大丈夫でした。
なんかラッキーでした。ありがとう。
296:デフォルトの名無しさん
05/09/05 12:59:10
vbsやりはじめて3日目です
Subプロシージャに引数としてオブジェクトを渡したいのですが
渡されたオブジェクトのプロパティをSubプロシージャ内で参照しようとすると
オブジェクトがありませんと言われます
ぐぐってもVBの事例はいくつか出てきたのですがVBSの事例は見つけられませんでした
どのようにしたらいいんでしょう
297:デフォルトの名無しさん
05/09/05 19:38:27
>>296
書け
298:名無しさん@そうだ選挙に行こう
05/09/11 00:41:35
>>11 >>12 >>16 おそらく、↓のスレのことだと思われ。
// Windows Script Host を使い尽くす //
URLリンク(pc3.2ch.net)
299:デフォルトの名無しさん
05/09/12 20:52:33
win板のwsh スレはどこ?
300:デフォルトの名無しさん
05/09/12 22:31:35
落ちたみたいね
301:デフォルトの名無しさん
05/09/13 00:27:09
おいっす。了解っす。
302:1/2
05/09/15 23:43:08
どなたかお知恵をお貸しください。
あるテーブルの抽出結果を、ADODB.Recordset.GetStringで文字列にする関数 strResults を、
VBSから呼び出してテキストファイルに保存しようとしました。
Dim sFS, strParam, oTS, strResultText, intResultLetters, i
strParam = WScript.Arguments(0)
strResultFName = WScript.Arguments(1)
Set appAc = CreateObject("Access.Application")
appAc.OpenCurrentDatabase "V:\・・・\GrepRecordsets.mdb"
strResultText = appAc.Run("strResults", strParam)
Set appAc = Nothing
Set sFS = CreateObject("Scripting.FileSystemObject")
Set oTS = sFS.CreateTextFile("V:\・・・\result.txt", True)
oTS.WriteLine "MS Access ファイルからの検索結果"
intResultLetters = Len(strResultText)
For i=100 To intResultLetters Step 100 ' デバッグのため分割して書き込む
MsgBox Left(strResultText,100) ' デバッグのための内容表示
oTS.Write Left(strResultText,100)
strResultText = Right(strResultText,intResultLetters - i)
Next
303:デフォルトの名無しさん
05/09/15 23:43:34
ここで、ある特定の文字が、MsgBoxでは表示されるものの、
書き込もうとした時点でコンソール上に以下のエラーが出てしまいます。
Microsoft VBScript 実行時エラー: プロシージャの呼び出し、または引数が不正です。
その文字とは、中華料理店の店名らしいのですが、
火 日 金
火火 日日 金金
テキストエディタ等で見ると ?晶? となりますが、MS Wordなどで見ると上記のような文字です。
このため、文字コード変換で改善するかと思い、nkfwin.exe なるツールではどうかとやってみたところ、
上記の文字を含むテキストファイルを nkfwin.exe の引数に指定したところ、
┌────────────┐
│16 ビット MS-DOS サブシステム ×│
├────────────┤
│ C:\WINNT\System32\cmd.exe -
│ V:\・・・\nkfwin.exe
│ × -s -I TestKanji.txt
│ NTVDM CPU は不正な命令を検出しました。
│ CS:0000 IP:e2d7 OP:00 00 00 00
│
│ [ 強制終了(T) ] [ 無視(I) ]
└────────────┘
となってしまいました。
このような現象は、どう対処したらよいのでしょうか?
お教えいただけますと大変助かります。
OS : Windows NT 4.0 Access 2000, ADO 2.6, WSH 5.6
304:デフォルトの名無しさん
05/09/16 05:08:50
>Set oTS = sFS.CreateTextFile("V:\・・・\result.txt", True)
ここを
Set oTS = sFS.CreateTextFile("V:\・・・\result.txt", True, True)
にしたんじゃダメか?
出力内容がUNICODEになっちまうけど。
(SJISには無い文字コードみたいだからそうするしかないんだけどね。)
305:デフォルトの名無しさん
05/09/16 09:06:23
>>304
ありがとうございます!
あっさり出力できました!
大変助かりました。m(_ _)m
306:デフォルトの名無しさん
05/09/16 20:27:56
ユニコードの28977 焱 、
ユニコードの37995 鑫 と判明しました。
これらの文字を取り除いてメールで送れるテキストにする方法を探し中です。
307:デフォルトの名無しさん
05/09/16 23:13:23
報告です。
まず unicodeテキストとして保存し、
その後 フリーソフトの cherset converter で
→ ISO-2022-JP → Shift_JIS
で出来ました。
2段階でやったところ、通常 ? で置き換わるところ _ で置き換わっていました。
ありがとうございました。。
308:デフォルトの名無しさん
05/09/28 18:18:34
ここで聞くのが正しいのかも少々不安ですが
質問させてください。
前提:
プログラミングは大昔に20年ほど前にFORTRANいじったことがありますが
中途半端だった上にその後すっかりで、基本的に知識ゼロです。
要望:
・下記の事がWSHで実行可能か知りたい
・可能な場合は参考になるスレはどこにあるのか知りたい
・ヒントになるようなスクリプトがあれば手に入れたい
やりたいこと:
(WindowsXP上で動いているアプリケーションに対してです)
起動
1.任意の座標(固定)のcolorをチェックする
2.任意のcolorではない(または任意のcolorである)場合に
3.任意の座標をマウス(右)クリック(相当の信号?コマンド?送出)
終了までループ
座標系はやったことがないのでまるでわかりません。
ヒントを頂いて勉強もしたいのですがちょっと差し迫った事情が
あって時間もないので、どなたかお教えいただければ幸いです。
そんなのプログラム組めば簡単簡単・・・などとできもしないのに
大見得切るんじゃなかった。。。^^;
よろしくお願いします。
309:デフォルトの名無しさん
05/09/28 18:48:01
無理…だと思う。
310:デフォルトの名無しさん
05/09/28 21:37:52
>>308
俺もWSHじゃ無理だと思う。
Win32系のスレでAPIの使い方を訊きながら、C言語でコンソールアプリとして作ればそんなには難しくないと思うよ。
C言語のコンパイラは Borland C++ Compiler とか Microsoft Visual C++ toolkit 2003 とか無料のがあるからそれを使いね。
( Microsoft Visual C++ toolkit 2003 は別途PlatformSDKも入手しなきゃならんから Borland のほうが手軽かな? )
311:デフォルトの名無しさん
05/09/28 21:42:27
宿題スレでやってもらうのがいいかも。
312:デフォルトの名無しさん
05/09/29 10:15:43
>>309
>>310
>>310
ありがとうございます。
そもそもWSHでは無理がありそうなのですね。
宿題スレも見てみます。
313:デフォルトの名無しさん
05/09/30 10:41:25
UWSCならデフォで出来るし
UWSC内でVBSとか使えるけどね
314:デフォルトの名無しさん
05/10/04 11:14:28
ネットワーク上にある約200台の端末の指定ファイルの最終更新日を一気に取得したいんですが、
電源が入っていない端末にアクセスすると処理が遅くなってしまいます。
315:デフォルトの名無しさん
05/10/04 11:38:29
そうですか
316:デフォルトの名無しさん
05/10/04 12:25:53
そうなんです
317:デフォルトの名無しさん
05/10/04 12:41:18
じゃあ電源が入ってるかどうか管理しておけばいいじゃない
318:デフォルトの名無しさん
05/10/04 14:16:06
そうですか?
319:デフォルトの名無しさん
05/10/04 21:22:51
このスクリプト簡単でおもしろいね。
知らない人に時間が来たらメモ帳開いて1秒間隔くらいで
「お・ま・え・は・明・日・死・ぬ」とか書いちゃったりして
おもしろーいw
きゃははw
320:デフォルトの名無しさん
05/10/04 23:12:28
そうですか
321:デフォルトの名無しさん
05/10/04 23:32:54
>>320
そんな素っ気ないレスじゃなくて、友人がいないに違いない >>319 に仲良くしてやれよ。
俺はくっだらなくも陰湿な >>319 なんか、まっぴらごめんだけどなw
322:デフォルトの名無しさん
05/10/05 00:34:44
そうだな
323:デフォルトの名無しさん
05/10/13 22:26:58
ネットワーク上の別のPCのデスクトップにメモ帳を立ち上げる
なんてこと、出来るのでしょうか?
324:デフォルトの名無しさん
05/10/13 23:17:10
>>323はマルチなので、以後放置で
お前ら、wsh使ってますか? part5
スレリンク(win板:73番)
325:デフォルトの名無しさん
05/10/14 14:05:25
>>323
NET SEND OtherPC メモ帳起動して
326:デフォルトの名無しさん
05/10/14 15:13:14
>>325
それいいな
327:デフォルトの名無しさん
05/10/14 22:52:22
>>323
\\自分のPC
\\相手のPC
\\相手のPC 上で、\\自分のPC の任意のフォルダを監視させるスクリプトaaa.vbs
を起動させておく。
もし、\\自分のPCに上の任意のフォルダに、メモ帳起動.txt というファイルが作られたら、
そのファイルを削除して、\\相手のPC上で、Wscript.Shell.Run "Notepad"を実行する。
というのが、一般的だが?
328:323
05/10/15 00:26:27
>>327
レスありがとでげす。
教えてくださった方法では、
別のイベント(別動作)をトリガーとして持たなくてはいけない点と、
\\相手のPC上でaaa.vbsを実行しなくてはいけない点
が不満です。
上の2点を回避する方法はないのでしょうか?
329:デフォルトの名無しさん
05/10/15 01:33:37
\\相手のPC上でbbb.vbsを実行すればいいと思うよ。
ってゆうかさー、その程度の応用もできないわけ?
330:デフォルトの名無しさん
05/10/15 08:29:52
schtasksとかatとか使えばいいだけのような
331:デフォルトの名無しさん
05/10/15 12:32:19
使い方が解りませんとか言い出してきそうな悪寒
332:デフォルトの名無しさん
05/10/15 22:42:07
スタートアップファイルに、aaa.vbs のショートカットファイルを入れておいても良いレベルでは?
結局、323の使用目的によって回答のレベルも可変なんだと思う。
さあ、話してごらん、使用目的を。
333:デフォルトの名無しさん
05/10/15 23:00:55
おまいら、マルチなので、以後放置ではなかったのか?
334:323
05/10/16 08:16:34
>>332
使用目的というわけではありませんが、
単純にメッセージを送信できれば問題ないです。
できれば日本語(2byte文字を)
XPとWin98SEでも使える方法を伝授くださいませ。
335:デフォルトの名無しさん
05/10/16 11:05:19
要するに、作って欲しいわけだ
336:デフォルトの名無しさん
05/10/16 15:00:36
NT系ならメッセージを送る方法があったはずだが…。WSHから使えるのかは知らないけど。
337:323
05/10/16 15:14:57
>>335
バレた!!
338:デフォルトの名無しさん
05/10/16 15:24:40
>>323
>>325
339:323
05/10/16 15:27:41
>>338
net send って、Win98でも使えるの?
340:デフォルトの名無しさん
05/10/16 16:01:55
なんだとこの野郎
341:デフォルトの名無しさん
05/10/16 17:00:02
>>339
一応、NT 系の net send と Win9x 系の winpopup は、
相互に送受信できる。
ただし、winpopup をスクリプトから制御できるかどうかは
知らん。
342:323
05/10/16 17:21:22
結局、相手PCがWin98系のときは、
\\相手のPC上でaaa.vbs or bbb.vbsを実行しなくてはいけない
ということですか。。。
343:デフォルトの名無しさん
05/10/16 17:29:34
>342
自分のPCがNT系ならnet sendで送信すれば、
相手が98系ならwinpopupで受信してくれるんじゃないの。
344:323
05/10/16 17:49:18
>>343
winpopupを立ち上げるのに、aaa.vbs or bbb.vbsが必要ということでは。。。?
345:デフォルトの名無しさん
05/10/16 18:01:48
ヒント: スタートアップ (+ 必要なら、自動ログイン)
346:323
05/10/16 18:24:06
>>345
つまり、\\相手のPCにいちいち細工をしなくてはいけないということが
私のやりたい事には入ってないわけで。。。
347:デフォルトの名無しさん
05/10/16 18:36:53
348:デフォルトの名無しさん
05/10/16 18:38:37
結局何が目的なんだといいたくなるな
349:デフォルトの名無しさん
05/10/16 18:38:41
なんの設定もなく相手先のPCを操作できることを
専門用語でセキュリティーホールと言う
350:323
05/10/16 18:45:03
>>348
わかりずらい話につき合わせてしまって、ごめんなさい。
>>349
つまるところ、そういうことなんですね。
せきゅりてぇいがあるのはいかしかたないことですから、あきらめます。
最期に、もうひとつ。
\\自分のPC の任意のフォルダを監視させるスクリプト
(もし、\\自分のPCに上の任意のフォルダに、メモ帳起動.txt というファイルが作られたら、
そのファイルを削除して、)
はどのように記述すればよいのですか?
スマートな方法を教えてもらえませんか?
351:デフォルトの名無しさん
05/10/16 18:51:20
>>350
スマートな方法なんて、無理に決まってんだろ
352:デフォルトの名無しさん
05/10/16 19:17:25
>>350
>>348
>>325
353:デフォルトの名無しさん
05/10/16 19:52:21
>>350
while(true)
{
if( ファイルオブジェクトか何か.IsExist ) 処理;
Sleep(何秒か);
}
354:デフォルトの名無しさん
05/10/16 19:55:09
>350
相手側に何か仕込むなら、Winpopupをスタートアップに登録するだけの方が無難だと思われ。
355:323
05/10/16 23:05:51
みなさん、どうもありがとう。
>>354
相手側のPCが遠くて、私が直接作業出来ないんですぅ。
ついでに、驚かせたいってのもあるから、相手にやってもらうのも。。。ねぇ。
っていう理由なんですよ。。。
356:デフォルトの名無しさん
05/10/16 23:09:54
出来ないんですぅ。じゃねえよクソがッ!!!!!!
失せろこの頓馬!!!!!!!!!!!!!
357:デフォルトの名無しさん
05/10/16 23:25:08
>>356
kawaisouni...
358:デフォルトの名無しさん
05/10/17 00:59:54
> 驚かせたいってのもあるから、相手にやってもらうのも。。。ねぇ。
本当は何らかの不正行為をやるつもりだろ
そういうことをやろうとしてるけど、自分でやるだけの知識が無い奴は
決まって「驚かせるだけ」とか「ジョークソフトを作るのに」とか言い訳して
やり方を聞いてくる
どうせ口先だけじゃ如何様にも言い逃れは出来るけどね
359:デフォルトの名無しさん
05/10/17 01:23:03
スマートというか本当はコマンドライン一行でやる方法あるんだけどね。
何かマルチポストっぽいしクラッキングの片棒担ぐのも嫌なんで自分で調べな。
360:デフォルトの名無しさん
05/10/17 03:08:44
スタートアップやタスク、netsend などを使うことなく、同じドメインに属している
リモートクライアントで notepad.exe のプロセスを走らせるスマートな手段は実際、
あるにはある。でもなぁ、>>323 の目論んでいることが今一つ抽象的かつくだらない
目的のように思えてならないんだよな。結局何をしたいのよ?>>323
361:デフォルトの名無しさん
05/10/17 07:25:25
もういい加減スルー
362:デフォルトの名無しさん
05/10/17 15:05:22
すいません初歩的すぎて申し訳ないんですが、次のサンプルスクリプトをWSHへ書き換えたいんですが
パラーメータの渡し方がわかりません。
どなたか教えてください。
<object ID=NetMeeting CLASSID="CLSID:3E9BAF2D-7A79-11d2-9334-0000F875AE17">
<PARAM NAME = "MODE" VALUE = "DataOnly">
</object>
↓
Set NWobj = createobject("Netmeeting.App")
363:デフォルトの名無しさん
05/10/17 21:57:33
ほう。マルチですか。
364:デフォルトの名無しさん
05/10/18 00:05:36
>>359、360
323はWin98でやりたいと言ってるように見えるが?
365:デフォルトの名無しさん
05/10/18 09:46:45
糞ノートン先生を強制的に黙らせる方法はありませんか?
友達にVBScript渡したら悪質なScript扱いされて実行止められた('A`)
366:デフォルトの名無しさん
05/10/18 11:20:37
良質なScriptはScriptBlockerを強制Offにしたりしません。
367:デフォルトの名無しさん
05/10/18 13:20:58
ワロタ
368:デフォルトの名無しさん
05/10/18 21:49:41
つーか最近無駄にセキュリティが高すぎる気がする。
そりゃ便利に何でも動くようにしたら、セキュリティに興味ない人が
どんどんウィルス感染するのは分かるんだけどさ。
最近のIEとか全然Script動かないじゃん。
ScriptどころかSVGとかも見れないし。
PC使えない人の問題を自動的に修復できるようにScript渡したいのに
Scriptも動かない動かせないんじゃどうしようもないですがな。
369:デフォルトの名無しさん
05/10/19 00:20:57
>>359
お〜、それはすげーな。
でも、それって君の PC のセキュリティが低いだけだと
公言してるも同然で、アフォ丸出しだから止めたほうが
いいよ。
370:デフォルトの名無しさん
05/10/19 00:29:13
そうだそうだ
371:デフォルトの名無しさん
05/10/19 00:31:54
>>369
もちろんアカウントとパスワードは必要ですってば
372:デフォルトの名無しさん
05/10/19 00:37:46
>>371
( ̄ー ̄)ニヤリッ
373:デフォルトの名無しさん
05/10/19 00:54:35
>368
最近のPCならリモートデスクトップとかあるじゃん。
374:デフォルトの名無しさん
05/10/19 08:30:15
>>368
>Scriptも動かない動かせないんじゃどうしようもないですがな。
Nortonがブロックするなら許可すればいいだけじゃね
単に動くスクリプトをあなたが書けないだけでは?と煽ってみる
IEだって設定の問題でしょ
375:デフォルトの名無しさん
05/10/19 22:04:59
>>374
自分自身はちゃんと設定してるから動くよ。
他人に渡したときに動かないのが困る。
それも、「○○が動かなくなったから何とかしてくれ」
というのでScriptでファイル操作して自動的に解決するようにして送ったら
・メールから勝手に削除された
・なんとか受け取ったScriptは実行不能
(ノートンが止めているらしい)
・ノートンの設定は弄れない
とのことで結局どうしようもなくなった。
まぁScriptは自分の為に使うものってことなのかね?
376:デフォルトの名無しさん
05/10/19 23:17:44
>>375
見る限り全てノートンの所為
377:デフォルトの名無しさん
05/10/20 16:44:51
よくタクスバーにアイコンだけ表示されている常駐ソフト( 音量やハードウェアの取り外しなど )がありますが、
どうにかして、このアイコンをクリックしたときに出るメニューの文字列って取得できませんか?
378:デフォルトの名無しさん
05/10/20 17:14:36
マウスを置いたときに出るツールチップなら統一されてるから取得できるけど
出てくるメニューはプログラムの内部で任意に指定してるものだろ。
そんな不規則なものを取得できるのか?
379:右下の時計のことならタスクトレイだ
05/10/20 22:29:44
>>377
つーか最終的に何をしたいか賭けよ。
エクスプローラ(シェル)は落ちることがあるし、そうなったら
プログラムとしては動作しててもタスクトレイからは
アイコンが消えてしまうのはよくある。
WMIでWin32_Processをクエリーするのがセオリーだ。
380:デフォルトの名無しさん
05/10/20 22:37:30
>>377
>>378 が言う通りあのメニューはクリックした時に
プログラムが出してる。
だから、クリックするたびに違うこともあるし、プロ
グラムによってはメニューなんか出さずにいきなり設
定ダイアログをとかを出すやつもいる。
>>379 も書いてるけど、何のためにそんなことしたい
んだ?
381:デフォルトの名無しさん
05/10/20 22:51:09
379じゃないけど
いちいちマウス動かさないでメニューの文字を一覧したいからじゃない
382:デフォルトの名無しさん
05/10/20 23:01:19
>>381
m9(^Д^)プギャー
383:377
05/10/21 01:32:39
>>378-381
>>379さんヒントありがとうございます。
Set ServiceSet = GetObject( _
"winmgmts:{impersonationLevel=impersonate}" _
).ExecQuery("select * from Win32_Process")
見たいなかんじでまずオブジェクトを取得して操作するみたいですね。
まずはタスクリストを得られるという感じなのかな・・・
やりたいことは、
httpdでスクリプトを起動して、外出先で常駐アプリの状態が知りたいんです。
いまのところ、httpdからcgiを起動して、perlプログラムからuwscスクリプトを起動して、
traypseというアプリケーションを通して、目的のタクストレイのアイコンをクリックするところまでできています。
(目的のアプリケーションのウィンドウハンドルまではわかっています)
uwscスクリプトでは、このときに出てくるメニューにアクセスできないために、
OLEオートメーションでなんとかならないかと思ったしだいです・・・
そこで詳しい方が多そうなこちらで質問させていただきました。
WMIには詳しくないので、もう少し調べてみます。
またヒントがあったらよろしくお願いします。m(_ _)m
384:デフォルトの名無しさん
05/10/21 23:22:39
> やりたいことは、httpdでスクリプトを起動して、
> 外出先で常駐アプリの状態が知りたいんです。
ねぇ、何でそれを最初に書かないの?
あと、その常駐アプリの名前は極秘なの?
385:デフォルトの名無しさん
05/10/22 15:32:35
PrintScreenアプリでデスクトップを丸ごとコピーした内容をFTPで送信。
Sendkeysでやるんならそんなもんか。
Winnyのウイルスみたいな動作なきがするけど気のせいか。
386:377
05/10/22 17:57:08
>>384
すみません
えっと、常駐させるアプリはnyです
外出先から動画やソフトのダウンロード状態を確認出来ないかな、と・・・
387:デフォルトの名無しさん
05/10/22 18:14:03
終わったな
↓次の話題をどうぞ
388:デフォルトの名無しさん
05/10/22 18:43:57
Select Case文だと、のちのち処理を拡張したい時に、文法に自由度がなさすぎて破綻しそうな場合について。
以下のようにしておくと、すっきりと処理できたので報告します。
For i=0 to 1
IF 〜 Then : Exit For
IF 〜 Then : Exit For
IF 〜 Then : Exit For
IF 〜 Then : Exit For
(ここにデフォルト処理):Exit For
Next
IF文を、故意に、ネストさせないで使っているので、見た目的にもすっきり。
もっと良い方法があるという方は、ご指摘願います。
389:デフォルトの名無しさん
05/10/22 19:04:04
> Select Case文だと、のちのち処理を拡張したい時に、文法に自由度がなさすぎて破綻しそうな場合について。
Select Case使うときは処理を拡張してもSelect Caseで間に合う時だけだ
「Select Case文が、のちのち処理を拡張したい時に、文法に自由度がなさすぎて破綻する」なんてことはあり得ない
> For i=0 to 1
> IF 〜 Then : Exit For
For〜NextよりDo〜Loopの方がまだマシだろ
それと「:」は要らなくないか?
390:デフォルトの名無しさん
05/10/22 20:28:56
> For i=0 to 1
For i = 0 To 0 の方がいいんじゃないか?
For I = 0 To 1 だと、なんかの時に2回回ることを想定し
てそうだ。
そもそも、For のは、余計な変数が必要だったりするから、
>>389 が言うように Do 〜 Until True の方がいいと思う。
> IF文を、故意に、ネストさせないで使っているので、見た目的にもすっきり。
そもそも、
If 〜 Then 〜 ElseIf 〜 Then 〜 ... Else 〜 End If
で大体間に合うし。
391:デフォルトの名無しさん
05/10/22 22:14:26
>>386
Winnyってメニューの文字列可変じゃないジャンw
392:388
05/10/22 23:07:51
>>389-390 貴重なご意見、回答ありがとうございます。
確かに、For i=0 から回しているので、2回ループするバグを出しそうですね。
あと、Do〜Loop: Exit Doのほうが、変数要らなくてスマートですね。修正しようと思います。
>それと「:」は要らなくないか?
Then のあとに実際は、何かの処理を入れています。いきなりExit Forしてる訳ではないです。
そもそもExit For要らないのでは?という疑問に対しては、「予期せずに、他のIF行を実行して
しまわないようにする為」のお守りとして付けた方がいいと思っています。
この処理を何に使用しているか、誰からも聞かれていないですが、一応書いておきます。
WSHのINPUT文を利用して、アプリケーションランチャーを作りました。なかなか快適です。
If Ucase(入力した値) = "MYDOC" Then Wscript.CreateObject("WScript.Shell").Run "C:\mydoc\": Exit For
とか、
If Ucase(入力した値) = "SLEIP" Then Wscript.CreateObject("WScript.Shell").Run """C:\Program files\〜\Sleipnir.exe""": Exit For
とかいうように、使っています。
393:デフォルトの名無しさん
05/10/22 23:22:13
それこそ入力値は必ずinputboxの戻り値なんだからselect case使うべきだろ
等価比較演算で、一方が固定(inputboxの戻り値)なのが分かり切っているのに
select caseを避ける理由って何だ?
「WSHのINPUT文を利用して、アプリケーションランチャー」で、入力値以外の何を評価すると言うの?
394:392
05/10/22 23:36:40
>>393 実は、電卓としての機能も持たせていて、
InputBoxの中身が、登録されたキーワード以外の時は、Eval( )で、計算機に早変わりするというものです。
(現在、キーワードもどきの文字列を送ると、Evalしてしまうので、エラーで落ちたりする事もよくありますが、特にErr処理していません)
他にも便利機能を拡張するかも知れないので、SelectCaseよりも条件分岐しやすい処理系にしたいと思って、
>>388 のように書いてみました。
395:394
05/10/22 23:42:18
元ネタ & プログラムの原型は、以下のスレです。
WSHで数学をするスレ
スレリンク(math板:29番)
URLリンク(science3.2ch.net)
の29スレめの簡易電卓.vbs より。
396:デフォルトの名無しさん
05/10/22 23:45:17
でも結局動作の振り分けは「InputBoxの中身(戻り値)が」なんでしょ
ならcase elseで処理させればいいじゃん
どう機能拡張しようと、「InputBoxの中身(戻り値)」で動作を分岐させるなら
select caseで間に合わなくなることは無いわけだが
397:394
05/10/23 00:02:49
>>396
現状の使用では、Select Caseで、全く問題なさそうですね。
また、変なネタかプログラムができたら、レスします。(^^)
その時は、またコメントよろしくお願いします。
他に、機能拡張するとしたら、何かありますか?とか聞いたりして‥
InputBoxで、IEみたいに、途中まで入力した文字列の補完って
できないですよね?
398:デフォルトの名無しさん
05/10/23 00:13:40
標準のinputbox自体では出来ないけど、
例えば末尾に"..."と入れたら入力補完するとか規則を決めて、
inputboxのの戻り値がright(,3)="..."だったら、補完リストから部分一致を検索して
もう一度inputboxを表示するとかはできるだろうな
399:397
05/10/23 00:20:38
φ(..)メモメモ...
400:ハーピィ
05/10/23 23:12:32
E・∇・ヨノシ <400ゲット♫
401:デフォルトの名無しさん
05/11/05 10:18:19
モバイルでプログラム【NS BASIC/CE】
スレリンク(mobile板)
NSBASIC/CEはWSHを知ってるならほぼ使えるよ!
PDAであるWindowsCE上(実質シグマリやjornadaでないときついが。)でもデスクトップでも
開発が可能。
手のひらで自分の作ったアプリが動く喜び!最新Ver6.02は、EXE化されたものに好きな
アイコンをつけられるのでほとんどスクリプトと分からない。
NS Basic/CEは、WindowsCEにRuntimeを導入してその上で動く。
最新のWM5にも対応しており、日本語版も出ているし、日本語サポートもいるので安心だ。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4306日前に更新/212 KB
担当:undef