AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Text (Content) einer ms-help://-Adresse erhalten
Thema durchsuchen
Ansicht
Themen-Optionen

Text (Content) einer ms-help://-Adresse erhalten

Ein Thema von Daniel · begonnen am 15. Jan 2008 · letzter Beitrag vom 15. Jan 2008
Antwort Antwort
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#1

Text (Content) einer ms-help://-Adresse erhalten

  Alt 15. Jan 2008, 10:38
Moin,

ich habe die gültige URL einer lokalen Hilfe-Seite, beipsielsweise "ms-help://borland.bds5/devcommon/codeeditor_xml.html". Wie komme ich denn jetzt elegant an den zugehörigen Hilfe-Content?

Sicherlich kann ich den Weg über TWebBrowser.Navigate() gehen und mir dann den Source herausziehen, aber das sollte doch auch einfacher gehen. Einfach eine Indy-Komponente auf das Formular setzen hat leider nicht geklappt, da diese so ohne Weiteres nicht mit dem ms-help://-Protokoll klarkommt.

Jemand 'ne Idee, wie man dies bewerkstelligen könnte?
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: Text (Content) einer ms-help://-Adresse erhalten

  Alt 15. Jan 2008, 10:44
Versuch mal:
Delphi-Quellcode:
Uses ...,UrlMon;
function DownLoadInternetFile(const Source, Dest : String): Boolean;
begin
   Result := URLDownloadToFile(nil,PChar(Source),PChar(Dest),0,nil) = 0
end;

if DownLoadInternetFile('ms-help://borland.bds5/devcommon/codeeditor_xml.html', 'C:\codeeditor_xml.html') then
begin
   // ok
end;
Andreas
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Text (Content) einer ms-help://-Adresse erhalten

  Alt 15. Jan 2008, 11:41


Danke Dir vielmals.

Ich habe es jetzt so gelöst, dass ich die Daten in einem Stream erhalte:

Delphi-Quellcode:
function DownLoadInternetFile( const URL : WideString; const outStream : TStream ) : boolean;
var Stream : IStream;
    Buffer : array of byte;
  numBytes : longint;
        hr : HRESULT;
begin
  SetLength( Buffer, 8192 );

  if (URLOpenBlockingStreamW( NIL, PWideChar(URL), Stream, 0, NIL) = S_OK) then
  begin
     hr:= Stream.Read (@Buffer[0], SizeOf(Buffer), @numBytes );
     while (hr = S_OK) do
     begin
       outStream.Write( Buffer[0], numBytes );
       hr:= Stream.Read (@Buffer[0], SizeOf(Buffer), @numBytes );
     end;

    result:= TRUE;
  end
  else
    result:= FALSE;

  SetLength( Buffer, 0 );
end;
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Antwort Antwort


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 20:20 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