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

Beiträge von TheLuBu

  • Popup Menu Handle?

    • TheLuBu
    • 6. Januar 2012 um 11:39

    Hallo liebe Community,
    Ich arbeite derzeit an einer Zeiterfassung und bräuchte da jetzt etwas Hilfe:

    Ich habe folgenden Button:
    [Blockierte Grafik: http://img7.imageshack.us/img7/413/buttonghp.jpg]

    wenn man auf ihn klickt passiert eine Aktion, die mich jetzt nicht interessiert ;)
    Klickt man aber auf den Pfeil am rechten Rand, erscheint folgendes PopUp Menu:
    [Blockierte Grafik: http://s1.directupload.net/images/120106/y7w5bc4f.jpg]

    Derzeit löse ich das mit einem Controlklick auf den Pfeil des Buttons und dann Send Befehlen, um durch das Popup Menu zu steuern, aber das ist nur ein Workaround, der nicht sehr gut funktioniert.

    Kann ich irgendwie an das Handle des Fensters kommen (hat keine infos im AutoIt Window Info)?

  • Excel frage

    • TheLuBu
    • 4. Januar 2012 um 14:51

    Welche Excelversion hast du? Bei Office 2010 hat sich da was verändert

    Spoiler anzeigen
    [autoit]

    ; #FUNCTION#
    ;===============================================================================
    ; Function Name: _ExcelSaveAs($oExcel, $Fileformat, $NewFilepath, $Close = True)
    ; Description: Speichert eine Exceldatei in einem bestimmten Format ab
    ; Parameter(s): $oExcel Ein Excelobject, wie es von _ExcelbookOpen oder _ExcelbookNew zurückgegeben wird
    ; $Fileformat Der Dateityp, in dem gespeichert werden soll (xlsx, xlsb, xlsm, xls, csv, txt, prn)
    ; $NewFilepath Speicherort und Dateiname der neuen Datei
    ; $Close = True Soll nach dem Speichern das Objekt geschlossen werden? (Standard = True)
    ; Return Value(s): Erfolg Gibt 1 zurück
    ; Fehler @error 1 - $oExcel ist kein Objekt
    ; 2 - $Fileformat ist keine bekannte Dateiendung oder Formatnummer
    ; Author(s): TheLuBu ([email='LuBu@veytal.com'][/email])
    ; Copyright: TheLuBu ([email='LuBu@veytal.com'][/email])
    ;===============================================================================
    Func _ExcelSaveAs($oExcel, $vFileformat, $vNewFilepath, $bClose = True)
    If Not IsObj($oExcel) Then Return SetError(1, 0, 0)
    Switch $vFileformat
    Case 51, "xlsx", ".xlsx"
    $vFileformat = 51
    Case 50, "xlsb", ".xlsb"
    $vFileformat = 50
    Case 52, "xlsm", ".xlsm"
    $vFileformat = 52
    Case 6, "csv", ".csv"
    $vFileformat = 6
    Case -4158, "txt", ".txt"
    $vFileformat = -4158
    Case 36, "prn", ".prn"
    $vFileformat = 36
    Case 56, "xls", ".xls"
    $vFileformat = 56
    Case Else
    Return SetError(2, 0, 0)
    EndSwitch
    With $oExcel
    .Application.DisplayAlerts = False ; Schaltet Fehlermeldungen bei Excel aus
    .ActiveWorkBook.SaveAs($vNewFilepath, $vFileformat)
    If $bClose Then
    .ActiveWorkbook.Close ; Schließt die Tabelle
    .Quit ; Schließt das Workbook
    EndIf
    EndWith
    Return 1
    EndFunc ;==>_ExcelSaveAs

    [/autoit]
  • Wie kann ich die mausposition weiter verwenden?

    • TheLuBu
    • 4. Januar 2012 um 13:04

    Deklariere $pos als Global

    [autoit]

    Global $pos

    [/autoit]

    am Anfang des Scripts, dann kannst du die auch in den anderen Funktionen nutzen

  • Excel frage

    • TheLuBu
    • 3. Januar 2012 um 15:45

    Also bei mir klappt es
    Die Datei heißt test.xls und liegt auf dem Desktop

    [autoit]

    #include <Excel.au3>
    $oExcel = _Excelbookopen(@DesktopDir&"\test.xls")

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

    For $i = 1 To 10000
    If _excelreadcell($oExcel, $i, 1) = "" Then
    Msgbox(0, "Gefunden", "Leer Zeile nr. "&$i&" gefunden")
    EndIf
    Next

    [/autoit]
  • Excel frage

    • TheLuBu
    • 3. Januar 2012 um 14:51

    Ich kenne deine Exceldatei nicht ;)
    Der geht nur die erste Spalte durch und schaut ob da was drin steht, nicht die Zeile. Du musst schon festlegen,welche Spalte oder welche Spalten leer sein müssen

  • Excel frage

    • TheLuBu
    • 3. Januar 2012 um 14:23

    du kannst in einer Schleife durchgehen

    [autoit]

    For $i = 1 To 10000
    If _excelreadcell($oExcel, $i, 1) = "" Then
    Msgbox(0, "Gefunden", "Leer Zeile nr. "&$i&" gefunden"
    EndIf
    Next

    [/autoit]
  • Wie kann ich die mausposition weiter verwenden?

    • TheLuBu
    • 3. Januar 2012 um 14:21

    Naja, geh mal deine Funktionen durch ;)

    1. Gui kommt.
    2. Bei Klick auf Button kommt die Funktion Losgehts()
    Dadurch kann man 2 Funktionen starten:
    _start und _close

    bei start wieder dann copy aufgerufen, bei close nur Exit.

    Deine anderen Funktionen werden nie aufgerufen, es sind unnütze Funktionen (zumindest für den Compiler)

  • Wie kann ich die mausposition weiter verwenden?

    • TheLuBu
    • 3. Januar 2012 um 10:42
    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Navision2Excel = GUICreate("Navision2Excel", 601, 299, 192, 124)
    GUISetFont(10, 400, 0, "MS Sans Serif")
    GUISetBkColor(0x008080)
    $Label1 = GUICtrlCreateLabel("Bitte die Anzahl der zu exportierenden Zeilen eingeben:", 72, 24, 384, 26)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $Input1 = GUICtrlCreateInput("Export", 456, 24, 49, 24, BitOR($GUI_SS_DEFAULT_INPUT,$ES_RIGHT,$ES_NUMBER))
    $Button1 = GUICtrlCreateButton("Hier gehts zum Tutorial", 120, 104, 353, 41)
    $Button2 = GUICtrlCreateButton("Start", 120, 224, 353, 41)
    $Label2 = GUICtrlCreateLabel("Auf Start drücken, Mauszeiger auf dem Startpunkt platzieren und", 80, 168, 434, 20)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $Label3 = GUICtrlCreateLabel("mit Tastendruck auf 'o' bestätigen.", 80, 192, 245, 20)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    GUISetState(@SW_MINIMIZE)
    ShellExecute ("Tutorial.docx","","F:\mne\","","")
    Case $Button2
    GUISetState(@SW_HIDE)
    Losgehts()
    Exit
    EndSwitch
    WEnd

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

    Func Losgehts()
    HotKeySet("o","_start")
    HotKeySet("{f1}","close")

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

    While 1
    Sleep(10)
    WEnd
    EndFunc

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

    Func _start()
    $pos = MouseGetPos()
    Sleep(500)
    MsgBox(0, "Maus x,y:", $pos[0] & "," & $pos[1])
    copy($pos[0],$pos[1])
    EndFunc

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

    Func copy($x,$y)
    Local $i
    Local $nav = 4 ;später dann Local $nav = GUICtrlRead($input1)
    Local $k2 = 0 ;Offset

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

    For $i= 1 to $nav

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

    Send("{CTRLDOWN}")
    Sleep (1200)
    MouseClick("left", $x, ($y+$k2), 1)
    $k2 += 17
    Sleep (1200)
    Send("{CTRLUP}")
    send("^c")

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

    ;$nav=$nav-1
    Next

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

    EndFunc

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

    Func close()
    Exit
    EndFunc

    [/autoit]
  • Icon aus einer dll via Name aufrufen

    • TheLuBu
    • 3. Januar 2012 um 09:08

    Wenn ich das richtig weiß, werden die Namen als Großbuchstaben gespeichert, also "ICONSCHWERT", ich greife in meinen Programmen über den Namen drauf zu

  • $ wird nicht gesendet

    • TheLuBu
    • 2. Januar 2012 um 15:26

    Hast du den String Escaped mit

    [autoit]

    StringstripWS

    [/autoit]

    ?

  • $ wird nicht gesendet

    • TheLuBu
    • 2. Januar 2012 um 13:37

    Dann mach ein Debug to MsgBox :)

  • $ wird nicht gesendet

    • TheLuBu
    • 2. Januar 2012 um 13:02

    überprüf mal in der Console bitte die Variable in Zeile 319, steht da auch der Text drin den du haben willst?
    Evtl. mal mit

    [autoit]

    StringStripWS

    [/autoit]

    leerzeichen oder Zeilenumbrüche entfernen?

  • $ wird nicht gesendet

    • TheLuBu
    • 2. Januar 2012 um 10:54

    es gibt keine Zeile 375 ^^

    Ich denke mal es geht um Zeile 319 ;)

    Hat die Variable denn überhaupt einen Inhalt?
    Überprüf mal zeile 60, obs da nen Fehler gibt und in der Funktion selbst

  • Hilfe zur erstellung einer Import/Export Funktion aus/in eine INI

    • TheLuBu
    • 30. Dezember 2011 um 15:52

    Ups ein kleiner Fehler hat sich eingeschlichen,
    relativ weit unten in der Schleife bitte

    [autoit]

    $s = 0

    [/autoit]

    durch

    [autoit]

    $s = 1

    [/autoit]

    ersetzen

  • Hilfe zur erstellung einer Import/Export Funktion aus/in eine INI

    • TheLuBu
    • 30. Dezember 2011 um 14:09

    Mit deinen Beispieldaten hat es so geklappt ;)

    Spoiler anzeigen
    [autoit]

    #include <File.au3>
    #include <array.au3>
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 483, 238, 192, 124)
    $Button1 = GUICtrlCreateButton("Import", 112, 24, 233, 81)
    $Button2 = GUICtrlCreateButton("Export", 110, 119, 233, 81)
    GUISetState(@SW_SHOW)
    #endregion ### END Koda GUI section ###
    ;---------------------------------------------------------------------------------------------------------------
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    ;---------------------------------------------------------------------------------------------------------------
    Case $Button2
    _export()
    Case $Button1
    _import()
    EndSwitch
    WEnd
    Func _export()
    If FileExists(@ScriptDir & "\lagerimport.ini") Then
    $box1 = MsgBox(4, "blabla", "sollen die daten überschrieben werden?")
    If $box1 = 6 Then
    $read = FileRead("gildendata.ini")
    $open = FileOpen("lagerimport.ini", 2)
    FileWrite($open, $read)
    FileClose($open)
    ElseIf $box1 = 7 Then
    MsgBox(0, "Sie haben Nein gedrückt", "Daten werden nicht Exportiert")
    EndIf
    Else
    FileCopy(@ScriptDir & "\gildendata.ini", @ScriptDir & "\lagerimport.ini")
    EndIf
    EndFunc ;==>_export
    Func _import()
    $Lageraccounts = IniReadSectionNames(@ScriptDir & "\lagerimport.ini")
    $GildenAccounts = IniReadSectionNames(@ScriptDir & "\gildendata.ini")
    For $k = 1 To $Lageraccounts[0]
    $Vergleichbool = False
    For $i = 1 To $GildenAccounts[0]
    If $GildenAccounts[$i] = $Lageraccounts[$k] Then
    $Vergleichbool = True
    $msgbox = MsgBox(4, "Gefunden", "Der Account " & $GildenAccounts[$i] & " ist bereits vorhanden." & @CRLF & "Soll er überschrieben werden?")
    If $msgbox = 6 Then
    $tmparray = IniReadSection(@ScriptDir & "\lagerimport.ini", $Lageraccounts[$k])
    $temptxt = ""
    For $s = 0 To UBound($tmparray) - 1
    $temptxt &= $tmparray[$s][0] & "=" & $tmparray[$s][1] & @CRLF
    Next
    IniWriteSection(@ScriptDir & "\gildendata.ini", $GildenAccounts[$i], $temptxt)
    EndIf
    EndIf
    Next
    If $Vergleichbool = False Then
    $msgbox = MsgBox(0, "Nicht gefunden", "Der Account " & $Lageraccounts[$k] & " wurde nicht gefunden, er wird in die Ini geschrieben!")
    $tmparray = IniReadSection(@ScriptDir & "\lagerimport.ini", $Lageraccounts[$k])
    $temptxt = ""
    For $s = 0 To UBound($tmparray) - 1
    $temptxt &= $tmparray[$s][0] & "=" & $tmparray[$s][1] & @CRLF
    Next
    IniWriteSection(@ScriptDir & "\gildendata.ini", $Lageraccounts[$k], $temptxt)
    EndIf
    Next
    EndFunc ;==>_import

    [/autoit]
  • Wie kann ich die mausposition weiter verwenden?

    • TheLuBu
    • 30. Dezember 2011 um 13:37
    [autoit]

    HotKeySet("{F1}", "Getcoords")
    Global $Pos

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

    While 1
    If IsArray($Pos) Then
    For $i = 1 To $nav

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

    Send("{CTRLDOWN}")
    Sleep(200)
    MouseClick("left", 1301, (114 + $k2), 1)
    $k2 = $k2 + 17
    Sleep(200)
    Send("{CTRLUP}")
    Send("^c")

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

    $nav = $nav - 1
    Next
    $Pos = ""
    EndIf
    WEnd

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

    Func Getcoords()
    $Pos = MouseGetPos()
    Sleep(2000)
    MsgBox(0, "Maus x,y:", $Pos[0] & "," & $Pos[1])
    EndFunc ;==>Getcoords

    [/autoit]
  • Hilfe zur erstellung einer Import/Export Funktion aus/in eine INI

    • TheLuBu
    • 29. Dezember 2011 um 15:09

    Hallo Ghostreader,
    Also zu deinen Accounts
    Laut deiner Beispiel Ini sind die Accountnamen immer der Sektionsname.
    Dafür nehmen wir die Funktion

    [autoit]

    IniReadSectionNames

    [/autoit]


    Das liefert uns alle Sektionsnamen, also auch alle Accountnamen.

    Beim Import musst du jetzt erstmal die Accountnamen überprüfen:

    Spoiler anzeigen
    [autoit]

    $GildenAccounts = IniReadSectionNames ("gildendata.ini")
    $Lageraccounts = IniReadSectionNames ("lagerimport.ini")
    For $i = 1 To $GildenAccounts[0]
    $Vergleichbool = False
    For $k = 1 TO $Lageraccounts[0]
    If $GildenAccounts[$i] = $Lageraccounts[$k] Then
    $Vergleichbool = True
    ;-----------------
    ;Zwei gleiche Accounts gefunden
    ;Aktion einbauen
    EndIf
    Next
    If $Vergleichbool = False Then
    ;--------------------
    ;Account wurde nicht gefunden
    ;Aktion einbauen
    EndIf
    Next

    [/autoit]
  • Batch datei in Autoit Skript implementieren

    • TheLuBu
    • 29. Dezember 2011 um 14:13
    Spoiler anzeigen
    [autoit]

    InetGet ("http://www.xyz.de/xyz.zip" , "abc.zip")
    Batch()

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

    Func Batch()
    $hFile = FileOpen("batch.bat", 2)
    FileWrite($hFile, "7za.exe e abc.zip")
    FileClose($hFile)
    RunWait("batch.bat")
    FileDelete("batch.bat")
    EndFunc

    [/autoit]
  • Thema geschloßen!

    • TheLuBu
    • 29. Dezember 2011 um 14:07

    Wenn du nicht weißt, welche Datenbank es ist, schreib einmal bitte, mit welchen Programm du die Datenbank öffnest bzw. durchsuchst

  • Milisekunden in Uhrzeit umwandeln

    • TheLuBu
    • 27. Dezember 2011 um 14:31

    Desshalb habe ich die FUnktion nicht gefunden.
    Ich bin auch von Ticks = Prozessortakt ausgegangen.
    Naja gut, wieder eine Zeitfunktion mehr für mein "portfolio" ;D

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™