Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Программирование "удобняшек" на VBScript

Автор: Dimau1981
Дата сообщения: 05.04.2010 21:27
Hugo121 - может Windows 7 (в смысле ИЕ 8) причина такого поведения ИЕ...
Автор: nicka
Дата сообщения: 05.04.2010 21:33
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


так удобнее

и решилься сделать четирех и пяти фильмовый вариант отдельно

ещё раз

Огромное Вам Спасибо!
Автор: Hugo121
Дата сообщения: 05.04.2010 21:38
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
Автор: nicka
Дата сообщения: 05.04.2010 21:58
Hugo121

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



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

прекрасно работает!
...только добавляет расширение avi в конце... как бы это убрать...
Автор: Hugo121
Дата сообщения: 05.04.2010 22:09
nicka, что-то я не понял - то добавляет - плохо, то отрезает -плохо, совсем запутал.
Смотри - в Input2 помещается название фильма. Тут оно должно быть уже без ".avi". Затем оно пишется в
objFile.WriteLine "button=" & Input2
и в
objFile.WriteLine "action=execute(""films\" & Input2 & ".avi""), minimize"
без изменений.
Подрихтуй, чтобы в Input2 было так - отрезай 4 знака с конца или не отрезай - варианты в коде уже есть, комменты переставить только надо.
Автор: nicka
Дата сообщения: 05.04.2010 22:28
Hugo121
никак не смог добится результата...
не можете ли выложить варианты отдельно?
Автор: Dimau1981
Дата сообщения: 05.04.2010 22:36
Обошелся WshShell.Run("taskkill /IM iexplore.exe"), но выскакивает консольное окошко, неэстетично как-то..

Остается вопрос

Можно ли создать сообщение, типа WScript.Echo, хорошо бы и без надписи "ОК", но которое само закроется по истечению определенного времени?

И еще, подскажите плиз, как записать WshShell.Run("iexplore.exe"), но с полным путем к ИЕ? Вариант WshShell.Run(""C:\Program Files\Internet Explorer\iexplore.exe"") не работает.
Автор: Hugo121
Дата сообщения: 05.04.2010 22:39
nicka, два варианта, чтоб тут не мусорить:
http://hugo.nxt.ru/inimaker.v04'.vbs
http://hugo.nxt.ru/inimaker.v04.vbs

Добавлено:
Dimau1981


CreateObject("WScript.Shell").Popup "Это окно закроется через 5 секунд",5,"oops", 64
Автор: nicka
Дата сообщения: 05.04.2010 22:48
Hugo121
выложите где нибудь ещё, невозможно загрузить...
Автор: Hugo121
Дата сообщения: 05.04.2010 22:59
Странно, запрещённая закачка?
А так?
http://hugo.nxt.ru/inimaker.v04.zip
Тоже не хочет.

Добавлено:
Вспомнил, на народе есть местечко, проверил - качает:
http://ibay.narod.ru/other/inimaker.v04.zip
Автор: nicka
Дата сообщения: 05.04.2010 23:20

Hugo121

фантастика!

работает и на 3 и на 4 фильма!

огромное спасибо за труд и за выделенное время.

сработал inimaker.v04 (без апострофа).
Автор: Dimau1981
Дата сообщения: 05.04.2010 23:25
Hugo121, спасибо огромное!
Автор: Aterm
Дата сообщения: 06.04.2010 15:12
Доброго времени суток,

возникла необходимость искать файлы по параметрам (тип, размер, дата последнего доступа и т.д) с последующим сохранением результатов в текстовом файле (имя, полный путь, размер, тип и т.д.). Как можно реализовать на VBS?
Автор: Hugo121
Дата сообщения: 06.04.2010 15:24
Вот такой код для привязки, добавьте фильтр и вывод в текст:

Код: ' 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
Автор: Aterm
Дата сообщения: 06.04.2010 15:54
Да и еще забыл сказать: поиск нужно осуществлять с рекурсией.
Автор: snailp4el
Дата сообщения: 07.04.2010 11:46
помогите написать скрипт который убивает процессы которые которые грузят проц. ну например больше чем на 13 процентов.
извините если тема уже обсуждалась не нашол
заранее спосибо
Автор: CruelCrow
Дата сообщения: 07.04.2010 12:56
Нужно сделать задержку перед выполнением основной части 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.
Автор: Hugo121
Дата сообщения: 07.04.2010 16:05
А так:

Код: msgbox 1
CreateObject("WScript.Shell").Popup "Это окно закроется через 5 секунд",5,"oops", 64
msgbox 2
Автор: CruelCrow
Дата сообщения: 07.04.2010 16:23
Hugo121
И окно так и будет висеть?.. Мне нужна относительно большая задержка.

Вобщем, решил проблему обходным путём: добавил единичный Scheduled Task со сторокой, которую хочу выполнить.
Автор: Hugo121
Дата сообщения: 07.04.2010 21:48
Но ведь это работает:

Код: msgbox 1
WScript.Sleep 10000
msgbox 2
Автор: CruelCrow
Дата сообщения: 08.04.2010 01:51
Hugo121
Я же написал: это ГЛЮЧИТ при исполнении из-под .msi установщика.

Скажу даже больше: я написал-таки exeшник с задержкой и занёс его в скрипт установки. Вроде всё хорошо, но установщик впадал в полный ступор на время исполнения команды Sleep. Можно, конечно, было организовать перезапуск этого exeшника с заданными параметрами, потом - завершение оригинала. Но это геморрой и жуткий костыль. Scheduled Task - это тоже, конечно, костыль но ничего лучше я не придумал.
Автор: snailp4el
Дата сообщения: 08.04.2010 13:22
а что с загрузкой процессора не кто не в состоянии помочь????
Автор: JekG
Дата сообщения: 09.04.2010 14:15
Нужен скриптик для проверки активности определенной службы Windows. При неактивности скрипт должен эту службу запустить. Скрипт планируется использовать через планировщик Windows. Никто не натыкался на готовый?
Автор: Hugo121
Дата сообщения: 09.04.2010 15:11
Гланьте тут (выше уже было, только про файлы)
Автор: Alefandr
Дата сообщения: 13.04.2010 15:28
Народ хэлп!нужен скрипт который постоянно сканит папку и при появлении в ней определённого файла сразу бы выдавал сообщение с содержанием того файла!Очень надо !спасибо!

Добавлено:
Либо хотябы скрипт чтобы просто мог прочитать текстовый файл и выдавал сообщение с содержимым файла!!!
Автор: GRom V
Дата сообщения: 16.04.2010 06:41
Подскажите ктонить...ПлИЗ!!!
Естьтакой скриптик:

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???
Автор: mityamitya
Дата сообщения: 18.04.2010 10:09
Доброго времени суток.
Такая вот проблема. Я с помощью программы Internet Content Logger сохранил в текстовый лог файл все, что мой интернет браузер пропускал через себя. А теперь полученный результат надо обработать. Тобишь мне надо поочередно найти все участоки текста, которые начинаются со слова <form action= и заканчивается словом </form> и все их скопировать в другой текстовый файл. Можно было бы в ручную, но это надо сделать 2000 раз !!!
У меня самого никаких идей как это реализовать. В скриптах ничего не шарю.
Автор: Hugo121
Дата сообщения: 18.04.2010 11:02
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
Автор: Rush
Дата сообщения: 18.04.2010 11:10
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
Автор: mityamitya
Дата сообщения: 18.04.2010 15:01
Скрипт от Hugo121 не работает. Он ошыбок не выдал, но и ничего не нашел, хотя искомое там было.

Спасибо большое за ответ Rush !!!!!!
Мне удалось запустить оба ваших скрипта. Странно, но рузультат от использования обеих скриптов был одинаковый. Тоесть они скопировали текст между ключевыми словами. А сами ключевые слова не скопировал ни первый, ни второй скрипт. А мне необходимо получить не только содержимое между ними, но и скопировать сами ключевые слова, с которых начинается поиск.
В полученом результате было много мусора

Наверное я уточню запрос. Как и раньше нужные участки текста начинаются с <form action= и заканчиваются на </form>. Но в этих участках должно встречатся словосочетание name="beon[question]" . Если его нет в этом отрезке текста, то и копировать его не надо.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475

Предыдущая тема: Работа в Delphi c CryptoApi


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.