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

Beiträge von PenGuin

  • Zufallszahlen

    • PenGuin
    • 11. Mai 2010 um 14:24

    Definiere zufälliger.

  • Zufallszahlen

    • PenGuin
    • 11. Mai 2010 um 14:22

    Was spricht gegen

    [autoit]

    Random(2, 7, 1)

    [/autoit]

    ?

  • Administratives Fenster

    • PenGuin
    • 9. Mai 2010 um 23:36

    Man sollte auch mit der cmd etwas anstellen können. A la net user und so ;D
    Aber ich geh da mal nicht genau so drauf ein ~.~

  • Arbeitsplaner

    • PenGuin
    • 9. Mai 2010 um 22:55

    Hallo, hiermit veröffentlich ich meinen "Arbeitsplaner".
    In ihn kann man die "kommt" und "geht" Zeiten eintragen, sowie das Soll und die Pause, um seine Überstunden zu managen.
    Zuerst war dieses Programm für meine Mutter, doch ich hab mir gedacht, dass sicherlich auch hier welche dieses Programm gebrauchen könnten.

    Hier ist der Sourcecode:

    Spoiler anzeigen
    [autoit]


    #include <Array.au3>
    #include <Date.au3>
    #include <File.au3>
    #include <GuiListView.au3>
    #include <SendMessage.au3>
    #include <WinAPI.au3>
    #include <Constants.au3>
    #include <EditConstants.au3>
    #include <FontConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <HeaderConstants.au3>
    #include <ListViewConstants.au3>
    #include <StructureConstants.au3>
    #include <WindowsConstants.au3>
    ;================================================================================
    ;Arbeitsplaner
    ;================================================================================
    Global $Auswahl[2]; Array zum speichern der letzten Listviewauswahl
    Global $Year = @YEAR
    Global $Zeilen = 0
    Global $aLV[1]
    Global $hInput, $sTitleFile, $sFile, $hFont, $Input1, $SavePath
    Global $IniFileName = @ScriptDir & "\data\data.ini"
    Global $Praefix = IniRead($IniFileName, "Infos", "Dateipraefix", @MDAY & @MON & @YEAR & " - ")

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

    Opt("GUIOnEventMode", 1)

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

    Dim $aMonth[12][2] = [[01, "Januar"],[02, "Februar"],[03, "März"],[04, "April"],[05, "Mai"],[06, "Juni"], _
    [07, "Juli"],[08, "August"],[09, "September"],[10, "Oktober"],[11, "November"],[12, "Dezember"]]
    $iIndex = _ArraySearch($aMonth, @MON)
    $LabelMonth = $aMonth[$iIndex][1]

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

    If Not FileExists(@ScriptDir & "\data") Then DirCreate(@ScriptDir & "\data")
    If Not FileExists($IniFileName) Then
    IniWrite($IniFileName, "Infos", "Vormonat", "0")
    IniWrite($IniFileName, "Infos", "Speicherpfad", "")
    IniWrite($IniFileName, "Infos", "Dateipraefix", @MDAY & @MON & @YEAR & " - ")
    IniWrite($IniFileName, "Infos", "Soll", "8.00")
    IniWrite($IniFileName, "Infos", "Pause", "0:45")
    EndIf

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

    Global $SavePath = IniRead($IniFileName, "Infos", "Speicherpfad", "")

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

    AdlibRegister("_HasFocus", 10)

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

    #region ### START Koda GUI section ###
    $GUI = GUICreate("Arbeitsplaner", 845, 468, 271, 141)
    GUISetBkColor(0xFFFFFF)
    GUISetOnEvent(-3, "_Exit")
    GUISetFont(10, 400, 0, "Arial")
    $Datei = GUICtrlCreateMenu("&Datei")
    $Neu = GUICtrlCreateMenuItem("&Neu", $Datei)
    GUICtrlSetOnEvent(-1, "_Neu")
    $Oeffnen = GUICtrlCreateMenuItem("Öffnen", $Datei)
    GUICtrlSetOnEvent(-1, "_LoadLV")
    $Speichern = GUICtrlCreateMenuItem("&Speichern", $Datei)
    GUICtrlSetOnEvent(-1, "_Save")
    $Speichernu = GUICtrlCreateMenuItem("S&peichern unter", $Datei)
    GUICtrlSetOnEvent(-1, "_SaveLV")
    $Drucken = GUICtrlCreateMenuItem("&Drucken", $Datei)
    GUICtrlSetOnEvent(-1, "_Print")
    $Beenden = GUICtrlCreateMenuItem("Beenden", $Datei)
    GUICtrlSetOnEvent(-1, "_Exit")
    $Optionen = GUICtrlCreateMenu("&Optionen")
    $SubOptionen = GUICtrlCreateMenuItem("&Optionen", $Optionen)
    GUICtrlSetOnEvent(-1, "_OptChange")
    $Help = GUICtrlCreateMenu("?")
    $SubAbout = GUICtrlCreateMenuItem("&About", $Help)
    GUICtrlSetOnEvent(-1, "_About")
    $Grid = GUICtrlCreateListView("Datum|kommt|geht|Ist|Konto +/-|Bemerkung", 8, 8, 577, 430, $LVS_NOSORTHEADER, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT))
    $hHeader = _GUICtrlListView_GetHeader(GUICtrlGetHandle($Grid))
    $hGrid = GUICtrlGetHandle($Grid)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 70)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 85)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 85)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 3, 75)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 4, 75)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 5, 165)
    $AZKonto = GUICtrlCreateGroup("", 608, 320, 217, 97)
    $Label1 = GUICtrlCreateLabel("AZ-Konto Vormonat:", 614, 336, 122, 20)
    $Label2 = GUICtrlCreateLabel("Saldenveränderung:", 614, 356, 117, 20)
    $Label3 = GUICtrlCreateLabel("Neuer Saldo AZ-Konto:", 614, 392, 137, 20)
    $Vormonat = GUICtrlCreateLabel(IniRead($IniFileName, "Infos", "Vormonat", "0"), 758, 336, 35, 20)
    $Veraenderung = GUICtrlCreateLabel("0", 758, 356, 35, 20)
    $NeuSaldo = GUICtrlCreateLabel("0", 758, 392, 35, 20)
    $Label7 = GUICtrlCreateLabel("h", 805, 336, 11, 20)
    $Label8 = GUICtrlCreateLabel("h", 805, 356, 11, 20)
    $Label9 = GUICtrlCreateLabel("h", 805, 392, 11, 20)
    $Label10 = GUICtrlCreateLabel("______________", 755, 376, 60, 11)
    GUICtrlSetFont(-1, 5, 400, 0, "Arial")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group1 = GUICtrlCreateGroup("", 608, 248, 113, 65)
    $Label11 = GUICtrlCreateLabel("Soll:", 616, 264, 30, 20)
    $Label12 = GUICtrlCreateLabel("Pause:", 616, 288, 45, 20)
    $Soll = GUICtrlCreateLabel(IniRead($IniFileName, "Infos", "Soll", "8.00"), 672, 264, 29, 20)
    $Pause = GUICtrlCreateLabel(IniRead($IniFileName, "Infos", "Pause", "0:45"), 672, 288, 29, 20)
    $Label6 = GUICtrlCreateLabel("h", 704, 288, 11, 20)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $MonthCal1 = GUICtrlCreateMonthCal(@YEAR & "/" & @MON & "/" & @MDAY, 628, 16, 180, 164)
    $Label4 = GUICtrlCreateLabel("Zeitauswertung " & $LabelMonth & " " & @YEAR, 608, 224, 195, 23)
    GUICtrlSetFont(-1, 13, 400, 0, "Arial")
    $Dummy = GUICtrlCreateDummy()
    GUICtrlSetOnEvent(-1, "_Tab")
    GUISetState(@SW_SHOW)
    Dim $GUI_AccelTable[6][2] = [["^n", $Neu],["^o", $Oeffnen],["^s", $Speichern],["^p", $Drucken],["^a", $SubAbout],["{TAB}", $Dummy]]
    GUISetAccelerators($GUI_AccelTable)
    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
    GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
    GUICtrlSetState($Speichern, $GUI_DISABLE)
    #endregion ### START Koda GUI section ###

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

    Global $hInputEx = ListViewEdit($GUI); Input für Listviewedit
    GUICtrlSetData($Soll, IniRead($IniFileName, "Infos", "Soll", "8.00"), "8.00")
    GUICtrlSetData($Pause, IniRead($IniFileName, "Infos", "Pause", "0:45"), "0:45")

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

    #region ### START Koda GUI section ### Form=
    $Options = GUICreate("Optionen", 387, 401, 407, 182)
    GUISetBkColor(0xFFFFFF)
    GUISetOnEvent(-3, "_Abbrechen")
    GUISetOnEvent($GUI_EVENT_PRIMARYDOWN, "_Click")
    GUISetFont(10, 400, 0, "Arial")
    $Group3 = GUICtrlCreateGroup("Optionen zum Speichern", 32, 48, 289, 137)
    $Label14 = GUICtrlCreateLabel("Standard Speicherpfad:", 40, 72, 139, 20)
    $Label15 = GUICtrlCreateLabel("Standard Datei-Präfix:", 40, 128, 131, 20)
    $Input1 = GUICtrlCreateInput("", 40, 96, 265, 24)
    $Input2 = GUICtrlCreateInput("", 40, 152, 265, 24)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group4 = GUICtrlCreateGroup("Soll/Pause - Veränderung", 32, 200, 289, 137)
    $Label16 = GUICtrlCreateLabel("Soll:", 40, 224, 30, 20)
    $Input3 = GUICtrlCreateInput("", 40, 248, 121, 24)
    $Label17 = GUICtrlCreateLabel("Pause:", 40, 280, 45, 20)
    $Input4 = GUICtrlCreateInput("", 40, 304, 121, 24)
    $Label18 = GUICtrlCreateLabel("Aktuell: " & GUICtrlRead($Soll), 176, 251, 125, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $Label7 = GUICtrlCreateLabel("Aktuell: " & GUICtrlRead($Pause) & " h", 176, 307, 125, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Button1 = GUICtrlCreateButton("OK", 80, 360, 89, 25, $WS_GROUP)
    GUICtrlSetOnEvent(-1, "_OkBtn")
    $Button2 = GUICtrlCreateButton("Abbrechen", 184, 360, 89, 25, $WS_GROUP)
    GUICtrlSetOnEvent(-1, "_Abbrechen")
    $Button3 = GUICtrlCreateButton("Übernehmen", 288, 360, 89, 25, $WS_GROUP)
    GUICtrlSetOnEvent(-1, "_ConfirmBtn")
    $Label13 = GUICtrlCreateLabel("Optionen:", 32, 16, 89, 27)
    GUICtrlSetFont(-1, 15, 400, 0, "Arial")
    GUISetState(@SW_HIDE)
    WinSetOnTop($Options, "", 1)
    #endregion ### END Koda GUI section ###

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

    Global $aDates = _GetMonthDayInfo(@MON, @YEAR)
    _AddDates($hGrid, $aDates)

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

    GUICtrlSetData($Input1, IniRead($IniFileName, "Infos", "Speicherpfad", ""), "")
    GUICtrlSetData($Input2, IniRead($IniFileName, "Infos", "Dateipraefix", ""), "")

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

    _LoadStart(IniRead($IniFileName, "Infos", "LastStartUp", ""))

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

    While 1
    Sleep(50)
    WEnd

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

    Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView
    $hWndListView = $Grid
    If Not IsHWnd($Grid) Then $hWndListView = GUICtrlGetHandle($Grid)
    $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
    $iCode = DllStructGetData($tNMHDR, "Code")
    Switch $hWndFrom
    Case $hHeader
    Switch $iCode
    Case -320, -321 ; -320 = $HDN_ITEMCHANGINGW -321 = $HDN_ITEMCHANGEDW
    Return 1
    EndSwitch
    Case $hWndListView
    Switch $iCode
    Case $NM_CLICK ; Sent by a list-view control when the user clicks an item with the left mouse button
    $tInfo = DllStructCreate($tagNMLISTVIEW, $ilParam); Listviewdaten auslesen
    $Index = DllStructGetData($tInfo, "Item"); Item
    $SubItem = DllStructGetData($tInfo, "SubItem"); Column
    $Auswahl[0] = $Index; Index des Listviews
    $Auswahl[1] = $SubItem;Subitem des Listviews
    Switch $SubItem
    Case 1, 2, 5
    _MoveInput($hGrid, $hInputEx, $Index, $SubItem)
    _WinAPI_SetFocus($hInputEx)
    $Text = _GUICtrlListView_GetItemText($hGrid, $Index, $SubItem);
    _WinAPI_SetWindowText($hInputEx, $Text)
    Return 0
    Case Else
    Return 1
    EndSwitch
    Case $LVN_ENDSCROLL
    _WinAPI_ShowWindow($hInputEx, @SW_HIDE)
    Switch $Auswahl[1]
    Case 1, 2, 5
    _MoveInput($hGrid, $hInputEx, $Auswahl[0], $Auswahl[1]);
    _WinAPI_SetFocus($hInputEx)
    EndSwitch
    EndSwitch
    Case Else
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_NOTIFY

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

    Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
    #forceref $hWnd, $iMsg
    Local $hWndFrom, $iIDFrom, $iCode, $hWndEdit
    $hWndFrom = $ilParam
    $iIDFrom = _WinAPI_LoWord($iwParam)
    $iCode = _WinAPI_HiWord($iwParam)
    Switch $hWndFrom
    Case $hInputEx
    Switch $iCode
    Case $EN_UPDATE ; Sent when an edit control is about to redraw itself
    $Text = _WinAPI_GetWindowText($hInputEx)
    $aSplitText = StringSplit($Text, ":")
    If Not @error Then
    If StringLen($aSplitText[1]) = 1 Then
    $Text = "0" & $aSplitText[1] & ":" & $aSplitText[2]
    EndIf
    EndIf
    _GUICtrlListView_SetItemText($hGrid, $Auswahl[0], $Text, $Auswahl[1]); Text in das Listview schreiben. $Auswahl[0] = Index $Auswahl[1] = Subitem
    EndSwitch
    _Calculate($Auswahl[0])
    $Saldo = _AddSaldo($hGrid, 4)
    GUICtrlSetData($Veraenderung, $Saldo)
    _NewSaldo()
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_COMMAND

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

    Func _Exit()
    _WinAPI_DeleteObject($hFont)
    AdlibUnRegister("_HasFocus")
    _SaveLV()
    IniWrite($IniFileName, "Infos", "LastStartup", $sFile)
    IniWrite($IniFileName, "Infos", "Actual", _AddSaldo($hGrid, 4))
    If _GetItemTextCount() = $Zeilen Then
    IniWrite($IniFileName, "Infos", "Vormonat", IniRead($IniFileName, "Infos", "Actual", ""))
    EndIf
    Exit
    EndFunc ;==>_Exit

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

    Func _GetMonthDayInfo($iMonth, $iYear)
    If Not StringRegExp($iYear, "\d{2}|\d{4}") Then Return SetError(1, 0, 0)
    If Not StringRegExp($iMonth, "\d{1,2}") Then Return SetError(1, 0, 0)
    If StringLen($iYear) = 2 Then $iYear = "20" & $iYear
    Local $iCnt = _DateDaysInMonth($iYear, $iMonth)
    If @error Then Return SetError(2, 0, 0)
    Local Const $aDayOfWeek[8] = ["", "So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"]
    Local $aRet[$iCnt + 1][2] = [[$iCnt]], $iTmp
    For $i = 1 To $iCnt
    $aRet[$i][0] = StringFormat("%.2d.%.2d.%.4d", $i, $iMonth, $iYear)
    $iTmp = _DateToDayOfWeek($iYear, $iMonth, $i)
    If Not @error Then $aRet[$i][1] = $aDayOfWeek[$iTmp]
    Next
    Return $aRet
    EndFunc ;==>_GetMonthDayInfo

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

    Func _Input_Create($hWnd, $iX, $iY, $iWidth = -1, $iHeight = -1, $iStyle = 0, $iExStyle = 0)
    $iStyle = BitOR($iStyle, $WS_CHILD, $WS_VISIBLE)
    Return _WinAPI_CreateWindowEx($iExStyle, "EDIT", "", $iStyle, $iX, $iY, $iWidth, $iHeight, $hWnd)
    EndFunc ;==>_Input_Create

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

    Func ListViewEdit($sHwnd)
    Local $hRet
    If Not IsHWnd($sHwnd) Then $sHwnd = GUICtrlGetHandle($sHwnd)
    Local $iStyle = _WinAPI_GetWindowLong($sHwnd, $GWL_STYLE)
    If BitAND($iStyle, $WS_CLIPCHILDREN) <> $WS_CLIPCHILDREN Then
    _WinAPI_SetWindowLong($sHwnd, $GWL_STYLE, BitOR($iStyle, $WS_CLIPCHILDREN))
    EndIf
    $hRet = _Input_Create($sHwnd, 1, 1, 1, 1)
    $hFont = _WinAPI_CreateFont(16.5, 0, 0, 0, 400, False, False, False, $DEFAULT_CHARSET, $OUT_DEFAULT_PRECIS, $CLIP_DEFAULT_PRECIS, $DEFAULT_QUALITY, 0, 'Arial')
    _SendMessage($hRet, $WM_SETFONT, $hFont)
    Return $hRet
    EndFunc ;==>ListViewEdit

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

    Func _MoveInput($hListView, $hProgress, $sItemIndex, $sSubItemIndex)
    Local $aRect
    If $sSubItemIndex = 0 Then
    $aRect = _GUICtrlListView_GetItemRect($hListView, $sItemIndex, 2)
    Else
    $aRect = _GUICtrlListView_GetSubItemRect($hListView, $sItemIndex, $sSubItemIndex)
    EndIf
    If $aRect[1] < 10 Then
    _WinAPI_ShowWindow($hProgress, @SW_HIDE)
    ElseIf $aRect[1] >= 10 Then
    _WinAPI_ShowWindow($hProgress, @SW_SHOW)
    EndIf
    _WinAPI_MoveWindow($hProgress, $aRect[0] + 17, $aRect[1] + 13, $aRect[2] - $aRect[0] - 12, $aRect[3] - $aRect[1] - 3, True)
    EndFunc ;==>_MoveInput

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

    Func _Calculate($iLine)
    $SubItem1 = _GUICtrlListView_GetItemText($hGrid, $iLine, 1)
    $SubItem2 = _GUICtrlListView_GetItemText($hGrid, $iLine, 2)
    If Not $SubItem1 = "" And Not $SubItem2 = "" And StringLen($SubItem1) = 5 And StringLen($SubItem2) = 5 Then
    $ZwischTime = _TimeDiff($Auswahl[0], _GUICtrlListView_GetItemText($hGrid, $iLine, 1), _GUICtrlListView_GetItemText($hGrid, $iLine, 2))
    $iTime = _TimeDiff($Auswahl[0], GUICtrlRead($Pause), $ZwischTime)
    _GUICtrlListView_AddSubItem($hGrid, $iLine, $iTime, 3)
    $iSplitTime = StringSplit($iTime, ":")
    $sKonto = ($iSplitTime[1] + ($iSplitTime[2] / 60)) - GUICtrlRead($Soll)
    _GUICtrlListView_AddSubItem($hGrid, $iLine, $sKonto, 4)
    Else
    _GUICtrlListView_AddSubItem($hGrid, $iLine, "", 3)
    _GUICtrlListView_AddSubItem($hGrid, $iLine, "", 4)
    EndIf
    EndFunc ;==>_Calculate

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

    Func _TimeDiff($iLine, $sStartTime, $sEndTime)
    $iStartEndDiff = _DateDiff("n", @YEAR & "/01/01 " & $sStartTime, @YEAR & "/01/01 " & $sEndTime)
    $iDiffInDez = $iStartEndDiff / 60
    If StringLen($iDiffInDez) < 3 Then
    Return $iDiffInDez & ":00"
    Else
    $aDiffSplit = StringSplit($iDiffInDez, ".")
    $sDezimal = "0" & "." & $aDiffSplit[2]
    $iMinutes = Round($sDezimal * 60)
    If $iMinutes < 10 Then $iMinutes = "0" & $iMinutes
    Return $aDiffSplit[1] & ":" & $iMinutes
    EndIf
    EndFunc ;==>_TimeDiff

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

    Func _Tab()
    Switch $Auswahl[1]
    Case '1'
    _MoveInput($hGrid, $hInputEx, $Auswahl[0], 2)
    $Auswahl[1] = 2
    Case '2'
    _MoveInput($hGrid, $hInputEx, $Auswahl[0], 5)
    $Auswahl[1] = 5
    Case '5'
    $Auswahl[0] += 1
    _MoveInput($hGrid, $hInputEx, $Auswahl[0], 1)
    $Auswahl[1] = 1
    EndSwitch
    _WinAPI_SetWindowText($hInputEx, "")
    EndFunc ;==>_Tab

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

    Func _AddSaldo($hWnd, $iSubItem)
    Local $iValue
    Local $iZeilen = _GUICtrlListView_GetItemCount($hWnd)
    For $i = 0 To $iZeilen
    $iValue += _GUICtrlListView_GetItemText($hGrid, $i, $iSubItem)
    Next
    Return $iValue
    EndFunc ;==>_AddSaldo

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

    Func _NewSaldo()
    GUICtrlSetData($NeuSaldo, (GUICtrlRead($Vormonat) + GUICtrlRead($Veraenderung)))
    EndFunc ;==>_NewSaldo

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

    Func _SaveLV()
    Local $hFileOut, $aItem
    Global $sFile = FileSaveDialog("Datei speichern", $SavePath, "Monatstabellen (*.mtb)", 2 + 16, $Praefix)
    If Not $sFile = "" Then
    If Not FileExists($sFile) Then $sFile &= ".mtb"
    $hFileOut = FileOpen($sFile, 2)
    For $j = 0 To _GUICtrlListView_GetItemCount($hGrid) - 1
    $aItem = _GUICtrlListView_GetItemTextString($hGrid, $j)
    FileWriteLine($hFileOut, $aItem)
    Next
    FileClose($hFileOut)
    GUICtrlSetState($Speichern, $GUI_ENABLE)
    EndIf
    EndFunc ;==>_SaveLV

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

    Func _LoadLV()
    Local $aItems
    Global $sFile = FileOpenDialog("Datei öffnen", @ScriptDir, "Monatstabellen (*.mtb)", 1 + 2)
    If FileExists($sFile) Then
    _FileReadToArray($sFile, $aItems)
    _WinAPI_SetWindowText($hInputEx, "")
    If IsArray($aItems) Then
    For $j = 1 To $aItems[0]
    $aSplit = StringSplit($aItems[$j], "|")
    For $a = 0 To 5
    _GUICtrlListView_AddSubItem($hGrid, $j - 1, $aSplit[$a + 1], $a)
    Next
    Next
    EndIf
    $aPathSplit = StringSplit($sFile, "\")
    Global $sTitleFile = StringTrimRight($aPathSplit[UBound($aPathSplit) - 1], 4)
    WinSetTitle($GUI, "", "Arbeitsplaner - " & $sTitleFile)
    $Saldo = _AddSaldo($hGrid, 4)
    GUICtrlSetData($Veraenderung, $Saldo)
    _NewSaldo()
    GUICtrlSetState($Speichern, $GUI_ENABLE)
    EndIf
    EndFunc ;==>_LoadLV

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

    Func _LoadStart($sFile)
    Local $aItems
    If FileExists($sFile) Then
    _FileReadToArray($sFile, $aItems)
    _WinAPI_SetWindowText($hInputEx, "")
    If IsArray($aItems) Then
    For $j = 1 To $aItems[0]
    $aSplit = StringSplit($aItems[$j], "|")
    For $a = 0 To 5
    _GUICtrlListView_AddSubItem($hGrid, $j - 1, $aSplit[$a + 1], $a)
    Next
    Next
    EndIf
    $aPathSplit = StringSplit($sFile, "\")
    Global $sTitleFile = StringTrimRight($aPathSplit[UBound($aPathSplit) - 1], 4)
    WinSetTitle($GUI, "", "Arbeitsplaner - " & $sTitleFile)
    $Saldo = _AddSaldo($hGrid, 4)
    GUICtrlSetData($Veraenderung, $Saldo)
    _NewSaldo()
    GUICtrlSetState($Speichern, $GUI_ENABLE)
    EndIf
    EndFunc ;==>_LoadStart

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

    Func _AddDates($hWnd, $aDatesArray)
    For $i = 1 To $aDatesArray[0][0]
    $sNew = StringTrimRight($aDatesArray[$i][0], 4)
    _GUICtrlListView_AddItem($hWnd, $sNew & " " & $aDatesArray[$i][1])
    $Zeilen += 1
    Next
    EndFunc ;==>_AddDates

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

    Func _Neu()
    Local $aFile
    If Not FileExists($sFile) Then
    $iMsgBoxAnswer = MsgBox(262179, "Arbeitsplaner", "Möchten Sie die Änderungen in " & $sTitleFile & " speichern?")
    Select
    Case $iMsgBoxAnswer = 6 ;Yes
    _Save()
    _Delete()
    Case $iMsgBoxAnswer = 7 ;No
    _Delete()
    GUICtrlSetState($Speichern, $GUI_DISABLE)
    EndSelect
    EndIf
    _FileReadToArray($sFile, $aFile)
    For $j = 0 To _GUICtrlListView_GetItemCount($hGrid) - 1
    $aItem = _GUICtrlListView_GetItemTextString($hGrid, $j)
    $aListView = _ArrayAdd($aLV, $aItem)
    Next
    If UBound($aFile) <> UBound($aListView) Then
    If Not IsDeclared("iMsgBoxAnswer") Then Local $iMsgBoxAnswer
    $iMsgBoxAnswer = MsgBox(262179, "Arbeitsplaner", "Möchten Sie die Änderungen in " & $sTitleFile & " speichern?")
    Select
    Case $iMsgBoxAnswer = 6 ;Yes
    _Save()
    _Delete()
    Case $iMsgBoxAnswer = 7 ;No
    _Delete()
    EndSelect
    EndIf
    EndFunc ;==>_Neu

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

    Func _Save()
    $hFileOut = FileOpen($sFile, 2)
    For $j = 0 To _GUICtrlListView_GetItemCount($hGrid) - 1
    $aItem = _GUICtrlListView_GetItemTextString($hGrid, $j)
    FileWriteLine($hFileOut, $aItem)
    Next
    FileClose($hFileOut)
    EndFunc ;==>_Save

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

    Func _Delete()
    _GUICtrlListView_DeleteAllItems($hGrid)
    _WinAPI_SetWindowText($hInputEx, "")
    Global $aDates = _GetMonthDayInfo(@MON, @YEAR)
    _AddDates($hGrid, $aDates)
    GUICtrlSetState($Speichern, $GUI_DISABLE)
    EndFunc ;==>_Delete

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

    Func _OptChange()
    GUISetState(@SW_HIDE, $GUI)
    Sleep(500)
    GUISetState(@SW_SHOW, $Options)
    _WinAPI_SetFocus($Options)
    EndFunc ;==>_OptChange

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

    Func _Abbrechen()
    GUISetState(@SW_HIDE, $Options)
    Sleep(500)
    GUICtrlSetData($Input1, IniRead($IniFileName, "Infos", "Speicherpfad", ""))
    GUICtrlSetData($Input2, IniRead($IniFileName, "Infos", "Dateipraefix", ""))
    GUICtrlSetData($Soll, IniRead($IniFileName, "Infos", "Soll", ""))
    GUICtrlSetData($Pause, IniRead($IniFileName, "Infos", "Pause", ""))
    GUISetState(@SW_SHOW, $GUI)
    _WinAPI_SetFocus($GUI)
    EndFunc ;==>_Abbrechen

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

    Func _OkBtn()
    GUISetState(@SW_HIDE, $Options)
    Sleep(500)
    IniWrite($IniFileName, "Infos", "Speicherpfad", GUICtrlRead($Input1))
    IniWrite($IniFileName, "Infos", "Dateipraefix", GUICtrlRead($Input2))
    If StringRegExp(GUICtrlRead($Input3), "(\d{1,2})\.(\d{2})", 1) Then
    IniWrite($IniFileName, "Infos", "Soll", GUICtrlRead($Input3))
    Else
    GUICtrlSetData($Input3, "ERROR")
    EndIf
    If StringRegExp(GUICtrlRead($Input4), "(\d{1})\:(\d{2})", 1) Then
    IniWrite($IniFileName, "Infos", "Pause", GUICtrlRead($Input4))
    Else
    GUICtrlSetData($Input4, "ERROR")
    EndIf
    GUICtrlSetData($Soll, IniRead($IniFileName, "Infos", "Soll", "8.00"))
    GUICtrlSetData($Pause, IniRead($IniFileName, "Infos", "Pause", "0:45"))
    GUISetState(@SW_SHOW, $GUI)
    _WinAPI_SetFocus($GUI)
    EndFunc ;==>_OkBtn

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

    Func _ConfirmBtn()
    IniWrite($IniFileName, "Infos", "Speicherpfad", GUICtrlRead($Input1))
    IniWrite($IniFileName, "Infos", "Dateipraefix", GUICtrlRead($Input2))
    If StringRegExp(GUICtrlRead($Input3), "(\d{1,2})\.(\d{2})", 1) Then
    IniWrite($IniFileName, "Infos", "Soll", GUICtrlRead($Input3))
    Else
    GUICtrlSetData($Input3, "ERROR")
    EndIf
    If StringRegExp(GUICtrlRead($Input4), "(\d{1})\:(\d{2})", 1) Then
    IniWrite($IniFileName, "Infos", "Pause", GUICtrlRead($Input4))
    Else
    GUICtrlSetData($Input4, "ERROR")
    EndIf
    GUICtrlSetData($Soll, IniRead($IniFileName, "Infos", "Soll", "8.00"))
    GUICtrlSetData($Pause, IniRead($IniFileName, "Infos", "Pause", "0:45"))
    GUICtrlSetData($Label18, "Aktuell: " & GUICtrlRead($Soll))
    GUICtrlSetData($Label7, "Aktuell: " & GUICtrlRead($Pause) & " h")
    EndFunc ;==>_ConfirmBtn

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

    Func _Print()
    Local $sFilePath = @ScriptDir & "\print.txt"
    Local $sHeader = "Datum|kommt|geht|Ist|Konto +/-|Bemerkung"
    RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Notepad", "IfFaceName", "REG_SZ", "Arial")
    RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Notepad", "iPointSize", "REG_DWORD", "0x00000082")
    _FileCreate(@ScriptDir & "\Arbeitszeiten" & $LabelMonth & " " & $Year & ".txt")
    $hFile = FileOpen($sFilePath, 2)
    FileWriteLine($hFile, "Arbeitszeiten " & $LabelMonth & " " & $Year)
    FileWriteLine($hFile, @CRLF)
    FileWriteLine($hFile, @CRLF)
    FileWriteLine($hFile, StringReplace($sHeader, "|", @TAB))
    FileWriteLine($hFile, @CRLF)
    For $j = 0 To _GUICtrlListView_GetItemCount($hGrid) - 1
    $aItem = _GUICtrlListView_GetItemTextString($hGrid, $j)
    FileWriteLine($hFile, StringReplace($aItem, "|", @TAB))
    Next
    _FilePrint($sFilePath)
    If Not @error Then
    Sleep(1000)
    MsgBox(262208, "Erfolgreich!", "Der Druckvorgang konnte erfolgreich abgeschlossen werden!")
    Else
    MsgBox(262160, "Fehlgeschlagen!", "Der Druckvorgang ist fehlgeschlagen!")
    EndIf
    FileClose($hFile)
    FileDelete($sFilePath)
    RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Notepad", "IfFaceName", "REG_SZ", "Lucida Console")
    RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Notepad", "iPointSize", "REG_DWORD", "0x00000064")
    EndFunc ;==>_Print

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

    Func _About()
    MsgBox(262208, "About", "Dieses Programm unterliegt einem Copyright von pinguin94 (http://www.autoit.de)" & @CRLF & _
    "Special Thanks gehen an Raupi (http://www.autoit.de) für die grandiosen Nachrichtencodes in diesem Programm.")
    EndFunc ;==>_About

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

    Func _HasFocus()
    $hInput = GUICtrlGetHandle($Input1)
    If _WinAPI_GetFocus() = $hInput Then
    _WinAPI_SetFocus(0)
    EndIf
    EndFunc ;==>_HasFocus

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

    Func _PtIsInRect($iXPoint, $iYPoint, $iXRect, $iYRect, $iWidthRect, $iHeightRect)
    If $iXPoint >= $iXRect And $iYPoint >= $iYRect And $iXPoint <= $iXRect + $iWidthRect And $iYPoint <= $iYRect + $iHeightRect Then Return 1
    Return 0
    EndFunc ;==>_PtIsInRect

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

    Func _Click()
    $aMousePos = GUIGetCursorInfo($Options)
    If _PtIsInRect($aMousePos[0], $aMousePos[1], 40, 96, 265, 24) Then
    WinSetOnTop($Options, "", 0)
    $SavePath = FileSelectFolder("Wähle Standard Speicherpfad", "", 1 + 2 + 4)
    GUICtrlSetData($Input1, $SavePath, "")
    EndIf
    WinSetOnTop($Options, "", 1)
    EndFunc ;==>_Click

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

    Func _GetItemTextCount()
    Local $iAnzahl = 0
    For $i = 0 To _GUICtrlListView_GetItemCount($hGrid)
    If _GUICtrlListView_GetItemText($hGrid, $i, 4) <> "" Then
    $iAnzahl += 1
    EndIf
    Next
    Return $iAnzahl
    EndFunc ;==>_GetItemTextCount

    [/autoit]

    Verbesserungen und Bugmeldungen sind gerne erwünscht.

    Momentaner Bug ist, dass wenn man das Fenster minimiert und danach wiederherstellt, dass dann die GUI verwischt, eine Lösung dafür hab ich noch nicht gefunden.

    Special Thanks gehen außerdem an Raupi, der mir bei dem verschiebbaren Control geholen hat und dazu auch die Nachrichtencodes geschrieben hat. Danke.

    Also Bugs und Verbesserungen bitte hier melden.

    Download:
    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Dies ist die Generalprobe der Community, d.h. es könnten grobe Fehler auftreten, von denen ich nichts weiß!
    Auch die Druckfunktion ist ein wenig improvisiert :D

    MfG

    Dateien

    Arbeitsplaner.au3 23,35 kB – 761 Downloads
  • Filin

    • PenGuin
    • 9. Mai 2010 um 01:10

    Wen ndu schon gehst, gib uns Tipps, warum du meinst du passt nicht in diese Community. Was machen wir falsch?^^

  • While - Wend

    • PenGuin
    • 8. Mai 2010 um 23:44

    Wenn in dem inkludierten Script nun die Funktion magic und taste 2 steht, ja

  • While - Wend

    • PenGuin
    • 8. Mai 2010 um 23:38

    Jop^^

  • ICQ-Fenster Style (TestMode)

    • PenGuin
    • 6. Mai 2010 um 22:59

    Bei mir Win7 64bit ist das nicht.^^

  • Hausaufgabe als Autoit-Script zur Berechnung - Was ist falsch?

    • PenGuin
    • 6. Mai 2010 um 17:16

    Ich weiß nicht obs dasselbe ist, aber

    [autoit]

    $pi = ATan(1) * 4

    [/autoit]

    stimmt zu 100%.

    EDIT: Ok ist dasselbe :D

  • Bei Programmstart Script mitstarten

    • PenGuin
    • 6. Mai 2010 um 15:43

    Ja nur soll mein Programm nicht bei Windows Start starten^^

  • Bei Programmstart Script mitstarten

    • PenGuin
    • 5. Mai 2010 um 23:39

    Wenn ich %comspec% /c start "Pfad zu Programm" && start "Pfad zu Script"
    (Jeweils den Pfad einsetzen)
    mache, dann öffnen sich einfach 2 Kommandozeilen Fenster, aber nicht mein Programm : /

  • Bei Programmstart Script mitstarten

    • PenGuin
    • 5. Mai 2010 um 23:14

    Hallo, ich hätte da eine Frage:

    Kann ich irgendwie bewerkstelligen, dass automatisch mein Script mitstartet, wenn ich ein Programm starte, ohne das mein Script vorher lief?

  • Blockout 3D Tetris

    • PenGuin
    • 5. Mai 2010 um 12:54

    Monster Array am Anfang (für mich :D)
    Super Spiel, sehr sauber programmiert und super grafische Darstellung :o

  • Zeile pro Zeile suchen -> Performance verbessern

    • PenGuin
    • 3. Mai 2010 um 22:57
    [autoit]

    _FileReadToArray
    ;und
    FileRead

    [/autoit]
  • gui problem

    • PenGuin
    • 2. Mai 2010 um 11:47

    Ich allein würde nun aus Protest, weil sich hier jeder über solche Avatare aufregt, einen Teletubbie als Avatar nehmen...
    Ich mein, ein Glück, dass man seinen Avatar frei wählen darf, ich find ihn nicht wirklich schlimm, nur gewöhnungsbedürftig, aber das sind hier manch andere Avatare auch.

  • gui problem

    • PenGuin
    • 1. Mai 2010 um 22:27

    Jona wo liegt dein Problem? Lass ihn sein Avatar halt?!

  • Probleme mit Prospeed.dll

    • PenGuin
    • 29. April 2010 um 22:25

    Lest ihr eigentlich mal?
    Ich habe bereits mehrmals gesagt, dass es von dort anscheinend NICHT funktioniert!!!

  • Task Verstecken, Fenster im Vordergrund

    • PenGuin
    • 29. April 2010 um 21:13

    Ich weiß nicht progandy :D
    Vielleicht war ich einfach schneller, weils eine von den Fragen ist, die ich beantworten kann ._.
    Ich mein, ich Noob will auch helfen :D

  • Task Verstecken, Fenster im Vordergrund

    • PenGuin
    • 29. April 2010 um 21:02
    Zitat von EliteMattthias

    Ich habe ja

    [autoit]

    WinSetOnTop("", "", 1)

    [/autoit]


    Gemacht, aber es kam nichts -.-

    Versuch mal den Titel des Fensters einzutragen, bzw. dir das Handle holen und das dann nutzen...

  • Task Verstecken, Fenster im Vordergrund

    • PenGuin
    • 29. April 2010 um 20:57

    Du willst den Task im Taskmanager verstecken?
    Welchen Sinn hat das?

    Für Fenster im Vordergrund:

    [autoit]

    WinSetOnTop

    [/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™