Autor Beitrag
Max92
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Mo 03.09.07 19:29 
Hallo!

Bin hier gerade am programmieren und hänge an einer Stelle.

Ich möchte mit meinen Programm einerseits den Browser (externer Standardbrowser) öffnen und Links laden.
=> ShellExecute(handle, 'open',Pchar(url), nil, nil, SW_SHOW);
Hierbei kann ich ja die Seite mittels GET Anweisungen in der URL beeinflussen (falls unterstützt)

Jetzt möchte ich aber auch das Gleiche mit POST Anweisungen machen.
Also den Browser öffnen und NICHT ein Formular ausfüllen, sondern direkt die Ergebnisseite des Formulars laden, in dem ich beim Öffnen gleich die POST Anweisungen mitsende.

Mit der Suchfunktion bin ich nicht weit gekommen, aber vielleicht hat ja jemand eine Idee oder einen Link für mich.

Danke


Zuletzt bearbeitet von Max92 am Sa 08.09.07 15:36, insgesamt 1-mal bearbeitet
Max92 Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Sa 08.09.07 15:35 
hat denn niemand eine idee oder eine alternative?
jakobwenzel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1889
Erhaltene Danke: 1

XP home, ubuntu
BDS 2006 Prof
BeitragVerfasst: Sa 08.09.07 16:55 
Mir würd da nur ne temporäre Datei einfallen, in der das ausgefüllte Formular steht und bei der im onLoad von Javascript die submit-Methode des Formulars ausgerufen wird.
Wenn du diese Datei dann im Browser öffnest, sollte es klappen.

_________________
I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
Max92 Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Sa 08.09.07 23:15 
Danke für den Denkanstoss

Hier der Lösungsansatz für Leute, die das gleiche Problem haben:

Erst mal den HTML-Quelltext in eine Stringlist

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
<form name="submitter" method='post' action='http://www.die-webseite.de/das-entsprechende.php' enctype='multipart/form-data'>
<input type="hidden" name="name" value="wert">
<input type="hidden" name="name2" value="wert2">
...
<input type='submit' name='ok' value="WEITER"></form>
<script type="text/javascript">
function AbGehts () {document.submitter.submit();}
window.setTimeout("AbGehts()", 500);</script>

Das Javascript sorgt für eine automatische Weiterleitung nach 500 Milisekunden.
Wer Javascript aus hat, sieht einen "Weiter"-Button.
Auf restlichen HTML-Code kann man verzichten...

Im Delphi speichern wir den Spaß nun als HTML in den temporären Ordner des Users und öffnen ihn mit dem Browser

ausblenden Delphi-Quelltext
1:
2:
htmlstrings.SaveToFile(SysUtils.GetEnvironmentVariable('temp')+'\tempfilename.html');
ShellExecute(handle, 'open',Pchar(SysUtils.GetEnvironmentVariable('temp')+'\tempfilename.html'), nilnil, SW_SHOW);


Fertig!
jakobwenzel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1889
Erhaltene Danke: 1

XP home, ubuntu
BDS 2006 Prof
BeitragVerfasst: Mo 10.09.07 13:45 
Ruf deine Funktion doch im OnLoad-Ereignis vom Body auf - da klappts dann auch korrekt, wenn nach ner halben Sekunde deine Seite noch nicht komplett da ist, und es wird auch keine unnötige Pause eingelegt.

_________________
I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
GTA-Place
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: Mo 10.09.07 15:32 
Schöne Lösung. Wär dafür, dass das in die Library verschoben wird :!:

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)