■ このスレッドは過去ログ倉庫に格納されています
お前ら、wsh使ってますか? Part8
- 799 :名無し~3.EXE:2015/11/08(日) 23:50:23.04 ID:V3wje+U4.net
- >>796
方法その一
259 名前:名無し~3.EXE[sage] 投稿日:2011/09/26(月) 00:25:36.97 ID:CKbYoUCB
WSHスクリプトを64/32bitが違っていたら起動し直す。
http://scripting.cocolog-nifty.com/blog/2011/02/wsh6432bit-b32d.html
方法その二
32bitアプリのファイラを使ってvbsファイルを操作する
- 800 :796:2015/11/10(火) 22:41:08.95 ID:HDYxoiSR.net
- >>798
ありがとうございます。ひとまず動くようになったみたいです。本格稼働してみて何かあればまた相談させてください
>>799
なんか難しそうですね。動かないスクリプトの先頭行にこれを書けばいいのでしょうか
解読してみます
- 801 :名無し~3.EXE:2015/11/14(土) 19:19:55.55 ID:RNO50Lcc.net
- 横からだけど%*ってどういう意味だっけ
- 802 :名無し~3.EXE:2015/11/15(日) 00:45:26.56 ID:t8TVpiZ9.net
- >>801
コマンドラインのパラメータ全部。
いつのまにかイテレータがうごくようになってるな。
- 803 :名無し~3.EXE:2015/11/23(月) 23:05:48.47 ID:nD0rlIIZ.net
- Win10 th2でES6 Classesを使うテスト
http://i.imgur.com/DecbQfs.jpg
- 804 :名無し~3.EXE:2015/11/27(金) 07:18:59.11 ID:dOr9jkTm.net
- var a;
a = eval("[\"abc\",\"def\"]");
WScript.Echo(a[0]);
→abc
は実行出来るけど
var a;
a = eval("{\"abc\":\"def\"}");
WScript.Echo(a["abc"]);
はevalでエラーになります。これはどうにもならないのかな・・・
- 805 :名無し~3.EXE:2015/11/27(金) 10:21:31.24 ID:arQh0ET8.net
- >>804
a = eval("({\"abc\":\"def\"})");
- 806 :名無し~3.EXE:2015/11/27(金) 10:31:50.40 ID:EYEBJY2Y.net
- >>804
ttp://language-and-engineering.hatenablog.jp/entry/20081022/1224597688
{x:1}
は,なんと「ラベル付きの文が中括弧でくくられている」とみなされ,
obj = eval( "{x:1}" );
の結果,objの値に数値1が代入される。
プロパティが複数ある場合には,
{x:1, y:2}
の最初の x: のあとの部分が「文」にならないので,「セミコロンがありません」というエラーになる。
一つの解決法は,丸括弧 () でくくること。
var str = "({x:1})";
とすれば,evalで評価した時にハッシュとして正常に解釈される。
丸括弧によって「中身はオブジェクトです」という意思表示ができるのである。
- 807 :名無し~3.EXE:2015/11/27(金) 10:53:52.55 ID:S4fdjd37.net
- へー
- 808 :名無し~3.EXE:2015/11/27(金) 11:01:56.93 ID:OG/mUtfI.net
- ('A`)
- 809 :804:2015/11/30(月) 07:37:01.15 ID:cxJdiq6h.net
- >>805-806
おぉ、出来ました。ありがとうございました
- 810 :名無し~3.EXE:2015/12/05(土) 13:10:21.50 ID:HCxkbB1B.net
- ADODBのStreamで限定的ながらバイナリファイルを読み書き出来ますけど
裏技っぽい感じですしWSHが使えるすべてのWindowsで期待した動作をするのでしょうか?
この実装でバイナリファイルを正常に読めることを前提としたスクリプトの配布を
考えているのですがちょっと不安です
- 811 :名無し~3.EXE:2015/12/05(土) 13:52:03.81 ID:8/N/dh/l.net
- >>810
多分大丈夫っぽいけど、書き方によってはセキュリティソフトの一部(Aviraとか)で誤検出されるので注意
- 812 :名無し~3.EXE:2015/12/05(土) 15:13:48.75 ID:K/bXQx4S.net
- >>810
裏技っぽいですか?
- 813 :名無し~3.EXE:2015/12/05(土) 21:39:57.73 ID:TC+kSar6.net
- むしろこれがないとバイナリ扱えないでしょ画像を扱えなくなる
裏技っぽいとか今更言われても困るわ
- 814 :名無し~3.EXE:2015/12/05(土) 22:45:26.11 ID:HCxkbB1B.net
- ありがとう。大丈夫らしいとのことなのでとりあえず組んでみるかな・・・
あまりにも遅かったらRubyにしよう
>>812
読み込んだ値をテーブルで変換したりビット演算したりしないと
正しい値を得られない仕様を正攻法と呼ぶのは違和感があります
このために1byteずつしか読み込めませんし
- 815 :名無し~3.EXE:2015/12/05(土) 23:05:01.61 ID:4BdTphf4.net
- ドキュメント化されてる機能が裏技?
https://msdn.microsoft.com/ja-jp/library/cc364272.aspx
- 816 :名無し~3.EXE:2015/12/05(土) 23:23:02.80 ID:8/N/dh/l.net
- >>815
ADODBそのものじゃなくて、
iso-8859-1で1バイトずつテキストリードして変換する方法がイリーガルだと言ってるんだろう
- 817 :名無し~3.EXE:2015/12/05(土) 23:31:52.89 ID:8/N/dh/l.net
- これは>>814のレス内容からの推測なので違ってるのかも知れない
jscriptだと勝手に思ったし、jscriptでも
wsfとかでvbscript連携して読むなり
Msxml2.DOMDocumentでhex文字列に変換するなり別の方法はあるとは思う
- 818 :名無し~3.EXE:2015/12/06(日) 00:42:46.08 ID:F68eazf1.net
- VBScriptの記事だとこの辺か。
ttp://history-music.net/vbscript-base64-hex-binary/
ググると「iso-8859-1で...」みたいなページが多いから勘違いするのも仕方がないけど,
Microsoft.XMLDOMかMsxml2.DOMDocumentオブジェクト使って,
16進文字列とバイナリを相互変換する方がいいよ。
1byteずつなんて制限はないし,十分早いと思う。
- 819 :名無し~3.EXE:2015/12/07(月) 17:51:14.07 ID:vQfNZVDF.net
- ごめん、変換とかいうはなしはどこから出てくるんだろう。
「バイナリファイルを正常に読めることを前提」とあるから
まあバイナリファイルを読んで何かするんだろうけど。
- 820 :名無し~3.EXE:2015/12/07(月) 17:53:50.73 ID:UNNqcniz.net
- >>819
>>814に以下のようにあることからの推測さ
>読み込んだ値をテーブルで変換したりビット演算したりしないと
>正しい値を得られない仕様を正攻法と呼ぶのは違和感があります
>このために1byteずつしか読み込めませんし
- 821 :名無し~3.EXE:2015/12/07(月) 17:57:55.04 ID:vQfNZVDF.net
- >>816
なるほど。、ADODB云々というより「JScriptでバイナリ操作をする」ということ自体のことを言ってるんだろうか。
たぶん。
- 822 :名無し~3.EXE:2015/12/07(月) 18:05:05.11 ID:vQfNZVDF.net
- この辺の話か。なるほど。
FileStream.js - binary file manipulation for WSH
http://hp.vector.co.jp/authors/VA033015/fsjs.html
前提条件/制約とのトレードオフだろうね。
「OSの素のままの状態でスクリプトだけで動く」必要があるならWSHでやるしかなかろう。
- 823 :名無し~3.EXE:2015/12/07(月) 18:12:43.86 ID:UNNqcniz.net
- >>822
だから結論はそんな歪なことしないで>>818の言うようにしろってことさ
WSHだけって言っても、ADODB使うのならMsxml2.DOMDocumentも使っても同じことだろ
- 824 :名無し~3.EXE:2015/12/07(月) 18:32:53.45 ID:vQfNZVDF.net
- >>823
まったくその通りだ。
おかげでこんなのを見つけた。ありがとう。
JScriptでBase64 on @Qiita
http://qiita.com/tnakagawa/items/beaec98fd64b20894245
- 825 :名無し~3.EXE:2015/12/10(木) 00:17:53.24 ID:n+FmGR1Q.net
- >>822
そのプログラムにはバグがあります。
ファイル終端付近に 0xBF があると,数バイトを読み落とします。
たとえば,半角カタカナで
クソミソ
とだけ書かれたファイルを dump.js に与えると,最初の1バイトしか出力されません。
- 826 :810:2015/12/13(日) 20:21:45.77 ID:E2f6+XvN.net
- ありがとうございます。試していて大分かかりました
>>818
>ググると「iso-8859-1で...」みたいなページが多い
はい、その通りでiso-8859-1を使う方法しかないと思っていました
ADODB.Stream&Type=1でAviraが騒ぐ以外は問題なさそうなので
これでいこうと思います。ありがとうございました
byte列の長さを容易に得られない?のがちょっと面倒ですね
- 827 :名無し~3.EXE:2015/12/14(月) 01:24:17.95 ID:ZAD57Ykk.net
- >>826
> byte列の長さを容易に得られない?のがちょっと面倒ですね
確かに。
バイナリオブジェクトには長さどころか,プロパティもメソッドも何もないように見えます。
ADODB.Stream で Read する前後の .Position の差を覚えておくのが最良ですが,
後から得ようとするのも,困難というほどでもないですね。
(1) ADODB.Stream で .Position = 0 からバイナリを Write した後の .Position を返す関数を作る。
(2) Msxml2.DOMDocument で .nodeTypedValue へバイナリをセットし,.text.length / 2 を返す関数を作る。
どちらもクロージャにした方が速いですね。
- 828 :名無し~3.EXE:2015/12/21(月) 08:04:57.72 ID:oIXUP+md.net
- var fs = new ActiveXObject( "Scripting.FileSystemObject" );
fs.DeleteFile( "B:/VwCache/*.vch" );
fs = null;
これが該当ファイル無しのときエラー出なくしたい
こんなレベルの質問扱ってるスレ教えてください
- 829 :名無し~3.EXE:2015/12/21(月) 08:58:20.76 ID:9BHMYjvS.net
- >>828
FileExistsでファイルがある場合に消す。
もしくは、on error resume nextでエラーを無視するとか。
- 830 :名無し~3.EXE:2015/12/21(月) 15:26:06.84 ID:tdjWLmvu.net
- いやjscriptだろ
try 〜 catch(e)で囲むだろ
だけど、*.vchがファイル名を隠しているんじゃなく、
ワイルドカードで複数ファイル指定のつもりならダメだろ
- 831 :名無し~3.EXE:2015/12/21(月) 15:30:35.86 ID:tdjWLmvu.net
- あ、ワイルカード使えるのか、知らんかった
- 832 :名無し~3.EXE:2015/12/22(火) 23:22:55.99 ID:XxXraRyZ.net
- >>828
ここでいいのでは?
- 833 :名無し~3.EXE:2015/12/23(水) 15:52:38.58 ID:8RHLFxCl.net
- >>828
ワイルドカードで指定してファイル削除
http://okwave.jp/qa/q5625898.html
- 834 :名無し~3.EXE:2016/01/02(土) 02:41:57.72 ID:8rznOPo8.net
- JScriptで展開されていないコマンドライン文字列を取得することは出来ませんかね?
コマンドラインオプションを改変するラッパーを作りたいのですがWScript.Arguments
だと展開されて"が削除されていて再構成するのがかなり手間になってしまいます
- 835 :名無し~3.EXE:2016/01/02(土) 18:34:26.41 ID:J4AIyaR1.net
- >>834
どうしても,というなら方法はないでもない。
WMIから自分自身のプロセスを見つけ出せば,
生のコマンドライン(Description)が得られるので,それを解析すればよい。
wsh WbemScripting.SWbemLocator Win32_Process
あたりをキーワードにググってください。
- 836 :名無し~3.EXE:2016/01/05(火) 17:47:40.34 ID:tW2wW1r9.net
- >>835
面白そうなので試してみた
自プロセスを特定するのと引数から無効なものを除外しなくてはならないのがマイナス点
・自プロセスの特定
wscript.exeまたはcscript.exeでイメージ名を検索するだけでも大抵は大丈夫だろうが
もう少し厳密にやろうとすると引数に自scriptファイル名があるかどうかをチェック
さらに多重起動の場合も考慮してもっと厳密に特定しようとするなら
何か子プロセスを起動(cmd.exeとか)し、そのPIDでクエリーを限定し、
親PID(これが自プロセスになる)を求める
もっと簡単な方法何かある?
・引数からcscript.exeの引数を削除する
例えば、 cscript xxx.js "a" 1 "b" //nologo "c"
とかだと、//nologoは取り除かないといけない
- 837 :834:2016/01/05(火) 21:10:05.30 ID:MtYMuNGE.net
- ありがとうございます。作っている途中で親となるプログラムがcscript.exe hoge.jsな感じで
呼び出せないことが判りバッチファイルもどきになりました・・・
@if(0)==(0) ECHO OFF
set COMMANDLINE=%CMDCMDLINE%
cscript.exe //nologo //E:JScript "%~f0"
set COMMANDLINE=
GOTO :EOF
@end
var shell = new ActiveXObject("WScript.Shell");
var env = shell.Environment("Process");
command_line = env.Item("COMMANDLINE")
WScript.Echo(command_line);
- 838 :名無し~3.EXE:2016/01/05(火) 21:41:47.92 ID:tW2wW1r9.net
- >>837
直接batを起動する場合はいいけど、コマンドプロンプトから起動するとダメですぜ
それにbatでいいなら、
@echo %*
の一行で終わる
- 839 :834:2016/01/05(火) 22:43:02.46 ID:MtYMuNGE.net
- >>838
親となるプログラムは直接起動してくれるので問題ないです
コマンドプロンプトから起動する場合はcmd.exe /cを付ければ良いかと
実際には>>837の後ろで正規表現を使いコマンドラインオプションを
処理しているのでバッチファイルのみでは厳しいです
- 840 :名無し~3.EXE:2016/01/11(月) 22:00:15.25 ID:J7oSqT1d.net
- var fso = new ActiveXObject("Scripting.FileSystemObject");
var ws = WScript.CreateObject("WScript.Shell");
WScript.Echo(fso.GetAbsolutePathName(args(0)));
「ハート?はーと.txt(?はユニコードのハートマーク)」と「ハート_はーと.txt」が同じフォルダに有る場合に、
ユニコードハートマーク付きのファイルを上記のバッチにD&Dするとアンダーバーの有る「ハート_はーと.txt」が返ってくる。
js vbs wsf 全部だめ。
アンダーバーだけでなく、ハートマークの場所にascii文字が一文字入る一字違いのファイルを誤検索しているみたい。
batファイルでフルパスをechoさせると正しい名前が返ってくるので、bat経由でjsに引数が渡すと正常になった。
でもbat使うのは癪なのでwshだけで回避する方法ありませんか?
- 841 :名無し~3.EXE:2016/01/11(月) 23:36:21.38 ID:kaus+mbm.net
- >>840
上手くいくか判らないけどWMIで自プロセスのコマンドライン文字列を取得するのはどう?
WSHだとプロセスIDの取得が難しいので工夫する必要があるけど
- 842 :840:2016/01/12(火) 00:23:54.95 ID:zJG24SyX.net
- >>841
>>834からのやり取りを読んだけど、自分にはまだ難しすぎる
- 843 :名無し~3.EXE:2016/01/15(金) 14:05:01.93 ID:1cRaToeH.net
- Windows7 64bitでIE10からIE11にしたら今まで使えていたログインスクリプトでエラーが出るようになりました
原因が分からないので助けてください
IE = WScript.CreateObject("InternetExplorer.Application");
IE.Visible = true;
IE.Navigate("https://hogehoge/login");
WScript.Sleep(10000);
IE.Document.forms(0).elements("id").value = "hogeID";
IE.Document.forms(0).elements("password").value = "hogePASS";//フォームに入力はできている
IE.Document.forms(0).all.tags("INPUT").item(2).click();//←IE11ではここでエラーが出るようになった
WScript.Quit(0);
エラーの内容は「IE.Document.forms(...).allはNullまたはオブジェクトではありません」です。
よろしくお願いします。
- 844 :名無し~3.EXE:2016/01/15(金) 19:15:04.74 ID:m4ouY6Y+.net
- submitじゃいかんのか?
- 845 :名無し~3.EXE:2016/01/15(金) 20:07:12.70 ID:2oeFgdaL.net
- ちょっとは自分で調べようぜ、拾った物の使い回しで意味分かってないんだろうけど
原因はIE11からdocument.all等の独自APIが廃止されたから
そもそも今時allとかtagsとかつかわねーよ
- 846 :名無し~3.EXE:2016/01/16(土) 20:44:38.70 ID:4ar8fcff.net
- >>842
主観だけどWindows上で動くスクリプト言語でUnicodeの引数は結構鬼門な印象がある
最近RubyでUnicodeな引数を受け取りたくなってRubyスレで聞きながら試したけど
WMIかWin32APIでコマンドライン文字列を取得するくらいしか手は見つからなかった
スクリプトエンジンだけではなくcmd.exeとの絡みもあるので使える選択肢は少ないと思う
>>837の方法が嫌ならWMIから取得するしかないんじゃないかなと個人的には思う
- 847 :843:2016/01/20(水) 19:33:11.23 ID:FcdOnjAY.net
- >>844>>845
遅れましたがお答えありがとうございました
エラーが出ていた箇所をこれにして動くようになりました
IE.Document.forms(0).getElementsByTagName("input")[2].click();
- 848 :名無し~3.EXE:2016/02/04(木) 19:41:28.05 ID:WGr+Whcp.net
- jsにデストラクタってないの?
ラップしたエクセルの終了処理をやらせたいんだが
- 849 :名無し~3.EXE:2016/02/04(木) 23:22:04.84 ID:pXBj/cEo.net
- >>848
VBSでいう Set objExcel = Nothing 相当の処置のこと?
JSだと objExcel = null; でいいみたい。
- 850 :名無し~3.EXE:2016/02/04(木) 23:34:03.33 ID:z164XvtZ.net
- >>849
Class ExcelWrapper
Private Sub Class_Terminate
' VBSでいうならこれ
End Sub
End Class
jsの言語仕様としては無いんだろうけどなんかトリック的に実現する方法はないんか
- 851 :名無し~3.EXE:2016/02/05(金) 08:00:12.79 ID:gYQ45IAX.net
- >>848
OLEで起動したExcelがスクリプトが終了するまで終了してくれないという話?
- 852 :名無し~3.EXE:2016/02/05(金) 18:33:52.63 ID:YVp5K4JV.net
- >>851
どこからも参照されなくなったら、メンバのExcel.ApplicationをQuitするようなオブジェクトを作れるかって話
やっぱり無理くさいな(´・ω・`)
- 853 :名無し~3.EXE:2016/02/05(金) 18:52:01.85 ID:ZPb/lDba.net
- finallyでEXCELの終了処理でいいんじゃないの、それともフックの解放とかそういう意味なの
- 854 :名無し~3.EXE:2016/02/05(金) 18:56:57.56 ID:YVp5K4JV.net
- >>853
finallyとか面倒くさい。オブジェクトにやらせたい
newしたらエクセルが立ち上がり、変数がスコープから外れたら自動的ににエクセルが終わるようにしたい
フックの解放っていうのはよくわからん(´・ω・`)
- 855 :名無し~3.EXE:2016/02/05(金) 22:48:20.11 ID:0wOAx0Cl.net
- 無いものねだっているようにしか見えないんだが
WSHに限らずGCを持つ言語でデストラクタが
あるのってほとんど無くね?
ファイナライザを持つ言語ならそれなりにあるみたいだけど
これは実行される保証がないしな
- 856 :名無し~3.EXE:2016/02/05(金) 23:06:43.00 ID:qE3E4htL.net
- 結論は、無いものは諦めて、newした者が責任を持って解放する
- 857 :名無し~3.EXE:2016/02/06(土) 00:30:26.79 ID:RaAe5E/b.net
- ふぁっく(´・ω・`)
- 858 :名無し~3.EXE:2016/02/09(火) 06:40:42.12 ID:lLVVtK0e.net
- (new ActiveXObject("Scripting.FileSystemObject")).DeleteFile(WScript.ScriptFullName,true);
みたいにやったら自分自身のファイルを削除できますが
実行開始された後はファイルがどうなろうが問題ないと考えていいでしょうか?
- 859 :名無し~3.EXE:2016/02/09(火) 21:45:46.64 ID:4bXYgicd.net
- >>858
捨てスクリプトファイル作って試してみればいいじゃない
- 860 :名無し~3.EXE:2016/02/10(水) 06:37:45.67 ID:t7gHrzUx.net
- やってみた限りは問題なさそうなのですが
絶対に問題がないと言えるのか?と思いまして
- 861 :名無し~3.EXE:2016/02/10(水) 07:50:58.34 ID:t7gHrzUx.net
- アクティブなウインドウを判定して、
キーを送りたいアプリがアクティブならキーを送る、ということをしたいと思い
探していたのですが
http://stackoverflow.com/questions/26341753/how-to-find-the-window-title-of-activeforeground-window-using-window-script-ho
ここを見ると、WSHでは出来ないというようなことが書いてありました
出来て当たり前の簡単な処理だと思うのですが、本当に出来ないのでしょうか?
- 862 :名無し~3.EXE:2016/02/10(水) 11:57:56.00 ID:9GMi27N7.net
- WSHで出来なければ出来る言語でやればいいだけ
こんな所でゴネてないで自分の不勉強を猛省しろ
- 863 :名無し~3.EXE:2016/02/10(水) 13:12:04.28 ID:t7gHrzUx.net
- WSHのいいところは簡単に使えるところなので
わざわざたとえばCを使わないといけないとなると本末転倒なのですよ
どう考えても実装も難しくもない、あって当たり前の機能ですよね
本当にないのかどうかは知りませんが
- 864 :名無し~3.EXE:2016/02/10(水) 14:06:37.17 ID:HysS88Z6.net
- >どう考えても実装も難しくもない、あって当たり前の機能
だったらそーゆー機能があるCOMを自分で実装して
それをWSHから呼び出せばいい
難しくないんでしょ?
- 865 :名無し~3.EXE:2016/02/10(水) 14:50:28.68 ID:t7gHrzUx.net
- いや、逆に難しいと思うんですか?
考えたら分かりますがめちゃくちゃ簡単ですよね?
「面倒くさい」と「難しい」は違うのです
分かりますね?
- 866 :名無し~3.EXE:2016/02/10(水) 16:18:49.46 ID:9GMi27N7.net
- いくら煽っても「ほら出来るやん」なんて誰も調べてくれないしやってくれないよ
- 867 :名無し~3.EXE:2016/02/10(水) 18:27:12.59 ID:CIhAnhaS.net
- >>861
そんな事やろうと思ったことないし
「出来て当たり前」「あって当たり前」とか言われても違和感しかない
- 868 :名無し~3.EXE:2016/02/11(木) 03:13:32.67 ID:co5P5jGL.net
- そもそもwshの組み込み機能とは違い、COMの作り方次第になってくるんだから
そういうCOMを作るか探すかすればいい
WIN APIを呼び出すCOMなんてのも世の中には幾つかあるぞ
- 869 :名無し~3.EXE:2016/02/12(金) 09:42:04.77 ID:w4vWZ7y9.net
- windowキーは^{ESC}で送れると分かったのですが
windowキーを修飾キーとして使う場合はどう書けばいいですか?
- 870 :名無し~3.EXE:2016/02/12(金) 11:40:40.49 ID:w4vWZ7y9.net
- var result = GetObject("winmgmts:\\\\.\\root\\cimv2").
ExecQuery("Select * from Win32_Process where Name='hoge.exe'")
みたいな方法で返ってきたオブジェクトから
一つ目のアイテムを取得するにはどうすればいいですか?
ネットで探すと、
var list = new Enumerator(result);
みたいな形でEnumeratorに変換してから回すのが普通のようですが
結果が一つと分かっている時にこのやり方をするのは気持ち悪いです
- 871 :名無し~3.EXE:2016/02/12(金) 12:15:22.45 ID:1hkdGDkD.net
- >>869
Windowsキー自体は多分送信できない
^({ESC})は、CTRL+ESCの送信であって、「スタートメニューを開く」という機能になる
結果はWindowsキーと同じ「スタートメニューを開く」という動作をするだけだと思う
>>870
配列等へのアクセスと異なり、COMのコレクションへの唯一のアクセス方法が
Enumeratorなので他の方法は無いと思われる
(VBSを呼び出してfor eachを使うと言うのは無しの方向で)
- 872 :名無し~3.EXE:2016/02/12(金) 14:47:51.21 ID:w4vWZ7y9.net
- >>871
むーん、そうですか
ありがとうございます
- 873 :名無し~3.EXE:2016/02/12(金) 19:11:38.98 ID:Ax0/YVze.net
- 関数でラップしなさいよ
- 874 :名無し~3.EXE:2016/02/12(金) 21:58:43.39 ID:CAT/93Hm.net
- >>870
Vista以降ならItemIndexメソッドが使える
XPならEnumeratorで頑張れ
GetObject("winmgmts://").ExecQuery("Select * from Win32_Process where Name='hoge.exe'").ItemIndex(0)
- 875 :名無し~3.EXE:2016/02/12(金) 23:07:45.95 ID:CAT/93Hm.net
- SWbemObjectSet.ItemIndex method
https://msdn.microsoft.com/en-us/library/windows/desktop/aa826600(v=vs.85).aspx
- 876 :名無し~3.EXE:2016/02/21(日) 12:12:25.97 ID:14Rd5RPG.net
- やや亀レスだが,全部まとめて AutoItX をインストールというかdllを登録すればできる。
http://blog.livedoor.jp/blackcode/archives/1795724.html
登録しなくてもマニフェスト作ればできる。
>>861 は AutoItX の WinActive と Send を使え。
>>869 は AutoItX の Send('{LWIN}') か Send('{RWIN}') を使え。
- 877 :名無し~3.EXE:2016/02/22(月) 21:04:18.77 ID:jrwG3GCh.net
- WSHのメリットってWindows標準である事だと思う
オートメーションサーバーを持ち込むくらいならRubyなりPythonなりを
持ち込んで利用した方がより効率的に開発・実装出来るのでは
- 878 :名無し~3.EXE:2016/02/22(月) 22:34:35.27 ID:QBaH99ha.net
- >>877
Pythonだけではできないから Sikuli や WebDriver や AutoItX があるわけなのだが
- 879 :名無し~3.EXE:2016/03/01(火) 09:01:36.69 ID:iP3HRupc.net
- エンジニアのモチベーションを下げる方法
ttp://d.hatena.ne.jp/jflute/touch/20160221/downmoti
IT系のエンジニアは、なかなか世間一般の方々から、
やっていることを理解されにくいものです。
何が簡単で、何が難しいのか、なかなかわからないもの。
しかも、そう思われていることを、
エンジニア自身よくわかっていて、
それがコンプレックスでもあったりします。
開発しようとしている画面があったとして、
画面の見た目から来るイメージと、
実際のプログラミングの難しさはなかなか比例しません。
簡単そうな画面でも作るのは難しい、よくあることです。
なので、よくわかってないフリして、
「えっ、こんなの簡単に作れるでしょ?」
って言ってあげると、大抵「はぁ!?」って表情をします。
ちょっと納得がいかないだけなら、
モチベーションを下げたことにならないですが、
そういうことを何度も何度も言い続けることで、
「難しいことを実現しても評価されないのでは...」
って気持ちになるので、
しっかりモチベーションを下げられます。
実際に、難しい画面を頑張って速く作り上げたエンジニアに、
「あー簡単そうな画面だったもんね、じゃあすぐ次これ作って」
と、軽くあしらってあげると効果が相当高いです。
- 880 :名無し~3.EXE:2016/03/20(日) 17:58:54.66 ID:ftoiXc16.net
- WScript.CreateObject("InternetExplorer.Application")
を利用してIEの自動操縦をしています
win10へのアップグレードを考えていたのですが
この手のスクリプトはwindows10で動くのでしょうか?
- 881 :名無し~3.EXE:2016/03/20(日) 18:17:57.40 ID:kfTLMDav.net
- >>880
動くよ。
- 882 :名無し~3.EXE:2016/04/26(火) 02:43:57.89 ID:xrGaHN5D.net
- htmlfileコンポーネントでダミーのwindowを作ってjsライブラリをロードするのはみんなやってると思う
そこでローカルフォルダの構造をdomに変換してjQueryをファイルセレクタ代わりにしてみた
// カレントディレクトリ以下の構造をbody内に再現する。File/Folderオブジェクトのプロパティはdata-*属性にしている
(function($folder, folder){
var keys = "Attributes DateCreated DateLastAccessed DateLastModified Drive Name Path ShortName ShortPath Size Type".split(" ");
for(var subFolders=new Enumerator(folder.SubFolders); !subFolders.atEnd(); subFolders.moveNext()) {
var subFolder = subFolders.item();
var $subFolder = $folder.append("<div>").find("div:last");
$subFolder.addClass("folder");
$.each(keys, function(){$subFolder.attr("data-"+this, subFolder[this]);});
arguments.callee($subFolder, subFolder);
}
for(var files=new Enumerator(folder.Files); !files.atEnd(); files.moveNext()) {
var file = files.item();
var $file = $folder.append("<div>").find("div:last");
$file.addClass("file");
$.each(keys, function(){$file.attr("data-"+this, file[this]);});
}
})($("body"), new ActiveXObject("Scripting.FileSystemObject").GetFolder(new ActiveXObject("WScript.Shell").CurrentDirectory));
// 例:テキストファイルをすべて選択
$(".file[data-Name$='\.txt']").each(function(){WScript.Echo($(this).attr("data-Path"));});
とりあえずアイディアを形にしただけなんでカスタムして使ってくれ(´・ω・`)
- 883 :名無し~3.EXE:2016/05/20(金) 01:19:03.63 ID:LoMnSF9C.net
- エクセルのマクロをVBAやVB以外の言語で使いたいのですがWSHというのでJavaScriptを使うくらいしかないですか?
なんか難しそうなので扱えるかはわからないですが
- 884 :名無し~3.EXE:2016/05/21(土) 07:18:01.83 ID:KwoUOh5H.net
- VBA使えるならVBScriptはほぼ同じ
- 885 :名無し~3.EXE:2016/05/21(土) 15:46:05.82 ID:r5Tb0hTU.net
- ActiveXObject(
- 886 :名無し~3.EXE:2016/05/23(月) 19:28:44.88 ID:OI4UmGVD.net
- Win10 64-bit で、WSCの登録を、
64-bitで行えば、32-bitアプリから起動したスクリプトで使えず、
32-bitで行えば、64-bitアプリから起動したスクリプトで使えず。
後から登録したほうだけが有効になる。
どうしたものか。
- 887 :名無し~3.EXE:2016/05/25(水) 13:06:05.60 ID:p984sqbS.net
- どっちかに統一してwscriptなりのパスを絶対パス指定すりゃいいんじゃないの
今後bit幅判定は避けて通れないだろうし
- 888 :名無し~3.EXE:2016/05/25(水) 17:08:32.50 ID:LNEVb08i.net
- 32bit(64bit)で起動されたかを判断し違ってたら起動し直すってのは検索すれば出てくるので、
WSCをどっちかでのみ処置するようにするか、両方で別々に32bit用、64bit用の両方登録するかとか
- 889 :名無し~3.EXE:2016/05/26(木) 01:13:50.51 ID:c8sEm+SQ.net
- JScriptでreplaceによる正規表現の置換で、
置換後文字列にキャプチャ文字列参照の特殊変数とその直後に数字を書きたい場合
どのように書けばいいですか?
例えば、$1で参照した文字列の直後に0を書きたいとかで
"$10"とやると、10番目のキャプチャ文字列の参照になっちゃう
他環境だと、"${1}0"と書けるみたいだがWSHでは参照にならない
- 890 :名無し~3.EXE:2016/05/26(木) 04:54:10.50 ID:2Z2dZzlv.net
- $010
- 891 :名無し~3.EXE:2016/05/26(木) 18:15:27.58 ID:c8sEm+SQ.net
- >>890
thx!
でも何でJScript(JavaScriptも同様だが)ってPerlとかと合わせなかったんだろう
鬼車やPerlだとこの記述じゃダメなんだよね、ややこしい
- 892 :名無し~3.EXE:2016/05/26(木) 19:15:53.60 ID:Am4E4DkT.net
- t
- 893 :名無し~3.EXE:2016/05/28(土) 16:48:01.65 ID:8bw60KMu.net
- C:\Windows\SysWOW64\cmd.exe
から
C:\Windows\System32\wscript.exe
を実行したら、
C:\Windows\SysWOW64\wscript.exe
が起動された。
C:\Windows\System32\cmd.exe
から
C:\Windows\SysWOW64\wscript.exe
を実行したら、これが起動した。
択一なら、32bitに統一する方が汎用性が高いということか。
そうしておくよ、ありがとう。>>887-888
- 894 :名無し~3.EXE:2016/06/20(月) 19:48:39.36 ID:r7gHHjMI.net
- おいぽまいら教えろ下さい、dotnetのライブラリを叩く際にだね
これは動かない
var random = new ActiveXObject("System.Random");
random.Next(1, 10);
これは動く
var random = new ActiveXObject("System.Random");
random.Next_2(1, 10);
上が動かないのは分かる、型宣言が出来ないからだ
じゃあ下は何故動くんだ、この_2は何を意味するの
- 895 :名無し~3.EXE:2016/06/20(月) 20:14:06.28 ID:FmZLWojr.net
- さあ
- 896 :名無し~3.EXE:2016/06/20(月) 21:44:37.70 ID:r7gHHjMI.net
- ああ何となく事故解決した、オーバーロードなんて仕様ないからケツに数字付けて区別するのか
型宣言とか全く関係なかった、数字の振り方の規則性がこれまたよく分からんがトライアンドエラーしかないのか
ちなみにSystem.Randomだとこうなるみたい
Next()→Next()
Next(Int32)→Next_3(Int32)
Next(Int32, Int32)→Next_2(Int32, Int32)
- 897 :名無し~3.EXE:2016/07/18(月) 13:49:40.77 ID:FluRcm0P.net
- すみません、全くの素人です。
アプリのアプリケーションキーの「(T)」を出力するだけのファイルを作りたいです。
どう書いたらいいですか。
- 898 :名無し~3.EXE:2016/07/18(月) 14:58:15.83 ID:FluRcm0P.net
- 自己解決
Set objShell = WScript.CreateObject("WScript.Shell")
WScript.Sleep 50
objShell.SendKeys "%(T)"
- 899 :名無し~3.EXE:2016/07/20(水) 11:55:20.08 ID:XFWp37Gp.net
- vbsを使って社内システムへの自動ログイン処理をしたいと思っています。
yahooへは問題なくidpassを入れてログインできるのですが、社内システムの場合はエラーが表示されidpassも表示されません。
"エラーを特定できません"のエラーが表示されます。
どうも信頼済みサイトに登録されていることが原因というようなwebの記載を見つけました。
この場合は回避策はないのでしょうか。
- 900 :名無し~3.EXE:2016/08/15(月) 00:25:29.97 ID:TKUFVv53.net
- クリップボードを加工する処理を書いています
内部はユニコードなので
SJISの範囲を越えた文字がクリップボードに入っていることがあります
それをEchoで表示させてみたりしても普通に表示されますし
文字列の結合をしても特に問題ないようです
しかしソースコードがSJISなので、
その文字に関する処理をソースコードの中に書けません
こういう場合どうするのがいいでしょうか?
クリップボードへのアクセスをUTF-8に出来たら
コードもUTF-8に出来るのですが、この処理はSJIS決め打ちですよね?
- 901 :名無し~3.EXE:2016/08/15(月) 01:25:58.62 ID:ikN7gcf7.net
- >>900
案1:スクリプトをunicodeで書く。
案2JScript:SJISに無い文字は String.fromCharCode(code1, code2, ...) を使う。
案3VBScript:SJISに無い文字は ChrW(code) を使う。
- 902 :名無し~3.EXE:2016/08/15(月) 02:20:04.30 ID:TKUFVv53.net
- >>901
ありがとうございます
案2で行きました
- 903 :名無し~3.EXE:2016/08/28(日) 13:24:08.21 ID:F3dIMYRn.net
- // 以下のような例で * が消えてしまうのはなぜでしょうか? バグ?
var FS = WScript.CreateObject('Scripting.FileSystemObject');
WScript.Echo(FS.GetAbsolutePathName('C:\\Windo*'));// → C:\Windo*
WScript.Echo(FS.GetAbsolutePathName('C:\\Window*'));// → C:\Windows …なぜ?
WScript.Echo(FS.GetAbsolutePathName('C:\\Windows*'));// → C:\Windows*
- 904 :名無し~3.EXE:2016/08/28(日) 14:14:26.23 ID:RFOn9Wqp.net
- ?
- 905 :名無し~3.EXE:2016/08/28(日) 22:43:27.34 ID:Kf2zaCfx.net
- *が1文字のワイルドカードとして使えるということかね。
- 906 :名無し~3.EXE:2016/09/20(火) 18:40:36.65 ID:sx0yUGEz.net
- 2016/9/1 jscript.dll がwindows updateされたせいで
今までいけていた win7/32bit(@職場)/wsh(jscript)で
エラーが多発するのは俺だけ?
- 907 :名無し~3.EXE:2016/09/20(火) 19:13:25.75 ID:oUfFAkCw.net
- うん
- 908 :名無し~3.EXE:2016/09/20(火) 21:20:41.02 ID:SISECv8l.net
- まずそのエラーを書かない事には何とも
- 909 :906:2016/09/22(木) 00:14:32.72 ID:rDMTp48z.net
- そうですよね。失礼しました。
こちらも、職場でのエラーメッセージまで覚えていないので
解決はあきらめて、情報をカキコだけしますが。
エクセルでInputBoxを使うやつで、
変数のvar 宣言が厳密?になったような印象で
動くやつとエラーで動かないやつとInputBoxが出ないパターンあるような。
var objXL = WScript.CreateObject("Excel.Application");
var fs = WScript.CreateObject("Scripting.FileSystemObject");
var f = fs.GetFolder("\\\\file01\\○○課\\....\\Afoldername");
var folderlist = "";
//すべてのサブフォルダ
var subfc = new Enumerator(f.SubFolders);
for(; !subfc.atEnd(); subfc.moveNext())
if ( ((subfc.item().Name+"").indexOf("e"))==-1 ) folderlist += subfc.item().Name + "\r\n" ;
var strRet = objXL.InputBox(folderlist, "選択", "otamesi");
objXL.Quit();
のたぐいのやつです。
こんなことがあったということで。
- 910 :名無し~3.EXE:2016/09/28(水) 07:10:47.91 ID:f6JqvkoF.net
- Windows7にて、管理者権限(High)で起動しているプログラムから、
別のプログラムを標準ユーザー権限(Medium)で実行する方法はないでしょうか?
具体的には、
管理者権限で常駐しているAutoHotkeyから、
標準ユーザー権限でWSHスクリプトを起動したいと考えています。
管理者昇格で実行する方法は検索すれば出てくるのですか、
その逆は見つからなくて・・・
ログオンスクリプトから実行されたプログラムも
全部管理者権限になってしまいます。
これも解決したいと思っています。
- 911 :名無し~3.EXE:2016/09/28(水) 09:32:39.60 ID:s4DNr100.net
- runas 使うとかじゃダメ?
- 912 :名無し~3.EXE:2016/09/28(水) 15:53:59.78 ID:nx81DFKK.net
- 「管理者として実行」されたコマンドラインから、「標準ユーザとして実行」する。
ttp://scripting.cocolog-nifty.com/blog/2010/01/post-5259.html
- 913 :名無し~3.EXE:2016/09/28(水) 18:43:38.23 ID:f6JqvkoF.net
- >>912
ありがとうございます!まさにこれです。
しかしタスクから実行とは・・・
やっぱり降格実行って、すんなりには出来ないんですね
>>911
それは多分、ShellExecuteを使った昇格(Middle→High)のやり方だと。
WSHでは、Runでも、Execでも、ShellExecute でも
降格で実行する方法はありませんでした(探せませんでした)
- 914 :名無し~3.EXE:2016/09/29(木) 00:25:50.89 ID:bbWzxn0/.net
- >>913
> >>911
> それは多分、ShellExecuteを使った昇格(Middle→High)のやり方だと。
コマンドラインのことじゃないの?
試したことないから実際できるかは知らないけど
- 915 :名無し~3.EXE:2016/09/29(木) 21:34:09.19 ID:QE0CrBwY.net
- CreateObject("Shell.Application").ShellExecute("hoge.exe", "", "", "runasuser")
>>912と違ってユーザー名とパスワードを入力する必要があるのが面倒
- 916 :名無し~3.EXE:2016/09/30(金) 07:05:04.86 ID:DKhen0Tu.net
- >>915
> CreateObject("Shell.Application").ShellExecute("hoge.exe", "", "", "runasuser")
おお、runasuser という引数で可能だったのですね。
今まで知りませんでした。ありがとうございます。
確かにユーザとパスの入力にはリスクがありますし、配布には不向きですが、
場合によって使えそうです。
- 917 :名無し~3.EXE:2016/09/30(金) 11:04:40.80 ID:MzJ4FbY1.net
- >>913
解決しているようですが、>>911 は RunAs.exe を使うことを意味していたつもりでした。
- 918 :名無し~3.EXE:2016/10/01(土) 21:18:50.03 ID:z3fhfQ4h.net
- >>917
ありがとうございます。
runas.exeという存在も知りませんでした・・・。
確かにこの方法でも、/userをAdmin以外に指定すれば、
High→Mediumの降格は可能みたいですね!
でもやはり、userとpassまで入力するのがネックですね。
むしろこっちが当たり前で、912の方法はかなり特殊な方法でしょうか。
- 919 :名無し~3.EXE:2016/10/02(日) 14:05:33.18 ID:ssU5pWdi.net
- runasに/savecredオプションを付けるとパスワードが保存されるから
2回目以降はパスワードを入力しなくてよくなる
psexecってツールならユーザー名とパスワードをオプション引数で指定できるから毎回手打ちする必要は無くなる
https://technet.microsoft.com/ja-jp/sysinternals/bb897553.aspx
もちろんそれぞれデメリットもあるからご利用は計画的に
- 920 :名無し~3.EXE:2016/10/20(木) 14:58:50.51 ID:u2LLUbWG.net
- えと、Windows7環境で質問です。
あるアプリが起動している間は、スリープに入らないって
設定ができるでしょうか?
ファイルメーカーなんですが、スリープしちゃうとネット
ワークが切れちゃって再起動しなくてはならないんで。
- 921 :名無し~3.EXE:2016/11/10(木) 23:44:30.12 ID:JhfwFP09.net
- >>920
5分ごとにShiftを押す。じゃダメ?ctrl+Cで終了。
Set objShell = WScript.CreateObject("WScript.Shell")
Do
WScript.Sleep 1000*60*5
objShell.SendKeys "+"
Loop
メディアプレイヤーをずっと再生しておくっていう手もあるらしい。
- 922 :名無し~3.EXE:2016/11/11(金) 00:16:12.92 ID:6spaSBwY.net
- thx
- 923 :名無し~3.EXE:2016/11/30(水) 05:52:14.36 ID:Slt35OHFj
- 選択したファイルをD&Dで処理するバッチを作っているのですが、コマンドラインが長すぎるとエラーが出てしまいます。
今は処理するものをコピーしてエディタに貼り付け、テキストでフルパスのリストを作って処理させているのですが、
直接DropFileListをクリップボードから得て処理させられないでしょうか?
- 924 :名無し~3.EXE:2016/12/12(月) 21:47:31.56 ID:r+Fb96AV.net
- 超亀レスだがShiftじゃキー入力の妨げになるでしょ
マウスの空MOVEを定期的に送るのが常套手段
もろちんwshだけでやる方法はない
- 925 :名無し~3.EXE:2016/12/25(日) 00:05:54.11 ID:HRoYEPWv.net
- /*
cscript.exe //nologo 特定プロセス実行中のスリープを抑止.js
副作用無しの SendKeys(
- 926 :名無し~3.EXE:2016/12/25(日) 00:23:26.11 ID:HRoYEPWv.net
- Shiftの代わりにPRTSC(キャプチャ効果無し)を送ってもスリープを抑止できるようだ
- 927 :924:2016/12/29(木) 22:26:32.94 ID:dAnL9MtL.net
- 先日何故か書き込みが途切れたので再書き込み
var exeName = "notepad.exe";
var interval = 60;
var oShell = WScript.CreateObject("WScript.Shell");
var objWMIService = GetObject("winmgmts://./root/cimv2");
while(true){
if(!new Enumerator(objWMIService.ExecQuery("select Name from Win32_Process where Name='" + exeName + "'")).atEnd())
oShell.SendKeys("{PRTSC}");
WScript.Sleep(1000 * interval);
}
WMIって面白い
- 928 :名無し~3.EXE:2017/03/11(土) 22:14:40.13 ID:+HikkRSv.net
- JScriptで再帰的なマッチを高速に行う方法ってありませんかね?
A(B(C(3),"a"),"$")
みたいな文字列を
({<3>,"a"},"$")
みたいにしたいです。Rubyみたいに再帰処理に対応した正規表現を
持っていれば対応する括弧をマッチさせることが出来ますが・・・
- 929 :名無し~3.EXE:2017/05/11(木) 19:46:31.75 ID:MLlLpRGo.net
- 2017.5.15に今どき、wshの本の改訂版が今ごろ出版されるとか。
- 930 :名無し~3.EXE:2017/06/29(木) 16:33:55.92 ID:AAx8eHDl.net
- >>886の件、
レジストリのCLSID(classid)を、登録した方から登録してない方へコピーするか、
wscファイルの中でCLSIDを指定しておけば、両方で使えた。
思うに、レジストリ上では、ProgID(COMコンポーネントID)は64/32bitで共通なのに対し、
CLSIDは64/32bitそれぞれで登録されているところ、
CLSIDはwsc登録時にランダムで生成されるため、
後から登録した方でProgIDのCLSID情報が異なる値で上書きされてしまい、
先に登録した方はProgIDから元々CLSIDにたどり着けなくなってしまった、
ということなのかなと。
なので、CLSIDが64/32bitで同じになるようにしてやればよいと。
- 931 :名無し~3.EXE:2017/07/18(火) 13:58:28.60 ID:W4IZXMNS.net
- 関数呼び出し、ネスト2,3回位が限界なのかな。
変なところで戻ってくる。
使えない野郎だ、くっそマイクロソフトw
- 932 :名無し~3.EXE:2017/09/02(土) 18:09:03.77 ID:/D3h/gh4.net
- 今更javascriptの学習兼ねてjscript勉強中
inputboxとmsgboxが64bit環境で呼び出せないのが割と辛いね
powershellだとC#埋め込んだりフォーム使い放題なんだよなー
↑スリープ抑止はC/C++/C#でさくっと空SendInput呼んだ方が楽だよ
- 933 :名無し~3.EXE:2017/09/25(月) 23:32:59.00 ID:6nblRiV8.net
- Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder("C:\Logs")
Wscript.Echo objFolder.Size
→これでC:\Logsのフォルダサイズが取得できるのに
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder("C:\Program Files")
Wscript.Echo objFolder.Size
→同じスクリプトでC:\Program Filesのサイズが取得できない
なぜなんだぜ? 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
- 934 :名無し~3.EXE:2017/09/26(火) 02:12:19.86 ID:RcmZZAIw.net
- 管理者権限で実行しても "C:\Program Files\Windows NT" に含まれるジャンクションにアクセス失敗してエラーになるみたい
- 935 :名無し~3.EXE:2017/09/26(火) 21:58:19.45 ID:W9uZsk3X.net
- 情報ありがとう
こちらでも昨夜というか今朝まで調べて
配下にリバースポイントが含まれるフォルダは
(普通の方法では)サイズの取得ができないとわかったよ
Program Files配下の全フォルダを抽出して
ひとつずつ再帰的にサイズ取得して合計するという案もあったけど
その中にはサイズが取得できないフォルダがあるから
合計したところで数値が合わないんだよね
- 936 :名無し~3.EXE:2017/09/26(火) 22:00:02.58 ID:W9uZsk3X.net
- 仕方ないのでバッチファイルで
dir "C:\Program Files" /s /a-d | find "個のファイル" > hoge.txt
ってやって、ファイル末尾の1行を取得する事にしたわ
これだと一応、フォルダのプロパティで見たのと同じ値が取得できる
もはやスクリプトじゃなくなっちまったけども
- 937 :名無し~3.EXE:2017/09/26(火) 22:16:48.97 ID:tsUdupnX.net
- 重箱の隅をつつくようであれだが、リパースポイントな。リバースじゃなく。
- 938 :名無し~3.EXE:2017/12/12(火) 09:06:04.43 ID:q0vNjYcg.net
- wshで数万行クラスの巨大スクリプト書く人いるかな?
自分で使うちょっとした自動処理ならわずか数行〜数十行程度で済むが、他人にあげることを
想定したものならファイルパス等のハードコードは絶対に避けてコマンドライン引数やXML形式の
設定ファイルから指定させる等汎用性を高めたり、きちんとエラー対策をとったり等、れっきとした
「アプリ」として「開発」するため余裕で数千〜数万行に達してしまう。
- 939 :名無し~3.EXE:2017/12/12(火) 11:04:42.32 ID:/U3t7lMx.net
- 自分で使う自動処理が拡張に拡張重ねて数万行クラスになったのはあるよ
- 940 :名無し~3.EXE:2017/12/12(火) 11:13:16.48 ID:Wr10bU9d.net
- 数万行もあるスクリプトを貰っても持て余すなあ
もっと機能を絞って分割するなりして欲しいもんだ
- 941 :名無し~3.EXE:2017/12/12(火) 20:43:33.07 ID:jyIq4w4s.net
- せいぜい数百から一千行程度に小分けしたスクリプト50本くらいを
ひとつのフォルダに入れて連携させてるよ
小分けしとくと色々使い回しがきいてラクだわ
- 942 :名無し~3.EXE:2017/12/12(火) 21:53:43.20 ID:qOP7vFik.net
- >>938
> 余裕で数千〜数万行に達してしまう
ScriptControlで動的にWSHのソースを読み込んで実行するタイプなら普通
- 943 :名無し~3.EXE:2017/12/13(水) 14:27:28.65 ID:KehnvMoz.net
- 特に、Classの継承機能のないVBScriptで無理やりオブジェクト指向な
コードを書こうとして、似たような構造のClassを作るため親Classを
コピペしてちょっと改造するって手法を繰り返してたら、
あっという間に数千行に達してしまう
- 944 :名無し~3.EXE:2017/12/14(木) 12:08:32.08 ID:bq3yY9Fc.net
- それはあるね。コピペ部分が結構多くて行数だけインフレしてる感じ
- 945 :名無し~3.EXE:2017/12/19(火) 12:46:08.14 ID:uzBHC9yI.net
- 友達がWindowsで稼げている情報など。ニュースというか参考までに。
⇒ http://kuchibeta.sblo.jp/article/181868190.html
興味がある方のために書きました。
M60W6DP7X5
- 946 :名無し~3.EXE:2018/02/09(金) 15:35:14.91 ID:/eUPgJtQb
- test
- 947 :名無し~3.EXE:2018/02/09(金) 15:41:22.90 ID:/eUPgJtQb
- 巨大バイナリファイルにxmlhttpとかで取得したバイナリデータを追記するには
どうすればいいんです?
OpenTextFileのForAppendingのバイナリ版は?
総レス数 947
299 KB
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver.24052200