AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Standardbrowser öffnen
Thema durchsuchen
Ansicht
Themen-Optionen

Standardbrowser öffnen

Ein Thema von Megabyte · begonnen am 4. Dez 2002 · letzter Beitrag vom 5. Jan 2003
Antwort Antwort
Seite 2 von 4     12 34      
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#11
  Alt 4. Jan 2003, 18:11
Es ist aber auch nicht gesagt, dass jeder Browser die URL einfach als Parameter akzeptiert.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
trebormillenium

Registriert seit: 4. Jan 2003
25 Beiträge
 
Delphi 6 Personal
 
#12
  Alt 4. Jan 2003, 18:15
Aha
Naja Problem könnte man ja dadurch lösen das man den Pfad des Explorers angeben kann! Es geht mir aber jetzt in erster Linie darum, dass das Programm bei mir (Win XP) läuft!
Deshalb würde ich das Programm erstmal für Windows XP und Internet Explorer 6.0 ans laufen bringen!
Dann falls ich mich entschließen sollte das Programm weiter zugeben könnte man ja sowas noch ändern!

Und nochwas an MathiasSimmack --> Wie geht das? Bin noch net soweit mit Delphi, lerne es z.Z. in der Schule aber da lernt man natürlich nur Std. Sachen deshalb will ich etwas mehr lernen!

MFG Trebor
MFG Trebor

-= Irgendwo muss mans ja lernen =-
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#13
  Alt 4. Jan 2003, 18:38
Eine einfache Lösung für den IE:
Delphi-Quellcode:
ShellExecute(0,
  'opennew', // <-- !
  'http://www.delphipraxis.net',
  nil,
  nil,
  SW_SHOWNORMAL);
Es wäre natürlich möglich, dass andere Browser diesen Schlüssel auch anlegen. Das wäre natürlich am einfachsten, aber als Pessimist würde ich erst mal nur auf den IE tippen. Daher die Lösung #2: mit der "Registry"-Unit das Programm herausfinden, das für "http" zuständig ist.
Delphi-Quellcode:
uses
  Registry;

{ ... }

var
  reg : TRegistry;
  cmd : string;
begin
  reg := TRegistry.Create(KEY_READ);
  with reg do
  try
    RootKey := HKEY_CLASSES_ROOT;
    if(OpenKey('http\shell\open\command',false)) then
    try
      cmd := ReadString('');
    finally
      CloseKey;
    end;
  finally
    Free;
  end;

  ShellExecute(0,
    'open',
    pchar(cmd),
    'http://www.delphipraxis.net',
    nil,
    SW_SHOWNORMAL);
end;
(Ungetestet aus dem Kopf geschrieben. Bitte berücksichtigen!)

Sollte durch irgendwelche Widrigkeiten der "http"-Schlüssel nicht vorhanden sein, kann man zuerst ".html" öffnen und dort den Standardstring auslesen (s. "cmd := ReadString('');"). Dieser verweist auf einen zweiten Schlüssel (meist "htmlfile"), der dann wieder den Pfad zum Programm enthält:
Code:
htmlfile/shell/open/command
(bitte RegEdit benutzen und die Pfadnamen im Zweifelsfall suchen)

Ich glaube, für solche Sachen gab´s auch ´ne einfachere API-Funktion. Aber da muss ich erst mal gucken; kann sein, dass ich da was verwechsele. Vielleicht weiß die Antwort schon jemand, ansonsten melde ich mich noch mal, wenn sie mir wieder einfällt.
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#14
  Alt 4. Jan 2003, 20:09
Mir ist gerade eingefallen, dass sich z.B. der IE manchmal mit einem zusätzlichen Parameter in der Registry verewigt. In meinem Fall (Win98) ist das so.
Code:
"C:\PROGRA~1\INTERN~1\iexplore.exe" -nohome
Dieser Parameter "-nohome" ist notfalls aus dem String zu entfernen und an die URL ranzuhängen. Wer sich diesen Copy/Delete-Quark sparen will, kann und sollte z.B. Luckies RunProcess benutzen, weil man hier das Kommando inkl. aller Parameter als kompletten String übergeben kann.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#15
  Alt 4. Jan 2003, 20:22
Moin Mathias,

das man den Parameter (-nohome) erst entfernen muss hab' ich auch mal gedacht. Muss aber nicht sein, funktioniert auch wenn der stehenbleibt.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
trebormillenium

Registriert seit: 4. Jan 2003
25 Beiträge
 
Delphi 6 Personal
 
#16
  Alt 4. Jan 2003, 20:52
So jetzt zur nächsten Frage , wie kann ich in den Code eine Variabele bei der Adresse einfügen, so dass man z.B. die Adresse vorher manuell in ein Edit-Feld eingeben kann und das Programm die dann öffnet?

Delphi-Quellcode:
begin
ShellExecute(Handle,'open','C:\Programme\Internet Explorer\IExplore.exe','http://www.delphipraxis.net',nil,SW_SHOW);
end
MFG Trebor

-= Irgendwo muss mans ja lernen =-
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#17
  Alt 4. Jan 2003, 20:55
Moin Trebor,

ob Du der Funktion eine Konstante oder eine Variable übergibst spielt keine Rolle, nur dass Du dann statt Edit1.Text PChar(Edit1.Text) schreiben musst, da ein PChar erwartet wird (was der Compiler bei einer Konstante autmatisch erledigt)
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#18
  Alt 4. Jan 2003, 20:55
Ohne Garantie:

Delphi-Quellcode:
begin
ShellExecute(Handle,'open','C:\Programme\Internet Explorer\IExplore.exe','http://www.delphipraxis.net' [color=#ff0000] + Pchar(edit1.text)[/color],nil,SW_SHOW);
end

//Falls das nicht geht, mach voher eine Variable:

var temp : string;
begin
temp := 'http://www.delphipraxis.net' + edit1.text;
ShellExecute(Handle,'open','C:\Programme\Internet Explorer\IExplore.exe', temp,nil,SW_SHOW);
end
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#19
  Alt 4. Jan 2003, 20:57
Der vierte Parameter (der, in dem die URL stehen muss ), ist vom Typ PChar. Die Eigenschaft Text eines TEdist ist vom Typ String. Um einen String in einen PChar umzuwandeln, benutzt man folgenden Aufruf:
PChar(Edit1.Text)); Folglich sieht das bei dir dann so aus:
ShellExecute(Handle,'C:\Programme\Internet Explorer\IExplore.exe',PChar(Edit1.Text),nil,SW_SHOW); [EDIT]Wow, gleich drei auf einmal [/EDIT]
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
trebormillenium

Registriert seit: 4. Jan 2003
25 Beiträge
 
Delphi 6 Personal
 
#20
  Alt 4. Jan 2003, 21:06
So habe beides getestet und habe folgendes Problem:

Der IE öffnet dann die Seite "http://www.delphipraxis.net + edit1.text" oder bei der Variante mit der Variable öffnet er die Seite "temp"

Das hatte ich nämlich vorher auch schon so ausprobiert und es klappte bei mir auch net! Hat sonst vielleicht noch einer eine Idee?
MFG Trebor

-= Irgendwo muss mans ja lernen =-
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


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 06:53 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