2011-07-26 3 views
2

실행중인 Javascript를 cmd.exe라고 말하고 싶습니다.아직 실행 중이 아니면 javascript를 실행하여

나는 실행중인 프로세스를 자바 스크립트로 볼 수있는 방법이 있기를 바랐다. 그리고 그 이름이리스트에 있다면 실행되지 않았다. 하지만 그 과정을 실행하지 않으면.

+2

아마도 JScript.net을 살펴보고 싶을 것입니다. –

+1

Rhino, ringoJS, nodejs 또는 다른 서버 측 js 플랫폼을 살펴보십시오. Windows의 경우에도 JScript.NET이 가장 좋을 것입니다. – Raynos

+1

WSH 개체 모델은 물론 http://msdn.microsoft.com/en-us/library/a74hyyw0(v=vs.85).aspx – JAAulde

답변

6

자바 스크립트는 OS 레벨 프로세스 제어 스크립팅을위한 최선의 경로가 아닙니다. javascript가 운영 체제에 직접 액세스 할 수 있다면 인터넷을 탐색하는 데 극도의 보안 위험이 발생할 수 있습니다.

Internet Explorer에는 Windows에서 JavaScript를 스크립팅하는 메커니즘이 있지만 보안 설정을 조정해야이 문제가 발생합니다. 다른 브라우저는 가능성조차 제공하지 않습니다.

보안 경고에서 "차단 된 콘텐츠 허용"을 선택한 후, Internet Explorer에서 notepad.exe를 실행합니다이 코드 :

var shell = new ActiveXObject('WScript.Shell'); 
shell .Run("notepad.exe"); 

문서 : 그래서 http://msdn.microsoft.com/en-us/library/aew9yb99%28v=vs.85%29.aspx

, 우리는이 방법을 사용할 수 있습니다 이 적합한 경우 모두 목록 활성 프로세스 하나를 시작합니다 :

function startUniqueProcess(process_name, process_path) { 
    // create a shell object and exec handle 
    var shell = new ActiveXObject('WScript.Shell'); 
    var handle = shell.Exec("tasklist.exe"); 

    // loop through the output of tasklist.exe 
    while (!handle.StdOut.AtEndOfStream) { 
     // grab a line of text 
     var p = handle.StdOut.ReadLine(); 
     // split on space 
     p = p.split(' '); 
     // check for split lines longer than 2 
     if (p.length < 2) 
      continue; 
     // match process_name to this item 
     if (p[0] == process_name) { 
      // clean up and return false, process already running 
      shell = null; 
      handle = null; 
      return false; 
     } // end :: if matching process name 
    } // end :: while 

    // clean up 
    handle = null; 

    // process not found, start it 
    return shell.Exec(process_path); 
} 


// example use 
var result = startUniqueProcess('notepad.exe', 'notepad.exe'); 
if (result === false) 
    alert('did not start, already open'); 
else 
    alert('should be open'); 

보관할 전 n 마음, 이것은 개념의 증거입니다 - 실제로 나는 당신이 항상 이것을 제안하지 않을 것입니다. 그것은 브라우저 특정, 위험한, 악용 가능하고 일반적으로 나쁜 습관입니다. 웹 언어는 웹 응용 프로그램을위한 것이며, 자바 스크립트는 Microsoft에서 여러분에게 말할 수있는 것에도 불구하고 OS 스크립팅 언어가 아닙니다. :)

관련 문제