Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Запуск программ с flash-драйва (http://forum.oszone.net/showthread.php?t=150731)

SharkyEXE 16-09-2009 21:32 1220563

Запуск программ с flash-драйва
 
Здравствуйте. Прошу прощения, в принципе, есть следующая статья, для меня полезная Запуск программ с flash-драйва, там есть два куска кода, один рабочий, другой, сколько я его не пытался изменять-все равно не работает. Нужна, собственно правка неправильного кода чтобы в итоге он стал рабочим. Спасибо.
Цитата:

Тут все очень просто, наверное, даже комментарии излишни. Замечу лишь, что букву диска флешки придется посмотреть заранее, так как здесь не делается никаких проверок на доступность съемного диска.
Теперь мы знаем серийный номер диска. В моем случае это “-1109467269”. Именно так, со знаком минус. Теперь создадим файл flash_run.js, или с другим именем, и вставим следующий код:

Код:

fso = WScript.Createobject(”Scripting.FileSystemObject”); // Обявление объекта для работы с файловой системой
A = new Array(”C”,”D”,”F”,”E”,”J”,”I”,”K”,”L”,”G”,”M”); // Создание массива с именами восзможных дисков
f=A.length; // вычислим длину массива
ok=0; // вспомогательная переменная
for (var icount = 0; icount
if (fso.DriveExists(A[icount])){ // проверяем существует ли такой диск
d = fso.GetDrive(A[icount]); // если такой диск существует, создаем объект для работы с ним
if (d.IsReady){ // проверим готовность диска
if (d.SerialNumber==-1109467269) // сравниваем серийный номер
{ //если номер совпадает, то:
var WSHShell = WScript.CreateObject(”WScript.Shell”); создаем объект, необходимый для запуска внешнего требуемого приложения
path=A[icount]+”:\\WebServers\\etc\\run” // зададим путь к нашему приложению. В перемнной массива A[icount] содержится буква нашей флешки, а остальное - путь к требуемой программе, где нужно указать свой путь.
WSHShell.Run(path,5); // запуск приложения по пути, прописанном в переменной path
ok=1; // меняем значение вспомогательной переменной
break; // останавливаем работу цикла
}
}
}
} // конец цикла for
if (ok==0) WScript.Echo(”Флешка не найдена”); // если диска, с указанным серийным номером, не будет найдено, значение переменной k останется нулевым. Выводим сообщение.


Вот этот код нерабочий. Собственно думал просто его скопировать в AkelPad, сохранить в кодировке 1251 с именем flash_run.js, ну может где немногжко подправить (пути к приложению, букву флешки) и можно запускать. Но он, код, как я его не пытался немного, подчеркну, немного, подкорректировать (кавычки поменял на правильные) и запустить-файл, в общем, отказался работать. Возможно повторюсь, прошу, пожалуйста, кто знает и может, подправить вышеприведенный кусок кода, чтобы он стал рабочим. Еще раз спасибо. Для удобства прикрепил мною правленный код (только изменены кавычки).

amel27 18-09-2009 11:09 1221688

Цитата:

Цитата SharkyEXE
в общем, отказался работать »

в чем это выражается?

SharkyEXE 19-09-2009 19:19 1222694

Цитата:

Цитата amel27
Цитата SharkyEXE:
в общем, отказался работать »
в чем это выражается? »

А вы попробуйте запустить прикрепленный мой в аттаче файл, и сразу увидите ошибку, типа в троке той-то, в позиции такой то. Вот что-то в этом коде неправильно, раз ошибка появляеться. Вот то мне и нужна помощь, чтобы получился исправленный рабочий код. Спасибо.

amel27 20-09-2009 06:24 1222991

Цитата:

Цитата SharkyEXE
Но он, код, как я его не пытался немного, подчеркну, немного, подкорректировать (кавычки поменял на правильные) и запустить-файл, в общем, отказался работать. »

в статье есть ссылка на источник, откуда взят скрипт - там и надо было искать
Код:

fso = WScript.Createobject("Scripting.FileSystemObject");
A = new Array("C","D","F","E","J","I","K","L","G","M");
f=A.length;
ok=0;

for (var icount = 0; icount < f; icount++) {
  if (fso.DriveExists(A[icount])) {
    d = fso.GetDrive(A[icount]);
    if (d.IsReady) {
      if (d.SerialNumber==283626578) {
        var WSHShell = WScript.CreateObject("WScript.Shell");
        path=A[icount]+":\\WebServers\\etc\\run";
        WSHShell.Run(path,5);
        ok=1;
        break;
      }
    }
  }
}

if (ok==0) WScript.Echo("Флешка не найдена");


SharkyEXE 20-09-2009 13:15 1223167

amel27, проверил Ваш код-все работает. Спасибо.


Время: 07:24.

Время: 07:24.
© OSzone.net 2001-