Avatar billede hugopedersen Nybegynder
20. september 2012 - 11:19 Der er 13 kommentarer og
1 løsning

Åbne en URL fra Delphi

Jeg har tidligere anvendt nedenstående til at åbne en URL med. Men jeg må have været heldig med de URLs jeg har arbejdet med for jeg finder nu ud af at hvis der ikke står www først, så vil Windoze ikke åbne den.
Nogen der har en anden metode eller evt. en metode til at kontrollere og justere en URL under indtastning. Altså fjerne ugyldige tegn og fylde manglende på.

function TFiles.ExecuteNormal(const aFile: string; aParam: string = ''): integer;
var
  SEInfo: TShellExecuteInfo;
begin
  ZeroMemory(@SEInfo, sizeof(SEInfo));
  with SEInfo do
    begin
      cbSize := SizeOf(SEInfo);
      fMask := SEE_MASK_INVOKEIDLIST;
      Wnd := Application.Handle;
      lpVerb := 'open';
      lpFile := PChar(aFile);
      lpParameters := PChar(aParam) ;
      nShow := SW_NORMAL;
    end;
  ShellExecuteEX(@SEInfo);
  Result := ExitCode;
end;
Avatar billede arne_v Ekspert
20. september 2012 - 16:14 #1
Det boer ikke vaere et krav at host navn skal starte med www..

Angiver du http:// prefix ?

Hvis ikke saa proev det.
Avatar billede hugopedersen Nybegynder
20. september 2012 - 19:49 #2
Det er lige det der er hele humlen - jeg kan ikke være sikker på hvordan folk taster den URL ind i databasen.
Og at prøve at forklare folk at de altså skal gøre tingene ens er som ... ja som et eller andet umuligt :-)
Avatar billede arne_v Ekspert
20. september 2012 - 19:54 #3
Test paa om URL starter med http:// og hvis ikke saa tilfoejer koden den inden du shell executer.

Hvis du understoetter andre protokoller end HTTP skal koden lige finpudse lidt, men ....
Avatar billede mbsnet Nybegynder
21. september 2012 - 15:42 #4
protocol://user:pass@subdomain.domain.topdomain:port/path/filename.ext?query#bookmark

Hvis url ikke indeholder protokol indikator "://" så tilføj "http://" til begyndelsen.

kig evt på idHttp.get(aUrl)

//mbs
Avatar billede hugopedersen Nybegynder
27. september 2012 - 11:09 #5
Indtil videre har jeg brugt arne_v's forslag, men jeg lader lige stå åbent lidt for at se om ikke der skulle komme en lidt smartere måde at styre det på
Avatar billede hugopedersen Nybegynder
07. november 2012 - 10:04 #6
Jeg må hellere få nogle svar så jeg kan lukke dette.
Avatar billede arne_v Ekspert
07. november 2012 - 12:43 #7
svar
Avatar billede hugopedersen Nybegynder
13. november 2012 - 13:25 #8
Har ikke hørt fra andre så værsgo'  :-)
19. januar 2014 - 11:45 #9
Hej Hugo og Arne

Undskyld at jeg blander mig, men denne tråd er det tætteste jeg kan komme på mit problem.

Når jeg sender en e-mail fra en application skriver jeg blot.

procedure TForm83.SendMailClick(Sender: TObject);
begin
  if Email.Text <> '' then
    ShellExecute(Handle,'open', PChar('Mailto:' + Email.Text), nil, nil, SW_SHOWNORMAL);
end;

Så åbnes Outlook med den korrekte email adresse.


Er der en lige så simpel metode til at at åbne en hjemmeside i IE, eller hvilken webbrowser man nu har valgt som default.
Avatar billede hugopedersen Nybegynder
19. januar 2014 - 12:22 #10
Den rutine jeg startede mit spørgsmål med gør det med de begrænsninger jeg har kæmpet med.

Hvis du har en fuld  http://www.etellerandetsted.dk så virker det perfect
19. januar 2014 - 12:44 #11
Hej Hugo.

Det tror jeg gerne, men det er mange linier i forhold til den ene linie for at starte Outlook.

Men det er måske det korteste der kan nåes?
Avatar billede kroning Nybegynder
19. januar 2014 - 19:38 #12
ShellExecute(Handle,'open', PChar('http://www.etellerandetsted.dk/'), nil, nil, SW_SHOWNORMAL);
19. januar 2014 - 21:15 #13
Hej Kroning

Det var godt, skal du have point, for så vil jeg oprette en tråd til det?
Avatar billede kroning Nybegynder
19. januar 2014 - 22:23 #14
Nej tak.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester