[表示 : 全て 最新50 1-99 101- 2chのread.cgiへ]
Update time : 05/09 15:53 / Filesize : 43 KB / Number-of Response : 131
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

(´・∀・`) JScript .NET スレッド



1 名前:デフォルトの名無しさん [2005/08/12(金) 19:29:35 ]
JScript .NETを語るスレです。質問等どうぞ。

関連リンク
JScript .NETの紹介
www.microsoft.com/japan/msdn/columns/scripting/scripting07142000.asp
[MSDN] JScript
www.microsoft.com/japan/msdn/library/ja/jscript7/html/jsoriJScript.asp
.NET Framework ダウンロード情報
www.microsoft.com/japan/msdn/netframework/downloads/
JScript.NET (入門者向け)
homepage3.nifty.com/aya_js/JScript.NET/
.NET Framework SDKで始める .NETプログラミング
www.atmarkit.co.jp/fdotnet/special/dotnet_sdk/dotnetsdk01.html

関連スレ
ECMAScript デス 2
pc8.2ch.net/test/read.cgi/tech/1088298991/l50

13 名前:デフォルトの名無しさん mailto:sage [2005/08/15(月) 14:00:22 ]
コードの冒頭から実行したいとき、エントリーポイントはどうなるんですか?
CodeDomでコンパイルしてアセンブリオブジェクトを取得した後
アセンブリ内の関数を呼び出す方法はわかったのですが、コードの冒頭から実行する方法がわかりません

14 名前:デフォルトの名無しさん mailto:sage [2005/08/18(木) 12:58:54 ]
CodeDomはまだ使ったことないなあ。

15 名前:デフォルトの名無しさん [2005/08/19(金) 22:25:13 ]
自分自身のソースを表示

import System;var q='"',s="import System;var q='{0}',s={0}{1}{0};Console.WriteLine(s,q,s);";Console.WriteLine(s,q,s);

16 名前:デフォルトの名無しさん [2005/08/24(水) 00:12:17 ]
数式を計算
E:\>type calc.js
import System;
var expr : String, ans : Number;
while ((expr = Console.ReadLine()) != null) {
    try {
        eval("with(Math) { ans=(" + expr + ");}");
        Console.WriteLine(ans);
    }
    catch (e : Exception) {
        Console.WriteLine("Error");
    }
}

E:\>jsc /nologo /fast- calc.js

E:\>calc.exe
1+2+3
6
1/3
0.333333333333333
sqrt(2)
1.4142135623731
r=5
5
2*PI*r
31.4159265358979
Console.WriteLine("hello")
hello
NaN (非数値)
^Z

17 名前:デフォルトの名無しさん [2005/08/25(木) 17:31:44 ]
PUBLIC:COMPONENT


で始まるコードってなんですか?
これあるとFirefoxで読めないんですけど。

どうすればいいのでしょか?

18 名前:デフォルトの名無しさん mailto:sage [2005/08/25(木) 19:39:36 ]
>>17
思いっっきりスレ違いですなあ。誤爆?
www.microsoft.com/japan/msdn/workshop/author/behaviors/overview/elementb_ovw.asp

19 名前:デフォルトの名無しさん mailto:sage [2005/08/26(金) 00:12:52 ]
関連スレ追加
■(((Microsoft.NET総合スレッド)))■
pc8.2ch.net/test/read.cgi/tech/1124784480/l50

20 名前:デフォルトの名無しさん [2005/08/29(月) 22:13:51 ]
echoコマンド(もどき)

import System;
import System.Collections;
var arguments: ArrayList = new ArrayList(Environment.GetCommandLineArgs());
arguments.RemoveAt(0);
var nFlag = arguments.Count > 0 && arguments[0] === "-n";
if (nFlag)
    arguments.RemoveAt(0);
Console.Write(String.Join(" ", String[](arguments.ToArray())));
if (! nFlag)
    Console.WriteLine();

21 名前:デフォルトの名無しさん mailto:sage [2005/08/29(月) 22:16:45 ]
>>20
booleanが抜けてた。なくても動くけれど

var nFlag : boolean = …



22 名前:デフォルトの名無しさん mailto:sage [2005/08/29(月) 22:22:24 ]
正直、一々型付けしてたらJScript.NETの利点が見あたらなくなると思うんだ。

23 名前:デフォルトの名無しさん mailto:sage [2005/08/29(月) 22:25:51 ]
即席でちょっとしたプログラム作るなら
一々型付けしなくてもいいってメリットはあるね。

24 名前:デフォルトの名無しさん mailto:sage [2005/08/29(月) 22:45:43 ]
こうするとJavaScriptっぽい感じ

// echo.js
import System;
var arguments = Environment.GetCommandLineArgs().slice();
arguments.shift();
var nFlag = arguments.length > 0 && arguments[0] == "-n";
if (nFlag)
arguments.shift();
Console.Write("{0}{1}", arguments.join(" "), nFlag ? "" : "\n");

25 名前:デフォルトの名無しさん mailto:sage [2005/08/29(月) 23:24:30 ]
>>20の5行目を

const nFlag : boolean = arguments.Count > 0 && arguments[0] === "-n";

とすると「***内部コンパイラ エラー***」となる。これはコンパイラのバグか。

var t : boolean = arguments.Count > 0 && arguments[0] === "-n";
const nFlag : boolean = t;

とするとエラーにならないし。

26 名前:デフォルトの名無しさん mailto:sage [2005/08/30(火) 01:39:44 ]
>>13
Assemblyが手に入ったならあとはEntryPointプロパティでMethodInfoが手にはいるからそいつをInvokeだ。
ちなみにjsc.exeだと自動的に"JScript Main"クラスを作成し、その静的メソッドMainをエントリポイントに割り当てる。
この中身にベタで書かれたコードが内蔵される。
……エントリポイントを任意のメソッドであると明示することってできたっけ?

27 名前:デフォルトの名無しさん mailto:sage [2005/08/30(火) 23:07:26 ]
>>26
わ。ありがとうございます。やってみます。

jsc でコンパイルして、Reflect関連ツールで覗いてみたらグローバルオブジェクトを継承したクラスのメソッド?になってたような。

28 名前:デフォルトの名無しさん mailto:sage [2005/08/31(水) 08:45:33 ]
>>26
EntryPoint が null でした orz


jscと同じような加工を施さないとだめな気がしてきた。

29 名前:デフォルトの名無しさん mailto:sage [2005/08/31(水) 10:51:42 ]
えー、nullになる?
……あ、ひょっとしてCompilerParametersのExecutableをtrueにしてないんじゃ?
サンプル書いてみた。

import System;
import System.CodeDom.Compiler;
import System.Reflection;
import Microsoft.JScript;
var source : String = "var ie = new ActiveXObject(\"InternetExplorer.Application\");"
                     + "ie.Navigate(\"ttp://www.yahoo.com/\");"
                     + "ie.Visible = true;";
var provider : JScriptCodeProvider = new JScriptCodeProvider();
var jsc : ICodeCompiler = provider.CreateCompiler();
var param : CompilerParameters = new CompilerParameters();
param.GenerateInMemory = true;
param.GenerateExecutable = true;
var result : CompilerResults = jsc.CompileAssemblyFromSource(param, source);
var assembly : Assembly = result.CompiledAssembly;
var entry : MethodInfo = assembly.EntryPoint;
var args : Object[] = new Object[1];
entry.Invoke(null, new Object[1]);

30 名前:デフォルトの名無しさん mailto:sage [2005/08/31(水) 11:19:18 ]
× CompilerParametersのExecutable
○ CompilerParametersのGenerateExecutable

for...inってSystem.Arrayから派生した配列には使えないの?
いや使えないことはないんだけど何故か要素じゃなくてキー、つまり0からの添え字が列挙されちゃう……役たたねー。

31 名前:デフォルトの名無しさん mailto:sage [2005/08/31(水) 11:23:22 ]
WSHでもそうなってた



32 名前:デフォルトの名無しさん mailto:sage [2005/08/31(水) 13:29:32 ]
>>29
GenerateExecutable = true してませんでした m(_ _)m

わぁ出来た。ありがとうございました。

33 名前:デフォルトの名無しさん mailto:sage [2005/09/20(火) 00:29:12 ]
var

34 名前:デフォルトの名無しさん mailto:sage [2005/10/03(月) 02:11:08 ]
const

35 名前:デフォルトの名無しさん mailto:sage [2005/11/30(水) 22:00:35 ]
保守

36 名前:デフォルトの名無しさん [2005/12/17(土) 01:31:42 ]
JScript 8.0は7.0とほとんど変わってないような…

37 名前:デフォルトの名無しさん [2005/12/17(土) 05:47:58 ]
WSH の JScript が ECMAScript 4th edition ベースになるのはいつですか?

38 名前:デフォルトの名無しさん mailto:sage [2005/12/17(土) 20:45:55 ]
Windows Vista が出てから?

39 名前:デフォルトの名無しさん [2006/01/18(水) 21:48:01 ]
スレ冬眠中...

// sleep.js - suspend execution for an interval of time
import System;
import System.Threading;

var args: String[] = Environment.GetCommandLineArgs();
if (args.Length == 2) {
    try {
        Thread.Sleep(1000 * Int32.Parse(args[1]));
    }
    catch (e: Exception) {
        Console.Error.WriteLine("{0}: Invalid time interval '{1}'", args[0], args[1]);
        usage();
    }
}
else
    usage();

function usage(): void {
    Console.Error.WriteLine("Usage: {0} <time>", args[0]);
    Console.Error.WriteLine(" Specify time in seconds");
    Environment.Exit(1);
}

40 名前:デフォルトの名無しさん [2006/02/03(金) 21:15:14 ]
JScript.NET(ASP) + Ajaxなんて面白いかもと考えている漏れ

41 名前:デフォルトの名無しさん [2006/02/12(日) 23:10:30 ]
// defragman.js
import System;
var a = [];
var c;
while ((c = Console.Read()) >= 0)
    if (c > 32)
        a.push(String.fromCharCode(c));
print("  [゚д゚] <デフラグガカンリョウシマシタ");
print(" /[_]ヽ");
print("  | |");
print(a.sort().join(""));



42 名前:まいちゃん ◆sGiKVw3hJo [2006/02/13(月) 03:35:35 ]
break;

43 名前:デフォルトの名無しさん [2006/02/14(火) 00:33:04 ]
error JS1019: 'break' をループの外に設定できません。

44 名前:ms ◆OOuOpXqoBQ mailto:諸君、私はデフレが大好きだ! [2006/02/20(月) 20:02:12 ]
これか?

// defragman.js
import System;
var a = [];
var c;

print("スタート : ");

while ((c = Console.Read()) >= 0 )
{
if (c > 32) a.push(String.fromCharCode(c));
else break;
}

print("  [゚д゚] <デフラグガカンリョウシマシタ");
print(" /[_]ヽ");
print("  | |");
print(a.sort().join(""));

45 名前:デフォルトの名無しさん [2006/02/20(月) 20:35:02 ]
>>44
breakしたらだめだと思う

46 名前:繁蔵 [2006/02/20(月) 21:05:20 ]
1

47 名前:デフォルトの名無しさん [2006/02/20(月) 21:05:26 ]
.Netっぽくしてみた

// defragman.js
import System;
import System.Collections;
var a : ArrayList = new ArrayList();
var c : int;
while ((c = Console.Read()) >= 0)
    if (c > 32)
        a.Add(c);
a.Sort();
Console.WriteLine("  [゚д゚] <デフラグガカンリョウシマシタ");
Console.WriteLine(" /[_]ヽ");
Console.WriteLine("  | |");
for (var i: char in a)
    Console.Write(Convert.ToChar(i));
Console.WriteLine();

48 名前:繁蔵 [2006/02/20(月) 21:06:36 ]
すいません、お邪魔します。初めて2CHやるのですが、いいですか?

49 名前:繁蔵 [2006/02/20(月) 21:08:24 ]
C#.NETで自動販売機のプログラミングをやるのですが、文字列がまったく解りません。
誰か、教えて頂けませんか?

50 名前:デフォルトの名無しさん mailto:sage [2006/02/20(月) 21:09:19 ]
いいですけどJScript.netスレッドでも良ければ

51 名前:デフォルトの名無しさん mailto:sage [2006/02/20(月) 21:12:31 ]
>>49
C#初心者なら↓がいいですよ。
ふらっとC♯(初心者用) Part6
pc8.2ch.net/test/read.cgi/tech/1122001458/l50



52 名前:デフォルトの名無しさん [2006/02/21(火) 00:55:25 ]
IISなしにtest.aspx (ASP.NETファイル)を解釈するテスト

// main.js
import System;
import System.IO;
import System.Web;
import System.Web.Hosting;
import MyAspHost;

var mh: MyHost = MyHost(ApplicationHost.CreateApplicationHost(
MyHost, "/", Environment.CurrentDirectory));
var page: String = "test.aspx";
var sw: StringWriter = new StringWriter();
mh.WriteHtmlPage(page, String.Empty, TextWriter(sw));
sw.Flush();
Console.Write(sw.GetStringBuilder().ToString());


// myasphost.js - myasphost.dllをbinフォルダに入れておく
import System;
import System.IO;
import System.Web;
import System.Web.Hosting;

package MyAspHost {
class MyHost extends MarshalByRefObject {
function WriteHtmlPage(page: String, query: String, output: TextWriter) {
var swr: SimpleWorkerRequest = new SimpleWorkerRequest(page, query, output);
HttpRuntime.ProcessRequest(swr);
}
}
}

53 名前:デフォルトの名無しさん mailto:sage [2006/03/15(水) 00:21:12 ]
// 眠い

54 名前:デフォルトの名無しさん mailto:sage [2006/03/18(土) 19:49:49 ]
あらかじめ言っておくが64bitにネイティブ対応したテキスト置換ソフト
はJScript.netで簡単に作れる。

55 名前:デフォルトの名無しさん [2006/03/18(土) 21:02:56 ]
コンパイル時間含めても全般的にActivePerlより速かった

56 名前:http://www.vector.co.jp/soft/win95/util/se072729.html mailto:http://msdn2.microsoft.com/ja-jp/library/h2k70f3s.aspx [2006/03/18(土) 21:51:16 ]
TextSS のWindowsXP(Professional)64bit化おながいします

もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?

そういや64bitにネイティブ対応している2chブラウザてありましたっけ?





57 名前:デフォルトの名無しさん mailto:sage [2006/03/18(土) 22:06:09 ]
マルチに見せかけた嵐か

58 名前:デフォルトの名無しさん mailto:sage [2006/03/27(月) 20:16:32 ]
C#でラップしてwin32apiは呼び出せたんだけど、
UNLHA32.dllみたいなのだとラップしてもTypeLoadException で落ちる。
これってアンマネージ側が対応してないと無理ってことっすか?

59 名前:デフォルトの名無しさん mailto:sage [2006/03/27(月) 21:10:15 ]
caldbase.sourceforge.jp/
を見てみては?

60 名前:58 mailto:sage [2006/03/28(火) 17:32:03 ]
すまん普通にできた
/r:で違うとこ指してただけというオチでした・・・

61 名前:デフォルトの名無しさん mailto:sage [2006/05/17(水) 15:26:42 ]
print("sage");



62 名前: ◆DEATHPgXXc mailto:sage [2006/05/20(土) 02:23:29 ]
JScript.NET ではなくて、JScriptについて質問があるんですが(オフトピでスマソ)、
MSIEで外部のウェブサイト閲覧中に HTMLに埋め込まれたJScriptでWMIが操作できるのって普通ですか?
とあるアプリにオブジェクトを色々作れる関数が入っているのですが、ユーザーに無表示でサービス止めたり、ファイル埋め込みができるスクリプトが書けたりして困ってます。
開発者曰く、「WebからJScriptでWMIが弄れるのは普通に仕様だからアプリの問題では無い」とか。
でもそうすると悪質なサイトを訪問するだけで一発BOT感染できるのでないかと疑問が。

MSIEでどのようなセキュリティ上の制限が適用されているかの一覧みたいのがあったら助かります。

オフトピですが、宜しくお願いします。

63 名前:デフォルトの名無しさん mailto:sage [2006/05/20(土) 10:40:47 ]
>>62
そういうのってインターネットオプションで信頼済サイトに登録してないと
実行できないようになってなかったっけ。

64 名前: ◆DEATHPgXXc mailto:sage [2006/05/21(日) 23:31:39 ]
>>63 矢張りそのような制限が本来はありますか。
するとどこでもWMIはセキュリティホールですね。
どうやって開発者にねじ込むか。

65 名前:デフォルトの名無しさん mailto:sage [2006/05/24(水) 00:29:22 ]
poderosaってマクロ機能で、アプリケーションからJScript.NETを動かしてて
しかもpoderosa自身のオブジェクトを公開してるけど、どうやってるの?

ソース見てもわからんかった。

66 名前:デフォルトの名無しさん mailto:sage [2006/07/12(水) 11:35:52 ]
人いないお

67 名前:デフォルトの名無しさん mailto:sage [2006/07/12(水) 16:36:19 ]
ijs.jsを完璧にパクッたというか改良したというかとにかくこういうの作ってみた
d.hatena.ne.jp/rahAloe/20060712
パクッタだけなのにそこそこいいできだと思ってはいるんだがisComplete()関数がちょっとイマイチなんだわ。
具体的にいうと単純に2回以上のネストに耐えられない。
正直正規表現とかよくわからなくててきとーなんだ。
だれかisComplete関数よくするアイディアください。

68 名前:デフォルトの名無しさん mailto:sage [2006/07/12(水) 16:40:39 ]
あと言い忘れたけどisComplete()関数の目的はとりあえずいまのところ引数文字列においてブレースが閉じられているか閉じられていないかどうか判別するというだけ。


69 名前:デフォルトの名無しさん mailto:sage [2006/07/14(金) 16:16:02 ]
>>67-68
それは.NetでなくWSHなので↓のいずれかのほうが適当でしょう。

WSH(・∀・)スレッド!
pc8.2ch.net/test/read.cgi/tech/1055075469/l50
お前ら、wsh使ってますか? part5
pc8.2ch.net/test/read.cgi/win/1126543183/l50
ECMAScript デス 2
pc8.2ch.net/test/read.cgi/tech/1088298991/l50


70 名前:デフォルトの名無しさん mailto:sage [2006/07/14(金) 22:49:45 ]
>>69
そうかすまん。ここ.NETスレか。
OKありがとう。

71 名前:67=68=70 mailto:sage [2006/07/17(月) 17:49:54 ]
d.hatena.ne.jp/rahAloe/20060716/p2#c
なんとかこのようなJScript shellができますた。
できたはいいのだが、いちいち

コマンドプロンプトで
> cscript.exe imjs.js
とする。

とやらないといけないのが面倒くさい。
そこで簡単に実行できるようにJScript.NETのほうからこのスクリプト呼び出すようにしようと
『JScriptハンドブック』という本の最後のページにあるように

import System;
System.Diagnostics.Process.Start("./imjs.js");

でjsc.exeでコンパイルして実行させてみたんだけれど
imjs.jsの中にあるWScript.StdOut.Writeという部分でエラー起こすんだわ。
どうすれば.NETから実行できる?



72 名前:デフォルトの名無しさん mailto:sage [2006/07/17(月) 17:52:37 ]
d.hatena.ne.jp/rahAloe/20060716/p2
微妙にリンク間違えた。

73 名前:デフォルトの名無しさん mailto:sage [2006/07/17(月) 20:17:02 ]
解決しますた。

import System;
System.Diagnostics.Process.Start("cscript.exe", "./imjs.js");

とすればよかった。

74 名前:デフォルトの名無しさん mailto:sage [2006/08/01(火) 16:12:42 ]
>>73
一々別窓を開かないバージョンを作ってみた。

import System;
import System.Diagnostics;

var imjs : Process = new Process();
imjs.StartInfo.FileName = "cscript.exe";
imjs.StartInfo.Arguments = "//nologo ./imjs.js";
imjs.StartInfo.UseShellExecute = false;
imjs.Start();
imjs.WaitForExit();


75 名前:73 mailto:sage [2006/08/04(金) 18:22:27 ]
>>74
ありがとう!
早速反映させました。

76 名前:デフォルトの名無しさん [2006/08/23(水) 16:37:17 ]
JScriptで普通に a / b のように割り算をやるとaもbもdoubleに変換して
計算してしまうので、そうならないようにするには、下のように
するしかないのかな。
「独自に作成したコードから直接使用するためのものではありません」な
メソッド使ってるけど。

import Microsoft.VisualBasic.CompilerServices;
import System;
var a : int = 123;
var b : int = 45;
var x : int;
x = Operators.IntDivideObject(a, b);
Console.WriteLine(x);

と思ったけどOperators.IntDivideObjectを一々呼ぶよりは単純に
x = int(a / b);
としたほうがはるかに速かった。

77 名前:デフォルトの名無しさん mailto:sage [2006/08/24(木) 15:25:09 ]
IEの背景の色とイメージの印刷をon/offする

// SetIEPrintBackground.js
// コンパイル方法: jsc /t:winexe SetIEPrintBackground.js
import Microsoft.Win32;
import System;
import System.Windows.Forms;
var result: DialogResult = MessageBox.Show("印刷時、背景の色とイメージを印刷しますか?",
    "Internet Explorer 設定",
MessageBoxButtons.YesNoCancel);
const keyName: String = "Software\\Microsoft\\Internet Explorer\\Main";
const name: String = "Print_Background";
var regKey: RegistryKey = Registry.CurrentUser.OpenSubKey(keyName, true);
if (result == DialogResult.Yes)
    regKey.SetValue(name, "yes");
else if (result == DialogResult.No)
    regKey.SetValue(name, "no");

78 名前:デフォルトの名無しさん mailto:sage [2006/08/24(木) 19:04:54 ]
改行付き文字列を見た目にもキレイに簡単出力

var name = [
"line1",
"line2",
"line3",
].join("\n");

+ で連結するより高速です。

79 名前:デフォルトの名無しさん mailto:sage [2006/08/24(木) 19:17:39 ]
>>78

var name = "\
line1\
line2\
line3\
";

なんて書き方をよく使ってます。
※行末の「\」の直後で改行するように

80 名前:デフォルトの名無しさん mailto:sage [2006/08/24(木) 21:53:33 ]
改行付きなら

var name = "\
line1\n\
line2\n\
line3\n\
";


だった

81 名前:デフォルトの名無しさん mailto:sage [2006/08/24(木) 22:09:47 ]
JScript.NETで
var name = ["line1", "line2", "line3"].join("\n");

var name = "line1\n" + "line2\n" + "line3\n";
の処理速度を比べてみたら後者の方がはるかに速かった。
後者はコンパイル時に
var name = "line1\nline2\nline3\n";
とみなしているようです。



82 名前:デフォルトの名無しさん mailto:sage [2006/08/25(金) 00:10:05 ]
var name = ["line1", "line2", "line3"].join("\n");

var name = "line1\n" + "line2\n" + "line3\n";
は,等価じゃないな

83 名前:デフォルトの名無しさん mailto:sage [2006/08/25(金) 00:16:54 ]
line3の\nを取ればいいさ

84 名前:デフォルトの名無しさん mailto:sage [2006/08/26(土) 15:46:24 ]
VBScriptとJScriptのどっちをよく使いますか?

85 名前:デフォルトの名無しさん mailto:sage [2006/08/26(土) 16:00:02 ]
断然JScript。
C#,J#,Java等への移行も楽だし。

86 名前:デフォルトの名無しさん mailto:sage [2006/09/24(日) 05:22:02 ]
JScript.NETってフォーム使ったアプリケーション作れますか?
あと統合環境ってない?

87 名前:デフォルトの名無しさん mailto:sage [2006/09/24(日) 11:11:58 ]
>>86
作れるんじゃね?
VC2005あるんじゃね?

88 名前:デフォルトの名無しさん mailto:sage [2006/09/25(月) 00:56:27 ]
>>86
作れますよ。統合環境で作ったことは無いけれど。

89 名前:デフォルトの名無しさん mailto:sage [2006/09/25(月) 00:58:54 ]
BASICのgotoのようなものを実現するテスト。

// gototest.js
import System;
var $goto : int = 0;
do switch ($goto) {
    case 0:
        Console.Write("文字列を入力: ");
        var s : String = Console.ReadLine();
    case 20:
        $goto = 40; break;
    case 30:
        Console.WriteLine(s);
        $goto = 20; break;
    case 40:
        Console.Write("hello, ");
        $goto = 30; break;
    default:
        $goto = 0;
} while ($goto);

90 名前:デフォルトの名無しさん mailto:sage [2006/09/25(月) 01:22:02 ]
ダイアログの表示だけなら
// monadialog.js
import Accessibility;
import System.Drawing;
import System.Windows.Forms;
var f: Form = new Form();
f.Size = new System.Drawing.Size(300, 125); f.Text = "確認";
var mona : Label = new Label();
mona.AutoSize = true; mona.BackColor = Color.White;
mona.BorderStyle = BorderStyle.FixedSingle;
mona.Font = new Font("MS PGothic", 12); mona.Location = new Point(10, 10);
mona.Text = "\n ∧_∧ \n( ´∀`) \n(     )";
f.Controls.Add(mona);
var message : Label = new Label();
message.Text = "ダイアログを表示してみますた。";
message.AutoSize = true; message.Location = new Point(100, 20);
f.Controls.Add(message);
var yes: Button = new Button();
yes.DialogResult = DialogResult.Yes; yes.Location = new Point(110, 60);
yes.NotifyDefault(true); yes.Text = "はい";
f.Controls.Add(yes);
var no : Button = new Button();
no.DialogResult = DialogResult.No; no.Location = new Point(190, 60);
no.Text = "いいえ";
f.Controls.Add(no);
f.ShowDialog();

91 名前:デフォルトの名無しさん [2006/09/30(土) 21:53:54 ]
WSH(JScript)からJScript.NETで作ったコンポーネントを利用するテスト

D:\>type MyServer.js
import System;
import System.Runtime.InteropServices;
public Guid("E65CFE0B-2F1E-45A4-9FBE-4CC1D2B20AE8") ProgId("MyServer.Sample")
class MyServerSample {
  private var _property : int = 0;
  public function Method(s: String): int {
    Console.WriteLine(s);
    return s.Length;
  }
  public function get Property() : int {
    return _property;
  }
  public function set Property(n : int) {
    _property = n;
  }
}



92 名前:デフォルトの名無しさん mailto:sage [2006/09/30(土) 21:55:00 ]

D:\>jsc /nologo /t:library MyServer.js

D:\>regasm MyServer.dll /tlb:MyServer.tlb /silent

D:\>copy MyServer.dll %SystemRoot%\System32
    1 個のファイルをコピーしました。

D:\>type test.js
var Sample = new ActiveXObject("MyServer.Sample");
Sample.Property = 123;
Sample.Method(Sample.Property);

D:\>cscript //nologo test.js
123

D:\>

93 名前:デフォルトの名無しさん [2006/10/06(金) 16:48:28 ]
msdn2.microsoft.com/ja-jp/library/system.timers.timer.aspx の使用例を
JScriptにしてみたけど、とりあえず動作するからこんなんでいいのかな。
import System;
import System.Timers;
public class Timer1 {
    public static function Main(): void
    {
        var aTimer : Timer = new Timer();
        aTimer.add_Elapsed(OnTimedEvent);
        aTimer.Interval = 2000;
        aTimer.Enabled = true;
        Console.WriteLine("Press the Enter key to exit the program.");
        Console.ReadLine();
        GC.KeepAlive(aTimer);
    }
    private static function OnTimedEvent(source : Object, e : ElapsedEventArgs): void
    {
        Console.WriteLine("Hello World!");
    }
}
Timer1.Main();

94 名前:デフォルトの名無しさん [2006/10/25(水) 00:59:39 ]
JScriptって便利だね。
仕事のツールが簡単に出来ちゃうよ。


95 名前:デフォルトの名無しさん [2006/10/26(木) 10:46:02 ]
しかしあまり人気ないような。
JScriptで書かれたWSHのスクリプトや、Perlのスクリプトを移植するのに
重宝してるけど。

96 名前:デフォルトの名無しさん [2006/10/29(日) 02:57:21 ]
会社でWSHを広めています。
大変便利でかなりいいですね。



97 名前:デフォルトの名無しさん [2006/10/29(日) 03:03:24 ]
>>96
WSH(・∀・)スレッド!
pc8.2ch.net/test/read.cgi/tech/1055075469/l50
というのもありますよ。

JScript.NETもなかなか使えるので使ってやってください。

98 名前:デフォルトの名無しさん [2006/10/29(日) 14:55:46 ]
JScript.NETでActiveXコントロールを作ってHTMLに埋め込むテスト

J:\>type SampleControl.js
import Accessibility;
import System;
import System.ComponentModel;
import System.Drawing;
import System.Runtime.InteropServices;
import System.Windows.Forms;
public Guid("5C466CE7-5C06-49FA-869D-E0BBE71F833B") ProgId("Sample.Control")
class SampleControl extends UserControl {
  private var textName: TextBox;
  private var labelName: Label;
  private var components: IContainer;
  public function SampleControl() { InitializeComponent(); }
  public function InitializeComponent(): void {
    components = new System.ComponentModel.Container();
    textName = new TextBox();
    labelName = new Label();
    textName.Location = new Point(64, 8);
    textName.Size = new System.Drawing.Size(240, 23);
    textName.TabIndex = 0;
    labelName.Location = new Point(8, 8);
    labelName.Size = new System.Drawing.Size(56, 23);
    labelName.Text = "Name:";
    labelName.TextAlign = ContentAlignment.MiddleRight;
    Controls.AddRange(Control[]([labelName, textName]));
    Size = new System.Drawing.Size(300, 80);
  }
  public function get Value(): String { return textName.Text; }
  public function set Value(val: String) { textName.Text = val; }
}

99 名前:デフォルトの名無しさん mailto:sage [2006/10/29(日) 14:57:19 ]
(続き)
J:\>jsc /nologo /t:library SampleControl.js

J:\>regasm /nologo /tlb:SampleControl.tlb SampleControl.dll
型は正常に登録されました。
アセンブリは 'J:\SampleControl.tlb' にエクスポートされ、タイプ ライブラリは正常
に登録されました。

J:\>copy /y SampleControl.dll %windir%\system32
  1 個のファイルをコピーしました。

J:\>type Sample.hta
<html>
<head><title>Test</title></head>
<body>
<object id="Control1" classid="clsid:5C466CE7-5C06-49FA-869D-E0BBE71F833B"
width="300" height="80" ></object><br />
<input type="button" value="Click me" onclick="alert(Control1.Value)" />
</body>
</html>
J:\>Sample.hta

(以下後始末)
J:\>regasm /nologo /unregister SampleControl.dll
型は正常に登録が解除されました。

J:\>del %windir%\system32\SampleControl.dll

J:\>

100 名前:デフォルトの名無しさん [2006/11/01(水) 14:06:23 ]
バッチファイルにJScript.NETスクリプトを埋め込むテスト
pc8.2ch.net/test/read.cgi/tech/1148485555/65 を参照

/rスイッチは.exeが存在しても強制的にコンパイル

[hello.cmd]

@if (0==1) rem [hello.cmd]
@echo off
if exist "%0.cmd" "%0.cmd" %1
setlocal
path %SystemRoot%\Microsoft.NET\Framework\v2.0.50727
set source=%0
set target=%source:.cmd=.exe%
if /i "%1"=="/r" goto build
if exist "%target%" goto run
:build
jsc /nologo /out:"%target%" "%source%"
:run
"%target%"
goto :eof
@end
// ここからJScript
print("hello, world!");

101 名前:デフォルトの名無しさん mailto:sage [2006/11/27(月) 21:59:16 ]
ものすごい初歩的な質問だと思うのですが、1つの変数に改行コードを
入れる場合はどうすればよいのでしょうか?
var a = "A";
var b = "B";
var c = a + (ここに改行コードを入れたい) + b;
document.writeln (c);
出力結果
A
B

\nとか%0Dとか試したのですが、エラーになってしまってよくわかりません。
よろしくお願いします。




102 名前:デフォルトの名無しさん mailto:sage [2006/11/27(月) 22:21:04 ]
var c = a + "\n" + b;


103 名前:101 mailto:sage [2006/11/27(月) 22:33:42 ]
>>102
ありがとうございます。
しかし、IEで実行すると、改行表示されずに、
A B
と、出てしまいました。


104 名前:デフォルトの名無しさん mailto:sage [2006/11/27(月) 23:34:48 ]
>>103
そういうことなら
var c = a + "<BR>" + b;


105 名前:101 mailto:sage [2006/11/27(月) 23:50:59 ]
>>104
結果、
A
B
になりました。

VBのように、 c = a & chr(13) & chr(10) & b
みたいなものを想像してたので、タグを直接入れるとは驚きです。
ありがとうございました。


106 名前:デフォルトの名無しさん mailto:sage [2006/11/28(火) 00:09:43 ]
>>105
ここは JScript「.NET」 のスレ何だけど(w

VBだってIE上で改行かけるんなら<BR>なんですが。
根本的に分かってない。
document.writeln はHTMLソースを書き出すものだぞ。

ソース自体を改行したいならJSだろうとVBSだろうと文字列に改行を入れるんだし、
レンダリング結果を改行するならHTMLにしたがって<BR>

107 名前:デフォルトの名無しさん mailto:sage [2007/01/07(日) 12:09:40 ]
あけおぬ

108 名前:デフォルトの名無しさん mailto:sage [2007/02/03(土) 21:47:05 ]
Win32API呼び出せますか?
ほかのサンプルはあるのにJScript.NETだけないような。

109 名前:デフォルトの名無しさん mailto:sage [2007/02/03(土) 21:55:07 ]
>>100
jsc.exeのフルパスをレジストリかどっかから取り出せませんか?


110 名前:デフォルトの名無しさん mailto:sage [2007/02/04(日) 10:42:14 ]
>>108
直接は呼び出せないから、C#等ででラッパーを作ってやるしかなかったような。

>>109
直接取り出す方法はないような。
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\InstallRoot
から C:\WINDOWS\Microsoft.NET\Framework\ は取り出せるけれど。
この中の v2.0.50727、v1.1.4322、v1.0.3705 というフォルダに jsc.exeがある。

111 名前:デフォルトの名無しさん mailto:sage [2007/02/04(日) 16:47:55 ]
>>110
ラッパーというと、DLL作って呼び出すということでしょうか?
JScriptソースにC#ソースを埋め込んで、とか出来ます?
或いは、C#で>>100みたいなCMD埋め込み





112 名前:デフォルトの名無しさん mailto:sage [2007/02/04(日) 20:56:08 ]
>>110
Set WindowsInstaller=CreateObject("WindowsInstaller.Installer")
WScript.Echo WindowsInstaller.ComponentPath("{7131646D-CD3C-40F4-97B9-CD9E4E6262EF}","{0BC7A7D7-183A-472C-BE1F-A40A0E626C74}")
で取り出せました。ありがと

113 名前:デフォルトの名無しさん mailto:sage [2007/02/04(日) 21:06:41 ]
>>111
C#でdll作るのが楽だけど、埋め込むというならCodeDomが使えるような気がする。
>>112
バージョン決め撃ちならそれでもいいな。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<43KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef