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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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

   

ViSiToR



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
LEX1
Да, это для оперы, с одной стороны просто интересно, а с другой, это решение одной задачки
 

Цитата:
2) Малореально.

Вполне реально ...
 
Troitsky
Большое спасибо, вот что я там нашёл:
 

Код:
Set objHTM = CreateObject("htmlfile")
strTXT = objHTM.ParentWindow.ClipboardData.GetData("text")
 
If strTXT <> "" Then MsgBox strTXT


----------
ViSiToR a.k.a CreatoR
CreatoR это не ник, CreatoR это стиль жизни!

Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 23:04 15-11-2006
LEX1

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Troitsky
1) Можно поподробней? Это окошко (OperaWindowClass), не реагирует на  WM_GETTEXT.
Кстати, а из VBScript можно вызвать WinApi?
 
ViSiToR
2) Использование для этого IE немножко не политкорректно Да и скорость должна быть не очень.

Цитата:
Просто он сначала ответил на вопрос 2), а потом на 1

Поправил  

Всего записей: 3793 | Зарегистр. 24-10-2005 | Отправлено: 23:26 15-11-2006 | Исправлено: LEX1, 01:06 16-11-2006
ViSiToR



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
LEX1
Про пункт 2), я спрашивал:
 

Цитата:
Как получить текст из буфера обмена?

 
А Troitsky ответил на этот вопрос так:
 

Цитата:
Вопросы по клипборду уже задавались

 
Но про функции WinApi это касалось первого вопроса:
 

Цитата:
Как получить выделенный текст из активного окна, например из такого:

 
Просто он сначала ответил на вопрос 2), а потом на 1)


----------
ViSiToR a.k.a CreatoR
CreatoR это не ник, CreatoR это стиль жизни!

Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 23:56 15-11-2006
Funt123



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
товарисчи, а как запустить два проводника, что они открылисль как по команде "Окна слева направо"?

Всего записей: 161 | Зарегистр. 09-11-2005 | Отправлено: 22:04 27-11-2006
jONES1979



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Funt123
 
можно почти похоже:
 
возьми ЗА ОСНОВУ это
 
Подробнее... [?]
 
 тебе понадобтся два объекта типа objExplorer , и координаты+размеры по другому посчитать

Всего записей: 324 | Зарегистр. 20-05-2005 | Отправлено: 18:44 02-12-2006
WRFan



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
в связи с тем, что rapidshare.com стали использовать анимированные гиф картинки, решил накатать vbscript, позволяющий работать с анимированными гифами вне зависимости от настроек браузера, т.к. в IE я  gif анимацию отключил, чтобы на нервы не действовала. только я кончил писать скрипт, как ровно через 5 минут рапидшарцы снова заменили анимированные картинки на обычные. глупо. но не в этом дело. скрипт получился довольно интересный и может ещё понадобится. надыбал на сайте микрозофта бесплатную, а по возможностям бесценную activex библиотеку под названием Windows Image Acquisition Library v2.0. позволяет работать с имеджами. думал буду заменять линки на ани-гифы в рапидшарском сорс коде на мой vbscript на лету с помощью проксомитрона. но теперь неважно. а скрипт получился следующего содержания:
 

Код:
 
<SCRIPT LANGUAGE="VBSCRIPT">
'Set Http = CreateObject("MSXMLHTTP2.ServerXMLHTTPHTTP")
'Set Http = CreateObject("WinHttp.WinHttpRequest.5.1")
Set XMLHTTP = CreateObject("Microsoft.XMLHTTP")
Set AdoStream = CreateObject("ADODB.Stream")
url = "http://127.0.0.1:85/asp/access4417101.gif" 'only for testing purposes
p=instrrev(url,"/")  
filename = right(url,len(url)-p)
 XMLHTTP.open "GET", url, False
XMLHTTP.Send
Set ADOStream = CreateObject("ADODB.Stream")  
ADOStream.type = 1  
ADOStream.Open  
ADOStream.Write XMLHTTP.responseBody  
Set filesys1 = CreateObject("Scripting.FileSystemObject")
Set folder = filesys1.GetSpecialFolder(2)
ADOStream.SaveToFile folder & "\" & filename, 2  
ADOStream.Close  
 
'---------------------------------------------
 
Dim Img 'As ImageFile
Dim IP 'As ImageProcess
Dim v 'As Vector
 
Set Img = CreateObject("WIA.ImageFile")
Set IP = CreateObject("WIA.ImageProcess")
Set v = CreateObject("WIA.Vector")
 
Img.LoadFile folder & "\" & filename
 
'If Img.IsAnimated Then
'msgbox "This is an animated image."
'Else
'msgbox "This is not an animated image."
'end if
 
'Img.ActiveFrame = Img.FrameCount
'Img.ActiveFrame = 12
for each oProperty in Img.Properties
if IsObject(oProperty.Value) Then  
set oVector = oProperty.Value
for i = 1 to oVector.Count 'number of frames
if oVector(i) >= 15000 AND oVector(i) < 25000 then Img.ActiveFrame = i
 
'Select Case oVector(i)    
'Case  19928:  
'Img.ActiveFrame = i
'msgbox Img.ActiveFrame
'End Select
next
end if
next
 
'---------------------------------------------
 
IP.Filters.Add IP.FilterInfos("Scale").FilterID
IP.Filters(1).Properties("MaximumWidth") = 350
IP.Filters(1).Properties("MaximumHeight") = 250
Set Img = IP.Apply(Img)
Img.SaveFile folder & "\hacked_" & filename
 
'---------------------------------------------
 
document.write("<IMG SRC=" & folder & "\hacked_" & filename & ">")
set filesys2 = CreateObject ("Scripting.FileSystemObject")
set demofile = filesys2.GetFile(folder & "\hacked_" & filename)
set demofile2 = filesys2.GetFile(folder & "\" & filename)
demofile.Delete
demofile2.Delete
 
</SCRIPT>
 

 
занятно. т.к. WIA не в состоянии скачивать файлы из интернета, а файлы в кэше спрятаны в \local settings\Temporary Internet Files\Content.IE5, решил скачивать картинки из нета с помощью Microsoft.XMLHTTP activex объекта.
 
как только файл оказывается на харде, скриптик тут же набрасывается на него и начинает его терзать с помощью WIA activex-а, а именно проверяет frame delay, т.е. количество секунд между отдельными фреймами в картинке. у этих рапидшарских дураков это примерно так выглядело:
 

Код:
 
FrameDelay 800, 10, 17, 16, 11, 17, 18, 19, 12, 12, 11, 19928, 5587, 419, 547, 2271, 7520, 28633, 28113, 3403, 1652  

 
как видите, сначала приходилось ждать 800 секунд, пока первый фрейм переключался на 2-ой! потом картинка доходила до 12-ого фрейма и на нём застревала на 20.000 секунд. ужасно глупое решение, но таким образом можно легко засечь, какой из фреймов содержит нужную картинку (с правильными цифрами).
 
после этого правильный фрейм вырезается из картинки, увеличивается, чтобы лучше было видно и сохраняется в отдельный имедж файл, состоящий из одного фрейма. а потом через document.write вставляется в документ, открытый в браузере.
 
после этого оба файла убираются с харда (из %temp% папки).
 
советую взглянуть на WIA, возможности очень обширные. другие за такое дерут по 100 баксов, а дядя Билл бесплатно раздаёт. документация в chm формате прилагается, есть и на msdn.microsoft.com, но локальная быстрее открывается конечно.

Всего записей: 5275 | Зарегистр. 25-11-2002 | Отправлено: 02:33 14-12-2006
jONES1979



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
WRFan
 
Очень познавательно.  
А для чего это было?

Всего записей: 324 | Зарегистр. 20-05-2005 | Отправлено: 08:14 14-12-2006
mozers



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
WRFan
Круто  И чего только нельзя сделать на WSH при наличии головы на плечах!
Так уж брякну по-мелочи (из вредности
- загружать файло можно и без "ADODB.Stream" (пример)
- ссылка на вышеупомянутую библиотеку - Windows Image Acquisition Library v2.0

Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 11:31 14-12-2006
jONES1979



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Funt123
 
Кстати, обнаружил сегодня способ лучше.
Цитата:
товарисчи, а как запустить два проводника, что они открылисль как по команде "Окна слева направо"?

 
Тебе должно понравиться
 
http://groups.msn.com/windowsscript/shellapplication.msnw

Всего записей: 324 | Зарегистр. 20-05-2005 | Отправлено: 14:28 14-12-2006
WRFan



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

Цитата:
А для чего это было?  

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

Цитата:
загружать файло можно и без "ADODB.Stream" (пример

спасибо за пример, интересно. меня удивляет, что у микрозофта нет activex объекта, способного скачивать и записывать скаченное на хард. постоянно приходится два объекта вызывать. от других производителей вроде тоже ничего подобного нет, есть даунлоадеры для фтп, но не для хттп

Всего записей: 5275 | Зарегистр. 25-11-2002 | Отправлено: 00:54 15-12-2006
jONES1979



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

Цитата:
ну я же говорю, для rapidshare.com . чтобы скачивать файлы с этого сайта, нужно задать номер, нарисованный на картинке, в текстовое поле. одно время они использовали анимированные гифы с несколькими картинками и только одна из них содержала правильный номер  

 
Ага... Я так и подумал,.. потом стал дальше смотреть, вдруг ты выбранный фрейм прогоняешь через какой-нить OCR и не нешёл этого... Вот и задумался.

Всего записей: 324 | Зарегистр. 20-05-2005 | Отправлено: 15:05 16-12-2006
CLOPOMOR

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как в VBS можно реализовать перехват системных событий  ( в частности открытия окна IE (начале инет сеанса в идеале)) .
Нужно чтоб после открытия эксплорера скрипт предлагал загрузить обновления на Др Веб и при соглазии благополучно все грузил .
Также  надо установить леммит времени серфинга = 1 час после истечения которого выводится сообщение -вы исчерпали леммит бла бла бла... закрывается обозреватель ( в идеале рубится инет соединение -если это не фантастика)
 
Вообщем  с вторым и третьим пунктом сам разберусь, а на счет перехвата  событий нужна консультация...  

Всего записей: 7 | Зарегистр. 17-12-2006 | Отправлено: 08:53 18-12-2006
Troitsky



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

Цитата:
Как в VBS можно реализовать перехват системных событий  ( в частности открытия окна IE (начале инет сеанса в идеале)) .  
Нужно чтоб после открытия эксплорера скрипт предлагал загрузить обновления на Др Веб и при соглазии благополучно все грузил .

А не проще вместо того, чтобы "перехватывать системные события" назначить в IE домашнюю страницу, в которую твой скрипт и будет встроен?
Открываешь IE -> грузится страница -> выполняется скрипт.
Такое решение, по-моему, гораздо прозрачнее.


----------
Мы в хорошем настроении гуляем по лесам.
Кто обидеть нас захочет – сам получит по усам.
Сам полу- получит по усам. Сам полу- получит по усам!

Всего записей: 795 | Зарегистр. 13-12-2003 | Отправлено: 10:20 18-12-2006 | Исправлено: Troitsky, 10:37 18-12-2006
CLOPOMOR

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Так то оно так ,  но както  слишком прозаично да и не всегда удобно .

Всего записей: 7 | Зарегистр. 17-12-2006 | Отправлено: 11:19 18-12-2006
Troitsky



Водник Водкин
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
CLOPOMOR
Иначе тебе придется писать нечто, которое будет болтаться в оперативной пямяти и следить-следить-следить Одним скриптом тут обойтись, по-моему, невозможно. Копать нужно в сторону создания самостоятельного приложения (тем более с учетом пп. 2, 3)


----------
Мы в хорошем настроении гуляем по лесам.
Кто обидеть нас захочет – сам получит по усам.
Сам полу- получит по усам. Сам полу- получит по усам!

Всего записей: 795 | Зарегистр. 13-12-2003 | Отправлено: 11:42 18-12-2006
Sindikat

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, как можно при помощи vbs перекодировать строку из кодировки dos(866) в win(1251)?

Всего записей: 63 | Зарегистр. 26-11-2003 | Отправлено: 23:04 18-12-2006
mozers



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sindikat
Код:
function dos2win(text){
    var out = ""
    var dos="Ђ ЃЎ‚ўѓЈ„¤…Ґрс†¦‡§€Ё‰©ЉЄ‹«Њ¬Ќ-Ћ®ЏЇђа‘б’в“г”д•е–ж—з˜и™йљк›лњмќнћоџппя"
    var win="АаБбВвГгДдЕеЁёЖжЗзИиЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЩщЪъЫыЬьЭэЮюЯяя "
    for (i=0; i<text.length; i++) {
        var ch = text.charAt(i);
        var index = dos.indexOf(ch)
        if (index >= 0){
            ch = win.charAt(index);
        }
        out = out + ch;
    }
    return out;
}
Правда, это - JS, но переписать недолго...
 
Добавлено:
А вот нашел и на VBS с иным алгоритмом:
Код:
' Функция для перевода строки из DOS- в Windows-кодировку
Function DosToWin(s)
Dim i,k,ss
  ss=""
  For i=1 To Len(s)  ' Цикл по всем символам в строке
    k = Asc(Mid(s,i,1))  ' Определяем ANSI-код i-го символа
    ' Изменяем код k на код соответствующего символа в  
    ' Windows-кодировке
    If (128 <= k) And (k <= 175) Then
      k=k+64
    ElseIf (224 <= k) And (k <= 239) Then
      k=k+16
    ElseIf k = 240 Then
      k=168
    ElseIf k = 241 Then
      k=184
    End If
    ss=ss+Chr(k)  ' Возвращаем преобразованную строку
  Next
DosToWin=ss
End Function

Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 12:25 19-12-2006
CLOPOMOR

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Troitsky
 
Думаю мож процессы отслеживать - появился IE   then   и поехали,  а как счетчик  натикает так и процесс убрать и чтоб незапускался...
 
 Блин замучался я с ним  
 
Set WSHShell = WScript.CreateObject ("WScript.Shell")
 
Set FavoritesPath = WSHShell.SpecialFolders("Favorites")
 
Set MyShortcut = WSHShell.CreateShortcut (FavoritesPath +"\\ БЛАБЛАБЛА.URL")
 
MyShortcut.TargetPath = WSHShell.ExpandEnvironmentStrings("http://forum.ru-board.com")
 
msgbox "БЛАБЛАБЛА"  
 
MyShortcut.Save ()
 
Это JS изначально был а я его переклепать хочу только не выходит , что я упустил?
 
 
 
 
 

Всего записей: 7 | Зарегистр. 17-12-2006 | Отправлено: 20:36 19-12-2006
jONES1979



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
CLOPOMOR
 
то что ты просишь делается на скриптах c использовнием технологии WMI. Там есть механизм событий(events)
 
В книжке А.Попова Е.Шишкина "Администирование с помощью WMI и WMIC" подобный пример точно есть.
В инете надо искать наверное на http://www.microsoft.com/technet/scriptcenter/default.mspx

Всего записей: 324 | Зарегистр. 20-05-2005 | Отправлено: 12:55 20-12-2006
CLOPOMOR

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
jONES1979
 Благодарю за ссылку , я туда хожу иногда  только с английским проблемы (ибо все время немецкий изучал)) )  . Глянь плиз скрипт добавления в избранное, никак не пойму в чем ошибка

Всего записей: 7 | Зарегистр. 17-12-2006 | Отправлено: 16:38 20-12-2006
   

Страницы: 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-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru