VBSで便利なプログラムを作れスレ

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2007/02/03(土) 17:49:47
素人丸出しお粗末で遅くてもいいので
いますぐ使えるちょっぴり便利プログラムを作れ

(例○○を自動処理してくれるプログラム)
2007/02/03(土) 17:52:27
ずるしてらくしてかれいに2げっとかしらかしら〜
3Windows厨&rlo;wwwね死はCAM。すでXUNILチンアやや
垢版 |
2007/02/03(土) 17:54:41
2ch自動書き込みスクリプト・・・    はVBSなんかじゃなくちゃんとしたプログラムが既にあちこちに存在するか
2007/02/03(土) 18:14:33
>>1が後から何食わぬ顔で制作依頼する糞スレか
2007/02/03(土) 22:14:50
TechNetのHey, Scripting Guy!でも読むとか
2007/02/04(日) 04:38:30
>>3
自動書きこみをする機能がそもそもまともじゃない
2007/02/08(木) 22:08:15
日経ソフトウェアだったかに乗ってたのですが 動きません 助けて

KETA = inputbox("何文字のパスワードを作りますか?","パスワードを生成","8")

If KETA < 1 Then
MsgBox "文字数は0以上でなくてはなりません"
End If

PASS_WRD = "A B C D E F G H J K L M N P Q R S T U V W X Y Z "
MOJISYU_A = MsgBox("アルファベットの小文字を使いますか?",vbYesNo)

If MOJISYU_A = vbYes Then
PASS_WRD = PASS_WRD + "a b c d e f g h i j k m n p q r s t u v w x y z "
End If

MOJISYU_B = MsgBox("数字を使いますか?",vbYesNo)
If MOJISYU_B = vbYes Then
PASS_WRD = PASS_WRD + "2 3 4 5 6 7 8 9 2 3 4 5 6 7 8 9 2 3 4 5 6 7 8 9 "

MOJISYU_C = MsgBox("記号を使いますか?",vbYesNo)
If MOJISYU_C = vbYes Then
'記号
PASS_WRD = PASS_WRD + "! # $ % & ? - _ ~ @"
End If

'指定された条件で配列を作成
PASS_STR = Split(PASS_WRD)
MAX = Ubound(pass_str)
87
垢版 |
2007/02/08(木) 22:08:56
続き
'指定された桁数のパスワードを作成
For i=0 To KETA - 1
Randomize
X = abs(Int((0 - MAX) * Rnd))
PASS = PASS + PASS_STR(X)
Next
InputBox "パスワードが完成しました","生成完了!",PASS
2007/02/09(金) 01:15:14
>7
どう動かないんだ。
エラーメッセージが出るならエラーメッセージを貼れ。
2007/02/09(金) 01:18:01
BASICって何でここまで読む気が起こらないんだろう
2007/02/09(金) 01:22:38
>>10
構文が冗長だから
2007/02/09(金) 02:01:47
まぁ、COBOLの冗長さには勝てないがな
'VB
For I = 1 To 10
Next

*COBOL
PERFORM VARYING I FROM 1 BY 1 UNTIL I <= 10
END-PERFORM
2007/02/09(金) 10:20:33
>12
間違えてる。UNTILならI>10だ
2007/04/29(日) 02:58:52
>>10
字下げが取れちゃってるのも一因ではないだろうか、この場合。
15wol.wsf
垢版 |
2007/06/03(日) 10:59:59
<job>
<script language="vbscript" src="./computer.class"/>
<script language="vbscript">
Option Explicit

Const COMPUTERS = 3
Const DEFAULT_WAKEUP = 2
Dim objComputers()
ReDim objComputers(COMPUTERS)
Dim intNum, i, strHostnames

For i = 0 To COMPUTERS
  Set objComputers(i) = New Computer
Next
objComputers(0).setComputer "xxxxxxxxxxxx", "chitose"
objComputers(1).setComputer "yyyyyyyyyyyy", "tomoyo"
objComputers(2).setComputer "zzzzzzzzzzzz", "ayanami"
objComputers(3).setComputer "wwwwwwwwwwww", "maya"

For i = 0 To COMPUTERS
  strHostnames = strHostnames & i & ":" & vbTab & objComputers(i).GetHostname & vbCrLf
Next

intNum = InputBox(strHostnames, "WakeOnLan", DEFAULT_WAKEUP)
objComputers(intNum).Wakeup

For i = 0 To COMPUTERS
  Set objComputers(i) = Nothing
Next
</script>
</job>
16computer.class
垢版 |
2007/06/03(日) 11:03:50
Option Explicit

Class Computer
  Private pHostname
  Private pMACAddr

  Public Sub setComputer(strMACAddr, strHostname)
    pMACAddr = strMACAddr
    pHostname = strHostname
  End Sub

  Public Sub WakeUp
    Dim WSHShell
    Set WSHShell = WScript.CreateObject("WScript.Shell")
    WSHShell.Run "wol.exe " & pMACAddr
  End Sub

  Public Function GetHostname()
    GetHostname = pHostname
  End Function
End Class

これを同じフォルダに入れておく→ttp://www.gammadyne.com/cmdline.htm#wol
vbsもWOLもやってみると意外とできるもんだ。
2007/06/04(月) 23:41:38
VBSでダイアログを表示させることってできないものかな?
構造体は使えないはいろいろと細かいところで制約が多い。。
18デフォルトの名無しさん
垢版 |
2007/06/27(水) 11:51:05
VBSについての質問です

WINDOWSからSolarisにFTP接続してファイルを取得するVBスクリプト。
・ /export/home/backup/mysql/の下にあるファイルを取得
・ /export/home/backup/www/の下にあるファイルを取得
・取得したいファイル名をリスト化、そのリストを読み込んで、
1つのファイルをGET.→FTP切断→FTP接続→ファイルGET→FTP切断の繰り返し
・取得したファイルはSolarisから削除
・日付を管理。最新のを5つだけ残す。一番ファイルを削除

こういったVBSはどうつくればいいんでしょうか?
2007/06/27(水) 23:06:22
>>18
ここれは便利なスクリプトを作ってくれとお願いするスレじゃなくて、
自発的に自分が書いた物を晒すスレのような気がするんだが。

漏れの場合は、取得したいファイル名を変数にしてして、毎回
FTPスクリプトを生成して実行する方法にしてる。

ちなみにアカウント情報はcsvにしてるが平文で書いてるので
取り扱いに注意してる。PASVが使いたい場合はGNU版を
使う事。

どっちかっつーとWSHスレ向きジャネ?そのまま質問しても罵倒
されるだけだと思うけど。


20デフォルトの名無しさん
垢版 |
2007/06/28(木) 09:04:40
漏れの場合は、取得したいファイル名を変数にしてして、毎回
FTPスクリプトを生成して実行する方法にしてる。
上司にも同じこと言われましたね、。
なんとなくイメージできても、いざ作るとなると難しくて…
どう作ったらいいのかわからないですね。
2007/06/28(木) 09:43:15
>>20
じゃーまず、ここに取得したいファイル名が固定のFTPスクリプトを
生成するVBSを書いてみてよ。
22デフォルトの名無しさん
垢版 |
2007/06/28(木) 10:19:50
open itsol01
i1125
i1125

get /export/home/backup/mysql/mysql_&YYYYMMDD&.tar.gz
loop
quit

と書いたテキストファイルをコマンドプロンプトで実行したら、指定したファイルは取得できました。
2007/06/28(木) 21:12:15
>>22
日本語不自由な人?
2007/06/29(金) 01:24:58
何この糞スレ・・・
低脳にスレ立てさせんなよ・・・
25VBSって面白いのか?
垢版 |
2007/07/22(日) 23:29:16
みんな高度なプログラムかくね
このくらいでいいんじゃね?
’びびらせるログオンメッセージ書き込むプログラム?
msgb = InputBox("ビビらせるログオンメッセージ指定")
If msg <> "" Then
Set WshShell = WScript.CreateObject("WScript.Shell")
Call WshShell.RegWrite("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\LegalNoticeCaption", "ここにメッセージでも", "REG_SZ")
Call WshShell.RegWrite("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\LegalNoticeText", msgb, "REG_SZ")
WshShell.Popup("終了")
Else
MsgBox("書き込みキャンセルしました")
End If
26VBSって面白いのか?
垢版 |
2007/07/22(日) 23:32:39
訂正 ×ここにメッセージでも ○メッセージ
まあなんでもいいんだが・・。
27VBSって面白いのか?
垢版 |
2007/07/22(日) 23:36:33
これ便利じゃねえなそれに遊び心だな。
誰かウイルススレでもしよう・・・・。
2007/07/29(日) 00:14:47
質問なんだけど
s = 1

test = Array("test")
Set xmlHttp = WScript.CreateObject("Msxml2.SSLHTTPS.3.0")

For i = 0 To s
xmlHttp.open "POST", "test", False
xmlhttp.setRequestHeader "Referer", "test"
xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
xmlhttp.send "test="+test(i)+""
Next

で、https://には対応できない?
Set xmlHttp = WScript.CreateObject("Msxml2.SSLHTTPS.3.0")
を書き換えればいいのかな?解る方書き換え方おせーてください

For i = 0 To s
xmlHttp.open "POST", "https://www.livly.com/reg/rekeep.php?";, False
xmlhttp.setRequestHeader "Referer", "https://www.livly.com/reg/rekeep.php?";
xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
xmlhttp.send "kid="+kid(i)+"&+pname="+pnames(i)+"&iname="+iname(i)+"&nname="+nname(i)+"&pprofile="+pprofile(i)+"&iprofile="+iprofile(i)+"&entry="+entry(i)+""
Next
29名無し
垢版 |
2007/08/08(水) 20:23:43
無理でもない
2007/08/11(土) 17:05:13
CreatoShortcutで
NumLock状態の1をショートカットキーに適用したいのですが

Hotkey="Num 1"
Hotkey="NumLock 1"

どちらでもできません

直接作成は無理なのでしょうか?
2007/08/12(日) 20:21:53
俺もNumlockは悩んだ
なんとかいうAPI使って実行ファイル作ったけど無理だった
敗北の想い出が蘇る
2007/08/14(火) 20:56:42
最終的にVBA使ったりするんだよな……
VBS単体だと操作の自動化は不便
2007/09/06(木) 20:53:01
こんばんは。
C#からVBSのFunction呼び出そうしてるんですが
複数の値を返すことができません。
教えてください。
34デフォルトの名無しさん
垢版 |
2007/09/06(木) 20:54:08
C#側からvbsを走らせるときにC#側のFor文だと処理するたびに
vbsが走るのでだめでした。
vbs自体が複数値を返す処理をするためにはどのようにすればよいでしょうか。
値は、Excelのセルからとります。
2007/09/06(木) 22:08:15
俺が考え付く方法は次の2つ。
1. そのVBScriptの内容をC#へ書き換える。
2. VBScriptをC#プログラム内でホストする。
36デフォルトの名無しさん
垢版 |
2007/09/06(木) 22:13:43
>>35
は1は実行済みですけどVBSにも全く一緒のコードを書くことになって
かなり冗長的なコードになるんですよ。
2もしたが取り出すとき複数の値をとるほうほうが不明です。
2007/09/06(木) 22:27:49
配列を返せばいいのでは?
それが無理なら、C#から戻り値を受け取るオブジェクトを渡すってのはどう。
38デフォルトの名無しさん
垢版 |
2007/09/06(木) 22:33:48
>>37
配列を返すって考えましたけどVBScriptのリターン文ってありませんよね。
関数名 = 処理
↑こんな感じがリターン文なのかな。
2007/09/06(木) 22:40:58
そう。関数内では関数名と同名の変数が存在する。
型は関数の戻り値の型と同じ(と言ってもVBSは常にVariantだが)。
関数を抜けるときにその変数に入っていた内容が戻り値になる。

これはVB系一般で通用する文法。
40デフォルトの名無しさん
垢版 |
2007/09/06(木) 23:14:36
なるほどね。けど、関数名と同名の変数が定義されてるって時点で
配列とか返せないと思うんですがいかがでしょう。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況