2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

お前ら、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


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