Netspirit, Даж отдельно на Дэлфи пришлось писать... Огромное спасибо дружище, очень выручил! --- Добавлено в 2021-09-28 14:57:23Netspirit писал(а): Было бы неплохо добавить такой метод в 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 }
Редактировалось 2 раз(а), последний 2021-09-28 15:09:33
|