Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    [c#] come interagire con le pagine web?

    Save, ultimamente sto facendo un po' troppo domande, quindi scusate...

    comunque...

    Volevo chiedere se è possibile connettere un programma fatto in c# ad una determinata pagina web e poi poter inviare dei comandi. Faccio un esempio così mi chiarisco.

    Ho la pagina pagina.html nella quale ho un <input type = "text" id= "testo" name= "testo">

    ora... vorrei programmare un programma in c# che si connetta a pagina.html e scriva "ciao" all'interno dell'input di testo della pagina.

    Grazie mille dell'attenzione e....

    tutto si può fare, bisogna solo volerlo
    http://italybrain.altervista.org/

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2012
    Messaggi
    91
    puoi provare ad usare il WebBrowser e sull'evento documentcomplete ricercarti la textbox nell'html e settargli il testo:

    codice:
    void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
            {
                HTMLDocument myDoc = new HTMLDocument();
                myDoc = (HTMLDocument)webBrowser1.Document.DomDocument;
                
                //Cerca text box in HTML
                HTMLInputElement otxtSearchBox = (HTMLInputElement)myDoc.all.item("testo", 0);
                 otxtSearchBox.innerText = textBox1.Text;
            }
    Ovviamente puoi lanciare click sui button ecc...

  3. #3
    grazie mille per l'aiuto, adesso sono riuscito anche a trovare un altro metodo: sempre con il WebBrowser creo un HtmlElementCollection e poi con un foreach cerco all'interno della collezione, per esempio il nome della textbox che voglio modificare.

    Grazie mille comunque e buon proseguimento di giornata
    tutto si può fare, bisogna solo volerlo
    http://italybrain.altervista.org/

  4. #4
    Io comunque seguirei il metodo spiegato da Talion, è estremamente più efficiente... quello che stai facendo tu è il cosiddetto "for-if antipattern":
    Scommetto che questo genere di persone odiano andare in biblioteca a cercare un libro per titolo, perché ci vuole un sacco di tempo: vanno dal bibliotecario e dicono "Scusi, mi dia tutti i libri che ha", riempiono il carrello con migliaia di libri, per poi sedersi in un angolo e dire "No, il titolo di questo libro è sbagliato. No, neanche questo. Ancora titolo sbagliato. E questo? No, neanche questo. Ragazzi, ci sto mettendo una vita..."
    [...]
    Si incontra questo pattern anche nella vita di tutti i giorni: "che gusti avete?" e, dopo che il cameriere ha elencato la lista dei gusti "uff, speravo aveste il lampone...".
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Quale è la debolezza del mio metodo?

    Si tratta di velocità di esecuzione o proprio il metodo pone un limite alla praticità dell'operazione?
    tutto si può fare, bisogna solo volerlo
    http://italybrain.altervista.org/

  6. #6
    È più lento ed è inutilmente più complicato.
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    grazie mille e, infine, vorrei chiedere come possa fare a selezionare, per esempio, la background image di un bottone. mettiamo

    Codice PHP:
    <input type "text" value "" id "testo" name "name" style  "background-image: [url]http://......;[/url]" class = "ciao"
    come faccio a selezionare lo style di questo input utilizzando sia il mio metodo che quello di Talion?

    Per quanto riguarda il mio metodo avrei un idea ma non funziona:

    codice:
    HtmlElementCollection doc = webBrowser2.Document.All;
                foreach (HtmlElement ele in doc)
                {
                    if (ele.GetAttribute("style") == "background-image: http://......;")
                    {
                        MessageBox.Show("ciao"); // se seleziono l'input esce il ciao
                    }
                }
    purtroppo non funziona...


    invece per quanto riguarda il metodo di Talion non mi è venuta nessuna idea in mente.

    che cosa ho sbagliato nel mio caso?
    tutto si può fare, bisogna solo volerlo
    http://italybrain.altervista.org/

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2012
    Messaggi
    91
    Nel mio caso potresti prenderti tutte le propietà dello stile dalla propietà currentStyle:

    codice:
    string style = otxtSearchBox.currentStyle.backgroundImage;

  9. #9
    grazie mille... ora, come ultima cosa vorrei chiedere una cosa che centra con il c# ma non strettamente con l'argomento. Il fatto è che non volevo aprire un altro thread solo per un parere.... comunque se devo aprirlo lo stesso avvisatemi così cancello il post e ne faccio un altro.

    Quando avrò finito di studiare abbastanza bene il c# vorrei avvicinarmi al mondo della programmazione di piccoli giochetti. Mi ricordo che in c++ mi divertivo a smanettare con allegro.h e, in c# ho trovato un framework molto efficiente: XNA. Peccato che i geniacci della microsoft non lo hanno reso compatibile con windows 8 e peccato che il mio stupido cervello abbia comprato proprio windows 8. Ora....

    1) c'è un modo per poter installare XNA su win 8? Ho visto che lo spiegava una pagina, ma era in francese.... quindi non ho capito niente. Al massimo sapete dove trovare una pagina che lo spieghi in inglese o in italiano??

    2) Oltre a XNA, c'è qualche framework per programmare questo tipo di aspetto che sia compatibile con win 8 e che soprattutto sia reperibile del buon materiale per studiarlo?

    3) Secondo voi potrei installare una virtual box con win 7 e programmare all'interno di quest'ultima??

    4) Mi consigliate di programmare in c# oppure è più efficiente il java?


    Grazie per l'attenzione


    Buon proseguimento della giornata





    EDIT-----------------------------------------------------------------------------------


    Ho scoperto di poter programmare in XNA installando monogame, ma vlevo sapere se posso installarlo in visual c# 2010 express edition, non disponendo di visual studio completo, ma solo di visual c#.

    Infine vorrei chiedere che differenze ci sono tra XNA e monogame

    grazie molte per l'attenzione

    tutto si può fare, bisogna solo volerlo
    http://italybrain.altervista.org/

  10. #10
    ok, scusate per la domanda di prima, potete pure eliminarla... ho risolto. Comunque talion...

    Grazie mille, alla fine ho deciso di seguire il tuo metodo. Tuttavia non ho esattamente capito una riga:
    codice:
     HTMLInputElement otxtSearchBox = (HTMLInputElement)myDoc.all.item("testo", 0);
    che cosa fai esattamente? crei una variabile HTMLInputElement e gli assegni come valore il cast del document da dove prelevi item. Ma esattamente che cosa è item??

    Essendo testo posso pensare sia o l'id o il name, ma se l'elemento html non li avesse?

    Come posso, per esempio selezionare la classe?

    Ma soprattutto ditemi se ho capito il procedimento:

    1)

    HTMLDocument myDoc = new HTMLDocument();
    myDoc = (HTMLDocument)webBrowser1.Document.DomDocument;

    crea un'istanza della classe HTMLDocument e poi gli dà come valore in poche parole il DOM
    della pagina in cui stiamo navigando

    2)

    HTMLInputElement otxtSearchBox = (HTMLInputElement)myDoc.all.item("testo", 0);
    otxtSearchBox.innerText = textBox1.Text;

    in questo caso appunto arriva la riga che non ho ben compreso e infine, dopo aver selezionato l'elemento desiderato ne modifica il testo.


    Riassumendo:

    1) il pezzo di codice esegue quello che ho appena elencato, oppure ho sbagliato nella comprensione?

    2) quell' "item" che cosa è esattamente?


    Grazie per la cortese attenzione e, ricordo che potete pure cancellare la mia domanda che non centrava con il contesto in quanto sono riuscito a risolvere.

    Arrivederci


    tutto si può fare, bisogna solo volerlo
    http://italybrain.altervista.org/

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.