auto-schreiben in textfelder



  • hi,

    ich wollte mir gern mal n programm schreiben, dass mich automatisch in eine seite im internet einloggt, weil das stresst 🙂

    prinzipiell müsste das ja recht einfach sein oder, z.B. einfach:

    exec("/usr/bin/firefox/firefox.exe");

    so, jetzt frage ich mich aber, ob ich irgendwie durch das programm
    eine URL in firefox automatisch eingeben kann, z.B:

    typeSomething(firefoxURL_Bar , "www.c-plusplus.net")

    gibt es eine möglichkeit, dieses "firefoxURL_Bar" vom Programm ermitteln zu lassen?

    Dass ich halt einfach nicht in eine Datei schreibe, oder auf stdout, sondern irgendwo in einem Fenster...

    Oder ist das weitaus komplizierter, als ich dachte?

    Merci 😉



  • Du könntest dich durch die Fensterstruktur des Browsers hangeln, bis du das Eingabefeld für die Adresse findest (unter Windows: FindWindowEx()) und dort dann die Adresse rein"schießen" (unter Windows: WM_SETTEXT).

    (aber eventuell solltest du dir mal anschauen, was der Firefox an Kommandozeilen-Parametern entgegennimmt - bestimmt ist dort einer dabei, der die zu öffnende Adresse angibt)



  • CStoll schrieb:

    Du könntest dich durch die Fensterstruktur des Browsers hangeln, bis du das Eingabefeld für die Adresse findest (unter Windows: FindWindowEx()) und dort dann die Adresse rein"schießen" (unter Windows: WM_SETTEXT).

    herr im himmel, du hast ja immer die wahnwitzigsten ideen.

    OP: probier mal nur die url als exec-parameter, z.b. ("http://www.yahoo.com");
    kann sein dass dein OS dann direkt den browser startet.
    amsonsten guckst du nach den command-line parametern deines browsers, da kann man bestimmt auch die seite angeben.
    🙂



  • und wenn du es ganz cool machen willst :D, dann schreibste das nicht in c++, sondern benutzt AutoIt...
    einfach mal danach googlen.. das ist für sowas gut... :xmas1:



  • was meinst du mit einloggen??

    wenn du meinst einfach nur die seite aufrufen dann kannst du ja direkt die adresse deinem browser übergeben...

    execl("/usr/bin/firefox","firefox","http://www.c-plusplus.net","\0"); /*falls ich mich richtig erinnere*/
    

    wenn du meinst dich auf einer seite einloggen, dann müsstest du den quelltext zerlegen und schauen wo da die login felder sind und dann damit weiterarbeiten.



  • ich würde es dem Betriebssystem überlassen, mit was er eine Adresse öffnen will... du musst dann nur die URL übergeben und dann kümmert sich das OS darum, den passenden Standardbrowser zu öffnen

    ich weiß jetzt allerdings nicht, wie man das unter Linux macht



  • ja okay danke erstmal.
    für weiteres zur info: ich benutze ubuntu linux.

    also eine bestimmte seite starten geht bestimmt durch firefox-parameter.

    aber der clou ist ja eben, dass ich mich noch einloggen muss.

    wieso muss ich da den quellcode kennen?

    ich kenne ja die setie, ich müsste z.B. dem programm nur sagen, dass
    er nach aufruf vom firefox einmal "tab" drücken soll (dann bin ich im login-textfeld), etwas schreiben ("meinloginname"), dann nochmal "Tab" drücken (dann bin ich im pw-eingabefeld) und dann schreiben "mypassword".

    und dann "enter"...

    also prinzipiell ist die frage:

    wie greife ich auf die tastatur zu?



  • hdi-loggedout schrieb:

    ich kenne ja die setie, ich müsste z.B. dem programm nur sagen, dass
    er nach aufruf vom firefox einmal "tab" drücken soll (dann bin ich im login-textfeld), etwas schreiben ("meinloginname"), dann nochmal "Tab" drücken (dann bin ich im pw-eingabefeld) und dann schreiben "mypassword".

    genau das kann autoit... allerdings weiß ich nicht, obs auch unter linux läuft.. hättest du ja auch schonmal nen bisschen früher sagen können 🙄



  • BähStoll schrieb:

    CStoll schrieb:

    Du könntest dich durch die Fensterstruktur des Browsers hangeln, bis du das Eingabefeld für die Adresse findest (unter Windows: FindWindowEx()) und dort dann die Adresse rein"schießen" (unter Windows: WM_SETTEXT).

    herr im himmel, du hast ja immer die wahnwitzigsten ideen.

    Die durekten Wege sind immer noch am besten 😃 (aber nachdem der OP mit Linux arbeitet, kann er den Ansatz sowieso vergessen)

    @hdi: Zum Fernsteuern von fremden Programmen ist reines C nicht wirklich geeignet - der Standard definiert nichts, was außerhalb des eigenen Programms existieren soll. Also müsstest du mit Mitteln des Betriebssystems versuchen, den Firefox anzusprechen (unter Windows wäre das ein SendInput()-Aufruf, unter Linux kenne ich mich nicht aus).



  • Es wäre wahrscheinlich einfacher, ein socket auf 80 zu verbinden, die (POST-) Login-Daten selbst zu schicken und die Seite selbst abzuholen. Danach könntest du den Firefox mit der abgeholten Seite füttern. :xmas1:



  • cheopz schrieb:

    Es wäre wahrscheinlich einfacher, ein socket auf 80 zu verbinden, die (POST-) Login-Daten selbst zu schicken und die Seite selbst abzuholen. Danach könntest du den Firefox mit der abgeholten Seite füttern.

    we have a winner! dieser vorschlag ist noch umständlicher als der von CStoll.
    🙂



  • unfassbar! schrieb:

    cheopz schrieb:

    Es wäre wahrscheinlich einfacher, ein socket auf 80 zu verbinden, die (POST-) Login-Daten selbst zu schicken und die Seite selbst abzuholen. Danach könntest du den Firefox mit der abgeholten Seite füttern.

    we have a winner! dieser vorschlag ist noch umständlicher als der von CStoll.
    🙂

    entweder registrieren und vernünftige beiträge schreiben oder nur lesen und nicht sonen stuss schreiben! ich bin dafür, dass nur registrierte schreiben können... :xmas2:



  • Machine schrieb:

    entweder registrieren und vernünftige beiträge schreiben oder nur lesen und nicht sonen stuss schreiben!

    du täuscht dich. eine registrierung hat nicht den geringsten einfluss auf die qualität von postings, schau doch nur mal in 'nadrw', was für einen mist dort langjährige user schreiben.
    🙂



  • Gast #578523785233 schrieb:

    Machine schrieb:

    entweder registrieren und vernünftige beiträge schreiben oder nur lesen und nicht sonen stuss schreiben!

    du täuscht dich. eine registrierung hat nicht den geringsten einfluss auf die qualität von postings, schau doch nur mal in 'nadrw', was für einen mist dort langjährige user schreiben.
    🙂

    komischerweise sind aber die user, welche totalen stuss schreiben, meist unregistrierte user. und genau diese user haben meist keinen bock sich erst zu registrieren um ihren blödsinn zu schreiben.



  • Machine schrieb:

    komischerweise sind aber die user, welche totalen stuss schreiben, meist unregistrierte user.

    unregs können in 'nadrw' nicht schreiben. die spiesser wollen unter sich bleiben.
    🙂



  • ich rede ja auch nicht von nadrw sondern von diesem forum



  • Machine schrieb:

    ich rede ja auch nicht von nadrw sondern von diesem forum

    na wie du willst, der totale stuss in diesem thread kam aber nicht von unregistrierten.
    🙂



  • können wir wieder zum thema kommen bitte?

    mir persönlich ist es egal, ob jemand registriert ist oder nicht, ich bin nur dankbar für hilfe.

    und was ihr hier gerade macht, sowohl als regisrtierter user als auch als gast, hilft mir kein stück 🙄

    so wie es aussieht geht es aber in C nicht ohne weiteres, auf andere programme zuzugreifen.

    von daher hab ich meine antwort schon erhalten.

    danke an alle, mfg



  • hdi-loggedout schrieb:

    so wie es aussieht geht es aber in C nicht ohne weiteres, auf andere programme zuzugreifen.

    doch, natürlich geht es. wahrscheinlich ist C die einzige sprache, in der fast alles geht. allerdings sind solche dinge sehr systemspezifisch und von verschiedenen dingen abhängig, wie der browser ins system integriert ist, welche APIs er anbietet usw.
    🙂


Anmelden zum Antworten