Тема: JScript: SFX на JS
Приведённый ниже скрипт является самораспаковывающимся архивом. В нем лежит hta-утилита для изготовления таких sfx'ов. Поддерживает передачу имён файлов/папок в комстроке, а при отсутствии параметров комстроки предлагает выбрать папку для упаковки. Системное ограничение: файл wsf не может быть длиннее пол-метра. МИМЕэнкоженная часть выделена форматированием - для тех, кто привык распаковывать руками.
<job id="sfx"><comment>
!!! Сохраните этот текст как файл с раширением .wsf и запустите !!!
</comment><object id="a" progid="Shell.Application" />
<object id="f" progid="Scripting.FileSystemObject" />
<object id="s" progid="ADODB.Stream" />
<object id="x" progid="MSXML2.DOMDocument" />
<script type="text/jscript" language="JScript">
var c=getResource('b'),d=f.getBaseName(/filename="(.+)"/.exec(c)[1]),
r=x.createElement('root'),y=0,
z=f.getSpecialFolder(2)+'\\'+f.getBaseName(f.getTempName())+'.zip';
r.text=c.replace(/^\s*(.+\s+){4}/,''),r.dataType='bin.base64';
s.type=1,s.open(),s.write(r.nodeTypedValue),s.saveToFile(z),s.close();
if(f.fileExists(z)){while(f.folderExists(d+(y?' '+y:'')))y++;
f.createFolder(d+(y?' '+y:''));
for(var i=0;i<a.nameSpace(z).items().count;i++){
a.nameSpace(f.getAbsolutePathName(d+(y?' '+y:''))).copyHere(
a.nameSpace(z).items().item(i),0);}f.deleteFile(z);}
</script><resource id="b">
MIME-Version: 1.0
Content-Type: application/octet-stream; name="base64sfx.zip"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="base64sfx.zip"
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
</resource></job>
Автор Serge Yolkin