06/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:デフォルトの名無しさん
06/02/20 20:35:02
>>44
breakしたらだめだと思う
46:繁蔵
06/02/20 21:05:20
1
47:デフォルトの名無しさん
06/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:繁蔵
06/02/20 21:06:36
すいません、お邪魔します。初めて2CHやるのですが、いいですか?
49:繁蔵
06/02/20 21:08:24
C#.NETで自動販売機のプログラミングをやるのですが、文字列がまったく解りません。
誰か、教えて頂けませんか?
50:デフォルトの名無しさん
06/02/20 21:09:19
いいですけどJScript.netスレッドでも良ければ
51:デフォルトの名無しさん
06/02/20 21:12:31
>>49
C#初心者なら↓がいいですよ。
ふらっとC♯(初心者用) Part6
スレリンク(tech板)l50
52:デフォルトの名無しさん
06/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:デフォルトの名無しさん
06/03/15 00:21:12
// 眠い
54:デフォルトの名無しさん
06/03/18 19:49:49
あらかじめ言っておくが64bitにネイティブ対応したテキスト置換ソフト
はJScript.netで簡単に作れる。
55:デフォルトの名無しさん
06/03/18 21:02:56
コンパイル時間含めても全般的にActivePerlより速かった
56:http://www.vector.co.jp/soft/win95/util/se072729.html
06/03/18 21:51:16
TextSS のWindowsXP(Professional)64bit化おながいします
もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?
そういや64bitにネイティブ対応している2chブラウザてありましたっけ?
57:デフォルトの名無しさん
06/03/18 22:06:09
マルチに見せかけた嵐か
58:デフォルトの名無しさん
06/03/27 20:16:32
C#でラップしてwin32apiは呼び出せたんだけど、
UNLHA32.dllみたいなのだとラップしてもTypeLoadException で落ちる。
これってアンマネージ側が対応してないと無理ってことっすか?
59:デフォルトの名無しさん
06/03/27 21:10:15
URLリンク(caldbase.sourceforge.jp)
を見てみては?
60:58
06/03/28 17:32:03
すまん普通にできた
/r:で違うとこ指してただけというオチでした・・・
61:デフォルトの名無しさん
06/05/17 15:26:42
print("sage");
62: ◆DEATHPgXXc
06/05/20 02:23:29
JScript.NET ではなくて、JScriptについて質問があるんですが(オフトピでスマソ)、
MSIEで外部のウェブサイト閲覧中に HTMLに埋め込まれたJScriptでWMIが操作できるのって普通ですか?
とあるアプリにオブジェクトを色々作れる関数が入っているのですが、ユーザーに無表示でサービス止めたり、ファイル埋め込みができるスクリプトが書けたりして困ってます。
開発者曰く、「WebからJScriptでWMIが弄れるのは普通に仕様だからアプリの問題では無い」とか。
でもそうすると悪質なサイトを訪問するだけで一発BOT感染できるのでないかと疑問が。
MSIEでどのようなセキュリティ上の制限が適用されているかの一覧みたいのがあったら助かります。
オフトピですが、宜しくお願いします。
63:デフォルトの名無しさん
06/05/20 10:40:47
>>62
そういうのってインターネットオプションで信頼済サイトに登録してないと
実行できないようになってなかったっけ。
64: ◆DEATHPgXXc
06/05/21 23:31:39
>>63 矢張りそのような制限が本来はありますか。
するとどこでもWMIはセキュリティホールですね。
どうやって開発者にねじ込むか。
65:デフォルトの名無しさん
06/05/24 00:29:22
poderosaってマクロ機能で、アプリケーションからJScript.NETを動かしてて
しかもpoderosa自身のオブジェクトを公開してるけど、どうやってるの?
ソース見てもわからんかった。
66:デフォルトの名無しさん
06/07/12 11:35:52
人いないお
67:デフォルトの名無しさん
06/07/12 16:36:19
ijs.jsを完璧にパクッたというか改良したというかとにかくこういうの作ってみた
URLリンク(d.hatena.ne.jp)
パクッタだけなのにそこそこいいできだと思ってはいるんだがisComplete()関数がちょっとイマイチなんだわ。
具体的にいうと単純に2回以上のネストに耐えられない。
正直正規表現とかよくわからなくててきとーなんだ。
だれかisComplete関数よくするアイディアください。
68:デフォルトの名無しさん
06/07/12 16:40:39
あと言い忘れたけどisComplete()関数の目的はとりあえずいまのところ引数文字列においてブレースが閉じられているか閉じられていないかどうか判別するというだけ。
69:デフォルトの名無しさん
06/07/14 16:16:02
>>67-68
それは.NetでなくWSHなので↓のいずれかのほうが適当でしょう。
WSH(・∀・)スレッド!
スレリンク(tech板)l50
お前ら、wsh使ってますか? part5
スレリンク(win板)l50
ECMAScript デス 2
スレリンク(tech板)l50
70:デフォルトの名無しさん
06/07/14 22:49:45
>>69
そうかすまん。ここ.NETスレか。
OKありがとう。
71:67=68=70
06/07/17 17:49:54
URLリンク(d.hatena.ne.jp)
なんとかこのような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:デフォルトの名無しさん
06/07/17 17:52:37
URLリンク(d.hatena.ne.jp)
微妙にリンク間違えた。
73:デフォルトの名無しさん
06/07/17 20:17:02
解決しますた。
import System;
System.Diagnostics.Process.Start("cscript.exe", "./imjs.js");
とすればよかった。
74:デフォルトの名無しさん
06/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
06/08/04 18:22:27
>>74
ありがとう!
早速反映させました。
76:デフォルトの名無しさん
06/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:デフォルトの名無しさん
06/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:デフォルトの名無しさん
06/08/24 19:04:54
改行付き文字列を見た目にもキレイに簡単出力
var name = [
"line1",
"line2",
"line3",
].join("\n");
+ で連結するより高速です。
79:デフォルトの名無しさん
06/08/24 19:17:39
>>78
var name = "\
line1\
line2\
line3\
";
なんて書き方をよく使ってます。
※行末の「\」の直後で改行するように
80:デフォルトの名無しさん
06/08/24 21:53:33
改行付きなら
var name = "\
line1\n\
line2\n\
line3\n\
";
だった
81:デフォルトの名無しさん
06/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:デフォルトの名無しさん
06/08/25 00:10:05
var name = ["line1", "line2", "line3"].join("\n");
と
var name = "line1\n" + "line2\n" + "line3\n";
は,等価じゃないな
83:デフォルトの名無しさん
06/08/25 00:16:54
line3の\nを取ればいいさ
84:デフォルトの名無しさん
06/08/26 15:46:24
VBScriptとJScriptのどっちをよく使いますか?
85:デフォルトの名無しさん
06/08/26 16:00:02
断然JScript。
C#,J#,Java等への移行も楽だし。
86:デフォルトの名無しさん
06/09/24 05:22:02
JScript.NETってフォーム使ったアプリケーション作れますか?
あと統合環境ってない?
87:デフォルトの名無しさん
06/09/24 11:11:58
>>86
作れるんじゃね?
VC2005あるんじゃね?
88:デフォルトの名無しさん
06/09/25 00:56:27
>>86
作れますよ。統合環境で作ったことは無いけれど。
89:デフォルトの名無しさん
06/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:デフォルトの名無しさん
06/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:デフォルトの名無しさん
06/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:デフォルトの名無しさん
06/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:デフォルトの名無しさん
06/10/06 16:48:28
URLリンク(msdn2.microsoft.com) の使用例を
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:デフォルトの名無しさん
06/10/25 00:59:39
JScriptって便利だね。
仕事のツールが簡単に出来ちゃうよ。
95:デフォルトの名無しさん
06/10/26 10:46:02
しかしあまり人気ないような。
JScriptで書かれたWSHのスクリプトや、Perlのスクリプトを移植するのに
重宝してるけど。
96:デフォルトの名無しさん
06/10/29 02:57:21
会社でWSHを広めています。
大変便利でかなりいいですね。
97:デフォルトの名無しさん
06/10/29 03:03:24
>>96
WSH(・∀・)スレッド!
スレリンク(tech板)l50
というのもありますよ。
JScript.NETもなかなか使えるので使ってやってください。
98:デフォルトの名無しさん
06/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:デフォルトの名無しさん
06/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:デフォルトの名無しさん
06/11/01 14:06:23
バッチファイルにJScript.NETスクリプトを埋め込むテスト
※ スレリンク(tech板: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:デフォルトの名無しさん
06/11/27 21:59:16
ものすごい初歩的な質問だと思うのですが、1つの変数に改行コードを
入れる場合はどうすればよいのでしょうか?
var a = "A";
var b = "B";
var c = a + (ここに改行コードを入れたい) + b;
document.writeln (c);
出力結果
A
B
\nとか%0Dとか試したのですが、エラーになってしまってよくわかりません。
よろしくお願いします。
102:デフォルトの名無しさん
06/11/27 22:21:04
var c = a + "\n" + b;
103:101
06/11/27 22:33:42
>>102
ありがとうございます。
しかし、IEで実行すると、改行表示されずに、
A B
と、出てしまいました。
104:デフォルトの名無しさん
06/11/27 23:34:48
>>103
そういうことなら
var c = a + "<BR>" + b;
105:101
06/11/27 23:50:59
>>104
結果、
A
B
になりました。
VBのように、 c = a & chr(13) & chr(10) & b
みたいなものを想像してたので、タグを直接入れるとは驚きです。
ありがとうございました。
106:デフォルトの名無しさん
06/11/28 00:09:43
>>105
ここは JScript「.NET」 のスレ何だけど(w
VBだってIE上で改行かけるんなら<BR>なんですが。
根本的に分かってない。
document.writeln はHTMLソースを書き出すものだぞ。
ソース自体を改行したいならJSだろうとVBSだろうと文字列に改行を入れるんだし、
レンダリング結果を改行するならHTMLにしたがって<BR>
107:デフォルトの名無しさん
07/01/07 12:09:40
あけおぬ
108:デフォルトの名無しさん
07/02/03 21:47:05
Win32API呼び出せますか?
ほかのサンプルはあるのにJScript.NETだけないような。
109:デフォルトの名無しさん
07/02/03 21:55:07
>>100
jsc.exeのフルパスをレジストリかどっかから取り出せませんか?
110:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/02/04 16:47:55
>>110
ラッパーというと、DLL作って呼び出すということでしょうか?
JScriptソースにC#ソースを埋め込んで、とか出来ます?
或いは、C#で>>100みたいなCMD埋め込み
112:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/02/04 21:06:41
>>111
C#でdll作るのが楽だけど、埋め込むというならCodeDomが使えるような気がする。
>>112
バージョン決め撃ちならそれでもいいな。
114:デフォルトの名無しさん
07/02/05 15:31:38
バッチではこんなの
FOR /F "delims=" %%1 IN ('DIR /AD /B /ON "%SystemRoot%\Microsoft.NET\Framework\v*"') DO SET DOTNET=%%~1
ECHO "%SystemRoot%\Microsoft.NET\Framework\%DOTNET%\jsc.exe"
115:デフォルトの名無しさん
07/02/05 18:34:48
>>114
しかし、v3.0というフォルダ内には jsc.exe はないのだった。
116:115
07/02/05 18:49:53
これでどうでしょう
@ECHO OFF
SETLOCAL
SET Framework=%SystemRoot%\Microsoft.NET\Framework
FOR /F "delims=" %%1 IN ('DIR /AD /B /ON "%SystemRoot%\Microsoft.NET\Framework\v*"') DO IF EXIST "%Framework%\%%~1\jsc.exe" set DOTNET=%%~1
SET JSC="%Framework%\%DOTNET%\jsc.exe"
ECHO %JSC%
117:115
07/02/05 18:51:59
>>116の4行目は↓でok
FOR /F "delims=" %%1 IN ('DIR /AD /B /ON "%Framework%\v*"') DO IF EXIST "%Framework%\%%~1\jsc.exe" set DOTNET=%%~1
118:デフォルトの名無しさん
07/02/08 18:53:47
コンソールのタイトルを表示するバッチファイル+JScript.NET
@if(0)==(0) ECHO OFF
SETLOCAL
SET DOTNET=%SystemRoot%\Microsoft.NET\Framework
FOR /F "delims=" %%1 IN ('DIR /AD /B /ON "%DOTNET%\v*"') DO IF EXIST "%DOTNET%\%%~1\jsc.exe" SET DOTNET=%DOTNET%\%%~1\jsc.exe
"%DOTNET%" /nologo /d:_ /out:"%~f0.exe" "%~f0"
"%~f0.exe"
DEL "%~f0.exe"
GOTO :EOF
@end
import System;
import System.Diagnostics;
var PC : PerformanceCounter=new PerformanceCounter('Process','Creating Process Id',Process.GetCurrentProcess().ProcessName);
var PID : int = PC.RawValue;
Console.WriteLine(Process.GetProcessById(PID).MainWindowTitle)
ワーンングが出ますが、コードのほうで直せませんか?
119:デフォルトの名無しさん
07/02/08 22:05:05
>>118
RawValueはlongですよ。なので
var PID : int = int(PC.RawValue);
とすればよいでしょう。
120:デフォルトの名無しさん
07/02/08 22:39:48
>>119
サンクス。直りました。今度は最小化ですが、
import System;
import System.Diagnostics;
import System.Windows.Forms;
const WM_SYSCOMMAND : int = 0x0112;
const SC_MINIMIZE : int = 0xF020;
var nCmdShow : int =SC_MINIMIZE;
var PC : PerformanceCounter=new PerformanceCounter('Process','Creating Process Id',Process.GetCurrentProcess().ProcessName);
var PID : int=int(PC.RawValue);
var oProcess : System.Diagnostics.Process=System.Diagnostics.Process.GetProcessById(PID);
var hwnd : IntPtr=oProcess.MainWindowHandle;
var m : Message = Message.Create(hwnd,WM_SYSCOMMAND,IntPtr.op_Explicit(nCmdShow),IntPtr.op_Explicit(0));
var nw : NativeWindow = new NativeWindow();
nw.AssignHandle(hwnd);
print(m.ToString());
nw.DefWndProc(m); // 型が一致しません。のエラーになります。なぜでしょう?
nw.ReleaseHandle();
nw = null;
121:デフォルトの名無しさん
07/02/08 22:59:04
Microsoft .NET Framework SDK v2.0のドキュメントによると
NativeWindow.DefWndProc()のC#の構文は,
public void DefWndProc (
ref Message m
)
refとは参照渡しなので,引数にmではなくてmの参照を渡す必要があります。
(mという名前の箱の中に入っている値を渡すのではなくて,
mという名前の箱がある場所を渡すというイメージ。)
JScriptでは, &m と書けばmの参照を表します。
すなわち,
nw.DefWndProc(&m);
と書けばいいわけです。
122:120
07/02/09 01:00:05
>>121
感謝。最小化されました。
123:デフォルトの名無しさん
07/02/09 16:21:10
>>29
を以下に変えて、codedom.exeを作ります。
import System;
import System.IO;
import System.CodeDom.Compiler;
import System.Reflection;
import Microsoft.JScript;
var source : String = new StreamReader(Environment.GetCommandLineArgs()(1)).ReadToEnd();
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]);
124:デフォルトの名無しさん
07/02/09 16:22:59
これを使うと、見た目、テンポラリファイルを作ることなく、できます。
@if(0)==(0) ECHO OFF
codedom.exe "%~f0"
GOTO :EOF
@end
var ie = new ActiveXObject("InternetExplorer.Application");
ie.Navigate("URLリンク(www.yahoo.com));
ie.Visible = true;
125:デフォルトの名無しさん
07/03/16 23:24:23
教えてください!
現在.NET C#で開発しています。
cs側からRegisterStartupScriptを使って
aspx側にjavascriptを埋め込んでいるのですが、
onload時に処理を走らせようとしても、通ってくれません。
onloadが実行される前にcs側のjavascriptがaspxに埋め込まれる方法はありませんか?
[.aspx]
~
<body onload="initList()">
~
</body>
</html>
<.cs>
RegisterStartupScriptを使って以下をaspx側に埋め込む
function initList()
{
~
}
126:デフォルトの名無しさん
07/03/17 00:07:48
>>125
JScript.NETとは関係ない内容なので↓あたりで
改めて質問されたほうがいいですよ。
【質問】ASP.NETスレ Part3【議論】
スレリンク(php板)l50
127:デフォルトの名無しさん
07/03/17 01:35:04
JScript.NETじゃないやん
マルチやめれ
128:デフォルトの名無しさん
07/03/20 16:00:16
C# 3.0で
T a = new T();
を
var a = new T();
と書けるように,JScriptで
var a := new T();
のように書ければいいのにと思った。
129:デフォルトの名無しさん
07/03/28 16:15:35
ブラウザの閉じるボタンのイベントってどう拾うんだ?
130:デフォルトの名無しさん
07/03/28 17:31:49
NativeWindowつかってサブクラス化してメッセージ盗めばいいんじゃない?