Desktopübertragung / VNC (UltraVNC...) ?

  • Hallo an Alle,

    UltraVNC mit Autoit zu bedienen (verbinden, Position ändern/verschieben, steuern usw,) ist einfach, schön und gut :)

    Gibt es irgendeine andere Möglichkeit mehrere geöffnete vncviewer-Fenster, in Autoit Gui einzubauen?

    man kann ja das ganze mit _WinApi_SetParent in Gui einbauen, doch erst muss vncviewer Fenster existieren und WinWait muss ja warten, kann man das ganze vielleicht schöner lösen? passende UDF habe ich noch nicht gefunden...ich habe DeskStream gefunden, doch da blicke ich nicht durch. (Schade das daraus keine UDF wurde... :( )

    Danke im vorraus für Antwort.

    Gruss,
    Automatisator

  • Hi,

    wobei blickst du bei Deskstream nicht durch?

    Auf dem Rechner, von dem du streamen möchtest, startest du den Server.
    Auf einem anderen Rechner den Client, der stellt dann das Monitorbild des Servers dar. Dieses Bild kann man zoomen, verschieben usw.

    Zum testen kann man Client und Server auch auf einem Rechner starten.

  • Hallo Andy,

    ja, mit eine Verbindung klappt ja problemlos, was ich versuche ist jedoch mehrere Verbindungen aufbauen und das ganze dann in GUI nebeneinander Positionieren.... ähnlich wie Italc, Vision usw.

    die jetzige unschöne Lösung : Autoit + UltraVNC

    es ist so das erst WinWait auf vncviewer-Fenstern warten muss, und erst wenn vncviewer-Fenster existiert kann die Funktion _WinApi_SetParent eingesetzt werden...


    EDIT:
    http://www.autoitscript.com/forum/topic/71…-sc-and-autoit/
    http://piccaso.pi.funpic.de/stuff/1scdau3.htm

    Gruss,
    Automatisator

    3 Mal editiert, zuletzt von Automatisator (8. Juni 2012 um 01:18)

  • genau passendes:
    http://www.autoitscript.com/forum/topic/22…/page__hl__vncx

    Downloaden und es zeigt Virus, es ladet auch nicht das was da angegeben ist...(VORSICHTIG!)

    die Daten sind auch veraltet... :(

    gibt es den keine Möglichkeit VNCViewer als Object zu intigrieren...?

    was mir einfällt: man kann java VNCViewer in Browser öffnen, und mit IE.au3. (dachte ich) lässt sich das ganze realisieren, es gibt jedoch ein Problem, hier ein Beispiel:

    [autoit]

    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <IE.au3>
    $IE = _IECreateEmbedded()

    [/autoit][autoit][/autoit][autoit]

    $hGUI = GUICreate("WebBrowser", 780, 607, 195, 119)
    $browser = GUICtrlCreateObj($IE, -1, -1, 780, 601)

    [/autoit][autoit][/autoit][autoit]

    GUISetState(@SW_SHOW)

    [/autoit][autoit][/autoit][autoit]

    _IENavigate($IE, "http://192.168.1.100:5800")

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

    [/autoit][autoit][/autoit][autoit]

    EndSwitch
    WEnd

    [/autoit]


    und es zeigt nichts an :(
    was ich versuche ist; das ganze skalieren um zweiten VNCViewer daneben zu positionieren. (PC1, PC2)
    wie kann man das ganze Skalieren... ?

    Einmal editiert, zuletzt von Automatisator (16. Juni 2012 um 14:44)

  • hier ist der Example Code:

    [autoit]

    Imports VncSharp
    Imports System.Windows.Forms

    [/autoit][autoit][/autoit][autoit]

    Public Class VncClientExampleForm
    ' Some times you might want to define your own function for the
    ' password handler. Here's how you do it (see the ctor below for more):
    '
    ' Private Shared Function GetPassword() As String
    ' ' Do your database/file/etc. work here and return a password
    ' Return "vncsharp"
    ' End Function

    [/autoit][autoit][/autoit][autoit]

    Public Sub New()
    InitializeComponent()

    [/autoit][autoit][/autoit][autoit]

    ' NOTE: if you want to add your own delegate for the password
    ' handler, you do it here (see static GetPassword() function above).
    ' rd.GetPassword = New AuthenticateDelegate(AddressOf GetPassword)
    End Sub

    [/autoit][autoit][/autoit][autoit]

    Private Sub FlipMenuOptions()
    ConnectToolStripMenuItem.Enabled = Not rd.IsConnected

    [/autoit][autoit][/autoit][autoit]

    DisconnectToolStripMenuItem.Enabled = rd.IsConnected
    CTRLALTDELToolStripMenuItem.Enabled = rd.IsConnected
    FullScreenRefreshToolStripMenuItem.Enabled = rd.IsConnected
    ALTF4ToolStripMenuItem.Enabled = rd.IsConnected
    CTRLESCToolStripMenuItem.Enabled = rd.IsConnected
    CTRLToolStripMenuItem.Enabled = rd.IsConnected
    ALTToolStripMenuItem.Enabled = rd.IsConnected
    CopyClipboardContentsToolStripMenuItem.Enabled = rd.IsConnected
    End Sub

    [/autoit][autoit][/autoit][autoit]

    Private Sub ConnectToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ConnectToolStripMenuItem.Click
    ' Get a host name from the user.
    Dim host As String = ConnectDialog.GetVncHost()

    [/autoit][autoit][/autoit][autoit]

    ' As long as they didn't click Cancel, try to connect
    If (Not host = Nothing) Then
    Try
    rd.Connect(host, ViewOnlyToolStripMenuItem.Checked, ScaledViewToolStripMenuItem.Checked)
    Catch vex As VncProtocolException
    MessageBox.Show(Me, _
    String.Format("Unable to connect to VNC host: {0}. Check that a VNC host is running there.", vex.Message), _
    String.Format("Unable to Connect to {0}", host), _
    MessageBoxButtons.OK, _
    MessageBoxIcon.Exclamation)
    Catch ex As Exception
    MessageBox.Show(Me, _
    String.Format("Unable to connect to host. Error was: {0}", ex.Message), _
    String.Format("Unable to Connect to {0}", host), _
    MessageBoxButtons.OK, _
    MessageBoxIcon.Exclamation)
    End Try
    End If
    End Sub

    [/autoit][autoit][/autoit][autoit]

    Private Sub DisconnectToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DisconnectToolStripMenuItem.Click
    If (rd.IsConnected) Then
    rd.Disconnect()
    End If
    End Sub

    [/autoit][autoit][/autoit][autoit]

    Private Sub ClippedViewToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ClippedViewToolStripMenuItem.Click
    ClippedViewToolStripMenuItem.Checked = True
    ScaledViewToolStripMenuItem.Checked = False

    [/autoit][autoit][/autoit][autoit]

    ' Turn-off scaling and use clipping
    If (rd.IsConnected) Then
    rd.SetScalingMode(False)
    End If
    End Sub

    [/autoit][autoit][/autoit][autoit]

    Private Sub ScaledViewToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ScaledViewToolStripMenuItem.Click
    ClippedViewToolStripMenuItem.Checked = False
    ScaledViewToolStripMenuItem.Checked = True

    [/autoit][autoit][/autoit][autoit]

    ' Turn-off clipping and use scaling
    If (rd.IsConnected) Then
    rd.SetScalingMode(True)
    End If
    End Sub

    [/autoit][autoit][/autoit][autoit]

    Private Sub FullScreenRefreshToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FullScreenRefreshToolStripMenuItem.Click
    ' Request a fullscreen update (normally incremental updates are sent)
    If (rd.IsConnected) Then
    rd.FullScreenUpdate()
    End If
    End Sub

    [/autoit][autoit][/autoit][autoit]

    Private Sub ViewOnlyToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ViewOnlyToolStripMenuItem.Click
    ViewOnlyToolStripMenuItem.Checked = Not ViewOnlyToolStripMenuItem.Checked

    [/autoit][autoit][/autoit][autoit]

    ' Turn view-only mode (no mouse/keyboard events sent) on or off
    If (rd.IsConnected) Then
    rd.SetInputMode(ViewOnlyToolStripMenuItem.Checked)
    End If
    End Sub

    [/autoit][autoit][/autoit][autoit]

    Private Sub CopyClipboardContentsToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CopyClipboardContentsToolStripMenuItem.Click
    ' Copy the contents of the local clipboard into the server's clipboard
    ' so that it can be pasted. Only works with text.
    If (rd.IsConnected) Then
    rd.FillServerClipboard()

    [/autoit][autoit][/autoit][autoit]

    MessageBox.Show(Me, _
    "Your clipboard's text was copied to the remote host.", _
    "Clipboard Copied", _
    MessageBoxButtons.OK, _
    MessageBoxIcon.Information)
    End If
    End Sub

    [/autoit][autoit][/autoit][autoit]

    Private Sub CTRLALTDELToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CTRLALTDELToolStripMenuItem.Click
    If (rd.IsConnected) Then
    rd.SendSpecialKeys(SpecialKeys.CtrlAltDel)
    End If
    End Sub

    [/autoit][autoit][/autoit][autoit]

    Private Sub ALTF4ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ALTF4ToolStripMenuItem.Click
    If (rd.IsConnected) Then
    rd.SendSpecialKeys(SpecialKeys.AltF4)
    End If
    End Sub

    [/autoit][autoit][/autoit][autoit]

    Private Sub CTRLESCToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CTRLESCToolStripMenuItem.Click
    If (rd.IsConnected) Then
    rd.SendSpecialKeys(SpecialKeys.CtrlEsc)
    End If
    End Sub

    [/autoit][autoit][/autoit][autoit]

    Private Sub CTRLToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CTRLToolStripMenuItem.Click
    If (rd.IsConnected) Then
    rd.SendSpecialKeys(SpecialKeys.Ctrl, False) ' Don't release CTRL
    End If
    End Sub

    [/autoit][autoit][/autoit][autoit]

    Private Sub ALTToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ALTToolStripMenuItem.Click
    If (rd.IsConnected) Then
    rd.SendSpecialKeys(SpecialKeys.Alt, False) ' Don't release ALT
    End If
    End Sub

    [/autoit][autoit][/autoit][autoit]

    Private Sub VncClientExampleForm_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
    ' If the user tries to close the window without doing a clean
    ' shutdown of the remote connection, do it for them.
    If (rd.IsConnected) Then
    rd.Disconnect()
    End If
    End Sub

    [/autoit][autoit][/autoit][autoit]

    Private Sub rd_ConnectComplete(ByVal sender As System.Object, ByVal e As VncSharp.ConnectEventArgs) Handles rd.ConnectComplete
    ' Update the Form to match the geometry of remote desktop, including the height of the menu bar.
    ClientSize = New Size(e.DesktopWidth, e.DesktopHeight + MenuStrip1.Height)

    [/autoit][autoit][/autoit][autoit]

    ' Change the Form's title to match the remote desktop name
    Text = e.DesktopName

    [/autoit][autoit][/autoit][autoit]

    ' Give the remote desktop focus now that it's connected.
    rd.Focus()

    [/autoit][autoit][/autoit][autoit]

    FlipMenuOptions()
    End Sub

    [/autoit][autoit][/autoit][autoit]

    Private Sub rd_ConnectionLost(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rd.ConnectionLost
    ' Let the user know of the lost connection
    MessageBox.Show(Me, _
    "Lost Connection to Host.", _
    "Connection Lost", _
    MessageBoxButtons.OK, _
    MessageBoxIcon.Information)
    FlipMenuOptions()
    End Sub

    [/autoit][autoit][/autoit][autoit]

    Private Sub rd_ClipboardChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rd.ClipboardChanged
    ' You normally wouldn't do this (i.e., you might show something in the status bar),
    ' but as a demo, let the user know that there is new data in the local clipboard
    MessageBox.Show(Me, _
    "Remote clipboard copied to local host.", _
    "Clipboard Changed", _
    MessageBoxButtons.OK, _
    MessageBoxIcon.Information)
    End Sub
    End Class

    [/autoit]

    kann mir wirklich hier keiner helfen? :(