Eli teen eräänlaista etähallintaohjelmaa omaan käyttööni (kenties joskus ihan levitykseenkin) ja nyt kun ohjelma on jo melko pitkällä (kaikki muu oikeastaan valmiina mitä aion siihen laittaa) niin aloin miettimään miten saisin tehtyä mahdollisimman nopean "Näköyhteyden" jotta näkisin oman koneeni jonkin toisen kautta. Siksi kysynkin että tietäisikö kukaan millä tavalla kyseinen kannattaisi toteuttaa? kuvan pakkaus, lähetys ja toisessa päässä purku ja näyttäminen vai jokin pikseli kerralaan sendiminen (ei varmaankaan ole kovin nopea)? Ehdotuksia otetaan vastaan..
Kannattaa tutustua johonkin kuvanpakkausalgoritmiin. Sitten ohjelmassa:
1. ota screenshotti
2. heitä se vaikka pictureboxiin ja saveta filuun, pictureboxista point():lla oisi hidasta.
3. pakkaa filu
4. lähetä pakattu data
5. vastaanottavassa ohjelmassa sitte purat datan bmp:ksi ja loadpicturella picturelootaan.
Kun ton on onnistunut tekemään niin voi ruveta miettimään jos optimoisi sillain että lähettää vain muuttuneita osia näytöltä.
Itselleni ainakin tuli mieleen että jos sieppaisi vain tiedot hiiren, kuvakkeiden, ikkunoiden, ym. sijainnista. Tosin jos esim. jotain kuvaketta ei ole omalla koneella, ei se tietenkään näy, mutta sen kuvakkeen voi sitten ladata jos sitä ei ole. Taustakuva menee myös ongelmalliseksi ja joku käynnissä oleva video. Joskin, ei tuollaisissa ohjelmissa yleensä moiset näy. Meinaan ammattikoulussa oli moinen tirkistelyohjelma, eikä se osannut esim. taustakuvaa näyttää kun katseli toisen konetta..
-Grey-
Todennäkösesti paras tapa on lähettää ensin yksi kokonainen screenshotti, ja sen jälkeen kuva, jossa on vaan muuttuneet alueet piirrettynä yksivärisen taustan päälle. Tämä sitten pakataan esimerkiksi png:ksi (tai jpg:ksi, miten haluaa).
Toi Greyn esittämä tapa on siitä huono, että siinä joutuu ottaan niin paljon eri asioita huomioon. Ja mites esimerkiksi eri Windows-versioiden välillä, eroja todennäköisesti löytyy melko paljon. Tai Windows XP:n themejen kanssa, jotka muokkaavat melko paljon GUI:ta ja esimerkiksi painikkeiden kokoa ja paikkaa..
Pakkaa vaan roimasti kuvaa... Tuosta ei kyllä kovin nopeaa saisi koska vb ei mikään kovin kehuttavan nopea ole. EHkä jollakin 1fps nopeudella saisi toimimaan.
Minä kyllä uskaltaisin väittää, että nettiyhteyden nopeus on tässä tapauksessa paljon suurempi pullonkaula, kuin VB:n nopeus.
Yhden kuvan päivittäminen sekunnissa vaatii jo noin 1 megan yhteyttä (uppia toisessa päässä), jos kuva vie 100kt. Pakkaamista ja optimointia pitää siis tehdä kunnolla, että sais kunnolla päivittyvää kuvaa. Lähiverkossa toi onkin sitten toinen asia..
En suinkaa ole tekemässä pakkausta pelkällä vb:llä vaan ajattelin koodailla jonkun .dll filun c++:lla pakkausta nopeuttamaan. Eikä kuvan nyt aivan joka sekunti tarvitse päivittyä, eihän tässä mihinkään kiire ole :) Ja hiiren kordinaatithan senditään ihan erikseen, niin se pysyy silloin ihan reaaliajassa.
Jatkampa nyt samaan aiheeseen niin ei tarvitse uutta aloittaa, eli mitä ominaisuuksia teidän mielestänne pitäisi hyvästä etähallinta ohjelmasta löytyä? Tällä hetkellä löytyy isoläjä servusta statseja, tiedostojen kopiointi, hyvin toimiva näköyhteys (käyttää jpeg pakkausta, kuvat noin. 40kt (1280 x 1024 resolla ja vielä ihan kelpo kuvanlaatu!!), pakkaus dll tehty c++:lla), ja turhaakin tietysti: eli irkkaamaan pääsee :D
Aihe on jo aika vanha, joten et voi enää vastata siihen.