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

Beiträge von Oscar

  • Assembler

    • Oscar
    • 18. Dezember 2015 um 19:22

    Ich weiß jetzt nicht, was Du da genau übergibst.
    Aber "$width * $height" sieht nach Anzahl der Pixel auf dem Bildschirm aus. Wenn Du aber bis zu dem Wert zählst, dann ist das doch ein Überlauf?!
    Beginn bei 0 und dann bis "$width * $height - 1" oder sehe ich das falsch?

  • Assembler

    • Oscar
    • 18. Dezember 2015 um 18:18

    Ändere mal bei den beiden Aufrufen die Größe von: $width * $height nach: $width * $height - 1

  • Progress Menge der Schritte festlegen

    • Oscar
    • 18. Dezember 2015 um 17:06

    Du könntest Dir eine eigene Progressbar basteln (GDI+), aber 15000 Schritte (Pixel) dürfte die Auflösung bei den meisten Monitoren übersteigen. :D

  • FileRead bei Größeren Datein

    • Oscar
    • 17. Dezember 2015 um 17:27

    Naja, wahrscheinlich die Funktion "_last" (Zeile 698...).
    Wie immer der gleiche Fehler: FileReadLine mit Dateinamen, statt die Datei mit FileOpen zu öffnen und das Handle zu benutzen.
    Ersteres ist nun mal grottenlangsam, weil bei jedem FileReadLine erst die Datei geöffnet wird, dann wird bis zu der angegebenen Zeile eingelesen, dann die entsprechende Zeile gelesen und ausgegeben und dann wird die Datei wieder geschlossen.

  • Progressbar beim kopieren einer großen Datei

    • Oscar
    • 16. Dezember 2015 um 11:37

    Es liegt daran, dass Du mit einer veralteten Version von AutoIt arbeitest!
    Installiere Dir die aktuelle (v3.3.14.2) Version von AutoIt. Und SciTE4AutoIt ist auch immer gut, wobei hier nicht nötig.

  • Fehler in "date.au3" - v3.3.8.1

    • Oscar
    • 16. Dezember 2015 um 09:30

    In der aktuellen Version von AutoIt (v3.3.14.2) funktioniert es.
    Hier die entsprechende Funktion:

    AutoIt
    ; #FUNCTION# ====================================================================================================================
    ; Author ........: Tuape
    ; Modified.......: JdeB: modified to UDF standards & Doc., Change calculation logic.
    ; ===============================================================================================================================
    Func _WeekNumberISO($iYear = @YEAR, $iMonth = @MON, $iDay = @MDAY)
    	; Check for erroneous input in $Day, $Month & $Year
    	If $iDay > 31 Or $iDay < 1 Then
    		Return SetError(1, 0, -1)
    	ElseIf Not __DateIsMonth($iMonth) Then
    		Return SetError(2, 0, -1)
    	ElseIf $iYear < 1 Or $iYear > 2999 Then
    		Return SetError(3, 0, -1)
    	EndIf
    
    
    	Local $iDow = _DateToDayOfWeekISO($iYear, $iMonth, $iDay) - 1;
    	Local $iDow0101 = _DateToDayOfWeekISO($iYear, 1, 1) - 1;
    
    
    	If ($iMonth = 1 And 3 < $iDow0101 And $iDow0101 < 7 - ($iDay - 1)) Then
    		;days before week 1 of the current year have the same week number as
    		;the last day of the last week of the previous year
    		$iDow = $iDow0101 - 1;
    		$iDow0101 = _DateToDayOfWeekISO($iYear - 1, 1, 1) - 1;
    		$iMonth = 12
    		$iDay = 31
    		$iYear = $iYear - 1
    	ElseIf ($iMonth = 12 And 30 - ($iDay - 1) < _DateToDayOfWeekISO($iYear + 1, 1, 1) - 1 And _DateToDayOfWeekISO($iYear + 1, 1, 1) - 1 < 4) Then
    		; days after the last week of the current year have the same week number as
    		; the first day of the next year, (i.e. 1)
    		Return 1;
    	EndIf
    
    
    	Return Int((_DateToDayOfWeekISO($iYear, 1, 1) - 1 < 4) + 4 * ($iMonth - 1) + (2 * ($iMonth - 1) + ($iDay - 1) + $iDow0101 - $iDow + 6) * 36 / 256)
    EndFunc   ;==>_WeekNumberISO
    Alles anzeigen
  • Progressbar beim kopieren einer großen Datei

    • Oscar
    • 16. Dezember 2015 um 09:22

    Ich habe mal eine Funktion zum kopieren von Dateien mit Progressbar geschrieben: _FileCopyEx
    Damit kannst Du auch einzelne Dateien kopieren.
    Beispiel:

    AutoIt
    Global $aSourceFiles[1] = [@ScriptDir & '\big_buck_bunny_1080p_surround.avi'], $aDestDir[1] = [@ScriptDir & '\temp\']
    Global $sLog = _FileCopyEx($aSourceFiles, $aDestDir, 16 + 8 + 4 + 2 + 1, 'Dateien kopieren...') ; hier erfolgt dann das kopieren
    ConsoleWrite('Fehler: ' & @error & @CR)
    ConsoleWrite('Log: ' & $sLog & @CR)
  • Arraywerte in integer umwandeln und sortieren

    • Oscar
    • 15. Dezember 2015 um 17:55

    Umwandeln mit Number (oder Int) und dann _ArrayUnique:

    AutoIt
    #include <Array.au3>
    
    
    Global $aTest[19] = ['1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','17','02']
    _ArraySort($aTest)
    _ArrayDisplay($aTest, 'Ursprung')
    _ArrayStringToNumber($aTest)
    _ArraySort($aTest)
    _ArrayDisplay($aTest, 'als Zahlen')
    $aUnique = _ArrayUnique($aTest, 0, 0, 0, $ARRAYUNIQUE_NOCOUNT)
    _ArrayDisplay($aUnique, 'keine Doppelten')
    
    
    
    
    Func _ArrayStringToNumber(ByRef $array)
    	For $i = 0 To UBound($array) - 1
    		$array[$i] = Number($array[$i])
    	Next
    EndFunc
    Alles anzeigen
  • Script für barcodescanner

    • Oscar
    • 10. Dezember 2015 um 18:18

    Ich kenne jetzt Deinen Code nicht, aber ich vermute mal, dass Du ein Programm im Vordergrund laufen hast, was dann auf die Eingaben (Inputfeld) reagiert.
    Willst Du die Keycodes aber im Hintergrund auslesen lassen, dann wird es halt komplizierter (siehe mein obiges Script).

  • Grias eich

    • Oscar
    • 10. Dezember 2015 um 18:15

    Herzlich willkommen hier im AutoIt-Forum!
    Lernwillige sind hier immer gern gesehen, solange es nicht um Botcoding ( = Gamebots) geht.
    Und mit Deinem Hintergrundwissen (PHP, Java) ist AutoIt doch quasi nur eine andere Syntax (naja, fast...). ;)

    Wenn Du (Forenregeln konforme) Fragen hast, dann nur zu. Es gibt hier sicher viele, die Dir dann weiterhelfen werden.

  • Script für barcodescanner

    • Oscar
    • 10. Dezember 2015 um 18:06

    Doch das geht schon:

    AutoIt
    #include <WinAPI.au3>
    #include <WindowsConstants.au3>
    #include <StructureConstants.au3>
    
    
    OnAutoItExitRegister('OnAutoItExit')
    
    
    Global $hmod, $hHook, $hStub_KeyProc, $buffer = ''
    
    
    $hStub_KeyProc = DllCallbackRegister('_KeyProc', 'long', 'int;wparam;lparam')
    $hmod = _WinAPI_GetModuleHandle(0)
    $hHook = _WinAPI_SetWindowsHookEx($WH_KEYBOARD_LL, DllCallbackGetPtr($hStub_KeyProc), $hmod)
    While Sleep(100)
    WEnd
    
    
    Func _EvaluateKey($keycode)
    	Switch $keycode
    		Case 48 To 57 ; 0 - 9
    			$buffer &= Chr($keycode)
    		Case 13 ; RETURN
    			ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $buffer = ' & $buffer & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
    			Switch $buffer
    				Case '10'
    					ToolTip('10')
    				Case '20'
    					ToolTip('20')
    			EndSwitch
    			$buffer = ''
    		Case 27 ; ESC
    			Exit
    		Case Else
    			$buffer = ''
    	EndSwitch
    EndFunc   ;==>_EvaluateKey
    
    
    Func _KeyProc($nCode, $wParam, $lParam)
    	Local $tKEYHOOKS = DllStructCreate($tagKBDLLHOOKSTRUCT, $lParam)
    	If $nCode < 0 Then Return _WinAPI_CallNextHookEx($hHook, $nCode, $wParam, $lParam)
    	If $wParam = $WM_KEYDOWN Then _EvaluateKey(DllStructGetData($tKEYHOOKS, 'vkCode'))
    	Return _WinAPI_CallNextHookEx($hHook, $nCode, $wParam, $lParam)
    EndFunc   ;==>_KeyProc
    
    
    Func OnAutoItExit()
    	_WinAPI_UnhookWindowsHookEx($hHook)
    	DllCallbackFree($hStub_KeyProc)
    EndFunc   ;==>OnAutoItExit
    Alles anzeigen
  • Neuling gleich mit Frage(n) - Validierung / Format / BKColor von Inputs

    • Oscar
    • 8. Dezember 2015 um 14:36
    Zitat von RKuehle

    Auch auf die Gefahr hin, dass hier nicht so gern gesehen (weil zu lang) hier mal der Code:

    Nein, das ist schon ok.
    Besser wäre natürlich der Codeteil, wenn er eigenständig lauffähig wäre, aber mit ein paar Anpassungen kann man zumindest sehen, worum es geht.

    Ich denke, wenn es während des Ausfüllens Abhängigkeiten zwischen einzelnen Einträgen gibt, dann muss Du in den jeweiligen Cases darauf prüfen und entsprechend die Felder ändern.
    Wenn die Eingabe aber unabhängig von einzelnen Einträgen ist, dann würde ich das erst beim Klick auf "Speichern" vornehmen.

  • Neuling gleich mit Frage(n) - Validierung / Format / BKColor von Inputs

    • Oscar
    • 8. Dezember 2015 um 12:00

    Zu 1.) Warum ein Input benutzen, wenn es eine viel bessere Eingabemöglichkeit gibt: GUICtrlCreateDate
    Zu 2.) Kann man nicht pauschal beantworten ohne den Code zu kennen.
    Zu 3.) Das ist mit AutoIt nicht so einfach möglich. Da müsstest Du tricksen (Hintergrund-Label oder GDI+).

  • Happy Birthday, autoit.de!

    • Oscar
    • 7. Dezember 2015 um 17:16

    Einen runden Geburtstag können wir heute feiern.
    autoit.de wird 10 Jahre alt/jung.

    Einige Schwierigkeiten durch Forenumstellungen und Datenverlust haben uns in der Vergangenheit beschäftigt. Das (berufsbedingte) "aussteigen" von Pee hinterläßt ebenfalls eine Lücke.
    Und auch jetzt gibt es noch einige Dinge, die noch nicht wieder ganz rund laufen, aber nichts desto trotz gibt es das Forum noch und ich persönlich hoffe auch weiterhin auf eine rege Beteiligung aller aktiven User.

    Mir macht es jedenfalls immer noch viel Spass mit AutoIt zu programmieren und hier im Forum aktiv zu sein.
    In diesem Sinne wünsche ich uns allen einen schönen Geburtstag!

  • (gelöst bis hierhin) Datenausgabe in ein ListView "DB-2-ListView"

    • Oscar
    • 4. Dezember 2015 um 19:29

    Alina:
    Damit Du mit Deinem Script weitermachen kannst, habe ich es Dir mal angepasst:

    AutoIt
    ;#include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <SQLite.au3>
    #include <SQLite.dll.au3>
    #include <GuiListView.au3>
    ;Opt
    Opt("GUIOnEventMode", 0) ; Du benutzt den MsgLoop-Modus also muss hier "0" stehen oder die Zeile gleich ganz weglassen, weil "0" der Standardwert ist
    
    
    ;GUI Titel
    $Buchverwaltung = GUICreate("Buchverwaltung erstellt mit AutoIt", 1121, 629, 280, 183)
    
    
    ; Titel oben Mitte
    $Label1 = GUICtrlCreateLabel("~  ~  ~  B  U  C  H  V  E  R  W  A  L  T  U  N  G   ~  ~  ~", 304, 8, 516, 28)
    GUICtrlSetFont(-1, 16, 800, 0, "Arial")
    GUICtrlSetColor(-1, 0x0000FF)
    
    
    ; ListView
    $listview = GUICtrlCreateListView("ID|Titel|Autor|Verlag|E-Datum|Genre|Preis|Einband|ISBN|Seiten|Lager|Serie|Bestellt|Gelesen|Note|Zusatz|Information", 10,40,1105,168)
    ;~ $List1 = GUICtrlCreateList("", 8, 40, 1105, 168)
    ;~ GUICtrlSetFont(-1, 10, 400, 0, "Arial")
    
    
    ; Hauptbereich
    $Label2 = GUICtrlCreateLabel("Titel:  ", 10, 274, 45, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $Input1 = GUICtrlCreateInput("", 160, 272, 361, 26)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    $Label3 = GUICtrlCreateLabel("Autor:", 10, 305, 45, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $Input2 = GUICtrlCreateInput("", 160, 302, 361, 26)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    $Label4 = GUICtrlCreateLabel("Verlag: ", 10, 335, 58, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $Input3 = GUICtrlCreateInput("", 160, 332, 361, 26)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    $Label5 = GUICtrlCreateLabel("Genre: ", 10, 365, 55, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $Input4 = GUICtrlCreateInput("", 160, 362, 361, 26)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    $Label6 = GUICtrlCreateLabel("Erscheinungsdatum: ", 10, 395, 149, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $Input5 = GUICtrlCreateInput("YYYYMMDD", 160, 392, 100, 26)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    $Label7 = GUICtrlCreateLabel("Serie: ", 267, 395, 50, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $Input6 = GUICtrlCreateInput("", 313, 392, 208, 26)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    $Label8 = GUICtrlCreateLabel("Preis: ", 10, 424, 146, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $Input7 = GUICtrlCreateInput("", 160, 422, 81, 26)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    $Label9 = GUICtrlCreateLabel("Lagerplatz: ", 267, 424, 85, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $Input8 = GUICtrlCreateInput("", 354, 422, 165, 26)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    $Label10 = GUICtrlCreateLabel("Einband: ", 10, 455, 70, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $Input9 = GUICtrlCreateInput("", 160, 452, 361, 26)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    $Label11 = GUICtrlCreateLabel("ISBN", 10, 485, 40, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $Input10 = GUICtrlCreateInput("", 160, 482, 361, 26)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    $Label12 = GUICtrlCreateLabel("Seiten: ", 10, 514, 57, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $Input11 = GUICtrlCreateInput("", 160, 512, 81, 26)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    $Label13 = GUICtrlCreateLabel("ausgeliehen an: ", 624, 272, 117, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $Input12 = GUICtrlCreateInput("", 760, 272, 121, 26)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    $Label14 = GUICtrlCreateLabel("ausgeliehen am: ", 624, 302, 122, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $Input13 = GUICtrlCreateInput("", 760, 302, 121, 26)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    $Label15 = GUICtrlCreateLabel("ausgeliehen bis: ", 624, 332, 121, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $Input14 = GUICtrlCreateInput("", 760, 334, 121, 26)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    $Label16 = GUICtrlCreateLabel("Bestellt: J/N", 624, 384, 86, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $Input15 = GUICtrlCreateInput("", 760, 384, 121, 26)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    $Label17 = GUICtrlCreateLabel("gelesen: J/N", 624, 414, 90, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $Input16 = GUICtrlCreateInput("", 760, 414, 121, 26)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    $Label18 = GUICtrlCreateLabel("Note: 1 - 6", 624, 444, 76, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $Input17 = GUICtrlCreateInput("", 760, 444, 121, 26)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    $Label19 = GUICtrlCreateLabel("Zusatz:", 624, 474, 53, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $Input18 = GUICtrlCreateInput("", 760, 472, 121, 26)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    $Label20 = GUICtrlCreateLabel("Information:", 896, 384, 84, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $Edit1 = GUICtrlCreateEdit("", 896, 408, 217, 89)
    
    
    ;  Sortierbereich
    ;~ $Label21 = GUICtrlCreateLabel("Sortieren nach: ", 10, 228, 113, 22)
    ;~ GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    ;~ $Button1 = GUICtrlCreateButton("Alle", 145, 224, 51, 25)
    ;~ GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    ;~ $Button2 = GUICtrlCreateButton("Titel", 201, 224, 41, 25)
    ;~ GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    ;~ $Button3 = GUICtrlCreateButton("Autor", 245, 224, 51, 25)
    ;~ GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    ;~ $Button4 = GUICtrlCreateButton("Verlag", 301, 224, 59, 25)
    ;~ GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    ;~ $Button5 = GUICtrlCreateButton("E-Datum", 365, 224, 75, 25)
    ;~ GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    ;~ $Button6 = GUICtrlCreateButton("Genre", 445, 224, 59, 25)
    ;~ GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    ;~ $Button7 = GUICtrlCreateButton("Preis", 509, 224, 59, 25)
    ;~ GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    ;~ $Button8 = GUICtrlCreateButton("Einband", 573, 224, 75, 25)
    ;~ GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    ;~ $Button9 = GUICtrlCreateButton("ISBN", 653, 224, 51, 25)
    ;~ GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    ;~ $Button10 = GUICtrlCreateButton("Seiten", 709, 224, 59, 25)
    ;~ GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    ;~ $Button11 = GUICtrlCreateButton("Lagerplatz", 773, 224, 91, 25)
    ;~ GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    ;~ $Button12 = GUICtrlCreateButton("Serie", 869, 224, 51, 25)
    ;~ GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    ;~ $Button13 = GUICtrlCreateButton("Bestellt", 925, 224, 67, 25)
    ;~ GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    ;~ $Button14 = GUICtrlCreateButton("Gelesen", 997, 224, 67, 25)
    ;~ GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    ;~ $Button15 = GUICtrlCreateButton("Note", 1069, 224, 43, 25)
    ;~ GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    $Label22 = GUICtrlCreateLabel("-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------", 8, 256, 1105, 17)
    $Label23 = GUICtrlCreateLabel("-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------", 8, 544, 1105, 17)
    
    
    $Button16 = GUICtrlCreateButton("S U C H E N", 621, 509, 132, 25)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    $Input19 = GUICtrlCreateInput("Suchbegriff hier eingeben", 760, 507, 347, 26)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    $Label24 = GUICtrlCreateLabel("Lfd.-Nr:", 350, 515, 55, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $Input20 = GUICtrlCreateInput("", 415, 512, 105, 26)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetData(-1, "000002")
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    
    
    ; unterer Bereich
    $Label26 = GUICtrlCreateLabel("Büchermenge:  ", 13, 595, 113, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $Input22 = GUICtrlCreateInput("", 128, 592, 81, 26) ; hier soll die ges. Bücheranzahl eingefügt werden und nicht veränderbar durch Anwender
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    $Label27 = GUICtrlCreateLabel("Ges. Seitenzahl:", 270, 596, 117, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $Input23 = GUICtrlCreateInput(" ", 394, 592, 81, 26) ; hier soll die ges. Seitenzahl eingefügt werden und nicht veränderbar durch Anwender
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    $Label28 = GUICtrlCreateLabel("Ges. Buch NP:", 572, 595, 106, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlCreateInput("", 680, 592, 121, 26) ; hier soll der ges. Bücherwert eingefügt werden und nicht veränderbar durch Anwender
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    
    
    ;  Ausleihbutton
    $Button17 = GUICtrlCreateButton("Ausleihen", 888, 272, 227, 25)
    
    
    ; DK 1 / 2 / 3
    $Button18 = GUICtrlCreateButton("DK  1 / 2 / 3", 894, 334, 99, 26)
    ; D 1 / 2
    $Button19 = GUICtrlCreateButton("D 1 / 2", 1012, 334, 99, 25)
    
    
    ; GUI anzeigen
    GUISetState(@SW_SHOW)
    
    
    ;  !!! Datei lösche ich hier nur, damit ich sie nicht manuell löschen muss in der Übungsphase !!!
     FileDelete(@ScriptDir & "\buchverwaltung.db")
    
    
    ; DLL Pfad
    _SQLite_Startup(@ScriptDir & "\sqlite3.dll", False, 1) ; BugFix Idee, da DLL ja nicht mehr mitgeliefert wird
    
    
    ; gibt die SQL Version in die Console aus
    ConsoleWrite("_SQLite_LibVersion=" & _SQLite_LibVersion() & @CRLF)
    
    
    ; Datenbank öffnen, ggf. erstellen
    Global $g_db_Database = _SQLite_Open(@ScriptDir & "\buchverwaltung.db")
    
    
    ; Datenbanktabelle
    _SQLite_Exec($g_db_Database, "CREATE TABLE IF NOT EXISTS Buchverwaltung(D INTEGER PRIMARY KEY AUTOINCREMENT,Titel,Autor,Verlag,Erscheinungsdatum,Genre,Preis,Einband,ISBN,Seiten,Lagerplatz, Serie,Bestellt,Gelesen,Note,Zusatz,Information,Ausgeliehen_an,Ausgeliehen_am,Ausgeliehen_bis);")
    
    
    ; jeweils ein Datensatz wird dazu geschrieben, Daten sind von Enno Jüders zur Verfügung gestellt.
    _SQLite_Exec(-1, "INSERT INTO Buchverwaltung VALUES('1','13 Tage','Giambanco, Valentina','Droemer Knaur','03.03.2014','Thriller','14.99','Hardcover','9783426513996','576','R1-F2','','','N','','','test','','..','..');")
    _SQLite_Exec(-1, "INSERT INTO Buchverwaltung VALUES('2','Abgründe','Strobel, Arno','Loewe','10.03.2014','Thriller-J','9.95','Taschenbuch','9783785578643','240','R1-F2','','','N','','','','','..','..');")
    _SQLite_Exec(-1, "INSERT INTO Buchverwaltung VALUES('3','Agent 6','Smith, Tom Rob','Goldmann','14.09.2011','Thriller','9.99','Taschenbuch','9783442546770','540','R1-F2','Leo Demidow Bd.3','','N','','','','','..','..');")
    _SQLite_Exec(-1, "INSERT INTO Buchverwaltung VALUES('4','Bedroht','Koppen, Hans','Heyne','27.03.2013','Thriller','14.99','Taschenbuch','9783453268012','411','R1-F2','','','J','1','','','','..','..');")
    _SQLite_Exec(-1, "INSERT INTO Buchverwaltung VALUES('5','Belladonna','Slaughter, Karin','rororo','03.03.2003','Thriller','6.00','Taschenbuch','9783499239140','413','R1-F1','Grant County Bd.1','','J','1','','','','..','..');")
    _SQLite_Exec(-1, "INSERT INTO Buchverwaltung VALUES('6','Bis zum letzten Atemzug','Baldacci, David','Bastei Lübbe','01.04.2011','Thriller','9.99','Taschenbuch','9783404165537','574','R1-F2','King & Maxwell Bd. 4','austauschen','N','','','','','..','..');")
    _SQLite_Exec(-1, "INSERT INTO Buchverwaltung VALUES('7','Bittere Wunden','Slaughter, Karin','blanvalet','01.09.2014','Thriller','19.99','Hardcover','9783764505172','576','R1-F1','Georgia Bd.4','','J','2','','','','..','..');")
    
    
    Global $hQuery, $aNames, $aRow
    _SQLite_Query(-1, "SELECT ROWID,* FROM Buchverwaltung;", $hQuery)
    While _SQLite_FetchData($hQuery, $aRow, False, False) = $SQLITE_OK ; Read Out the next Row
    	GUICtrlCreateListViewItem(_ArrayToString($aRow, '|', 1, 17), $listview)
    WEnd
    _SQLite_QueryFinalize($hQuery)
    
    
    
    
    
    
    ; Änderungsabfrage
    ;~ MsgBox(0, "SQLite", "Die letzte Abfrage änderte " & _SQLite_Changes() & " Zeile." & @CRLF & _
    ;~         "Alle Abfragen änderten " & _SQLite_TotalChanges() & " Zeilen.")
    
    
    _GUICtrlListView_RegisterSortCallBack($listview) ; CallBack registrieren zum sortieren
    
    
    While 1
    	$nMsg = GUIGetMsg()
    	Switch $nMsg
    		Case $GUI_EVENT_CLOSE
    			Exit
    		Case $listview
    			_GUICtrlListView_SortItems($listview, GUICtrlGetState($listview)) ; hier wird das Listview sortiert
    	EndSwitch
    WEnd
    
    
    Func _Exit() ; Datenbank schließen und down.
    	_GUICtrlListView_UnRegisterSortCallBack($listview)
    	_SQLite_Close($g_db_Database)
    	_SQLite_Shutdown()
    	;Exit
    EndFunc
    Alles anzeigen

    Dabei musste ich die Reihenfolge der Einträge in die Datenbank etwas verändern, damit man sie einfacher für das Listview umwandeln kann.
    Außerdem habe ich die ganzen Buttons zum sortieren auskommentiert. Die brauchst Du gar nicht. Man kann das Listview durch einen Klick auf den Headereintrag sortieren lassen.
    Wenn Dir die Sortierung nach Datum wichtig ist, dann müsste man die CallBack-Funktion noch anpassen.

  • PartyPlayer

    • Oscar
    • 1. Dezember 2015 um 16:53
    Zitat von Racer

    Eine Kleinigkeit ist mir aufgefallen: Zieht man ein Lied von der rechte Seite in die Playlist und macht dann einen doppelklick darauf, kommt die Windowsmeldung das das Programm ausgeführt werden soll (!!)

    Sollte das so sein???

    Das sollte nicht so sein. Welche Windows-Version nutzt Du?

    Lösch doch mal die "PP-Headphones.exe" und compiliere das Script "PP-Headphones.au3" mit der aktuellen AutoIt-Version (v3.3.14.2).
    Kommt die Meldung dann immer noch?

  • PartyPlayer

    • Oscar
    • 1. Dezember 2015 um 05:49
    Zitat von Peter S. Taler

    Also immer dieses xp mobbing. Ich spreche mich entschieden dagegen aus.
    Ich fordere vollständige xp Unterstützung

    Ich weiß nicht mehr woran das lag, dass ich die Abfrage in Zeile 77 eingebaut habe, aber das hatte wohl etwas mit den GDI+ Befehlen zu tun.
    Du kannst ja mal testweise das Or @extended < 6 aus der Zeile 77 entfernen und testen, ob das Script dann fehlerfrei läuft.


    Zitat von Kanashius

    Programm läuft. War irgendwie so, dass der Button von pause nicht zu Play wechselte

    Achso, bei Pause, ja stimmt! Das ist noch ein Bug. Danke!

  • PartyPlayer

    • Oscar
    • 30. November 2015 um 19:24
    Zitat von Peter S. Taler

    System= xpsp3 Asus läpi

    Oh Sorry, aber ich fürchte XP wird nicht unterstützt. Vista ist Minimum!

    Micha_he: das mit den Konfigurationsdateien (für portablen Einsatz) wird noch kommen.

    Was habt ihr für Soundkarten?
    Funktioniert das Vorhören?
    Beziehungsweise die Zuordnung zu den Stereokanälen?

  • PartyPlayer

    • Oscar
    • 30. November 2015 um 18:53

    Mein neuestes Werk habe ich "PartyPlayer" genannt, weil das Programm dafür gedacht ist, auf Partys Musik aus einer Playlist abzuspielen.
    Naja, das können auch die meisten Playerprogramme, aber bei meinem Programm gibt es eine Liste (das "Archiv") mit MP3s, aus denen man dann die Playlist füllen kann.

    Nach dem Start des Programms muss man also erstmal ein MP3-Archiv erstellen.
    Dazu kann man entweder einzelne MP3s auswählen und hinzufügen oder ganze Verzeichnisse (rekursiv) einlesen lassen.
    Man kann die Archive auch speichern und laden, sodass man mehrere verschiedene Archive mit unterschiedlichen Musikrichtungen anlegen kann.
    Die Archive werden standardmäßig im Anwendungsordner (Unterverzeichnis "PartyPlayer") des Windows-Benutzers erstellt und bekommen die Dateiendung ".ppar".

    Aus diesem Archiv kann man dann (per Drag'n'Drop) einzelne/mehrere MP3s in die Playlist ziehen.
    Die Playlist läßt sich zufällig sortieren oder man kann Titel per Drag'n'Drop in der Liste verschieben.
    Abgespielt werden sie der Reihe nach. Das gerade gespielte Stück wird dann aus der Playlist entfernt.
    Man kann aber auch die Playlist abspeichern und wieder laden.

    Außerdem gibt es eine Export-Funktion (im Kontextmenü der Playlist) mit der die Titel aus der Playlist in ein auszuwählendes Verzeichnis kopiert werden.
    Dabei wird dem Dateinamen eine Nummer vorangestellt, damit die Reihenfolge mit der Playlist übereinstimmt.

    In der oberen Positionsleiste kann man innerhalb des Liedes hin- und herspringen, indem man mit der Maus auf die Leiste klickt.
    Der Slider darunter bestimmt die Position, an der zum nächsten Titel übergeblendet werden soll.
    Die Lautstärke kann man auf der rechten Seite mit dem Lautstärke-Dreieck bestimmen.

    Eine zusätzliche Besonderheit besteht darin einen Titel vorzuhören. Das geschieht mit einem kleinen Zusatzprogramm ("PP-Headphones.exe"), das bei einem Doppelklick auf einen Titel aus dem Archiv oder der Playlist gestartet wird.
    Dazu benötigt man aber eine zweite Soundkarte oder eine Soundkarte mit mehreren Stereokanälen. Die Soundkarte und der Stereo-Kanal kann dann im Menü "Einstellungen" entsprechend ausgewählt werden.

    Im Moment ist das Programm noch nicht ganz fertig! Deshalb Version 0.9!

    - Man kann aus dem Archiv noch keine Einträge entfernen.
    - Und die Suchfunktion innerhalb des Archivs gibt es auch noch nicht.

    Was mich aber interessiert, ist, ob das Programm problemlos mit euren Soundkarten klarkommt.
    Ich habe es auf meinen 3 Rechnern getestet, unter anderem auch an zwei externen USB-Soundkarten.
    Bisher aber mit maximal 5.1 Soundkarten.
    Mich würde besonders interessieren, ob bei 7.1 Soundkarten die Side/Rear-Zuordnung korrekt ist.

    Screenshots:

    PartyPlayer-Sreenshot.png


    Download:

    Alle erforderlichen Dateien (Scripte, Exe, Icons, Includes) befinden sich im ZIP-Archiv (Anhang).

    Dateien

    PartyPlayer_v09.zip 2 MB – 666 Downloads
  • Autoit - Gleitkommazahlen abrunden

    • Oscar
    • 30. November 2015 um 17:49

    Auf meinem System Intel i5-4690 3.5 GHz, Win 7, 64 Bit:

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™