Pasivní vzdálená plocha

C# .NET Pasivní vzdálená plocha

Napsal jsem jednoduchou aplikaci na pasivní vzdálenou plochu. Co to zatím umí? Po spuštění vám program nabídne dvě možnosti, zda chcete vaši plochu sdílet nebo nějakou vzdálenou plochu prohlížet. Do příslušných políček zadáte patřičné údaje - ip adresu(IPv4) a port.

Program zatím umí snímat pouze primární monitor, pokud jich je více, smůla, zatím :) Jedná se pouze o pasivní prohlížení vzdálené plochy, tedy můžete pozorovat co tam uživatel provádí za operace a nikoliv převzít plnou kontrolu nad vzdáleným počítačem.

Je možné aplikaci vyzkoušet na jednom počítači a to tak, že povolíte sdílení plochy s IP adresou 127.0.0.1(loopback) a následně si spustíte připojení ke vzdálené ploše a zadáte tam opět tuto adresu.

Těším se na případnou kritiku, komentáře a reklamace :)


Galerie

Program byl vytvořen v roce 2012.

 

Stáhnout

Staženo 414x (18 kB)

 

  Aktivity (1)

Program pro vás napsal bartes007
Avatar

Jak se ti líbí článek?
Celkem (1 hlasů) :
4444 4


 



 

 

Komentáře
Zobrazit starší komentáře (17)

Avatar
bartes007
Redaktor
Avatar
bartes007:

Daniel Vítek Ahoj, díky že jsi se připomněl. Předpokládám zítra, tj. středa, že začnu tvořit návod, jak na to. Poprosím tě o trpělivost....;)

 
Odpovědět 23.10.2012 22:17
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Avatar
bartes007
Redaktor
Avatar
Odpovídá na Daniel Vítek
bartes007:

Ahoj,
udělal jsem ti takový malý příklad na C# remoting. Spustíš si serverovou část aplikace a potom klientskou část. V komentářích je drobný popis. Nutno si ale přidat do projektu reference na .dll ShareObject a System.Runtime­.Remoting v klientské a serverové části aplikace.

V klientu zapisuješ text do konzole a server je vypisuje. Hodně jsem vycházel z článku http://blog.vyvojar.cz/…emoting.aspx tak se tam koukni pro inspiraci.

using System;
using System.Collections.Generic;
using System.Text;


namespace ShareObject
{
    public class SdilenyObjekt: MarshalByRefObject
    {
        //toto je společný prostor pro oběaplikace, přes tuto třídu mezi sebou komunikuji
        //proto ji musí klient i server implementovat

        //jediná společná metoda, příjme řetězec a vypíše
        public void NastavHlasku(string str){
            Console.WriteLine(str);
        }




    }
}
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;
using ShareObject;

namespace Server
{
    class Program
    {
        static void Main(string[] args)
        {
            // Vytvoření prázdné instance komunikačního kanálu
            // kanály mohou být TCP, HTTP, IPC
            // číslo 2222 znamená, po jakém portu bude probíhat komunikace,tedy port 2222
            TcpChannel tcpChannel = new TcpChannel(2222);
            // Jeho zaregistrování
            ChannelServices.RegisterChannel(tcpChannel, false);
            //vytvoření instance
            SdilenyObjekt sdileny = new SdilenyObjekt();
            //a následně ho nasdílíš pod názvem RemoteObject.rem
            ObjRef oSdileny = RemotingServices.Marshal(sdileny, "RemoteObject.rem");

            Console.WriteLine("hlasky: ");

                while (true)
                {
                    System.Threading.Thread.Sleep(1000);
                }

        }
    }
}
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;
using ShareObject;

namespace Klient
{
    class Program
    {
        static void Main(string[] args)
        {
            TcpChannel tcpChannel = new TcpChannel();

            ChannelServices.RegisterChannel(tcpChannel, false);
            // žádost o instanci která byla vytvořena na serverové části
            // "tcp://localhost:2222/RemoteObject.rem" => je nabízena na adrese localhost(127.0.0.1) port 2222 a pod názvem RemoteObject.rem
            SdilenyObjekt oSdileny = (SdilenyObjekt)Activator.GetObject(typeof(SdilenyObjekt), "tcp://localhost:2222/RemoteObject.rem");

            string pom;
            while (true)
            {
                Console.Write("Zadej text: ");
                pom = Console.ReadLine().ToString();
                oSdileny.NastavHlasku(pom);

            }


        }
    }
}
 
Odpovědět 28.10.2012 15:05
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na bartes007
Daniel Vítek:

Ahoj, moc díky.. Omlouvám se že píši až teď, jsem tu dlouho nebyl...
Btw. zkoušel jsem ten tvůj prográmek (tento..) když na Windows 7 Starter dám Sdílet obrazovku, místo IP adresy se tam objeví nějaký jiný číslo. ..

 
Odpovědět 10.1.2013 13:18
Avatar
Odpovídá na Daniel Vítek
Luboš Běhounek (Satik):

myslis neco jako tohle
3ffe:1900:454­5:3:200:f8ff:fe21:67cf
?

Pokud ano, tak to je IPv6.

Odpovědět 10.1.2013 13:40
:)
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na Luboš Běhounek (Satik)
Daniel Vítek:

jj něco takovýho...
s tím si ten prográmek právě nedokáže poradit, a píše že to je neošetřená vyjímka.. (PS. v XP mi to jede)

 
Odpovědět 10.1.2013 13:43
Avatar
Odpovídá na Daniel Vítek
Luboš Běhounek (Satik):

Jako takovy nouzovy reseni muzes zkusit na tom pocitaci v ovladacich panelech zakazat IPv6 protokol.

Odpovědět 10.1.2013 13:46
:)
Avatar
bartes007
Redaktor
Avatar
Odpovídá na Daniel Vítek
bartes007:

Ahoj,

je to tak jak píše Satik. Tento program byl výsledkem, kdy jsem si zkoušel komunikaci po TCP/IP. Nezaměřoval jsem se na 100% funkčnost tohoto programu, ale pouze jsem si zkoušel síťovou komunikaci s přenosem dat(obrázků:) ). V programu využívám třídy, které umí pracovat pouze s IPv4(na IPv6 jsem zapomněl, proto ty chyby).

 
Odpovědět 14.1.2013 10:14
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na bartes007
Daniel Vítek:

U toho
using System.Runtime­.Remoting.Chan­nels.Tcp;
mi to podtrhává to .Tcp;
..který dll mám přidat ?

 
Odpovědět 27.1.2013 12:09
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na Daniel Vítek
Daniel Vítek:

Už jsem tu knihovnu našel :)

 
Odpovědět 27.1.2013 12:20
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 27. Zobrazit vše