Значит, у меня к вам следующий вопрос ©
Мне нужно просматривать содержимое папок компьютеров в локальной сетке.
Вот хорошая команда:
Код:
var
Searchrec: Tsearchrec;
s:string;
begin
memo2.Clear;
FindFirst('C:\*.*', FaAnyfile, SearchRec);
if (SearchRec.Attr and faDirectory)<>0 then s:=Edit1.Text else s:=Edit1.Text;
memo2.Lines.Add(s+SearchRec.Name);
while FindNext(SearchRec) = 0 do
begin
if (SearchRec.Attr and faDirectory)<>0 then s:=Edit1.Text else s:=Edit1.Text;
if (SearchRec.Attr and faHidden) <> 0 then
memo2.Lines.Add('[h]'+s+SearchRec.Name+'[/h]')
else
memo2.Lines.Add(s+SearchRec.Name);
end;
Эта команда просматривает содержимое, как моего компьютера, так и компьютеров в локальной сети, например если сделать так:
FindFirst('//RemoteCompName/Folder/*.*', FaAnyfile, SearchRec);
То нормально отобразится содержимое папки Folder удалённого компьютера с именем RemoteCompName
Моя проблема в следующем, если попробовать просмотреть содержимое самого компьютера, а не какой то папки в нём, то он ничего не отображает, вот например:
FindFirst('//RemoteCompName/*.*', FaAnyfile, SearchRec);
Не отображается ничего, хотя там есть папки, файлы и т.д… То есть корневую директорию удалённого компьютера он не просматривает, зато содержимое папок этого самого удалённого компьютера он выводит нормально.
В общем в чём ошибка? И можно ли в данном коде это устранить?
+++++++++++++++++++++++++
И вопрос номер два, по поводу самоуничтожения программы, в справочнике DRKB был дан один единственный пример удаления своей программы через .bat файл:
Код:
var f: textFile;
FileName: string;
begin
FileName := changefileext(paramstr(0), '.bat');
assignFile(f, FileName);
rewrite(f);
writeln(f, ':1');
writeln(f, format('Erase "%s"', [paramstr(0)]));
writeln(f, format('If exist "%s" Goto 1', [paramstr(0)]));
writeln(f, format('Erase "%s"', [FileName]));
closefile(f);
ShellExecute(Handle, 'Open', PChar(FileName), nil, nil, sw_hide);
end;
Это работает исключительно, если в пути до моего .exe файла нету русских символов.
То есть если файл находится тут:
C:\программы\project1.exe
То данный код не сработает, собственно есть ли альтернативы? Как в данном случае удалить программу?