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

Beiträge von nuts

  • Yamaha AVR Netzwerksteuerung / Samsung SOAP - Demo / Denon AVR Netzwerksteuerung

    • nuts
    • 4. April 2014 um 13:55

    Hm schwierig so ohne Yamaha Receiver kann ich auch nicht schnell testen, sondern müsste die Doku durcharbeiten und dafür fehlt mir etwas die Zeit im Moment.
    Vielleicht liest hier noch jemand mit Yamaha Receiver und etwas mehr Erfahrung mit und kann helfen?

  • Yamaha AVR Netzwerksteuerung / Samsung SOAP - Demo / Denon AVR Netzwerksteuerung

    • nuts
    • 27. März 2014 um 10:47

    Vielleicht mit diesem XML Code (wieder auf POST umstellen):

    Zitat

    '<YAMAHA_AV cmd="GET"><Main_Zone><Volume><Lvl>GetParam</Lvl></Volume></Main_Zone></YAMAHA_AV>'

  • Yamaha AVR Netzwerksteuerung / Samsung SOAP - Demo / Denon AVR Netzwerksteuerung

    • nuts
    • 26. März 2014 um 11:45

    Vielleicht ein GET Request?

    Zitat

    $hRequest = _WinHttpOpenRequest($hConnect, "GET", "/YamahaRemoteControl/ctrl")

  • Yamaha AVR Netzwerksteuerung / Samsung SOAP - Demo / Denon AVR Netzwerksteuerung

    • nuts
    • 25. März 2014 um 19:44

    Hi,

    mal vorab: Ich habe keinen Yamaha Receiver mehr und kann daher selbst nicht testen.
    Habe die Yamaha API nicht im Kopf, aber was steht in der Variablen $response wenn du deinen XML Code verwendest?

    [autoit]


    If $writelog Then _FileWriteLog($log, $header, 1)
    ;ConsoleWrite($header&@crlf)

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

    If _WinHttpQueryDataAvailable($hRequest) Then

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

    Do
    $response &= _WinHttpReadData($hRequest)
    Until @error
    If $writelog Then _FileWriteLog($log, $response, 1)
    ;ConsoleWrite($response&@crlf)

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

    EndIf

    [/autoit]
  • AutoIt Versions-Archiv und Diskussionsthread (3.3.8.1 bis 3.3.10.2, Stand 30.12.13)

    • nuts
    • 31. Dezember 2013 um 15:19

    Also Konstanten nachträglich zu ändern ist wirklich sehr (!!!) unschön.
    Ich frage mich aber wie man mit Konstanten, die keinen MS konformen Inhalt haben (ebenso ziemlich fies!), richtig umzugehen hat?
    Soll man das dann bis zum bitteren Ende durchziehen?
    Jeder Neuling, der mit MSDN arbeitet, denkt sich dann WTF? Was machen die denn da?
    Stures bestehen auf Abwärtskompatibilität hat schon viele Projekte in die Sackgasse geführt.

  • Yamaha AVR Netzwerksteuerung / Samsung SOAP - Demo / Denon AVR Netzwerksteuerung

    • nuts
    • 30. Oktober 2013 um 23:09

    1. Schritt: Yamaha_network_control.zip aus dem Startpost herunterladen

    2. Schritt: Yamaha_Network_Control.exe einmal ausführen

    3. Schritt: Die INI müsste sich öffnen
    In der INI jetzt die IP deines AV-Receivers eintragen (z.B. IP=192.168.1.100) und die Änderungen abspeichern

    4. Schritt: Eine Verknüpfung zur Yamaha_Network_Control.exe und dort den gewünschten Kommandoparameter eintragen (Rechtsklick => Ziel):
    z.B. um den Receiver einzuschalten:
    %\Yamaha_Network_Control.exe <YAMAHA_AV cmd="PUT"><System><Power_Control><Power>On</Power></Power_Control></System></YAMAHA_AV>

  • Yamaha AVR Netzwerksteuerung / Samsung SOAP - Demo / Denon AVR Netzwerksteuerung

    • nuts
    • 30. Oktober 2013 um 12:17

    Die IP des AV-Receivers musst du in die INI eintragen. Diese findest du hier: @AppDataCommonDir & "\my_scripts"
    Anschließend muss der entsprechende Befehl per cmdline (Kommandoparameter) an das Skript übermittelt werden. Ist der Schritt soweit klar?

    P.S. Das sind auch nur Demoskripte und keine ausgearbeiteten Anwendungen für Endbenutzer.

  • Vorzeitiges Verlassen einer Funktion/Schleife mit Return - Guter Programmierstil oder nicht?

    • nuts
    • 23. Mai 2013 um 23:15

    Das Beispiel im Startpost ist schon ein Sonderfall.
    Ich glaube da würde ich auch mit If ... then Return arbeiten.

    Allgemein versuche ich das vorzeitige verlassen einer Funktion nurnoch fürs Errormanagment zu verwenden.
    Wenn man bei jeder Gelegenheit aus den Funktionen springt ergibt das, gerade bei größeren Skripten/Funktionen, leicht Spaghetti-Code, der mit einigem Abstand nurnoch schwer lesbar ist.

    Ein Beispiel was ich für sehr unsauber halte:

    [autoit]


    Func _Demo($i_zahl)

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

    switch $i_tagl
    case 1
    Return $i_zahl
    case 2
    Return $i_zahl*'$i_zahl
    endswitch
    endfunc

    [/autoit]


    besser:

    [autoit]


    Func _Demo($i_zahl)
    local $ret
    switch $i_tagl
    case 1
    $ret=$i_zahl
    case 2
    $ret=$i_zahl*'$i_zahl
    endswitch
    return $ret
    endfunc

    [/autoit]
  • COM Objekt aus dem Systemkonto (Dienst) verwenden

    • nuts
    • 19. April 2013 um 00:14

    Hey,

    ich habe eine Verständnisfrage zu COM-Objekten.

    Können COM-Objekte auch vom Systemkonto angesprochen werden?

    Hintergrund ist folgender:
    1. Ein Dienst (DVBViewer Recordingservice) startet mein Skript. Das Skript läuft dann wie der Dienst im Systemkonto.
    2. Im normalen Benutzerkonto läuft eine Anwendung (DVBViewer) und diese soll vom Skript aus über das COM-Objekt gesteuert werden.
    Normalerweise mache ich das immer so:

    [autoit]

    Func _DVBV_Connect()
    ; nuts (http://www.autoit.de)
    ;
    ; connect to DVBV COM Server
    ; succses => return Object
    ; failure => @error=1
    Local $ret = ObjGet("", "DVBViewerServer.DVBViewer")
    If @error Then
    Return SetError(1, 0, 0) ;errorhandling
    Else
    Return $ret
    EndIf
    EndFunc ;==>_DVBV_Connect

    [/autoit]


    Das funktioniert aus dem normalen Benutzerkonto einwandfrei, aber sobald das Skript im Systemkonto läuft schlägt schon der Verbindungsaufbau fehl.

    Ist das ein Denkfehler? Ich dachte COM-Objekte können unabhängig vom Benutzerkonto verwendet werden?

    Gruß nuts

  • MX-Au3 Lizenz v1.1

    • nuts
    • 11. April 2013 um 20:16
    Zitat von Marthog

    Ich wäre da aber immer vorsichtig.


    Ich auch.
    Gewollt oder ungewollt suggeriert so eine Lizenz eine gewisse Rechtssicherheit, die so nicht gegeben ist.

    Jura ist nicht wie programmieren. 8)

  • MX-Au3 Lizenz v1.1

    • nuts
    • 11. April 2013 um 19:17
    Zitat von minx

    Wann führen diese zur ihrer Nichtigkeit? Die Ansprüche dieses Punktes sind rechtsgültig. ;)


    Wie gesagt mein Fachgebiet ist das auch nicht ...
    Viele Lizenzbestimmungen für Software enthalten eine Haftung für bestimmte Dinge um die oben angesprochene Gefahr zu vermeiden.
    Hier ein Beispiel: http://www.dvbviewer.com/license.htm
    Die beliebte Ebay-Klausel (Keine Garantie, keine Gewährleistung, keine Rücknahme) ist z.B. regelmäßig unwirksam.

    PuReIroNie: Eine Urheberrechtsverletzung kann man anzeigen.
    Ein Verstoss gegen die anderen Bestimmungen dürfte keinen Straftatbestand erfüllen.

  • MX-Au3 Lizenz v1.1

    • nuts
    • 11. April 2013 um 17:37

    Soll die Lizenz einen gewissen Rechtsschutz beinhalten?

    Das ist leider auch nicht mein Fachgebiet, aber starre und vollumfängliche Ausschlussklauseln (Punkt3) führen häufig zu deren Unwirksamkeit/Nichtigkeit (insgesamt).

  • Singleton funktioniert nicht :(

    • nuts
    • 28. Februar 2013 um 21:21

    Hm ...
    Hast du mal ausgewertet was _Singleton in erster Instanz zurückgibt?

    Spoiler anzeigen
    [autoit]


    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _Singleton
    ; Description ...: Enforce a design paradigm where only one instance of the script may be running.
    ; Syntax.........: _Singleton($sOccurenceName[, $iFlag = 0])
    ; Parameters ....: $sOccurenceName - String to identify the occurrence of the script. This string may not contain the \ character unless you are placing the object in a namespace (See Remarks).
    ; $iFlag - Behavior options.
    ; |0 - Exit the script with the exit code -1 if another instance already exists.
    ; |1 - Return from the function without exiting the script.
    ; |2 - Allow the object to be accessed by anybody in the system. This is useful if specifying a "Global\" object in a multi-user environment.
    ; Return values .: Success - The handle to the object used for synchronization (a mutex).
    ; Failure - 0
    ; Author ........: Valik
    ; Modified.......:
    ; Remarks .......: You can place the object in a namespace by prefixing your object name with either "Global\" or "Local\". "Global\" objects combined with the flag 2 are useful in multi-user environments.
    ; Related .......:
    ; Link ..........:
    ; Example .......: Yes
    ; ===============================================================================================================================
    Func _Singleton($sOccurenceName, $iFlag = 0)
    Local Const $ERROR_ALREADY_EXISTS = 183
    Local Const $SECURITY_DESCRIPTOR_REVISION = 1
    Local $tSecurityAttributes = 0

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

    If BitAND($iFlag, 2) Then
    ; The size of SECURITY_DESCRIPTOR is 20 bytes. We just
    ; need a block of memory the right size, we aren't going to
    ; access any members directly so it's not important what
    ; the members are, just that the total size is correct.
    Local $tSecurityDescriptor = DllStructCreate("byte;byte;word;ptr[4]")
    ; Initialize the security descriptor.
    Local $aRet = DllCall("advapi32.dll", "bool", "InitializeSecurityDescriptor", _
    "struct*", $tSecurityDescriptor, "dword", $SECURITY_DESCRIPTOR_REVISION)
    If @error Then Return SetError(@error, @extended, 0)
    If $aRet[0] Then
    ; Add the NULL DACL specifying access to everybody.
    $aRet = DllCall("advapi32.dll", "bool", "SetSecurityDescriptorDacl", _
    "struct*", $tSecurityDescriptor, "bool", 1, "ptr", 0, "bool", 0)
    If @error Then Return SetError(@error, @extended, 0)
    If $aRet[0] Then
    ; Create a SECURITY_ATTRIBUTES structure.
    $tSecurityAttributes = DllStructCreate($tagSECURITY_ATTRIBUTES)
    ; Assign the members.
    DllStructSetData($tSecurityAttributes, 1, DllStructGetSize($tSecurityAttributes))
    DllStructSetData($tSecurityAttributes, 2, DllStructGetPtr($tSecurityDescriptor))
    DllStructSetData($tSecurityAttributes, 3, 0)
    EndIf
    EndIf
    EndIf

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

    Local $handle = DllCall("kernel32.dll", "handle", "CreateMutexW", "struct*", $tSecurityAttributes, "bool", 1, "wstr", $sOccurenceName)
    If @error Then Return SetError(@error, @extended, 0)
    Local $lastError = DllCall("kernel32.dll", "dword", "GetLastError")
    If @error Then Return SetError(@error, @extended, 0)
    If $lastError[0] = $ERROR_ALREADY_EXISTS Then
    If BitAND($iFlag, 1) Then
    Return SetError($lastError[0], $lastError[0], 0)
    Else
    Exit -1
    EndIf
    EndIf
    Return $handle[0]
    EndFunc ;==>_Singleton

    [/autoit]


    So wie ich das sehen müsste in @error was drinstehen wenn es nicht funktioniert.

  • Singleton funktioniert nicht :(

    • nuts
    • 27. Februar 2013 um 18:36

    Die Mutex-Überprüfung (Singleton) ist ausreichend gut durchdacht und funktioniert immer zuverlässig (ansonsten müsste man sich wirklich anschauen wieso nicht).
    Alles andere ist Murks. ;)

  • Mein Fernseher und ich

    • nuts
    • 25. Februar 2013 um 22:23

    Es gibt einige Fehlerquellen. HD+ CAM und Abo-Karte gehört nicht dazu. Die Sender müssen auch ohne gefunden werden. Ich würde für den Sendersuchlauf das CAM entfernen.

    Mögliche Fehlerquellen (Aufzählung nicht abschließend :D :(
    1. Es liegt gar kein Kabelsignal an => Muss irgendwo im Haus "aktiviert werden" (jemand von Kabeldeutschland)
    2. Signal ist zu schwach. Glaube ich nicht. So schwach das gar kein Sender ankommt?
    3. Signalführung nach dem Wandkabel fehlerhaft. Dose richtig installiert? Eine andere Verkabelungsmöglichkeit habe ich ja schon beschrieben.
    4. Den TV richtig eingestellt? Beim Suchlauf wird man angeben müssen welcher Tuner verwendet wird?
    5. DVB-C Tuner defekt, aber davon wollen wir jetzt mal nicht ausgehen.

  • Mein Fernseher und ich

    • nuts
    • 25. Februar 2013 um 21:48

    Da gibt es zu 99% nichts was man einfach mit dem Schraubendreher optimieren könnte. Das ist ganz lahmes Design aus Fernost. :D
    Vielleicht mit dem Lötkolben und entsprechender Fachkenntnis ...

    P.S.

    Zitat

    Ansonsten vl. mal - wie oben geschildert - den Fernseher aufschrauben und mal ein bisschen an allem Drehen, was man drehen kann (Potis, Dreh- und Trimmkondensatoren, usw.) und sich in Nähe des Verstärkers befindet wobei man da natürlich das Risko hat, dass am Ende gar nichts mehr geht.


    Mit solchen Tips im Zusammenhang mit Elektronik sollte man in öffentlichen Foren immer etwas vorsichtig sein.
    Ihr seid später nicht mehr dabei und könnt die Umbaumaßnahmen überwachen.

  • Mein Fernseher und ich

    • nuts
    • 25. Februar 2013 um 20:17

    Nein nix aufschrauben und auch erstmal keinen Kabelverstärker.

    Kabel (Wand) => F-Stecker=> Koax-Adapter => Koax Kabel => TV!

  • Mein Fernseher und ich

    • nuts
    • 25. Februar 2013 um 19:15

    Also beim Sendersuchlauf wird gar kein Sender gefunden?
    Die Sender (auch die verschlüsselten) müssen auch ohne Abo-Karte gefunden werden! An der Freischaltung der Karte kann es also nicht liegen.

    Anhand der Bilder kann man leider nicht erkennen ob du die Dose ordnungsgemäß installiert hast.
    Wie das grundsätzlich funktioniert ist klar? Innenleiter / Außenleiter usw.?
    Die wird eigentlich auch (erstmal) gar nicht gebraucht. Testweise kannst du dir mal einen F-Stecker und einen Adapter auf Koax besorgen. Das Anschlusskabel in der Wand sieht auch nicht mehr so fit aus. Könnte man mal neu abisolieren.
    http://www.amazon.de/Vivanco-SAT-Adapter-F-Kupplung-Koaxstecker/dp/B001D68CO6/ref=sr_1_1?ie=UTF8&qid=1361815788&sr=8-1

    Im TV müsste man mal die durch Einstellungen stöbern ob man den Tuner-Typ (DVB-S bzw. DVB-C) vorgeben muss.

    Und falls gar nichts hilft: Ich glaube Kabel-Deutschland prüft die Leitung nur bis zum "Verteiler" im Haus.
    In manchen Fällen wird das vom Kabelanbieter stillgelegt nachdem das Abo vom Vormieter gekündigt/umgeschrieben wurde.

  • Tastenanschläge Hoch/Runter abfangen (ohne Hotkeyset)

    • nuts
    • 9. Februar 2013 um 17:02

    Habs schon über GUISetAccelerators gelöst.
    Danke an alle Helfer.

  • Tastenanschläge Hoch/Runter abfangen (ohne Hotkeyset)

    • nuts
    • 9. Februar 2013 um 14:33

    Ah sorry die eigenen includes hab ich von einem anderern Skript kopiert.
    Die werden nicht benötigt und sind nun im Startpost rausgelöscht.

    edit\ Hm GUISetAccelerators
    Gute Idee. Damit scheint es zu gehen - danke :thumbup:

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™