1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Dexter1993

Beiträge von Dexter1993

  • iE Embedded - Javascript Fenster ist nicht mit den IE Befehlen erreichbar

    • Dexter1993
    • 16. Oktober 2018 um 11:06

    Hey Leute,

    ich brauche unbedingt eure Hilfe. Ich habe folgendes Problem:

    Es gibt bei mir in der Firma eine vom Kunden selbst erstellte Website. Auf dieser trägt man sich als Administrator auf den Kundenrechnern ein. Dem Kunden ist es wichtig,
    diese Eintragungen etc. über diese Website zu tätigen und nicht direkt im Active Directory. Die Website synchronisiert sich anschließend mit dem AD.

    Mein selbst erstelltes Tool, lädt jetzt diese Website über _IECreateEmbedded. Direkt wenn sie geöffnet wird, wird auch schon ein Button "Hinzufügen" angezeigt. Dieser lässt sich

    noch normal über IE_Aktion anklicken. Durch diesen Klick, öffnet sich ein neues Fenster (am Link in der Adressleiste ändert sich nichts).

    INFO: Hinter diesem Button, ist ein Javascript hinterlegt.

    In diesem extra Fenster muss lediglich folgedes passieren:

    1. mein Benutzername (@username) muss in ein Inputfeld eingetragen werden

    2. Nachdem man den Namen durch "Enter" gefunden hat, kann man diesen durch eine Checkbox markieren.
    3. Anschließend sind es nur noch zwei dumme weitere Buttons die gedrückt werden müssen. (DAS WARS...)


    Daher meine Frage:


    Wie kann ich dieses extra Fenster mit IE Aktionen ansprechen?

    Muss ich irgendwie die ebene wechseln, weil das zweite Fenster jetzt anders ansprechbar ist?

    ...




    Ich hab schon mehrere Stunden recherchiert und finde einfach keine Lösung für mein Problem. Meine
    nächsten Ansätze gingen Richtung IE Getformcollection ...;(:thumbdown:
    Screenshot.PNG

  • FileListToArray und Buttons anklicken

    • Dexter1993
    • 16. Januar 2018 um 21:47

    Danke an euch beiden !

    AutoIt: LÖSUNG
    Global $hGuiNew = GUICreate("Quaken", 1000, 145, 750, -1)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_CLOSEQuaken")
    
    Global $aFileList = _FileListToArray(@ScriptDir & "\Pics\Enten", "*")
    Global $aButtons[$aFileList[0] + 1]
    Global $CountX = 0
    
    For $i = 1 To $aFileList[0]
    
        $aButtons[$i] = GUICtrlCreateButton("",$CountX, 5, 135, 135,$BS_BITMAP)
        _GUICtrlButton_SetImage (-1,@ScriptDir & "\Pics\Enten\" & $aFileList[$i],False)
        $CountX = $CountX + 140
        GUICtrlSetOnEvent($aButtons[$i], "_AuswahlEnte")
    
    Next
    
    
    Func _AuswahlEnte()
    
    Select
        Case @GUI_CtrlId
            MsgBox (1,"","Gedrückt" & @GUI_CtrlId)
    EndSelect
    
    
    EndFunc
    Alles anzeigen
  • FileListToArray und Buttons anklicken

    • Dexter1993
    • 16. Januar 2018 um 21:46

    Super Lösung mit @GUI_CtrlId

  • FileListToArray und Buttons anklicken

    • Dexter1993
    • 16. Januar 2018 um 21:45

    HABS !

  • FileListToArray und Buttons anklicken

    • Dexter1993
    • 16. Januar 2018 um 21:40

    alpines Kannst du mir mal einen kurzen Code zeigen. Wie registriere ich die ganzen Buttons als Event...

  • FileListToArray und Buttons anklicken

    • Dexter1993
    • 16. Januar 2018 um 21:34
    Zitat von autoiter

    Okay. Dann wohl irgendwie nicht.

    KA ob ich noch irgendwas falsch mache... Also ein error oder so kommt nicht bei deiner Ergänzung. Leider kann ich danach nicht die Variablen ansprechen...


  • FileListToArray und Buttons anklicken

    • Dexter1993
    • 16. Januar 2018 um 21:26

    autoiter Hm... irgendwie nicht...

  • FileListToArray und Buttons anklicken

    • Dexter1993
    • 16. Januar 2018 um 20:43

    Hallo Community,

    ich habe ein kleines Problem:

    Ich habe einige Bilder in einem Ordner ( Alle selbes Format und Größe). Diese habe ich über den Befehl "FileListToArray" eingelesen.

    Dann habe ich eine "For Next" Schleife erstellt und generiere jetzt immer einen Button und füge diesem Button das erste Bild hinzu und anschließend dem zweiten Button das zweite Bild und so weiter...

    Die Ausgabe sieht dann so aus:

    Siehe Dateianhänge (Unbekannt)

    Jetzt möchte ich, das wenn ich auf eines dieser Buttons klicke, auch folgendes gemeldet wird: (Bild 2 wurde geklickt)

    Ich weiß leider auch nicht, wie ich in meiner For Next Schleife dem Button immer wieder eine neue Variable zuweise...

    AutoIt: Fenster und For Next
    Global $hGuiNew = GUICreate("Fenster", 1000, 145, -1, -1)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_CLOSE")
    
    Global $aFileList = _FileListToArray(@ScriptDir & "\Pics\", "*")
    Global $CountX = 0
    
    For $i = 1 To $aFileList[0]
    
        GUICtrlCreateButton("",$CountX, 5, 135, 135,$BS_BITMAP)
        _GUICtrlButton_SetImage (-1,@ScriptDir & "\Pics\" & $aFileList[$i],False)
        $CountX = $CountX + 140
    
    Next
    Alles anzeigen

    Bilder

    • Unbenannt.PNG
      • 2,86 kB
      • 1.000 × 170
  • TCP Server / Mehrere Clients und TCP Send

    • Dexter1993
    • 3. Januar 2018 um 21:43

    Leute :):):)

    Ich habe gerade die ganze Zeit ausführlich eine genaue Erklärung hier erstellt und alles eingefügt usw. wollte es gerade absenden und habe meinen Fehler selber gesehen.

    Die Nachricht wurde richtig vom Server an den Empfänger gesendet aber mein Client hat die Nachricht an einer bestimmten Stelle falsch ausgewertet OMG Sorry für Belästigung.

    Aber wegen euch habe ich das jetzt herausgefunden :D

  • TCP Server / Mehrere Clients und TCP Send

    • Dexter1993
    • 3. Januar 2018 um 21:17
    Zitat von alpines

    Wie meinst du das?

    Naja ich hab jetzt schon lange daran herumgebaut und habe noch sehr viele Baustellen die noch bearbeiten möchte.

    Weiterhin ist es doch in Prinzip egal wo die Socket des jeweiligen Users hinterlegt wurde. Ob sie nun in einem Array liegt oder halt in der Datentabelle der Datenbank. Sobald sich jemand ausloggt oder den Client schließt, werden die Daten in der DB ja sofort ersetzt.

  • TCP Server / Mehrere Clients und TCP Send

    • Dexter1993
    • 3. Januar 2018 um 21:11

    Ich kann jetzt momentan noch nichts auseinander reißen....

  • TCP Server / Mehrere Clients und TCP Send

    • Dexter1993
    • 3. Januar 2018 um 21:10

    Du hast mir gestern doch noch mit den Status der Freunde geholfen das die in die ListView des jeweiligen Users geladen werden^^

  • TCP Server / Mehrere Clients und TCP Send

    • Dexter1993
    • 3. Januar 2018 um 21:04

    alpines

    Zitat von alpines

    Damit soll der Client der die Nachricht empfangen soll vermutlich identifiziert werden, obwohl die Variante mit Nickname (meiner Meinung nach) eleganter wäre.

    Ich habe schon bei der Registration eines neuen Users folgendes für Ihn in der DB angelegt.

    ID------Name------Mail------Passwort------Socket------Status------Freunde

    Damit arbeite ich die ganze Zeit. die Datenbank lebt und aktualisiert ständig die Infos eines Users

    Wenn sich ein Client jetzt verabschiedet wird Socket sofort auf 0 gesetzt. Genau so der Status usw...

  • TCP Server / Mehrere Clients und TCP Send

    • Dexter1993
    • 3. Januar 2018 um 21:01

    Ich kann das auch jetzt wieder rausnehmen das der Client die Socket ID notiert und anzeigt :D Das habe ich nur mal so eingebaut gehabt am Anfang. Ich hab mit den ganzen kram erst vor einer Woche angefangen und habe mir alles bzgl. Datenbanken, Server und Client rein gezogen....

    Ich werde wahrscheinlich eh alles noch mal neu und Ordentlich aufbauen.... :P

  • TCP Server / Mehrere Clients und TCP Send

    • Dexter1993
    • 3. Januar 2018 um 20:57
    AutoIt: Serverseitige Funktion beim Empfang einer Nachricht
    If StringInStr ($sReceived, $SMsg) Then                                                    ;    Wenn    Empfangenes Wort    =    "SMsg"        dann    -> Leite die Nachricht weiter an den Empfänger
    
        Local $TrimSMsg = StringTrimLeft($sReceived, 5)                                         ;    Hier werden die ersten 5 Stellen des Datenpakets weggeschnitten ($SMsg;)
    
        Dim $all [4]
    
        Local $all = StringSplit ($TrimSMsg,";")                                                 ;    Hier wird der Inhalt immer am Semikolon getrennt (Einzelne Wörter)
    
        ; Sender
        Local $Stat1 = $all[1]
    
        ; Empfänger
        Local $Stat2 = $all[2]
    
        ; Nachricht
        Local $Stat3 = $all[3]
    
        Local $sData = $SMsg & ";" & $Stat1 & ";" & $Stat2 & ";" & $Stat3
    
    
        Local $NewSocket = _DBGetSkt($Stat2)
    
        _TCP_Send($NewSocket,$SMsg & $sData)
    
        ;_TCP_Server_Broadcast($sData)                                                        ;    Leitet die MSG per Boradcast weiter. Der richtige User wartet auf den Datensatz
    
    EndIf
    Alles anzeigen
  • TCP Server / Mehrere Clients und TCP Send

    • Dexter1993
    • 3. Januar 2018 um 20:50

    Das was TCPAccept zurückgibt. Sobald ich den Client nur starte, wird vom Server eine neue Socket ID generiert und dem Client direkt gesendet.

    Der Client schreibt es sich nebenbei noch in ein Label (Socket: XXXX) und notiert sich das unten rechts im Client Fenster.

  • TCP Server / Mehrere Clients und TCP Send

    • Dexter1993
    • 3. Januar 2018 um 20:41

    Also sobald sich ein Client über den "Login" Button einloggt, wird gleichzeitig auch seine Socket ID mitgegeben. Diese wird anschließend unter seinen Infos in der Datenbank mit abgelegt.

    1. Z.B. Tom meldet sich an und sendet dem Server: Seinen SignIn Username, Passwort und eben die Socket

    2. Server nimmt den Datensatz an splittet die Informationen und schreibt diese in die Datenbank

    Also alle Socket IDs stehen in den Datensätzen des jeweiligen Users und ich kann jederzeit mit meiner eigenen Funktion _DBGetSkt(Name) die Socket ID ermitteln.

  • TCP Server / Mehrere Clients und TCP Send

    • Dexter1993
    • 3. Januar 2018 um 20:19

    Hallo liebe Community,

    kurze Frage:

    Ich habe einen TCP Server und mehrere Clients. Ich habe bis jetzt Nachrichten immer via Broadcast vom Server gesendet

    und nur der Client für den die Nachricht gedacht ist, nimmt diese an. Das mach ich indem ich dem Datenpaket Empfänger,Sender und Nachricht beihänge.

    Jetzt will ich das aber endlich richtig machen. Wenn jetzt Name1 eine Nachricht an Name2 senden möchte, soll der Server die erhaltene Nachricht von Name1

    mit TCP Send direkt an Name2 senden.

    Ich habe auch sämtliche Informationen in meinen Server vorliegen. die Socket IDs von jeden User usw.

    Wenn ich aber jetzt die Socket ID von Name2 auslese und in:

    _TCP_Send(Socket von Name2,$SMsg & $sData)

    einsetze geht das nicht.

    Liegt meine Vermutung richtig, das es daran liegt das Name2 zwar mit den Server verbunden ist, aber in diesen Moment nicht die Mainsocket ist? Das ist ja Name1 da von Ihm die Nachricht kommt....


    Vielen Dank.:)

  • Problem mit GUICtrlListView_AddItem und Array

    • Dexter1993
    • 3. Januar 2018 um 01:32

    Danke man :)

    Das Forum hier ist ultra klasse. Sehr schnelle und gezielte Hilfe TOP!

  • Problem mit GUICtrlListView_AddItem und Array

    • Dexter1993
    • 3. Januar 2018 um 01:23

    Danke für den StringReplace Tipp.

    PS: Du musst verstehen, ich wusste vor 4 Tagen nicht einmal was SQLite ist und wie die TCP Kommunikation funktioniert...

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™