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?
Beiträge von Oscar
-
-
Ändere mal bei den beiden Aufrufen die Größe von: $width * $height nach: $width * $height - 1
-
Du könntest Dir eine eigene Progressbar basteln (GDI+), aber 15000 Schritte (Pixel) dürfte die Auflösung bei den meisten Monitoren übersteigen.

-
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. -
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. -
In der aktuellen Version von AutoIt (v3.3.14.2) funktioniert es.
Hier die entsprechende Funktion:AutoIt
Alles anzeigen; #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 -
Ich habe mal eine Funktion zum kopieren von Dateien mit Progressbar geschrieben: _FileCopyEx
Damit kannst Du auch einzelne Dateien kopieren.
Beispiel:AutoItGlobal $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) -
Umwandeln mit Number (oder Int) und dann _ArrayUnique:
AutoIt
Alles anzeigen#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 -
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). -
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.
-
Doch das geht schon:
AutoIt
Alles anzeigen#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 -
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. -
-
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!
-
Alina:
Damit Du mit Deinem Script weitermachen kannst, habe ich es Dir mal angepasst:AutoIt
Alles anzeigen;#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 EndFuncDabei 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. -
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? -
Also immer dieses xp mobbing. Ich spreche mich entschieden dagegen aus.
Ich fordere vollständige xp UnterstützungIch 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 KanashiusProgramm 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!
-
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? -
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:
Download:
Alle erforderlichen Dateien (Scripte, Exe, Icons, Includes) befinden sich im ZIP-Archiv (Anhang).
-