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

Beiträge von JanausSm

  • Problem mit Verschlüsselung zw Autoit und PHP7.2

    • JanausSm
    • 12. März 2020 um 20:47

    Na ich sende ja aus dem AutoIT Programm eine art Anfrage zum Webserver/PHP/MySql und bekomme dann per Echo aus dem PHP eine Rückantwort wieder ins AutoIT Programm.

    Für mich sieht das so aus das die Anfrage schon per HTTPS hin an der Webserver geschickt werden kann. Nur das was dann zurück geht, per Echo, ein zwei Sekunden später, das ist dann nicht verschlüsselt.

    Oder?

    Jedenfalls wenn ich die PHP Seite in den Browser eingeben würde, dann könnte man das Echo sehen. Wenns jetzt nicht verschlüsselt wäre könnten man dann alles sehen.


    Damit hab ich das bis jetzt immer verschickt und die Rückantwort bekommen.

    Code
        Local $objHTTP = objCreate( "MSXML2.ServerXMLHTTP.3.0" )
        If @error Then MsgBox(262144, "_Post_ServerXMLHTTP()", '$objHTTP = objCreate( "MSXML2.ServerXMLHTTP.3.0" )')
    
        ConsoleWrite("StringLen Url: " & StringLen($url) & @CR)
        ConsoleWrite("String Url: " & $url & @CR)
    
        $objHTTP.open("GET", $url, false)
        $objHTTP.setRequestHeader( "Content-type", "application/x-www-form-urlencoded" );
        $objHTTP.Send(" ")
    
        Local $Result = $objHTTP.responseText
    
        Return $Result
    Alles anzeigen
  • Problem mit Verschlüsselung zw Autoit und PHP7.2

    • JanausSm
    • 8. März 2020 um 13:56

    Hallo zusammen,

    ich hab mir mal vor längerer Zeit, hier im Forum, Scripte herausgesucht, mit denen man Daten zwischen Autoit und PHP hin und herschicken kann.

    Da seit PHP 7.2 so Funktionen wie zB mcrypt_create_iv() oder mcrypt_encrypt() wohl ersetzt worden sind funktioniert das nur noch bis PHP7.1 :rolleyes:

    Mein Hoster hat aber auf PHP7.2 umgestellt. ;(

    Meine Frage wäre, gibts den da schon irgendwo etwas, wo dieses Thema behandelt wird?

    Selbstverständlich hab ich selbst schon geforscht. Hab aber nur Infos zu Scripten gefunden die aber nicht ab PHP7.2 in Verbindung mit Autoit laufen.

    Kann mir da irgendwie geholfen werden?

    Gruß Jan

  • Webdriver Chrome Fenster versteckt schalten, Alternative zum _IECreate()

    • JanausSm
    • 19. Januar 2020 um 10:32

    Ja das habe ich schon getan. Aber wie es so oft ist. Ich weis nicht richtig in welche Richtung ich suchen muss. Also nach welchen Suchbegriffen. Suchbegriffe wie visible oder hide ect.

  • Webdriver Chrome Fenster versteckt schalten, Alternative zum _IECreate()

    • JanausSm
    • 16. Januar 2020 um 16:19

    Naja, vielleicht werfe ich hier auch einiges über den "Haufen" .... Sprich ich verstehe wohl die Zusammenhänge nicht richtig.

  • Webdriver Chrome Fenster versteckt schalten, Alternative zum _IECreate()

    • JanausSm
    • 3. Januar 2020 um 12:46

    Hallo zusammen,

    ich probiere gerade ein wenig mit Webdriver/Chrome herum, und versuche, immer, in etwa jedenfalls, :S hin zubekommen, was ich auch mit den Funktionen in der IE.au3 machen kann.

    Na ja und da bin ich auf die Möglichkeit, $iVisible - "Gibt an, ob das Browserfenster sichtbar sein soll", in der _IECreate, in der IE.au3 gestoßen.

    Das hab ich versucht in der Webdriver zu finden. Es gibt zwar die Möglichkeit das schwarze Fenster der chromedriver.exe zu verstecken, aber wohl nicht das eigentliche Browserfenster.

    Das öffnen des Browserfensters geschieht wohl in der Funktion _WinHttpSendRequest() ---> Local $aCall = DllCall($hWINHTTPDLL__WINHTTP .....

    Code
    ; #FUNCTION# ;===============================================================================
    ; Name...........: _WinHttpSendRequest
    ; Description ...: Sends the specified request to the HTTP server.
    ; Syntax.........: _WinHttpSendRequest($hRequest [, $sHeaders = Default [, $sOptional = Default [, $iTotalLength = Default [, $iContext = Default ]]]])
    ; Parameters ....: $hRequest - Handle returned by _WinHttpOpenRequest().
    ;                  $sHeaders - [optional] Additional headers to append to the request. Default is $WINHTTP_NO_ADDITIONAL_HEADERS.
    ;                  $vOptional - [optional] Optional data to send immediately after the request headers. Default is $WINHTTP_NO_REQUEST_DATA.
    ;                  $iTotalLength - [optional] Length, in bytes, of the total optional data sent. Default is 0.
    ;                  $iContext - [optional] Application-defined value that is passed, with the request handle, to any callback functions. Default is 0.
    ; Return values .: Success - Returns 1.
    ;                  Failure - Returns 0 and sets @error:
    ;                  |1 - DllCall failed
    ; Author ........: trancexx
    ; Remarks .......: Specifying optional data [[$vOptional]] will cause [[$iTotalLength]] to receive the size of that data if left default value.
    ; Related .......: _WinHttpOpenRequest
    ; Link ..........: http://msdn.microsoft.com/en-us/library/aa384110.aspx
    ;============================================================================================
    Func _WinHttpSendRequest($hRequest, $sHeaders = Default, $vOptional = Default, $iTotalLength = Default, $iContext = Default)
    
        
        __WinHttpDefault($sHeaders, $WINHTTP_NO_ADDITIONAL_HEADERS)
        __WinHttpDefault($vOptional, $WINHTTP_NO_REQUEST_DATA)
        __WinHttpDefault($iTotalLength, 0)
        __WinHttpDefault($iContext, 0)
        Local $pOptional = 0, $iOptionalLength = 0
        If @NumParams > 2 Then
            Local $tOptional
            $iOptionalLength = BinaryLen($vOptional)
            $tOptional = DllStructCreate("byte[" & $iOptionalLength & "]")
            If $iOptionalLength Then $pOptional = DllStructGetPtr($tOptional)
            DllStructSetData($tOptional, 1, $vOptional)
        EndIf
        If Not $iTotalLength Or $iTotalLength < $iOptionalLength Then $iTotalLength += $iOptionalLength
    
    
        Local $tWerte = "handle = " & $hRequest & ", " & _
                        "wstr = " & $sHeaders & ", " & _
                        "dword = " & 0 & ", " & _
                        "ptr = " & $pOptional & ", " & _
                        "dword = " & $iOptionalLength & ", " & _
                        "dword = " & $iTotalLength & ", " & _
                        "dword_ptr = " & $iContext
    
    
        Local $aCall = DllCall($hWINHTTPDLL__WINHTTP, "bool", "WinHttpSendRequest", _
                "handle", $hRequest, _
                "wstr", $sHeaders, _
                "dword", 0, _
                "ptr", $pOptional, _
                "dword", $iOptionalLength, _
                "dword", $iTotalLength, _
                "dword_ptr", $iContext)
        If @error Or Not $aCall[0] Then Return SetError(1, 0, 0)
    
        Return 1
    EndFunc
    Alles anzeigen


    Leider verstehe ich nicht wie ich hier erreichen könnte das dass Browserfenster versteckt wird. :|


    Wenn ich mir das bei der _IECreate() ansehe ist da wohl die Funktion __IELockSetForegroundWindow() dafür verantwortlich. :/

    Code
    ; #INTERNAL_USE_ONLY# ===========================================================================================================
    ; Name...........: __IELockSetForegroundWindow
    ; Description ...: Locks (and Unlocks) current Foregrouns Window focus to prevent a new window
    ;                     from stealing it (e.g. when creating invisible IE browser)
    ; Parameters ....: $iLockCode    - 1 Lock Foreground Window Focus, 2 Unlock Foreground Window Focus
    ; Return values .: On Success     - 1
    ;                   On Failure     - 0  and sets @error and @extended to non-zero values
    ; Author ........: Valik
    ; ===============================================================================================================================
    Func __IELockSetForegroundWindow($iLockCode)
        Local $aRet = DllCall("user32.dll", "bool", "LockSetForegroundWindow", "uint", $iLockCode)
        If @error Or Not $aRet[0] Then Return SetError(1, _WinAPI_GetLastError(), 0)
        Return $aRet[0]
    EndFunc   ;==>__IELockSetForegroundWindow
    Alles anzeigen

    Aber leider bin ich nicht schlau genug das hinzubekommen bzw zu verstehen.

    Kann mir da der ein oder andere vielleicht ein wenig Hilfestellung geben? :)

  • Frage zur Anordnung von Fenstern

    • JanausSm
    • 22. Oktober 2017 um 22:02

    Vergesst alles was ich geschrieben habe .....

    sowas blödes :)

  • Frage zur Anordnung von Fenstern

    • JanausSm
    • 22. Oktober 2017 um 21:54

    Guten Abend,

    ich sehe wahrscheinlich wieder mal nicht den Wals vor lauter Bäumen !!!

    Ich versuche schon eine kleine Weile herauszufinden wie GUIs / Fenster aus mehreren kleinen Programmen die nacheinander von mir gestartet worden sind

    automatisch zB. rechts oben die erste GUI anordnet! Dann startet das zweite Programm die zweite GUI öffnet sich und ordnet sich nun direkt daneben rechts oben an !

    Es ist nur ein kleiner Versuch weils mich mal interessiert!

    Ich dachte ich finde dazu was unter dem Thema "Erweiterte Stile" ! Aber ich hab so für mich nichts gefunden ....

    Kann mich jemand auf die richtige Spur führen ?

    Gruß Jan

  • Autoit Programm mit Hilfe der Seite virustotal.com Scannen

    • JanausSm
    • 26. August 2017 um 11:11

    OK ich danke Dir für die schnelle Antwort! Naja ich hatte schon vermutet das so oder ähnlich aussieht!

  • Autoit Programm mit Hilfe der Seite virustotal.com Scannen

    • JanausSm
    • 26. August 2017 um 10:44

    UPX sagt mir erstmal nichts! :)
    Ich hab eben SciTE zB. nur eine MsgBox eingetragen dann Strg+F7 und dann OK und diese exe nun gescannt .....
    Und auch da meckert www.virustotal.com

  • Autoit Programm mit Hilfe der Seite virustotal.com Scannen

    • JanausSm
    • 26. August 2017 um 10:27

    Hallo an alle,

    ich hab da mal eine Frage die ich gerne in die Runde stellen möchte!
    Ich hatte jetzt letztens ein kleines Programm für jemanden geschrieben der es vor der Benutzung über die Seite https://autoit.de/www.virustotal.com geprüft hatte!
    Dabei sind 6 Warnungen heraus gekommen!
    Darauf hin habe ich versucht den Grund für diese Anzeige zu finden!
    Zum Schluss hatte ich zum Test eine Testexe geschrieben in der nur eine MsgBox eingetragen war und trotzdem kam auch bei dieser exe die gleiche Anzeige auf https://autoit.de/www.virustotal.com !
    Auch habe ich meinen Rechner ausgeschlossen da ich das ganze bei einen Kollegen nochmals Testete! Also dort auf seinen PC mit seinen Autoit ein kleines Tool bauen ---> exe machen und Scannen!
    Aber auch hier der Warnhinweis von https://autoit.de/www.virustotal.com das es sich höchstwahrscheinlich um einen Trojaner handelt.

    Ist es möglich das Autoit heuristisch eingestuft wird ?

    Gruß Jan

  • Bekomme immer Ladefehler bei der Funktion _SQLite_Startup()

    • JanausSm
    • 23. März 2017 um 00:00

    nein ist sie nicht! Das hatte ich nicht gewusst das diese Datei nicht mehr mitgeliefert wird! Da muss ich gleich mal schauen wo ich die her bekomme! Danke erst mal für die Auskunft Ihr zwei! :)

    Oh! chesstiger Sorry Du hast ja einen Link gepostet ! Da brauch ich nicht zu suchen Danke :)

  • Bekomme immer Ladefehler bei der Funktion _SQLite_Startup()

    • JanausSm
    • 22. März 2017 um 23:18

    Hallo zusammen,

    ich wollte eigentlich nur eine kleine SQLite Datenbank anlegen und komme nicht mal über den Start mit der Funktion _SQLite_Startup() hinaus :) .
    Ich bekomme immer einen Fehler ! Also _SQLite_Startup wird auf @error gesetzt.
    Ich habe das einfache Script im Eigenen Ordner betrieben und auch mal #RequireAdmin versucht eine Lösung zu bekommen.
    Aber immer wieder bekomme ich einen Error.
    Kann das was mit damit zu tun haben das es ein 64bit PC ist. Mir fällt wirklich nichts mehr dazu ein?! :S

    Vielleicht kann mir ja jemand von Euch einen Rat geben :)

    Gruß Jan

    C
    ; SQLite.dll version must match
    #RequireAdmin
    
    
    #include <MsgBoxConstants.au3>
    #include <SQLite.au3>
    #include <SQLite.dll.au3>
    
    
    Local $sSQliteDll = _SQLite_Startup()
    
    
    If @error Then
    	MsgBox($MB_SYSTEMMODAL, "SQLite Error", "SQLite3.dll Can't be Loaded!" & @CRLF & @CRLF & _
    			"Not FOUND in @SystemDir, @WindowsDir, @ScriptDir, @WorkingDir, @LocalAppDataDir\AutoIt v3\SQLite" & _
    			" Extendent: " & @extended)
    	Exit -1
    EndIf
    
    
    MsgBox($MB_SYSTEMMODAL, "SQLite3.dll Loaded", $sSQliteDll & " (" & _SQLite_LibVersion() & ")")
    ConsoleWrite("_SQLite_LibVersion=" & _SQLite_LibVersion() & @CRLF)
    _SQLite_Shutdown()
    Alles anzeigen
  • Text anhand des blinkenden Cursors auslesen

    • JanausSm
    • 9. Februar 2013 um 14:19

    Ja das habe ich schon in verschiedenen Varianten probiert

    etwa so:

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

    Case _IsPressed("01") = True And _IsPressed("11") = True And $Schalter = 0 ; Linke Maustaste + Strg

    $Schalter = 1
    Local $GUI_Handle = _WinAPI_GetForegroundWindow()
    Local $tPoint = _WinAPI_GetMousePos()
    Local $tPoint2 = _WinAPI_GetMousePos(True, $GUI_Handle)

    ConsoleWrite("$tPoint X: " & DllStructGetData($tPoint, "X") & " $tPoint Y: " & DllStructGetData($tPoint, "Y") & @CRLF)
    ConsoleWrite("$tPoint2 X: " & DllStructGetData($tPoint2, "X") & " $tPoint2 Y: " & DllStructGetData($tPoint2, "Y") & @CRLF)
    Local $X = DllStructGetData($tPoint, "X")
    Local $Y = DllStructGetData($tPoint, "Y")
    ; 3-facher Mausklick
    MouseClick("left", $X, $Y, 3)
    Sleep(500)

    Send("^c")
    Local $String_aus_Zwischenablage = ClipGet()
    ConsoleWrite("-Text: " & $String_aus_Zwischenablage & @CRLF)

    [/autoit]

    oder auch so:

    Spoiler anzeigen
    [autoit]


    Case _IsPressed("01") = True And _IsPressed("11") = True And $Schalter = 0 ; Linke Maustaste + Strg

    $Schalter = 1
    Local $GUI_Handle = _WinAPI_GetForegroundWindow()
    Local $tPoint = _WinAPI_GetMousePos()
    Local $tPoint2 = _WinAPI_GetMousePos(True, $GUI_Handle)

    ConsoleWrite("$tPoint X: " & DllStructGetData($tPoint, "X") & " $tPoint Y: " & DllStructGetData($tPoint, "Y") & @CRLF)
    ConsoleWrite("$tPoint2 X: " & DllStructGetData($tPoint2, "X") & " $tPoint2 Y: " & DllStructGetData($tPoint2, "Y") & @CRLF)
    Local $X = DllStructGetData($tPoint, "X")
    Local $Y = DllStructGetData($tPoint, "Y")
    ; 3-facher Mausklick
    ControlClick("", "", "", "left", 3, $X, $Y)
    Sleep(500)

    Send("^c")
    Local $String_aus_Zwischenablage = ClipGet()
    ConsoleWrite("-Text: " & $String_aus_Zwischenablage & @CRLF)

    [/autoit]

    Aber das klappt bei erstan mal wenn man also mit der Maus in eine Nummer
    hinein klickt klappt es. Wenn ich dann aber nochmal eine andere Nummer
    Auswählen möchte ist immer noch die alte in der Zwischenablage.
    Erst nach mehrmaligen Auswählen ist dann auch eine andere Nummer
    in der Zwischenablage.


    Ich dachte das ich irgendwie mit dieser Funktion da rankommen würde

    [autoit]

    _WinAPI_GetCursorInfo()

    [/autoit]

    Aber geschaft hab ich da noch nichts.

  • Text anhand des blinkenden Cursors auslesen

    • JanausSm
    • 8. Februar 2013 um 11:41

    Hallo,

    ich habe bei mir einen Telefonanlage laufen die über eine WEB Oberfläche eine CIT Lösung ( Computergestütztes Telefonieren ) anbietet.
    Diese Oberfläche habe ich mir in eine kleine nette GUI eingebaut so das sie nur bei bedarf aufklappt
    und eben dann benutzbar ist.
    Jetzt hab ich mich dafür interessiert wie man es schafft das man eine Telefonnmmer die zB in einer Mail steht
    über den Mauszeiger in den Textblock hinein klickt und dann anhand der Cursorposition den Text auslesen kann.
    Meine Frage ist mit welchen Funktionen müsste arbeiten bzw in welche Richtung sollte ich suchen
    wenn ich eine Textinformation quasi über die Position des Cursor herausfinden möchte?

    Kann mir da jemand helfen?


    Hier noch meine kleine Software.
    Die Funktioniert natürlich nur an einer OpenCom 100 Anlage... vieleicht auch an einer 1000er


    Spoiler anzeigen
    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Icon=telefon.ico
    #AutoIt3Wrapper_Outfile=OpenCom X320 - OpenCTI 50.exe
    #AutoIt3Wrapper_Res_Fileversion=1.0.0.4
    #AutoIt3Wrapper_Res_FileVersion_AutoIncrement=y
    #AutoIt3Wrapper_Res_Language=1031
    #AutoIt3Wrapper_Au3Check_Stop_OnWarning=y
    #AutoIt3Wrapper_Run_Tidy=y
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    ; *******************************************************
    ; Example 1 - Trap COM errors so that 'Back' and 'Forward'
    ; outside of history bounds does not abort script
    ; (expect COM errors to be sent to the console)
    ; *******************************************************
    ;

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

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <IE.au3>
    Opt("MustDeclareVars", 1) ; Variablen MÜSSEN Daklariert werden
    Opt('TrayOnEventMode', 0) ; Tray-Menü im OnEvent-Mode
    Opt("TrayAutoPause", 0) ; 0=no pause, 1=Pause
    Opt("TrayMenuMode", 1) ; Default tray menu items (Script Paused/Exit) will not be shown.
    Opt("TrayIconHide", 0) ;0=show, 1=hide tray icon

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

    Global $GUI_Titel = "OpenCom X320 - OpenCTI 50"
    Global $TK_Anlagen_Adresse = "192.168.99.254"
    Global $Benutzername = "BenutzerinderTKAnlage"
    Global $Passwort = "Passwort"

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

    _IEErrorHandlerRegister()
    Local $oIE = _IECreateEmbedded()
    Global $CTI_GUi = GUICreate($GUI_Titel, 400, 580, _
    (@DesktopWidth - 400 - 15), (@DesktopHeight - 580 - 80), _
    $WS_OVERLAPPEDWINDOW + $WS_VISIBLE + $WS_CLIPSIBLINGS + $WS_CLIPCHILDREN)
    Global $Tray_Menu_Aufklappen = TrayCreateItem("Aufklappen")
    Global $Tray_Menu = TrayCreateItem("")
    Global $Tray_Menu_Beenden = TrayCreateItem("Beenden")

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

    GUISetState(@SW_SHOW) ;Show GUI

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

    Local $GUIActiveX = GUICtrlCreateObj($oIE, 0, 0, 400, 580)

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

    _IENavigate($oIE, "http://" & $TK_Anlagen_Adresse & "/app-main.asp?app=3")
    _IELoadWait($oIE)

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

    Global $oFrames = _IEFrameGetCollection($oIE)
    Global $iNumFrames = @extended
    For $i = 0 To ($iNumFrames - 1)
    Global $oFrame = _IEFrameGetCollection($oIE, $i)

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

    If StringInStr(_IEPropertyGet($oFrame, "locationurl"), "app-login.asp?app=3", 1) Then

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

    Global $oForm = _IEFormGetObjByName($oFrame, "uf")
    Global $oText = _IEFormElementGetObjByName($oForm, "un")
    _IEFormElementSetValue($oText, $Benutzername)
    Sleep(150)

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

    Global $oText = _IEFormElementGetObjByName($oForm, "pw")
    _IEFormElementSetValue($oText, $Passwort)

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

    Sleep(150)
    Send("{TAB}")
    Send("{ENTER}")

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

    GUISetState(@SW_MINIMIZE, $CTI_GUi) ;Show GUI
    GUISetState(@SW_HIDE, $CTI_GUi) ;Show GUI

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

    EndIf

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

    Next

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

    AdlibEnable("_myadlib", 1000)

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

    While 1

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

    Local $msg = GUIGetMsg()
    Local $msgT = TrayGetMsg()

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

    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop

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

    Case $msgT = $Tray_Menu_Beenden
    Exit

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

    Case $msgT = $Tray_Menu_Aufklappen
    GUISetState(@SW_SHOW, $CTI_GUi) ;Show GUI
    GUISetState(@SW_RESTORE, $CTI_GUi) ;Show GUI

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

    Case Else
    If Not IsObj($oIE) Then ExitLoop

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

    EndSelect

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

    WEnd

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

    GUIDelete()

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

    Exit

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

    Func _myadlib()

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

    ; 21 = GUISetState(@SW_MINIMIZE, $CTI_GUi) + GUISetState(@SW_HIDE, $CTI_GUi)
    ; 23 = GUISetState(@SW_MINIMIZE, $CTI_GUi)
    ; 15 = GUISetState(@SW_SHOW, $CTI_GUi)
    ; 13 = GUISetState(@SW_HIDE, $CTI_GUi)

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

    ConsoleWrite(WinGetState("OpenCom X320 - OpenCTI 50") & @CRLF)

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

    If WinGetState("OpenCom X320 - OpenCTI 50") = 23 Then
    GUISetState(@SW_MINIMIZE, $CTI_GUi) ;Show GUI
    GUISetState(@SW_HIDE, $CTI_GUi) ;Show GUI
    ElseIf WinGetState("OpenCom X320 - OpenCTI 50") = 7 Then
    GUISetState(@SW_SHOW, $CTI_GUi) ;Show GUI
    GUISetState(@SW_RESTORE, $CTI_GUi) ;Show GUI

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

    EndIf

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

    EndFunc ;==>_myadlib

    [/autoit]

    Gruß Jan

  • Select If

    • JanausSm
    • 14. Dezember 2011 um 21:40

    Hallo,


    ich schon wieder...
    Kann es sein das eine SELECT IF Anweisung in SQLite nicht funktioniert ???

    SQL
    SELECT IF(MATID IS NULL ,'1' , '2')  FROM matdepot WHERE ID_AUFTRAG = '1'

    Oder is an dem Syntax etwas falsch ???

    Gruß Jan

  • Frage zur Funktion UPDATE

    • JanausSm
    • 14. Dezember 2011 um 12:06

    @ veronesi


    Herzlichen Dank für den Tip. Das hat prombt geklappt.
    Genau so wollt ichs.
    Somit hat sich das nun also geklärt.... also für mich ... glaub ich ... ???!!! :)

  • Frage zur Funktion UPDATE

    • JanausSm
    • 14. Dezember 2011 um 12:00

    Nein noch nicht .
    Da sollte ich mal zu nachlesen und probieren.
    Danke für den Tip :)

  • Frage zur Funktion UPDATE

    • JanausSm
    • 14. Dezember 2011 um 11:31

    Also ich habe eine Art Haupttabelle in der zu einen Auftrag alle wichtigen informationen drinnen stehen.
    Wenn man dann einen Auftrag aus der Liste doppelt anklickt werden in der Einzelmaske die informationen
    aus der Datenbank geladen. Und da sind wir an dem Punkt.

    Jetzt werden dien Daten des Auftrags aus der Haupttabelle 'auftragsdaten' ' in einer Art Temp tabelle 'temp_auftragsdaten' ' eine Zeile geschrieben.
    Eben mit :

    [autoit]

    Local $LokalSQLElemente = "ID, ID_AUFTRAG, WONUMMER, WE_LAGE_RE, WE_LAGE_LI, WLAN, TVART, STARTZEIT, ENDZEIT, ENDDATUM, FELD_1_LP, FELD_2_LP, FELD_3_LP, FELD_4_LP, FELD_5_LP, FELD_6_LP, FELD_7_LP, FELD_8_LP, UP_S06, UP_S24, UP_S38, UP_K25, UP_K48, VA_S06, VA_S24, VA_S38, VA_K25, VA_K48, MMD_S06, MMD_S24, MMD_S38, MMD_K25, MMD_K48, SNR, TX, RX, abschlusscode_A, abschlusscode_B, abschlusscode_C, TEXTFELD_INDIVIDUELL, TEXTFELD_LP7, TEXTFELD_SQN, TEXTFELD_MATERIAL"

    [/autoit]
    SQL
    _SQLite_Exec($db, "INSERT INTO 'temp_auftragsdaten' SELECT " & $LokalSQLElemente & " FROM auftragsdaten WHERE ID_AUFTRAG = '" & $Eingabe_AuftragsID & "'")


    Wärend der Zeit in der sich das Programm in der Einzelansicht befinden bleiben die Daten in dieser Temptabelle.
    Wenn man nun aus dem Auftrag mit speichern wieder herausgeht wollte ich nun einfach wie vorher beim holen
    aber diesmal in die andere Richtung die Daten wieder rüber schicken innerhalb der Datenbank ohne Code.
    Und da weis ich nicht wies geht.
    Normal stellt man sich hin und macht:

    Beispiel

    SQL
    UPDATE 'tabelle' SET zelle = 'wert' Where ID = 'wert'

    Ich hätte es gerne ähnlich der INSERT INTO Variante vom Anfang gemacht.
    Also:

    SQL
    INSERT INTO 'temp_auftragsdaten' SELECT ID, ID_AUFTRAG, WONUMMER, WE_LAGE_RE, WE_LAGE_LI, WLAN, TVART, STARTZEIT usw... FROM auftragsdaten WHERE ID_AUFTRAG = '" & $Eingabe_AuftragsID & "'")

    Dort entfällt ja die Sache mit dem VALUES
    Das einzigste was ich eben bis jetzt weis ist das hier:

    SQL
    UPDATE 'auftragsdaten'' SET WE_LAGE_RE = (SELECT WE_LAGE_RE FROM 'temp_auftragsdaten' WHERE ID_AUFTRAG = 'wert') WHERE ID_AUFTRAG = 'wert';


    Aber da müsste ich ja alle Werte einzel schreiben.

    Ja und bei Update hab ich sowas nicht gefunden.
    Momentan behelde ich mir so.

    Spoiler anzeigen
    [autoit]

    Global $AUFTRAGS_ID = 1

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

    ConsoleWrite( _Prozess_SQL_UPDATE_Syntax_Bauen('temp_auftragsdaten') & @CRLF)

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

    Func _Prozess_SQL_UPDATE_Syntax_Bauen($FuncSQL_Tabellenname="")

    Local $Lokalhinzu = ""

    Local $SQL_Syntax_Anfang = "UPDATE " & $FuncSQL_Tabellenname & " SET "
    Local $Split_SQL_Tab_Spalten = "WE_LAGE_RE, WE_LAGE_LI, WLAN, TVART, STARTZEIT, ENDZEIT, ENDDATUM, FELD_1_LP, FELD_2_LP, FELD_3_LP, FELD_4_LP, FELD_5_LP, FELD_6_LP, FELD_7_LP, FELD_8_LP, UP_S06, UP_S24, UP_S38, UP_K25, UP_K48, VA_S06, VA_S24, VA_S38, VA_K25, VA_K48, MMD_S06, MMD_S24, MMD_S38, MMD_K25, MMD_K48, SNR, TX, RX, abschlusscode_A, abschlusscode_B, abschlusscode_C, TEXTFELD_INDIVIDUELL, TEXTFELD_LP7, TEXTFELD_SQN, TEXTFELD_MATERIAL"
    Local $SQL_Syntax_Mitte = ""

    $Split_SQL_Tab_Spalten = StringReplace($Split_SQL_Tab_Spalten, ",", ",")
    Local $Split_SQL_Tab_Spalten_Anzahl = @extended
    Local $Split_SQL_Tab_Spalten_Array = StringSplit($Split_SQL_Tab_Spalten, ",")
    Local $i=1
    Local $SQL_Syntax=""

    ; Anfang des Syntax´s einfügen
    $SQL_Syntax = $SQL_Syntax_Anfang

    ; alle Spaltewerte in den Syntax einfügen
    While $i <= $Split_SQL_Tab_Spalten_Anzahl + 1

    $Lokalhinzu = ""
    $Lokalhinzu = _Prozess_SQL_Update_mit_Werten_bedienen($i)
    If $Lokalhinzu <> 1 Then $SQL_Syntax = $SQL_Syntax & $Split_SQL_Tab_Spalten_Array[$i] & " = '" & $Lokalhinzu & "', "

    $i+=1
    WEnd

    ; letztes Komma entfernen
    $SQL_Syntax = StringTrimRight($SQL_Syntax, 2)


    ; schliessen des Syntax´s mit einer Klammer
    $SQL_Syntax = $SQL_Syntax & " WHERE ID_AUFTRAG = '" & $AUFTRAGS_ID & "';"

    Return $SQL_Syntax

    EndFunc

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

    Func _Prozess_SQL_Update_mit_Werten_bedienen($Func_Index=0)
    If $Func_Index == 0 Then Return 1

    Select
    Case $Func_Index = 1
    Return "eins"
    Case $Func_Index = 2
    Return "zwei"
    Case $Func_Index = 3
    Return "drei"
    Case $Func_Index = 4
    Return "vier"
    Case $Func_Index = 5
    Return "fünf"
    Case $Func_Index = 6
    Return "sechs"

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

    ; usw...

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

    Case Else
    Return 1
    EndSelect

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

    EndFunc

    [/autoit]


    Ich hoffe ich konnte mein Problem jetzt etwas besser darstellen.

    Gruß Jan

  • Frage zur Funktion UPDATE

    • JanausSm
    • 14. Dezember 2011 um 10:18

    Hallo,

    ich möchte gerne innerhalb einer Datenbank den gesamten Inhalt einer Tabelle in eine andere zweite Tabelle schreiben.
    Dabei ist zu wissen das die Zeile in der zweiten Tabelle schon existiert. Deshalb müsste es mit Update gemacht werden.
    Jetzt sind das aber ziehmlich viele Zellen in der Zeile und ich wollte mir nicht die Finger wund schreiben.
    Wenn es hier eine neue Zeile wäre die ich in der zweiten Tabelle eintragen wöllte dann könnte man das mit
    diesen hier machen:

    SQL
    INSERT INTO 'tabelle2' SELECT zelle1, zelle2, zelle3, zelle4, zelle5 FROM 'tabelle1' WHERE zelle1 = '1' ;

    meine Frage wäre gibt es da was vergleichbares für die Updatefunktion?
    Gefunden habe bisher nur dieses hier:

    SQL
    UPDATE 'tabelle2' SET zelle1 = (SELECT zelle1 FROM 'tabelle1' WHERE zelle2 = '2') WHERE zelle1 = '1';

    Aber da bezieht sich das ja nur auf die zelle1 der tabelle 2.
    Wenn ich das nehmen würde müsste ich gefühlte 20.000.000 diesen Befehl schreiben... :S
    Kann mir da jemand was zu schreiben ? ?(

    Gruß Jan

  • SciTE Funktion Ersetzen ( Strg + H )

    • JanausSm
    • 14. Dezember 2011 um 00:04

    Ich danke für diese Anwort. Da werd ich bestimmt mal ein wenig herumprobieren :)

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™