Вверх ↑
Этот топик читают: Гость
Ответов: 182
Рейтинг: 14
#1: 2023-07-05 16:40:21 ЛС | профиль | цитата
Всем привет.
Проверьте пожалуйста схему.
Есть две папки, в папке "D:\\1\\55\\" новые версии программ, в "D:\\2\\55\\" рабочая папка с программами для работы, их нужно обновить с закрытием их если они запущены.

Add(MainForm,12849244,28,35)
{
Width=641
Height=388
Color=16777215
}
Add(FileTools,13044546,532,112)
{
link(onEnd,16690951:doCompare,[])
link(FileName,1719112:Var3,[(538,82)])
link(NewFileName,2880956:Value,[(545,100)(446,100)(446,170)(258,170)])
}
Add(Button,7250514,63,105)
{
Left=160
Top=90
link(onClick,1008697:doEnum,[])
}
Add(Memory,2880956,252,126)
{
Default=String()
link(onData,16766553:doReplace,[])
}
Add(If_else,16690951,581,112)
{
Op2=Integer(1)
link(onTrue,16267119:doFindName,[])
}
Add(EnumProcess,16267119,658,91)
{
Point(Name)
Point(doFindName)
Point(onFind)
Point(onTerminateApp)
Point(onNotFind)
Point(onEndEnum)
link(Name,12866648:Value,[(671,82)(637,82)(637,189)(398,189)])
link(onFind,16267119:doKill,[(732,104)(732,66)(649,66)(649,111)])
link(onTerminateApp,12954076:doWork1,[(718,111)])
link(onNotFind,12954076:doWork2,[])
}
Add(Sleep,13846534,770,112)
{
Delay=5000
link(onSleep,13044546:doCopy,[(820,118)(820,44)(502,44)(502,125)])
}
Add(HubEx,12954076,714,112)
{
link(onEvent,13846534:doSleepMks,[])
}
Add(ArrayEnum,1008697,140,105)
{
onBreakEnable=0
link(onItem,11221229:doReplace,[(177,111)(177,132)])
link(Array,3698074:Array,[])
}
Add(StrList,3698074,126,49)
{
AddType=1
Strings=#0:|25:D:\\1\\55\\Программа1.exe|25:D:\\1\\55\\Программа2.exe|
Point(EndIdx)
}
Add(Replace,11221229,189,126)
{
SubStr="D:\\1\\55\\"
DestStr="D:\\2\\55\\"
link(onReplace,2880956:doValue,[])
link(Str,1719112:Var2,[])
}
Add(GetDataEx,1719112,189,77)
{
Angle=3
link(Data,1008697:Item,[(191,81)(181,81)(181,165)(146,165)])
}
Add(Replace,16766553,308,126)
{
SubStr="D:\\2\\55\\"
link(onReplace,12866648:doValue,[])
}
Add(Memory,12866648,392,126)
{
Default=String()
link(onData,13044546:doFileExists,[(478,132)(478,139)])
}

карма: 0

0
Ответов: 783
Рейтинг: 168
#2: 2023-07-05 20:25:33 ЛС | профиль | цитата
Stalevar писал(а):
Проверьте пожалуйста схему


Add(MainForm,12849244,91,35)
{
Width=412
Height=388
Color=16777215
}
Add(Button,7250514,84,91)
{
Left=170
Top=310
Width=70
Caption="Обновить"
link(onClick,1008697:doEnum,[])
}
Add(EnumProcess,16267119,224,70)
{
Point(Name)
Point(doFindName)
Point(onFind)
Point(onTerminateApp)
Point(onNotFind)
Point(onEndEnum)
link(onFind,16267119:doKill,[(263,83)(263,62)(214,62)(214,90)])
}
Add(ArrayEnum,1008697,161,91)
{
onBreakEnable=0
link(onItem,16267119:doFindName,[])
link(onEndEnum,2851081:doCopy,[(214,104)(214,118)])
link(Array,6966429:Array,[])
}
Add(Edit,16750354,301,49)
{
Left=180
Top=15
Width=155
Text="D:\\1\\55\\"
}
Add(Edit,13710923,343,49)
{
Left=180
Top=55
Width=155
Text="D:\\2\\55\\"
}
Add(Label,5387947,14,21)
{
Left=15
Top=20
Width=137
Height=17
Caption="Папка с новыми файлами"
}
Add(Label,11976163,14,49)
{
Left=15
Top=50
Width=79
Height=17
Caption="Рабочая папка"
}
Add(ListBox,6966429,147,35)
{
Left=25
Top=95
Width=305
Height=185
Strings=#14:Программа1.exe|14:Программа2.exe|11:notepad.exe|0:|
}
Add(DirTools,2851081,301,112)
{
AllowUnDo=1
link(Source,16750354:Text,[])
link(Dest,13710923:Text,[(314,89)(349,89)])
}

карма: 15

2
Голосовали:Stalevar, ric
Ответов: 182
Рейтинг: 14
#3: 2023-07-05 21:04:40 ЛС | профиль | цитата
Gunta, Спасибо большое
карма: 0

0
Ответов: 8921
Рейтинг: 823
#4: 2023-07-05 21:20:07 ЛС | профиль | цитата
Stalevar писал(а):
Спасибо большое
Вот здесь: https://forum.hiasm.com/getfile/39617
карма: 19

0
Ответов: 783
Рейтинг: 168
#5: 2023-07-06 08:56:41 ЛС | профиль | цитата
Stalevar, Если файлов в папке много или они большие, то лучше воспользоваться Robocopy.exe.

Add(MainForm,14528908,70,175)
{
Width=674
}
Add(FormatStr,15087759,294,189)
{
Mask="%1 %2 /MIR /R:2 /W:5"
link(onFString,12242680:doWork2,[])
link(Str1,1068128:Text,[])
link(Str2,6743093:Var3,[(307,75)])
}
Add(WinExec,12453211,357,175)
{
FileName="Robocopy.exe"
Mode=0
Point(doConsoleExec)
Point(onConsoleResult)
link(onConsoleResult,5714880:doCharset,[])
}
Add(Memo,8063006,469,189)
{
Width=658
Height=261
Align=5
ScrollBars=3
}
Add(Charset,5714880,413,189)
{
link(onCharset,8063006:doAdd,[])
}
Add(VisualStrings,1068128,294,140)
{
Lines=#11:D:\\1\\55\\|
Width=270
}
Add(MenuEx,4335112,154,182)
{
EndItemRight=0
Menu=#20:Остановить программы|22:Обновить рабочую папку|18:Помощь по Robocopy|
Bitmaps=[]
link(MenuItemIdx,12701330:doEvent,[])
}
Add(IndexToChanel,12701330,210,182)
{
Count=3
link(onEvent1,1141268:doSearch,[(249,188)(249,90)])
link(onEvent2,15087759:doString,[])
link(onEvent3,7300171:doData,[(277,202)(277,244)])
}
Add(FileSearch,1141268,280,84)
{
link(onSearch,6761913:doPart,[])
link(Dir,6743093:Var2,[])
}
Add(VisualStrings,10168351,287,28)
{
Lines=#11:D:\\2\\55\\|
Width=256
}
Add(FilePartElm,6761913,343,84)
{
link(onPart,16267119:doFindName,[])
}
Add(GetDataEx,6743093,287,70)
{
link(Data,10168351:Text,[])
}
Add(DoData,7300171,294,238)
{
Data=String(/?)
link(onEventData,12242680:doWork3,[(340,244)])
}
Add(HubEx,12242680,336,189)
{
link(onEvent,12453211:doConsoleExec,[])
}
Add(EnumProcess,16267119,406,63)
{
Point(Name)
Point(doFindName)
Point(onFind)
Point(onTerminateApp)
Point(onNotFind)
Point(onEndEnum)
link(onFind,16267119:doKill,[(445,76)(445,55)(396,55)(396,83)])
}

карма: 15

2
Голосовали:ric, Stalevar
Ответов: 182
Рейтинг: 14
#6: 2023-07-08 11:33:45 ЛС | профиль | цитата
Gunta,

Add(MainForm,12849244,91,35)
{
Width=412
Height=388
Color=16777215
}
Add(Button,7250514,84,91)
{
Left=170
Top=310
Width=70
Caption="Обновить"
link(onClick,1008697:doEnum,[])
}
Add(EnumProcess,16267119,224,70)
{
Point(Name)
Point(doFindName)
Point(onFind)
Point(onTerminateApp)
Point(onNotFind)
Point(onEndEnum)
link(onFind,16267119:doKill,[(263,83)(263,62)(214,62)(214,90)])
}
Add(ArrayEnum,1008697,161,91)
{
onBreakEnable=0
link(onItem,16267119:doFindName,[])
link(onEndEnum,2851081:doCopy,[(214,104)(214,118)])
link(Array,6966429:Array,[])
}
Add(Edit,16750354,301,49)
{
Left=180
Top=15
Width=155
Text="D:\\1\\55\\"
}
Add(Edit,13710923,343,49)
{
Left=180
Top=55
Width=155
Text="D:\\2\\55\\"
}
Add(Label,5387947,14,21)
{
Left=15
Top=20
Width=137
Height=17
Caption="Папка с новыми файлами"
}
Add(Label,11976163,14,49)
{
Left=15
Top=50
Width=79
Height=17
Caption="Рабочая папка"
}
Add(ListBox,6966429,147,35)
{
Left=25
Top=95
Width=305
Height=185
Strings=#14:Программа1.exe|14:Программа2.exe|11:notepad.exe|0:|
}
Add(DirTools,2851081,301,112)
{
AllowUnDo=1
link(Source,16750354:Text,[])
link(Dest,13710923:Text,[(314,89)(349,89)])
}
Если в папке назначения запущена программа любая другая которую не нужно обновлять, ругается "Папка уже используется"

FilesOnly - True - операция будет производиться только с файлами, если Source установлено в "*.*"
Text="*D:\\2\\55\\*" - так не работает

Редактировалось 1 раз(а), последний 2023-07-08 11:37:36
карма: 0

0
Ответов: 783
Рейтинг: 168
#7: 2023-07-08 15:50:19 ЛС | профиль | цитата
Stalevar писал(а):
Если в папке назначения запущена программа любая другая которую не нужно обновлять, ругается "Папка уже используется"

В таком виде не должно быть подобной проблемы.

Add(MainForm,12849244,112,77)
{
Width=412
Height=388
Color=16777215
}
Add(Button,7250514,112,140)
{
Left=170
Top=310
Width=70
Caption="Обновить"
link(onClick,901799:doSearch,[])
}
Add(Label,5387947,49,98)
{
Left=15
Top=20
Width=137
Height=17
Caption="Папка с новыми файлами"
}
Add(Label,11976163,49,126)
{
Left=15
Top=50
Width=79
Height=17
Caption="Рабочая папка"
}
Add(FileTools,11796644,490,126)
{
link(FileName,6061579:Value,[(496,187)(216,187)])
}
Add(FileSearch,901799,161,140)
{
link(onSearch,6061579:doValue,[])
link(Dir,9959767:Text,[])
}
Add(FilePartElm,15171211,266,140)
{
Point(Part)
link(onPart,16267119:doFindName,[])
}
Add(StrCat,7612324,427,133)
{
link(onStrCat,11796644:doCopy,[])
link(Str1,816859:Text,[])
link(Str2,15171211:Part,[(440,124)(419,124)(419,180)(272,180)])
}
Add(Edit,9959767,168,63)
{
Left=180
Top=15
Width=155
Text="D:\\1\\55\\"
}
Add(Edit,816859,427,63)
{
Left=180
Top=55
Width=155
Text="D:\\2\\55\\"
}
Add(EnumProcess,16267119,329,119)
{
Point(Name)
Point(doFindName)
Point(onFind)
Point(onNotFind)
Point(doTerminateApp)
Point(onTerminateApp)
link(onFind,16267119:doTerminateApp,[(368,132)(368,167)(319,167)(319,153)])
link(onNotFind,2862480:doEvent1,[])
link(onTerminateApp,2862480:doEvent2,[])
}
Add(Hub,2862480,385,133)
{
InCount=2
OutCount=1
link(onEvent1,7612324:doStrCat,[])
}
Add(Memory,6061579,210,140)
{
link(onData,15171211:doPart,[])
}

карма: 15

1
Голосовали:Stalevar
7
Сообщение
...
Прикрепленные файлы
(файлы не залиты)