Durchsuchen Button

MorVis

Grünschnabel
hi,
das ist jetzt wahrscheinlich eine ziemlich dumme Frage, aber ich bin noch ziemlich neu auf diesem Gebiet und habe auch nichts dazu gefunden....
Also ich möchte einfach nur einen Button mit dem man der Benutzer einen Pfad suchen kann und der dann gespeichert wird, sowie man das von Installations Programmen kennt.
Vielen dank schon mal im Vorraus.
 
Also ich möchte einfach nur einen Button mit dem man der Benutzer einen Pfad suchen kann und der dann gespeichert wird, sowie man das von Installations Programmen kennt.

Ich möchte einen Button der mir daraus einen deutschen Satz macht....
 
lol
wenn du ein Programm installierst, musst du doch einen Pfad angeben. Und damit du nicht den ganzen Pfad per Hnd eintippen musst, ist meistens ein "Dursuchen..." Butto daneben. Dann öffnet sich ein Fenster mit den ganzen Ordnern deines PCs und du kanns dir einen aussuchen. Und der wird dann logischer weise in einer Variable gespeichert.
Kannst du mich jetzt verstehen? :(
 
Ja verstehen kann ich's - aber leider nicht beantworten. :sad:
Da ich aber vor dem selben Problem in VB bald stehen werde würde mich das auch interessieren. Ansonsten mußt du warten, bis ich soweit bin.
Da es sich um ein privates Projekt handelt, kann das nur eine Frage von Monaten sein :(
 
Also, einen Button, der suchen kann, kann ich auch nicht anbieten. Benutz doch WINSHELLAPI LPITEMIDLIST WINAPI SHBrowseForFolder( LPBROWSEINFO lpbi ); . SHBrowseForFolder() öffnet einen Verzeichnis-Aussuch-Dialog. Das ist in der MSDN Lib dokumentiert (SHBrowseForFolder()-Doku). Und richte es dann so ein, dass die Funktion auf Buttondruck aufgerufen wird.

Wenn du noch Fragen zu SHBrowseForFolder() hast, sag Bescheid.
 
Scheinbar stehe ich da ziemlich auf dem Schlauch!
Ich steige in der MSDN absolut nicht durch, was ich dann mit dem zurückgegebenen LPITEMIDLIST machen soll. Ich habe es probiert, aber in der Liste stand nur unverständliches Zeug. Der erste Eintrag (pData im Code) war nicht lesbar, der 2. Eintrag war '/C:\' un die folgenden Einträge waren alle '1'. Der letzte Eintrag war wieder unlesbar.
Bitte, vielleicht kann mir einer sagem was ich da falsch mache und wie es richtig geht.
Und so mache ich es jetzt:
Code:
     	BROWSEINFO bi;
     	LPITEMIDLIST pIdList;
     	char cPath[MAX_PATH];
     	unsigned char *pData;
     	int cb;
     
     //	CoInitialize(NULL);
     
     	bi.hwndOwner = this->m_hWnd;
     	bi.pidlRoot = NULL;
     	bi.pszDisplayName = cPath;
     	bi.lpszTitle = _T("Pfad auswählen");
     	bi.ulFlags = BIF_RETURNONLYFSDIRS;
     	bi.lpfn = NULL;
     	bi.lParam = 0;
     	bi.iImage = 0;
     
     	pIdList = SHBrowseForFolder(&bi); 
     
     	if(pIdList == NULL)
     	  return;
     
     	pData = &(pIdList->mkid.abID[0]);
  	cb = pIdList->mkid.cb; 
     
     	while(cb != 0)
  	{
     		   pIdList = (LPITEMIDLIST) (((LPBYTE) pIdList) + cb); 
     		   pData = &(pIdList->mkid.abID[0]);
     		   cb = pIdList->mkid.cb;
  	}
Schonmal DANKE!

jokey2
 
Hab' die Antwort in einem anderen Thread gefunden:
Code:
 SHGetPathFromIDList(pIdList, cPath);
bis zum nächstn Mal,

jokey2
 
Zurück