AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Browser versteckt öffnen und wieder schließen
Thema durchsuchen
Ansicht
Themen-Optionen

Browser versteckt öffnen und wieder schließen

Ein Thema von Aljoscha · begonnen am 18. Jun 2005 · letzter Beitrag vom 18. Jun 2005
Antwort Antwort
Aljoscha

Registriert seit: 30. Dez 2004
97 Beiträge
 
#1

Browser versteckt öffnen und wieder schließen

  Alt 18. Jun 2005, 12:22
Hi.
Um für die Schule ein kleines Onlinehighscoreprogramm zu schreiben (also das Spiel existiert, nun soll die Highscore online kommen) habe ich eine php-Datei.
Diese php-Datei wird mit den Parametern name und Highscore aufgerufen und schreibt das ganze so in eine Datei auf dem Server die die aktuelle Rangliste wiedergibt.
Nach dem Spiel wird also der Browser per Shellexecute versteckt aufgerufen (damit niemand so schnell lerkennt wie das ganze Funktioniert und einfach den Punkteparameter ändert) und schreibt so die Highscore online.
Nun möchte ich aber den Browser danach wieder schließen (nachdem er die Highscore eingetragen hat).
Ansonsten wäre nach 10 Spielen ja 10 mal versteckt der Browser im Hintergrund am laufen.
Daher meine Frage, wie stelle ich das nun an, den geöffneten Browser zu schließen?
Ich könnte alle ALLE Browserfenster schließen, aber das wäre ja sehr ungeeignet.
Ich dachte ich könnte beim erstellen des Browsers das Handle gleich auslesen oder sogar angeben, um dann genau mein Browserfenster danach zu schließen.
Weiß jemand wie das ginge oder hat eine andere Idee?

thx 4 help!
  Mit Zitat antworten Zitat
18. Jun 2005, 12:22
Dieses Thema wurde von "Daniel" von "Sonstige Fragen zu Delphi" nach "Internet / LAN / ASP.NET" verschoben.
Daniel
(Co-Admin)

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

Re: Browser versteckt öffnen und wieder schließen

  Alt 18. Jun 2005, 12:28
Hallo,

ich würde einen der Indy-Clients nehmen. Die URL hast Du ja schon irgendwo in Deinem Programm zusammengebastelt und wenn es nur darum geht, eine URL aufzurufen, um ein PHP-Script anzustoßen, dann würde ich wie eben gesagt, einen Indy-Client nehmen. Web- oder HTTP- Sowieso der dgl. müsste der heißen.
Duch etwaige Hinweismeldungen von Firewalls ("Ausgehnde verbindung nach XY") oder Monitore oder dgl. jedoch wirst Du die URL kaum geheim halten können.

Letzlich ist es eine Frage, wie groß der Aufwand sein soll, den Du betreiben möchtest. Ein simpler Schutz, der schon mal einige selbsternannte Hacker ausschließen würde, wäre es, einen MD5-Schlüssel anzuhängen. In diesen Schlüssel gehen die Parameter (Highscore etc.) eine sowie ein nur Dir und Deinem PHP-Script bekannte Zeichenfolge. So könntest Du auf einfache Weise erkennen, falls wer die Parameter verändert.

Aber es führen wie so oft 1.000 Wege nach Rom.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Benutzerbild von Pr0g
Pr0g

Registriert seit: 21. Mai 2004
809 Beiträge
 
Delphi 7 Personal
 
#4

Re: Browser versteckt öffnen und wieder schließen

  Alt 18. Jun 2005, 12:29
Warum nutzt du nicht Indy um die Daten per POST an das PHP Script zu senden. Oder falls das nicht geht, dann könntest du das PHP Script auch runterladen (bspw. ins Tempverzeichnis, ist ja ne leere Datei, einfach mal hier nach Downloadfunktionen Suchen) und die Daten dabei per GET übermitteln. Nach dem Download kannst du die Datei wieder löschen. Es geht ja nur darum, dass sie auf dem Server ausgeführt wurde.

Beide Lösungen sollten besser sein, als nen Browser aufzurufen.

MfG Pr0g
  Mit Zitat antworten Zitat
Kidix

Registriert seit: 14. Jan 2005
315 Beiträge
 
Delphi 4 Standard
 
#5

Re: Browser versteckt öffnen und wieder schließen

  Alt 18. Jun 2005, 12:30
ich hätte 2 Ideen!


1. Du übergibst die Daten nicht per Browser an das Script, sondern per Indy HTTP Komponente und der Post MEthode! Dann brauchst du den ganzen Schnick Schnack garnicht.

2. Du nimmst die Webbrowser Komponente aus Active X und erledigst damit deine Auswührung. Dann brauchst du dir auch um das schließen keine Gedanken machen, da alles unsichtbar passieren könnte!

Gruß

Kidix
  Mit Zitat antworten Zitat
Aljoscha

Registriert seit: 30. Dez 2004
97 Beiträge
 
#6

Re: Browser versteckt öffnen und wieder schließen

  Alt 18. Jun 2005, 12:36
Das problem ist ich bin jetzt so schon fertig mit der Browsersteuerung, nur mir ist aufgefallen, dass sich die Dinger dann im Taskmanager häufen.
Hat keiner eine Idee, wie ich genau mein Fenster wieder schließe?
Wäre mir am liebsten und würde mich auch unabhängig von der Notwendigkeit mal interresieren wie das mit den Handles ist.
Ich könnte die Datei die aufgerufen wird doch auch z.B.
ASJKDASDASDASIWEHJRJKDAHDKLADKLDDASDA nennen und dann das Handle kriegen indem ich eben das Fenster mit dem Titelteil:
ASJKDASDASDASIWEHJRJKDAHDKLADKLDDASDA
suche, oder?
Weiß jemand wie das genau geht, das nur dieser Teil im Fensternamen stehen muss, weil die genaue Bezeichnung hinge ja vom Browser ab, z.B.
ASJKDASDASDASIWEHJRJKDAHDKLADKLDDASDA - Mozilla Firefox
oder
Microsoft Internet Explorer - ASJKDASDASDASIWEHJRJKDAHDKLADKLDDASDA

Hätte da jemand einen Codeschipsel für mich um das Handle zu kriegen?

//Edit:
Also ich weiß das ich mit diesem Code das Fensterhandle anhand eines Fensternamens bekomme:

Prozedur:

Delphi-Quellcode:
uses TLHelp32;
procedure GetExeNameByWindowTitle(fenstertitel: string; var ergebnis: TStringList);
var PID: DWord;
  aSnapShotHandle: THandle;
  ContinueLoop: Boolean;
  aProcessEntry32: TProcessEntry32;
begin
  ergebnis.clear;
  GetWindowThreadProcessID(FindWindow(nil, PChar(fenstertitel)), @PID);
  aSnapShotHandle := CreateToolHelp32SnapShot(TH32CS_SNAPPROCESS, 0);
  try
    aProcessEntry32.dwSize := SizeOf(aProcessEntry32);
    ContinueLoop := Process32First(aSnapShotHandle, aProcessEntry32);
    while Integer(ContinueLoop) <> 0 do begin
      if aProcessEntry32.th32ProcessID = PID then
        ergebnis.Add(aProcessEntry32.szExeFile);
      ContinueLoop := Process32Next(aSnapShotHandle, aProcessEntry32);
    end;
  finally
    CloseHandle(aSnapShotHandle);
  end;
Aufruf:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var sl: TStringList;
begin
  sl:=TStringList.Create;
  try
    GetExeNameByWindowTitle('HTML Editor', sl);
    ListBox1.Items.AddStrings(sl);
  finally
    sl.free;
  end;
end;
Aber ich kenne ja nur einen Teil des Fensternamens, in Beispielfall ASJKDASDASDASIWEHJRJKDAHDKLADKLDDASDA , wie kann ich nun trotzdem das Fensterhandle kriegen?
  Mit Zitat antworten Zitat
Benutzerbild von Pr0g
Pr0g

Registriert seit: 21. Mai 2004
809 Beiträge
 
Delphi 7 Personal
 
#7

Re: Browser versteckt öffnen und wieder schließen

  Alt 18. Jun 2005, 12:58
Ein paar Daten an das PHP Script zu übergeben sind doch kein großes Ding. Dir wurde nun dreimal gesagt, wie du es leichter und besser machen kannst. Stell dei System doch einfach um, sollte schneller gehen, als nach einer Lösung für dein jetziges Problem zu suchen.
  Mit Zitat antworten Zitat
Aljoscha

Registriert seit: 30. Dez 2004
97 Beiträge
 
#8

Re: Browser versteckt öffnen und wieder schließen

  Alt 18. Jun 2005, 13:03
Zitat von Pr0g:
Ein paar Daten an das PHP Script zu übergeben sind doch kein großes Ding. Dir wurde nun dreimal gesagt, wie du es leichter und besser machen kannst. Stell dei System doch einfach um, sollte schneller gehen, als nach einer Lösung für dein jetziges Problem zu suchen.
lol das stimmt schon
Aber jetzt bin ich daran interresiert wie das mit dem Handle Funktioniert
unabhängig davon ob es in diesem FAll sinnvoll ist.
Ich eröffne dazu mal einen neuen Threat

//Edit:

Hier gehts weiter

http://www.delphipraxis.net/internal...ct.php?t=56817
  Mit Zitat antworten Zitat
Aljoscha

Registriert seit: 30. Dez 2004
97 Beiträge
 
#9

Re: Browser versteckt öffnen und wieder schließen

  Alt 18. Jun 2005, 17:39
So ich krame den Threat hier nochmals raus, da ich ein Problem habe
ich möchte den Standartbrowser nun versteckt öffnen, aber dafür bin ich zu dumm!

Delphi-Quellcode:
ShellExecute(Application.Handle, 'open',
PChar(StandardBrowser),
'http://MYSERVER.COM/HighScore.php?string=Username-100', nil, sw_Hide);
StandartBrowser wird dabei aus der Registry ausgelesen und ist eine exe, z.B. IEXPLORE.exe

Der Browser startet auch wie gewünscht, aber trotzdem nicht versteckt!

Auch:

Delphi-Quellcode:
ShellExecute(Application.Handle, 'open',
PChar('http://MYSERVER.COM/HighScore.php?string=Username-100'),
nil, nil, sw_Hide);
funktioniert nicht.

Wieso bin ich zu blöd das Programm versteckt zu starten?!

Dabei sei erwähnt, mein Standartbrowser ist Firefox.
Mit dem IE klappt das ganze mit dem versteckt starten!

//Edit:

Ich denke das geht auch zu weit am Thema vorbei, neuer Threat hier:

http://www.delphipraxis.net/internal...t.php?p=384534
  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 21:07 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