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

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

   

Rush

Уже за тридцать...
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
quakerock

Цитата:
Разжуй, если не сложно, что это? (интересует то что в скобках)

Замена с использованием регулярных выражений.
1) перевод строки (\r - символ возврата каретки, \n - символ перевода строки) и после него любых 2 символа (.{2}) заменяются на перевод строки (VbCrLf - константа vbs). Итог - удаляются первые два символа в каждой строке.
2) [^\r] - любой символ кроме символа возврата каретки (поскольку находится в круглых скобках, то этот символ сохраняется во временном буфере) и идущие за ним один и более символов перевода строки (\n+) заменяются на сохраненный в буфере символ из шаблона ($1). В итоге удаляются юниксовые символы перевода строк (\n), не находящиеся в виндовой связке \r\n.
3) То же самое, что и предыдущий пример, но только операция происходит маковскими переводами строк (\r), не находящимися в виндовой связке \r\n.
 
Блин, только сейчас заметил ошибку в коде. Надо было написать

Код:
Text = ReplaceText(Text, "([^\r])\n+", "$1")  
Text = ReplaceText(Text, "\r+([^\n])", "$1")

 
Позор на мою голову.

Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 13:50 15-12-2010 | Исправлено: Rush, 14:01 15-12-2010
quakerock



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

Всего записей: 29 | Зарегистр. 08-07-2009 | Отправлено: 14:42 15-12-2010
AndVGri

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

Цитата:
CDO.Message
посмотри его методы и свойства (в частности для SendUsing на msdn). У меня настроен Outlook Express, так он использует его настройки smtp по умолчанию, то есть у меня отправляет.

Всего записей: 750 | Зарегистр. 14-12-2005 | Отправлено: 15:59 15-12-2010
Demon L



Lite FSB
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AndVGri
Понял. но так не пойдет.
На машине где это нужно делать нет не каких почтовых клиентов...
Других вариантов нет ?

Всего записей: 375 | Зарегистр. 24-07-2003 | Отправлено: 23:48 15-12-2010
quakerock



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Demon L
 
blat.exe ?

Всего записей: 29 | Зарегистр. 08-07-2009 | Отправлено: 09:09 16-12-2010
abz



Хулиган
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как, с помощью vbs скрипта отправить компьютер в ЖДУЩИЙ (не путать со спящим!) режим? Помогите, плиз.

Всего записей: 14975 | Зарегистр. 04-11-2002 | Отправлено: 23:28 17-12-2010
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
abz
вот это ты спросил. в вбс скриптах не силен. может через вми можно
ты вот это хотел? я непользовался никогда, спящий режим отключен, просто не знаю что такое ждущий. но вроде то самое
 
SetSuspendState.exe   2,50 КБ (2 560 байт) - ждущий режим, система отправляет запрос на приостановку каждому приложению, отключено восстановление активного состоаяния по событию пробуждения
 
Добавлено:
http://msdn.microsoft.com/en-us/library/aa373206%28v=vs.85%29.aspx
http://msdn.microsoft.com/en-us/library/aa373201%28v=vs.85%29.aspx
у меня пользователь один может надо было привелегии добавить - у меня работает
 
погуглил вроде через вми низя, и через вбс тожи
http://forum.ru-board.com/topic.cgi?forum=62&topic=14769
тут посматри через рундл32 как то делают
тут пишут

Цитата:
 
Однако в сон компьютер переводится этой командой только при выключенной опции гибернации в настройках электропитания.  
 

а уменя оно отключено. может у тебя не сработать что ли. к сожалению не пользовался этими режимами никогда, не могу понять что делаю.
 
 
Добавлено:

Цитата:
 
Параметры
 
state
    Тип: System.Windows.Forms.PowerState
    Объект PowerState, указывающий режим питания, в который следует перейти.
 
force
    Тип: System.Boolean
    Значение true, чтобы немедленно перейти в режим приостановки работы; значен��е false, чтобы система Windows отправила запрос на приостановку работы каждому приложению.
 
disableWakeEvent
    Тип: System.Boolean
    Значение true, чтобы отключить восстановление активного состояния питания системы, если произойдет событие пробуждения, значение false, чтобы включить восстановление активного состояния питания системы, если произойдет событие пробуждения.  
 

http://msdn.microsoft.com/ru-ru/library/system.windows.forms.application.setsuspendstate.aspx
 
Добавлено:
http://msdn.microsoft.com/ru-ru/library/system.windows.forms.powerstate.aspx

Цитата:
 
Suspend     Указывает режим питания системы в приостановленном состоянии. Когда система находится в приостановленном состоянии, компьютер переходит в состояние с низким потреблением энергии, называемое "ждущий режим". В ждущем режиме компьютер расходует меньше энергии, поскольку некоторые устройства отключены. Система может восстановиться более быстро, чем при возращении из спящего режима. Поскольку при переходе в ждущий режим не выполняется сохранение состояния памяти на диск, сбой энергопитания в период, когда компьютер находится в ждущем режиме, может привести к потере данных.
    Hibernate     Указывает режим питания системы в спящем режиме. Когда система переходит в спящий режим, содержимое памяти сохраняется на диск перед выключением компьютера. При перезапуске системы восстанавливается рабочий стол и программы, которые выполнялись до перезапуска.  
 

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 05:23 18-12-2010 | Исправлено: bomzzz, 05:49 18-12-2010
abz



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

Цитата:
SetSuspendState.exe   2,50 КБ (2 560 байт)

Эта утилита отправляет в спящий (hibernate) режим.
 
Добавлено:

Цитата:
Suspend     Указывает режим питания системы в приостановленном состоянии. Когда система находится в приостановленном состоянии, компьютер переходит в состояние с низким потреблением энергии, называемое "ждущий режим".  

Спасибо. Я знаю, что такое ждущий режим.

Всего записей: 14975 | Зарегистр. 04-11-2002 | Отправлено: 19:26 18-12-2010
bomzzz



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

Цитата:
 
.386
.model flat, stdcall
option casemap:none
 
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\user32.inc
;include \masm32\include\ntdll.inc
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib
;includelib \masm32\lib\ntdll.lib
 
.data
LibName         db   "Powrprof.dll",0
FunctionName    db   "SetSuspendState",0
 
.data?
hModule dd ?
 
.code
 
start:
; invoke  RtlAdjustPrivilege,13h,1h,0h,esp
 
  invoke LoadLibrary, addr LibName
  mov hModule, eax
  invoke GetProcAddress, hModule, addr FunctionName
  push 1
  push 0
  push 1
  call eax
  invoke FreeLibrary, hModule
 
 
 invoke ExitProcess, EAX
end start
 

 
рядом мутишь вот такой батник для компиляции

Цитата:
 
ECHO OFF
COLOR 9F
CLS
C:\masm32\bin\ml.exe /c /coff current.asm  
C:\masm32\bin\link.exe /subsystem:windows current.obj  
pause  
 

качаешь отсюда масм, устанавливаеться просто, в реестр не гадит.
MASM32 Downloads
 
запускаешь батник получаешь исполянемый файл
 
вопросы тут
http://forum.ru-board.com/topic.cgi?forum=33&bm=1&topic=7682&start=940#lt
 
Добавлено:
на масме эта библиотека тоже не используется, нужно к нейнапрямую обращаться
 
Добавлено:
setsuspendmode переводить как устнаовить ждущий режим.
 
Добавлено:
может из за того что у меня отключен спящий отправило в ждущий. хз

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 19:35 18-12-2010 | Исправлено: bomzzz, 19:58 18-12-2010
ComradG



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

Цитата:
вроде на вбс срипте и вми такое не получится

не вроде, а не получится. я вдоль и поперек все избороздил, решая данную задачку, но относительно гибернации ничего так и не получилось накарябать ((

Всего записей: 2041 | Зарегистр. 05-07-2008 | Отправлено: 22:49 19-12-2010
AndVGri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Demon L
Можно и дальше (читай, матчасть по-немногу)

Код:
 
Dim pSend
Dim pConf
Set pSend = CreateObject("CDO.Message")
Set pConf = CreateObject("CDO.Configuration")
'...  заполнение полей pConf читай здесь
http://msdn.microsoft.com/en-us/library/ms526318(EXCHG.10).aspx
Set pSend.Configuration = pConf
'.... параметры для pSend: заголовок, куда, откуда, вложение
pSend.Send
 

Всего записей: 750 | Зарегистр. 14-12-2005 | Отправлено: 08:57 20-12-2010
Demon L



Lite FSB
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
quakerock
Спасибо.
 
AndVGri
Не понял чего
Цитата:
Можно и дальше  

я ведь уже говорил.твой метод не подходит.
 
В любом случае всем спасибо... проблема решена.

Всего записей: 375 | Зарегистр. 24-07-2003 | Отправлено: 18:44 20-12-2010 | Исправлено: Demon L, 18:48 20-12-2010
magiogre



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени суток!
Нужно простенькое решение простенькой задачки.
Необходимо написать скрипт, который будет копировать с заменой всё содержимое папки folder1 в папку folder2.
Спасибо заранее.

Всего записей: 104 | Зарегистр. 26-01-2009 | Отправлено: 13:54 22-12-2010
Rush

Уже за тридцать...
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
magiogre

Код:
Option Explicit
 
Dim fso
Dim SourceFolder
Dim DestinationFolder
 
SourceFolder = "x:\folder1"
DestinationFolder = "x:\folder2"
 
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
 
fso.CopyFolder SourceFolder, DestinationFolder

Если у папки-получателя атрибут "только чтение" - перезаписи существующих файлов не будет.
 
Добавлено:
В смысле "только чтение" у файла.
Если надо такие копировать - проще из комстроки:

Код:
cmd /c xcopy "x:\folder1" "x:\folder2" /q/r/h/y

Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 14:23 22-12-2010
magiogre



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Rush
 
Задачка в следующем.  
 
Имеется сервер с ОС Windows2008 R2 и сетевое хранилище NAS.
Нужно бэкапить сетевую папку с винды на NAS. Штатными средствами Windows не удалось подружиться с сетевым хранилищем.
CMD тоже не удобно, т.к. нужно подключать и отключать NAS.
 
 
Нужен скрипт. Вот что в данный момент у нас получилось:
 
Option Explicit
 
Dim net
Set net = CreateObject("Wscript.Network")
net.MapNetworkDrive "L:","\\192.168.1.120\share", "true", "user", "password"
 
Dim fso
Dim SourceFolder
Dim DestinationFolder
 
SourceFolder = "D:\Test\Folder"
DestinationFolder = "L:\Test\Folder"
 
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
 
fso.CopyFolder SourceFolder, DestinationFolder  
 
net.RemoveNetworkDrive "L:","true", "true"
 
 
Нужно, наверное, перед началом копирования, как-то убрать атрибут read only со всего содержимого L:\Test\Folder.

Всего записей: 104 | Зарегистр. 26-01-2009 | Отправлено: 16:41 22-12-2010
AndVGri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
magiogre
Снимай
Dim pFolder
Set pFolder = fso.GetFolder(DestinationFolder)
pFolder.Attributes = pFolder.Attributes And &HFFFFFE
fso.CopyFolder SourceFolder, DestinationFolder, True

Всего записей: 750 | Зарегистр. 14-12-2005 | Отправлено: 03:21 23-12-2010
magiogre



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

Код:
Option Explicit
 
Dim net
Dim fso
Dim SourceFolder
Dim DestinationFolder
Dim pFolder  
 
Set net = CreateObject("Wscript.Network")
net.MapNetworkDrive "L:","\\192.168.1.120\backup-win", "true", "user", "password"
 
SourceFolder = "D:\Test\Folder"
DestinationFolder = "L:\Test\Folder"
 
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
Set pFolder = fso.GetFolder(DestinationFolder)
pFolder.Attributes = pFolder.Attributes And &HFFFFFE  
fso.CopyFolder SourceFolder, DestinationFolder, True  
 
net.RemoveNetworkDrive "L:","true", "true"  
Если в L:\Test\Folder лежит хотябы один файл с атрибутом read only, то вылетает ошибка:
Строка 18 символ 1 Неверный дескриптор 80070006 Источник (Nul)
(т.е. ругается на fso.CopyFolder SourceFolder, DestinationFolder, True)

Всего записей: 104 | Зарегистр. 26-01-2009 | Отправлено: 10:34 23-12-2010 | Исправлено: magiogre, 10:38 23-12-2010
AndVGri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
magiogre
Обойди рекурсией папку DestinationFolder

Код:
 
Sub RemoveHSR(ByVal forFolder)
    Dim pFile, pFolder
    
    If forFolder.Files.Count > 0 Then
        For Each pFile In forFolder.Files
            pFile.Attributes = pFile.Attributes And &HFFF8
        Next
    End If
    
    If forFolder.SubFolders.Count > 0 Then
        For Each pFolder In forFolder.SubFolders
            pFolder.Attributes = pFolder.Attributes And &HFFF8
            RemoveHSR pFolder
        Next
    End If
End Sub
 

Всего записей: 750 | Зарегистр. 14-12-2005 | Отправлено: 11:18 23-12-2010 | Исправлено: AndVGri, 11:18 23-12-2010
MedvedevDM



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день всем!
Необходимо на vbs написать скрипт подключения копма к сетевым дискам,
W:
Z:
чтобы потом подключать их при загрузке компа.
Еще надо указать логин/пароль для подключения диска
 
 
Подскажите пример скрипта.

Всего записей: 114 | Зарегистр. 03-11-2010 | Отправлено: 12:31 23-12-2010
magiogre



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MedvedevDM
 
 
Option Explicit
Dim net
Set net = CreateObject("Wscript.Network")
net.MapNetworkDrive "X:","\\address\", "true", "user", "password"
 
 

Всего записей: 104 | Зарегистр. 26-01-2009 | Отправлено: 14:14 23-12-2010
   

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