VlVlV
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Цитата: без знания языков программирования VBScript и JScript | я их тоже не знаю. просто имею общее представление. все описания функций и примеры их использования ищу в интернете. чаще всего на http://stackoverflow.com/ Цитата: Двойная так двойная, с учётом уровня своих знаний я так и поступлю | все правильно, начните с простых вещей. потом постепенно по мере знакомства с новыми функциями ДО, будете усовершенствовать рабочее пространство. ДО ведь - это конструктор из которого можно собрать очень многое. вот смотрите пример выполнения одних и тех же задач двумя способами, причем в первом случае у меня было недостаточно знаний, чтобы сделать как-то по-другому, и плюс к этому в ДО не было скриптов. эти 2 способа разделяют несколько лет. резервное копирование виртуальных машин было (1-й способ, старый) Код: @set name={dlgchooseS|Choose virtual machine to restore:|Windows 7=Windows 7+Windows 7 x64=Windows 7 x64+Windows Server 2003 R2 Enterprise Edition=Windows Server 2003 R2 Enterprise Edition+Windows Server 2008 x64=Windows Server 2008 x64+Windows XP Professional=Windows XP Professional} Delete FORCE NORECYCLE QUIET "{alias|appdata}\VMware\Virtual Machines\{$name}" Copy "D:\Virtual Machines\{$name}" TO "{alias|appdata}\VMware\Virtual Machines" | есть существенный минус: нельзя скопировать все или выборочные машины, поэтому приходилось запускать функцию несколько раз. стало (2-й способ, новый) Код: Option Explicit Function OnClick(ByRef ClickData) Dim dlg, files, i, k Set files = DOpus.NewVector("\*.nvram", "\*.vmdk", "\*.vmsd", "\*.vmx", "\*.vmxf") Set dlg = ClickData.Func.Dlg dlg.title = "VMware Virtual Machines" dlg.message = "Check virtual machine(s) to backup:" dlg.buttons = "OK|Cancel" dlg.choices = DOpus.NewVector("Windows 7", "Windows 7 x64", "Windows Server 2003 R2 Enterprise Edition", "Windows Server 2008 x64", "Windows XP Professional") dlg.list = DOpus.NewVector dlg.Show If dlg.result = 1 Then For i = 0 To dlg.choices.size - 1 For k = 0 To files.size - 1 If dlg.list(i) Then ClickData.Func.Command.RunCommand("Copy FILE WHENEXISTS=keepnewer ""{alias|appdata}\VMware\Virtual Machines\" & dlg.choices(i) & files(k) & """ TO ""D:\Virtual Machines\" & dlg.choices(i) & """") End If Next Next End If End Function | минусов нет. можно копировать любое сочетание машин. кстати, обратите внимание на дроп-даун, использованный в первом способе. в Вашем случае - это еще один вариант выполнения поставленной задачи, и очень даже неплохой. пункты, прописанные в выпадающем списке очень удобно крутятся колесом мыши при появлении диалогового окна с ним, что существенно ускоряет процесс работы. количество пунктов здесь не ограничивается единицами. до сих пор у меня есть кнопка-дефрагментатор, использующая простой дроп-бокс. Код: @disablenosel @filesonly @leavedoswindowopen @nodeselect @set mode={dlgchooseS|Select mode:|Analyze file(s)=-a+Defragment file(s)=} contig {$mode} {filepath} |
|