Ru-Board.club
← Вернуться в раздел «Microsoft Windows»

» Windows Preinstallation Environment(WinPE) и BartPE LiveCD 7

Автор: alexfocus
Дата сообщения: 21.04.2010 18:41
AZJIO


Код: Opt("TrayIconDebug",1)
;Global $EXE, $ARG
$iMinFreeSpase = "512" ;минимум свободного места на диске в Мб.
$var = DriveGetDrive("FIXED")
If Not @error Then
For $i = $var[0] To 1 Step -1
If DriveSpaceFree($var[$i]) >= $iMinFreeSpase Then
            Run(@SystemDir&'\SETPAGEFILE.EXE /f ' &$var[$i]&':\pagefile.sys /i 512 /m 1024' )
            ;$EXE='X:\I386\SYSTEM32\SETPAGEFILE.EXE'
            ;$ARG='/f $var[$i]:\pagefile.sys /i 512 /m 1024'
    EXIT
EndIf
Next
EndIf
Автор: 1MDI1
Дата сообщения: 21.04.2010 18:53
AZJIO

Цитата:
NIKZZZZ же тебе сказал поставить ExitLoop.

Срабатывает и просто EXIT, а смена направления и точно решит всю проблему я сразу чет не сообразил начал тут лишнего городить . Ответь мне еще на вопрос в теме по AutoIt чтоб здесь лишнего не писать!
alexfocus
Закомментированные строки еще убери
Автор: NIKZZZZ
Дата сообщения: 21.04.2010 19:12
alexfocus

Код: Opt("TrayIconDebug",1)
;Global $EXE, $ARG
$iMinFreeSpase = "512" ;минимум свободного места на диске в Мб.
$var = DriveGetDrive("FIXED")
If Not @error Then
For $i = $var[0] To 1 Step -1
If DriveSpaceFree($var[$i]) >= $iMinFreeSpase Then
Run(@SystemDir&'\SETPAGEFILE.EXE /f ' &$var[$i]&':\pagefile.sys /i 512 /m 1024' )
;$EXE='X:\I386\SYSTEM32\SETPAGEFILE.EXE'
;$ARG='/f $var[$i]:\pagefile.sys /i 512 /m 1024'
EXIT
EndIf
Next
EndIf
Msgbox(4096,"Error","Диск для файла подкачки не найден.")
EXIT
Автор: alexfocus
Дата сообщения: 21.04.2010 22:12
NIKZZZZ

Код:
Цитата:
Msgbox(4096,"Error","Диск для файла подкачки не найден.")
Автор: alexfocus
Дата сообщения: 22.04.2010 09:37
С файлом подкачки разобрались, теперь осталось в сборке добить 2 пункта, которые меня сильно раздражают:

1. Если "на горячую" подключаешь USB диск, то не назначается буква. Приходится каждый раз запускать MountStorPE или лезть ы управление дисками и назначать букву.

2. Если бы корректно работал PeNetwork 0.56 на WiFi, то можно бы было отказаться от автостарта сети.
Проблема заключается с первым подключением к точке доступа через пароль . Если стандартным способом через обзор сети подключишь, то подключается/отключается через PeNetwork нормально.
Автор: AZJIO
Дата сообщения: 22.04.2010 09:49
yurkesha
Сколько объём минимальной комплектации WMI?

alexfocus
1. Для NIKZZZZ в Sh можно добавить, он сканирует появление новых дисков. Можно либо в ini указать путь к MountStorPE, либо в скрипте проверять существование пары возможных путей к MountStorPE, и если существует то выполнить его при подключении нового диска.
_______
Чуть ошибся, как он диски то увидит... но в теме винбилдера кто-то отписывал подключение дисков с помощью Sh. По ветке Mount вроде...
Автор: alexfocus
Дата сообщения: 22.04.2010 10:10
AZJIO

Цитата:
как он диски то увидит... но в теме винбилдера кто-то отписывал подключение дисков с помощью Sh

в том-то и дело. Нужно как-то отслеживать подключение нового устройства и запускать типа zPNP или MountStorPE.
Автор: yurkesha
Дата сообщения: 22.04.2010 11:01
AZJIO
Честно говоря не помню... Кажись что-то в районе 3-5 метров.
Автор: VV2006
Дата сообщения: 22.04.2010 11:53
alexfocus
Я прописал автоприсвоение буквы USB-HDD через добавление в плагин USB Safely Remove автозапуска MountLetter.cmd (@X:\I386\SYSTEM32\MOUNTSTORPE.EXE -ng).
Но тут привязка идёт к конкретно известному (моему) USB-HDD:
Код: [Default.AddReg]
0x1, "Software\SafelyRemove\Drives\USB*VID_152D&PID_2339*16D0B01392FF","RunFileOnLoadName","MountLetter.cmd"
Автор: alexfocus
Дата сообщения: 22.04.2010 12:33
VV2006
А если это дело привязать к активации иконки безопасного извлечения устройства и диска?
Только где рыть?
Автор: VV2006
Дата сообщения: 22.04.2010 12:57
alexfocus

Код: rundll32.exe shell32.dll,Control_RunDLL hotplug.dll
Автор: alexfocus
Дата сообщения: 22.04.2010 14:22
VV2006
попробовал, но не получается...выдает ошибку

Код:
X:\I386\SYSTEM32\WBEM>mofcomp x:\i386\system32\wbem\usb.mof
32-разр. компилятор Microsoft (R) MOF, Версия 5.1.2600.5512
(С) Корпорация Майкрософт, 1997-2001. Все права защищены.
Разбор MOF-файла: x:\i386\system32\wbem\usb.mof
MOF-файл успешно проверен на синтаксис
Компьютер вернул ошибку 0x80040154
Автор: SANIOK_AV
Дата сообщения: 22.04.2010 14:30
yurkesha, расскажите если не трудно в кратце чем оличаются друг от друга ваши плагины
Acronis True Image HOME+UR+TB 13.0.0.6053 RUS
и
ASZ для Acronis True Image HOME 13.0.0.6053 RUS
?
Заранее благодарен!!!
Автор: yurkesha
Дата сообщения: 22.04.2010 15:30
SANIOK_AV
ASZ=файлы активации восстановления при загрузке для Acronis Secure Zone
UR=Universal Restore
TB=TIB browser
Соответсвенно:
Acronis True Image HOME+UR+TB 13.0.0.6053 RUS= Acronis True Image HOME + Universal Restore + TIB browser
ASZ для Acronis True Image HOME 13.0.0.6053 RU = ТОЛЬКО файлы активации восстановления при загрузке для Acronis Secure Zone. Это по факту добавочный плаг расширяющий функциональность основного плагина. Выложен отдельно чтобы те люди которым ASZ не нужен не тратили понапрасну траффик.
А кому нужен - качают оба плага
Автор: AZJIO
Дата сообщения: 22.04.2010 15:47
yurkesha
Скопировал файлы WMI утилиткой F3_F5_v2.3, размер 2.6Мб, в архиве 850кб, наверно добавлю себе, без него vbs и au3 c вызовами ObjGet не работают.
Автор: yurkesha
Дата сообщения: 22.04.2010 16:16
AZJIO
Не понял что за утилита?
Делись плиз...
Автор: AZJIO
Дата сообщения: 22.04.2010 16:33
yurkesha
F3_F5_v2.3 - конечно она не полный автомат, ей нужно список файлов давать, из inf, удалив =**

Проверил WMI, всё равно не работает... такие [more=строки]Set objService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")
Set objRefresher = CreateObject("WbemScripting.SWbemRefresher")
Set colItems = objRefresher.AddEnum(objService, "Win32_Process").objectSet
Do Until False
WScript.Sleep 500
objRefresher.Refresh
Flag = True
For Each objItem in colItems
If objItem.ProcessID = 772 Then
Flag = False
End If
Next
If Flag = True Then
Exit Do
End If
Loop
Set objShell = CreateObject("WScript.Shell")
objShell.Run("D:\AU3\~1.AU3")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set File = objFSO.GetFile("B:\~mkueozo.vbs")
File.Delete[/more] из vbs выдают ошибку.
А в au3 вызов: ObjGet
Код: $objWMIService = ObjGet("winmgmts:\\" & $cI_Compname & "\root\CIMV2")
$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_VideoController", "WQL", $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
Автор: VV2006
Дата сообщения: 22.04.2010 16:54
alexfocus
Цитата:
WMI ( Класс не зарегистрирован.... )
Видно, чего-то в этом супе (WMI в PE) не хватает. Что-то там, помнится, отключалось для сокращения объёма и времени загрузки. Может утилька AZJIO чем поможет, про которую даже гугл не в курсе?
А, оказывается это утилитка для поиска и копирования найденных файлов от VictorSaf.
Автор: SANIOK_AV
Дата сообщения: 22.04.2010 17:17
yurkesha
ок...
Спасибо!
Автор: AZJIO
Дата сообщения: 22.04.2010 17:18
Посмотрите утилиту на AutoIt3 - ProDLLer, в контекстном меню есть "List Modules Processes" - отображение списка необходимых файлов. Только не нажимать кнопку HardReBoot - жёсткая перезагрузка.
Автор: X_Factor
Дата сообщения: 22.04.2010 19:59
Скачал последние драйвера SCSI с yurkesha.seclorum.ru добавил и собрал конструктором pebuilder v3.1.10a , но никак не видит диски в VMWare 7.0 build203739

может кто сталкивался с такой проблемой ?
Автор: SANIOK_AV
Дата сообщения: 23.04.2010 10:45
yurkesha
а как быть если я хочу добавить в сборку
и Acronis True Image HOME+UR+TB 13.0.0.6053 RUS
и Acronis Disk Director Suite 10. 2161 RUS
?
они и тот и тот распаковываются в паочку Acronis
и у тот и у того в этой папочке есть папка common (файлы в этой папке одинаковые но отличаются по размеру и дате) и файл common.inf
Заранее благодарен!
Автор: 1MDI1
Дата сообщения: 23.04.2010 11:52
SANIOK_AV

Цитата:
и у тот и у того в этой папочке есть папка common (файлы в этой папке одинаковые но отличаются по размеру и дате) и файл common.inf

Включай тольк один common.inf который посвежее и все будет работать.
Автор: SANIOK_AV
Дата сообщения: 23.04.2010 12:32
1MDI1 Спасибо большое!!!
Автор: slay1212
Дата сообщения: 23.04.2010 14:19
Вопрос к знатокам.
1. Юзаю xpe коструктор и плагины от yurkesha для сборки cd.
Ничео касательно ramdrive не менялось и не переделывалось. Однако заметил что на всех машинках вирт диск получается 96 м (даже если памяти и много).
В плагине ramdisk qsoft от yurkesha есть строчка
IF "%DISKTYPE%"=="Root\UNKNOWN\9999" SET "MAXSIZE=96"
Я так понял размер задается исходя из этого. Что надо сделать чтобы рамдиск создавался с большим размером автоматом при загрузке ? из комстроки можно его перезапустить вручную с большим размером?
Запись "%DISKTYPE%"=="Root\UNKNOWN\9999" означает что нет каких-то дров?
2. По плагину сборки kis2009. При загрузке с диска не показывает дату релиза баз.
Из-за чего? Может быть из-за неотключенного кис ( или его самозащиты) при сборке образа?
Автор: yurkesha
Дата сообщения: 23.04.2010 19:08
slay1212
Цитата:
Я так понял размер задается исходя из этого.
Это значит что RAMDRIVE-плагин используется не мой. Или то что настройки моего плага перекрываются другим аналогичным.

Цитата:
2.
У меня показывает и при включенном и при выключенном...

Автор: AZJIO
Дата сообщения: 23.04.2010 22:48
[more=Fast-Explorer]Неплохая программка для сборки Fast-Explorer. Весь комплект использовать не обязательно, достаточно EXE-шником сконфигурировать FastExplorer.ini прямо в сборке, а для плага достаточно два файла FEShlExt.dll и FastExplorer.ini и команда регистрации dll.
Программа позволяет добавить суб-меню в контекстное меню. После теста обнаружилась задержка открытия меню за счёт чтения с харда конфигурационного файла, но эта задержка в загруженных wim-сборках не должна быть заметна.[/more]

[more=мой вариант контекстного меню]
В отличии от Fast-Explorer не тормозит открытие меню, но приходится раскрывать диалоговую панель операций. При установленном в сборке AutoIt3 скрипт самоустанавливается, нужно только правильно его назвать - contmenu.au3

Код: $password='ru-board' ; указываем пароль для упаковки архивов
$ScanPath = @ProgramFilesDir&'\Scanner\Scanner.exe'
;$ScanPath = 'C:\Program Files\Scanner\Scanner.exe'
$WinRARPath = @ProgramFilesDir&'\WinRAR\WinRAR.exe'
If @ComputerName='WinPE' Then
$AutoIt3Path = @SystemDir & '\AutoIt3.exe'
Else
$AutoIt3Path = @ProgramFilesDir&'\AutoIt3\AutoIt3.exe'
EndIf
#NoTrayIcon ;скрыть в системной панели индикатор AutoIt
Global $Stack[50], $Stack1[50], $aFolder, $aPathexe[1]

$close = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\script_az\contmenu", "close")
If @error = 1 Then
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\script_az\contmenu", "close", "REG_SZ", "1")
$close = '1'
;регистрация в реестре и копирование в системную папку при первом запуске
RegWrite("HKCR\*\shell\contmenu", "", "REG_SZ", 'Управление файлом')
RegWrite("HKCR\*\shell\contmenu\command", "", "REG_SZ", @AutoItExe & ' "' & @SystemDir & '\contmenu.au3" "%1"')
RegWrite("HKCR\Folder\shell\contmenu", "", "REG_SZ", 'Управление каталогом')
RegWrite("HKCR\Folder\shell\contmenu\command", "", "REG_SZ", @AutoItExe & ' "' & @SystemDir & '\contmenu.au3" "%1"')
If Not FileExists(@SystemDir & '\contmenu.au3') Then FileCopy(@ScriptDir & '\contmenu.au3', @SystemDir, 1)
EndIf

If
$CmdLine[0]=0 Then Exit
$sTarget = $CmdLine[1]
$aPath = StringRegExp($sTarget, "(^.*)\\(.*)$", 3)
; если каталог, тогда ... иначе ...
If StringInStr(FileGetAttrib($sTarget), 'D') Then

; начало создания окна, вкладок, кнопок.
GUICreate($aPath[1], 310, 165) ; размер окна
GUICtrlCreateTab(0, 0, 310, 165) ; размер вкладки

$checkclose = GUICtrlCreateCheckbox("Закрывать диалог при клике на кнопке", 10, 10, 290, 24)
If $close = '1' Then GuiCtrlSetState(-1, 1)

$comstr = GUICtrlCreateButton("cmd", 10, 40, 21, 21, 0x0040)
GUICtrlSetTip(-1, "Открыть ком-строку отсюда" & @CRLF & "Для выполнения DOS-команд")
GUICtrlSetImage(-1, @SystemDir & '\cmd.exe', 1, 0)

$Scanner = GUICtrlCreateButton("scn", 315, 40, 21, 21, 0x0040)
GUICtrlSetTip(-1, "Открыть в Scanner, для просмотра" & @CRLF & "занимаемого пространтсва на харде")
GUICtrlSetImage(-1, $ScanPath, 1, 0)
If FileExists($ScanPath) Then GUICtrlSetPos($Scanner, 35, 40)

$Virtcd1 = GUICtrlCreateButton("cd+", 315, 40, 21, 21, 0x0040)
GUICtrlSetTip(-1, "Создать виртуальный" & @CRLF & "диск Y: из папки")
GUICtrlSetImage(-1, @SystemDir & '\shell32.dll', 10, 0)

$Virtcd2 = GUICtrlCreateButton("cd-", 315, 40, 21, 21, 0x0040)
GUICtrlSetTip(-1, "Отключить виртуальный" & @CRLF & "диск Y:")
GUICtrlSetImage(-1, @SystemDir & '\shell32.dll', 11, 0)
_subst()

$winrar = GUICtrlCreateButton("rar", 315, 40, 21, 21, 0x0040)
GUICtrlSetTip(-1, "Упаковать с паролем" & @CRLF & "(указать в скрипте)")
GUICtrlSetImage(-1, $WinRARPath, 1, 0)
If FileExists($WinRARPath) Then GUICtrlSetPos($winrar, 85, 40)

$list = GUICtrlCreateButton("", 10, 70, 21, 21, 0x0040)
GUICtrlSetTip(-1, "Создать список всех файлов и папок," & @CRLF & "только имена, без подкаталогов")
GUICtrlSetImage(-1, @SystemDir & '\shell32.dll', 2, 0)
$listfull = GUICtrlCreateCheckbox("Полный путь", 35, 70, 90, 20)
$subfol = GUICtrlCreateCheckbox("подпапки", 130, 70, 70, 20)
$Labelkol = GUICtrlCreateLabel("", 210, 70, 90, 20)

$cacls = GUICtrlCreateButton("Доступ", 10, 100, 90, 24)
GUICtrlSetTip(-1, "Можно дать доступ к папке" & @CRLF & "System Volume Information")
$accfncombo = GUICtrlCreateCombo("", 105, 100, 95, 24)
GUICtrlSetData(-1, 'Все|Administrator|Admin|Администратор|System|Гость', 'Все')
GUICtrlSetTip($accfncombo, "Пользователи и группы")
$access = GUICtrlCreateCombo("", 205, 100, 95, 24)
GUICtrlSetData(-1, 'запрет|чтение|запись|изменение|полный', 'полный')
GUICtrlSetTip(-1, "Тип доступа")

$dfile = GUICtrlCreateButton("Удалить", 10, 130, 55, 24)
GUICtrlSetTip(-1, "Удалить тип файлов," & @CRLF & "разделяя через ;")
$delcombo = GUICtrlCreateCombo("", 70, 130, 130, 24)
GUICtrlSetData(-1, 'bak;gid;log;tmp|htm;html;css;js;php|bmp;gif;jpg;jpeg;png;tif;tiff|exe;msi;scr;dll;cpl;ax|com;sys;bat;cmd', 'bak;gid;log;tmp')
$checkAtrb = GUICtrlCreateCheckbox("Снять атрибут", 205, 130, 95, 24)
GuiCtrlSetState(-1, 1)
GUICtrlSetTip($checkAtrb, "Снимать атрибуты файла" & @CRLF & "для возможности его удалить")

$script = GUICtrlCreateButton("au3", 279, 40, 21, 21, 0x0040)
GUICtrlSetTip(-1, "Редактировать скрипт" & @CRLF & "(пароль, пути)")
GUICtrlSetImage(-1, $AutoIt3Path, 1, 0)

GUICtrlCreateTabitem("") ; конец вкладок

GUISetState()

While 1
$msg = GUIGetMsg()
Select
Case
$msg = $script
ShellExecute(@ScriptFullPath, '', '', "edit")
Case $msg = $winrar
_winrar()
Case $msg = $Virtcd1
Run ( @Comspec&' /C subst y: "'&$sTarget&'"', '', @SW_HIDE )
Sleep(150)
_subst()
Case $msg = $Virtcd2
Run ( @Comspec&' /C subst y: /d', '', @SW_HIDE )
Sleep(150)
_subst()
Case $msg = $list
$Text
= ""
If GUICtrlRead($subfol) = 1 Then ; если подпапки то используем скоростной алгоритм NIKZZZZ
FileFindNextFirst($sTarget)
While 1
$tempname = FileFindNext()
If $tempname = "" Then ExitLoop
$Text &= $tempname & @CRLF
WEnd
If GUICtrlRead($listfull) = 4 Then $Text = StringRegExpReplace($Text, "(?:.*)\\(.*\r\n)", '\1')
Else
$aFolder = _FileListToArrayEx($sTarget, "", 0, 0)
For $i = 2 To $aFolder[0]
If GUICtrlRead($listfull) = 1 Then
$Text &= $aFolder[$i] & @CRLF
Else
$aPath = StringRegExp($aFolder[$i], "(^.*)\\(.*)$", 3)
$Text &= $aPath[1] & @CRLF
EndIf
Next
EndIf
ClipPut($Text)
$file = FileOpen(@TempDir & '\file.txt', 2)
If $file = -1 Then
MsgBox(0, "Ошибка", "Не возможно открыть файл.")
Exit
EndIf
FileWrite($file, $Text)
FileClose($file)
Run('Notepad.exe ' & @TempDir & '\file.txt')
If GUICtrlRead($checkclose) = 1 Then Exit
Case $msg = $cacls
_cacls()
Case $msg = $Scanner
ShellExecute($ScanPath, '"' & $sTarget & '"', '', '', @SW_HIDE)
If GUICtrlRead($checkclose) = 1 Then Exit
Case $msg = $comstr
Run(@SystemDir & '\cmd.exe /k cd "' & $sTarget & '"')
If GUICtrlRead($checkclose) = 1 Then Exit
Case $msg = $dfile
$delcombo0 = GUICtrlRead($delcombo)
$aDelcombo0 = StringSplit($delcombo0, ";")
$kol = 0
For $i = 1 To $aDelcombo0[0]
FileFindNextFirst($sTarget)
While 1
$tempname = FileFindNext()
If $tempname = "" Then ExitLoop
If StringRegExpReplace($tempname, '(?:^.*)\.(.*)$', '\1') = $aDelcombo0[$i] Then
;MsgBox(0, "Сообщение", $tempname)
If GUICtrlRead($checkAtrb) = 1 Then FileSetAttrib($tempname, "-RASHT")
FileDelete($tempname)
$kol += 1
EndIf
WEnd
Next
;MsgBox(0, "Сообщение", $kol)
GUICtrlSetData($Labelkol, 'удалено ' & $kol)
If GUICtrlRead($checkclose) = 1 Then Exit
Case $msg = $checkclose
If GUICtrlRead($checkclose) = 1 Then
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\script_az\contmenu", "close", "REG_SZ", "1")
Else
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\script_az\contmenu", "close", "REG_SZ", "0")
EndIf
Case $msg = -3
ExitLoop
EndSelect
WEnd

Else
; здесь для файлов.
; начало создания окна, вкладок, кнопок.
GUICreate($aPath[1], 310, 105) ; размер окна
$tab = GUICtrlCreateTab(0, 0, 310, 105) ; размер вкладки

$checkclose = GUICtrlCreateCheckbox("Закрывать диалог при клике на кнопке", 10, 10, 290, 24)
If $close = '1' Then GuiCtrlSetState(-1, 1)

$comfile = GUICtrlCreateButton("Открыть ком-строку отсюда", 10, 40, 21, 21, 0x0040)
GUICtrlSetTip(-1, "Открыть ком-строку отсюда" & @CRLF & "Для выполнения DOS-команд")
GUICtrlSetImage(-1, @SystemDir & '\cmd.exe', 1, 0)

$winrar = GUICtrlCreateButton("rar", 315, 40, 21, 21, 0x0040)
GUICtrlSetTip(-1, "Упаковать с паролем" & @CRLF & "(указать в скрипте)")
GUICtrlSetImage(-1, $WinRARPath, 1, 0)
If FileExists($WinRARPath) Then GUICtrlSetPos($winrar, 85, 40)

$Pathfull = GUICtrlCreateButton("", 35, 40, 21, 21, 0x0040)
GUICtrlSetTip(-1, "Линк файла в буфер," & @CRLF & "полный путь и имя")
GUICtrlSetImage(-1, @SystemDir & '\shell32.dll', 2, 0)
$assot = GUICtrlCreateButton("", 60, 40, 21, 21, 0x0040)
GUICtrlSetTip(-1, "Открыть каталог" & @CRLF & "ассоциированной программы")
GUICtrlSetImage(-1, @SystemDir & '\shell32.dll', 4, 0)

$cacls = GUICtrlCreateButton("Доступ", 10, 70, 90, 24)
GUICtrlSetTip(-1, "Установить доступ к файлам")
$accfncombo = GUICtrlCreateCombo("", 105, 70, 95, 24)
GUICtrlSetData(-1, 'Все|Administrator|Admin|Администратор|System|Гость', 'Все')
GUICtrlSetTip($accfncombo, "Пользователи и группы")
$access = GUICtrlCreateCombo("", 210, 70, 90, 24)
GUICtrlSetData(-1, 'запрет|чтение|запись|изменение|полный', 'полный')
GUICtrlSetTip($access, "Тип доступа")

$script = GUICtrlCreateButton("au3", 279, 40, 21, 21, 0x0040)
GUICtrlSetTip(-1, "Редактировать скрипт" & @CRLF & "(пароль, пути)")
GUICtrlSetImage(-1, $AutoIt3Path, 1, 0)

GUICtrlCreateTabitem("") ; конец вкладок

GUISetState()

While 1
$msg = GUIGetMsg()
Select
Case $msg = $script
ShellExecute(@ScriptFullPath, '', '', "edit")
Case $msg = $winrar
_winrar()
Case $msg = $Pathfull
ClipPut($sTarget)
If GUICtrlRead($checkclose) = 1 Then Exit
GUICtrlSetTip($Pathfull, "Полный путь и имя" & @CRLF & $sTarget)
Case $msg = $cacls
_cacls()
Case $msg = $assot
$type = StringRegExp($sTarget, "(^.*)\.(.*)$", 3)
If @error = 1 Then ContinueLoop
$astype = RegRead('HKEY_CLASSES_ROOT\.' & $type[1], "")
$astype = RegRead('HKEY_CLASSES_ROOT\' & $astype & '\shell\open\command', "")
If @error = 1 Then ContinueLoop
$aPathexe = StringRegExp($astype, "(^.*)exe(.*)$", 3)
If @error = 1 Then ContinueLoop
$Pathexe1 = StringReplace($aPathexe[0], '"', '')
If FileExists($Pathexe1 & 'exe') Then Run('Explorer.exe /select,"' & $Pathexe1 & 'exe"')
If GUICtrlRead($checkclose) = 1 Then Exit
Case $msg = $comfile
$aPath = StringRegExp($sTarget, "(^.*)\\(.*)$", 3)
ClipPut($aPath[1])
Run(@SystemDir & '\cmd.exe /k cd "' & $aPath[0] & '"')
WinWait("[CLASS:ConsoleWindowClass]")
Send("!{SPACE}")
Send("{DOWN 6}")
Send("{ENTER}")
Send("{DOWN 2}")
Send("{ENTER}")
If GUICtrlRead($checkclose) = 1 Then Exit
Case $msg = $checkclose
If GUICtrlRead($checkclose) = 1 Then
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\script_az\contmenu", "close", "REG_SZ", "1")
Else
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\script_az\contmenu", "close", "REG_SZ", "0")
EndIf
Case $msg = -3
ExitLoop
EndSelect
WEnd

EndIf

;$iMode <= 0 -> Folders + files
;$iMode = 1 -> Files only (first element still includes the initial path, wich is the $sPath)
;$iMode = 2 -> Folders only
Func _FileListToArrayEx($sPath, $sMask = "*", $iMode = 0, $iLevel = 0)
If Not StringInStr(FileGetAttrib($sPath), "D") Then Return SetError(1, 0, 0)

$sPath = StringRegExpReplace($sPath, "\\+$", "")
$sMask = "(?i)" & StringReplace(StringReplace($sMask, ".", "\."), "*", ".*")

StringReplace($sPath, "\", "")
Local $iLevel_Slashes = @extended + 1

Local $aPathesArr[2] = [1, $sPath]
Local $hSearch, $sFindNext, $i, $iIsDir

While $i < $aPathesArr[0]
$i += 1

$hSearch = FileFindFirstFile($aPathesArr[$i] & "\*")
If $hSearch = -1 Then ContinueLoop

While 1
$sFindNext = FileFindNextFile($hSearch)
If @error Then ExitLoop

$iIsDir = StringInStr(FileGetAttrib($aPathesArr[$i] & "\" & $sFindNext), "D")

If $iMode < 2 Or($iMode = 2 And $iIsDir) Then
If Not $iIsDir And Not StringRegExp($sFindNext, $sMask) Then ContinueLoop

$aPathesArr[0] += 1
ReDim $aPathesArr[$aPathesArr[0] + 1]

$aPathesArr[$aPathesArr[0]] = $aPathesArr[$i] & "\" & $sFindNext
EndIf
WEnd

FileClose($hSearch)

StringReplace($aPathesArr[$aPathesArr[0]], "\", "")
If @extended - $iLevel_Slashes = $iLevel Then ExitLoop
Wend

If $iMode = 1 Then
Local $aTmp_Arr = $aPathesArr
Local $iTmp_Count = 1

For $i = 2 To $aPathesArr[0]
If StringInStr(FileGetAttrib($aPathesArr[$i]), "D") Then ContinueLoop

$iTmp_Count += 1
$aTmp_Arr[$iTmp_Count] = $aPathesArr[$i]
Next

$aTmp_Arr[0] = $iTmp_Count
ReDim $aTmp_Arr[$iTmp_Count + 1]

$aPathesArr = $aTmp_Arr
EndIf

Return $aPathesArr
EndFunc ;==>_FileListToArrayEx

;=====================================================
Func FileFindNextFirst($FindCat)
$Stack[0] = 1
$Stack1[1] = $FindCat
$Stack
[$Stack[0]] = FileFindFirstFile($Stack1[$Stack[0]] & "\*.*")
Return $Stack[$Stack[0]]
EndFunc ;==>FileFindNextFirst

Func FileFindNext()
While 1
$file = FileFindNextFile($Stack[$Stack[0]])
If @error Then
FileClose($Stack[$Stack[0]])
If $Stack[0] = 1 Then
Return
""
Else
$Stack[0] -= 1
ContinueLoop
EndIf
Else
If
StringInStr(FileGetAttrib($Stack1[$Stack[0]] & "\" & $file), "D") > 0 Then
$Stack[0] += 1
$Stack1[$Stack[0]] = $Stack1[$Stack[0] - 1] & "\" & $file
$Stack
[$Stack[0]] = FileFindFirstFile($Stack1[$Stack[0]] & "\*.*")
ContinueLoop
Else
Return
$Stack1[$Stack[0]] & "\" & $file
EndIf
EndIf
WEnd
EndFunc
;==>FileFindNext

Func _cacls()
$accfncombo0 = GUICtrlRead($accfncombo)
$access00 = GUICtrlRead($access)
Switch $access00
Case $access00 = "запрет"
$access0 = "N"
Case $access00 = "чтение"
$access0 = "R"
Case $access00 = "запись"
$access0 = "W"
Case $access00 = "изменение"
$access0 = "C"
Case $access00 = "полный"
$access0 = "F"
Case Else
$access0 = "F"
EndSwitch
ShellExecute(@SystemDir & '\cacls.exe', '"' & $sTarget & '" /t /e /p "' & $accfncombo0 & '":' & $access0, '', '', @SW_HIDE)
If GUICtrlRead($checkclose) = 1 Then Exit
EndFunc
;==>_cacls

Func _subst()
If FileExists("Y:\") Then
GUICtrlSetPos($Virtcd2, 60, 40)
GUICtrlSetPos($Virtcd1, 315, 40)
Else
GUICtrlSetPos($Virtcd1, 60, 40)
GUICtrlSetPos($Virtcd2, 315, 40)
EndIf
EndFunc
;==>_subst

Func _winrar()
; генерируем имя нового файла с номером копии на случай если файл существует
$i = 1
While FileExists($aPath[0]&'\'&$aPath[1]&$i&'.rar')
$i +=1
WEnd
$filename=$aPath[0]&'\'&$aPath[1]&$i&'.rar'
If not FileExists($aPath[0]&'\'&$aPath[1]&'.rar') Then $filename=$aPath[0]&'\'&$aPath[1]&'.rar'
Run ( $WinRARPath&' a -hp"'&$password&'" -m5 "'&$filename&'" "'&$aPath[1]&'"', '', @SW_HIDE )
EndFunc ;==>_winrar
Автор: 1MDI1
Дата сообщения: 24.04.2010 07:49
ALL
Столкнулся с проблемкой.
WIM сборка как моя так и AZJIO
не завелась на EEE-PC 2G. Точнее моя сборка доходила до момента загрузки
Цитата:
Please Wait
и уходит в перезагрузку, а сборка AZJIO
загрузилась но софт вообще не работал т.е. как бы завилса система.
Кто сталкивался, варианты решения данной проблемы, советы и т.д.
выслушаю и рассмотрю все варианты.

P.S. Калькулятор точно рабочий
P.S.S. Да и запустилась Эта от conty9
Автор: AZJIO
Дата сообщения: 24.04.2010 11:45
1MDI1
Нехватает памяти... Сборки обсуждаются в теме сборок.
Автор: NIKZZZZ
Дата сообщения: 24.04.2010 12:03
alexfocus

Цитата:
Приходится каждый раз запускать MountStorPE или лезть ы управление дисками и назначать букву.

Ключи MountStorPE:

Код: MountStorPE.exe {-parameter1 -paramter2...}
-h = (hide) hides output window and tray icon. Automatic mode is not possible.
-ng = (no Gui) hides output window.
-a = (auto) program remains active, tray icon is visible.
-nt = (no Tray) disables tray icon output of messages.

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677

Предыдущая тема: обновления в эксплорере с вирусом?


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