Beiträge von Musashi

    Und das ist das Problem bei Windows - man macht sich durch Inkonsistenzen unendlich viele Probleme. Wie sinnvoll ist denn die Abfrage des Command Strings, wenn die Registry (aus der die Werte gelesen werden) mal Einträge mit und mal ohne Gänsefüßchen hat?!

    Selten dämlich seitens MS - würde ich auch sagen :rolleyes:.


    Möchtest Du Deinen Beitrag im Sammelthread noch etwas modifizieren ?

    Die Aussage "_WinAPI_PathRemoveArgs und _WinAPI_PathGetArgs funktionieren definitiv nicht" stimmt so ja nicht.

    Es müsste eher vor dem inkonsistenten Verhalten von _WinAPI_AssocQueryString gewarnt werden.


    Die Umstellung der Hilfebeispiele zu _WinAPI_PathGetArgs und _WinAPI_PathRemoveArgs auf Pfade (ohne Verwendung von _WinAPI_AssocQueryString ) wäre absolut sinnvoll.


    Gruß Musashi

    Wenn der Pfad Leerzeichen enthält, muss er in Quote gesetzt werden, was bei deinem Bsp. ja auch der Fall ist.

    Das liegt vermutlich daran, dass deine Pfadargumente bereits in Gänsefüßchen gewrappt sind. Übergibst du sie ohne werden sie anders gesplittet.

    Vorab :

    Dass Pfadangaben mit Leerzeichen in Anführungsstriche (quotes) gesetzt werden müssen ist sicher allen Beteiligten klar ;).


    In BugFix Beispiel Link (und auch im Skript aus der Hilfe) wird der Pfad aber nicht manuell besetzt, sondern ist der Return Value von _WinAPI_AssocQueryString.

    Von daher ist BugFix Aussage :

    Zitat

    Falls ihr _WinAPI_Path.. Funktionen verwendet, bitte sehr misstrauisch sein. Die folgenden beiden Funktionen (Anm. von mir -> gemeint sind : _WinAPI_PathRemoveArgs und _WinAPI_PathGetArgs ) funktionieren definitiv nicht. Dort wird ausschließlich nach Leerzeichen im Pfad gesucht und anhand dessen in Pfad und Argumente gesplittet :Face:

    ggf. etwas missverständlich.

    Das Problem entsteht dadurch, dass _WinAPI_AssocQueryString , abhängig vom ersten Parameter ($sAssoc), die Anführungsstriche nicht generell setzt. Dass _WinAPI_PathRemoveArgs und _WinAPI_PathGetArgs falsch splitten, ist dann eher eine Folgeerscheinung (fehlende "").


    Ich sehe es daher so wie Bitnugger und alpines, d.h. kein Bug im eigentlichen Sinne !

    mMn. arbeiten die Funktionen schon richtig, könnten aber einen Hinweis in der Hilfe vertragen.

    Ja !


    Mal sehen, wie BugFix die Sache sieht.


    Gruß Musashi

    C
    1. #include <APIRegConstants.au3>
    2. #include <WinAPIReg.au3>
    3. #include <WinAPIShPath.au3>
    4. ; Beispiel aus der Hilfe zu 3.3.14.0 :
    5. Local $sPath = _WinAPI_AssocQueryString('.txt', $ASSOCSTR_COMMAND)
    6. ConsoleWrite('Command : ' & $sPath & @CRLF)
    7. ConsoleWrite('Path : ' & _WinAPI_PathRemoveArgs($sPath) & @CRLF)
    8. ConsoleWrite('Arguments: ' & _WinAPI_PathGetArgs($sPath) & @CRLF)

    Hmm, bei mir ergibt das :

    Command  : "C:\Program Files (x86)\Notepad++\notepad++.exe" "%1"

    Path     : "C:\Program Files (x86)\Notepad++\notepad++.exe"

    Arguments: "%1"


    BugFix :

    Zumindest bei .txt und in meiner Version (3.3.14.0) scheinen _WinAPI_PathRemoveArgs und _WinAPI_PathGetArgs nicht ausschließlich nach Leerzeichen zu splitten.


    Gruß Musashi

    Bestimmte Fenster sollen nie auf die Befehle „(alles) minimieren“ bzw. „schließen ( Hotkey oder Mausklick Kreuz)“ reagieren.

    [...]

    Wie erreiche ich dieses Ziel ?

    Die programmiertechnische Seite hat alpines bereits beantwortet.

    Ob sich damit alle Varianten ein Fenster bzw. eine Anwendung zu schließen verhindern lassen, möchte ich auf die Schnelle nicht beurteilen (z.B. Prozesskill etc.).


    Meine Frage lautet eher : "Warum willst Du das machen ?"

    Ich persönlich wäre nicht gerade erbaut darüber, dass ein externes Skript mich derart 'einsperrt'.

    Beschreibe doch mal die Hintergründe - eventuell gibt es bessere Lösungen.


    Gruß Musashi

    Hi Peter !

    Ich bin vor einiger Zeit über folgenden Thread gestolpert :

    https://www.autoitscript.com/f…ting-using-udf-and-a-dll/

    Der Startbeitrag ist zwar recht alt, man kann 'jüngeren' Beiträgen von Usern aber entnehmen, dass es (als 32-Bit) auch unter WIN10 läuft.

    Gearbeitet habe ich damit nicht, daher ist dies nur der vage Tipp sich das ggf. mal anzusehen ;).


    EDIT : Peter S. Taler

    Vielleicht geht auch HTML erzeugen und dann über den Browser ausdrucken?

    Hierzu (ab Beitrag #6 ff) :

    formular drucken


    Gruß Musashi

    [ ... Gemeinnützigkeit ... ]

    Werde mich mal, ab Ende nächster Woche bei unseren RAs schlau machen. Erinner mich bitte jemand daran. Habe den Kopf derzeitig echt voll.

    Hallo Alina !

    Wäre es, bevor Du die Anwälte bemühst, nicht sinnvoller erst einmal zu prüfen, ob das Thema 'Vereinsgründung' überhaupt noch auf der Agenda steht ?

    Seit Umfrage und Diskussion sind immerhin 5 Jahre vergangen !


    Gruß Musashi

    In Musashis Tipp wird das Fenster durch den Timer aber außerhalb der Schleife geschlossen durch die Func Quit.

    Das mit dem Exit war nur ein Beispiel - Du kannst in der Funktion auch eine Variable setzen, siehe :


    Gruß Musashi

    Die Frage nach der AutoIt-Version für Linux war eigentlich nur nebenbei.

    Woher sollen wir das wissen ;) ? Einleitungssatz und einzige Frage in Deinem Beitrag war :

    "Gibt es eigentlich eine "AutoIt"-Version für Linux oder ist eine solche in Arbeit ?"


    Darauf haben ich und water (water sogar mit Hinweis auf die NotOnToDoList geantwortet).

    Auszug :

    Musashi :

    Mit "Wine" geht mehr, als nur "simple Skripts zum Laufen bringen"

    Dass unter Linux + Wine vieles möglich ist, sieht man z.B. bei Spielen (aus naheliegenden Gründen:P). Ich bezog mich mehr darauf, ob es sinnvoll/machbar ist OS-lastige AutoIt-Skripte unter dieser Konstellation zu betreiben.


    Der Hauptgrund meines Postings war der Hinweis auf das "LinuxLiveUSB"-Programm, welches vom Entwickler Thibaut Lauzière in AutoIt erstellt wurde. Da die Quellen beim Download dabei sind, hatte ich angenommen, dass das hier von Interesse ist ...

    Dem wurde nicht widersprochen - Dein Tipp kann für Interessierte durchaus hilfreich sein !.


    Das Folgende ist spekulativ, da ich momentan nicht die Zeit habe mich damit zu beschäftigen :

    Auf https://www.linuxliveusb.com/ steht gleich zu Beginn :

    Daraus lese ich, dass es zwar "ein AutoIt-Programm für Linux" ist, aber nicht in dem Sinn, dass es unter Linux betrieben wird wie Dein Satz Allerdings gibt es AutoIt-Programme für Linux ggf. nahelegt :/.


    Gruß Musashi

    Gibt es eigentlich eine "AutoIt"-Version für Linux oder ist eine solche in Arbeit?

    Meines Wissens nicht !

    Wahrscheinlich kann man simple Skripte mit Wine zum Laufen bringen. Ansonsten ist AutoIt aber sehr speziell für Windows ausgelegt.


    Gruß Musashi

    P.S. Oscar oder BugFix :

    Könntest Du bitte diesen Thread z.B. nach 'Andere Programmiersprachen' verschieben ?

    Falsch, seit 3.3.14.3 wird die SQLite DLL nicht mehr automatisch heruntergeladen.

    Da hast Du recht !

    I.d.R. schaue ich in die History, habe ich aber ausgerechnet dieses Mal nicht gemacht (typisch) :Face:.

    Der automatische Download wurde sogar schon bei der AutoIt 3.3.14.2 gefixt :

    "Changed: _SQLite_Startup() no longer automatically downloads DLL files. THIS IS A SCRIPT BREAKING CHANGE"

    Für User mit AutoIt < 3.3.14.2 mag dieser Teil meines Beitrages zwar von Interesse sein, die Hilfe kann aber natürlich nur die jeweils aktuelle Version behandeln.


    Wichtiger war mir eigentlich folgender Punkt :

    Auch in der 3.3.15.0 ist es so, dass der Aufruf von _SQLite_Startup() in den diversen Codebeispielen :

    ohne @error-Handling :

    --> Subscript used on non-accessible variable.

    mit @error-Handling :

    --> die Meldung, dass sqlite3.dll nicht geladen werden konnte

    --> (in der deutschen Hilfe noch : 'sqlite.dll konnte nicht geladen werden')

    anzeigt.


    Der Hinweis, dass und wo man eine fehlende sqlite3.dll herunterladen kann steht nur in der Bemerkung zur Funktion _SQLite_Startup(). Den Vorschlag, diese Bemerkung auch in die Hilfe der anderen _SQLite* Funktionen einzubauen, halte ich daher immer noch für überdenkenswert.


    Gruß Musashi

    Hi Tweaky !


    Auslöser für diesen Beitrag ist der Thread : dListview

    Beschreibung :

    Kernproblem ist, dass nicht (mehr) alle von SQLite benötigten Komponenten von AutoIt mitgeliefert werden. Stattdessen versucht die Funktion _SQLite_Startup() fehlende Komponenten nachzuladen, sofern sie nicht bereits auf dem eigenen Rechner vorhanden sind.

    siehe : Func __SQLite_Download_SQLite3File aus der SQLite.au3

    -> [..] Local $sURL = "http://www.autoitscript.com/autoit3/files/beta/autoit/archive/sqlite/" [..]

    Dieser Link ist aber nicht mehr gültig -> The requested URL ... was not found on this server.

    Der korrekte Downloadlink wird nur in den Bemerkungen zur Funktion _SQLite_Startup() angegeben !


    Dies führt m.M.n. dazu, dass insbesondere Einsteiger beim Ausführen der diversen Hilfebeispiele vor unnötige Schwierigkeiten gestellt werden.


    In den Code-Beispielen zu den _SQLite* Funktionen gibt es zwei Varianten des Aufrufs von _SQLite_Startup() :


    Variante 1 : Aufruf von_SQLite_Startup() ohne @error-Handling :

    Code
    1. [..]
    2. _SQLite_Startup()
    3. ConsoleWrite("_SQLite_LibVersion=" & _SQLite_LibVersion() & @CRLF)
    4. [..]

    -> Das Ausführen des Beispiels schlägt fehl :


    ---> In SciTE (F5) : Konsolenausgabe (hier am Beispiel von _SQLite_QuerySingleRow)

    @@ Debug(257) : __SQLite_Download_SQLite3File : $URL = http://www.autoitscript.com/au…rchive/sqlite/sqlite3.dll

    $sTempfile = C:\Users\XX\AppData\Local\Temp\~hdchbbb.dll

    >Error: 13

    _SQLite_LibVersion=0

    "... [Pfad] ... ==> Subscript used on non-accessible variable.:

    MsgBox($MB_SYSTEMMODAL, "2. Einstellung:", $aRow[0])

    MsgBox($MB_SYSTEMMODAL, "2. Einstellung:", $aRow^ ERROR


    ---> Als .exe gestartet :




    Variante 2 : Aufruf von_SQLite_Startup() mit @error-Handling (etwas besser) :

    Code
    1. [..]
    2. _SQLite_Startup()
    3. If @error Then
    4. MsgBox($MB_SYSTEMMODAL, "SQLite Fehler", "SQLite.dll konnte nicht geladen werden!")
    5. Exit -1
    6. EndIf
    7. [..]

    -> Ausführen des Beispiels mit F5 oder als .exe terminiert mit der MsgBox :

    "SQLite.dll konnte nicht geladen werden!"

    (müsste korrekterweise eigentlich auch lauten : "sqlite3.dll konnte nicht geladen werden!" )


    Allgemein :

    Betroffen sind die _SQLite* Funktionen, die _SQLite_Startup() aufrufen d.h. quasi alle :


    Mein Lösungsvorschlag :

    Die SQLite.au3 zu modifizieren ist, schon allein aus organisatorischen Gründen, keine Option.

    (zumindest den fehlerhaften Downloadlink könnten die Developer aber ggf. mal fixen)

    Sämtliche Codebeispiele mit einem @error-Handling auszustatten wäre aufwendig und würde dem Einsteiger auch nicht vollständig weiterhelfen.


    Einfacher und besser wäre es, die Bemerkung aus _SQLite_Startup() bei allen _SQLite* Funktionen einzubauen, also :

    "Die SQLite-Dateien können von https://www.autoitscript.com/autoit3/pkgmgr/sqlite heruntergeladen werden. Abgespeichert werden können diese in @ScriptDir, @SystemDir, @WindowsDir oder @WorkingDir."

    Ggf. könnte man in diesem Text auch noch genauer auf die o.a. Problematik eingehen.


    Gruß Musashi

    Subscript used on non-accessible variable

    If $retarr[0] <> "" Then

    If $retarr^ ERROR steht in der Console. Beim anderen PC (Win7) kommt kein Fehler und die Datenbank funktioniert problemlos.

    Vermutung :

    Wenn ich das Beispiel aus der aktuellen Hilfe zu _SQLite_QuerySingleRow ausführe :

    dann erhalte auch ich den Fehler ==> Subscript used on non-accessible variable :


    _SQLite_Startup versucht die Datei sqlite3.dll nachzuladen, was aber fehlschlägt !

    Gibt man den Link direkt im Browser ein, dann :

    ->The requested URL /autoit3/files/beta/autoit/archive/sqlite/sqlite3.dll was not found on this server.


    siehe auch : Kompilieres Script kommuniziert ungebeten mit mail.autoscript.com

    bzw. den gesamten Thread : Kompilieres Script kommuniziert ungebeten mit mail.autoscript.com


    Aus den Bemerkungen zur Funktion _SQLite_Startup :

    "Die SQLite-Dateien können von https://www.autoitscript.com/autoit3/pkgmgr/sqlite/SQLite3_version.zip heruntergeladen werden. Abgespeichert können diese in @ScriptDir, @SystemDir, @WindowsDir oder @WorkingDir werden."

    Ich habe gerade das Problem, dass sich das Script auf meinem Laptop nicht abspielen lässt. Ich verstehe es nicht, warum er keine .sqlite mehr erstellen kann (win8).

    Möglicherweise fehlt dort diese Datei.


    Gruß Musashi

    Hi stef26 !


    Bzgl. imagesearch selbst kann ich Dir nicht weiterhelfen, da ich es nicht verwende !


    Nachdem ich den Hauptthread des Users kangkeng (13 Seiten) :

    https://www.autoitscript.com/f…748-image-search-library/

    (der Downloadlink im Startbeitrag ist tot - der User seit 8 Jahren nicht mehr aktiv !)


    und einen zweiten Thread (8 Seiten) :

    https://www.autoitscript.com/f…ndComment&comment=1202461


    sowie (eventuell ein neuer Ansatz zu dieser Thematik - Stand 2018) :

    https://www.autoitscript.com/f…ile/471-image-search-udf/


    kurz quergelesen habe, möchte ich Dir aber einen Rat geben :

    Was den/die Sourcecode(s) sowie die .DLL(s) anbelangt, scheint es unterschiedliche Varianten und Modifikationen zu geben, die z.T. aus Quellen stammen denen ich nicht blind vertrauen würde !


    Möglicherweise besitzt ja ein renommierter User hier im Forum einen verlässlichen Stand und ist bereit diesen zu posten. So hättest Du zumindest schon mal eine 'gesunde' Ausgangslage ;).


    Ansonsten meine ich mich erinnern zu können, dass Andy vor laaanger Zeit (2009/2010) selbst etwas in dieser Richtung gemacht hat, was z.B. ohne Fremd-DLL auskommt. Ggf. kann bzw. möchte er dazu etwas sagen.


    EDIT : stef26

    Dem Beitrag #12 von alpines (weiter unten) kann ich mich nur anschließen !

    Lass' besser komplett die Finger von imagesearch.


    Gruß Musashi

    Was ich benötige ist wenn das Video spielt, wieviel Zeit schon gespielt wurde. Grund ist, dass ich die Liedertexte 2Sprachig zum Song anzeigen lassen möchte und da muss ich Text und Video synchronisieren

    DIe Ermittlung des laufenden Zeitindex dürfte schwieriger sein (ich habe dbzgl. aber nicht großartig recherchiert - ggf. wissen andere mehr dazu :/).


    Es gäbe ggf. eine weitere Möglichkeit :

    Da Du zu den Videos eigene Übersetzungen anlegst, kann Du das jeweilige Video auch gleich lokal herunterladen.

    Zur Frage "ist der Download von youtube-Videos legal ?" möchte ich nur meine persönliche Interpretation auf Basis aktueller Quellen zum Besten geben !!!

    Beispiel : https://www.techfacts.de/ratge…-von-youtube-videos-legal

    Soweit ich die Rechtslage verstehe, sind Downloads, auch bei Verwendung von Programmen wie z.B. dem portable "YouTubeDownloaderHD" zu Privatzwecken gestattet (alles natürlich ohne Gewähr).


    Die Datei (i.d.R. eine .mp4) kann man nun über VLC, den Mediaplayer usw. abspielen,

    Möglicherweise bieten sich hier bessere Verfahren um an die lfd. Spielzeit zu kommen.


    Alles aber nur eine vage und recht unausgegorene Idee ;).

    Gruß Musashi

    Leider scheint er die Inet.au3 bei mir nicht zu kennen. Im Internet hab ich da auch nichts zum Downloaden des Inet.au3 gefunden.

    Die Inet.au3 gehört zu den Standardincludes von AutoIt !

    Welche Version verwendest Du denn ?


    EDIT : stef26

    Hier der Code mal als Dateianhang


    Gruß Musashi

    Dateien

    Am liebsten wäre es mir, wenn ich die aktuelle Spielzeit einfacher abfragen könnte...

    [...]

    Wie bekommt man da am einfachsten diese verflixte Zeit gelesen?

    Versuche es mal damit :


    Gruß Musashi

    gibt es eine Möglichkeit, direkt zur Hauptschleife des Programms zurückzukehren? Also eine Art z. B. "Return(X)" (im Vergleich zu ExitLoop)?


    Zum Verständnis :

    ExitLoop erlaubt ja die Angabe eines Levels [optional, Default 1 bzw. nichts angeben].

    Damit kann man bei verschachtelten Schleifen (While, Do oder For) nicht nur die aktuelle, sondern auch übergeordnete Schleifen(-level) verlassen.

    Beispiel :

    Du suchst offenbar nach einer vergleichbaren Steuerung bzgl. Return, also so etwas wie :

    [Hauptskript]

    Code ...

    -> Aufruf Func 1


    Func 1

    -> Aufruf Func 2

    EndFunc


    Func 2

    -> Fehler : Return zum [Hauptskript] , nicht zur aufrufenden Func 1

    EndFunc


    Ich denke, Du musst über Func 1 zum Hauptskript 'returnen' (unter Vorbehalt, da leichter Freitags-Hangover :P).


    Gruß Musashi