Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS Windows > WSC файл


Автор: Springtime 25.10.2006, 06:36
Списал с книги WSC файл:

Код

<?xml version="1.0"?>
<component>
    <?component error="true" debug="true"?>
    <registration progid="DateArc.WSC" classid="{59454672-4dd6-420f-9bbd-dc9ebe6ca81e}" description="DateArc" version="1.00">
<script language="JScript">
<![CDATA[
var WshShell;
var vbInformation=64;
function Register(){
WshShell = new ActiveXObject("WScript.Shell");
WshShell.Popup("Компонент зарегистрирован в системе",0,"Компонент для архивирования файлов", vbInformation);
}
function Unregister(){
WshShell = new ActiveXObject("WScript.Shell");
WshShell.Popup("Компонент удален из системе",0,"Компонент для архивирования файлов", vbInformation);
}
]]>
</script>

    </registration>
    <public>
        <property name="SFrom">
            <get/>
            <put/>
        </property>
        <property name="SArch">
            <get/>
            <put/>
        </property>
        <property name="SPref">
            <get/>
            <put/>
        </property>
        <property name="SMask">
            <get/>
            <put/>
        </property>
        <property name="SErrMess">
            <get/>
            <put/>
        </property>
        <method name="FilesToArchiv">
        </method>
    </public>
    <implements id="Behavior" type="Behavior"/>
<script language="JScript">
<![CDATA[

var description = new DateArc;
function DateArc()
{
    this.get_SFrom = get_SFrom;
    this.put_SFrom = put_SFrom;
    this.get_SArch = get_SArch;
    this.put_SArch = put_SArch;
    this.get_SPref = get_SPref;
    this.put_SPref = put_SPref;
    this.get_SMask = get_SMask;
    this.put_SMask = put_SMask;
    this.get_SErrMess = get_SErrMess;
    this.put_SErrMess = put_SErrMess;

    this.FilesToArchiv = FilesToArchiv;
}

var SFrom;
var SArch;
var SPref;
var SMask;
var SErrMess;

function get_SFrom()
{
    return SFrom;
}

function put_SFrom(newValue)
{
    SFrom = newValue;
}

function get_SArch()
{
    return SArch;
}

function put_SArch(newValue)
{
    SArch = newValue;
}

function get_SPref()
{
    return SPref;
}

function put_SPref(newValue)
{
    SPref = newValue;
}

function get_SMask()
{
    return SMask;
}

function put_SMask(newValue)
{
    SMask = newValue;
}

function get_SErrMess()
{
    return SErrMess;
}

function put_SErrMess(newValue)
{
    SErrMess = newValue;
}

function FilesToArchiv()
{
    return "Temporary Value";
}

function NowIs(){
var d, s="", s1="";
d=new Date();
s+=(d.getMonth()+1);
if(s.length==1)
s="0"+s;
s1+=d.getDate();
if(s1.length==1)
s1="0"+s1;
s+=s1;
return s;
}

function CheckPath(){
var FSO;
FSO=new ActiveXObject("Scripting.FileSystemObject");
if (!FSO.FolderExists(SFrom)){
SErrMess="Не найден исходный каталог "+SFrom;
return false;
}
if (!FSO.FolderExists(SArch)){
SErrMess="Не найден каталог для хранения архивов "+SArch;
return false;
}
return true;
}

function FilesToArchiv(
var WshShell, SComLine, RetCode, SFName, FSO;
if(!CheckPath()) return false;
FSO = new ActiveXObject("Scripting.FileSystemObject");
WshShell = new ActiveXObject("WScript.Shell");
SFName=SPref+NowIs()+".arj";
SComLine="%COMSPEC% /c arj.exe a ";
SComLine+=FSO.BuildPath(SArch, SFName)+" ";
SComLine+=FSO.BuildPath(SFrom, SMask);
RetCode = WshShell.Run(SComLine, 1, true);
if(0==RetCode)
return true;
else{
SErrMess="Ошибка ARJ.exe! Код "+RetCode;
return false;
}
}

]]>
    </script>
</component>



Но при попытке его подключить Windows 2003 sp1 выдает - 
user posted image

В чем проблема?

Автор: localhost 27.10.2006, 20:05
Если еще актуально, нарыл в гугле:
Цитата

Upgrade your script engine to v5.5 or futher.

You can also try to register the component with this option
REGSVR32.EXE /i:"c:\mylittlecalendar\mylittlecalendar.wsc" "C:\WINNT\System32\scrobj.dll"

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)