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

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

   

efrik

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо, но это не совсем то...
 
Во-первых, это окошко появляется в месте указателя мышки, так что если запускаем скрипт по Enter, а мышка где-то у края, то окошка не видно
Во-вторых, если щёлкнуть по окошку, то оно закроется, а это не есть хорошо....

Всего записей: 8 | Зарегистр. 23-08-2005 | Отправлено: 16:55 14-11-2007
mozers



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
efrik
Еще вариант:
Код:
Set msg = Alert ("Скрипт работает. Ждите....")
' Выполняются некоторые действия в скрипте
WScript.Sleep 3000
' Выполняются некоторые действия в скрипте
 
'все сделали - Окно убирается
msg.Quit
Set msg = Nothing
WScript.Quit
 
Function Alert (message)
    Set objIE = WScript.CreateObject("InternetExplorer.Application")
    objIE.Left =300
    objIE.Top = 500
    objIE.Height = 80
    objIE.Width = 280
    objIE.MenuBar = 0
    objIE.ToolBar = 0
    objIE.StatusBar = 0
    objIE.Resizable = 0
    objIE.Navigate "about:blank"
    While objIE.Busy
        Wscript.Sleep 200
    Wend
    objIE.Visible = 1
 
    html = ""
    html = html & "<head><title>  Alert  </title></head>"
    html = html & "<body style=""font:12pt 'Verdana'; color:red; background-color:buttonface; overflow:auto;"">"
    html = html & " <p>" & message
    html = html & "</body>"
 
    objIE.Document.Write "<html>" & html & "</html>"
    Set Alert = objIE
End Function
 

Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 10:21 15-11-2007
ViSiToR



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

Цитата:
Еще вариант:

Тут тоже можно закрыть окошко
 
efrik
А что если в цикле постоянно показывать тот самый popup?
 
Вот так к примеру:
 

Код:
Set Hh = CreateObject("Internet.HHCtrl")
Text = "Скрипт работает. Ждите...."
 
iTemer = Timer
TimeOut = 10
 
Do While 1
    'Показываем Popup окошко
    Hh.TextPopup Text, "Verdana,20", 1, 1, 1, 1
 
    ' Выполняем некоторые действия в скрипте
    Wscript.Sleep(1500)
 
    'Если закончили (в данном примере по истечению 10-ти секунд), то закрываем popup и выходим с цикла
    If Timer - iTemer >= TimeOut Then
        Set Hh = Nothing
        Exit Do
    End If
Loop

 
Правда окошко следует за мышкой

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

Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 11:45 15-11-2007 | Исправлено: ViSiToR, 11:47 15-11-2007
mozers



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопрос оказался интересным
А вот, еще вариант:
alert.hta
Код:
<html><head>
<hta:application id=hta_id
applicationName=Alert
showInTaskBar=no
caption=no
innerBorder=no
selection=no
scroll=no
contextmenu=no />
<script language=javascript>
var winWidth=280;
var winHeight=60;
var winPosX=screen.width/2-winWidth/2;
var winPosY=screen.height/2-winHeight/2;
window.resizeTo(winWidth, winHeight);
window.moveTo(winPosX, winPosY);
</script>
</head>
<body bgcolor=buttonface style="font:12pt 'Verdana'; color:red">
 <p>Скрипт работает. Ждите....
</body>
<script language=javascript>
var WshShell = new ActiveXObject("WScript.Shell");
WshShell.Run("C:\\TEMP\\test.vbs", 0, true);
self.close();
</script>
</html>
Данный код внедрен в форум с помощью скрипта vladvro
Красным цветом выделен путь к скрипту.
Он будет запускаться из этого HTA приложения и пока он работает, окно приложения с текстом "Скрипт работает. Ждите...." будет на экране.

Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 13:22 15-11-2007
efrik

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mozers
 
Тяжёлые скрипты у тебя получаются. В первом случае идёт обращение к ресурсам IE, что само по себе тянет время. На небыстрых компах это чувствительно. К тому же, раз уж запускается IE, то выскакивает окошко авторизации на прокси.
 
Неужели в системе нет никакого ActiveX работы с модальными окнами сообщений?. Или просто рисования серого прямоугольника с текстом?

Всего записей: 8 | Зарегистр. 23-08-2005 | Отправлено: 15:23 15-11-2007
mozers



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

Цитата:
Неужели в системе нет никакого ActiveX работы с модальными окнами сообщений?.  
Увы, мелкософтовцы как то вообще не подумали о формах    
Вот и приходится измудрятся или ставить какой нить ActiveX стороннего производителя...

Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 18:14 15-11-2007
Sun Ray

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как передать значение из f.ReadAll  в  l_sSource?

Код:
 
        Dim l_lReturn as Long  
Dim l_sSource as String 'исходный текст  
Dim l_sDestination as String 'возвращаемый текст  
l_lReturn = oemtochar(l_sSource, l_sDestination)  
 


Код:
 
        Const ForReading = 1, ForWriting = 2
   Dim fso, f  
   Set fso = CreateObject("Scripting.FileSystemObject")  
   Set f = fso.OpenTextFile("c:\testfile.txt", ForReading)  
   ReadAllTextFile =   f.ReadAll  
   f.close
 

Можно ли читать и писать один файл, как?

Всего записей: 461 | Зарегистр. 17-03-2006 | Отправлено: 03:54 16-11-2007
mozers



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sun Ray
Цитата:
Как передать значение из f.ReadAll  в  l_sSource?
А че так не передается что ли???
Код:
l_sSource = f.ReadAll


Цитата:
Можно ли читать и писать один файл, как?
Одновременно - нет, а последовательно - запросто:
Код:
Set File = FSO.OpenTextFile(filename, ForReading)
text = File.ReadAll
File.Close
 
Set File = FSO.OpenTextFile(filename, ForWriting)
File.Write text
File.Close
 
Чет я вообще не понял этих вопросов... Это ж - азбука...

Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 22:20 16-11-2007
Sun Ray

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

Цитата:
А че так не передается что ли???

Да, затупил, но вот так что-то не хотит

Код:
 
Dim l_lReturn as Long
Dim l_sSource as String
Dim l_sDestination as String
 Const ForReading = 1, ForWriting = 2
   Dim fso, f
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.OpenTextFile("c:\testfile.txt", ForReading)
   l_sSource =   f.ReadAll
f.close
   l_lReturn = oemtochar(l_sSource, l_sDestination)
   Set f = fso.OpenTextFile("c:\testfile.txt", ForWriting, True)
   l_sDestination = f.Write  
f.Close

 
Еще вопросец, как на терминальном сервере можно прочитать IP-адрес подключенного клиента и в зависимости от подсети, к примеру 192.168.10.20 свистнуть переменную окружения NUM=16, а 192.168.35.24 NUM=82, ...etc..
p.s. Посдесть класса С, т.ч. следить нужно на значением 3 октета и в заданных значениях выдввать нужную переменную окружения.

Всего записей: 461 | Зарегистр. 17-03-2006 | Отправлено: 07:30 17-11-2007
mozers



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

Цитата:
но вот так что-то не хотит  
Я бы дико удивился если бы это заработало - слишком много ошибок.
Для начала я бы советовал что нибудь почитать. Например - это. Вообще тут много статеек на эту тему.

Цитата:
как на терминальном сервере можно прочитать IP-адрес подключенного клиента  
Не знаю. С этим вопросом лучше - сюда.

Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 12:54 17-11-2007
abz



Хулиган
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите создать VBScript для того, чтобы в тотале повесить его на кнопку и чтобы, при его срабатывании, создавался пустой файл с сегодняшней датой в текущем каталоге, формата: !16-11-2007.txt и этот файл открывался в блокноте без вопросов. Если такой файл существует, то открывался он.  

Всего записей: 14974 | Зарегистр. 04-11-2002 | Отправлено: 14:18 17-11-2007
naPmu3aH



Из лесу вышел
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
abz
Totala не имею как и желания его ставить, а вот задача проверки/создания файла и открытия его в нотепаде решается примерно так (правда обычный CMD, а не VBScript):

Код:
 
IF NOT EXIST "!%date:~-10,2%-%date:~-7,2%-%date:~-4,4%.txt" (
  echo. >> "!%date:~-10,2%-%date:~-7,2%-%date:~-4,4%.txt"
)
  notepad.exe "!%date:~-10,2%-%date:~-7,2%-%date:~-4,4%.txt"
 

Думаю на кнопку повесить это в тотале сможешь сам...

----------
"Русские Доски" - сила! "Русские Доски" - класс! Кто не знает досок - тот сами догадайтесь кто

Всего записей: 4641 | Зарегистр. 30-10-2001 | Отправлено: 15:03 17-11-2007
abz



Хулиган
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
naPmu3aH
 
Открывается не только блокнот, но и висит консоль с командой. Это не подходит, так как хочется vbs, чтобы даже не мелькала консоль (а не то, чтобы висела!) при нажатии.    
 
Добавлено:
Висение консоли победил командой start перед notepad, но всё же хочется vbs

Всего записей: 14974 | Зарегистр. 04-11-2002 | Отправлено: 15:46 17-11-2007
AndVGri

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

Код:
 
Option Explicit
Const inFolder = "c:\temp\"
Dim fso, File, pShell, pStream
 
Set fso = CreateObject("Scripting.FileSystemObject")
File = Now
File = "!" & Day(File) & "-" & Month(File) & "-" & Year(File) & ".txt"
File = inFolder & File
If Not fso.FileExists(File) Then
    Set pStream = fso.CreateTextFile(File)
    pStream.Close
End If
 
Set pShell = WScript.CreateObject("WScript.Shell")
pShell.Exec "notepad.exe " & File
 

Всего записей: 750 | Зарегистр. 14-12-2005 | Отправлено: 18:11 17-11-2007
abz



Хулиган
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AndVGri
 
Мне надо в текущем каталоге создавать файл, а не c:\temp

Всего записей: 14974 | Зарегистр. 04-11-2002 | Отправлено: 18:29 17-11-2007
AndVGri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
abz
Ну так и передавай текущий каталог из Total commander в скрипт как параметр, а забираешь через WScript.Arguments(0)

Всего записей: 750 | Зарегистр. 14-12-2005 | Отправлено: 18:39 17-11-2007
mozers



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
abz AndVGri
Проще удалить из скрипта всякое упоминание о inFolder, тогда файл будет создаваться там, откуда запущен (а не там где лежит, как многие думают) скрипт. (Т.е. для Тотала если не запишешь ничего в параметр "Путь запуска:" то файл создастся там, где тебе нужно)

Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 18:56 17-11-2007
abz



Хулиган
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mozers
 
Победил. Спасибо.

Всего записей: 14974 | Зарегистр. 04-11-2002 | Отправлено: 18:59 17-11-2007 | Исправлено: abz, 19:00 17-11-2007
Minko Lazer

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет!
И все-таки, у кого-нибудь получилось на VBS запустить существующее и настроенное VPN соединение, а потом после того как будут выполнены нужные операции (как операции сделать знаю) его (соединение) закрыть.
Спасибо!

Всего записей: 13 | Зарегистр. 21-01-2007 | Отправлено: 17:18 18-11-2007
Nervniy2000



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

Всего записей: 30 | Зарегистр. 21-02-2006 | Отправлено: 18:06 19-11-2007
   

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