Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование "удобняшек" на VBScript

Модерирует : ShIvADeSt

ShIvADeSt (12-07-2011 15:12): http://forum.ru-board.com/topic.cgi?forum=33&topic=11963#1  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112

   

nicka



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vlth

Цитата:
Посмотрите предыдущую страницу

нет, к сожалению это не то...
 
задача менять выделенные жирным шрифтом строки на собственные посредством месиджбокса
 
например есть autorun.ini файл такого содержания
 

Цитата:
[justRun setup]
version=2
title=Disc Title  
toffset=6
dimentions=1084, 570
images=Autorun.pcd
iindex=6
ioffset=10, 35
font=Arial, 12, $00EEEEEE, 1000
inactivecolor=$00666666
 
button=Film Title 1  
rect=6, 538, 371, 24
action=execute("films\Film Title 1 .avi"), minimize
iindex=7
font=Tahoma, 10, clBlack, 1000
 
image=11
pos=6, 34
 
button=Film Title  2
rect=384, 538, 350, 24
action=execute("films\Film Title  2.avi"), minimize
iindex=7
font=Tahoma, 10, clBlack, 1000
 
button=Film Title 3
rect=741, 538, 336, 24
action=execute("films\Film Title 3 .avi"), minimize
iindex=7
font=Tahoma, 10, clBlack, 1000
 
image=12
pos=384, 34
 
image=13
pos=741, 34
 
button=
rect=1049, 6, 21, 21
action=close
iindex=0

 
чтоб при запуске скрипта появился месиджбокс с названием Disc Title я запишу например Oliver Hirschbiegel,  
 
потом месиджбокс с названием Film Title 1 , запишу Das Experiment
 
затем Film Title 2 запишу Der Untergang
 
и Film Title 3 запишу The Invasion
 
и чтоб результат стал таким
 

Цитата:
[justRun setup]
version=2
title=Oliver Hirschbiegel
toffset=6
dimentions=1084, 570
images=Autorun.pcd
iindex=6
ioffset=10, 35
font=Arial, 12, $00EEEEEE, 1000
inactivecolor=$00666666
 
button=Das Experiment
rect=6, 538, 371, 24
action=execute("films\Das Experiment.avi"), minimize
iindex=7
font=Tahoma, 10, clBlack, 1000
 
image=11
pos=6, 34
 
button=Der Untergang
rect=384, 538, 350, 24
action=execute("films\Der Untergang.avi"), minimize
iindex=7
font=Tahoma, 10, clBlack, 1000
 
button=The Invasion
rect=741, 538, 336, 24
action=execute("films\The Invasion.avi"), minimize
iindex=7
font=Tahoma, 10, clBlack, 1000
 
image=12
pos=384, 34
 
image=13
pos=741, 34
 
button=
rect=1049, 6, 21, 21
action=close
iindex=0

Всего записей: 756 | Зарегистр. 01-10-2002 | Отправлено: 16:37 05-04-2010 | Исправлено: nicka, 16:38 05-04-2010
Hugo121

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
 
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.CreateTextFile("c:\autorun.ini")
 
Input1 = InputBox("Disc Title", "Disc Title", "")
Input2 = InputBox("Film Title 1", "Film Title 1", "")
Input3 = InputBox("Film Title 2", "Film Title 2", "")
Input4 = InputBox("Film Title 3", "Film Title 3", "")
 
objFile.WriteLine "[justRun setup]"
objFile.WriteLine "version=2"
objFile.WriteLine "title=" & Input1
objFile.WriteLine "toffset=6"
objFile.WriteLine "dimentions=1084, 570"
objFile.WriteLine "images=Autorun.pcd"
objFile.WriteLine "iindex=6"
objFile.WriteLine "ioffset=10, 35"
objFile.WriteLine "font=Arial, 12, $00EEEEEE, 1000"
objFile.WriteLine "inactivecolor=$00666666"
objFile.WriteLine ""  
objFile.WriteLine "button=" & Input2
objFile.WriteLine "rect=6, 538, 371, 24"
objFile.WriteLine "action=execute(""films\" & Input2 & ".avi""), minimize"
objFile.WriteLine "iindex=7"
objFile.WriteLine "font=Tahoma, 10, clBlack, 1000"
objFile.WriteLine ""
objFile.WriteLine "image=11"
objFile.WriteLine "pos=6, 34"
objFile.WriteLine ""
objFile.WriteLine "button=" & Input3
objFile.WriteLine "rect=384, 538, 350, 24"
objFile.WriteLine "action=execute(""films\" & Input3 & ".avi""), minimize"
objFile.WriteLine "iindex=7"
objFile.WriteLine "font=Tahoma, 10, clBlack, 1000"
objFile.WriteLine ""
objFile.WriteLine "button=" & Input4
objFile.WriteLine "rect=741, 538, 336, 24"
objFile.WriteLine "action=execute(""films\" & Input4 & ".avi""), minimize"
objFile.WriteLine "iindex=7"  
objFile.WriteLine "font=Tahoma, 10, clBlack, 1000"
objFile.WriteLine ""
objFile.WriteLine "image=12"
objFile.WriteLine "pos=384, 34"
objFile.WriteLine ""
objFile.WriteLine "image=13"
objFile.WriteLine "pos=741, 34"
objFile.WriteLine ""
objFile.WriteLine "button="
objFile.WriteLine "rect=1049, 6, 21, 21"
objFile.WriteLine "action=close"
objFile.Write "iindex=0"
 
objFile.Close
 
 
 

 
в конце не зря objFile.Write - так не будет перевода строки в конце.
 
P.S. тут был косяк с .avi - забыл, теперь исправлено...

Всего записей: 128 | Зарегистр. 14-08-2007 | Отправлено: 17:52 05-04-2010 | Исправлено: Hugo121, 18:01 05-04-2010
vlth

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
есть папки films и autorun. в папке films находятся фильмы...

Цитата:
задача менять выделенные жирным шрифтом строки на собственные посредством месиджбокса

nicka, может быть, лучше последовательно выбирать эти фильмы с помощью диалогового окна "Открыть файл" (в данном случае будет не "открыть", а "выбрать")?

Всего записей: 258 | Зарегистр. 22-01-2008 | Отправлено: 18:18 05-04-2010
nicka



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vlth
 
Супер!
 
всё работает!

Цитата:
может быть, лучше последовательно выбирать эти фильмы с помощью диалогового окна "Открыть файл" (в данном случае будет не "открыть", а "выбрать")?  

 
было бы здорово!
 
и будет это работать на других Autorun.ini файлах? например где эти значения будут разными?

Цитата:
toffset=6  
dimentions=1084, 570  
images=Autorun.pcd  
iindex=6  
ioffset=10, 35  
font=Arial, 12, $00EEEEEE, 1000  
inactivecolor=$00666666
...
button=Film Title 1  
rect=6, 538, 371, 24  
action=execute("films\Film Title 1 .avi"), minimize  
iindex=7  
font=Tahoma, 10, clBlack, 1000
 
 
и если фильмов будет не 3 а 4? 5?
 
...и чтоб при запуске скрипта был возможен выбор этого *.ini файла...
 
Огромное Вам Спасибо!

Всего записей: 756 | Зарегистр. 01-10-2002 | Отправлено: 19:16 05-04-2010 | Исправлено: nicka, 19:21 05-04-2010
Hugo121

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Чтоб при запуске выбрать ини-файл - добавьте к тому, что я писал выше, в начале до строки
Input1 = InputBox("Disc Title", "Disc Title", "")
 

Код:
 
Set objDialog = CreateObject("UserAccounts.CommonDialog")  
objDialog.Filter = "All Files|*.*"  
objDialog.InitialDir = "C:\"  
intResult = objDialog.ShowOpen  
 If intResult = 0 Then  
    Wscript.Quit  
Else  
    toFile =  objDialog.FileName  
End If  
 
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.CreateTextFile(toFile)
 

 
По поводу "будет это работать на других Autorun.ini файлах? например где эти значения будут разными? "
И будет, и не будет... Т.к. эти значения прописаны в коде (это если речь идёт о моём коде, а другого я тут пока не видел), то скрипт сработает с этими значениями - другие просто затрутся. Вернее затрётся весь прежний файл, целиком.

Всего записей: 128 | Зарегистр. 14-08-2007 | Отправлено: 19:40 05-04-2010 | Исправлено: Hugo121, 19:48 05-04-2010
Dimau1981

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А как процесс убить, чтобы программа корректно завершалась?
После:
ProcessClose("IExplore.exe")  
Function ProcessClose(sProcName)  
    strComputer = "."  
    Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")  
    Set colProcessList = objWMIService.ExecQuery("Select * from Win32_Process Where Name = '" & sProcName & "'")  
    For Each objProcess in colProcessList  
        objProcess.Terminate()  
    Next  
End Function
программа считает, что был сбой, и предлагает выполнить определенные действия. Как можно не "убить" процесс, а послать сигнал завершения (аналогично нажатию красного крестика справа вверху)?

Всего записей: 166 | Зарегистр. 29-12-2008 | Отправлено: 19:43 05-04-2010
Hugo121

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
nicka, вот вариант с выбором ини-файла и трёх фильмов. Расчитано именно на *.avi - трёхбуквенное расширение, с *.mpeg сработает неправильно (да их и открыть не получится в этом варианте)

Код:
 
Set objDialog = CreateObject("UserAccounts.CommonDialog")  
objDialog.Filter = "ini Files|*.ini"  
objDialog.InitialDir = "C:\"  
intResult = objDialog.ShowOpen  
 If intResult = 0 Then  
    Wscript.Quit  
Else  
    toFile =  objDialog.FileName  
End If  
 
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.CreateTextFile(toFile)
 
Input1 = InputBox("Disc Title", "Disc Title", "")
 
objDialog.Filter = "AVI Files|*.avi"  
 
intResult = objDialog.ShowOpen  
 If intResult = 0 Then  
    Wscript.Quit  
Else  
    toFile =  objDialog.FileName  
End If  
arr = split(toFile, "\")
 
Input2 = Left(arr(ubound(arr)), Len(arr(ubound(arr))) - 4)
 
intResult = objDialog.ShowOpen  
 If intResult = 0 Then  
    Wscript.Quit  
Else  
    toFile =  objDialog.FileName  
End If  
arr = split(toFile, "\")
 
Input3 = Left(arr(ubound(arr)), Len(arr(ubound(arr))) - 4)
 
intResult = objDialog.ShowOpen  
 If intResult = 0 Then  
    Wscript.Quit  
Else  
    toFile =  objDialog.FileName  
End If  
arr = split(toFile, "\")
 
Input4 = Left(arr(ubound(arr)), Len(arr(ubound(arr))) - 4)
 
objFile.WriteLine "[justRun setup]"
objFile.WriteLine "version=2"
objFile.WriteLine "title=" & Input1
objFile.WriteLine "toffset=6"
objFile.WriteLine "dimentions=1084, 570"
objFile.WriteLine "images=Autorun.pcd"
objFile.WriteLine "iindex=6"
objFile.WriteLine "ioffset=10, 35"
objFile.WriteLine "font=Arial, 12, $00EEEEEE, 1000"
objFile.WriteLine "inactivecolor=$00666666"
objFile.WriteLine ""  
objFile.WriteLine "button=" & Input2
objFile.WriteLine "rect=6, 538, 371, 24"
objFile.WriteLine "action=execute(""films\" & Input2 & ".avi""), minimize"
objFile.WriteLine "iindex=7"
objFile.WriteLine "font=Tahoma, 10, clBlack, 1000"
objFile.WriteLine ""
objFile.WriteLine "image=11"
objFile.WriteLine "pos=6, 34"
objFile.WriteLine ""
objFile.WriteLine "button=" & Input3
objFile.WriteLine "rect=384, 538, 350, 24"
objFile.WriteLine "action=execute(""films\" & Input3 & ".avi""), minimize"
objFile.WriteLine "iindex=7"
objFile.WriteLine "font=Tahoma, 10, clBlack, 1000"
objFile.WriteLine ""
objFile.WriteLine "button=" & Input4
objFile.WriteLine "rect=741, 538, 336, 24"
objFile.WriteLine "action=execute(""films\" & Input4 & ".avi""), minimize"
objFile.WriteLine "iindex=7"  
objFile.WriteLine "font=Tahoma, 10, clBlack, 1000"
objFile.WriteLine ""
objFile.WriteLine "image=12"
objFile.WriteLine "pos=384, 34"
objFile.WriteLine ""
objFile.WriteLine "image=13"
objFile.WriteLine "pos=741, 34"
objFile.WriteLine ""
objFile.WriteLine "button="
objFile.WriteLine "rect=1049, 6, 21, 21"
objFile.WriteLine "action=close"
objFile.Write "iindex=0"
 
objFile.Close
 
 

Всего записей: 128 | Зарегистр. 14-08-2007 | Отправлено: 20:30 05-04-2010
nicka



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Hugo121

Цитата:
вот вариант с выбором ини-файла и трёх фильмов

да, работает этот подкоректированный вариант

Цитата:
Set objDialog = CreateObject("UserAccounts.CommonDialog")  
objDialog.Filter = "ini Files|*.ini"  
objDialog.InitialDir = "C:\"  
intResult = objDialog.ShowOpen  
 If intResult = 0 Then  
    Wscript.Quit  
Else  
    toFile =  objDialog.FileName  
End If  
 
Set objFSO = CreateObject("Scripting.FileSystemObject")  
Set objFile = objFSO.CreateTextFile(toFile)  
 
Input1 = InputBox("Disc Title", "Disc Title", "")  
 
objDialog.Filter = "AVI Files|*.avi"  
 
intResult = objDialog.ShowOpen  
 If intResult = 0 Then  
    Wscript.Quit  
Else  
    toFile =  objDialog.FileName  
End If  
arr = split(toFile, "\")  
 
Input2 = Left(arr(ubound(arr)), Len(arr(ubound(arr))) - 4)  
 
intResult = objDialog.ShowOpen  
 If intResult = 0 Then  
    Wscript.Quit  
Else  
    toFile =  objDialog.FileName  
End If  
arr = split(toFile, "\")  
 
Input3 = Left(arr(ubound(arr)), Len(arr(ubound(arr))) - 4)  
 
intResult = objDialog.ShowOpen  
 If intResult = 0 Then  
    Wscript.Quit  
Else  
    toFile =  objDialog.FileName  
End If  
arr = split(toFile, "\")  
 
Input4 = Left(arr(ubound(arr)), Len(arr(ubound(arr))) - 4)  
 
objFile.WriteLine "[justRun setup]"  
objFile.WriteLine "version=2"  
objFile.WriteLine "title=" & Input1  
objFile.WriteLine "toffset=6"  
objFile.WriteLine "dimentions=1055, 537"  
objFile.WriteLine "images=Autorun.pcd"  
objFile.WriteLine "iindex=6"  
objFile.WriteLine "ioffset=10, 35"  
objFile.WriteLine "font=Arial, 12, $00EEEEEE, 1000"  
objFile.WriteLine "inactivecolor=$00666666"  
objFile.WriteLine ""  
objFile.WriteLine "button=" & Input2  
objFile.WriteLine "rect=6, 510, 343, 24"  
objFile.WriteLine "action=execute(""films\" & Input2 & ".avi""), minimize"  
objFile.WriteLine "iindex=7"  
objFile.WriteLine "font=Tahoma, 10, clBlack, 1000"  
objFile.WriteLine ""  
objFile.WriteLine "image=11"  
objFile.WriteLine "pos=6, 34"  
objFile.WriteLine ""  
objFile.WriteLine "button=" & Input3  
objFile.WriteLine "rect=356, 510, 343, 24"  
objFile.WriteLine "action=execute(""films\" & Input3 & ".avi""), minimize"  
objFile.WriteLine "iindex=7"  
objFile.WriteLine "font=Tahoma, 10, clBlack, 1000"  
objFile.WriteLine ""  
objFile.WriteLine "button=" & Input4  
objFile.WriteLine "rect=706, 510, 343, 24"  
objFile.WriteLine "action=execute(""films\" & Input4 & ".avi""), minimize"  
objFile.WriteLine "iindex=7"  
objFile.WriteLine "font=Tahoma, 10, clBlack, 1000"  
objFile.WriteLine ""  
objFile.WriteLine "image=12"  
objFile.WriteLine "pos=356, 34"  
objFile.WriteLine ""  
objFile.WriteLine "image=13"  
objFile.WriteLine "pos=706, 34"  
objFile.WriteLine ""  
objFile.WriteLine "button="  
objFile.WriteLine "rect=1021, 6, 21, 21"  
objFile.WriteLine "action=close"  
objFile.Write "iindex=0"  
 
objFile.Close

 
...но почему то режет названия фильмов
например вместо The Children of Times Square пишет The Children of Times Sq
вместо The Bedroom Window пишет The Bedroom Wi
вместо Bad Influence пишет Bad Influ
 
а нельзя ли "закомментировать" те строки которые меняются чтоб игнорировать их значения?

Всего записей: 756 | Зарегистр. 01-10-2002 | Отправлено: 20:48 05-04-2010 | Исправлено: nicka, 21:32 05-04-2010
Dimau1981

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Hugo121, подскажите мне плиз
А как процесс убить, чтобы программа корректно завершалась?  
После:  
ProcessClose("IExplore.exe")  
Function ProcessClose(sProcName)  
    strComputer = "."  
    Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")  
    Set colProcessList = objWMIService.ExecQuery("Select * from Win32_Process Where Name = '" & sProcName & "'")  
    For Each objProcess in colProcessList  
        objProcess.Terminate()  
    Next  
End Function  
программа считает, что был сбой, и предлагает выполнить определенные действия. Как можно не "убить" процесс, а послать сигнал завершения (аналогично нажатию красного крестика справа вверху)?
 
Можно ли создать сообщение, типа WScript.Echo, хорошо бы и без надписи "ОК", но которое само закроется по истечению определенного времени?
 
И еще, подскажите плиз, как записать WshShell.Run("iexplore.exe"), но с полным путем к ИЕ? Вариант WshShell.Run(""C:\Program Files\Internet Explorer\iexplore.exe"") не работает.

Всего записей: 166 | Зарегистр. 29-12-2008 | Отправлено: 20:58 05-04-2010
Hugo121

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Dimau1981, я не знаю, Ваш код у меня отработал без сбоя. На остальные вопросы я не отвечу, пусть кто поопытнее ответит.
 
nicka - т.е. Вы хотите в существующем файле просто подменить надписи на кнопках и ссылки на фильм, не меняя существующее оформление и расположение кнопок?
Вероятно можно привязаться к строкам
button=названиефильма
если их длина больше 7, то в это место и через строку ставим фильм. Но это исходя из примера, если вдруг на кнопке закрытия тоже будет надпись - то этот алгоритм даст сбой.
Так сделать можно, но возни много...

Всего записей: 128 | Зарегистр. 14-08-2007 | Отправлено: 21:29 05-04-2010
nicka



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Hugo121

Цитата:
Вы хотите в существующем файле просто подменить надписи на кнопках и ссылки на фильм, не меняя существующее оформление и расположение кнопок?  

да да хотелось бы именно так...
но почему режет названия?
смотрите мои предидущий отредактированный пост

Всего записей: 756 | Зарегистр. 01-10-2002 | Отправлено: 21:37 05-04-2010
Dimau1981

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Dimau1981, я не знаю, Ваш код у меня отработал без сбоя. На остальные вопросы я не отвечу, пусть кто поопытнее ответит.

Да, он отрабатывает, но при последующем запуску ИЕ - он говорит, что произошел сбой, и предлагает поискать ошибку или открыть домашнюю страницу...

Всего записей: 166 | Зарегистр. 29-12-2008 | Отправлено: 21:48 05-04-2010
Hugo121

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Dimau1981 - у меня потом нормально открылся...
 
nicka - у Вас вероятно в настройках системы выставлено "скрывать расширения у известных типов файлов", поэтому он режет 4 знака от названия, а не от название.avi.
Тогда уберите "-4".
Да и вообще  

Код:
arr = split(toFile, "\")
Input2 = Left(arr(ubound(arr)), Len(arr(ubound(arr))) - 4)

лучше заменить на
 

Код:
fnm = objFSO.GetFileName(toFile)
Input2 = Left(fnm, Len(fnm) - 4)

а в Вашем случае даже сразу на

Код:
Input2 = objFSO.GetFileName(toFile)

 Ну и далее с остальными 3 и 4 аналогично.

Всего записей: 128 | Зарегистр. 14-08-2007 | Отправлено: 22:06 05-04-2010
Dimau1981

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Hugo121 - может Windows 7 (в смысле ИЕ 8) причина такого поведения ИЕ...

Всего записей: 166 | Зарегистр. 29-12-2008 | Отправлено: 22:27 05-04-2010
nicka



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Hugo121
сработал этот гибридный вариант

Цитата:
Set objDialog = CreateObject("UserAccounts.CommonDialog")  
objDialog.Filter = "ini Files|*.ini"  
objDialog.InitialDir = "C:\"  
intResult = objDialog.ShowOpen  
 If intResult = 0 Then  
    Wscript.Quit  
Else  
    toFile =  objDialog.FileName  
End If  
 
Set objFSO = CreateObject("Scripting.FileSystemObject")  
Set objFile = objFSO.CreateTextFile(toFile)  
 
Input1 = InputBox("Disc Title", "DiscTitle", "")  
Input2 = InputBox("Film Title 1", "FilmTitle1", "")  
Input3 = InputBox("Film Title 2", "FilmTitle2", "")  
Input4 = InputBox("Film Title 3", "FilmTitle3", "")  
 
 
objFile.WriteLine "[justRun setup]"  
objFile.WriteLine "version=2"  
objFile.WriteLine "title=" & Input1  
objFile.WriteLine "toffset=6"  
objFile.WriteLine "dimentions=1055, 537"  
objFile.WriteLine "images=Autorun.pcd"  
objFile.WriteLine "iindex=6"  
objFile.WriteLine "ioffset=10, 35"  
objFile.WriteLine "font=Arial, 12, $00EEEEEE, 1000"  
objFile.WriteLine "inactivecolor=$00666666"  
objFile.WriteLine ""  
objFile.WriteLine "button=" & Input2  
objFile.WriteLine "rect=6, 510, 343, 24"  
objFile.WriteLine "action=execute(""films\" & Input2 & ".avi""), minimize"  
objFile.WriteLine "iindex=7"  
objFile.WriteLine "font=Tahoma, 10, clBlack, 1000"  
objFile.WriteLine ""  
objFile.WriteLine "image=11"  
objFile.WriteLine "pos=6, 34"  
objFile.WriteLine ""  
objFile.WriteLine "button=" & Input3  
objFile.WriteLine "rect=356, 510, 343, 24"  
objFile.WriteLine "action=execute(""films\" & Input3 & ".avi""), minimize"  
objFile.WriteLine "iindex=7"  
objFile.WriteLine "font=Tahoma, 10, clBlack, 1000"  
objFile.WriteLine ""  
objFile.WriteLine "button=" & Input4  
objFile.WriteLine "rect=706, 510, 343, 24"  
objFile.WriteLine "action=execute(""films\" & Input4 & ".avi""), minimize"  
objFile.WriteLine "iindex=7"  
objFile.WriteLine "font=Tahoma, 10, clBlack, 1000"  
objFile.WriteLine ""  
objFile.WriteLine "image=12"  
objFile.WriteLine "pos=356, 34"  
objFile.WriteLine ""  
objFile.WriteLine "image=13"  
objFile.WriteLine "pos=706, 34"  
objFile.WriteLine ""  
objFile.WriteLine "button="  
objFile.WriteLine "rect=1021, 6, 21, 21"  
objFile.WriteLine "action=close"  
objFile.Write "iindex=0"  
 
objFile.Close

 
так удобнее
 
и решилься сделать четирех и пяти фильмовый вариант отдельно
 
ещё раз
 
Огромное Вам Спасибо!

Всего записей: 756 | Зарегистр. 01-10-2002 | Отправлено: 22:33 05-04-2010
Hugo121

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
nicka, погоди, зря я что-ли пыхтел
Уже есть вариант, как оговаривали - просто заменяет существующие фильмы на выбранные.
В инпуте только имя диска спрашивает. Тестируй:
 

Код:
Set objDialog = CreateObject("UserAccounts.CommonDialog")  
objDialog.Filter = "ini Files|*.ini"  
objDialog.InitialDir = "C:\"  
intResult = objDialog.ShowOpen  
 If intResult = 0 Then  
    Wscript.Quit  
Else  
    toFile =  objDialog.FileName  
End If  
 
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set f = objFSO.OpenTextFile(toFile, 1)  
strText = f.ReadAll
inpArr = Split(strText, vbnewline)
 
 
Set objFile = objFSO.CreateTextFile(toFile)
 
Input1 = InputBox("Disc Title", "Disc Title", "")
 
 
for i = lbound(inpArr) to ubound(inpArr)
if left(inpArr(i),6) = "title=" then
objFile.WriteLine "title=" & Input1
elseif left(inpArr(i),7) = "button=" and len(inpArr(i))>7 then
 
    objDialog.Filter = "AVI Files|*.avi"  
 
    intResult = objDialog.ShowOpen  
    If intResult = 0 Then  
        Wscript.Quit  
    Else  
        toFile =  objDialog.FileName  
    End If  
    
    Input2 = objFSO.GetFileName(toFile) ' или этот вариант
    'fnm = objFSO.GetFileName(toFile) 'или эти две строки
    'Input2 = Left(fnm, Len(fnm) - 4)
objFile.WriteLine "button=" & Input2
elseif left(inpArr(i),15) = "action=execute(" then
objFile.WriteLine "action=execute(""films\" & Input2 & ".avi""), minimize"
else
objFile.WriteLine inpArr(i)
end if
 
next
 
objFile.Close
 

 
Небольшой минус - в конце добавляется перевод строки. Но это надеюсь некритично.
 
P.S.
минус ликвидирован - с 23 строки, сразу после for i = lbound(inpArr) to ubound(inpArr)  добавить код

Код:
    if i = ubound(inpArr) then
    objFile.Write inpArr(i)
    exit for
    end if
 

Всего записей: 128 | Зарегистр. 14-08-2007 | Отправлено: 22:38 05-04-2010 | Исправлено: Hugo121, 22:53 05-04-2010
nicka



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Hugo121

Цитата:
погоди, зря я что-ли пыхтел
 


Цитата:
Тестируй:

прекрасно работает!
...только добавляет расширение avi в конце... как бы это убрать...

Всего записей: 756 | Зарегистр. 01-10-2002 | Отправлено: 22:58 05-04-2010
Hugo121

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
nicka, что-то я не понял - то добавляет - плохо, то отрезает -плохо, совсем запутал.
Смотри - в Input2 помещается название фильма. Тут оно должно быть уже без ".avi". Затем оно пишется в  
objFile.WriteLine "button=" & Input2  
и в
objFile.WriteLine "action=execute(""films\" & Input2 & ".avi""), minimize"  
без изменений.
Подрихтуй, чтобы в  Input2 было так - отрезай 4 знака с конца или не отрезай - варианты в коде уже есть, комменты переставить только надо.

Всего записей: 128 | Зарегистр. 14-08-2007 | Отправлено: 23:09 05-04-2010 | Исправлено: Hugo121, 23:09 05-04-2010
nicka



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Hugo121
никак не смог добится результата...
не можете ли выложить варианты отдельно?

Всего записей: 756 | Зарегистр. 01-10-2002 | Отправлено: 23:28 05-04-2010
Dimau1981

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Обошелся WshShell.Run("taskkill /IM iexplore.exe"), но выскакивает консольное окошко, неэстетично как-то..
 
Остается вопрос
 
Можно ли создать сообщение, типа WScript.Echo, хорошо бы и без надписи "ОК", но которое само закроется по истечению определенного времени?  
 
И еще, подскажите плиз, как записать WshShell.Run("iexplore.exe"), но с полным путем к ИЕ? Вариант WshShell.Run(""C:\Program Files\Internet Explorer\iexplore.exe"") не работает.

Всего записей: 166 | Зарегистр. 29-12-2008 | Отправлено: 23:36 05-04-2010
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование "удобняшек" на VBScript
ShIvADeSt (12-07-2011 15:12): http://forum.ru-board.com/topic.cgi?forum=33&topic=11963#1


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru