PDA

Показать полную графическую версию : Windows xp black edition


Страниц : 1 2 3 4 [5]

Drongo
20-04-2008, 14:00
Ребят, тут в моём Black Edition XP есть файл RunOnceEx.js лежит в корне диска в папке $OEM$\$$\RunOnceEx.js и содержимое его приведено ниже:
1. Что этот скрипт делает?!
2. Его назначение?!
3. Когда при установке он запускается и откуда?!
4. Можете пояснить-"рассшифровать" его?!
//003

var soft = new Array();
var key = "HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunOnceEx\\";
var runonceex_js = "HKLM\\SOFTWARE\\RunOnceEx.js";
var WshShell = new ActiveXObject("WScript.Shell");
var fso = new ActiveXObject( "Scripting.FileSystemObject" );
var n = 0;

soft.title = "";
soft.insertNextMedium = "Please insert next disk with {soft}";
soft.rebootMessage = "Clean & Reboot";
soft.startReboot = "reboot.exe /t 60 /m \"{message}\" /r {runat}";

soft.startReboot = soft.startReboot.replace("{message}", soft.rebootMessage);
//soft.insertNextMedium = soft.insertNextMedium.replace( "{soft}", soft[a].name );

function FindDriveLetter( dir )
{
var e = new Enumerator( fso.Drives );
var x;
var letters = new Array();
var path;

for( ; !e.atEnd(); e.moveNext() )
{
x = e.item();

if( x.DriveType == 3 || x.IsReady )
{
letters = letters.concat( x.DriveLetter );
}

}

if( dir.length == 0)
{
return letters[0] + ":";
}

for( i = 0; i < letters.length; i++ )
{
if(dir.substr(0, 2) != "\\\\")
path = letters[i] + ":\\" + dir;

if( fso.FolderExists( path ) || fso.FileExists( path ) )
{
return letters[i] + ":";
}
}
return "";
}

function GetFilledString( zahl, fillChar, num_of_digits )
{
var filledStr = zahl.toString();
while( filledStr.length < num_of_digits )
{
filledStr = fillChar + filledStr;
}
return filledStr;
}
function RunOnceEx(index)
{
WshShell.RegWrite( key + "TITLE", soft.title, "REG_SZ" );
var netzwerk_install;

for( a = index; a < soft.length; a++ )
{
if( soft[a].name == "-= REBOOT =-" )
{
WshShell.RegWrite( key + GetFilledString(a, "0", 3) + "\\", soft.rebootMessage, "REG_SZ" );
WshShell.RegWrite( key + "TITLE",
soft.title + " " + (index+1).toString() + " - " + (a+1).toString() + " / " + soft.length.toString(),
"REG_SZ" );
WshShell.Run( "rundll32.exe iernonce.dll,RunOnceExProcess", 1, true );
soft.startReboot = soft.startReboot.replace("{runat}", (a + 1).toString());
WshShell.Run( soft.startReboot );

return ++a;
}
else
{
soft[a].drive = "";

if( soft[a].checkPoint.substr(0, 2) != "\\\\")
{
soft[a].drive = FindDriveLetter( soft[a].checkPoint );
netzwerk_install = 0;
}
else
netzwerk_install = 1;

if( soft[a].drive.length == 0 && netzwerk_install == 0 )
{
WshShell.RegWrite( key + "TITLE",
soft.title + " " + (index+1).toString() + " - " + a.toString() + " / " + soft.length.toString(),
"REG_SZ" );
WshShell.Run("rundll32.exe iernonce.dll,RunOnceExProcess", 1, true);
soft[a].drive = FindDriveLetter( soft[a].checkPoint );
}
if( soft[a].drive.length == 0 && netzwerk_install == 0 )
{
WshShell.Popup( soft.insertNextMedium.replace( "{soft}", soft[a].name ), 60, "", 64 );
soft[a].drive = FindDriveLetter( soft[a].checkPoint );
}
if( soft[a].drive.length == 0 && netzwerk_install == 0 )
{
WshShell.Popup( soft.insertNextMedium.replace( "{soft}", soft[a].name ), 60, "", 64 );
soft[a].drive = FindDriveLetter( soft[a].checkPoint );
}
if( soft[a].drive.length == 0 && netzwerk_install == 0 )
{
WScript.Echo( soft.insertNextMedium.replace( "{soft}", soft[a].name ) );
soft[a].drive = FindDriveLetter( soft[a].checkPoint );
index = a+1;
}
if(soft[a].drive.length || netzwerk_install == 1 )
{
WshShell.RegWrite( key + GetFilledString(a, "0", 3) + "\\", soft[a].name, "REG_SZ" );
for(b = 0; b < soft[a].length; b++)
{
if( netzwerk_install == 0 )
soft[a][b] = soft[a][b].replace( "%CDROM%", soft[a].drive );
else
soft[a][b] = soft[a][b].replace( "%CDROM%", "" );

WshShell.RegWrite( key + GetFilledString( a, "0", 3 ) + "\\" + GetFilledString( b, "0", 2 ),
soft[a][b], "REG_SZ" );
}
}
}
}

if( index > 0 && index < soft.length )
{
WshShell.RegWrite( key + "TITLE",
soft.title + " " + ( index + 1 ).toString() + " - " + soft.length.toString() + " / " + soft.length.toString(),
"REG_SZ" );
}

if( index < soft.length )
{
WshShell.Run( "rundll32.exe iernonce.dll,RunOnceExProcess", 1, true );
}
return soft.length;
}
function main()
{
//var namedArgs = WScript.Arguments.Named;
//var nextaction = WshShell.RegRead( runonceex_js + "\\" );
var startAt = 0;
//var wait_sek = 0;
var WshSysEnv = WshShell.Environment( "SYSTEM" );
var driversDir = WshSysEnv( "systemdrive" );
driversDir += "\\Drivers";

try
{
startAt = WshShell.RegRead( runonceex_js + "\\runat" );
WshShell.RegDelete( runonceex_js + "\\runat" );
}
catch(e){}

if( RunOnceEx( startAt ) == soft.length )
{
if( fso.FolderExists( driversDir ) )
{
fso.DeleteFolder( driversDir, true );
}
try
{
WshShell.RegDelete( runonceex_js );
}
catch(e){}
}
}

main();

DedAlex
20-04-2008, 15:00
1, 2 - Установка софта и/или драйверов.

Drongo
20-04-2008, 15:57
DedAlex, Думаю Windows Media Player 11, поскольку в окне установки на 9-й кажется минуте, появляется окно установки\распаковки и ещё одно окошко потом, появляется консольное.
3-й вопрос и 4-й остаётся открытым. Или хотя бы 3-й.

Petya V4sechkin
20-04-2008, 16:46
3. Когда при установке он запускается и откуда?!
Видимо, из секции [GuiRunOnce] файла ответов (http://forum.oszone.net/thread-47582.html)?

Drongo
20-04-2008, 17:09
Petya V4sechkin, Нет, вот часть содержимого WINNT.SIF
[GuiRunOnce]
Command0="%windir%\tweaks1.cmd"
А содержимое tweaks1.cmd вот.
@echo off
REGEDIT.EXE /S "%windir%\tweaks1.reg"
regsvr32 /s /n /i:U shell32.dll
del "%windir%\tweaks1.reg"
del "%windir%\tweaks1.cmd"
exit
Может этот скрипт "понтовый"?! Он есть, а не запускается ниоткуда?! Неподключен?!
Кстати, я добавил ту строку где должен создавать значок Свернуть все окна
regsvr32 /s /n /i:U shell32.dll

Petya V4sechkin
20-04-2008, 18:10
Drongo, или из файла $OEM$\cmdlines.txt?

Drongo
20-04-2008, 18:35
Petya V4sechkin, Petya V4sechkin, или из файла $OEM$\cmdlines.txt? »Его там и просто вообще нет. В папке $OEM$\$$\, есть только tweaks1.reg и tweaks1.cmd кроме RunOnceEx.js и папки с темами оформления. Скорее всего это, я так думаю, недоработка автора "этой" сборки. И похоже он просто присутствует, и не запускается ниоткуда, и никогда. Разве что расшифровав его, можно было бы понять, что именно он делает, но я не силён в этом.
Наверное он по идее должен запускать установку тех программ или тех драйверов, которые автор хотел устанавливать на своём компьютере, и потому выложив для общего пользования, преднамеренно отключил эту возможность запускать этот скрипт. Так мне кажется.




© OSzone.net 2001-2012