AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

IE-Favoriten

Ein Thema von synex · begonnen am 22. Jun 2003 · letzter Beitrag vom 20. Jul 2003
Antwort Antwort
Seite 1 von 2  1 2      
synex

Registriert seit: 14. Apr 2003
147 Beiträge
 
Delphi 6 Personal
 
#1

IE-Favoriten

  Alt 22. Jun 2003, 15:47
erstmal ich weis nicht ob das Forum das richtige ist, sonst bitte verschieben.

Also ich würde gerne in einem Programm die Möglichkeit einbinden, einen Favoriten auszuwählen. Also ein Fenster wo ich dann durch die Favoritenordner navigieren kann und mir einen Favoriten aussuchen kann. Jetzt hab ich mal das Internet durchsucht und folgenden Tipp gefunden:
Delphi-Quellcode:
uses
  ShlObj, ActiveX;

function GetIEFavourites(const favpath: string): TStrings;
var
  searchrec: TSearchRec;
  str: TStrings;
  path, dir, FileName: string;
  Buffer: array[0..2047] of Char;
  found: Integer;
begin
  str := TStringList.Create;
  // Get all file names in the favourites path
  path := FavPath + '\*.url';
  dir := ExtractFilepath(path);
  found := FindFirst(path, faAnyFile, searchrec);
  while found = 0 do
  begin
    // Get now URLs from files in variable files
    Setstring(FileName, Buffer, GetPrivateProfilestring('InternetShortcut',
      PChar('URL'), nil, Buffer, SizeOf(Buffer), PChar(dir + searchrec.Name)));
    str.Add(FileName);
    found := FindNext(searchrec);
  end;
  // find Subfolders
  found := FindFirst(dir + '\*.*', faAnyFile, searchrec);
  while found = 0 do
  begin
    if ((searchrec.Attr and faDirectory) > 0) and (searchrec.Name[1] <> '.') then
      str.Addstrings(GetIEFavourites(dir + '\' + searchrec.Name));
    found := FindNext(searchrec);
  end;
  FindClose(searchrec);
  Result := str;
end;

procedure FreePidl(pidl: PItemIDList);
var
  allocator: IMalloc;
begin
  if Succeeded(SHGetMalloc(allocator)) then
  begin
    allocator.Free(pidl);
    {$IFDEF VER100} 
    allocator.Release;
    {$ENDIF} 
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  pidl: PItemIDList;
  FavPath: array[0..MAX_PATH] of Char;
begin
  if Succeeded(ShGetSpecialFolderLocation(Handle, CSIDL_FAVORITES, pidl)) then
  begin
    if ShGetPathfromIDList(pidl, FavPath) then
      ListBox1.Items := GetIEFavourites(StrPas(FavPath));
    // The calling application is responsible for freeing the PItemIDList-pointer
    // with the Shell's IMalloc interface
    FreePIDL(pidl);
  end;
end;
So weit so gut in der Listbox stehen jetzt die ganzen URLs irgendwie ungeordnet drinnen. Ich will ja aber den namen des Favoriten und die dazugehörige URL haben und außerdem am besten so geordnet wie sie auch im IE sind. Leider hab ich erhlichgesagt kein schimmer was da vor sich geht bei dem oben geschriebenen Codeschnipsel und von daher bin ich recht ratlos

Wäre echt super wenn mr einer dabei weiterhelfen könnte
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#2
  Alt 22. Jun 2003, 15:51
Hallo,

da wirst Du aber mit grosser Warscheinlichkeit mit der ListBox nicht glücklich. Du solltest das ganze mit dem TreeView machen. Da hat man eben die Knotenpunkte zur Verfügung, mit denen man praktisch wie in der ganzen Ordner-Struktur runnavigieren kann. Eventuell würde noch die ListView in Frage kommen, aber TreeView wäre schon praktischer. Aber bei der ListBox sehe ich im Moment noch schwarz.

Grüsse, Daniel
  Mit Zitat antworten Zitat
synex

Registriert seit: 14. Apr 2003
147 Beiträge
 
Delphi 6 Personal
 
#3
  Alt 22. Jun 2003, 15:54
Ich hab das jetzt einfach mal so aus der Webseite rauskopiert und da stand das eben so. Wie kann ich denn rausfinden wie ich die anordnen soll beim treeview? Und wie find ich die Namen der Favoriten raus?

Aber trotzdem danke
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#4
  Alt 22. Jun 2003, 15:59
Hallo,

falls Du die Jedis hast, schau dochmal auf dem Reiter Jv Utils und dort nach der Komponente JvFavoritesButton. Vielleicht tut es der auch schon, aber der zeigt auch nur die ganzen Ordner und Links wie ne Art Startmenü an. Die url bekommst Du damit nicht.

Grüsse, Daniel
  Mit Zitat antworten Zitat
Benutzerbild von Duffy
Duffy

Registriert seit: 19. Mär 2003
Ort: Wuppertal
835 Beiträge
 
Delphi 3 Standard
 
#5
  Alt 22. Jun 2003, 16:19
Hallo synex,
ich kann mich Daniel nur anschließen, falls Du das suchst, was im Anhang ist.
bye
Angehängte Dateien
Dateityp: zip beispiel.zip (268,2 KB, 31x aufgerufen)
Künftige Generationen wollen ihre Fehler selber machen.
Jedes Programm wird nie das können, was Du wirklich brauchst.
Das Gegenteil von gut ist gut gemeint
-----
  Mit Zitat antworten Zitat
synex

Registriert seit: 14. Apr 2003
147 Beiträge
 
Delphi 6 Personal
 
#6
  Alt 22. Jun 2003, 20:43
nene also tut mir leid aber es geht um Folgendes:

Ich will in einem Popup-Menü die Auswahl "Neu aus Favoriten" bereitstellen. D.h. Man klickt dort, sucht sich einen Favoriten aus und die URL wird in nen ValueListEditor geschrieben. Von daher hilft mir der Button nur zur Not weiter. Aber die URL muss schon sein sorry.

trotzdem: wo finde ich den diese "Jedis" ??
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#7
  Alt 22. Jun 2003, 20:47
Hallo,
Zitat von synex:
trotzdem: wo finde ich den diese "Jedis" ??
http://jvcl.sourceforge.net

Grüsse, Daniel
  Mit Zitat antworten Zitat
synex

Registriert seit: 14. Apr 2003
147 Beiträge
 
Delphi 6 Personal
 
#8
  Alt 22. Jun 2003, 21:14
ah vielen dank! Werd ich mir dann bald mal anschauen.

Ich habe grade auf torry.net die TFavoritesMenu v.1.1-Komponente dl hier gefunden. Die tut genau das was ich will, sie listet die Favoriten auf und bei nem Klick darauf gibt sie die URL wieder. Aber ich krieg sie nicht ans Laufen ((( Die EXE-Demo dabei zeigt wies mal aussehen soll, aber beim Code dazu krieg ich immer den Fehler dass er die Klasse nicht finden kann.
Kann mir da vielleicht noch einer weiterhelfen? Ich weis das gehört nicht in das Thema hier aber ich glaub ich mach was falsch beim Installieren der Komponente.
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#9
  Alt 22. Jun 2003, 21:17
Hallo,

in dem Demo-code steht nur:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  FavoritesMenu.Refresh;
end;

procedure TForm1.FavoritesMenuUrlClick(Sender: TObject; Url: String);
begin
  Messagedlg('Click: ' + Url, mtinformation, [mbok], 0);
end;
Hast Du es genau damit versucht, oder anders?

Grüsse, Daniel
  Mit Zitat antworten Zitat
synex

Registriert seit: 14. Apr 2003
147 Beiträge
 
Delphi 6 Personal
 
#10
  Alt 22. Jun 2003, 21:29
ich hab genau den demo-code compilieren wollen. Und da sagt er mir die klasse wurde nicht gefunden

kannst du mir vielleicht sagen wie genau du die Komponente installiert hast?? Weil ich glaube daran liegts bei mir
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz