WSH

WSHで音声を出す

WSH

自分のコンピュータの性別を簡単に見分ける方法|| ^^ |秒刊SUNDAY リンク先はVBScriptですが WSHだと var ss = new ActiveXObject('SAPI.SpVoice'); ss.speak('I love you');

連続してキーを押す、sendkeys

WSH

WScript.Shellのsendkeysで //xを10回連続押す場合 sendkeys('{x 10}'); //shiftを押しながら、eとcを連続押す場合 sendkeys('+(ec)');のように書けるそうです。 HELPを見れば書いてあるのですけど あまり良く読まない私は、数日前に知りました…。

WSHで経過時間を計る

もっと簡単に計る方法があった気がしますけど とりあえず、現時点でのgetTime()から 開始時のgetTime()を引いた1000/1秒とやらを変換。 小数点以下は切り捨て。 ひょっとしたら、間違ってるかもしれないです。 var num = new Date().getTime(); WSH.sleep(60…

instanceofで配列かどうかをチェック

typeofだと配列は、objectとして扱われてしまいますが instanceofを使って、配列かどうかをチェックすることができました。 var arr = []; var boo = arr instanceof Array; alert(boo); //true配列の場合true、そうでない場合はfalseを返してきます。 Array…

引数を配列に変換

argumentsはlengthで数を取得できるが、配列とは違うようで for〜inでは取得できなかった。 どこからかダウンロードしたヘルプに、引数を配列に変換させるコードが載っていた。 var arr_args = Array.prototype.slice.call(arguments);

toFixed

以前から、切り捨てる関数はないのもかと思っていたけど 昨日、偶然toFixedという便利な関数を知りました。 四捨五入して、引数で指定した小数点の位以下を切り捨てるには var num = 1.539; num.toFixed(2);//1.54この場合、四捨五入して小数点第2位以下を切…

Math.max、minに配列を渡す

applyを使ったら渡せた。 var arr = [9, 3, 5, 2, 20]; var num_max = Math.max.apply(null, arr); var num_min = Math.min.apply(null, arr);

booleanも引数や変数に?

↓演算子? n > 3 だとかも変数や引数にできるんですね。 true、falseもできるから常識なのかな? var num = 9; var boo = (num > 8); alert(boo ? 1: 0);

prototypeを使うとメモリの使用量が減るらしい

prototypeをいまいち理解できていないし どういう時に使えば良いのかもわからんけど メモリの消費が減るようなので これからは無理して使ってみようかと思う。 どういった事情で減るのかも、全く理解できないけど。 使わなくてもエラーでまくりなのに、はて…

文字列を複数行に分けて書く

文字列が長い場合、複数行にして書いてるけど var str = 'aaa' + 'bbb' + 'ccc' or var str = [ 'aaa', 'bbb', 'ccc' ].join('\n'); つい先程、どこかの外人のソース見て知ったのは var str = 'aaa\ bbb\ ccc';\を付ければ、'や"は最初と最後だけに付ければ…

数をソート

数字をソートする場合 var arr = [3, 10, 1]; arr.sort(function(a, b) { return a - b; //b - aにすると、10,3,1 }); alert(arr); //1,3,10こんな感じに書けば、数字をソートできるのは知ってました。 しかし、文字の長さ順にするのに var arr = ['aa', 'aa…

配列で今頃わかったこと

var arr = ['a', 'b', 'c']; または var arr = {a: 1, b: 2, c: 3}; for(var i in arr) { WSH.echo(type of i); //string WSH.echo(i + 3); //iが2なら23、aならa3 };この場合iだけど、inでのiはstring型で toString()など付けなくても良かったんだな。

WSHでIEのコンテキストメニューを出す

WSH

WSHで、ブラウザの右クリックのコンテキストメニューを出すのに Wscript.Shellオブジェクトのsendkeysに、何を指定するれば良いのかわからず 検索で調べてみると、ショートカットキーだと「Shift+F10」とのことなので var wss = WScript.createobject('wscr…

timeout

WSH

以前、WSHを指定した秒数以上実行させない方法を書きましたけど、これとは別の方法がありました。 Windows Script Programming: WSHスクリプトの強制終了は避けましょう。 ここを見て知りましたけど、timeoutを使うと楽でした。 JScriptの場合、直接実行する…

WSHで外部ファイルを読み込む

WSH

UWSCのcallのようなものがWSHでは無理なのかと思ってたけど 外部ファイルの内容を読み込んで、それをevalに渡すだけという ごく単純な方法で出来る事に今頃気付いたw 読み込む外部jsファイル(aa.js)の内容。 function msg(str) { WSH.echo(str); }; msg('te…

WSHを指定した秒数以上実行させない方法

WSH

これも偶然、先程あるサイトで知ったことで jsやvbs、wsfファイルなどの右クリック→プロパティに スクリプトというタブがあり、そこに 'スクリプト実行時間を秒単位で指定する' という項目がある。 その項目をチェックして秒数を指定すると 同ディレクトリに…

WSHでDLLを使う?

WSH

コマンドラインからマウスを操作する方法 (rundll32.exeで動くDLLの作成法) - 主に言語とシステム開発に関して WSHでdllを使う方法というのがよくわからなかったけど、↑ここのおかげでなんとなく理解できた。 rundll32.exeに渡せば、限られてはいるようだ…

WSHでフォルダウィンドウの操作

WSH

かなり前に、どこからか仕入れた情報をテキストにして保存していたのがあったので そこからわかった事だけを。 //例)開いているC:aaa\bbbのフォルダの名前とURLを表示させてから閉じる。 var app = WSH.createobject('shell.application'); var win = app.w…

WSHでWindowsのシャットダウン、再起動

WSH

最後の引数が0だとログオフ、1でシャットダウン、2で再起動ですと。 JScriptでやってみた。 var log_off = 0; var shut_down = 1; var re_boot = 2; WSH.createobject('wscript.shell').run( 'rundll32.exe shell32.dll,SHExitWindowsEx ' + shut_down );再…

送った音ファイルを順番に演奏するJScript

WSH

かなり前に、WSHでwavファイルを開いて演奏が終わると自動で閉じる という方法を知ったけど WSH.createobject('wscript.shell').run('sndrec32 /play /close ' + file_path);これだとwavファイルだけだった。 検索してみると、wavは勿論、midやmp3も同じよう…

ハッシュのキーに変数を付加させたい

ハッシュのキーに変数を足したい場合、括弧を含めてStringにしたものを evalで変換すればいいらしい。 var str = '01'; var hash = eval("({test" + str + ": 'AAA'})"); alert(hash.test01); //AAA 参考にしたサイト jsonオブジェクトをevalできないエラー …

JavaScriptのsplitで正規表現を使う使わないとでは挙動が違う?

正規表現で区切ると空白は省略されるけど 使わないと空白も数に入ってしまった。 var str = '/a//b'; var zupa = str.split('/'); //,a,,b と表示 alert(zupa.join(',')); //,a,,b zupa = str.split(/\//); //a,b と表示 alert(zupa.join(','));これでドン詰…

WSHからHTAファイルを作成せずにHTAを実行

mswsh.exeとやらにパラメーターとして javascript:(source)のようにスクリプトのコードを渡すと実行される。 半角スペースは'%20'(他に方法があるかも) WSHのjscriptからhtaを実行させて、inputにtestと表示させてみる。 var wss = WSH.createobject('wscr…

opentextfile、copyfileの第三引数

WSH

WSHのscripting.filesystemobjectのメソッドとやらのopentextfileとcopyfileの第三引数をtrueにすると 書き込みで上書きか追記の場合、第三引数をtrueにすると ファイルが存在しない場合作成される。 opentextfile(filepath, 2, true)第三引数をtrueにすると…

読んだら閉じる

WSH

少し前にVBScriptで書いたものを、試しにJScriptに書き換えてみたのだが どうしてもファイルを移動させる個所がエラーになる。 だけどその時は原因がわからなかったので、諦めて放っておいた。 その原因が先程わかった。 読み込んだファイルを閉じていないか…