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

Beiträge von gmmg

  • Excel schließen - Absturz

    • gmmg
    • 14. Juli 2012 um 17:23

    im folgenden post ging es auch schonmal um das schließen!

    [ gelöst ] _ExcelBookClose erst nach Programmenden?

    [autoit]


    #include <excel.au3>

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

    $oExcel = _ExcelBookNew(0)
    _ExcelWriteCell($oExcel, "test 123", 1, 1)
    _ExcelBookSaveAs($oExcel, "c:\temp\test.xls")
    _ExcelBookClose($oExcel)
    $oExcel = 0 ; delete object

    [/autoit][autoit][/autoit][autoit][/autoit]
  • Suche einfache Abfrage, ob PC in einer Domain oder Arbeitsgruppe hängt

    • gmmg
    • 9. Juli 2012 um 09:45

    @ chip

    richtig, in der registry steht's auch ... :)
    dennoch könnte im AD das Konto gelöscht sein!

    gruß gmmg

  • Suche einfache Abfrage, ob PC in einer Domain oder Arbeitsgruppe hängt

    • gmmg
    • 8. Juli 2012 um 19:43

    @Protaris

    benutze doch auch die active directory UDF von Water! hier kannst du abfragen, ob der client ein konto im active directory (AD = Verzeichnisdienst von Microsoft Windows Server)besitzt!
    besitzt er keines machen ja auch die clientseitigen einstellungen der domain keinen sinn ...

    gruß gmmg

  • Excell Färben

    • gmmg
    • 6. Juli 2012 um 14:04

    auch wenn schon gelöst!

    folgend nochmal paar beispiele ...

    [autoit]


    $oExcel.Columns("A1:C1").ColumnWidth = "50" ;setze spaltenbreite
    $oExcel.Range("A1:C1") .Font.Bold = TRUE ; setze schriftgrad
    $oExcel.Range("A1:C1") .Font.Size = 14 ; setze schriftgröße
    $oExcel.Range("A1:C1") .Font.Color = 0xffffff
    $oExcel.Range("A1:C1") .Interior.ColorIndex = 43 ; setze Farbe

    [/autoit]

    gruß gmmg

  • Skript lizenz?

    • gmmg
    • 24. Juni 2012 um 00:06

    hallo,

    ich mache das immer mit einer updater.exe!

    1. script startet und prüft ob es einen neuen updater gibt ..

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

    #Region ### updater pruefen
    $fuserver = "\\server\dfs\IT-Systems-and-Services\Public\Updater\Updater.exe"
    $fulocal = "C:\programmpfad\Updater.exe"
    $fu_ver1 = FileGetVersion($fuserver) ;server File 1
    $fu_ver2 = FileGetVersion($fulocal) ;local File 2

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

    If $fu_ver1 > $fu_ver2 Then
    FileCopy ($fuserver, $fulocal,1)
    ;Exit
    Else
    ; mache weiter
    EndIf
    #EndRegion ### updater pruefen

    [/autoit]

    2. prüfen ob es eine neue script version gibt

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

    Starter_pruefen()

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

    Func Starter_pruefen()

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

    GUICtrlSetData($label, "... bitte warten ...")
    Sleep(1000)
    ;---Fileversion Starter abrufen------
    $sV1 = "\\server\dfs\IT-Systems-and-Services\Public\Updater\script.exe"
    $sV2 = "C:\programmpfad\script.exe"

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

    $v1 = FileGetVersion($sV1) ;server File 1
    $v2 = FileGetVersion($sV2) ;local File 2

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

    $v1split = Stringsplit($v1, ".")
    $v2split = Stringsplit($v2, ".")

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

    ;----------- prüfe starter ----

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

    $spl_1 = $v1split[1] & $v1split[2] & $v1split[3] & $v1split[4]
    $spl_2 = $v2split[1] & $v2split[2] & $v2split[3] & $v2split[4]

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

    $spl_erg = $spl_2 - $spl_1
    ;MsgBox(0,"", $spl_1 & "/" & $spl_2)
    ;MsgBox(0,"",$spl_erg)
    If $spl_erg < 0 Then
    ;If $v1 > $v2 Then
    GUICtrlSetData($label, '... Update "script " vorhanden ...')
    Sleep(1000)
    GUICtrlSetData($label, "... bitte warten ...")
    Sleep(1000)
    Run($Scriptdir & "\Updater.exe")
    Exit
    ;MsgBox (0,"", "Clientversion = " & @CRLF &$v1 & @CRLF & $v2)
    EndIf

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

    EndFunc ;==>Starter_pruefen

    [/autoit]

    3. wenn vorhanden ... folgendes, wenn nicht vorhanden, machen im script weiter

    hier wird die updater exe ausgeführt ...
    Run($Scriptdir & "\Updater.exe") folgend der quelltext dazu ...

    [autoit]


    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_icon=..\Icons\transmission_icons_win\Transmission Icons win\Transmission 1.ico
    #AutoIt3Wrapper_outfile=Updater.exe
    #AutoIt3Wrapper_Res_Comment=11.11.2010
    #AutoIt3Wrapper_Res_Description=Updater
    #AutoIt3Wrapper_Res_Fileversion=1.0.0.0
    #AutoIt3Wrapper_Res_Language=1031
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

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

    ;updater
    Sleep(2000)

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

    $sV1 = "\\server\dfs\IT-Systems-and-Services\Public\Updater\script.exe"

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

    FileCopy($sV1, "C:\programmpfad\script.exe",1)
    Sleep(2000)

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

    Run("C:\programmpfad\script.exe")

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

    vielleicht hilft das bissl weiter :)

    gruß gmmg

  • exe tut nicht was das Script tut

    • gmmg
    • 18. Juni 2012 um 14:50

    ich hätte gesagt, das bei fileinstall die komplette pfadangabe im ersten parameter fehlt!

    gruß gmmg

  • User Eingabe auf Remote-Maschine

    • gmmg
    • 11. Juni 2012 um 12:13

    zur not kannst du das ausführen dann auch mit psexec (pstools) scripten!
    hier mal ein beispiel:
    D:\Data\PsTools\psexec.exe \\client -d -i -u "user" -p passwd \\servername\Public\Tools\10.5.1077\install_admin.cmd

    gruß gmmg

  • User Eingabe auf Remote-Maschine

    • gmmg
    • 10. Juni 2012 um 20:28

    der client lässt sich doch einfach auch über eine administrative freigabe (c$ / d$) kopieren ...
    das sollte nicht das problem sein ...

    gruß gmmg

  • User Eingabe auf Remote-Maschine

    • gmmg
    • 8. Juni 2012 um 12:50

    @ Landfloh

    die frage wäre noch, wie bekommst du das passwort!
    1. ist der user eingeloggt und muss sein passwort eingeben, du speicherst das z.b. verschlüsselt ab und benutzt es später?
    2. der user sitzt am pc und ist noch nicht eingeloggt .... hier wird es schwierig eine gui oder ein input einzublenden, wo er die daten eingeben kann!
    man muss es hinbekommen eine gui auf dem remoteclient anzuzeigen ...

    gruß gmmg

  • User Eingabe auf Remote-Maschine

    • gmmg
    • 8. Juni 2012 um 10:24

    wenn du das passwort hast, auch verschlüsselt, musst du es ja wieder entschlüsseln, um den user einzuloggen!
    das ist ja dann nicht anders, als würde dir der user das passwort persönlich übergeben!

    mach es nicht eher sinn die accounts mit einem dummy login zu versehen und dann das attribut zu setzen, das der user sich beim ersten login ein neues passwort vergeben muss?

    gruß gmmg

  • Steuern des IE mit einem Script aus dem Taskplaner

    • gmmg
    • 4. Juni 2012 um 17:58

    @ chip

    ist bei mir und auf auf arbeit bei den clients so! (IE 8 ,Windows XP)
    hängt bestimmt mit dem InPrivateBrowsen zusammen!

    eigentlich benötigt man das ieAttach nicht!
    weil du öffnest ja deine eigene instanz und diese wird dann auch vom script benutzt!
    habe auch mehrere automatisierte website logins auf arbeit über autoit am laufen, da gab es noch keine probleme.

    gruß gmmg

  • Dateien verschieben und Ordner benennen fortlaufend

    • gmmg
    • 1. Juni 2012 um 15:58

    ich würde es etwa so machen ... ungetestet ...

    [autoit]


    #include <File.au3>
    #include <Array.au3>

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

    Dim $aArray_strL[1]

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

    Local $FileList = _FileListToArray(@DesktopDir)
    If @error = 1 Then
    MsgBox(0, "", "No Folders Found.")
    Exit
    EndIf
    If @error = 4 Then
    MsgBox(0, "", "No Files Found.")
    Exit
    EndIf
    _ArrayDisplay($FileList, "$FileList")

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

    For $i = 1 To $FileList[0]

    _ArrayAdd($aArray_strL, StringLeft( $FileList[$i], 3)

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

    Next

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

    $aArray_strL = _ArrayUnique($aArray_strL) ;in dem array sollten jetzt deine namen für die ordner stehen

    For $i = 1 To $aArray_strL[0]

    ; ordner anlegen
    DirCreate("ordnerpfad\" & $aArray_strL[$i])
    Next

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

    ; danach files in die einzelnen ordner per schleife einsortieren ...

    [/autoit]

    gruß gmmg

  • WinSCP (command) und _RunDos ?

    • gmmg
    • 26. Mai 2012 um 19:43

    so geht es auf jedenfall in meinen scripten für den winscp upload!

    [autoit]


    $UploadVorgang = RunWait('"C:\Programme\WinSCP\WinSCP.com" /console /command "option batch on" "option confirm off" "open ' & $username & ":" & $pass & "@" & $server & '"' & ' "cd ' & $ftppath & '/" "put ' & $Uploaddatei & '" "exit"')

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

    $UploadVorgang = RunWait('"C:\Program Files (x86)\WinSCP\WinSCP.com" /console /command "option batch on" "option confirm off" "open ' & $username & ":" & $pass & "@" & $server & '"' & ' "cd ' & $ftppath & '/" "put ' & $Uploaddatei & '" "exit"')

    [/autoit]

    am besten über @consolewrite prüfen, ob die pfade (leerzeichen im namen etc.) und variablen richtig sind, machmal fehlt ein "\" oder "/"

    [autoit]


    ConsoleWrite('"C:\Programme\WinSCP\WinSCP.com" /console /command "option batch on" "option confirm off" "open ' & $username & ":" & $pass & "@" & $server & '"' & ' "cd ' & $ftppath & '/" "put ' & $Uploaddatei & '" "exit"')

    [/autoit]

    gruß gmmg

  • Steuern des IE mit einem Script aus dem Taskplaner

    • gmmg
    • 26. Mai 2012 um 00:50

    hallo ...

    1. ist dein pc zu dem zeitpunkt gesperrt, wenn der task aufgerufen wird?
    2. hast du die felder mal mit firefox und firebug plugin kontrolliert?

    hier mal ein beispiel (arbeitszeitlogin)von mir, bei dem der login aus dem taskmanager bzw. über eine interne schleife klappt!

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

    $user = "xxx"
    $pass = "xxxx"

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

    $seite_state = "Complete Control - Windows Internet Explorer"
    $oIE = _IECreate ("http://ipadresse/wfmLogin.aspx") ;livesystem

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

    WinSetState ($seite_state, "", @SW_MAXIMIZE )

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

    _IELoadWait($oIE)
    $oForm = _IEFormGetObjByName($oIE, "Form1")
    $oUsername = _IEFormElementGetObjByName($oForm, "pnlFrame_tbxName")
    _IEFormElementSetValue($oUsername, $user)
    $oPasswd = _IEFormElementGetObjByName($oForm, "pnlFrame_tbxPasswort")
    _IEFormElementSetValue($oPasswd, $pass)
    $oSubmit = _IEFormElementGetObjByName($oForm, "pnlFrame_btnAnmelden")
    _IEAction ($oSubmit, "click")
    Sleep (1000)
    WinActivate($seite_state)
    ;WinWaitActive($seite_state)

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

    While 1

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

    $nowtime = _NowTime(4)
    ;MsgBox(0,"",$nowtime)

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

    ;KommGeh
    $abegin = "8:00"
    $aend = "16:30"

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

    ;pause
    $pbegin = "13:10"
    $pend = "13:40"

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

    IF $nowtime = $abegin OR $nowtime = $aend Then _KommGeh()
    IF $nowtime = $pbegin OR $nowtime = $pend Then _PAUSE()

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

    Sleep(500)

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

    WEnd

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

    Func _KommGeh()

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

    WinActivate($seite_state)
    _IENavigate ($oIE, "http://ipadresse/infopool/wfmipzeiterfassung.aspx")
    $AccountButton = _IEGetObjById($oIE,'pnlAnwesendNew_btnKOMGEH')
    _IEAction($AccountButton, "click")
    Sleep(1000)
    _IENavigate ($oIE, "http://ipadresse/infopool/wfmipmain.aspx")
    Exit
    Sleep (60000)

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

    EndFunc

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

    Func _KommGeh()

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

    WinActivate($seite_state)

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

    _IENavigate ($oIE, "http://ipadresse/infopool/wfmipzeiterfassung.aspx")

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

    $AccountButton = _IEGetObjById($oIE,'pnlAnwesendNew_btnKOMGEH')

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

    _IEAction($AccountButton, "click")

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

    Sleep(1000)

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

    _IENavigate ($oIE, "http://ipadresse/infopool/wfmipmain.aspx")

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

    Exit

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

    Sleep (60000)

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

    EndFunc

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

    gruß gmmg

  • _ExcelBookClose erst nach Programmenden?

    • gmmg
    • 14. Mai 2012 um 14:01

    @christiancdj
    water

    habe das problem in dem beispiel auch!

    [autoit]


    $sFilePath1 = "D:\Data\Sonstiges\Kategorien.xls" ;This file should already exist
    $oExcel = _ExcelBookOpen($sFilePath1)

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

    If @error = 1 Then
    MsgBox(0, "1 Error!", "Unable to Create the Excel Object")
    Exit
    ElseIf @error = 2 Then
    MsgBox(0, "1 Error!", "File does not exist - Shame on you!")
    Exit
    EndIf

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

    $aArray = _ExcelReadSheetToArray($oExcel,1) ;Using Default Parameters
    _ExcelBookClose($oExcel, 0)

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

    _ArrayDisplay($aArray, "Array using Default Parameters")

    [/autoit]

    im englischen forum gibts das thema + lösung schon!

    http://www.autoitscript.com/forum/topic/11…close-problems/

    _ExcelBookClose does not release object $oExcel, AutoIt automatically
    releases objects on script exit but if you need the xls file to be
    accessible before the script exits, you must specifically delete the
    object.

    [autoit]

    #include <excel.au3>

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

    $oExcel = _ExcelBookNew(0)
    _ExcelWriteCell($oExcel, "test 123", 1, 1)
    _ExcelBookSaveAs($oExcel, "c:\temp\test.xls")
    _ExcelBookClose($oExcel)
    $oExcel = 0 ; delete object

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

    MsgBox(0, "blah", "blah")

    [/autoit]

    gruß gmmg

  • Drucker managen per autoit

    • gmmg
    • 27. April 2012 um 22:56

    ich glaube da wirst du nicht viel finden!

    folgend mal etwas aus dem englischen forum
    http://www.autoitscript.com/forum/topic/33…l-printer-jobs/

    ich würde so vorgehen ...
    1. spooler service anhalten
    2. dateien in array listen und umbenennen
    3. sortieren
    4. service starten und array abarbeiten

    aber ob das so klappt müsste man testen :)

    gruß gmmg

  • dynamisch erzeugte Input / Combo Box auslesen?

    • gmmg
    • 26. April 2012 um 16:02

    soooo ....

    habe mich nochmal an die dynamische zuordnung und das auslesen von input und combo boxen gewagt und folgendes ergebnis erzielt!
    das script liest aus einer DB texte (für z.b. eine textbausteinsoftware ) in den texten gibt es bestimmte variablen, die dann ausgelesen werden ...
    zum befüllen dieser wird dann ein dynamische gui erzeugt und danach wird der text vervollständigt ...

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>
    #include <ButtonConstants.au3>
    #include <WindowsConstants.au3>
    #include <WinAPI.au3>
    #include <Constants.au3>
    #include <File.au3>
    #Include <GuiButton.au3>
    #Include <GuiComboBox.au3>
    #include <GuiEdit.au3>
    #include <String.au3>
    #include <GUIListBox.au3>
    #include <GuiConstantsEx.au3>
    #include <Array.au3>

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

    Dim $aRecords, $sString, $DATAC2, $List1, $query1, $strData_kat_1, $query_name, $strData_Name, $query_name_TB_Text, $strData_TB_Text
    Dim $aArray_var, $aArray_list, $aArray_var1[1], $aArray_list1[1], $aArray_read[1], $_dbname, $_field, $_sql, $Edit2

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

    #Region DB_Variablen
    ;=========Datenbank=Variablen========
    $dbname = "D:\Data\Sonstiges\TB_test.mdb"
    ;====================================
    $tblname_1 = "TB_Baustein"
    $fldname_tbl1_1 = "Name"
    $format = "Text(50)"
    $fldname_tbl1_2 = "Kategorie"
    $format = "Text(50)"
    $fldname_tbl1_3 = "TB_Text"
    $format = "Memo"
    ;====================================
    $tblname_2 = "TB_Kategorie"
    $fldname_tbl2_1 = "ID"
    $format = "Text(50)"
    $fldname_tbl2_2 = "Kategorie"
    $format = "Text(50)"
    ;====================================
    #EndRegion DB_Variablen

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

    _GUI()

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

    Func _GUI()

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

    $gui_tb = GUICreate("TB", 600, 700,-1,-1) ;,0x80000000)
    $lb1 = GUICtrlCreateLabel("Kategorie", 10, 20)
    ;--------------
    $cmb = GUICtrlCreateCombo("", 80, 20,280,20) ; create first item
    $query_kat = "SELECT Kategorie FROM " & $tblname_2 ; & " WHERE PC = " & "'" & @UserName & "'"
    $strData_kat_1 = _ReadOneFld_Combo($query_kat, $dbname, $fldname_tbl2_2)
    GUICtrlSetData($cmb, $strData_kat_1, "Alle Kategorien") ; add other item snd set a new default
    ;----------------
    ;$telEdit1 = _GUICtrlEdit_Create($gui_tb, "erf", 80, 80, 200, 300)
    $lb2 = GUICtrlCreateLabel("Auswahl", 10, 80)
    $List1 = GUICtrlCreateList("", 80, 80, 390, 214)
    $query_name = "SELECT Name FROM " & $tblname_1
    $strData_Name = _ReadOneFld_Combo($query_name, $dbname, $fldname_tbl1_1)
    GUICtrlSetData($List1, $strData_Name)
    $Edit2 = _GUICtrlEdit_Create($gui_tb, "", 40, 300, 490, 350, $ES_MULTILINE + $ES_READONLY + $WS_VSCROLL)
    GUISetState(@SW_SHOW)

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

    While 1
    ;$windowtext = _WinAPI_GetWindowText($hWnd)
    ;IF $windowtext = "TB" Then GUISetState(@SW_SHOW)
    $msg = GUIGetMsg()
    If $msg = $GUI_EVENT_CLOSE Then
    ;GUIDelete($gui_tb)
    Exit;Loop
    EndIf
    Switch $msg

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

    Case $cmb
    _GUICtrlListBox_ResetContent($List1)
    $wert_cmb = GUICtrlRead($cmb)
    ;----db lesen---
    $query_id = "SELECT ID FROM " & $tblname_2 & " WHERE " & $tblname_2 & "." & $fldname_tbl2_2 & " = '" & $wert_cmb & "'"
    $strData_id = _ReadOneFld($query_id, $dbname, $fldname_tbl2_1)
    $strData_id = StringStripWS($strData_id,8)
    ;---------------
    ; alle einträge der kategorie mit ensprechender id auflisten
    IF $strData_id = "1" Then
    $query_name = "SELECT Name FROM " & $tblname_1
    Else
    $query_name = "SELECT Name FROM " & $tblname_1 & " WHERE " & $tblname_1 & "." & $fldname_tbl1_2 & " = '" & $strData_id &"'"
    EndIf
    $strData_Name = _ReadOneFld_Combo($query_name, $dbname, $fldname_tbl1_1)
    GUICtrlSetData($List1, $strData_Name)

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

    Case $List1
    Dim $aArray_var1[1]
    Dim $aArray_list1[1]

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

    $wert_list1 = GUICtrlRead($List1);StringStripWS (GUICtrlRead($List1),1)
    ;MsgBox(0,"1",$wert_list1)
    ;---------------
    $query_name_TB_Text = "SELECT TB_Text FROM " & $tblname_1 & " WHERE " & $fldname_tbl1_1 & ' = "' & $wert_list1 & '"'
    $strData_TB_Text = _ReadOneFld($query_name_TB_Text, $dbname, $fldname_tbl1_3)

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

    $aArray_var = _StringBetween($strData_TB_Text, '{var:', '}')
    ;_ArrayDisplay($aArray_var, 'var_test')
    ;MsgBox(0,"", @error)
    If @error <> 1 Then
    ;_ArrayDisplay($aArray_var, 'var')
    ;$aArray_var = _ArrayUnique($aArray_var)
    ;_GUI_Var_List()
    For $x = 0 To UBound($aArray_var) -1
    $slv = StringLeft($aArray_var[$x],2)
    ;MsgBox(0,"",$slv)
    _ArrayAdd($aArray_var1, $slv & '|var|' & $aArray_var[$x])
    Next
    ;_ArrayDisplay($aArray_var1, "$avArray AFTER _ArrayInsert()")

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

    EndIf
    $aArray_list = _StringBetween($strData_TB_Text, '{list:', '}')
    ;_ArrayDisplay($aArray_list, 'list')
    ;MsgBox(0,"", @error)
    If @error <> 1 Then
    For $x = 0 To UBound($aArray_list) -1
    $sll = StringLeft($aArray_list[$x],2)
    ;MsgBox(0,"",$sll)
    _ArrayAdd($aArray_list1, $sll & '|list|' & $aArray_list[$x])
    Next
    ;_ArrayDisplay($aArray_list1, "$avArray AFTER _ArrayInsert()")
    EndIf

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

    _ArrayDelete($aArray_var1,0)
    ;_ArrayDisplay($aArray_var1, "1")
    _ArrayDelete($aArray_list1,0)
    ;_ArrayDisplay($aArray_list1, "2")

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

    ;----array zusammenführen----

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

    _ArrayConcatenate($aArray_var1, $aArray_list1)
    $aArray_var1 = _ArrayUnique($aArray_var1)
    _ArrayDelete($aArray_var1, 0)
    _ArraySort($aArray_var1)

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

    _GUICtrlEdit_SetText($Edit2, $strData_TB_Text)
    ;_ArrayDisplay($aArray_var1, 'all')

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

    IF UBound($aArray_var1) <> 0 Then _GUI_Var_List()

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

    ;----
    ;ClipPut($wert1)

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

    EndSwitch
    WEnd

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

    EndFunc

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

    Func _GUI_Var_List()

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

    Dim $Labels_var[100]
    Dim $Inputs_var[100]

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

    ;MsgBox(0,"",UBound($aArray_var1))

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

    $gui_var = GUICreate("label array", 420 , UBound($aArray_var1) * 20 + 60, -1, -1, BitXOR($GUI_SS_DEFAULT_GUI, $WS_MINIMIZEBOX))
    ;----------
    $x_l = 20
    $y_l = 10
    ;----------
    $x_i = 200
    $y_i = 10
    ;----------

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

    For $n = 0 To UBound($aArray_var1) -1
    $sString = ""
    $aArray_combo = ""
    $result = ""
    $res_v = StringInStr($aArray_var1[$n], "|var|")
    $res_l = StringInStr($aArray_var1[$n], "|list|")
    ;MsgBox(0,"test",$res_l & " " & $res_v)
    If $res_v > 0 Then
    $result = StringTrimLeft($aArray_var1[$n], 7)
    $Labels_var[$n] = GUICtrlCreateLabel($result, $x_l, $y_l, 200, 20)
    $Inputs_var[$n] = GUICtrlCreateInput("", $x_i, $y_i, 200, 20)
    _ArrayAdd($aArray_read, $Inputs_var[$n] & '|' & "{var:" & $result & "}")
    EndIf
    If $res_l > 0 Then
    $result = StringTrimLeft($aArray_var1[$n], 8)
    $aArray_combo = _StringBetween($aArray_var1[$n], '|list|', ':')
    ;MsgBox(0,"",$aArray_var1[$n])
    $Labels_var[$n] = GUICtrlCreateLabel($aArray_combo[0], $x_l, $y_l, 200, 20)
    $aArray_combo1 = _StringBetween($aArray_var1[$n], '#', '=')
    For $n1 = 0 To UBound($aArray_combo1) -1
    ;MsgBox(0,"", $aArray_combo1[$n1])
    $sString &= $aArray_combo1[$n1] & "|"
    Next
    $Inputs_var[$n] = GUICtrlCreateCombo("", $x_i, $y_i, 200, 20)
    GUICtrlSetData($Inputs_var[$n], $sString)
    _ArrayAdd($aArray_read, $Inputs_var[$n] & '|' & "{list:" & $result & "}") ; {var:03 Filekey}
    EndIf

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

    ;$x += 150
    ;If $x + 120 > 600 Then
    $y_l += 20
    $y_i += 20
    ;$x = 20
    ;EndIf
    Next

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

    $btn_var = GUICtrlCreateButton("Button", 100, $y_l + 10, 80, 25)

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

    GUISetState(@SW_SHOW)
    WinSetOnTop ("label array","", 1)

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

    While 1
    $msg = GUIGetMsg()
    If $msg = $GUI_EVENT_CLOSE Then
    GUIDelete($gui_var)
    ExitLoop
    EndIf
    Switch $msg

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

    Case $btn_var
    Dim $inputstring = ""
    For $x = 1 To UBound($aArray_read) -1
    $array_split = StringSplit($aArray_read[$x], "|")
    $inputstring = GUICtrlRead($array_split[1])
    $text = StringReplace($strData_TB_Text, $array_split[2], $inputstring)
    $strData_TB_Text = $text
    Next
    _GUICtrlEdit_SetText($Edit2, $text)
    GUIDelete($gui_var)
    ExitLoop
    ;_ArrayDisplay($aArray_read,"test")

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

    EndSwitch
    WEnd

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

    EndFunc

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

    ;------access DB auslesen -------------
    Func _ReadOneFld($_sql, $_dbname, $_field)
    Dim $_output
    $adoCon = ObjCreate("ADODB.Connection")
    $adoCon.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & $_dbname)
    $adoRs = ObjCreate("ADODB.Recordset")
    $adoRs.CursorType = 1
    $adoRs.LockType = 3
    $adoRs.Open($_sql, $adoCon)

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

    With $adoRs
    If .RecordCount Then
    While Not .EOF
    $_output = $_output & .Fields($_field).Value & @CRLF
    .MoveNext
    WEnd
    EndIf
    EndWith
    $adoCon.Close
    Return $_output
    EndFunc ;==>_ReadOneFld

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

    Func _ReadOneFld_Combo($_sql, $_dbname, $_field)
    Dim $_output
    $adoCon = ObjCreate("ADODB.Connection")
    $adoCon.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & $_dbname)
    $adoRs = ObjCreate("ADODB.Recordset")
    $adoRs.CursorType = 1
    $adoRs.LockType = 3
    $adoRs.Open($_sql, $adoCon)

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

    With $adoRs
    If .RecordCount Then
    While Not .EOF
    $_output = $_output & .Fields($_field).Value & "|" ;@CRLF
    .MoveNext
    WEnd
    EndIf
    EndWith
    $adoCon.Close
    Return $_output
    EndFunc ;==>_ReadOneFld

    [/autoit]

    gruß gmmg

  • dynamisch erzeugte Input / Combo Box auslesen?

    • gmmg
    • 24. April 2012 um 09:00

    Hallo Zusammen,

    wie kann ich dynamisch erstellten Combo und Inputfelder (siehe Bild2)auslesen?

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>
    #include <ButtonConstants.au3>
    #include <WindowsConstants.au3>
    #include <WinAPI.au3>
    #include <Constants.au3>
    #include <File.au3>
    #Include <GuiButton.au3>
    #Include <GuiComboBox.au3>
    #include <GuiEdit.au3>
    #include <String.au3>
    #include <GUIListBox.au3>
    #include <GuiConstantsEx.au3>
    #include <Array.au3>

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

    Dim $aRecords, $sString, $DATAC2, $List1, $query1, $strData_kat_1, $query_name, $strData_Name, $query_name_TB_Text, $strData_TB_Text
    Dim $aArray_var, $aArray_list, $aArray_var1[1], $aArray_list1[1]

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

    #Region DB_Variablen
    ;=========Datenbank=Variablen========
    $dbname = "D:\Data\Sonstiges\TB_test.mdb"
    ;====================================
    $tblname_1 = "TB_Baustein"
    $fldname_tbl1_1 = "Name"
    $format = "Text(50)"
    $fldname_tbl1_2 = "Kategorie"
    $format = "Text(50)"
    $fldname_tbl1_3 = "TB_Text"
    $format = "Memo"
    ;====================================
    $tblname_2 = "TB_Kategorie"
    $fldname_tbl2_1 = "ID"
    $format = "Text(50)"
    $fldname_tbl2_2 = "Kategorie"
    $format = "Text(50)"
    ;====================================
    #EndRegion DB_Variablen

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

    _GUI()

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

    Func _GUI()

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

    $gui_tb = GUICreate("TB", 600, 700,-1,-1) ;,0x80000000)
    $lb1 = GUICtrlCreateLabel("Kategorie", 10, 20)
    ;--------------
    $cmb = GUICtrlCreateCombo("", 80, 20,280,20) ; create first item
    $query_kat = "SELECT Kategorie FROM " & $tblname_2 ; & " WHERE PC = " & "'" & @UserName & "'"
    $strData_kat_1 = _ReadOneFld_Combo($query_kat, $dbname, $fldname_tbl2_2)
    GUICtrlSetData($cmb, $strData_kat_1, "Alle Kategorien") ; add other item snd set a new default
    ;----------------
    ;$telEdit1 = _GUICtrlEdit_Create($gui_tb, "erf", 80, 80, 200, 300)
    $lb2 = GUICtrlCreateLabel("Auswahl", 10, 80)
    $List1 = GUICtrlCreateList("", 80, 80, 390, 214)
    $query_name = "SELECT Name FROM " & $tblname_1
    $strData_Name = _ReadOneFld_Combo($query_name, $dbname, $fldname_tbl1_1)
    GUICtrlSetData($List1, $strData_Name)
    $Edit2 = _GUICtrlEdit_Create($gui_tb, "", 40, 300, 490, 350, $ES_MULTILINE + $ES_READONLY + $WS_VSCROLL)
    GUISetState(@SW_SHOW)

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

    While 1
    ;$windowtext = _WinAPI_GetWindowText($hWnd)
    ;IF $windowtext = "TB" Then GUISetState(@SW_SHOW)
    $msg = GUIGetMsg()
    If $msg = $GUI_EVENT_CLOSE Then
    ;GUIDelete($gui_tb)
    Exit;Loop
    EndIf
    Switch $msg

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

    Case $cmb
    _GUICtrlListBox_ResetContent($List1)
    $wert_cmb = GUICtrlRead($cmb)
    ;----db lesen---
    $query_id = "SELECT ID FROM " & $tblname_2 & " WHERE " & $tblname_2 & "." & $fldname_tbl2_2 & " = '" & $wert_cmb & "'"
    $strData_id = _ReadOneFld($query_id, $dbname, $fldname_tbl2_1)
    $strData_id = StringStripWS($strData_id,8)
    ;---------------
    ; alle einträge der kategorie mit ensprechender id auflisten
    IF $strData_id = "1" Then
    $query_name = "SELECT Name FROM " & $tblname_1
    Else
    $query_name = "SELECT Name FROM " & $tblname_1 & " WHERE " & $tblname_1 & "." & $fldname_tbl1_2 & " = '" & $strData_id &"'"
    EndIf
    $strData_Name = _ReadOneFld_Combo($query_name, $dbname, $fldname_tbl1_1)
    GUICtrlSetData($List1, $strData_Name)

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

    Case $List1
    Dim $aArray_var1[1]
    Dim $aArray_list1[1]

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

    $wert_list1 = GUICtrlRead($List1);StringStripWS (GUICtrlRead($List1),1)
    ;MsgBox(0,"1",$wert_list1)
    ;---------------
    $query_name_TB_Text = "SELECT TB_Text FROM " & $tblname_1 & " WHERE " & $fldname_tbl1_1 & ' = "' & $wert_list1 & '"'
    $strData_TB_Text = _ReadOneFld($query_name_TB_Text, $dbname, $fldname_tbl1_3)

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

    $aArray_var = _StringBetween($strData_TB_Text, '{var:', '}')
    ;_ArrayDisplay($aArray_var, 'var_test')
    ;MsgBox(0,"", @error)
    If @error <> 1 Then
    ;_ArrayDisplay($aArray_var, 'var')
    ;$aArray_var = _ArrayUnique($aArray_var)
    ;_GUI_Var_List()
    For $x = 0 To UBound($aArray_var) -1
    $slv = StringLeft($aArray_var[$x],2)
    ;MsgBox(0,"",$slv)
    _ArrayAdd($aArray_var1, $slv & '|var|' & $aArray_var[$x])
    Next
    ;_ArrayDisplay($aArray_var1, "$avArray AFTER _ArrayInsert()")

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

    EndIf
    $aArray_list = _StringBetween($strData_TB_Text, '{list:', '}')
    ;_ArrayDisplay($aArray_list, 'list')
    ;MsgBox(0,"", @error)
    If @error <> 1 Then
    For $x = 0 To UBound($aArray_list) -1
    $sll = StringLeft($aArray_list[$x],2)
    ;MsgBox(0,"",$sll)
    _ArrayAdd($aArray_list1, $sll & '|list|' & $aArray_list[$x])
    Next
    ;_ArrayDisplay($aArray_list1, "$avArray AFTER _ArrayInsert()")
    EndIf

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

    _ArrayDelete($aArray_var1,0)
    ;_ArrayDisplay($aArray_var1, "1")
    _ArrayDelete($aArray_list1,0)
    ;_ArrayDisplay($aArray_list1, "2")

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

    ;----array zusammenführen----

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

    _ArrayConcatenate($aArray_var1, $aArray_list1)
    $aArray_var1 = _ArrayUnique($aArray_var1)
    _ArrayDelete($aArray_var1, 0)
    _ArraySort($aArray_var1)

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

    _GUICtrlEdit_SetText($Edit2, $strData_TB_Text)
    ;_ArrayDisplay($aArray_var1, 'all')

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

    IF UBound($aArray_var1) <> 0 Then _GUI_Var_List()

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

    ;----
    ;ClipPut($wert1)

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

    EndSwitch
    WEnd

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

    EndFunc

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

    Func _GUI_Var_List()

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

    Dim $Labels_var[100]
    Dim $Inputs_var[100]

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

    ;MsgBox(0,"",UBound($aArray_var1))

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

    $gui_var = GUICreate("label array", 420 , UBound($aArray_var1) * 20 + 60, -1, -1, BitXOR($GUI_SS_DEFAULT_GUI, $WS_MINIMIZEBOX))
    ;----------
    $x_l = 20
    $y_l = 10
    ;----------
    $x_i = 200
    $y_i = 10
    ;----------

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

    For $n = 0 To UBound($aArray_var1) -1
    $sString = ""
    $aArray_combo = ""
    $result = ""
    $res_v = StringInStr($aArray_var1[$n], "|var|")
    $res_l = StringInStr($aArray_var1[$n], "|list|")
    ;MsgBox(0,"test",$res_l & " " & $res_v)
    If $res_v > 0 Then
    $result = StringTrimLeft($aArray_var1[$n], 7)
    $Labels_var[$n] = GUICtrlCreateLabel($result, $x_l, $y_l, 200, 20)
    $Inputs_var[$n] = GUICtrlCreateInput("", $x_i, $y_i, 200, 20)
    EndIf
    If $res_l > 0 Then
    $result = StringTrimLeft($aArray_var1[$n], 8)
    $aArray_combo = _StringBetween($aArray_var1[$n], '|list|', ':')
    ;MsgBox(0,"",$aArray_var1[$n])
    $Labels_var[$n] = GUICtrlCreateLabel($aArray_combo[0], $x_l, $y_l, 200, 20)
    $aArray_combo1 = _StringBetween($aArray_var1[$n], '#', '=')
    For $n1 = 0 To UBound($aArray_combo1) -1
    ;MsgBox(0,"", $aArray_combo1[$n1])
    $sString &= $aArray_combo1[$n1] & "|"
    Next
    $Inputs_var[$n] = GUICtrlCreateCombo("", $x_i, $y_i, 200, 20)
    GUICtrlSetData($Inputs_var[$n], $sString)
    EndIf

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

    ;$x += 150
    ;If $x + 120 > 600 Then
    $y_l += 20
    $y_i += 20
    ;$x = 20
    ;EndIf
    Next

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

    $btn_var = GUICtrlCreateButton("Button", 100, $y_l + 10, 80, 25)

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

    GUISetState(@SW_SHOW)
    WinSetOnTop ("label array","", 1)

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

    While 1
    $msg = GUIGetMsg()
    If $msg = $GUI_EVENT_CLOSE Then
    GUIDelete($gui_var)
    ExitLoop
    EndIf

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

    WEnd

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

    EndFunc

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

    #Region Textdatei
    #CS
    Func _File_01()

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

    $DATAC2 = ""
    $sString = ""
    $file = (@ScriptDir & "\TB.txt")

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

    If Not _FileReadToArray($file,$aRecords) Then
    MsgBox(4096,"Error", " Error reading log to Array error:" & @error)
    Exit
    EndIf

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

    For $x = 1 to $aRecords[0]
    ;Msgbox(0,'Record:' & $x, $aRecords[$x])
    $sString &= $aRecords[$x]
    Next
    ;MsgBox(0,"", $sString)
    $DATAC2 = $sString

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

    EndFunc
    #CE
    #EndRegion Textdatei

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

    ;------access DB auslesen -------------
    Func _ReadOneFld($_sql, $_dbname, $_field)
    Dim $_output
    $adoCon = ObjCreate("ADODB.Connection")
    $adoCon.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & $_dbname)
    $adoRs = ObjCreate("ADODB.Recordset")
    $adoRs.CursorType = 1
    $adoRs.LockType = 3
    $adoRs.Open($_sql, $adoCon)

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

    With $adoRs
    If .RecordCount Then
    While Not .EOF
    $_output = $_output & .Fields($_field).Value & @CRLF
    .MoveNext
    WEnd
    EndIf
    EndWith
    $adoCon.Close
    Return $_output
    EndFunc ;==>_ReadOneFld

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

    Func _ReadOneFld_Combo($_sql, $_dbname, $_field)
    Dim $_output
    $adoCon = ObjCreate("ADODB.Connection")
    $adoCon.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & $_dbname)
    $adoRs = ObjCreate("ADODB.Recordset")
    $adoRs.CursorType = 1
    $adoRs.LockType = 3
    $adoRs.Open($_sql, $adoCon)

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

    With $adoRs
    If .RecordCount Then
    While Not .EOF
    $_output = $_output & .Fields($_field).Value & "|" ;@CRLF
    .MoveNext
    WEnd
    EndIf
    EndWith
    $adoCon.Close
    Return $_output
    EndFunc ;==>_ReadOneFld

    [/autoit]

    danke :)

    gruß gmmg

    Dateien

    bild2.jpg 55,2 kB – 0 Downloads
  • Daten aus MySQL Datenbank runterladen/auslesen

    • gmmg
    • 22. April 2012 um 12:20

    noch besser die mysql udf mit der libmysql.dll

    MySQL UDF - mit libmySQL.dll (kein ODBC)

    genügend beispiele sind da vorhanden :)

    gruß gmmg

  • dynamisch erzeugte Input / Combo Box auslesen?

    • gmmg
    • 20. April 2012 um 16:20

    folgend noch die größenanpassung der gui an die einträge aus dem array ...

    [autoit]

    $gui_var = GUICreate("label array", 420 , UBound($aArray_var1) * 20 + 60, -1, -1, BitXOR($GUI_SS_DEFAULT_GUI, $WS_MINIMIZEBOX))

    [/autoit]

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™