ShellExecute die x'te



  • Hallo zusammen,
    Dank eurer FAQ-Liste habe ich den Befehl ShellExecute gefunden, der eigentlich auch sehr gut funktioniert.
    Leider habe ich trotzdem ein Problem.
    Ich muss eine bestimmt Internet-Seite öffnen, wenn ich sie direkt mit der URL anspreche, sehe ich keinen Text. Gehe ich über die "Index-Seite" und dann erst den gewünschten Link ist alles normal.
    Ich habe jetzt versucht das ganze so zu regeln:

    long prog;
    prog = long (ShellExecute NULL "open", "http://u9jx9.mgb01.***.de/eba/index.php", NULL, NULL, SW_SHOWNORMAL));
    Edit1->Text = prog; <-- Zur Kontrolle des Rückgabewerts
    if (prog >= 32)
    {
    ShellExecute(NULL, "open", "http://u9jx9.mgb01.***.de/eba/eba_status.php", NULL, NULL, SW_SHOWNORMAL);
    }

    Er gibt den Wert 42 zurück, wartet aber nicht bis die "index-Seite" geladen ist und ich habe den gleichen Effekt.

    Wie kann ich abwarten ob das Laden eines Fensters im Explorer erfolgreich war??



  • ShellExecute prüft die Anwendung nur so lange bis sie gestartet ist. Vielleicht feilschst du mal mit CreateProcess, wäre WinAPI-Forum, glaub aber nicht, dass das viel bringt. Mein Tipp: Lass den Benutzer auch mal was machen, gib z.B. eine MessageBox aus, in der du schreibst, er soll in der sich öffnenden Seite daundahin klicken. Dann kriegst du auch keinen Ärger mit dem Betreiber wegen Deep-Links.

    Gruß!
    Unzi

    P.S.: Ich habe noch keine Webseite gesehen, auf der unbedingt zuerst die Index-Seite geladen werden muss. Schau dir einfach nochmal im Quelltext der Seite (beim IE mit viewsource:seite) genau den Link an (unter A HREF).



  • MMhhhhh, danke, hast wohl recht.
    Ich habe mir den Quelltext der Interrnetseite mal angeguckt, die wird über ein Script geöffnet.
    Ich glaube ich bleibe dabei, dass die User aus dem Programm heraus grundsätzlich auf die Index-Seite kommen.



  • Naja, es gäbe da noch ne Methode mit ShellExecuteEx und WaitForSingleObject oder so... Mir war als stünde dazu auch was in der FAQ.. Ansonsten such mal nach ShellExecuteEx.

    -junix


Anmelden zum Antworten