Вверх ↑
Ответов: 106
Рейтинг: 0
#1: 2021-09-28 14:44:26 ЛС | профиль | цитата
Netspirit, Даж отдельно на Дэлфи пришлось писать... Огромное спасибо дружище, очень выручил!

--- Добавлено в 2021-09-28 14:57:23

Netspirit писал(а):
Было бы неплохо добавить такой метод в DirTools или Dir.

Согласен, ведь мне нужно получить полный сетевой путь к файлу или к папке с этим файлом... Ща сижу думаю, как твою схемку прикрутить...

Пока вроде так получилось:
Add(InlineCode,11970995,532,112)
{
WorkPoints=#52:doGetNetPath=Получить полный путь для сетевого диска|
EventPoints=#8:onResult|7:onError|
DataPoints=#5:Data1|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|4:uses|29: Windows, KOL, Share, Debug;|0:|4:type|29: THiAsmClass = class(TDebug)|11: private|0:|10: public|23: Data1: THI_Event;|26: onResult: THI_Event;|28: onError: THI_Event; |60: procedure doGetNetPath(var _Data: TData; Index: Word);|6: end;|0:|0:|106:function WNetGetConnection(lpLocalName: PChar; lpRemoteName: PChar; var lpnLength: DWord): DWord; stdcall;|47: external 'mpr.dll' name 'WNetGetConnectionA';|0:|14:implementation|0:|0:|0:|66:procedure THiAsmClass.doGetNetPath(var _Data: TData; Index: Word);|3:var|12: S: string;|14: R, L: DWord;|33: Path: array [0..1023] of Char; |5:begin|36: S := ReadString(_Data, Data1, '');|2: |50: L := Length(Path); // Размер буфера lpRemoteName|47: R := WNetGetConnection(Pointer(S), @Path, L);|2: |22: if R = NO_ERROR then|7: begin|14: S := Path;|41: _hi_CreateEvent(_Data, @onResult, S);|5: end|6: else|50: _hi_CreateEvent(_Data, @onError, Integer(R)); |2: |33: //_hi_OnEvent(onResult, 'abc');|4:end;|0:|0:|0:|0:|4:end.|
link(onResult,2839362:doString,[])
link(onError,9344611:doMessage,[(585,125)(585,209)])
link(Data1,4340770:Part1,[(538,100)(426,100)(426,163)(377,163)])
}
Add(Edit,8100219,203,105)
{
Left=10
Top=35
Width=670
Text=""
link(onChange,2512878:doCompare,[])
}
Add(Edit,10006956,665,112)
{
Left=10
Top=75
Width=670
Text=""
}
Add(Message,9344611,665,203)
{
Caption="Ошибка"
Icon=3
}
Add(DropFile,15991294,140,105)
{
link(onDropFile,8100219:doText,[])
}
Add(StrMask,2512878,280,105)
{
Mask="*?:*"
link(onFalse,9101286:doWork1,[(648,111)])
link(onTrue,4340770:doSplit,[])
}
Add(MultiStrPart,4340770,371,112)
{
Char="\"
Count=1
link(onSplit,2231758:doValue,[])
}
Add(Memory,2231758,448,112)
{
link(onData,11970995:doGetNetPath,[])
}
Add(FormatStr,2839362,602,112)
{
Mask="%1\%2"
link(onFString,9101286:doWork2,[])
link(Str2,2231758:Value,[(615,100)(575,100)(575,161)(454,161)])
}
Add(HubEx,9101286,644,112)
{
link(onEvent,10006956:doText,[])
}
Add(InfoTip,16131598,266,42)
{
Info=#34:Сетевой диск есть в строке или нет|
Height=109
}

карма: 0

0
Редактировалось 2 раз(а), последний 2021-09-28 15:09:33