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. autoit_dau

Beiträge von autoit_dau

  • FTP, SFTP + SSH Probleme mit login oder 0Byte-Dateien

    • autoit_dau
    • 3. März 2023 um 17:20

    Hallo Andy,

    entschuldige das späte "Danke!".

    Ich bin die letzte Zeit nicht dazu gekommen. Aber vielen Danke für die Tips. Wie heißt die SFTP-UDF richtig, ich finde sie nicht.

    Schönes Wochenende!

  • FTP, SFTP + SSH Probleme mit login oder 0Byte-Dateien

    • autoit_dau
    • 17. Februar 2023 um 18:00

    Hallo,

    ich versuche seit gestern per FTP eine Datei auf einen FTP-Server zu senden.

    Vorab: Ich habe eine skript laufen mit einem anderen Provider - da geht es.

    Die gleiche verwendete Funktion geht bei dogado als Provider nicht - es wird die Datei übertragen - leer.

    Bei 1und1 funktioniert es - als Haupt-FTP-Benutzer. Ein neu angelegter benutzer geht nicht - Login Fehler.

    Die Benutzer bei 1und 1 unterscheiden sich im Protokoll:
    Hauptbenutzer: SFTP + SSH

    Benutzer: SFTP

    Der Benutzer kann sich nicht einloggen - Fehler.

    Wie habt ihr das gelöst?

    Danke vorab!


    Die aufgeführte Funktion hat wieder keine Struktur - ist gewachsen zum Fehlerfinden. (..wenig Ahnung von der Syntax..)

    AutoIt
    Func _FTP_push()
    
        $FTPSession = "FTPPUSH"
        $File_local = $datei_name_
        $File_remote = $datei_name_ftp
    
        $OPEN = _FTP_Open("FTPPUSH")
        $CONN = _FTP_Connect($OPEN, $FTPServer, $FTPBenutzer, $FTPPasswort, 1, 0, 1)
    
        ;_FTP_Connect ( $hInternetSession, $sServerName, $sUsername, $sPassword [, $iPassive = 0 [, $iServerPort = 0 [, $iService = $INTERNET_SERVICE_FTP [, $iFlags = $INTERNET_FLAG_DEFAULT [, $fuContext = 0]]]]] )
    
    
        _FTP_DirSetCurrent($CONN, $FTPFolder)
        MsgBox(0, "FTP", $FTPServer & ":" & $FTPBenutzer & ":" & $FTPPasswort)
        ConsoleWrite("FTP " & $CONN & "local: " & $DatenPfad & $File_local & ' remote: ' & $FTPFolder & $File_remote & @LF)
        $loc_ist = FileExists($DatenPfad & $File_local)
        MsgBox(0, "local_ist", $loc_ist)
    
        $fp_jani = _FTP_FilePut($CONN, $DatenPfad & $File_local, $File_remote, 2)
    
        If Not @error Then
            ConsoleWrite("_FolderPut: " & @extended & " Dateien erfolgreich übertragen" & @CRLF)
        Else
            ConsoleWrite("_FolderPut Fehler:" & @error & " " & @extended & @CRLF)
        EndIf
        ConsoleWrite("FTP jani" & $CONN & ' : ' & $fp_jani & @LF)
    
        Sleep(100)
    
        If @error Then
            MsgBox($MB_SYSTEMMODAL, '_FTP_Connect', 'ERROR=' & @error)
        Else
            Local $iErr = @error, $sFTP_Message
            _FTP_GetLastResponseInfo($iErr, $sFTP_Message)
            ConsoleWrite('$iErr=' & $iErr & '   $sFTP_Message:' & @CRLF & $sFTP_Message & @CRLF)
            ; do something ...
        EndIf
    
    
    
        _FTP_Close($OPEN)
        _FTP_Close($CONN)
    
        Sleep(100)
    EndFunc   ;==>_FTP_push
    Alles anzeigen

    Edit Oscar: Code mit Tidy formatiert und hier als AutoIt-Code eingefügt.

  • Probleme beim Empfangen von Modbus-Daten

    • autoit_dau
    • 17. Februar 2023 um 17:44

    Hallo Moombas,

    danke für die Hilfe. Allerdings läuft das skript "unbeaufsichtigt", d.h. Es soll solange "schleifen" bis wieder einer den Stecker steckt - und weiter gehts.

    Jetzt haab ich ein großes FTP Problem. Da mach im mal ein neues Thema.

    Danke!

  • Probleme beim Empfangen von Modbus-Daten

    • autoit_dau
    • 15. Februar 2023 um 13:41

    Vielen Tausend Dank,

    ..ihr seid Helden!

    ja die Struktur ist vorab schon schlecht und geht bei der Fehlersuche immer komplett in den Eimer. Die global/local Variablen werde ich noch richten.

    So langsam funktioniert das Auslesen. Zum Glück hatte ich "Fehler Verbindungsaufbau" daraufhin habe ich die Funktion dahin geändert, dass sie sich selber aufruft, an Stelle von exit. Fuktioniert - nur leider habe ich ein schlechtes Gefühl dabei. Kann man das so machen?

    ...nochmals vielen Dank!

    AutoIt
    Func _example_nativ()
        ;MsgBox(0, "_example_native()", "Example modbusTCP only via Autoit")
        TCPStartup()
    
        $_native_ModbusTCP_Debug_Send = 1
        $_native_ModbusTCP_Debug_Recv = 1
    
        Global $iSock = TCPConnect($S_IP, $s_port   )
    
        If $iSock = -1 Then
            ConsoleWrite("Fehler Verbindungsaufbau" & @LF)
            ConsoleWrite("Conn = IP: " & $S_IP &" Port:  " & $s_port & " uId: " & $s_uID & " FC: " & $FC &  " RegStart: " & $Start_regJanitza & " RegAnz: " & $RegAnzahl &  @CRLF)
            sleep(10000)
            _example_nativ()
            ;Exit
        EndIf
    
    
            $aJani = _native_ModbusTCP_ReadImputRegister($iSock, $Start_regJanitza, $RegAnzahl, "float") ;Functioncode 4, Register 1, Länge 4 Resiter lesen, als float zurückgeben
            ConsoleWrite("Conn = IP: " & $S_IP &" Port:  " & $s_port & " uId: " & $s_uID & " FC: " & $FC &  " RegStart: " & $Start_regJanitza & " RegAnz: " & $RegAnzahl &  @CRLF)
            ConsoleWrite("$iSock = " & $iSock & @CRLF)
            ;ConsoleWrite("float = " & $aJani[0] & @CRLF)
    
            ;_ArrayDisplay($aJani)
    
    
        TCPShutdown()
    
    EndFunc   ;==>_example_nativ
    Alles anzeigen
  • Probleme beim Empfangen von Modbus-Daten

    • autoit_dau
    • 14. Februar 2023 um 17:44

    Danke,

    genau hier lag auch der Fehler. Ich musste in der ini die Stationsnummer ($s_uID) in Anführungszeichen setzen z.B. "02" und nicht 02

    Ich hatte die gesendeten Daten verglichen. Als die Kommunikation funktioniert hatte war eine "0" mehr im Sendeprotokoll. Dann hab ich geschraubt.....


    Danke erst mal, ich versuche weiter zu kommen...

    Grüße!

  • Probleme beim Empfangen von Modbus-Daten

    • autoit_dau
    • 13. Februar 2023 um 17:09

    Hallo Sven,

    ich habe auf dem Weg der Fehlersuche alles entfernt was nicht gebraucht wird. Deshalb auch kein Ende der While-Schleife. Das Original hat genauso nicht funktioniert und ist mittlerweile zerstört.

    FTP, Listview usw. sind dann noch (wieder) vorgesehen.

    Die ini lade ich mal als txt hoch.

    Danke schon mal!!

    Dateien

    janitza.txt 904 Byte – 240 Downloads
  • Probleme beim Empfangen von Modbus-Daten

    • autoit_dau
    • 13. Februar 2023 um 13:11

    Hallo,

    ich bin mal wieder beim Versuch verschiedene Janitzas per Modbus auszulesen. Mein Versuch erst mal nur einen Janitza auszulesen funktioniert teilweise.

    Bei manschen "Starts" bekomme ich die angefrageten Werte - bei den nächsten "Starts" ist die Antwort zu kurz und die falschen Register werden ausgelesen.

    Bild "matrix_ok" zeigt einen gelungenen Versuch 64 Register (float).

    Bild "matrix_falsch" zeigt einen misslungenen Versuch 64 Register (float).

    Ich habe viel rumprobiert - komme aber zu keiner Lösung. Vielen Dank schon mal!

    AutoIt
    ; Abfragen von Modbusstationen,
    
    
    #include <WinAPI.au3>
    #include <Misc.au3>
    #include <Array.au3>
    #include <File.au3>
    #include <FTPEx.au3>
    #include <Timers.au3>
    
    #include <GUIConstants.au3>
    #include <MsgBoxConstants.au3>
    #include <TrayConstants.au3>
    
    #Include <GuiListView.au3>
    
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <EditConstants.au3>
    #include <StaticConstants.au3>
    #include <ListviewConstants.au3>
    
    Global $ModbusTCP_Debug_Send = 1
    Global $ModbusTCP_Debug_Recv = 1
    
    ;$anzahl_stationen      = 10                                                            ;;;;; Unbedingt noch aus inia die Anzahl ermitteln
    $anzahl_janitzas     = 1
          $FC2 = "04"
         $s_uID = "02"
         $s_port = 502;
    
    
    $Start_regJanitza    = 19000
    
    Local $iTimeout = 5
    
    
                 ;;;;;;;;;;;; Hier gehts los
    HotKeySet("{F8}","_stopIt")            ; F8 Beendet Programm
    $runner = True
    
     $hTimer = TimerInit() ; Begin the timer and store the handle in a variable.
    
    ;MsgBox($MB_SYSTEMMODAL, "Time Difference", $fDiff)
    
    While $runner
    
                   _INI_zu_ARRAY_janitza()
    
    
                       TCPStartup()
    
    
    
                    For $s = 1 TO   UBound($listeJan)-1                ;Anzahl Janitzas
    
    
                         $s_port            = $listeJan[$s][2]
                         $s_uID                = $listeJan[$s][3]
    
                      Global $iSock = TCPConnect($listeJan[$s][1], $s_port)
    
    
                                         If $iSock = -1 Then
                                           ConsoleWrite("Fehler Verbindungsaufbau TCP Modbus" & $listeJan[$s][1] &  @LF)
    
                                           ;Exit
                                           EndIf
    
                                        If $iSock <> -1 Then
                                           ConsoleWrite(" TCP Modbus OK  " & $listeJan[$s][1] & @LF)
    
                                           ;Exit
    
    
    
          $aWR_meter = _ModbusTCP_ReadValues($iSock, $FC2, $Start_regJanitza,64, "float") ;
    
    
          _ArrayDisplay($aWR_meter)
    
    
       TCPCloseSocket($iSock)
        TCPShutdown()
          exit
    
                           EndIf  ;; Verbinugsaufbau OK
    
    
    
    
    ;_____________________________________________________________
    
    
                   NEXT   ; Nächste Station
    
                    TCPCloseSocket($iSock)
    
    
     sleep(Abs($timer *1000) - (_Timer_Diff($hStarttime)))
    
    WEnd
                           TCPShutdown()
    Exit
    
    
    ;;;____________________________________________FUNKTIONEN_________________________________________________________________________________;;;;;;;
    
    Func _stopIt()
    
        $runner = False
        TCPCloseSocket($iSock)
        TCPShutdown()
        Exit
    EndFunc
    
    
    
    ;;;;;;;;;;;;;;;  INI ZU ARRAY JANITZA
    Func _INI_zu_ARRAY_janitza()
    
    Global $listeJan[$anzahl_janitzas+1][14] ;zeile, spalte
    
    FOR $i = 1 To $anzahl_janitzas
    
    $spalte1 = IniRead(@ScriptDir & "\janitza.ini", $i, "Janiza", "xxx")         ;IP Adresse
    $spalte2 = IniRead(@ScriptDir & "\janitza.ini", $i, "PORT", "xxx")             ;Modbus Port
    $spalte3 = IniRead(@ScriptDir & "\janitza.ini", $i, "MODBUS_ID", "xxx")     ;Modbus uID
    $spalte4 = IniRead(@ScriptDir & "\janitza.ini", $i, "KOPF", "xxx")             ;Kopf
    $spalte5 = IniRead(@ScriptDir & "\janitza.ini", $i, "ID", "xxx")             ;ID
    $spalte6 = IniRead(@ScriptDir & "\janitza.ini", $i, "MANUFAKTUR", "xxx")     ;Hersteller
    $spalte7 = IniRead(@ScriptDir & "\janitza.ini", $i, "MODEL", "xxx")         ;Model
    $spalte8 = IniRead(@ScriptDir & "\janitza.ini", $i, "SERIAL", "xxx")         ;Sereiennummer
    $spalte9 = IniRead(@ScriptDir & "\janitza.ini", $i, "NIX", "xxx")             ;Sereiennummer
    
    $spalte10 = IniRead(@ScriptDir & "\janitza.ini", $i, "FTP_HOST", "xxx")     ;FTP host
    $spalte11 = IniRead(@ScriptDir & "\janitza.ini", $i, "FTP_USER", "xxx")     ;FTuser
    $spalte12 = IniRead(@ScriptDir & "\janitza.ini", $i, "PTP_PAS", "xxx")         ;FTPpa
    $spalte13 = IniRead(@ScriptDir & "\janitza.ini", $i, "FTP_PFAD", "xxx")     ;FT Pfad
    
    $listeJan[$i][1] =    $spalte1                                                 ;zeile, spalte
    $listeJan[$i][2] =    $spalte2
    $listeJan[$i][3] =    $spalte3
    $listeJan[$i][4] =    $spalte4
    $listeJan[$i][5] =    $spalte5
    $listeJan[$i][6] =    $spalte6
    $listeJan[$i][7] =    $spalte7
    $listeJan[$i][8] =    $spalte8
    $listeJan[$i][9] =    $spalte9
    $listeJan[$i][10] =    $spalte10
    $listeJan[$i][11] =    $spalte11
    $listeJan[$i][12] =    $spalte12
    $listeJan[$i][13] =    $spalte13
    
    
    NEXT
    
    
    EndFunc
    ;;;;;;;;;;;;;;; ENDE INI ZU ARRAY Janitza
    
    
     ;;;;;;;;;;;;;FUNC MODBUS;;;;;;;;;;;;;;;;;;;;;;
    
    
    Func _ModbusTCP_ReadValues($mainsocket, $FC2, $iStart, $iNum, $sType)
    Local Static $TI = 0
    $TI += 1
    
    
    Local $iBytesToSend = 6
    
    _ModbusTCP_Send($mainsocket, "0x" & Hex($TI, 4) & "0000" & Hex($iBytesToSend, 5)  & $s_uID & Hex($FC2, 2) & Hex($iStart, 4) & Hex($iNum, 4)) ;; komisch Hex($iBytesToSend, 4) ist sonst OK
    ;_ModbusTCP_Send($mainsocket, "0x" & Hex($__TID, 4) & "0000" & Hex($iBytesToSend, 4)  & $ID & Hex($FC, 2) & Hex($iStart, 4) & Hex($iNum, 4))
    
          MsgBox(0, "", "$iSock:  "& $iSock & ' IP: ' &$listeJan[$s][1] &' uID: '& $s_uID  &' Port: '& $s_port &' FC: '& $FC2 &' Reg: '& $Start_regJanitza &' iNum: '& $iNum)
    If @error Then Return SetError(1, 0, 0)
    
    
    Local $sRecv
    
    
    Do
    $sRecv = _ModbusTCP_Recv($mainsocket, 512)
    ;MsgBox(0, "", "FEHLER:  "& "**" & 'local : ' & $sRecv  & ' FC : '& $FC2)
    Until @error Or $sRecv <> ""
    If @error Then Return SetError(2, 0, 0)
    
    
    If Int(String(BinaryMid($sRecv, 1, 2))) <> $TI Then Return SetError(3, 0, 0)
    
    
    Local $iSize = 4 ; default
    
    
    Switch $sType
    Case "word"
    $iSize = 2
    Case "float"
    $iSize = 4
    Case "double"
    $iSize = 8
    EndSwitch
    
    
    Local $aRet[$iNum / ($iSize / 2)], $iTemp        ;$iSize
    
    
    For $i = 0 To UBound($aRet) - 1
    $iTemp = BinaryMid($sRecv, 10 + $i * $iSize, $iSize)
    Switch $sType
    Case "word"
    $aRet[$i] = Int(String($iTemp))
    Case "float"
    $aRet[$i] = _WinAPI_IntToFloat(Int(String($iTemp)))
    Case "double"
    $aRet[$i] = _WinAPI_Int64ToDouble(Int(String($iTemp)))
    EndSwitch
    Next
    Return $aRet
    EndFunc ;==>_ModbusTCP_ReadValues
    
    
    Func _ModbusTCP_Send($mainsocket, $data)
    If $ModbusTCP_Debug_Send Then ConsoleWrite("_ModbusTCP_Send(" & $mainsocket & ", """ & $data & """)" & @CRLF)
    ;$TextZeile_log = $TextZeile_log & "_ModbusTCP_Send(" & $mainsocket & ", """ & $data & """)" & @CRLF
    Local $Send = TCPSend($mainsocket, $data)
    Return SetError(@error, 0, $Send)
    EndFunc ;==>_ModbusTCP_Send
    
    
    Func _ModbusTCP_Recv($mainsocket, $maxlen = 256, $flag = 0)
    Local $sRecv = TCPRecv($mainsocket, $maxlen, $flag)
    Local $error = @error
    If $sRecv <> "" And $ModbusTCP_Debug_Recv Then ConsoleWrite("_ModbusTCP_Recv: " & $sRecv & @CRLF)
    ;$TextZeile_log = $TextZeile_log & "_ModbusTCP_Recv: " & $sRecv & @CRLF
    Return SetError($error, 0, $sRecv)
    EndFunc ;==>_ModbusTCP_Recv
    
    
    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _WinAPI_Int64ToDouble
    ; Description ...: Returns a 8 byte integer as a double value
    ; Syntax.........: _WinAPI_IntToFloat($iInt64)
    ; Parameters ....: $iInt64 - 8 byte Integer value (64 bit)
    ; Return values .: Success - 8 byte integer value as a double
    ; Author ........: funkey
    ; Modified.......:
    ; Remarks .......:
    ; Related .......:
    ; Link ..........:
    ; Example .......: Yes
    ; ===============================================================================================================================
    Func _WinAPI_Int64ToDouble($iInt64)
    Local $tInt64 = DllStructCreate("INT64")
    Local $tDouble = DllStructCreate("double", DllStructGetPtr($tInt64))
    DllStructSetData($tInt64, 1, $iInt64)
    Return DllStructGetData($tDouble, 1)
    EndFunc ;==>_WinAPI_Int64ToDouble
    
    
    
    ; #FUNCTION# ====================================================================================================================
    ; Name...........: UAS  E`WEB https://www.autoitscript.com/forum/topic/49435-lparam-array/?tab=comments#comment-373039
    ; Description ...:   WORD zu Dword
    ; Modified.......:
    ; Remarks .......:
    ; Related .......:
    ; Link ..........:
    ; E
    $iWord = MakeWord(0x34,0x12)
    ConsoleWrite("0x" & Hex($iWord) & @CRLF)
    ConsoleWrite("0x" & Hex(LoByte($iWord)) & @CRLF);These output original values passed to MakeWord()
    ConsoleWrite("0x" & Hex(HiByte($iWord)) & @CRLF)
    ;$TextZeile_log = $TextZeile_log & "0x" & Hex($iWord) & @CRLF
    
    Func LoByte($iWord)
        Return BitAND($iWord, 0xFF)
    EndFunc   ;==>LoByte
    
    Func HiByte($iWord)
        Return BitAND($iWord, 0xFF00) / 0x100
    EndFunc   ;==>HiByte
    
    Func MakeWord($iLoByte, $iHiByte)
        If $iHiByte < 0x80 Then
            Return BitOR($iHiByte * 0x100, $iLoByte)
        Else
            Return BitOR($iHiByte, 0xFF00) * BitOR(0x100, $iLoByte)
         EndIf
    
    EndFunc   ;==>MakeWord
    Alles anzeigen

    Bilder

    • martix_falsch.PNG
      • 22,32 kB
      • 251 × 791
    • matrix_ok.PNG
      • 34,12 kB
      • 285 × 800
  • Modbus TCP geht nur bei SlaveID =1

    • autoit_dau
    • 4. Oktober 2021 um 15:43

    Hallo,

    habe es inzwischen anders lösen müssen. Habe eine SPS - diese fragt die Geräte mit unterscheidleicher ID ab. Die SPS lese ich dann aus. Funktioniert - gefällt mir aber nicht.

    Den Original-Code habe ich schon gelöscht - sah aber so ungefähr aus:

    Code
    $Start_regJanitza = 19000
    
    
    TCPStartup()
    
    
    _INI_zu_ARRAY() ;;;IP adressen, FTP usw aus xx.ini auslesen
    
    _ArrayDisplay($liste1)
    
    
    For $s = 1 TO UBound($liste1)-1 ;Anzahl Janitza 1- 4
    
    
    Global $iSock = TCPConnect($liste1[$s][1], 502) ;;; Aus Ini die IP _ Array - Spalte 1
    
    $aWR_janitza = _ModbusTCP_ReadValues($iSock, 4, $Start_regJanitza, 80, "float") ;
    
    
    _ArrayDisplay($aWR_janitza)
    
    
    NEXT ; Nächste Station
    
    
    TCPCloseSocket($iSock)
    Alles anzeigen

    Für einen Tip bzg. der SlaveID bin ich aber sehr dankbar.

    Grüße!!

  • Modbus TCP geht nur bei SlaveID =1

    • autoit_dau
    • 15. September 2021 um 16:37

    danke für die Antwort.

    Aber die Geräte kann ich nicht ändern - sind extern und dürfen nur ausgelesen werden. Auf die Vorgaben habe ich als keinen Einfluß.


    Z.B. sind bei manchen Geräten (Parkregler) angeschlossenen Sensoren auf der geleichen IP aber mit einer anderen ID zu finden.

    Grüße!

  • Modbus TCP geht nur bei SlaveID =1

    • autoit_dau
    • 15. September 2021 um 15:02

    Hallo,

    ich habe nun einige Modbus TCP- Kommunikationen zum laufen gebracht. d.h. ich kann z.B. einen Janitza UMG 604 auslesen.

    Probleme ergenben sich, wenn die ID nicht "1"ist.

    Ich nutze: TCPConnect(192.168.1.1, 502) zum ersten Janitza (ID 1)

    Ich nutze: TCPConnect(192.168.1.2, 502) zum zweiten Janitza (ID 2)

    Der zweite Janitza hat aber die ID 2

    hier geht dann gar nichts mehr - Skript bleibt hängen.

    Gibt es eine Möglichekeit die Mosbus-ID mit einzustellen?


    Danke schon mal!

  • Fremden Knopf auswerten

    • autoit_dau
    • 20. April 2011 um 09:36

    Danke progandy!

    Code
    #Include <GuiButton.au3>
    Run("calc")
    WinWaitActive("Rechner")
    $hWnd = ControlGetHandle("Rechner","","Button42")
    If $hWnd = 0 Then ;Standardansicht
        $hWnd = ControlGetHandle("Rechner","","Button5")
        If $hWnd = 0 Then Exit
    EndIf
    Do 
        Sleep(10)
        $x = (BitAND(_GUICtrlButton_GetState($hWnd),$BST_PUSHED)==$BST_PUSHED)
    Until $x
    MsgBox(0, '', "Nummer 7 im Rechner gedrückt")
    Alles anzeigen
  • Fremden Knopf auswerten

    • autoit_dau
    • 14. April 2011 um 18:30

    Hallo,

    hab schon ganz viel gelesen. Ich kann auch den Inhalt und die Farbe des Buttons rausfinden - nur nicht ob er gedrückt wurde.

    ich suche aber nochmal!

  • Fremden Knopf auswerten

    • autoit_dau
    • 14. April 2011 um 16:13

    Hallo,
    Wenn ich meine eigenen Dialogboxen verwende ist das Auwerten "welcher Knopf gedrückt" nicht sonderlich schwer. Wie funktioniert das aber bei fremden Fenstern? Ich habe hier ein "Bild öffnen" - Dialog mit OK ("Button1"), Abbruch ("Button2"), Neu ("Button3"). Wenn nun Abbruch gedrückt wird soll mein eigentliches Skript Starten.

    aber ich hab mich irgendwie verlaufen....

    danke schon mal!

  • Textteile in einer Zelle unterschiedlich formatieren

    • autoit_dau
    • 4. November 2010 um 10:54

    Danke,

    klappt natürlich. Wenn man ein Makro in VBA aufzeichnet, muss mann die meisten msAttribute in $maAttribute umwandeln.

    Danke an Alle!

  • Textteile in einer Zelle unterschiedlich formatieren

    • autoit_dau
    • 2. November 2010 um 06:56

    ...gibts da ein kleines Beispiel oder Beschreibung. Ich finde die RichTextBox nicht.
    Die andere Textbox fügt sich schon nicht ein.

    grüße!

  • Textteile in einer Zelle unterschiedlich formatieren

    • autoit_dau
    • 1. November 2010 um 15:28

    Danke,

    wenn mans richtig versteht - wirklich gut!

    Aber ich habe noch ein kleines Problem mit dem erstellen einse Textfeldes in Excel.
    Ich habe (Danke für den Tip) ein Makro aufgezeichnet und es versucht für autoit aufzubereiten. Irgend etwas stimmt aber noch nicht:

    C
    #Include <Excel.au3>
    #include <Date.au3>
    
    
    
    
    Global $Zxlsdir= "B:\autoskript\test\Test.xls";FileOpenDialog("Zieltabelle auswählen", @ScriptDir, "*.xls (*Test*.xls)")
    $oExcel_Q = _ExcelBookOpen($Zxlsdir)
    $oExcel_Q.Visible = true
    
    
     	$oExcel_Q.ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 83, 18, 124, 72).Select
    	 $oExcel_Q.ActiveSheet.Selection.Characters.Text = "HAllo"
    
    
    
    
    
    	With $oExcel_Q.Selection.Characters(1, 6).Font
        	.Name = "Arial"
        	.FontStyle = "Standard"
        	.Size = 10
        	.Strikethrough = False
        	.Superscript = False
        	.Subscript = False
        	.OutlineFont = False
        	.Shadow = False
         	.ColorIndex = 3
    	End With
    Alles anzeigen


    Gehört nicht agnz hier rein - Text soll aber auch formatiert werden.


    Danke !

  • Textteile in einer Zelle unterschiedlich formatieren

    • autoit_dau
    • 29. Oktober 2010 um 17:29

    Danke auch!

    schwerer Stoff - werd mich bemühen.

    Ich habe das so verstanden, dass ich immer nur nach dem Schreiben formatieren kann. Das ist schwierig, da ja auch mal ein "X" oder "POQ" stehen kann und ich die Zeichanzahl nicht weiß.
    Kann ich die Attribute beim schreiben auch gleich mitgeben?

    ..cells($i,$y).Value= "XX" (fett, Arial, schwarz, Größe 12); & " "& "1" (TimesNew, rot, Größe 10)

    schönes WE

  • Textteile in einer Zelle unterschiedlich formatieren

    • autoit_dau
    • 28. Oktober 2010 um 15:23

    Tausend Dank!

    wo findet man die Refernz z.B. .Characters ?
    in der Autoit Hilfe nicht.

    Grüße!

  • Textteile in einer Zelle unterschiedlich formatieren

    • autoit_dau
    • 28. Oktober 2010 um 12:44

    da ich beides nicht gut kann würde ich leiber Autoit nehmen ;)

  • Textteile in einer Zelle unterschiedlich formatieren

    • autoit_dau
    • 28. Oktober 2010 um 12:27

    Hallo,
    ich habe ein Problem mit dem Zusammenführen von Zellen und möchte wissen ob (und wie) das in Autoit möglich ist.
    zum Problem:
    Ich habe ein Tabellenblatt mit zwei Spalten A,B
    in Spalte A (Zeile 1) steht: XX
    in Spalte B (Zeile 1) steht: 1


    das soll jetzt in eine Zelle in ein anderes Blatt, IN EINE ZELLE gepackt werden. Aber:
    "XX" (fett, Arial, schwarz, Größe 12); Leerzeichen;"1" (TimesNew, rot, Größe 10)
    so in etwa:
    XX 1

    geht das oder muss ich VBA bemühen?

    schon mal Danke!
    autoit_dau

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™