Hugo121 - может Windows 7 (в смысле ИЕ 8) причина такого поведения ИЕ...
» Программирование "удобняшек" на VBScript
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
так удобнее
и решилься сделать четирех и пяти фильмовый вариант отдельно
ещё раз
Огромное Вам Спасибо!
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
Уже есть вариант, как оговаривали - просто заменяет существующие фильмы на выбранные.
В инпуте только имя диска спрашивает. Тестируй:
Код: 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
Hugo121
Цитата:
Цитата:
прекрасно работает!
...только добавляет расширение avi в конце... как бы это убрать...
Цитата:
погоди, зря я что-ли пыхтел
Цитата:
Тестируй:
прекрасно работает!
...только добавляет расширение avi в конце... как бы это убрать...
nicka, что-то я не понял - то добавляет - плохо, то отрезает -плохо, совсем запутал.
Смотри - в Input2 помещается название фильма. Тут оно должно быть уже без ".avi". Затем оно пишется в
objFile.WriteLine "button=" & Input2
и в
objFile.WriteLine "action=execute(""films\" & Input2 & ".avi""), minimize"
без изменений.
Подрихтуй, чтобы в Input2 было так - отрезай 4 знака с конца или не отрезай - варианты в коде уже есть, комменты переставить только надо.
Смотри - в Input2 помещается название фильма. Тут оно должно быть уже без ".avi". Затем оно пишется в
objFile.WriteLine "button=" & Input2
и в
objFile.WriteLine "action=execute(""films\" & Input2 & ".avi""), minimize"
без изменений.
Подрихтуй, чтобы в Input2 было так - отрезай 4 знака с конца или не отрезай - варианты в коде уже есть, комменты переставить только надо.
Hugo121
никак не смог добится результата...
не можете ли выложить варианты отдельно?
никак не смог добится результата...
не можете ли выложить варианты отдельно?
Обошелся WshShell.Run("taskkill /IM iexplore.exe"), но выскакивает консольное окошко, неэстетично как-то..
Остается вопрос
Можно ли создать сообщение, типа WScript.Echo, хорошо бы и без надписи "ОК", но которое само закроется по истечению определенного времени?
И еще, подскажите плиз, как записать WshShell.Run("iexplore.exe"), но с полным путем к ИЕ? Вариант WshShell.Run(""C:\Program Files\Internet Explorer\iexplore.exe"") не работает.
Остается вопрос
Можно ли создать сообщение, типа WScript.Echo, хорошо бы и без надписи "ОК", но которое само закроется по истечению определенного времени?
И еще, подскажите плиз, как записать WshShell.Run("iexplore.exe"), но с полным путем к ИЕ? Вариант WshShell.Run(""C:\Program Files\Internet Explorer\iexplore.exe"") не работает.
nicka, два варианта, чтоб тут не мусорить:
http://hugo.nxt.ru/inimaker.v04'.vbs
http://hugo.nxt.ru/inimaker.v04.vbs
Добавлено:
Dimau1981
CreateObject("WScript.Shell").Popup "Это окно закроется через 5 секунд",5,"oops", 64
http://hugo.nxt.ru/inimaker.v04'.vbs
http://hugo.nxt.ru/inimaker.v04.vbs
Добавлено:
Dimau1981
CreateObject("WScript.Shell").Popup "Это окно закроется через 5 секунд",5,"oops", 64
Hugo121
выложите где нибудь ещё, невозможно загрузить...
выложите где нибудь ещё, невозможно загрузить...
Странно, запрещённая закачка?
А так?
http://hugo.nxt.ru/inimaker.v04.zip
Тоже не хочет.
Добавлено:
Вспомнил, на народе есть местечко, проверил - качает:
http://ibay.narod.ru/other/inimaker.v04.zip
А так?
http://hugo.nxt.ru/inimaker.v04.zip
Тоже не хочет.
Добавлено:
Вспомнил, на народе есть местечко, проверил - качает:
http://ibay.narod.ru/other/inimaker.v04.zip
Hugo121
фантастика!
работает и на 3 и на 4 фильма!
огромное спасибо за труд и за выделенное время.
сработал inimaker.v04 (без апострофа).
Hugo121, спасибо огромное!
Доброго времени суток,
возникла необходимость искать файлы по параметрам (тип, размер, дата последнего доступа и т.д) с последующим сохранением результатов в текстовом файле (имя, полный путь, размер, тип и т.д.). Как можно реализовать на VBS?
возникла необходимость искать файлы по параметрам (тип, размер, дата последнего доступа и т.д) с последующим сохранением результатов в текстовом файле (имя, полный путь, размер, тип и т.д.). Как можно реализовать на VBS?
Вот такой код для привязки, добавьте фильтр и вывод в текст:
Код: ' List Detailed Summary Information for a File
Set objShell = CreateObject ("Shell.Application")
Set objFolder = objShell.Namespace ("C:\Scripts")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Dim arrHeaders(13)
For i = 0 to 13
arrHeaders(i) = objFolder.GetDetailsOf (objFolder.Items, i)
Next
For Each strFileName in objFolder.Items
For i = 0 to 13
If i <> 9 then
Wscript.echo arrHeaders(i) _
& ": " & objFolder.GetDetailsOf (strFileName, i)
End If
Next
Next
Код: ' List Detailed Summary Information for a File
Set objShell = CreateObject ("Shell.Application")
Set objFolder = objShell.Namespace ("C:\Scripts")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Dim arrHeaders(13)
For i = 0 to 13
arrHeaders(i) = objFolder.GetDetailsOf (objFolder.Items, i)
Next
For Each strFileName in objFolder.Items
For i = 0 to 13
If i <> 9 then
Wscript.echo arrHeaders(i) _
& ": " & objFolder.GetDetailsOf (strFileName, i)
End If
Next
Next
Да и еще забыл сказать: поиск нужно осуществлять с рекурсией.
помогите написать скрипт который убивает процессы которые которые грузят проц. ну например больше чем на 13 процентов.
извините если тема уже обсуждалась не нашол
заранее спосибо
извините если тема уже обсуждалась не нашол
заранее спосибо
Нужно сделать задержку перед выполнением основной части vbs для Visual Studio 2010 Setup Project.
Пытался писать "WScript.Sleep(10000)", "Sleep(10000)", "WScript.Sleep 10000", "Sleep 10000" - результат плачевен: когда .msi установщик пытается выполнить этот скрипт, он говорит, что не может его выполнить ("There is a problem with this Windows Installer package. A script required for this install to complete could not be run.") и делает Rollback (отменяет установку).
Есть какие-нибудь идеи по этому поводу? Ну, кроме написания exeшника вместо vbs.
Пытался писать "WScript.Sleep(10000)", "Sleep(10000)", "WScript.Sleep 10000", "Sleep 10000" - результат плачевен: когда .msi установщик пытается выполнить этот скрипт, он говорит, что не может его выполнить ("There is a problem with this Windows Installer package. A script required for this install to complete could not be run.") и делает Rollback (отменяет установку).
Есть какие-нибудь идеи по этому поводу? Ну, кроме написания exeшника вместо vbs.
А так:
Код: msgbox 1
CreateObject("WScript.Shell").Popup "Это окно закроется через 5 секунд",5,"oops", 64
msgbox 2
Код: msgbox 1
CreateObject("WScript.Shell").Popup "Это окно закроется через 5 секунд",5,"oops", 64
msgbox 2
Hugo121
И окно так и будет висеть?.. Мне нужна относительно большая задержка.
Вобщем, решил проблему обходным путём: добавил единичный Scheduled Task со сторокой, которую хочу выполнить.
И окно так и будет висеть?.. Мне нужна относительно большая задержка.
Вобщем, решил проблему обходным путём: добавил единичный Scheduled Task со сторокой, которую хочу выполнить.
Но ведь это работает:
Код: msgbox 1
WScript.Sleep 10000
msgbox 2
Код: msgbox 1
WScript.Sleep 10000
msgbox 2
Hugo121
Я же написал: это ГЛЮЧИТ при исполнении из-под .msi установщика.
Скажу даже больше: я написал-таки exeшник с задержкой и занёс его в скрипт установки. Вроде всё хорошо, но установщик впадал в полный ступор на время исполнения команды Sleep. Можно, конечно, было организовать перезапуск этого exeшника с заданными параметрами, потом - завершение оригинала. Но это геморрой и жуткий костыль. Scheduled Task - это тоже, конечно, костыль но ничего лучше я не придумал.
Я же написал: это ГЛЮЧИТ при исполнении из-под .msi установщика.
Скажу даже больше: я написал-таки exeшник с задержкой и занёс его в скрипт установки. Вроде всё хорошо, но установщик впадал в полный ступор на время исполнения команды Sleep. Можно, конечно, было организовать перезапуск этого exeшника с заданными параметрами, потом - завершение оригинала. Но это геморрой и жуткий костыль. Scheduled Task - это тоже, конечно, костыль но ничего лучше я не придумал.
а что с загрузкой процессора не кто не в состоянии помочь????
Нужен скриптик для проверки активности определенной службы Windows. При неактивности скрипт должен эту службу запустить. Скрипт планируется использовать через планировщик Windows. Никто не натыкался на готовый?
Народ хэлп!нужен скрипт который постоянно сканит папку и при появлении в ней определённого файла сразу бы выдавал сообщение с содержанием того файла!Очень надо !спасибо!
Добавлено:
Либо хотябы скрипт чтобы просто мог прочитать текстовый файл и выдавал сообщение с содержимым файла!!!
Добавлено:
Либо хотябы скрипт чтобы просто мог прочитать текстовый файл и выдавал сообщение с содержимым файла!!!
Подскажите ктонить...ПлИЗ!!!
Естьтакой скриптик:
Set oHTTP = WScript.CreateObject("winhttp.winhttprequest.5.1")
iPeriod = 5
sSource = "http://sait.ru"
iTimer = Timer
While 1
WScript.Sleep 1000
If (Timer - iTimer) >= (iPeriod * 60) Then
oHTTP.open "GET", sSource, False
on error resume next
oHTTP.send
iTimer = Timer
End If
WEnd
Можно ли както сделать чтоб на http://sait.ru отправлялось какое нить слово? например test???
Естьтакой скриптик:
Set oHTTP = WScript.CreateObject("winhttp.winhttprequest.5.1")
iPeriod = 5
sSource = "http://sait.ru"
iTimer = Timer
While 1
WScript.Sleep 1000
If (Timer - iTimer) >= (iPeriod * 60) Then
oHTTP.open "GET", sSource, False
on error resume next
oHTTP.send
iTimer = Timer
End If
WEnd
Можно ли както сделать чтоб на http://sait.ru отправлялось какое нить слово? например test???
Доброго времени суток.
Такая вот проблема. Я с помощью программы Internet Content Logger сохранил в текстовый лог файл все, что мой интернет браузер пропускал через себя. А теперь полученный результат надо обработать. Тобишь мне надо поочередно найти все участоки текста, которые начинаются со слова <form action= и заканчивается словом </form> и все их скопировать в другой текстовый файл. Можно было бы в ручную, но это надо сделать 2000 раз !!!
У меня самого никаких идей как это реализовать. В скриптах ничего не шарю.
Такая вот проблема. Я с помощью программы Internet Content Logger сохранил в текстовый лог файл все, что мой интернет браузер пропускал через себя. А теперь полученный результат надо обработать. Тобишь мне надо поочередно найти все участоки текста, которые начинаются со слова <form action= и заканчивается словом </form> и все их скопировать в другой текстовый файл. Можно было бы в ручную, но это надо сделать 2000 раз !!!
У меня самого никаких идей как это реализовать. В скриптах ничего не шарю.
mityamitya
Вот такой скрипт выберет такие строки целиком. Причём это вариант дополнит уже существующий файл.
Если надо выбирать из середины строки, дополните обработку функцией Mid(), место этих слов уже найдено InStr() - мне лениво символы считать, тем более, что это вряд ли нужно...
Код: ' FSO Constants
t = timer
Const ForReading = 1
Const ForAppending = 8
Const TristateUseDefault= -2
' Variables
Dim objFSO, objTS, objOTS, objfile, templine
' Instantiate the object
Set objFSO = CreateObject("Scripting.FileSystemObject")
' open the text file read only
Set objTS = objFSO.OpenTextFile("C:\Temp\in.txt", ForReading, False, TristateUseDefault)
' We now open the file to write it out
If objFSO.FileExists("c:\Temp\out@.txt") Then
Set objOTS = objFSO.OpenTextFile("C:\Temp\out@.txt", ForAppending) 'открываем итоговый файл для добавления записей
Else
Set objfile = objFSO.CreateTextFile("C:\Temp\out@.txt")
Set objfile = Nothing
Set objOTS = objFSO.OpenTextFile("C:\Temp\out@.txt", ForAppending)
End if
Do While objTS.AtEndOfStream <> True
templine = objTS.ReadLine()
if InStr(templine,"<form action=") > 0 and InStr(templine,"</form>") > 0 then
objOTS.Writeline templine
end if
Loop
' Close all files after we read it in.
objTS.Close
Set objTS = Nothing
objOTS.Close
Set objOTS = Nothing
Set objFSO = Nothing
t=timer-t
msgbox "OK! Run in " & t
Вот такой скрипт выберет такие строки целиком. Причём это вариант дополнит уже существующий файл.
Если надо выбирать из середины строки, дополните обработку функцией Mid(), место этих слов уже найдено InStr() - мне лениво символы считать, тем более, что это вряд ли нужно...
Код: ' FSO Constants
t = timer
Const ForReading = 1
Const ForAppending = 8
Const TristateUseDefault= -2
' Variables
Dim objFSO, objTS, objOTS, objfile, templine
' Instantiate the object
Set objFSO = CreateObject("Scripting.FileSystemObject")
' open the text file read only
Set objTS = objFSO.OpenTextFile("C:\Temp\in.txt", ForReading, False, TristateUseDefault)
' We now open the file to write it out
If objFSO.FileExists("c:\Temp\out@.txt") Then
Set objOTS = objFSO.OpenTextFile("C:\Temp\out@.txt", ForAppending) 'открываем итоговый файл для добавления записей
Else
Set objfile = objFSO.CreateTextFile("C:\Temp\out@.txt")
Set objfile = Nothing
Set objOTS = objFSO.OpenTextFile("C:\Temp\out@.txt", ForAppending)
End if
Do While objTS.AtEndOfStream <> True
templine = objTS.ReadLine()
if InStr(templine,"<form action=") > 0 and InStr(templine,"</form>") > 0 then
objOTS.Writeline templine
end if
Loop
' Close all files after we read it in.
objTS.Close
Set objTS = Nothing
objOTS.Close
Set objOTS = Nothing
Set objFSO = Nothing
t=timer-t
msgbox "OK! Run in " & t
mityamitya
Код: option explicit
dim logfile, outfile, fso, txtfile, txt
logfile = "c:\mylog.log"
outfile = "c:\mylog_out.log"
set fso = createobject("scripting.filesystemobject")
set txtfile = fso.opentextfile(logfile)
txt = txtfile.readall
txtfile.close
set txtfile = fso.opentextfile(outfile, 2, true)
txtfile.write formextract(txt)
txtfile.close
function formextract(text)
dim txtext, pos, pos2
do while instr(text, "<form action=") > 0
pos = instr(text, "<form action=")
pos2 = instr(text, "</form>")
txtext = txtext & mid(text, pos, pos2 - pos + 7) & vbcrlf
text = mid(text, pos2 + 7)
loop
formextract = left(txtext, len(txtext) - 2)
end function
Код: option explicit
dim logfile, outfile, fso, txtfile, txt
logfile = "c:\mylog.log"
outfile = "c:\mylog_out.log"
set fso = createobject("scripting.filesystemobject")
set txtfile = fso.opentextfile(logfile)
txt = txtfile.readall
txtfile.close
set txtfile = fso.opentextfile(outfile, 2, true)
txtfile.write formextract(txt)
txtfile.close
function formextract(text)
dim txtext, pos, pos2
do while instr(text, "<form action=") > 0
pos = instr(text, "<form action=")
pos2 = instr(text, "</form>")
txtext = txtext & mid(text, pos, pos2 - pos + 7) & vbcrlf
text = mid(text, pos2 + 7)
loop
formextract = left(txtext, len(txtext) - 2)
end function
Скрипт от Hugo121 не работает. Он ошыбок не выдал, но и ничего не нашел, хотя искомое там было.
Спасибо большое за ответ Rush !!!!!!
Мне удалось запустить оба ваших скрипта. Странно, но рузультат от использования обеих скриптов был одинаковый. Тоесть они скопировали текст между ключевыми словами. А сами ключевые слова не скопировал ни первый, ни второй скрипт. А мне необходимо получить не только содержимое между ними, но и скопировать сами ключевые слова, с которых начинается поиск.
В полученом результате было много мусора
Наверное я уточню запрос. Как и раньше нужные участки текста начинаются с <form action= и заканчиваются на </form>. Но в этих участках должно встречатся словосочетание name="beon[question]" . Если его нет в этом отрезке текста, то и копировать его не надо.
Спасибо большое за ответ Rush !!!!!!
Мне удалось запустить оба ваших скрипта. Странно, но рузультат от использования обеих скриптов был одинаковый. Тоесть они скопировали текст между ключевыми словами. А сами ключевые слова не скопировал ни первый, ни второй скрипт. А мне необходимо получить не только содержимое между ними, но и скопировать сами ключевые слова, с которых начинается поиск.
В полученом результате было много мусора
Наверное я уточню запрос. Как и раньше нужные участки текста начинаются с <form action= и заканчиваются на </form>. Но в этих участках должно встречатся словосочетание name="beon[question]" . Если его нет в этом отрезке текста, то и копировать его не надо.
Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
Предыдущая тема: Работа в Delphi c CryptoApi
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.