Форум: "Основная";
Текущий архив: 2007.10.21;
Скачать: [xml.tar.bz2];
ВнизКак открыть веб-папку программно? Найти похожие ветки
← →
clickmaker © (2007-07-13 15:06) [0]Ту что с SharePoint, Web DAV. В ИЕ она открывается путем установки флажка в диалоге Open, либо через скрипт со спаном специального вида.. а вот программно как?
в WebBrowser.Navigate параметров не нашел...
← →
Lacmus © (2007-07-27 16:22) [1]EXPLORER.EXE ,::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\::{BDEADF00-C265-11d0-BCED-00A0C90AB50F}\путь папки
← →
clickmaker © (2007-07-27 16:31) [2]
> [1] Lacmus © (27.07.07 16:22)
ого! про гуиды была у меня мысля, но до такого не допер
Спасибо
← →
clickmaker © (2007-07-27 16:45) [3]а нет... рано радовался.
Так работает только, если есть такая папка в NetHood, т.е. либо открывали ее уже, либо надо создавать сначала
← →
Lacmus © (2007-07-27 17:53) [4]Есть предположение, что Internet Explorer создает при открытии папку в NetHood
← →
clickmaker © (2007-07-30 13:39) [5]
> [4] Lacmus © (27.07.07 17:53)
> Есть предположение, что Internet Explorer создает
создает
но только после успешного логина на веб-шару
Должен же быть какой-то программный способ создания ярлыка на веб-папку, аналог мастера Add network place...
← →
Rouse_ © (2007-07-31 13:00) [6]My Network Places?
так этож ярлыки:program GetNetHoodData;
{$APPTYPE CONSOLE}
uses
Windows, SysUtils, ShlObj, ActiveX, ComObj;
const
CSIDL_NETHOOD = $13;
Function GetFileNamefromLink(LinkFileName: String): String;
var
MyObject: IUnknown;
FileInfo: TWin32FINDDATA;
WidePath: array [0..MAX_PATH - 1] of WideChar;
Buff: array [0..MAX_PATH - 1] of Char;
begin
MyObject := CreateComObject(CLSID_ShellLink);
StringToWideChar(LinkFileName, WidePath, SizeOf(WidePath));
(MyObject as IPersistFile).Load(WidePath, STGM_READ);
(MyObject as IShellLink).GetPath(Buff, MAX_PATH, FileInfo, SLGP_UNCPRIORITY);
Result := Buff ;
end;
var
Path: ShortString;
SR: TSearchRec;
begin
CoInitialize(nil);
SetLength(Path, 255);
if SHGetSpecialFolderPath(0, @Path[1],
CSIDL_NETHOOD, False) then
begin
Path := IncludeTrailingPathDelimiter(String(PChar(@Path[1])));
FindFirst(Path + "*.*", faAnyFile, SR);
repeat
if DirectoryExists(Path + SR.Name) then
Writeln(SR.Name + " : " +
GetFileNamefromLink(Path + SR.Name));
until FindNext(SR) <> 0;
end;
Readln;
end.
← →
clickmaker © (2007-07-31 13:37) [7]сделал через создание ярлыка на папку в nethood с последующим открытием.
← →
Lacmus © (2007-07-31 16:39) [8]>clickmaker © (30.07.07 13:39) [5]
uses
ActiveX, ComObj, ShlObj;
const
csWebFolders = "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\::{BDEADF00-C265-11d0-BCED-00A0C90AB50F}";
procedure CreateWebFolder(aParent: HWnd; const aWebFolder: WideString);
var
BindCtx: IBindCtx;
BindOpts: BIND_OPTS;
dwFlags, dwNumChars: DWord;
DesktopFolder: IShellFolder;
MAlloc: IMAlloc;
WebFolderPIDL: PItemIDList;
wsPath: WideString;
begin
dwFlags := 0;
OleCheck(SHGetDesktopFolder(DesktopFolder));
OleCheck(CreateBindCtx(0, BindCtx));
FillChar(BindOpts, SizeOf(BindOpts), 0);
BindOpts.cbStruct := SizeOf(BindOpts);
BindOpts.grfMode := STGM_CREATE;
OleCheck(BindCtx.SetBindOptions(BindOpts));
wsPath := csWebFolders + "\" + aWebFolder;
OleCheck(DesktopFolder.ParseDisplayName(aParent, Pointer(BindCtx), PWideChar(wsPath),
dwNumChars, WebFolderPIDL, dwFlags));
OleCheck(SHGetMAlloc(MAlloc));
MAlloc.Free(WebFolderPIDL)
end;
← →
clickmaker © (2007-08-01 10:56) [9]
> [8] Lacmus © (31.07.07 16:39)
да, это более изящный метод, чем создание ярлыка вручную )
спасибо еще раз
← →
$OOFFOO (2007-08-10 09:35) [10]ого! а мастера тоже задают вопросы?!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2007.10.21;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.037 c