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; } }
バッチではこんなの 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"
これでどうでしょう @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 mailto:sage [2007/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
コンソールのタイトルを表示するバッチファイル+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 サンクス。直りました。今度は最小化ですが、 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;