(´・∀・`) JScript .NET スレッド
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2005/08/12(金) 19:29:35関連リンク
JScript .NETの紹介
http://www.microsoft.com/japan/msdn/columns/scripting/scripting07142000.asp
[MSDN] JScript
http://www.microsoft.com/japan/msdn/library/ja/jscript7/html/jsoriJScript.asp
.NET Framework ダウンロード情報
http://www.microsoft.com/japan/msdn/netframework/downloads/
JScript.NET (入門者向け)
http://homepage3.nifty.com/aya_js/JScript.NET/
.NET Framework SDKで始める .NETプログラミング
http://www.atmarkit.co.jp/fdotnet/special/dotnet_sdk/dotnetsdk01.html
関連スレ
ECMAScript デス 2
http://pc8.2ch.net/test/read.cgi/tech/1088298991/l50
0030デフォルトの名無しさん
2005/08/31(水) 11:19:18○ CompilerParametersのGenerateExecutable
for...inってSystem.Arrayから派生した配列には使えないの?
いや使えないことはないんだけど何故か要素じゃなくてキー、つまり0からの添え字が列挙されちゃう……役たたねー。
0031デフォルトの名無しさん
2005/08/31(水) 11:23:220032デフォルトの名無しさん
2005/08/31(水) 13:29:32GenerateExecutable = true してませんでした m(_ _)m
わぁ出来た。ありがとうございました。
0033デフォルトの名無しさん
2005/09/20(火) 00:29:120034デフォルトの名無しさん
2005/10/03(月) 02:11:080035デフォルトの名無しさん
2005/11/30(水) 22:00:350036デフォルトの名無しさん
2005/12/17(土) 01:31:420037デフォルトの名無しさん
2005/12/17(土) 05:47:580038デフォルトの名無しさん
2005/12/17(土) 20:45:550039デフォルトの名無しさん
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);
}
0040デフォルトの名無しさん
2006/02/03(金) 21:15:140041デフォルトの名無しさん
2006/02/12(日) 23:10:30import 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(""));
0042まいちゃん ◆sGiKVw3hJo
2006/02/13(月) 03:35:350043デフォルトの名無しさん
2006/02/14(火) 00:33:040044ms ◆OOuOpXqoBQ
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(""));
0045デフォルトの名無しさん
2006/02/20(月) 20:35:02breakしたらだめだと思う
0046繁蔵
2006/02/20(月) 21:05:200047デフォルトの名無しさん
2006/02/20(月) 21:05:26// 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();
0048繁蔵
2006/02/20(月) 21:06:360049繁蔵
2006/02/20(月) 21:08:24誰か、教えて頂けませんか?
0050デフォルトの名無しさん
2006/02/20(月) 21:09:190051デフォルトの名無しさん
2006/02/20(月) 21:12:31C#初心者なら↓がいいですよ。
ふらっとC♯(初心者用) Part6
http://pc8.2ch.net/test/read.cgi/tech/1122001458/l50
0052デフォルトの名無しさん
2006/02/21(火) 00:55:25// 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);
}
}
}
0053デフォルトの名無しさん
2006/03/15(水) 00:21:120054デフォルトの名無しさん
2006/03/18(土) 19:49:49はJScript.netで簡単に作れる。
0055デフォルトの名無しさん
2006/03/18(土) 21:02:560056http://www.vector.co.jp/soft/win95/util/se072729.html
2006/03/18(土) 21:51:16もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?
そういや64bitにネイティブ対応している2chブラウザてありましたっけ?
0057デフォルトの名無しさん
2006/03/18(土) 22:06:090058デフォルトの名無しさん
2006/03/27(月) 20:16:32UNLHA32.dllみたいなのだとラップしてもTypeLoadException で落ちる。
これってアンマネージ側が対応してないと無理ってことっすか?
0059デフォルトの名無しさん
2006/03/27(月) 21:10:15を見てみては?
006058
2006/03/28(火) 17:32:03/r:で違うとこ指してただけというオチでした・・・
0061デフォルトの名無しさん
2006/05/17(水) 15:26:42MSIEで外部のウェブサイト閲覧中に HTMLに埋め込まれたJScriptでWMIが操作できるのって普通ですか?
とあるアプリにオブジェクトを色々作れる関数が入っているのですが、ユーザーに無表示でサービス止めたり、ファイル埋め込みができるスクリプトが書けたりして困ってます。
開発者曰く、「WebからJScriptでWMIが弄れるのは普通に仕様だからアプリの問題では無い」とか。
でもそうすると悪質なサイトを訪問するだけで一発BOT感染できるのでないかと疑問が。
MSIEでどのようなセキュリティ上の制限が適用されているかの一覧みたいのがあったら助かります。
オフトピですが、宜しくお願いします。
0063デフォルトの名無しさん
2006/05/20(土) 10:40:47そういうのってインターネットオプションで信頼済サイトに登録してないと
実行できないようになってなかったっけ。
するとどこでもWMIはセキュリティホールですね。
どうやって開発者にねじ込むか。
0065デフォルトの名無しさん
2006/05/24(水) 00:29:22しかもpoderosa自身のオブジェクトを公開してるけど、どうやってるの?
ソース見てもわからんかった。
0066デフォルトの名無しさん
2006/07/12(水) 11:35:520067デフォルトの名無しさん
2006/07/12(水) 16:36:19http://d.hatena.ne.jp/rahAloe/20060712
パクッタだけなのにそこそこいいできだと思ってはいるんだがisComplete()関数がちょっとイマイチなんだわ。
具体的にいうと単純に2回以上のネストに耐えられない。
正直正規表現とかよくわからなくててきとーなんだ。
だれかisComplete関数よくするアイディアください。
0068デフォルトの名無しさん
2006/07/12(水) 16:40:390069デフォルトの名無しさん
2006/07/14(金) 16:16:02それは.NetでなくWSHなので↓のいずれかのほうが適当でしょう。
WSH(・∀・)スレッド!
http://pc8.2ch.net/test/read.cgi/tech/1055075469/l50
お前ら、wsh使ってますか? part5
http://pc8.2ch.net/test/read.cgi/win/1126543183/l50
ECMAScript デス 2
http://pc8.2ch.net/test/read.cgi/tech/1088298991/l50
0070デフォルトの名無しさん
2006/07/14(金) 22:49:45そうかすまん。ここ.NETスレか。
OKありがとう。
007167=68=70
2006/07/17(月) 17:49:54なんとかこのような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から実行できる?
0072デフォルトの名無しさん
2006/07/17(月) 17:52:37微妙にリンク間違えた。
0073デフォルトの名無しさん
2006/07/17(月) 20:17:02import System;
System.Diagnostics.Process.Start("cscript.exe", "./imjs.js");
とすればよかった。
0074デフォルトの名無しさん
2006/08/01(火) 16:12:42一々別窓を開かないバージョンを作ってみた。
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();
0076デフォルトの名無しさん
2006/08/23(水) 16:37:17計算してしまうので、そうならないようにするには、下のように
するしかないのかな。
「独自に作成したコードから直接使用するためのものではありません」な
メソッド使ってるけど。
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);
としたほうがはるかに速かった。
0077デフォルトの名無しさん
2006/08/24(木) 15:25:09// 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");
0078デフォルトの名無しさん
2006/08/24(木) 19:04:54var name = [
"line1",
"line2",
"line3",
].join("\n");
+ で連結するより高速です。
0079デフォルトの名無しさん
2006/08/24(木) 19:17:39var name = "\
line1\
line2\
line3\
";
なんて書き方をよく使ってます。
※行末の「\」の直後で改行するように
0080デフォルトの名無しさん
2006/08/24(木) 21:53:33var name = "\
line1\n\
line2\n\
line3\n\
";
だった
0081デフォルトの名無しさん
2006/08/24(木) 22:09:47var name = ["line1", "line2", "line3"].join("\n");
と
var name = "line1\n" + "line2\n" + "line3\n";
の処理速度を比べてみたら後者の方がはるかに速かった。
後者はコンパイル時に
var name = "line1\nline2\nline3\n";
とみなしているようです。
0082デフォルトの名無しさん
2006/08/25(金) 00:10:05と
var name = "line1\n" + "line2\n" + "line3\n";
は,等価じゃないな
0083デフォルトの名無しさん
2006/08/25(金) 00:16:540084デフォルトの名無しさん
2006/08/26(土) 15:46:240085デフォルトの名無しさん
2006/08/26(土) 16:00:02C#,J#,Java等への移行も楽だし。
0086デフォルトの名無しさん
2006/09/24(日) 05:22:02あと統合環境ってない?
0087デフォルトの名無しさん
2006/09/24(日) 11:11:58作れるんじゃね?
VC2005あるんじゃね?
0088デフォルトの名無しさん
2006/09/25(月) 00:56:27作れますよ。統合環境で作ったことは無いけれど。
0089デフォルトの名無しさん
2006/09/25(月) 00:58:54// 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);
0090デフォルトの名無しさん
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();
0091デフォルトの名無しさん
2006/09/30(土) 21:53:54D:\>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;
}
}
0092デフォルトの名無しさん
2006/09/30(土) 21:55:00D:\>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:\>
0093デフォルトの名無しさん
2006/10/06(金) 16:48:28JScriptにしてみたけど、とりあえず動作するからこんなんでいいのかな。
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();
0094デフォルトの名無しさん
2006/10/25(水) 00:59:39仕事のツールが簡単に出来ちゃうよ。
0095デフォルトの名無しさん
2006/10/26(木) 10:46:02JScriptで書かれたWSHのスクリプトや、Perlのスクリプトを移植するのに
重宝してるけど。
0096デフォルトの名無しさん
2006/10/29(日) 02:57:21大変便利でかなりいいですね。
0097デフォルトの名無しさん
2006/10/29(日) 03:03:24WSH(・∀・)スレッド!
http://pc8.2ch.net/test/read.cgi/tech/1055075469/l50
というのもありますよ。
JScript.NETもなかなか使えるので使ってやってください。
0098デフォルトの名無しさん
2006/10/29(日) 14:55:46J:\>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; }
}
0099デフォルトの名無しさん
2006/10/29(日) 14:57:19J:\>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:\>
0100デフォルトの名無しさん
2006/11/01(水) 14:06:23※ http://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!");
0101デフォルトの名無しさん
2006/11/27(月) 21:59:16入れる場合はどうすればよいのでしょうか?
var a = "A";
var b = "B";
var c = a + (ここに改行コードを入れたい) + b;
document.writeln (c);
出力結果
A
B
\nとか%0Dとか試したのですが、エラーになってしまってよくわかりません。
よろしくお願いします。
0102デフォルトの名無しさん
2006/11/27(月) 22:21:040104デフォルトの名無しさん
2006/11/27(月) 23:34:48そういうことなら
var c = a + "<BR>" + b;
0105101
2006/11/27(月) 23:50:59結果、
A
B
になりました。
VBのように、 c = a & chr(13) & chr(10) & b
みたいなものを想像してたので、タグを直接入れるとは驚きです。
ありがとうございました。
0106デフォルトの名無しさん
2006/11/28(火) 00:09:43ここは JScript「.NET」 のスレ何だけど(w
VBだってIE上で改行かけるんなら<BR>なんですが。
根本的に分かってない。
document.writeln はHTMLソースを書き出すものだぞ。
ソース自体を改行したいならJSだろうとVBSだろうと文字列に改行を入れるんだし、
レンダリング結果を改行するならHTMLにしたがって<BR>
0107デフォルトの名無しさん
2007/01/07(日) 12:09:400108デフォルトの名無しさん
2007/02/03(土) 21:47:05ほかのサンプルはあるのにJScript.NETだけないような。
0109デフォルトの名無しさん
2007/02/03(土) 21:55:07jsc.exeのフルパスをレジストリかどっかから取り出せませんか?
0110デフォルトの名無しさん
2007/02/04(日) 10:42:14直接は呼び出せないから、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がある。
0111デフォルトの名無しさん
2007/02/04(日) 16:47:55ラッパーというと、DLL作って呼び出すということでしょうか?
JScriptソースにC#ソースを埋め込んで、とか出来ます?
或いは、C#で>>100みたいなCMD埋め込み
0112デフォルトの名無しさん
2007/02/04(日) 20:56:08Set WindowsInstaller=CreateObject("WindowsInstaller.Installer")
WScript.Echo WindowsInstaller.ComponentPath("{7131646D-CD3C-40F4-97B9-CD9E4E6262EF}","{0BC7A7D7-183A-472C-BE1F-A40A0E626C74}")
で取り出せました。ありがと
0113デフォルトの名無しさん
2007/02/04(日) 21:06:41C#でdll作るのが楽だけど、埋め込むというならCodeDomが使えるような気がする。
>>112
バージョン決め撃ちならそれでもいいな。
0114デフォルトの名無しさん
2007/02/05(月) 15:31:38FOR /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"
0115デフォルトの名無しさん
2007/02/05(月) 18:34:48しかし、v3.0というフォルダ内には jsc.exe はないのだった。
0116115
2007/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%
0117115
2007/02/05(月) 18:51:59FOR /F "delims=" %%1 IN ('DIR /AD /B /ON "%Framework%\v*"') DO IF EXIST "%Framework%\%%~1\jsc.exe" set DOTNET=%%~1
0118デフォルトの名無しさん
2007/02/08(木) 18:53:47@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)
ワーンングが出ますが、コードのほうで直せませんか?
0119デフォルトの名無しさん
2007/02/08(木) 22:05:05RawValueはlongですよ。なので
var PID : int = int(PC.RawValue);
とすればよいでしょう。
0120デフォルトの名無しさん
2007/02/08(木) 22:39:48サンクス。直りました。今度は最小化ですが、
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;
0121デフォルトの名無しさん
2007/02/08(木) 22:59:04NativeWindow.DefWndProc()のC#の構文は,
public void DefWndProc (
ref Message m
)
refとは参照渡しなので,引数にmではなくてmの参照を渡す必要があります。
(mという名前の箱の中に入っている値を渡すのではなくて,
mという名前の箱がある場所を渡すというイメージ。)
JScriptでは, &m と書けばmの参照を表します。
すなわち,
nw.DefWndProc(&m);
と書けばいいわけです。
0123デフォルトの名無しさん
2007/02/09(金) 16:21:10を以下に変えて、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]);
0124デフォルトの名無しさん
2007/02/09(金) 16:22:59@if(0)==(0) ECHO OFF
codedom.exe "%~f0"
GOTO :EOF
@end
var ie = new ActiveXObject("InternetExplorer.Application");
ie.Navigate("ttp://www.yahoo.com/");
ie.Visible = true;
0125デフォルトの名無しさん
2007/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()
{
〜
}
0126デフォルトの名無しさん
2007/03/17(土) 00:07:48JScript.NETとは関係ない内容なので↓あたりで
改めて質問されたほうがいいですよ。
【質問】ASP.NETスレ Part3【議論】
http://pc11.2ch.net/test/read.cgi/php/1160355849/l50
0127デフォルトの名無しさん
2007/03/17(土) 01:35:04マルチやめれ
0128デフォルトの名無しさん
2007/03/20(火) 16:00:16T a = new T();
を
var a = new T();
と書けるように,JScriptで
var a := new T();
のように書ければいいのにと思った。
0129デフォルトの名無しさん
2007/03/28(水) 16:15:35■ このスレッドは過去ログ倉庫に格納されています