Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как открыть веб-папку программно? [WinXP]


clickmaker ©   (2007-07-13 15:06:00) 

Ту что с SharePoint, Web DAV. В ИЕ она открывается путем установки флажка в диалоге Open, либо через скрипт со спаном специального вида.. а вот программно как?
в WebBrowser.Navigate параметров не нашел...


$OOFFOO   (2007-08-10 09:35:00) [1]

ого! а мастера тоже задают вопросы?!


clickmaker   (2007-08-01 10:56:00) [2]


> [8] Lacmus ©   (31.07.07 16:39)

да, это более изящный метод, чем создание ярлыка вручную )
спасибо еще раз


Lacmus   (2007-07-31 16:39:00) [3]

>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-07-31 13:37:00) [4]

сделал через создание ярлыка на папку в nethood с последующим открытием.


Rouse_   (2007-07-31 13:00:00) [5]

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-30 13:39:00) [6]


> [4] Lacmus ©   (27.07.07 17:53)
> Есть предположение, что Internet Explorer создает

создает
но только после успешного логина на веб-шару
Должен же быть какой-то программный способ создания ярлыка на веб-папку, аналог мастера Add network place...


Lacmus   (2007-07-27 17:53:00) [7]

Есть предположение, что Internet Explorer создает при открытии папку в NetHood


clickmaker   (2007-07-27 16:45:00) [8]

а нет... рано радовался.
Так работает только, если есть такая папка в NetHood, т.е. либо открывали ее уже, либо надо создавать сначала


clickmaker   (2007-07-27 16:31:00) [9]


> [1] Lacmus ©   (27.07.07 16:22)

ого! про гуиды была у меня мысля, но до такого не допер
Спасибо


Lacmus   (2007-07-27 16:22:00) [10]

EXPLORER.EXE ,::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\::{BDEADF00-C265-11d0-BCED-00A0C90AB50F}\путь папки


Наверх

Титульная страница Поиск, карта сайта Написать письмо