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

Beiträge von Joriktos

  • [Release] mInfo

    • Joriktos
    • 14. Juni 2013 um 14:22

    Bitte poste auch immer deinen Code dazu, sonst können wir dir ja auch nicht helfen etwas zu verbessern ;) Außerdem führt niemand gerne eine reine Exe-Datei aus...

  • Mit Zählerschleife verschiedene Namen schreiben

    • Joriktos
    • 13. Juni 2013 um 14:43

    Sicher geht das, kommt natürlich auf den Aufbau und das Format der Quelldatei an ;)
    Wenn du uns das an einem Beispiel schilderst, dann können wir bestimmt helfen ;)

  • Tooltip Schriftfarbe

    • Joriktos
    • 13. Juni 2013 um 11:01
    [autoit]

    WinGetPos("[ACTIVE]")

    [/autoit]

    Damit bekommst du die Position und Maße des aktiven Fensters, somit kannst du dir alles errechnen, was du brauchst ;)

    X sollte sein: "X-Fensterposition" + "Fensterbreite" - "Breite des Tooltip" - "Platz der an der Rechten Seite bleiben soll"
    Y sollte sein: "Y-Fensterposition" + "Fensterhöhe" - "Breite des Tooltip" - "Platz der rechts unten bleiben soll"
    Zumindest wenn ich keine Denkfehler habe ;)


    Edit: Durch

    [autoit]

    WinGetHandle("[ACTIVE]")

    [/autoit]

    bekommst du auch noch das Handle des aktiven Fensters und damit kannst du sogar das aktive Fenster als Parent für deine ToolTip-GUI angeben, dann verschiebt sich die sogar mit ;) (Vorausgesetzt du machst das ganze mit einer "WS_POPUP-GUI")

  • GUI mit mehreren Buttons (Skripten): Wie kann ich mir optisch anzeigen lassen, welche Skripte derzeit laufen (aktiv sind)?

    • Joriktos
    • 11. Juni 2013 um 12:58

    Wunderbar, das freut mich :)

  • Uhrzeit

    • Joriktos
    • 3. Juni 2013 um 22:27

    So geht es:

    Spoiler anzeigen
    [autoit]


    #include <GuiConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <ButtonConstants.au3>

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

    Global $iSecOld = @SEC

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

    $msg = GUICreate("uhrzeit", 200, 100, -1, -1)
    $uhr = GUICtrlCreateLabel("" & @HOUR & ":" & @MIN & ":" & @SEC, 15, 15, 90, 20, 1)
    GUISetState()
    While 1
    Local $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    If @SEC <> $iSecOld Then
    GUICtrlSetData($uhr, "" & @HOUR & ":" & @MIN & ":" & @SEC)
    $iSecOld = @SEC
    EndIf
    WEnd

    [/autoit]

    Liegt übrigens am Sleep, wenn man das weg lässt flackert es zwar, aber man kann's schließen ;)

  • GUI mit mehreren Buttons (Skripten): Wie kann ich mir optisch anzeigen lassen, welche Skripte derzeit laufen (aktiv sind)?

    • Joriktos
    • 3. Juni 2013 um 00:37

    Wenn du deine Skripte parallel laufen lässt und alle unterschiedlich lange laufen, dann macht dein Ansatz mit While keinen Sinn.

    Dann kannst du es zum Beispiel so lösen:
    Buttons erstellen und Programme dazu definieren:

    Spoiler anzeigen
    [autoit]


    Global $aButton[10][4] ; Für die 10 die Anzahl deiner Buttons/Programme einfügen
    For $i = 0 To 9 ; Für die 9 die Anzahl deiner Buttons/Programme - 1 einfügen
    $aButton[$i][3] = 0
    Next

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

    $aButton[0][0] = GUICtrlCreateButton("Skript0", X, Y [, width [, height [, style [, exStyle]]]]) ; Deinen Button an gewünschter Position erstellen.
    $aButton[0][1] = "D:\AutoIT\Skripte\Skript0.exe" ; Pfad des Skripts in Spalte 1 des Arrays schreiben
    $aButton[0][2] = "Skript0.exe" ; Name des Skripts in Spalte 2 des Arrays schreiben

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

    $aButton[1][0] = GUICtrlCreateButton("Skript1", X, Y [, width [, height [, style [, exStyle]]]]) ; Deinen Button an gewünschter Position erstellen.
    $aButton[1][1] = "D:\AutoIT\Skripte\Skript1" ; Pfad des Skripts in Spalte 1 des Arrays schreiben
    $aButton[1][2] = "Skript1.exe" ; Name des Skripts in Spalte 2 des Arrays schreiben

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

    ;...

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

    $aButton[9][0] = GUICtrlCreateButton("Skript9", X, Y [, width [, height [, style [, exStyle]]]]) ; Deinen Button an gewünschter Position erstellen.
    $aButton[9][1] = "D:\AutoIT\Skripte\Skript9.exe" ; Pfad des Skripts in Spalte 1 des Arrays schreiben
    $aButton[9][2] = "Skript9.exe" ; Name des Skripts in Spalte 2 des Arrays schreiben

    [/autoit]


    Skripte starten:

    Spoiler anzeigen
    [autoit]


    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $aButton[0][0]
    _StartSkript(0)
    Case $aButton[1][0]
    _StartSkript(1)
    ;...
    Case $aButton[9][0]
    _StartSkript(9)
    EndSwitch

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

    Func _StartSkript($iArrayLine)
    $aButton[$iArrayLine][3] = Run($aButton[$iArrayLine][1])
    EndFunc

    [/autoit]


    Laufende Skripte überprüfen:

    Spoiler anzeigen
    [autoit]


    Func _ActiveScripts()
    $iActiveScripts = 0
    For $i = 0 To 9 ; Für die 9 die Anzahl deiner Buttons/Programme - 1 einfügen
    If $aButton[$i][3] <> 0 Then ; Wenn der Prozess gestartet wurde ist $aButton[$i][3] <> 0
    If ProcessExists($aButton[$i][3]) Then ; Wenn der Prozess weiterhin existiert:
    GUICtrlSetColor($aButton[$i][0], 0x00ff00) ; Button-Textfarbe grün färben
    $iActiveScripts += 1
    Else ; Wenn der Prozess nicht mehr läuft:
    GUICtrlSetColor($aButton[$i][0], 0x000000) ; Button-Textfarbe schwarz färben
    $aButton[$i][3] = 0
    EndIf
    EndIf
    Next
    Return $iActiveScripts ; Funktion gibt die Anzahl der aktuell laufenden Skripte zurück (vielleicht ist das ja nützlich ;) )
    EndFunc

    [/autoit]


    So, endlich fertig :D Ich garantiere nicht auf Funktionalität (ungetestet) und warne vor eventuellen Schreibfehlern, da ich das ganze gerade hier in der Antwort geschrieben habe, da ich gerade kein SciTE/AutoIT zur Verfügung habe.

    Ich hoffe das ist ein gute Lösungsansatz für dich und vielleicht kannst du das ja so einbauen ;) Vielleicht gibt es sogar eine noch kürzere Lösung, aber das ist denke ich schon recht gut gelöst ;)

    Liebe Grüße und eine gute Nacht
    Joriktos


    Edit:
    Übrigens setzt

    [autoit]

    GUICtrlSetColor

    [/autoit]

    nur die Textfarbe des Buttons, nicht die Hintergrund-/Buttonfarbe selbst. Dafür gibt es

    [autoit]

    GUICtrlSetBkColor

    [/autoit]

    ;)
    Und mit

    [autoit]

    #include <ButtonConstants.au3>
    ; ...
    GUICtrlSetStyle($b1, $GUI_SS_DEFAULT_BUTTON)

    [/autoit]

    setzt man es wieder zurück ;)

  • autoit gibte die daten nicht wieder frei

    • Joriktos
    • 18. Mai 2013 um 16:01
    Zitat von RedHead


    ist hier leider keine möglichkeit...das programm befindet sich im autostart und bevor es zur eigentlichen schleife kommt werden verschiedene dinge abgefragt und erledigt...bei einem neustart würde diese dinge nochmal ablaufen und das sollen die nicht

    Naja, jetzt hast du ja eine Lösung, aber du kannst Programme neu starten lassen, ohne dass die "Anfangsdinge" ausgeführt werden ;)

    [autoit]


    If $CmdLine[0] = 0 Then
    ;Blabla
    EndIf

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

    ;Deine Schleife

    [/autoit]

    Und dann musst du aus deinem Programm heraus dein Programm mit einem Parameter starten ;) (DeinProgramm.exe -1)

  • Register/Login Script [AutoIt]

    • Joriktos
    • 11. Mai 2013 um 12:49

    Bau doch noch ein

    [autoit]


    If Not FileExists(@ScriptDir & "\Spieler") Then
    DirCreate(@ScriptDir & "\Spieler")
    EndIf

    [/autoit]


    ein, dann muss der Ordner nicht selbst erstellt werden ;)


    Außerdem solltest du dir mal diesen Thread anschauen: [Tutorial] Sauber Programmieren
    Da stehen tolle Sachen über die Variablenbenennung und über Einrückungen drin ;)

  • _GUICtrlSlider_SetPos bei verstecktem Fenster verwenden geht nicht

    • Joriktos
    • 26. April 2013 um 20:12

    Push

    -Ich suche immernoch ein Workaround ;)


    Edit: Also es liegt nicht direkt an _GUICtrlSlider_SetPos, sondern es geht auch nicht, wenn ich es mit einem direkten DllCall anspreche...

    [autoit]

    DllCall("user32.dll", "lresult", "SendMessageW", "hwnd", ControlGetHandle($sVolumeMixerTitle, "", "[CLASS:msctls_trackbar32; INSTANCE:" & $iLoopCount & "]"), "uint", $TBM_SETPOS, "wparam", True, "lparam", 100 - $iVolume)

    [/autoit]


    Edit2: Es funktioniert doch, aber es gibt ein anderes Problem: Es wird zwar der Slider verschoben, dies hat aber keinerlei auswirkung auf die Lautstärke und wird auch nach dem schließen vom Lautstärkemixer wieder verworfen, hat jemand eine Idee, warum das so ist?

  • _GUICtrlSlider_SetPos bei verstecktem Fenster verwenden geht nicht

    • Joriktos
    • 24. April 2013 um 20:05

    Bitteschön, meine Soundcheck.au3 :D War nur für mich gedacht, deshalb nicht so übersichtlich...

    [autoit]


    #include <Array.au3>
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GuiSlider.au3>
    #include "Win7SoundHandler.au3"

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

    Opt("WinTitleMatchMode", 2)
    Global $sVolumeMixerTitle = ""

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

    #region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Dialog", 308, 272, 735, 289)
    $Button1 = GUICtrlCreateButton("Run", 23, 17, 75, 25)
    $Button2 = GUICtrlCreateButton("Get Apps", 115, 17, 75, 25)
    $Button3 = GUICtrlCreateButton("", 207, 17, 75, 25)
    $Button4 = GUICtrlCreateButton("", 23, 60, 75, 25)
    $Button5 = GUICtrlCreateButton("Volume", 115, 60, 75, 25)
    $Button6 = GUICtrlCreateButton("", 207, 60, 75, 25)
    GUISetState(@SW_SHOW)
    #endregion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    _Win7SH_Startup()
    Case $Button2
    $bla = _MixerGetPrograms()
    _ArrayDisplay($bla)
    Case $Button3
    $bla2 = _GetProgramSoundlevel("Winamp")
    MsgBox(0, "", $bla2[0] & @CRLF & $bla2[1])
    Case $Button4
    Case $Button5
    $sProgram = InputBox("", "Program:")
    $iVolume = InputBox("", "Volume:")
    $Error = _SetProgramSoundlevel($sProgram, $iVolume)
    ;MsgBox(0, "", $Error & @CRLF & @error)
    EndSwitch
    WEnd

    [/autoit]
  • _GUICtrlSlider_SetPos bei verstecktem Fenster verwenden geht nicht

    • Joriktos
    • 24. April 2013 um 19:38

    Ich weiß, es sind noch nicht ganz 24 Stunden um, aber Hilfe wäre gerade echt gut, da ich gerade etwas Zeit habe^^
    Übrigens funktioniert _GUICtrlSlider_GetPos immer einwandfrei, nur das SetPos macht Probleme, ich habe mir dazu auch Win7_Sound von BugFix angeschaut, aber das hilft mir auch nicht weiter, weil dort scheint es zu funktionieren und eigentlich ist es doch bei mir sehr gleich gelöst, oder habe ich da etwas übersehen? Übrigens mach ich das alles, damit der Benutzer weiterhin den Lautstärkemixer verwenden kann, was ja bei BugFix' UDF nicht funktioniert, außerdem möchte ich weitere nette Erweiterungen einbauen :)

  • _GUICtrlSlider_SetPos bei verstecktem Fenster verwenden geht nicht

    • Joriktos
    • 23. April 2013 um 21:46

    Für euch immer ;) Aber bisschen was arbeiten müsst ihr schon :D

    Spoiler anzeigen
    [autoit]


    #include-once
    #include <GuiSlider.au3>

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

    Global $sVolumeMixerTitle = ""

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

    ; #FUNCTION# ====================================================================================================================
    ; Name ..........: _Win7SH_Startup
    ; Description ...: Startup Win7SoundHandler: Declare Variables; Get the name of the Volume Mixer in the right language
    ; Syntax ........: _Win7SH_Startup()
    ; Parameters ....:
    ; Return values .: $sVolumeMixerTitle - The Title of the Volume Mixer Window in the Systemlanguage.
    ; Author ........: Rafael K. (Joriktos, autoit.de)
    ; Modified ......:
    ; Remarks .......:
    ; Related .......:
    ; Link ..........:
    ; Example .......: No
    ; ===============================================================================================================================
    Func _Win7SH_Startup()
    OnAutoItExitRegister("_Win7SH_Shutdown")
    Global $bSndVolClose = False
    Global $iSndVolStartups = 0
    Global $asPrograms[2][2] = [[0]]
    Global $hPID = Run("sndvol -r", @SystemDir, @SW_HIDE)
    $sVolumeMixerTitle = _GetTitleFromPID($hPID)
    ProcessClose($hPID)

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

    $sVolumeMixerTitle = StringSplit($sVolumeMixerTitle, " - ", 1)
    $sVolumeMixerTitle = $sVolumeMixerTitle[1]

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

    Local $iCountProgramsInstance = 0
    Local $iCountPrograms = 1

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

    Global $sMuteText = ""
    Global $aPrograms
    Global $aProgramInfo[2] = [0]
    $sMuteText = _GetMuteText()

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

    Return $sVolumeMixerTitle
    EndFunc ;==>_Win7SH_Startup

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

    ; #FUNCTION# ====================================================================================================================
    ; Name ..........: _Win7SH_Shutdown
    ; Description ...: Closes SndVol.exe, if it's needed.
    ; Syntax ........: _Win7SH_Shutdown()
    ; Parameters ....:
    ; Return values .: None
    ; Author ........: Rafael K. (Joriktos, autoit.de)
    ; Modified ......:
    ; Remarks .......:
    ; Related .......:
    ; Link ..........:
    ; Example .......: No
    ; ===============================================================================================================================
    Func _Win7SH_Shutdown()
    $iSndVolStartups = 1
    _SndVolShutdown()
    EndFunc

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

    ; #FUNCTION# ====================================================================================================================
    ; Name ..........: _GetTitleFromPID
    ; Description ...: Returns the Name of a Window to a PID.
    ; Syntax ........: _GetTitleFromPID($hPID)
    ; Parameters ....: $hPID - A handle value.
    ; Return values .: $sTitle - The Title of the Volume Mixer Window in the Systemlanguage.
    ; Author ........:
    ; Modified ......: Rafael K. (Joriktos, autoit.de)
    ; Remarks .......:
    ; Related .......:
    ; Link ..........:
    ; Example .......: No
    ; ===============================================================================================================================
    Func _GetTitleFromPID($hPID)
    $sTitle = ""
    $stPID = DllStructCreate("int")
    Do
    $aWinList = WinList()
    For $i = 1 To $aWinList[0][0]
    If $aWinList[$i][0] <> "" Then
    DllCall("user32.dll", "int", "GetWindowThreadProcessId", "hwnd", $aWinList[$i][1], "ptr", DllStructGetPtr($stPID))
    If DllStructGetData($stPID, 1) = $hPID Then
    $sTitle = $aWinList[$i][0]
    ExitLoop
    EndIf
    EndIf
    Next
    Sleep(100)
    Until $sTitle <> ""
    ProcessClose($hPID)
    Return $sTitle
    EndFunc ;==>_GetTitleFromPID

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

    ; #FUNCTION# ====================================================================================================================
    ; Name ..........: _GetMuteText
    ; Description ...: Returns the text before the Programname (ex. English: "Mute"; ex. German: "Stumm für")
    ; Syntax ........: _GetMuteText()
    ; Parameters ....:
    ; Return values .: $sMuteText - The text before the Programname (ex. English: "Mute"; ex. German: "Stumm für")
    ; Author ........: Rafael K. (Joriktos, autoit.de)
    ; Modified ......:
    ; Remarks .......:
    ; Related .......:
    ; Link ..........:
    ; Example .......: No
    ; ===============================================================================================================================
    Func _GetMuteText()
    Local $sRandomProgramName
    Local $iNamePosition
    _SndVolStartup()
    Local $sRandomProgramName = ControlGetText($sVolumeMixerTitle, "", 301)
    $asPrograms = _MixerGetPrograms()
    _SndVolShutdown()
    For $iCountPrograms = 1 To $asPrograms[0][0]
    $iNamePosition = StringInStr($asPrograms[$iCountPrograms][0], $sRandomProgramName)
    If $iNamePosition <> 0 Then
    ExitLoop
    EndIf
    Next
    $sMuteText = StringLeft($asPrograms[$iCountPrograms][0], $iNamePosition - 1)
    Return $sMuteText
    EndFunc ;==>_GetMuteText

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

    ; #FUNCTION# ====================================================================================================================
    ; Name ..........: _SndVolStartup
    ; Description ...: Start the Volume Mixer or get the PID of an opened one.
    ; Syntax ........: _SndVolStartup()
    ; Parameters ....:
    ; Return values .:
    ; Author ........: Rafael K. (Joriktos, autoit.de)
    ; Modified ......:
    ; Remarks .......:
    ; Related .......:
    ; Link ..........:
    ; Example .......: No
    ; ===============================================================================================================================
    Func _SndVolStartup()
    If $sVolumeMixerTitle = "" Then
    Return 0
    Else
    If WinExists($sVolumeMixerTitle) Then
    $hPID = WinGetProcess($sVolumeMixerTitle)
    Else
    $hPID = Run("SndVol -r", @SystemDir, @SW_HIDE)
    $bSndVolClose = True
    WinWait($sVolumeMixerTitle)
    EndIf
    $iSndVolStartups += 1
    EndIf
    EndFunc ;==>_SndVolStartup

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

    ; #FUNCTION# ====================================================================================================================
    ; Name ..........: _SndVolShutdown
    ; Description ...: Close the Volume Mixer if _SndVolStartup() opened a new Instance of Volume Mixer, else do nothing.
    ; Syntax ........: _SndVolShutdown()
    ; Parameters ....:
    ; Return values .:
    ; Author ........: Rafael K. (Joriktos, autoit.de)
    ; Modified ......:
    ; Remarks .......:
    ; Related .......:
    ; Link ..........:
    ; Example .......: No
    ; ===============================================================================================================================
    Func _SndVolShutdown()
    If $sVolumeMixerTitle = "" Then
    Return 0
    Else
    If $iSndVolStartups = 1 Then
    If $bSndVolClose = True Then
    ProcessClose($hPID)
    $bSndVolClose = False
    EndIf
    EndIf
    If $iSndVolStartups > 0 Then
    $iSndVolStartups -= 1
    EndIf
    EndIf
    EndFunc ;==>_SndVolShutdown

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

    ; #FUNCTION# ====================================================================================================================
    ; Name ..........: _MixerGetPrograms
    ; Description ...:
    ; Syntax ........: _MixerGetPrograms()
    ; Parameters ....:
    ; Return values .: 0 - You have to use _Win7SH_Startup() first.
    ; $asPrograms - An Array. $asPrograms[0][0] = Number of Programs; $asPrograms[n][0] = Programname; $asPrograms[n][1] = Volume
    ; Author ........: Rafael K. (Joriktos, autoit.de)
    ; Modified ......:
    ; Remarks .......:
    ; Related .......:
    ; Link ..........:
    ; Example .......: No
    ; ===============================================================================================================================
    Func _MixerGetPrograms()
    If $sVolumeMixerTitle = "" Then
    Return 0
    Else
    _SndVolStartup()
    $iCountProgramsInstance = 0
    $iCountPrograms = 1
    While 1
    $iCountProgramsInstance += 2
    If $sMuteText = "" Then
    $asPrograms[$iCountPrograms][0] = ControlGetText($sVolumeMixerTitle, "", "[CLASS:ToolbarWindow32; INSTANCE:" & $iCountProgramsInstance & "]")
    Else
    $asPrograms[$iCountPrograms][0] = StringReplace(ControlGetText($sVolumeMixerTitle, "", "[CLASS:ToolbarWindow32; INSTANCE:" & $iCountProgramsInstance & "]"), $sMuteText, "", 1, 1)
    EndIf
    If $asPrograms[$iCountPrograms][0] = "" Then
    If $iCountPrograms = 1 Then
    ReDim $asPrograms[2][2]
    $asPrograms[0][0] = 0
    $asPrograms[1][1] = ""
    Else
    ReDim $asPrograms[$iCountPrograms][2]
    EndIf
    ExitLoop
    Else
    $asPrograms[0][0] = $iCountPrograms
    $asPrograms[$iCountPrograms][1] = 100 - _GUICtrlSlider_GetPos(ControlGetHandle($sVolumeMixerTitle, "", "[CLASS:msctls_trackbar32; INSTANCE:" & $iCountPrograms & "]"))
    $iCountPrograms += 1
    ReDim $asPrograms[$iCountPrograms + 1][2]
    EndIf
    WEnd
    _SndVolShutdown()
    Return $asPrograms
    EndIf
    EndFunc ;==>_MixerGetPrograms

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

    ; #FUNCTION# ====================================================================================================================
    ; Name ..........: _GetProgramSoundlevel
    ; Description ...:
    ; Syntax ........: _GetProgramSoundlevel($sProgram[, $iFullTitle = False])
    ; Parameters ....: $sProgram - A string value.
    ; $iFullTitle - [optional] An integer value. Default is False.
    ; Return values .: 0 - You have to use _Win7SH_Startup() first.
    ; $aProgramInfo - An Array. $aProgramInfo[0] = Programname; $aProgramInfo[1] = Volume (0-100)
    ; Author ........: Rafael K. (Joriktos, autoit.de)
    ; Modified ......:
    ; Remarks .......:
    ; Related .......:
    ; Link ..........:
    ; Example .......: No
    ; ===============================================================================================================================
    Func _GetProgramSoundlevel($sProgram, $iFullTitle = False)
    If $sVolumeMixerTitle = "" Then
    Return 0
    Else
    _SndVolStartup()
    $aPrograms = _MixerGetPrograms()
    $aProgramInfo[0] = 0
    $aProgramInfo[1] = 0
    If $iFullTitle = True Then
    For $iLoopCount = 1 To $aPrograms[0][0]
    If $aPrograms[$iLoopCount][0] = $sProgram Then
    $aProgramInfo[0] = $aPrograms[$iLoopCount][0]
    $aProgramInfo[1] = $aPrograms[$iLoopCount][1]
    ExitLoop
    EndIf
    Next
    EndIf
    If $iFullTitle = False Then
    For $iLoopCount = 1 To $aPrograms[0][0]
    If StringInStr($aPrograms[$iLoopCount][0], $sProgram) <> 0 Then
    $aProgramInfo[0] = $aPrograms[$iLoopCount][0]
    $aProgramInfo[1] = $aPrograms[$iLoopCount][1]
    ExitLoop
    EndIf
    Next
    EndIf
    _SndVolShutdown()
    Return $aProgramInfo
    EndIf
    _SndVolShutdown()
    EndFunc ;==>_GetProgramSoundlevel

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

    Func _SetProgramSoundlevel($sProgram, $iVolume, $iFullTitle = False)
    If $sVolumeMixerTitle = "" Then
    Return 0
    ElseIf Not StringIsDigit($iVolume) Then
    SetError(1)
    Else
    _SndVolStartup()
    $aPrograms = _MixerGetPrograms()
    $aProgramInfo[0] = 0
    $aProgramInfo[1] = 0
    If $iFullTitle = True Then
    For $iLoopCount = 1 To $aPrograms[0][0]
    If $aPrograms[$iLoopCount][0] = $sProgram Then
    $aProgramInfo[0] = $aPrograms[$iLoopCount][0]
    $aProgramInfo[1] = $aPrograms[$iLoopCount][1]
    ExitLoop
    EndIf
    Next
    EndIf
    If $iFullTitle = False Then
    For $iLoopCount = 1 To $aPrograms[0][0]
    If StringInStr($aPrograms[$iLoopCount][0], $sProgram) <> 0 Then
    $aProgramInfo[0] = $aPrograms[$iLoopCount][0]
    $aProgramInfo[1] = $aPrograms[$iLoopCount][1]
    ExitLoop
    EndIf
    Next
    EndIf
    If $aProgramInfo[0] <> "" Then
    _GUICtrlSlider_SetPos(ControlGetHandle($sVolumeMixerTitle, "", "[CLASS:msctls_trackbar32; INSTANCE:" & $iLoopCount & "]"), 100 - $iVolume)
    _SndVolShutdown()
    Return $aProgramInfo
    Else
    _SndVolShutdown()
    SetError(2)
    Return 0
    EndIf
    EndIf
    EndFunc ;==>_SetProgramSoundlevel

    [/autoit]

    Ich bin gerade dabei ein besseres Soundmanagement für Win7/8 zu basteln ;)
    Ihr müsst euch dafür _SetProgramSoundlevel (letzte Funktion) anschauen.

  • _GUICtrlSlider_SetPos bei verstecktem Fenster verwenden geht nicht

    • Joriktos
    • 22. April 2013 um 13:54

    Servus, kann es sein, dass

    [autoit]

    _GUICtrlSlider_SetPos

    [/autoit]


    nicht mit versteckten Fenstern funktioniert? Wenn das Fenster geöffnet ist, dann funktioniert es Problemlos. Gibt es dafür einen Workaround oder so etwas?

  • NBT-Format

    • Joriktos
    • 13. April 2013 um 16:03

    Hab ich mir alles angeschaut, aber:
    [Blockierte Grafik: http://www10.pic-upload.de/13.04.13/rbdrrxewbnq2.png]

  • NBT-Format

    • Joriktos
    • 13. April 2013 um 14:31

    Die servers.dat hat irgendwie eine komische Kodierung oder sowas... Ich versuch da mal was drüber rauszufinden, wie man das am besten bearbeiten kann.

  • NBT-Format

    • Joriktos
    • 13. April 2013 um 11:58

    Also du willst deinen Server in die Servers.dat von dem Minecraft-Client schreiben?

  • Kann Ordner nicht löschen

    • Joriktos
    • 10. April 2013 um 14:26

    Wunderbar, kein Problem ;)

  • .jar entpacken failt

    • Joriktos
    • 9. April 2013 um 19:27

    Du kannst es ja auch ohne Installation dazu geben ;) Mit der 7zip-32.dll, glaub ich

  • Kann Ordner nicht löschen

    • Joriktos
    • 9. April 2013 um 10:46

    Hast du das mit einem eigenen Script reinkopiert? Hast du die Datei innerhalb des Ordners geöffnet und kein FileClose() verwendet? Das ist mir mal passiert, dass ich eine Datei per FileOpen() geöffnet hatte und dann das FileClose() vergessen hatte, danach wollte ich die Datei per ShellExecute() ausführen, was nicht ging und ich habe ewig nicht gefunden, warum es so war ;)
    Bei dir ist zwar ein anderes Problem, aber eventuell hat es trotzdem damit zu tun ;)

  • _StringBetween problem

    • Joriktos
    • 7. April 2013 um 13:07

    Also dann könntest du noch @CR und @LF probieren oder warum nimmst du nicht einfach $split1[2]? Dann sollte er dir genau das geben, was dir _StringBetween() geben sollte ;)

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™