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

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

Автор: GRom V
Дата сообщения: 01.09.2008 13:28
Подскажите плизз....
как осуществить такую штуку?

сonst OverwriteExisting = TRUE
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.CopyFile "%windir%\install\1.txt" , "%appdata%\install\3.txt" , OverwriteExisting

т.е мне нужно скопировать и переименовать из %windir%\install\1.txt в %appdata%\install\3.txt

Но так неконает....
Автор: 24rus
Дата сообщения: 01.09.2008 13:37
Доброго времени суток!

Подскажите плиз...,
Дано: Скрипт работает только под правами админа (идет запись в реестр и рестарт служб),
Надо: Запустить его под правами админа из аккаунта юзера , или как вызвать из скрипта консоль cmd с правами админа ...

Сорри если не здесь спросил...,

p.s. Я не волшебник, я только учусь...
Автор: Nagual
Дата сообщения: 01.09.2008 13:57
GRom V
не совсем верно поставил задачу
если бы использовал абсолютные пути проблем бы не было
а так твоя задача звучит так:
как мне получить абсолютные пути к специальным папкам
Код:
windir=CreateObject("WScript.Shell").ExpandEnvironmentStrings("%windir%")
appdata=CreateObject("WScript.Shell").ExpandEnvironmentStrings("%appdata%")
msgbox
windir
msgbox appdata
думаю, копирование сам допишешь
Автор: mozers
Дата сообщения: 01.09.2008 15:41
24rus
Запуск скрипта, консоли, любой проги от заданного имени - все через runas (в окне консоли выполни runas /? - там все остальное скажут).
Автор: GRom V
Дата сообщения: 02.09.2008 01:36
Nagual
Прошу просчения - но я впервые столкнулся с vbs ......не могбы скинуть примерчик?!
Автор: mistx
Дата сообщения: 02.09.2008 16:12
Друзья подскажите пожалуйста как решить данную задачу?

Есть таблица в ворде - 8 колонок.

1- 12\07\1999
2- 28\07\1999
3 - 15
4- 16
5- 120000
6 - хххх.хх
7- хххх.хх

строк с подобными параметрами около 20

нужно чтобы получилось без таблицы в одну строку (код присвоить кнопке)

с 12.07.1999 по 28.07.1999 - 120000 Х 16% Х 15 дн Х хххх.хх

КАк реализовать? возможно ли?

Заранее благодарю
Автор: figaro1982
Дата сообщения: 02.09.2008 21:20
Eximus
его нужно сказать по ссылке что ты сам дал и установить в системе
Автор: jONES1979
Дата сообщения: 03.09.2008 17:42
snayper7

Цитата:
подскажите, можно заблокировать нажатие prt scr на клаве?

вероятно тебе можно сделать проще. В реестре подменить код генерируемый клавишей prt scr на некоторый другой...

правда для этого потребуется покопать мануалы.
Но это точно реально, так как подобный механизм используется для подмены "клавиш по умолчанию" для клавиатур microsoft natural забинденных на левые команды на их нормальные значения. Я сам пользую это решение.

В реестре правится ключ
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"= ...

на то что тебе требуется
Автор: 24rus
Дата сообщения: 04.09.2008 05:22
Нашел пример такого скрипта, как его можно изменить чтобы процесс запускался на локальном компьютере, а не в сети, у самого пока ничего не получается...

Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
CompName = "komp" 'имя компьютера
UserName = "admin" 'имя пользователя
Pass = "admin" 'пароль пользователя
Set objServices = objSWbemLocator.ConnectServer(CompName, "root\CIMV2", UserName, Pass, Null, Null, 0)
If Err.Number <> 0 Then
    WScript.Echo Err.Number & ": " & Err.Description
    WScript.Quit
End If
Set objClass = objServices.Get("Win32_Process")
Res = objClass.Create("notepad.exe", Null, Null, PID)
If Res <> 0 Then
    WScript.Echo "Код ошибки: " & Res
End If


Автор: alroy
Дата сообщения: 04.09.2008 13:06
24rus
попробуй вместо этого:CompName = "komp" 'имя компьютера ВОТ ЭТО
CompName = "." 'имя компьютера или

CompName = "localhost" 'имя компьютера
Автор: Alea
Дата сообщения: 05.09.2008 05:40
Подскажите пожайлуста.
Как средствами VBC создать визуальный интерфейс
Автор: NovaC
Дата сообщения: 05.09.2008 08:11
Подскажите vbs скрипт который бы
выводил размер папок и файлов начиная с заданной папки и с заданной глубиной.
Автор: Nagual
Дата сообщения: 05.09.2008 11:06
GRom V
мог бы, но нет времени писать код, да и смысла тоже
в сети полно примеров, стоит только захотеть поискать
Автор: Alea
Дата сообщения: 05.09.2008 11:55
Подскажите пожайлуста.
Как средствами VBS создать визуальный интерфейс, чтоб на нем можно было разместить поля, списки.
Автор: BlackRokk
Дата сообщения: 08.09.2008 15:31
Ситуация такая:
Нужно чтобы во время выполения приложения на vbs у пользователя были заблокированы клавиатура и мышка. А после выполнения соответственно включались. Кто знает как это сделать?
Автор: gap5
Дата сообщения: 08.09.2008 16:00
Тоже интересует, как скриптом заблокировать пользователю (именно пользователю) мышку и клавиатуру, но оставить возможность работы мышью и клавиатурой для приложения запущенного от имени SYSTEM.

(Когда использаю RADMIN некоторые туповатые юзеры несознательно мешают)
Автор: ripev
Дата сообщения: 08.09.2008 17:50
gap5
Ответ не в тему, в последней версии RAdmin есть возможность отключать действия с консоли во время удаленной работы.
Автор: alxkk
Дата сообщения: 14.09.2008 18:46
Есть текстовый файл.Как считывая каждую строку проверять ее на схожесть с данным словом?

set t=FSO.OpenTextFile("E:\ScriptLog.txt")
lin=t.ReadAll(ReadLine)
for каждой строки
if (lin="ttt") then
Wscript.Echo "уже есть"
else
Wscript.Echo "нету"

Как в массив строки запихнуть или еще как можно сделать?
Автор: ViSiToR
Дата сообщения: 14.09.2008 23:07
alxkk 19:46 14-09-2008
Цитата:
Как считывая каждую строку проверять ее на схожесть с данным словом?

Примерно так:


Код: sTextFile = "E:\ScriptLog.txt"
sFindStr = "ttt"

iLine = FindStringInFile(sTextFile, sFindStr)

If iLine > 0 Then
    Wscript.Echo "Строка <" & sFindStr & "> уже есть в файле [" & sTextFile & "]" & VBCRLF & "Строка №" & iLine
Else
    Wscript.Echo "Строки <" & sFindStr & "> нет в файле [" & sTextFile & "] "
End If

Function FindStringInFile(sTextFile, sFindStr)
    Const ForReading = 1
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set hFile = fso.OpenTextFile(sTextFile, ForReading, True)
    iCounter = 0
    
    Do While Not hFile.AtEndOfStream
        iCounter = iCounter + 1
        sLine = hFile.ReadLine
        
        If sLine = sFindStr Then
            FindStringInFile = iCounter
            Exit Do
        End If
    Loop
    
    hFile.Close
End Function
Автор: maxema
Дата сообщения: 15.09.2008 13:55
Подскажите, в чем трабл.
Все скрипты, в которых используется вызов

Код: GetObject("Winmgmts:\\блаблабла")
Автор: ViSiToR
Дата сообщения: 15.09.2008 14:21
maxema 14:55 15-09-2008
Цитата:
Подскажите, в чем трабл.

Скрипт можно посмотреть?
Автор: maxema
Дата сообщения: 15.09.2008 14:29

Цитата:
popinou
Цитата:Речь идет о макрос к программе перевода Промт -
Я хочу включить информацию, находящуюся в тексте макроса в формате
Что она там делает? Зачем это вообще нужно? А, впрочем, - дело твое...

Цитата:в последовательный файл в формате txt
Запись в файл выполняется с помощью FileSystem Object. Хорошее описание всех его свойств и методов (на русском и с примерами) - тут.

ViSiToR
Ну, элементарно, же, Ватсон
Код:Set Processes = GetObject("winmgmts://localhost")
Set myProcEnum = Processes.ExecQuery("select * from Win32_Process")
myProc = False
For Each Proc In myProcEnum
If Proc.Name = "notepad.exe" Then
myProc = True
End If
Next
If Not myProc Then
WScript.Echo "Что то я НЕ вижу что запущен Блокнот." & vbNewLine & "Ща я его запушу!..."
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "notepad.exe", 1, true
Else
WScript.Echo "Блокнот уже запущен!"
End If


Подскажите, почему у меня не работает этот скрипт?
Запускаю скрипт, секунд 10 ничего, а потом появляется сообщение

Код: Сценарий: Test.vbs
Строка: 3
Символ: 1
Ошибка: Невозможно создание объекта контейнером ActiveX
Код: 800A01AD
Источник: Ошибка выполнения Microsoft VBScript
Автор: Posochov
Дата сообщения: 15.09.2008 14:35
maxema
У меня твой скрипт прекрасно работает.

PS
У меня XP, а у тебя часом не Vista?
Автор: ViSiToR
Дата сообщения: 15.09.2008 14:42
maxema 15:29 15-09-2008
Цитата:
Невозможно создание объекта контейнером ActiveX


Возможно поможет это:

http://forum.oszone.net/showthread.php?t=60778

Цитата:
Для Windows XP SP2 переустановите Windows Script (альтернативная ссылка). Для Windows XP SP3 перерегистрируйте Windows Script запустив этот файл.


Также можно попробовать переригистрировать vbscript.dll: regsvr32 /s vbscript.dll
Автор: maxema
Дата сообщения: 15.09.2008 18:11
ViSiToR
Спасибо за помощь.
Все перепробовал, но ничего не помогает. Буду пробовать на свежей винде...
Автор: MIHMIH007
Дата сообщения: 16.09.2008 00:11
Народ подскажите плиз как создать VBS который бы создавал РЕГ файл со значением:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Control Panel\International]
"sDecimal"="."

Попробовал так:
Function
RegFileName = ExpandPath("c:\Path1.reg")
Set fso = CreateObject("Scripting.FileSystemObject")
Set RegFile = fso.CreateTextFile(RegFileName, true)
RegFile.WriteLine("Windows Registry Editor Version 5.00")
RegFile.WriteBlankLines(1)
RegFile.WriteLine("[HKEY_CURRENT_USER\Control Panel\International]")
RegFile.WriteLine(""sDecimal"="."")
RegFile.WriteBlankLines(1)
RegFile.Close
End Function

Где ошибка ?
Автор: ViSiToR
Дата сообщения: 16.09.2008 00:50
MIHMIH007 01:11 16-09-2008
Цитата:
Где ошибка ?

Во-первых после Function нужно указывать имя фукнции, также эту функцию нужно вызывать, и что такое «ExpandPath»? откуда оно?

Вот так работает:


Код: sRegFile = "C:\Path1.reg"
sString = "[HKEY_CURRENT_USER\Control Panel\International]" & VBCRLF & """sDecimal""=""."""

WriteRegFile sRegFile, sString

Function WriteRegFile(sRegFilePath, sWriteString)
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set RegFile = fso.CreateTextFile(sRegFilePath, True)
    
    RegFile.WriteLine("Windows Registry Editor Version 5.00" & VBCRLF & VBCRLF & sWriteString & VBCRLF)
    RegFile.Close
End Function
Автор: maxema
Дата сообщения: 16.09.2008 04:50
Изящно.
А созданные объекты в функции не надо удалять, типа Free?(я только учусь;))
Автор: MIHMIH007
Дата сообщения: 16.09.2008 07:26
ViSiToR
Спасбо огромнейшее))) Всё перечитал не нашёл.....
это----> & VBCRLF & """sDecimal""="".""" помогло...
Вот полный скрипт для запуска из портативной проги исправляющей при запуске проги значение разделителя с запятой на точку:
Function OnFirstSandboxOwner
RegFileName = ExpandPath("%Personal%\Path1.reg")
Set fso = CreateObject("Scripting.FileSystemObject")
Set RegFile = fso.CreateTextFile(RegFileName, true)
RegFile.WriteLine("Windows Registry Editor Version 5.00")
RegFile.WriteBlankLines(1)
RegFile.WriteLine("[HKEY_CURRENT_USER\Control Panel\International]" & VBCRLF & """sDecimal""="".""")
RegFile.WriteBlankLines(1)
RegFile.Close
RegEditPid = ExecuteExternalProcess("regedit /s " & chr(34) & RegFileName & chr(34))
WaitForProcess RegEditPid, 0
fso.DeleteFile(RegFileName)
End Function
Автор: Nagual
Дата сообщения: 16.09.2008 10:59
MIHMIH007
намного проще было использовать сценарий вместо скрипта

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475

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


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