2013-12-18 3 views
1

에서 ActiveXObject 만들기 사실 내가 처리해야합니다),내가 내 코드에 다음 줄을 GUID

그래서 GUID에서 ActiveXObject을 만들고 싶습니다.

내가하려고 노력 :

document.createElement('<OBJ' + 'ECT ID="ScreenRecorderWrapper" CLA' + 'SSID="CL' + 'SID:37CCF998-3BB7-' + '4F8A-9D9F-EF391543E94A"></OB' + 'JECT>'); 
var ScreenRecorder = ScreenRecorderWrapper; 

하지만 문제는 ScreenRecorderWrapperSetTimeout 또는 다른 조작 후 정의 될 것입니다.

ActiveXObject을 GUID가 아닌 그 이름에서 가져올 수 있습니까?
뭔가 같은 :

var ScreenRecorder = new ActiveXObject('37CCF668-3BB7-4F8A-9D9F-EF391543E94A'); 
+0

내 대답이 도움이 되었습니까? – manuell

답변

0

ActiveXObject ProgID를이, 그러나, 당신은 버전 독립적 인 ProgID가 아닌 버전에 의존 ProgID를 사용할 수 있어야합니다.

버전 종속 ProgID에는 일반적으로 버전 독립적 ProgID에 버전 번호가 추가되어 있습니다.

이 경우 버전 독립적 인 ProgID는 'CCScreenRecorder.ScreenRecorder'이고 버전 종속 ProgID는 'CCScreenRecorder.ScreenRecorder.1' 또는 'CCScreenRecorder.ScreenRecorder.2'과 같을 것입니다.

잘못된 버전이 설치된 경우 버전 종속 ProgID를 사용하면 오류가 발생할 수 있습니다. 버전 종속적 인 ProgID를 먼저 사용하고 버전 독립적 인 ProgID로 대체 할 수 있습니다.

+0

progid는 둘 다 동일하며 둘 다 CCScreenRecorder.ScreenRecorder이므로 버전 차이를 볼 수 없습니다. –

+0

@DorCohen 그건 [* 버전 독립적 인 *] (http://msdn.microsoft.com/en-us/library/windows/desktop/ms694514 (v = vs.85) .aspx) progid입니다. [버전 종속] (http://msdn.microsoft.com/en-us/library/windows/desktop/dd542719 (v = vs.85) .aspx) 키는 레지스트리에 별도로 저장되며 다른 다른 CLSID의 이름입니다. (만약 버전 의존적 인 progids가 동일하다면, 당신은 다소 멍청해진다.) –

0

CLSID에서 ProgId를 얻으려면 레지스트리를 사용하십시오. "Shell"ActiveX를 통해 JS에서 레지스트리 읽기 가능

var shellObj = new ActiveXObject("WScript.Shell"); 
var clsid = "37CCF668-3BB7-4F8A-9D9F-EF391543E94A"; 
var progid = shellObj.RegRead("HKEY_CLASSES_ROOT\\CLSID\\{"+clsid+"}\\ProgID\\"); 
var ScreenRecorder = new ActiveXObject(progid); 
+0

약간의 설명을 추가해주십시오. – DontVoteMeDown

+0

@DontVoteMeDown 완료. – manuell

+0

GUID가 나에게 동일한 progid를 반환하기 때문에 솔루션이 도움이되지 않았습니다. –

관련 문제