Listview Item aus einer Gui in andere gui übertragen..

  • Hallo...

    Habe folgendes Problem was ich lösen möchte..
    Ich will ein listview Item übetragen an eine andere Gui in eine inputbox.
    Kann mir jamand dabei helfen oder einen beispiel geben ??

    Danke

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

    Einmal editiert, zuletzt von subzero007 (7. Oktober 2009 um 10:39)

  • Drag´n´drop ist das völlig egal woher und wohin.....

  • Hey,
    zwischen zwei AUTOIT Scripten wie mache ich das ?

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

  • schau mal bei GUICtrlSetState() auch bei den Bemerkungen...
    Auf die Schnelle habe ich mit Listviews hierein Beispiel gefunden...
    Das Beispiel in der Hilfe sollte auch weiterhelfen http://www.autoitscript.com/autoit3/docs/f…istViewItem.htm

    */EDIT/* da müssen die "Nachrichtenspezialisten" ran, innerhalb einer GUI ist das Drag´n´drop simpel, aber zwischen 2 AutoIt-Programmen (und deren Listviews) hab ich auf die Schnelle nichts gefunden.
    Es gibt eine Möglichkeit, aber die ist sehr "unschön"...ich warte erstmal auf die Spezis bevor ich mich hier blamiere^^

    ciao
    Andy


    "Schlechtes Benehmen halten die Leute doch nur deswegen für eine Art Vorrecht, weil keiner ihnen aufs Maul haut." Klaus Kinski
    "Hint: Write comments after each line. So you can (better) see what your program does and what it not does. And we can see what you're thinking what your program does and we can point to the missunderstandings." A-Jay

    Wie man Fragen richtig stellt... Tutorial: Wie man Script-Fehler findet und beseitigt...X-Y-Problem

    Einmal editiert, zuletzt von Andy (7. Oktober 2009 um 12:11)

  • Hey,

    sind nicht in beiden GUI's Lisviews das eine ist eine Listview das andere ist eine Inputbox,
    konnte leider aus dem beispiel von autoitscript.com nichts zu meinem Problem Finden.

    eine idee?

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

  • Bin zwar kein "Nachrichtenspezi" aber die Kommunikation zwsichen 2 Autoit-Skripten funktioniert so:

    Spoiler anzeigen
    [autoit]


    ;Script2 -> Sender
    #include "MessageHandler.au3"

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

    $Local_ReceiverID_Name = "Script2sReceiverID";This is the ID that the other script will use to send data
    $Remote_ReceiverID_Name = "Script1sReceiverID";This is the ID of the script we want to send data too

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

    $hwnd = _SetAsReceiver($Local_ReceiverID_Name)
    ConsoleWrite("hwnd of the Local_ReceiverID_Name is " & $hwnd & @crlf)
    $myFunc = _SetReceiverFunction("_MyFunc2")
    ConsoleWrite("My data receiver function is " & $myFunc & @crlf)

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

    $Str = InputBox(@ScriptName," I am " & @ScriptName & @crlf & "Enter some data to be sent to the other script")

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

    $iSent = _SendData($Str,$Remote_ReceiverID_Name)

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

    While 1
    sleep(100)
    WEnd

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

    Func _MyFunc2($vText)
    Msgbox(0,@ScriptName,@ScriptName & " has received a message" & @crlf & $vText)
    Exit
    EndFunc

    [/autoit]
    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    ;Script1 -> Empfänger
    #include "MessageHandler.au3"

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

    $Local_ReceiverID_Name = "Script1sReceiverID";This is the ID that the other script will use to send data
    $Remote_ReceiverID_Name = "Script2sReceiverID";This is the ID of the script we want to send data too

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

    $hwnd = _SetAsReceiver($Local_ReceiverID_Name)
    ConsoleWrite("hwnd of the Local_ReceiverID_Name is " & $hwnd & @crlf)
    $myFunc = _SetReceiverFunction("_MyFunc2")
    ConsoleWrite("My data receiver function is " & $myFunc & @crlf)

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

    While 1
    Sleep(1000)
    WEnd

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

    Func _MyFunc2($vText)
    Msgbox(0,@ScriptName,"I am " & @ScriptName & " I have received some data" & @crlf & @crlf & $vText & @crlf & @crlf & "And now I'm sending the data back")
    $iSent = _SendData($vText,$Remote_ReceiverID_Name)
    Exit
    EndFunc

    [/autoit]

    Wie man ein Listviewitem ausliest und ein Input verändert erkläre ich jetzt aber nicht (das kannst du auch!)

  • Hey,

    ich verstehe folgendes noch nicht ganz.

    Wofür steht = $Local_ReceiverID_Name = "Script2sReceiverID";This is the ID that the other script will use to send data
    und wofür steht = $Remote_ReceiverID_Name = "Script1sReceiverID";This is the ID of the script we want to send data too

    Wie kann ich den das item übergeben von der listview und wo definiere ich welche inputbox er das item aus der listview schreiben soll?

    Habe es noch nicht so verstanden ??

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

  • Moin Moin Subzero007.

    Also wenn Du es einfach haben möchtest, dann speicherst Du in Prog-1 die Daten in eine Datei und in Prog-2 kannst Du dann die Daten wieder einlesen. Damit man die Datei evtl. nicht sieht, einfach ein Attrib +h und nach der Verwendung, wenn es nicht mehr benötigt wird die Datei löschen.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

  • Beide Skirpte haben eine definierte "ID" (eben die festgelgeten Variablen).

    $hwnd = _SetAsReceiver($Local_ReceiverID_Name) trägt man die ID ein, die das andere Skript zum Senden verwendet.


    Die gesendete Nachricht ist im Bsp. $str -> bei dir wäre es eben das ausgelesene Listviewitem
    Was mit der Nachricht passieren soll entscheidest du im Receiver Skript.
    Im Beispiel ist es eine Konsolenausgabe, bei dir wäre es die Nachricht in ein Input-Control zu schreiben.

    Vielleicht kanns auch jemand besser erklären, hast du schon etwas mit dem Beispiel gespielt?

  • Zitat

    Wie kann ich den das item übergeben von der listview ....


    du köntest ein Kontextmenü machen, oder doppelklicken, oder linksklicken, oder Ctrl+Alt+O benutzen....irgendwas halt, um eine Aktion auszulösen, und dann schickst du das Listview-Item an das "andere" Script

    Zitat

    ...und wo definiere ich welche inputbox er das item aus der listview schreiben soll?


    naja...

    [autoit]

    if $vText<>"" then GuiCtrlSetData($inputbox,$vText) ; wenn etwas empfangen wurde, dann trag es in die Inputbox ein

    [/autoit]

    ggf würde es so auch mit Drag´n´Drop funktionieren , "DRAG"-Event schickt das listviewitem los, "DROP"-Event im Empfangsscript holt es aus der gesendeten Variablen...