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

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

   

Gavigor



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
подскажи плиз - не догоняю куда приписать эти строки о копировании найденного файла.....((((
 
Добавлено:

Цитата:
копирование вот эти строчки дают.

 
почему не копирует ?.....
 
не знаешь что в этом скрипте нужно изменить чтобы он копировал найденный файл? (туда же где и сам скрипт находится (MyPatch?)).
 
подскажи плиз............((((((((((((((

Всего записей: 118 | Зарегистр. 27-04-2008 | Отправлено: 18:55 29-08-2009
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
If fso.FileExists(FolderPath& "\" & "MyFile") Then
Set myFile = fso.GetFile(FolderPath & "\" & "MyFile")
myFile.Copy WScript.Path & "MyFile", True
MsgBox "Ура нашелся"
End If  
копируют вот эти строчки, в папку самого скрипа. у меня копирует. вернее копировало когда было c:\temp и програм файлс, но как ты можешь заметить в этих случаях путь не заканчивается \, а в случае c:\ заканчивается поэтому вот тута FolderPath & "\" & "MyFile" получаются лишние слеши. поэтому нужно в тело If Then добавить еще MsgBox FolderPath, чтобы вывелся путь откуда копироваться собралось и понять почему не копирует.

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 19:07 29-08-2009
Gavigor



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

Цитата:
If fso.FileExists(FolderPath& "\" & "MyFile") Then  
Set myFile = fso.GetFile(FolderPath & "\" & "MyFile")  
myFile.Copy WScript.Path & "MyFile", True  
MsgBox "Ура нашелся"  
End If  
копируют вот эти строчки, в папку самого скрипа. у меня копирует. вернее копировало когда было c:\temp и програм файлс, но как ты можешь заметить в этих случаях путь не заканчивается \, а в случае c:\ заканчивается поэтому вот тута FolderPath & "\" & "MyFile" получаются лишние слеши. поэтому нужно в тело If Then добавить еще MsgBox FolderPath, чтобы вывелся путь откуда копироваться собралось и понять почему не копирует.

 
туго для меня......

Всего записей: 118 | Зарегистр. 27-04-2008 | Отправлено: 19:43 29-08-2009
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
If fso.FileExists(FolderPath& "\" & "MyFile") Then  
Set myFile = fso.GetFile(FolderPath & "\" & "MyFile")  
myFile.Copy WScript.Path & "MyFile", True  
MsgBox FolderPath & "\" & "MyFile"
End If
 
вместо ура нашелся должно вывести путь, если файл не скопируется то нужно подправить программу в смысле слешей. а если сюда вообще не попадает программа хотя файл лежит в какой то из подпапок, тогда надо анализировать пути на другом участке программы

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 19:58 29-08-2009 | Исправлено: bomzzz, 20:00 29-08-2009
Gavigor



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
путь пишется правильный...
 
Добавлено:
что дальше делать?....

Всего записей: 118 | Зарегистр. 27-04-2008 | Отправлено: 20:15 29-08-2009
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ну тогда получается так работает только у меня на кмопилированных файлах. надо поискать в книге как более корректно это написать. или пописать маленькие скриптики чтоб установить как будет копироваться.
 
Добавлено:
у тебя же вроде раньше копировалось?
 
Добавлено:
кстати я касперскому настучал, про зряшное срабатывание на компилированные файлы. мне ответили через несколько часов и уже исправили ситуацию. надо по возможности и в другие антивирусы написать.

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 20:29 29-08-2009
Gavigor



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

Цитата:
у тебя же вроде раньше копировалось?  
 

 
нет.
 
к сожалению....
 

Всего записей: 118 | Зарегистр. 27-04-2008 | Отправлено: 21:25 29-08-2009
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ну жди теперь когда старожилы форума объявяться. у меня копирует. скрипты сто лет назад отключил XP-AntiSpy. включал для USD BlackManos-а, но в ИЕ6 начали всплывающие окна лезть, причем при повторном отключении это не лечилось, пришлось систему восстаналивать. так что я больше их не включаю.
вот простейший скрип копирования.

Цитата:
 
Set FSO = CreateObject("Scripting.FileSystemObject")
Set myFile = fso.GetFile("MyFile.txt")
myFile.Copy "MyFile", True
 

он копирует расположенный рядом со скрипом (в одной директории или папке) файл MyFile.txt в файл MyFile - ну то ист без расширения. переименовывает можно сказать.
   
вот только у меня екзешник

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 03:39 30-08-2009 | Исправлено: bomzzz, 06:18 30-08-2009
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
кстати вот эта строка излишек  
myFile.Copy WScript.Path & "MyFile", True
 
и вот так будет копировать в папку скрипта  
myFile.Copy "MyFile", True
 

Цитата:
 
MyFolderPath = InputBox("укажите путь для поиска", bomz, "C:\")
MyFile = InputBox("Укажите имя файла", bomz, "")
On Error Resume Next
Set FSO = CreateObject("Scripting.FileSystemObject")
Call MyProcedure(MyFolderPath)
MsgBox "Фуххх!!!!"
Sub MyProcedure(FolderPath)
If fso.FileExists(FolderPath& "\" & MyFile) Then
Set myFile = fso.GetFile(FolderPath & "\" & MyFile)
myFile.Copy "MyFile", True
MsgBox "Ура нашелся"
End If
Set MyFolder = FSO.GetFolder(FolderPath)
For Each SubFolder In MyFolder.SubFolders
Call MyProcedure(FolderPath & "\" & SubFolder.Name)
Next
End Sub
 

http://narod.ru/disk/12580941000/File-Find.exe.html
10,3 КБ (10 602 байт)    

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 06:59 30-08-2009 | Исправлено: bomzzz, 07:14 30-08-2009
Rush

Уже за тридцать...
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вот блин, развели на несколько страниц разговоров вокруг простых вещей...
 
Скрипт будет искать на всех дисках и копировать в папку со скриптом. Если будут с одинаковыми именами, то спросит.

Код:
 
on error resume next
set fso = createobject("scripting.filesystemobject")
filename = inputbox("Введите имя файла:", "Копирование файла")
for each i in fso.drives
   if i.isready then subdirs(i.rootfolder)
next
sub subdirs(dir)
   for each subdir in dir.subfolders
      if err.number <> 0 then
         err.clear
      else
         subdirs(subdir)
      end if  
      on error resume next  
   next
   enumfiles(dir)
end sub
sub enumfiles(dir)
   for each file in dir.files
      if filename = file.name then  
         if fso.fileexists(fso.getparentfoldername(wscript.scriptfullname) & "\" & filename) then
            renfile = inputbox("Файл с таким именем уже существует." & vbcrlf & _
                     "Переименовать этот файл?", "Переименование файла", filename)  
         end if
         if renfile <> "" then fname = renfile else fname = filename  
         fso.copyfile file, fso.getparentfoldername(wscript.scriptfullname) & "\" & fname
      end if
   next
end sub        
wscript.echo "конец!"

Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 08:50 30-08-2009
Astra55



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
mihmig
Есть проблема, полистал топик и нашел нечто близкое

Цитата:
Ну если Вас сильно напрягает таскать за скриптом subiacl.exe(cacls.exe или regperm)  
есть библиотека для использования в vbs-скриптах функций из dll.

Скрипт нужен для портабельных софтов, он запускается вместе с программой, делает свое дело, а при выходе из программы запускается повторно и опять таки выполняет свою задачу.  Нужно записать ключи в следующую ветку реестра:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root
причем, не просто записать, а таким образом:
При запуске программы
1.  Проверить есть ли такой ключ, если нет, то перейти к пункту 2, если есть, то ничего не делать, просто выйти из скрипта
2. Дать разрешение на запись
3. Записать ключ
4. Возвратить исходный запрет на запись
 
При выходе из программы:
1. Дать разрешение на удаление ключа
2. Удалить ключ
3. Возвратить исходный запрет на запись
 
Устроит использование указанных консолей, только желательно без появления их окон.
Задача вроде несложная, но пока что никто не смог мне подсказать конкретное решение.
 
 
 

----------
Per warez ad scientiam

Всего записей: 11717 | Зарегистр. 16-05-2003 | Отправлено: 15:41 30-08-2009 | Исправлено: Astra55, 17:56 30-08-2009
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
табе охота чтоб программу за тебю написали, а задача не интерестная - типовая.  

Цитата:
 
Set WshShell = CreateObject("WScript.Shell")
WshShell.RegWrite "HKCU\NewKey\","Value"
WshShell.RegWrite "HKEY_CURRENT_USER\NewKey\Param","Value","REG_SZ"
MsgBox WshShell.RegRead("HKEY_CURRENT_USER\NewKey\Param")
MsgBox WshShell.RegRead("HKEY_CURRENT_USER\NewKey\")
WshShell.RegDelete "HKEY_CURRENT_USER\NewKey\Param"
WshShell.RegDelete "HKEY_CURRENT_USER\NewKey\"
 

 
справочное пособие
http://narod.ru/disk/12530906000/Automation.chm.html
Руководство разработчика на WSH 2.0
Руководство разработчика на WSH 2.0
WinDjView-1.0.3-Setup
 
а если библиотеки свои хочешь замутить вот тут кладбище библиотек http://forum.script-coding.info/index.php

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 17:11 30-08-2009 | Исправлено: bomzzz, 17:12 30-08-2009
Astra55



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
bomzzz
Речь идет о
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root
так просто разрешение ни на запись, ни на удаление, не дается, только с изменением доступа вручную или же с ACL.
Чтобы было понятно, вот ссылка на ссылки:
http://www.google.ru/search?q=HKEY_LOCAL_MACHINE%5CSYSTEM%5CCurrentControlSet%5CEnum%5CRoot
То, что приведено в примере, мне не нужно, это без всяких скриптов пишется и удаляется. Была бы типовая, я бы не спрашивал. В Инете приемлемых способов не найдено, хотя я искал добросовестно.


----------
Per warez ad scientiam

Всего записей: 11717 | Зарегистр. 16-05-2003 | Отправлено: 17:48 30-08-2009
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
я бы так и подумал если бы акцентировалось на правах доступа.  
раз в ручную мона поменять права доступа значит можно и автоматически.
да уж - http://support.microsoft.com/kb/825751/ru
 
http://support.microsoft.com/kb/256614/ru
а у меня никаких запретов на этих ключах не стоит. может просто снять атрибут и назад его не ставить?

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 17:57 30-08-2009 | Исправлено: bomzzz, 18:32 30-08-2009
Ashi



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Можно ли средстваим VBS сгенерить ярлык для файла и отправить его на рабочий стол
 
Добавлено:
Снимаю вопрос нашел тут

Всего записей: 88 | Зарегистр. 17-01-2006 | Отправлено: 11:16 02-09-2009
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
сколько лет я несколько раз в день, матеря все на свете, лазил в "меню-свойства папки-вид" или запускал тотал командер , чтобы изменить расширение файла:
 

Цитата:
 
Set WshShell = CreateObject("WScript.Shell")
If WshShell.RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\HideFileExt") = "0" Then
WshShell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\HideFileExt","00000001","REG_DWORD"
Else
WshShell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\HideFileExt","00000000","REG_DWORD"
End If
 

 
   
блин как же експлорер перезапустить из скрипта, вернее "ОБНОВИТЬ", везде пишут про перезапуск, убить процесс и запустить снова. как же по английски будит обновить
 
File.Ext.Show.exe 10,2 КБ (10 454 байт)  
 
батник на эту же тему,  

Цитата:
 
SET MYNAME=%0
ECHO > %MYNAME:~0,-4%
REN *.* *.""
DEL %MYNAME:~0,-4%
 

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

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 13:20 08-09-2009 | Исправлено: bomzzz, 20:34 08-09-2009
mrLuca

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет!
Сломал голову по такой вот задачке. Корпоративный портал у нас на https сидит. И появилась потребность разнообразить мёртвую стартовую страничку чем-то жизненным. Погодный информер, валютный. Естественно фик найдёшь такие информеры со скриптами на https, отсюда сообщение о нарушении безопасности на странице. Я так понял, что это НИКАК не обойти, кроме установки "отображать разнородное содержимое" причём у меня удалось, только для зоны Интернет (!): надёжные и местная интрасеть - не канает такая же настройка. Естественно умный лют вздребезднулся "это ж не изящно всех просить понизить безопасность всего интернета!". Согласен. А как? Кто-нибудь знает, как можно нахимичить в тегах чтоб оно проходило так? На крайний случай мне уже идея пришла - каким-то образом получать скриптом данные этих информеров, скидывать их в xml локальный файл и подтаскивать на https уже своё, безопасное. Но КАК это делать, я не знаю Кто-нибудь знает решения?

Всего записей: 2 | Зарегистр. 09-09-2009 | Отправлено: 21:14 09-09-2009
Nik_UA

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте!
Есть код который множит два числа.
Он выдает результат 0,000185.
Подскажите как вывести в MsgBox число с плавающей точкой (1,85Е-4).
 
Спасибо.

Всего записей: 5 | Зарегистр. 11-09-2009 | Отправлено: 12:15 11-09-2009
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
перерыл пол интернета. как только не гуглил. в принципе полно таких вопросов про обновление эксплорера, и есть даже примеры на вбс скрипте - построенные на отправке в окно експлорера или рабочий стол F5 - реально конечно скрипты работают - но обновления експлорера не вызывают. вот нашел какой то загадочный ява скрипт - что он делал бог его знает - но тут есть сокраментальные строки oExplorer.Refresh(). ни у кого никаких мыслей не будет как обновить все окна эксплорера????

Цитата:
 
<script type="text/javascript">  
                function OnGridContextItemClicked(oGridMenu, args)  
                {  
                    var menuItemText = args.get_item().get_text();  
                    if (menuItemText == "UnZip")  
                    {// 'UnZip' command  
                        var oExplorer = $find("<%= RadFileExplorer1.ClientID %>");  
                        var oAjaxPanel = $find("<%= RadAjaxPanel1.ClientID %>");  
 
                        var selectedItem = oExplorer.get_selectedItem();  
                        if (selectedItem.get_extension()=="zip")  
                        {  
                        //var itemExt = ; // get the extension of the current item  
 
                            var itemPath = selectedItem.get_path(); // get the path of the current item  
                            oAjaxPanel.ajaxRequest(itemPath); // Call the RadAjaxPanel1_AjaxRequest function on the server ;  
                               
                            //hier refreshen  
                            oExplorer.refresh();  
                        }  
                        else  
                        {  
                            alert("Please, select a ZIP file");  
                        }  
                    }  
                }  
            </script>  
 

это наверно страница интернет експлорера обновляется автоматически

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 22:22 11-09-2009 | Исправлено: bomzzz, 22:27 11-09-2009
slech



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
всем привет.
есть такая функция - подбирает последнюю строку файла

Цитата:
 
function getlastline (ascfile)
set fs = createobject("scripting.filesystemobject")
set file = fs.GetFile(ascfile)
set stream = file.OpenAsTextStream
stream.skip file.size
line = stream.line
stream.close
set stream = file.OpenAsTextStream
for i=1 to line-2
stream.skipline
next
 
getlastline = stream.readline
if not stream.atendofstream then
getlastline = stream.readline
end if
 
end function
 

 
можно ли подобрать не последнюю строку, а предпоследнюю ?
 
спасибо.

Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 13:10 13-09-2009
   

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