Selaimen automatisointi+linux ?

Selaimen automatisointi linux ?

Tämä on osoittautunut linuxin suurimmaksi puutteeksi.

Siinä missä tämä on windowsissa helppoa esim. Delphi7:llä, jossa käytetään MS-IE:n ActiveX -komponenttiversiota, joka on impotoitu Delphiin siten, että Delhin kannalta se toimii kuin normaali Delphi -komponentti ( TWebBrowser ), ei linuxissa vastaava onnistu mitenkään FreePascal Lazarus -yhdistelmällä, kuten ei myöskään Kylix3:lla.

Seuraavaksi tuli mieleen, entäpä, jos unohtaisi tuon ratkaisumallin, tekisi ohjelman Delphillä ja yrittäisi ajaa sitä Wine:llä.

Ohjelma toki käynnistyy, mutta moni asia ei sitten toimikaan:

1. Yritys rekisteröidä "Global Keyboard hook" virheilmoittaa seutaavaa:

mika0800@amd2300:~/d7app$ wine BrowseA.exe
fixme:keyboard:RegisterHotKey (0x10026,1,0x00000000,181): stub

eli wine:n "toteutus" sisältää tyhjän proseduurirungon, joka muodollisesti tyydyttää riippuvuuden, muttei tee mitään !

sen lisäksi:

ohjelmani tekemä funktiokutsu:

Browser1.Navigate(WideString(aURL);

toimii kyllä, mutta sen jälkeiset asiat eivät sitten toimikaan.

Ohjelmani nimittäin yrittää hakea viitettä ladatun html -sivun formiin ja edelleen sillä oleviin input -kenttiin sekä formin lähetysnappiin, jotta Delphi -ohjelma voisi täyttää html -formin input -kentät halutulla informaatiolla ja simuloida formin lähetä -painikkeen painalluksen.

Ikävä kyllä näihin toimintoihin tarvittavat ominaisuudet puuttuvat wine:n tarjoamasta ajoympäristöstä, jolloin windows2000:ssa ja Windows98:ssa moitteettomasti toimiva Delphi7:lla tehty ohjelma ei toimi järkevällä tavalla kubuntu 7.10:ssä wine:n alaisuudessa.

Virtuaalikoneestako ratkaisu?

Ikävä kyllä VirtualBox kaatuu usein (siihen asennettuna Windows2000).

Lisäksi yritys käyttää yhteistä leiketaulua windowsissa ja linuxissa (VirtualBox mahdollistaa tämän) sotkee linuxin leiketaulun käyttökelvottomaksi.

Toivatko muut virtuaalioneet kuin VirtualBox yhtään sen paremmin ?

Tai onko olemassa paremmin tehtyä windows -emulaattoria linuxille kuin wine, joka ei käytännössä pysty ajamaan kuin kaikkein yksinkertaisimpia windowsohjelmia.

huom: en onnistunut asentama
10833
Äänestä

Muut lukivat myös

Vastaukset 10

Vanhimmat

"Ohjelmani nimittäin yrittää hakea viitettä ladatun html -sivun formiin ja edelleen sillä oleviin input -kenttiin sekä formin lähetysnappiin, jotta Delphi -ohjelma voisi täyttää html -formin input -kentät halutulla informaatiolla ja simuloida formin lähetä -painikkeen painalluksen."


Jes, eli miksi etelän mies yrität tehdä asioita liian vaikeaksi? Selaimen automatisointi kuulostaa juuri niin järjettömältä kuin perus Visual Basic-koodari sen ratkaisee. (Sori, mutta näin se vain tahtoo olla)

http://thedailywtf.com

HTTP-protokollassa on kaksi kutsua GET ja POST joilla molemmilla pystyy välittämään lomakkeiden tiedot. Kullakin sivulla käytettävä kutsu käy ilmi FORM-tagista. Suurimmalle osalle ohjelmointikielistä löytyy valmiit HTTP-protokollan osaavat kirjastot, joilla homma hoituu helposti.

Homman tekee vaikka Bash-skriptillä, wgetillä ja sedillä, jos haluaa päästä oikein helpolla.

Opiskele ensin HTTP-protokolla ja ajattelet sitten ongelmasi uudelleen. Vinkki: Unohda kuinka sivun lataaminen tehdään www-selaimen käyttöliittymässä, ajattele kuinka se menee ohjelman/protokollan tasolla...

http://www.jmarshall.com/easy/http/#toc

Äänestä
  • "Opiskele ensin HTTP-protokolla ja ajattelet sitten ongelmasi uudelleen. Vinkki: Unohda kuinka sivun lataaminen tehdään www-selaimen käyttöliittymässä, ajattele kuinka se menee ohjelman/protokollan tasolla..."

    ja perlillä loput. Mihin v**ttuun siinä selainta tarvitaan?

    Äänestä

Kerros muuten mitä yrität saada aikaiseksi, niin ehkä ratkaisu on helpompi kuin luuletkaan...

Äänestä

gambas:ssa ja gambas2:ssa on web-selain elementti jota on helppo ohjata. käyttää konqueroria.

mutta tämä on tietysti aivan liian helppo ratkaisu, kun haluat tehdä aina mahdollisimman sekavan purkkavirityksen :)

Äänestä

Älä mene perse edellä puuhun.

Tee se linux versio ensin, se toimii winkkarissakin.

Äänestä

Vaikka toteutus olisi erittäin simppeli, missään muualla kuin Microsoftilla ei ole edes harkittu ActiveXn kaltaisen pommin virittämistä selaimeen. Sellaista siinä ei yksinkertaisesti SAA OLLA.

Äänestä
  • "Vaikka toteutus olisi erittäin simppeli, missään muualla kuin Microsoftilla ei ole edes harkittu ActiveXn kaltaisen pommin virittämistä selaimeen. Sellaista siinä ei yksinkertaisesti SAA OLLA."

    Tämän kirjoittajalla on ilmeisesti vaikeuksia ymmärtää, mitä eroa on näillä kahdella ActiveX -teknologian käyttötavalla:

    1. Selain on ActiveX -isäntä, jossa ajetaan nettisivun siältämä ActiveX -komponentti.

    Tässä ratkaisussa tosiaan on tietoturvasyistä syytä miettiä, mille ActiveX:lle annetaan ajo-oikeus (linuxissa tosin normaaleja tiedostojen omistaja/ryhmä/maailma -oikeustasoja voisi hyödyntää ajamalla tämäntapaiset ActiveX:t esim. tunnuksella any_activex, jolla oletuksena ei ole kirjoitusoikeuksia mihinkään, jollei sellaisia ole erikseen myönnetty).


    2. Selain on ActiveX -komponentti, isäntänä toimii omatekoinen Delphillä tehty ohjelma.

    Tässä tapauksessa: ei se selain ole tietoturvaltaan sen vaarallisempi kuin esim. TMemo tai vaikkapa TFileDialog.

    Näillä 2:lla on siis iso ero, koska vain 1. kohdassa ajetaan nettisivun viittaamaa ActiveX:ää, jonka tekijäkin voi olla tuntematon.
    kohdassa 2 näin ei ole, vaan esim. Delphin TWebBrowser:in tapauksessa ActiveX -komponentin tekijä on Microsoft.

    Teoriassa ongelmaa voisi tosiaan lähestyä myös tekemällä ohjelma suoraan HTTP:tä ja GET / POST -toimintoa tukevaksi.

    Valitettavasti tässä on useita vaikeuksia:

    1. html -koodi on itse tulkattava, samoin mahd. sivulla oleva esim. JavaScript. Ja nämä voivat muuttua!

    2. esim. JavaScriptin muuttuessa palvelinpäässä usein, selainpohjainen ratkaisu on ainoa järkevä, muu johtaa huomattavan isoon työmäärään kerta toisensa jälkeen!

    Eli kyllä ActiveX on erittäin pätevä idea, pitivät eräät linuxkoodarit siitä tai eivät!

    Tarvittaisiin siis

    JOKO:
    toimiva wine tai vastaava, joka mahdollistaa saman toiminnallisuuden kuin MS-IE:n ActiveX -komponenttiversio

    TAI:
    VirtualBoxia luotettavampi vaihtoehto windowsin ajamiseen Linux -koneessa pyörivässä virtuaalikoneessa, tässähän pitäisi Delphi -ohjelmien toimia aivan kuin windowsissakin (poikkeuksena se, että joihinkin laitteisiin, kuten sarjaportit, IR-portit sekä esim. puhelinten USB -datakaapelit, ei välttämättä ole pääsyä virtuaalikoneesta käsin).

    Äänestä

  • Mika0800 kirjoitti:

    "Vaikka toteutus olisi erittäin simppeli, missään muualla kuin Microsoftilla ei ole edes harkittu ActiveXn kaltaisen pommin virittämistä selaimeen. Sellaista siinä ei yksinkertaisesti SAA OLLA."

    Tämän kirjoittajalla on ilmeisesti vaikeuksia ymmärtää, mitä eroa on näillä kahdella ActiveX -teknologian käyttötavalla:

    1. Selain on ActiveX -isäntä, jossa ajetaan nettisivun siältämä ActiveX -komponentti.

    Tässä ratkaisussa tosiaan on tietoturvasyistä syytä miettiä, mille ActiveX:lle annetaan ajo-oikeus (linuxissa tosin normaaleja tiedostojen omistaja/ryhmä/maailma -oikeustasoja voisi hyödyntää ajamalla tämäntapaiset ActiveX:t esim. tunnuksella any_activex, jolla oletuksena ei ole kirjoitusoikeuksia mihinkään, jollei sellaisia ole erikseen myönnetty).


    2. Selain on ActiveX -komponentti, isäntänä toimii omatekoinen Delphillä tehty ohjelma.

    Tässä tapauksessa: ei se selain ole tietoturvaltaan sen vaarallisempi kuin esim. TMemo tai vaikkapa TFileDialog.

    Näillä 2:lla on siis iso ero, koska vain 1. kohdassa ajetaan nettisivun viittaamaa ActiveX:ää, jonka tekijäkin voi olla tuntematon.
    kohdassa 2 näin ei ole, vaan esim. Delphin TWebBrowser:in tapauksessa ActiveX -komponentin tekijä on Microsoft.

    Teoriassa ongelmaa voisi tosiaan lähestyä myös tekemällä ohjelma suoraan HTTP:tä ja GET / POST -toimintoa tukevaksi.

    Valitettavasti tässä on useita vaikeuksia:

    1. html -koodi on itse tulkattava, samoin mahd. sivulla oleva esim. JavaScript. Ja nämä voivat muuttua!

    2. esim. JavaScriptin muuttuessa palvelinpäässä usein, selainpohjainen ratkaisu on ainoa järkevä, muu johtaa huomattavan isoon työmäärään kerta toisensa jälkeen!

    Eli kyllä ActiveX on erittäin pätevä idea, pitivät eräät linuxkoodarit siitä tai eivät!

    Tarvittaisiin siis

    JOKO:
    toimiva wine tai vastaava, joka mahdollistaa saman toiminnallisuuden kuin MS-IE:n ActiveX -komponenttiversio

    TAI:
    VirtualBoxia luotettavampi vaihtoehto windowsin ajamiseen Linux -koneessa pyörivässä virtuaalikoneessa, tässähän pitäisi Delphi -ohjelmien toimia aivan kuin windowsissakin (poikkeuksena se, että joihinkin laitteisiin, kuten sarjaportit, IR-portit sekä esim. puhelinten USB -datakaapelit, ei välttämättä ole pääsyä virtuaalikoneesta käsin).

    linux nyt ei vain sovi ihan kaikenlaisille ihmisille. sinä olet malliesimerkki ihmisestä, kenen ei kannata edes harkita linuxia!

    Äänestä

  • Mika0800 kirjoitti:

    "Vaikka toteutus olisi erittäin simppeli, missään muualla kuin Microsoftilla ei ole edes harkittu ActiveXn kaltaisen pommin virittämistä selaimeen. Sellaista siinä ei yksinkertaisesti SAA OLLA."

    Tämän kirjoittajalla on ilmeisesti vaikeuksia ymmärtää, mitä eroa on näillä kahdella ActiveX -teknologian käyttötavalla:

    1. Selain on ActiveX -isäntä, jossa ajetaan nettisivun siältämä ActiveX -komponentti.

    Tässä ratkaisussa tosiaan on tietoturvasyistä syytä miettiä, mille ActiveX:lle annetaan ajo-oikeus (linuxissa tosin normaaleja tiedostojen omistaja/ryhmä/maailma -oikeustasoja voisi hyödyntää ajamalla tämäntapaiset ActiveX:t esim. tunnuksella any_activex, jolla oletuksena ei ole kirjoitusoikeuksia mihinkään, jollei sellaisia ole erikseen myönnetty).


    2. Selain on ActiveX -komponentti, isäntänä toimii omatekoinen Delphillä tehty ohjelma.

    Tässä tapauksessa: ei se selain ole tietoturvaltaan sen vaarallisempi kuin esim. TMemo tai vaikkapa TFileDialog.

    Näillä 2:lla on siis iso ero, koska vain 1. kohdassa ajetaan nettisivun viittaamaa ActiveX:ää, jonka tekijäkin voi olla tuntematon.
    kohdassa 2 näin ei ole, vaan esim. Delphin TWebBrowser:in tapauksessa ActiveX -komponentin tekijä on Microsoft.

    Teoriassa ongelmaa voisi tosiaan lähestyä myös tekemällä ohjelma suoraan HTTP:tä ja GET / POST -toimintoa tukevaksi.

    Valitettavasti tässä on useita vaikeuksia:

    1. html -koodi on itse tulkattava, samoin mahd. sivulla oleva esim. JavaScript. Ja nämä voivat muuttua!

    2. esim. JavaScriptin muuttuessa palvelinpäässä usein, selainpohjainen ratkaisu on ainoa järkevä, muu johtaa huomattavan isoon työmäärään kerta toisensa jälkeen!

    Eli kyllä ActiveX on erittäin pätevä idea, pitivät eräät linuxkoodarit siitä tai eivät!

    Tarvittaisiin siis

    JOKO:
    toimiva wine tai vastaava, joka mahdollistaa saman toiminnallisuuden kuin MS-IE:n ActiveX -komponenttiversio

    TAI:
    VirtualBoxia luotettavampi vaihtoehto windowsin ajamiseen Linux -koneessa pyörivässä virtuaalikoneessa, tässähän pitäisi Delphi -ohjelmien toimia aivan kuin windowsissakin (poikkeuksena se, että joihinkin laitteisiin, kuten sarjaportit, IR-portit sekä esim. puhelinten USB -datakaapelit, ei välttämättä ole pääsyä virtuaalikoneesta käsin).

    Vaikka tietotekniikka ei olekaan kovin monimutkaista niin ei se näin yksinkertaista kuitenkaan ole.

    Aloittelijoille saattaa helposti syntyä käsitys että ActiveXn tapainen tekniikka olisi jotenkin käyttökelpoinen. Jos näin olisi, se olisi jossain muodossa käytössä kaikilla koska toteutustapa on suorastaan triviaali. Muut ovat kuitenkin ymmärtäneet että ihan joka paikassa ei voi oikaista vaikka se tuntuisi kuinka houkuttelevalta.

    Äänestä

Suurin puutteeni on, että vaimoni ei ole seksikäs mulatti.

Viini on taas juotavaa eikä mikään windows-riippuvaisten pelastusrengas.

Äänestä

Kommentoi aloitusta


Mika0800 kirjoitti:

Selaimen automatisointi linux ?

Tämä on osoittautunut linuxin suurimmaksi puutteeksi.

Siinä missä tämä on windowsissa helppoa esim. Delphi7:llä, jossa käytetään MS-IE:n ActiveX -komponenttiversiota, joka on impotoitu Delphiin siten, että Delhin kannalta se toimii kuin normaali Delphi -komponentti ( TWebBrowser ), ei linuxissa vastaava onnistu mitenkään FreePascal Lazarus -yhdistelmällä, kuten ei myöskään Kylix3:lla.

Seuraavaksi tuli mieleen, entäpä, jos unohtaisi tuon ratkaisumallin, tekisi ohjelman Delphillä ja yrittäisi ajaa sitä Wine:llä.

Ohjelma toki käynnistyy, mutta moni asia ei sitten toimikaan:

1. Yritys rekisteröidä "Global Keyboard hook" virheilmoittaa seutaavaa:

mika0800@amd2300:~/d7app$ wine BrowseA.exe
fixme:keyboard:RegisterHotKey (0x10026,1,0x00000000,181): stub

eli wine:n "toteutus" sisältää tyhjän proseduurirungon, joka muodollisesti tyydyttää riippuvuuden, muttei tee mitään !

sen lisäksi:

ohjelmani tekemä funktiokutsu:

Browser1.Navigate(WideString(aURL);

toimii kyllä, mutta sen jälkeiset asiat eivät sitten toimikaan.

Ohjelmani nimittäin yrittää hakea viitettä ladatun html -sivun formiin ja edelleen sillä oleviin input -kenttiin sekä formin lähetysnappiin, jotta Delphi -ohjelma voisi täyttää html -formin input -kentät halutulla informaatiolla ja simuloida formin lähetä -painikkeen painalluksen.

Ikävä kyllä näihin toimintoihin tarvittavat ominaisuudet puuttuvat wine:n tarjoamasta ajoympäristöstä, jolloin windows2000:ssa ja Windows98:ssa moitteettomasti toimiva Delphi7:lla tehty ohjelma ei toimi järkevällä tavalla kubuntu 7.10:ssä wine:n alaisuudessa.

Virtuaalikoneestako ratkaisu?

Ikävä kyllä VirtualBox kaatuu usein (siihen asennettuna Windows2000).

Lisäksi yritys käyttää yhteistä leiketaulua windowsissa ja linuxissa (VirtualBox mahdollistaa tämän) sotkee linuxin leiketaulun käyttökelvottomaksi.

Toivatko muut virtuaalioneet kuin VirtualBox yhtään sen paremmin ?

Tai onko olemassa paremmin tehtyä windows -emulaattoria linuxille kuin wine, joka ei käytännössä pysty ajamaan kuin kaikkein yksinkertaisimpia windowsohjelmia.

huom: en onnistunut asentama

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu