Slimshady Skrevet 8. oktober 2005 Del Skrevet 8. oktober 2005 Kan noen forklare meg hvordan jeg kan lage en change directory dialog browser i VBA? Den skal begynne i en gitt katalog i strukturen, men skal kunne gi tilgang på hele datamaskinen og evt nettverket. Også over der den begynte. Bruker en løsning nå som alltid begynner på skrivebordet hver gang. Litt tungvint å bla seg frem til gitt katalog. Bruker SHGetPathFromIDList i shell32.dll biblioteket. Ønsker minst mulig add-ins og ekstra biblioteker. Lenke til kommentar
aadnk Skrevet 9. oktober 2005 Del Skrevet 9. oktober 2005 Jeg er redd det vil kreve svært mye arbeid å få dette implementert med den gjeldende løsningen du benytter. Du kan riktignok endre toppmappen med SHBrowseForFolder-APIet, men dette vil forhindre tilgang til de øvrige mappene. Kanskje du kommer bedre ut av å endre brukergrensesnittet en smule, eller lage en egen form for akkurat dette? Lenke til kommentar
Slimshady Skrevet 10. oktober 2005 Forfatter Del Skrevet 10. oktober 2005 OK. Takk for hjelpen. Finnes det ferdiglagede former som gjør den jobben? Lenke til kommentar
aadnk Skrevet 10. oktober 2005 Del Skrevet 10. oktober 2005 (endret) Jeg hadde litt tid til over, så jeg snekret sammen en klassekontroll og en modul som, via SHBrowseForFolder-APIet, kan definere oppstartsmappen. Det var visst ikke like komplekst som jeg hadde forventet. Bruken av denne klassemodulen burde være temmelig innlysende. Legg filene inn via File -> Import File, og klassen vil bli tilgjengelig således: Dim objBrowse As New clsFolderBrowse ' Sett oppstartslokasjonen objBrowse.StartLocation = SL_NETWORK ' Vår informasjonstekst i dialogboksen objBrowse.Description = "Velg en mappe" ' Vis URL'er objBrowse.Flags = BIF_BROWSEINCLUDEURLS ' Vis dialogboksen If objBrowse.Browse = Browse_OK Then ' Vis returnert sti MsgBox objBrowse.ResultPath End If BrowseClass.zip Endret 12. oktober 2005 av aadnk Lenke til kommentar
Slimshady Skrevet 10. oktober 2005 Forfatter Del Skrevet 10. oktober 2005 Flottings! Tusen takk Men hvordan setter jeg den til en vilkårlig startlokasjon? F.eks c:\blabla\test Lenke til kommentar
aadnk Skrevet 10. oktober 2005 Del Skrevet 10. oktober 2005 (endret) Men hvordan setter jeg den til en vilkårlig startlokasjon? Da kan du bruke følgende variabel: objBrowse.StartPath = "C:\blabla\test" Endret 10. oktober 2005 av aadnk Lenke til kommentar
Slimshady Skrevet 11. oktober 2005 Forfatter Del Skrevet 11. oktober 2005 Har du prøvd det? Det funker nemlig ikke. objBrowse.StartPath vil bare godta en av de angitte variablene: SL_FLAG_CREATE = &H8000 SL_FLAG_DONT_VERIFY = &H4000 SL_ADMINTOOLS = &H30 SL_ALTSTARTUP = &H1D SL_APPDATA = &H1A SL_BITBUCKET = &HA SL_COMMON_ADMINTOOLS = &H2F SL_COMMON_ALTSTARTUP = &H1D SL_COMMON_APPDATA = &H23 SL_COMMON_DESKTOPDIRECTORY = &H19 SL_COMMON_DOCUMENTS = &H2E SL_COMMON_FAVORITES = &H1F SL_COMMON_PROGRAMS = &H17 SL_COMMON_STARTMENU = &H16 SL_COMMON_STARTUP = &H18 SL_COMMON_TEMPLATES = &H2D SL_CONTROLS = &H3 SL_COOKIES = &H21 SL_DESKTOP = &H0 SL_DESKTOPDIRECTORY = &H10 SL_DRIVES = &H11 SL_FAVORITES = &H6 SL_FONTS = &H14 SL_HISTORY = &H22 SL_INTERNET = &H1 SL_INTERNET_CACHE = &H20 SL_LOCAL_APPDATA = &H1C SL_MYPICTURES = &H27 SL_NETHOOD = &H13 SL_NETWORK = &H12 SL_PERSONAL = &H5 SL_PRINTERS = &H4 SL_PRINTHOOD = &H1B SL_PROFILE = &H28 SL_PROGRAM_FILES = &H26 SL_PROGRAM_FILES_COMMON = &H2B SL_PROGRAM_FILES_COMMONX86 = &H2C SL_PROGRAM_FILESX86 = &H2A SL_PROGRAMS = &H2 SL_RECENT = &H8 SL_SENDTO = &H9 SL_STARTMENU = &HB SL_STARTUP = &H7 SL_SYSTEM = &H25 SL_SYSTEMX86 = &H29 SL_TEMPLATES = &H15 SL_WINDOWS = &H24 SL_CUSTOME = &HFFFF Lenke til kommentar
aadnk Skrevet 11. oktober 2005 Del Skrevet 11. oktober 2005 Å, beklager. Du må ha fått en eldre versjon av koden. I den eldste versjonen må du nemlig sette RootLocation til SL_CUSTOME før du kan bruke RootPath - i den nyeste behøver du simpelthen sette RootPath før det vil fungere. Jeg har lastet opp den nyeste utgaven i posten ovenfor. Lenke til kommentar
Slimshady Skrevet 11. oktober 2005 Forfatter Del Skrevet 11. oktober 2005 Er det jeg som er dum? Har oppdatert med de nye modulene. Setter ingen RootLocation eller StartLocation. Og setter disse slik: objBrowse.RootPath = "C:\" objBrowse.StartPath = "C:\Windows" Det virker ikke!! Lenke til kommentar
aadnk Skrevet 12. oktober 2005 Del Skrevet 12. oktober 2005 Er det jeg som er dum? Huff, det er nok jeg som er det. Det har dessverre sneket seg inn en meget uheldig bugg i clsFolderBrowse - linje 160 må erstattes med følgende: If LenB(Path) <> 0 Then Jeg har òg oppdatert filene. Beklager - jeg skulle selvsagt testet klassemodulen. Lenke til kommentar
Slimshady Skrevet 12. oktober 2005 Forfatter Del Skrevet 12. oktober 2005 Glimrings! Nå funker det Tusen takk for hjelp! Lenke til kommentar
Slimshady Skrevet 14. oktober 2005 Forfatter Del Skrevet 14. oktober 2005 Hei igjen! Går det an å kontrollere plassering og størrelse på det browse-vinduet? Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå