WSHってかvbsは外部コマンドも呼びづらくパイプ処理も面倒で
かといってWin32APIも呼び出せず単体ではモジュール化もできないと制約だらけだな。
これほど使いづらい言語はお目にかかったことがない。
>WSHってかvbsは外部コマンドも呼びづらくパイプ処理も面倒で
>かといってWin32APIも呼び出せず単体ではモジュール化もできないと制約だらけだな。
自分の無知を言語のせいにする典型だなw
言語を使いこなせない狐が酸っぱい葡萄と言うんだって?
WSHでAPI呼べるの?
そういうCOM使って呼べる
>>955 WSHでもAPIは呼べるよ
ActiveXって種類のAPIなら直接ね
そしてWin32APIって種類のAPIはActiveXから呼べるので
結果WSHからWin32APIを呼ぶことも可能
よーするに呼べないってことですね。
馬鹿には呼べないってことですね。
vbaは外部コマンドも呼びづらくパイプ処理も面倒で
言語仕様もひどいもんだしな
>ステップ実行
1行ごとにStop文
>外部コマンドも呼びづらくパイプ処理も面倒
なのは"WScript.Shell"がへぼいせいで、もっといいCOMを作れっていうの
COM作れるんだったらそっちの開発環境で完結すればいいんじゃね
なにもWSHなんぞ使わんでも
MSに文句を言ってるんだと思った
>なのは"WScript.Shell"がへぼいせいで、もっといいCOMを作れっていうの
だれか作って
コンソールを非表示にできる
StdOut/StdErrにデータがあるかブロックしないで調べられる/取り出せる
できればStdInにreadが掛かってるか分かる
WSHにのってるまともなスクリプト使えば一瞬で解決だろ
追加
AppActivateでなくFindWindowどまりの機能
SendMessageもついでに
969 :
デフォルトの名無しさん:2008/04/16(水) 21:02:45
COMに手を出す時点で、WSHに拘る理由がなくなるな。
そのまま他言語で書いた方が早い。
一時的に目的を達成するだけならね
しかしそういう状況のみではないんだよ
もっと視野を広く持とう
972 :
970:2008/04/16(水) 22:00:06
むしろ、WSHに拘っている方が視野が狭いと思ったわけで。
>>966や
>>968程度の機能でいちいちCOMコンポーネント書いて、
使うPC毎にいちいちregsvrして、って唯のギャグだろ。
そうでもないか
>>972 そうそう。
だから、WSH付属のコンポーネントがもっと高機能だったらよかったのにと思う。
何故自分にレス?
自意識過剰w
オプションって//じゃなくて/でもいいの?
1つでも動くっぽいんだけど
cscript /nologo xxxxxxxxxxx
って感じで
おk
/と//になんか違いはあるの?
スクリプトのファイル名の後にオプションを記述するときは
//でなければならない。
へー
cscript -nologo xxxxxxxxxxx
でもよい
どうでもよい
お尋ねします。 vbs で
@ WSHウィンドウのタイトルを設定するにはどうすればよいのか?
A [OK] ボタンが押されるのを待たずにすぐ次の処理を実行したい
>>985 WSHウィンドウって何?
[OK] ボタンって、なんのボタンよ?
987 :
985:2008/04/20(日) 22:06:40
すいません、自己解決です。
Set WSHShell = Wscript.CreateObject("Wscript.Shell")
WSHShell.Popup ”表示する文字列”, 0, "タイトルの文字列", vbOKOnly
0 : メッセージボックスを自動的に閉じるまでの秒数
vbOKOnly : 表示するボタンの種類
でした。
>>985 1. MsgBox "プロンプト文字列", vbOKOnly, "設定したいタイトル文字列"
2. はそもそも出来るのかどうかすら怪しい。時間が来たら自動的に閉じて処理続行ならあるが。
>>986 >WSHウィンドウって何?
MsgBox関数で出てくるようなGUIオブジェクトの事言ってんじゃないの?
>[OK] ボタンって、なんのボタンよ?
MsgBox "", vbOKOnly
↑これのことじゃね?w
Const ForWriting = 2
Set WshShell = WScript.CreateObject( "WScript.Shell" )
Set objFSO = WScript.CreateObject( "Scripting.FileSystemObject" )
WshShell.CurrentDirectory = objFSO.GetParentFolderName( WScript.ScriptFullName )
strSend_Enter = strSend_Enter & "WScript.TimeOut = 3" & vbCrLf
strSend_Enter = strSend_Enter & "Set WshShell = WScript.CreateObject( ""WScript.Shell"" )" & vbCrLf
strSend_Enter = strSend_Enter & "Do Until WshShell.AppActivate( ""Windows Script Host"" )" & vbCrLf
strSend_Enter = strSend_Enter & " WScript.Sleep 100" & vbCrLf
strSend_Enter = strSend_Enter & "Loop" & vbCrLf
strSend_Enter = strSend_Enter & "WshShell.SendKeys ""{ENTER}"""
Set objSend_Enter = objFSO.OpenTextFile( "Send_Enter.vbs", ForWriting, True )
objSend_Enter.Write strSend_Enter
objSend_Enter.Close
WshShell.Run "Send_Enter.vbs"
WScript.Echo "test"
objFSO.DeleteFile( "Send_Enter.vbs" )
wsf使えば?
再帰とか
msagentだな
.
.
1000ならジュースでも飲むか
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。