Skip to content

Instantly share code, notes, and snippets.

@rndomhack
Last active March 6, 2023 19:05
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save rndomhack/8968734 to your computer and use it in GitHub Desktop.
Save rndomhack/8968734 to your computer and use it in GitHub Desktop.
Create ADODB.Stream object for HTA (mode IE9, IE10)
var fso = new ActiveXObject("Scripting.FileSystemObject");
var ado = (function() {
if (typeof window === "undefined") {
return new ActiveXObject("ADODB.Stream");
} else {
var _GetObject = (typeof GetObject === "function") ? GetObject : (function() {
var script = window.document.createElement("script");
script.setAttribute("language", "VBScript");
script.innerHTML = "Function GetObjectHelper(name)\nSet GetObjectHelper = GetObject(name)\nEnd Function";
window.document.body.appendChild(script);
return function(name) {
return GetObjectHelper(name);
}
})();
try {
var temp = fso.BuildPath(fso.GetSpecialFolder(2), fso.GetTempName() + ".wsc");
var otf = fso.OpenTextFile(temp, 2, true);
otf.Write('<?XML version="1.0"?><package><component id="activexHelper"><public><method name="_ActiveXObject"/></public><script language="JScript">function _ActiveXObject(name){return new ActiveXObject(name)}</script></component></package>');
otf.Close();
var obj = _GetObject("script:" + temp)._ActiveXObject("ADODB.Stream");
fso.DeleteFile(temp, true);
} catch(err) {
throw new Error("Can not create ADOOB.Stream object.");
}
return obj;
}
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment