Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Verzeichnis auf anderem Rechner öffnen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
11.10.2004, 12:09 Uhr
OnkelHotte



Hallo,
ich will auf einem anderen Rechner ein Verzeichnis auswählen können. Mit diesem Code kann ich ein Verzeichnis auf MEINEM Rechner auswählen:


Code:
BROWSEINFO bi = { 0 };
bi.lpszTitle = _T("Wählen Sie bitte das Verzeichnis aus :");
LPITEMIDLIST pidl = SHBrowseForFolder (&bi);
if (pidl != 0)
{
   TCHAR path[MAX_PATH];
   if (SHGetPathFromIDList(pidl, path))
   {
       AfxMessageBox(path);
   }

   IMalloc * imalloc = 0;
   if (SUCCEEDED(SHGetMalloc(&imalloc)))
  {
    imalloc->Free (pidl);
    imalloc->Release();
  }
}



Das klappt auch fein, allerdings will ich auf einen anderen Rechner. Die IP habe ich. Mit dem CFileDialog kann ich so Dateien auf einem anderen Rechner öffnen:

Code:
CFileDialog Browser(true,"zip",0,NULL,"*.zip",this);
CString Path;

Path = "\\\\";
Path += GetIPAddress();
Path += "\\c$";

Browser.m_ofn.lpstrInitialDir = Path;
Browser.DoModal();



Aber wie komme ich mit BROWSEINFO auf einen anderen Rechner? Da gibt es den Wert pIDLRoot, aber wie setze ich den richtig? In jedem Sample wird der auf NULL gesetzt

Bis denne Mail,
OnkelHotte
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
11.10.2004, 13:43 Uhr
OnkelHotte



So, ich hab im Netz eine Funktion gefunden, die einen char* in einen pidl umwandelt:


Code:


LPITEMIDLIST ConvertPathToLpItemIdList(const char *pszPath)
{
    LPITEMIDLIST  pidl;
    LPSHELLFOLDER pDesktopFolder;
    OLECHAR       olePath[MAX_PATH];
    ULONG         chEaten;
    ULONG         dwAttributes;
    HRESULT       hr;

    if (SUCCEEDED(SHGetDesktopFolder(&pDesktopFolder)))
    {
        MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, pszPath, -1, olePath, MAX_PATH);
        hr = pDesktopFolder->ParseDisplayName(NULL, NULL, olePath, &chEaten, &pidl, &dwAttributes);
        pDesktopFolder->Release();
    }
    return pidl;
}




Danach einfach


Code:

bi.pidlroot = ConvertPathToLpItemIdList (Pfad);



angeben und schon lüppt das
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: