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

Beiträge von Bitnugger

  • Digitaluhr v4

    • Bitnugger
    • 20. Juni 2018 um 18:13

    Ich hätte noch einen Vorschlag für dich...

    Die Digitaluhr soll ja wahrscheinlich nur auf dem Desktop angezeigt werden... bevor du sie anzeigst, solltest du also prüfen, ob dieser sichbar/aktiviert ist.

  • Digitaluhr v4

    • Bitnugger
    • 20. Juni 2018 um 17:30

    Diesen Bug habe ich schon vor langer Zeit im englischen Forum gemeldet, die sehen das Problem beim Coder der UDF... solange dieser nichts am Rückgabewert ändert... bleibt es so wie es ist.

    _WinAPI_GetVersion liefert als Ergebnis einen String und Oscar vergleicht dieses Ergebnis auch mit einem String... und in dem Fall ist "10" eben kleiner als "6.0"!

    Das Ergebnis von _WinAPI_GetVersion muss also vor der Prüfung in eine Zahl umgewandelt werden, damit der Vergleich wie beabsichtigt funktioniert.

    AutoIt
    If Number(_WinAPI_GetVersion()) < 6.0 Then Exit MsgBox($MB_ICONERROR, StringFormat('%s  -  v%3.3s', $sAppTitle, $sAppVersion), StringFormat('Systemvoraussetzung nicht erfüllt!\nWindows Vista oder höher wird benötigt.'))

    Edit: Ab AutoItVersion 3.3.14.3 liefert _WinAPI_GetVersion keinen String mehr, sondern ein Double.

    Dann würde es so reichen:

    Code
    If _WinAPI_GetVersion() < 6.0 Then Exit MsgBox($MB_ICONERROR, StringFormat('%s  -  v%3.3s', $sAppTitle, $sAppVersion), StringFormat('Systemvoraussetzung nicht erfüllt!\nWindows Vista oder höher wird benötigt.'))
  • Falsche Ausgabe einer WMIC Abfrage

    • Bitnugger
    • 20. Juni 2018 um 16:34
    Zitat von hipfzwirgel

    Mit zweien gefüllt mit der ganzen Liste

    Zwei || haben eine völlig andere Bedeutung als nur ein |.

    Hier mal ein Beispiel:

    pushd z:\ 2>nil && (echo "Aktuelles Verzeichnis ist nun z:\") || echo "z:\ nicht gefunden"

  • Firebird SQL - Problem Belegdatum

    • Bitnugger
    • 18. Juni 2018 um 23:44

    Hilft dir das weiter?

    http://www.firebirdfaq.org/faq198/

  • _IsPressed mit ß

    • Bitnugger
    • 18. Juni 2018 um 23:30

    Schau mal hier...

    AutoIt
    ;-- TIME_STAMP   2018-06-18 23:28:52   v 0.1
    
    #include <WindowsConstants.au3>
    #include <Misc.au3>
    
    ; Im globalen Bereich (außerhalb von Funktionen) gibt es keine lokalen Variablen - auch wenn du sie mit Local deklarierst, sie sind immer global!
    Global $sZeichen = "A0:Left SHIFT|A1:Right SHIFT|A2:Left CTRL|A3:Right CTRL|A4:Left MENU|A5:Right MENU|01:Left Mouse|02:Right Mouse|04:Middle Mouse|5B:Left WIN|5C:Right WIN|5D:Right MENU|" & _
            "08:BACKSPACE|09:TAB|0C:CLEAR ?|0D:ENTER|10:SHIFT|11:CTRL|12:ALT|13:PAUSE|14:CAPS LOCK|1B:ESC|20:SPACEBAR|21:PAGE UP|22:PAGE DOWN|23:END|24:HOME|25:LEFT ARROW|26:UP ARROW|" & _
            "27:RIGHT ARROW|28:DOWN ARROW|29:SELECT ?|2A:PRINT ?|2B:EXECUTE ?|2C:PRINT SCREEN|2D:INS|2E:DEL|30:0|31:1|32:2|33:3|34:4|35:5|36:6|37:7|38:8|39:9|41:A|42:B|43:C|44:D|45:E|" & _
            "46:F|47:G|48:H|49:I|4A:J|4B:K|4C:L|4D:M|4E:N|4F:O|50:P|51:Q|52:R|53:S|54:T|55:U|56:V|57:W|58:X|59:Y|5A:Z|60:NUM 0|61:NUM 1|62:NUM 2|63:NUM 3|64:NUM 4|65:NUM 5|66:NUM 6|" & _
            "67:NUM 7|68:NUM 8|69:NUM 9|6A:NUM *|6B:NUM +|6C:NUM .|6D:NUM -|6E:NUM ,|6F:NUM /|70:F1|71:F2|72:F3|73:F4|74:F5|75:F6|76:F7|77:F8|78:F9|79:F10|7A:F11|7B:F12|7C:F13|7D:F14|" & _
            "7E:F15|7F:F16|90:NUM|91:SCROLL|BA:Ü:;|BB:+:=|BC:,|BD:-|BE:.|BF:#:/|C0:Ö:`|DB:ß:|DC:^:\|DD:´:,|DE:Ä:#|E2:<:n.a."
    Global $aSplit, $aZeichen = StringSplit($sZeichen, '|', 2), $aTastaturZeichen[UBound($aZeichen)][3], $sZeichenDeutsch, $sZeichenEnglisch
    For $i = 0 To UBound($aTastaturZeichen) - 1 Step 1
        $aSplit = StringSplit($aZeichen[$i], ':', 2)
        $aTastaturZeichen[$i][0] = $aSplit[0]
        $aTastaturZeichen[$i][1] = $aSplit[1]
        $aTastaturZeichen[$i][2] = UBound($aSplit) = 3 ? $aSplit[2] : $aSplit[1]
    Next
    ConsoleWrite(UBound($aTastaturZeichen) & @CRLF)
    
    Global $hDLL = DllOpen("user32.dll"), $hGUI = GUICreate('', 1, 1, -1, -1, $WS_POPUP)
    _ToolTip('Die blockierte Taste wird als Tooltip angezeigt... Abbruch mit ESC!')
    Sleep(1000)
    ToolTip('')ß
    
    While True
        For $i = 0 To UBound($aTastaturZeichen) - 1
            If _IsPressed($aTastaturZeichen[$i][0], $hDLL) Then
                If $aTastaturZeichen[$i][0] = "1B" Then ExitLoop 2 ; ESC
                $sZeichenDeutsch = $aTastaturZeichen[$i][1]
                $sZeichenEnglisch = $aTastaturZeichen[$i][2]
                _ToolTip('Hex-Code: ' & $aTastaturZeichen[$i][0] & @CRLF & 'Deutsche Taste: ' & $aTastaturZeichen[$i][1] & @CRLF & 'Englische Taste: ' & $aTastaturZeichen[$i][2])
                While _IsPressed($aTastaturZeichen[$i][0], $hDLL)
                    Sleep(250)
                WEnd
                ToolTip('')
                If Not WinActive($hGUI) Then WinActivate($hGUI)
                ExitLoop
            EndIf
        Next
    WEnd
    
    DllClose($hDLL)
    
    Func _ToolTip($sText)
        Local $aMP = MouseGetPos()
        ToolTip($sText, $aMP[0] - 50, $aMP[1] + 50)
    EndFunc
    Alles anzeigen
  • Digitaluhr v4

    • Bitnugger
    • 17. Juni 2018 um 21:10

    Abfalltonnen: Bei uns kannst du dir im Internet einen Jahresplan im PDF-Format downloaden...der sieht dann etwa so aus:

    pasted-from-clipboard.png

    Wenn das Datum nicht korrekt ist, wird die entsprechende Tonne nicht angezeigt und du berücksichtigst auch nicht, dass wenn ein oder mehrere Feiertage in der Abholwoche vor dem Abholtag sind, sich dieser verschiebt.

    Aber sonst... echt super... jetzt noch einen einheitlichen Hintergrund, diesen, die Schriftfarben und die Transparenz einstellbar machen, dann ist es perfekt. ;)

    pasted-from-clipboard.png

  • Script Paused? Warum?

    • Bitnugger
    • 16. Juni 2018 um 18:48

    Ob durch WinClose auch der Prozess beendet wird, liegt ganz allein bei an der Anwendung, dessen Fenster geschlossen wurde. In den meisten Fällen ist dies aber so.

    Das Problem hier ist aber, dass das TrayIcon erst ausgeblendet wird, wenn man mit der Maus über diesen Bereich fährt.

    Hier mal ein kleines Script, mit dem man das sehen kann...

    AutoIt
    ;-- TIME_STAMP   2018-06-16 18:40:49   v 0.1
    
    Local $hWnd = WinActive("[ACTIVE]")
    Local $hTrayWnd = WinActivate("[CLASS:Shell_TrayWnd]")
    Local $aTrayWndPos = WinGetPos($hTrayWnd)
    Local $aMousePos = MouseGetPos()
    
    If Not ProcessExists('OneDrive.exe') Then
        Run(@LocalAppDataDir & '\Microsoft\OneDrive\OneDrive.exe')
        Sleep(500)
    EndIf
    Local $hOneDrive = WinGetHandle('OneDrive')
    WinSetState($hOneDrive, '', @SW_MINIMIZE)
    Sleep(500)
    
    WinClose(WinGetHandle('OneDrive'))
    ProcessClose('OneDrive.exe')
    For $i = $aTrayWndPos[2] - 150 To $aTrayWndPos[2] / 2 Step -100
        MouseMove($aTrayWndPos[0] + $i, $aTrayWndPos[1] + 15)
    Next
    
    MouseMove($aMousePos[0], $aMousePos[1])
    WinActivate($hWnd)
    Alles anzeigen
  • Script Paused? Warum?

    • Bitnugger
    • 15. Juni 2018 um 23:15

    Versuche es mal so... das @ComSpec kannst du dir sparen, wenn mit Run eine *.exe ausgeführt wird.

    RunWait("ROBOCOPY " & $Quelle & " " & $Ziel & " /MIR /XX " & $Nixkopieren_1, '', @SW_SHOW)

    oder so...

    RunWait(StringFormat('ROBOCOPY "%s" "%s" /MIR /XX "%s"', $Quelle, $Ziel, $Nixkopieren_1), '', @SW_SHOW)

  • C:\>netsh wlan disconnect per AutoIt???

    • Bitnugger
    • 14. Juni 2018 um 16:10

    @Musashi 

    Ein paar Anmerkungen zu _GetCMDOutput.au3

    #include <WinAPIFiles.au3> ; ab AutoIt v3.3.14.3 #include <WinAPIConv.au3>

    ...ist überflüssig, weil du OemToChar direkt via DllCall aufrufst.

    Run(@COMSPEC & ' /c ' & $sCommand, ...

    @COMSPEC wird nur benötigt, wenn mit $sCommand auch interne Befehle wie echo, if, for oder goto aufgerufen werden, für die es keine *.exe gibt. Bei netsh ist dies nicht der Fall.

    c:\>where netsh

    C:\Windows\System32\netsh.exe

    If Not @error Then

    Wir wollen wissen, ob es funktioniert hat... und nicht, ob kein Fehler aufgetreten ist. ;)

    If $iPID Then

    Seit einiger Zeit benutze ich aber nicht mehr OemToChar, sondern _WinAPI_WideCharToMultiByte. Das hat den Vorteil, dass Textausgaben in SciTE und in der Eingabeaufforderung auch UTF-8-Zeichen enthalten dürfen. Dafür müssen allerdings drei Einstellungen geändert werden. Kleiner Nachteil dabei ist, dass bereits vorhandene Scripte von ANSI nach UTF-8 konvertiert werden müssen. Dafür habe ich aber auch ein Script.

    SciTEUser.properties:

    code.page=65001

    output.code.page=65001

    Eingabeaufforderung:

    Eigenschaften ==> Schriftart ==> hier eine TrueType-Schriftart auswählen, die UTF-8-Zeichen enthält. Ich habe bei mir z.B. NSimSun ausgewählt.

    Hier nun meine Funktionen für die Textausgabe in UTF-8:

    AutoIt
    #include <WinAPIFiles.au3> ; ab AutoIt v3.3.14.3 #include <WinAPIConv.au3>
    
    Func _CW($sText)
        ConsoleWrite(StringFormat(_WideCharToMultiByte($sText)) & @CRLF)
    EndFunc   ;==>_CW
    
    ; Konvertiert den Text, damit Umlaute und Sonderzeichen in SciTE und in der Eingabeaufforderung korrekt dargestellt werden!
    Func _WideCharToMultiByte($vText, $iCodePage = 65001, $bRetString = True)
        $vText = String($vText) ; Damit _WinAPI_WideCharToMultiByte nicht abstürzt, wenn kein String übergeben wurde!
        
        ; SciTE output.code.page = 65001 (UTF-8), Eingabeaufforderung = 65001 (UTF-8) + Schriftart, die UTF-8-Zeichen enthält!
    ;~     Return _WinAPI_WideCharToMultiByte($vText, $iCodePage, $bRetString)
    
        ; SciTE output.code.page = 65001 (UTF-8), Eingabeaufforderung = 1 (OEM 850) + Schriftart, die UTF-8-Zeichen enthält! (Default)
        Return _WinAPI_WideCharToMultiByte($vText, @Compiled ? 1 : $iCodePage, $bRetString)
    EndFunc   ;==>_WideCharToMultiByte
    Alles anzeigen
  • Pfadangaben merken

    • Bitnugger
    • 13. Juni 2018 um 20:05

    Hallo autoiter

    Dann tubsids soll fragen Harry Potter nach gutem Zauber für Lösung...

  • Pfadangaben merken

    • Bitnugger
    • 13. Juni 2018 um 18:07
    Zitat von tubsids

    Wie macht man Pfadangabe dynamisch, d.h. beim letzten Script-Start den Pfad zu merken. Dabei ist auch interessant , mehreren Pfadangaben (für unterschiedlichen Angaben) unterscheiden zu können.

    Hier ein Beispiel...

    AutoIt
    ;-- TIME_STAMP   2018-06-13 18:04:14   v 0.1
    
    #Region    ;************ Includes ************
    #Include <FileConstants.au3>
    #Include <Array.au3>
    #EndRegion ;************ Includes ************
    
    OnAutoItExitRegister('_Exit')
    
    Global $g_sIniFile = StringRegExpReplace(@ScriptFullPath, '(.+)\..+', '\1.ini')
    
    Global $g_aFileOpenDialog[0][2]
    
    Global $g_sExcelFileLink1, $g_sExcelFileLink2, $g_sExcelFileLink3
    
    ; Anstelle 1, 2, 3 kannst du hier auch die ID eines Buttons angeben.
    $g_sExcelFileLink1 = _FileOpenDialog(1, 'Select file', 'C:\', 'Files (*.xls;*.xlsx;*.xlsm)')
    $g_sExcelFileLink2 = _FileOpenDialog(2, 'Select file', 'D:\', 'Files (*.xls;*.xlsx;*.xlsm)')
    $g_sExcelFileLink3 = _FileOpenDialog(3, 'Select file', 'F:\', 'Files (*.xls;*.xlsx;*.xlsm)')
    ConsoleWrite("$g_sExcelFileLink1 --> " & $g_sExcelFileLink1 & @CRLF)
    ConsoleWrite("$g_sExcelFileLink2 --> " & $g_sExcelFileLink2 & @CRLF)
    ConsoleWrite("$g_sExcelFileLink3 --> " & $g_sExcelFileLink3 & @CRLF)
    _ArrayDisplay($g_aFileOpenDialog, '$g_aFileOpenDialog', '', 0, Default, 'ID|InitDir')
    
    Func _FileOpenDialog($iID, $sTitle = 'Select file', $sInitDir = @ScriptDir, $sFilter = 'All (*.*)', $sOptions = BitOR($FD_FILEMUSTEXIST, $FD_PATHMUSTEXIST), $sDefaultName = '', $hWnd = '')
        If Not UBound($g_aFileOpenDialog) Then
            Local $aSection = IniReadSection($g_sIniFile, 'FileOpenDialog')
            If Not @error Then
                For $i = 1 To $aSection[0][0] Step 1
                    _ArrayAdd($g_aFileOpenDialog, $aSection[$i][1])
                Next
            EndIf
        EndIf
    
        Local $iIndex = _ArraySearch($g_aFileOpenDialog, $iID, 0, 0, 0, 0, 1, 0)
        If @error Then $iIndex = _ArrayAdd($g_aFileOpenDialog, $iID & '|' & $sInitDir)
        $sInitDir = $g_aFileOpenDialog[$iIndex][1]
        $hWnd = $hWnd ? $hWnd : DllCall("user32.dll", "hwnd", "GetDesktopWindow")[0]
    
        Local $sWorkingDir = @WorkingDir, $sFileLink = FileOpenDialog($sTitle, $sInitDir, $sFilter, $sOptions, $sDefaultName, $hWnd)
        ; Change the working directory (@WorkingDir) back to the old location as FileOpenDialog sets it to the last accessed folder.
        FileChangeDir($sWorkingDir)
    
        If $sFileLink Then $g_aFileOpenDialog[$iIndex][1] = StringRegExpReplace($sFileLink, '(.+\\).+', '\1')
    
        Return $sFileLink
    EndFunc  ;==>_FileOpenDialog
    
    Func _Exit()
        If UBound($g_aFileOpenDialog) Then
            For $i = 0 To UBound($g_aFileOpenDialog) -1 Step 1
                IniWrite($g_sIniFile, 'FileOpenDialog', StringFormat('Dialog_%03i', $i), $g_aFileOpenDialog[$i][0] & '|' & $g_aFileOpenDialog[$i][1])
            Next
        EndIf
    EndFunc  ;==>_Exit
    Alles anzeigen
  • GuiSetIconEx

    • Bitnugger
    • 10. Juni 2018 um 23:58

    Ich mache das mit WindowBlinds und habe den Style Trio eingestellt.

  • GuiSetIconEx

    • Bitnugger
    • 10. Juni 2018 um 23:03

    Auf Windows 10 könnte es am Skin liegen, aber auf Windows 7 habe ich den Default-Skin eingestellt und da geht es ja auch nicht.

    Windows 7: Microsoft Windows [Version 6.1.7601]

    Windows 10: Microsoft Windows [Version 10.0.17134.81]

    Beide X64

    AutoIt 3.3.14.5

  • GuiSetIconEx

    • Bitnugger
    • 10. Juni 2018 um 20:01

    Oben links im Fenster wird bei mir auf Windows 7/10 dann gar kein Icon angezeigt.

    pasted-from-clipboard.png

  • Wie ändere ich beim erneuten Aktivieren des Scripts seine Funktion, während es bereits läuft

    • Bitnugger
    • 9. Juni 2018 um 21:24

    Hier mal eine minimalistische Version... den Rest bekommst du wohl selbst hin...

    AutoIt
    ;-- TIME_STAMP   2018-06-09 21:24:13   v 0.1
    
    #Region ;************ Includes ************
    #include <Misc.au3>
    #include <GUIConstantsEx.au3>
    #EndRegion ;************ Includes ************
    
    Global $g_hOBS ; OBS Studio 21.1.0 / Open Broadcaster Software
    
    If _Singleton(@ScriptName, 1) Then
        _Main()
        ; Juhu, ich bin allein...
    Else
        ; Es läuft bereits eine Instanz...
        WinClose(WinGetHandle(@ScriptName)) ; Dann beenden...
        _Main()
    EndIf
    
    Func _Main()
        OnAutoItExitRegister('_Exit')
    
        #Region - GUI Create
        Local $hGUI = GUICreate(@ScriptName)
        GUISetBkColor(0x280000)
        GUISetState()
        #EndRegion - GUI Create
    
        _SetHotKey('+{f3}', '_Replay')
        _SetHotKey('+{f4}', '_ExtendTime')
    
        $g_hOBS = ControlGetHandle('OBS 21.1.0 (64bit, windows) - Profil: Unbenannt - Szenen: Unbenannt', '', '[CLASS:Qt5QWindowIcon; INSTANCE:1]')
        ControlSend($g_hOBS, '', '', '+{f12}') ; start recording
        AdlibRegister('_StopRecord', 1000 * 60 * 1)
    
        #Region - GUI SwitchLoop
        While True
            Switch GUIGetMsg() ; nachschauen, ob eine Message für unsere GUI angekommen ist
                Case $GUI_EVENT_CLOSE
                    Exit
    ;~             Case
    ;~             Case
    ;~             Case
    ;~             Case Else
            EndSwitch
        WEnd
        #EndRegion - GUI SwitchLoop
    EndFunc   ;==>_Main
    
    Func _StopRecord()
        AdlibUnRegister('_StopRecord')
        ControlSend($g_hOBS, '', '', '+{f11}')
    EndFunc   ;==>_StopRecord
    
    Func _ExtendTime()
        AdlibRegister('_StopRecord', 1000 * 60 * 1) ; stop recording after 1 minutes
    EndFunc   ;==>_ExtendTime
    
    Func _Replay()
        ControlSend($g_hOBS, '', '', '+{f6}')
    EndFunc   ;==>_Replay
    
    Func _SetHotKey($sHotKey, $sFunction)
        If Not HotKeySet($sHotKey, $sFunction) Then Exit MsgBox(16, @ScriptName, 'HotKey "' & $sHotKey & '" konnte nicht gesetzt werden!')
    EndFunc
    
    Func _Exit()
        ; Hier kannst du deine Einstellungen (z. B. Fensterposition) speichern, bevor Exit ausgeführt wird.
    
        ; HotKeys wieder freigeben, damit die nächste Instanz sie wieder aktivieren kann.
        HotKeySet('+{f3}')
        HotKeySet('+{f4}')
    EndFunc   ;==>_Exit
    Alles anzeigen
  • Keine Kontextmenüs von Scite bzw. Autoit im Win10 explorer

    • Bitnugger
    • 7. Juni 2018 um 22:34

    Lies mal hier...

  • Keine Kontextmenüs von Scite bzw. Autoit im Win10 explorer

    • Bitnugger
    • 7. Juni 2018 um 21:45

    Sieht das bei dir auch so aus?

    sciconf.png

  • Video in GUI in Dauerschleife laufen lassen?

    • Bitnugger
    • 6. Juni 2018 um 15:00
    AutoIt
    ;-- TIME_STAMP   2018-06-06 14:58:58   v 0.1
    
    #Region ;************ Includes ************
    ;~ #include <AutoItConstants.au3>
    ;~ #include <GUITab.au3>
    ;~ #include <File.au3>
    ;~ #include <Array.au3>
    ;~ #include <Word.au3>
    ;~ #include <WordConstants.au3>
    ;~ #include <Clipboard.au3>
    ;~ #include <Misc.au3>
    ;~ #include <MsgBoxConstants.au3>
    ;~ #include <ComboConstants.au3>
    ;~ #include <StaticConstants.au3>
    ;~ #include <ButtonConstants.au3>
    ;~ #include <IE.au3>
    ;~ #include <Process.au3>
    ;~ #include <WinAPIFiles.au3>
    ;~ #include <WinAPISys.au3>
    ;~ #include <WinAPI.au3>
    ;~ #include <date.au3>
    ;~ #include <String.au3>
    ;~ #include <StringConstants.au3>
    ;~ #include <MenuConstants.au3>
    ;~ #include <AVIConstants.au3>
    ;~ #include <ProgressConstants.au3>
    ;~ #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #EndRegion ;************ Includes ************
    
    #Region ### START Koda GUI section ### Form=E:\Arbeit\Batchdateien\Scripte\BatteryLifeTest\Form1.kxf
    
    $Form1 = GUICreate("Test by HaSc (C) 2018", @DesktopWidth, @DesktopHeight, -1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_MAXIMIZEBOX, $WS_SIZEBOX, $WS_THICKFRAME, $WS_MAXIMIZE, $WS_TABSTOP))
    GUICtrlSetResizing(-1, $GUI_DOCKAUTO)
    GUISetBkColor(0xFFFFFF)
    $StartStopbutton = GUICtrlCreateButton("Start", 164, 856, 249, 57)
    $Exit = GUICtrlCreateButton("Exit", 424, 856, 249, 57)
    GUICtrlSetFont(-1, 12, 800, 0, "Arial")
    GUICtrlSetResizing(-1, $GUI_DOCKAUTO)
    $oWMP = ObjCreate("WMPLayer.ocx") ;mediaplayer-objekt erstellen -> für die Einstellungen: new-object -comobject Wmplayer.ocx | get-member in Powershell ausführen
    GUICtrlCreateObj($oWMP, 768, 8, 1120, 921) ;objekt ins gui setzen und grösse angeben
    GUICtrlSetResizing(-1, $GUI_DOCKAUTO)
    GUISetState(@SW_SHOW)
    
    #EndRegion ### END Koda GUI section ###
    
    While 1
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE, $Exit
                Exit
            Case $StartStopbutton
                GUICtrlSetData($StartStopbutton, 'Stop')
                Batterytest()
        EndSwitch
    WEnd
    
    Func Batterytest()
        Local $hTimer, $iTimeOut = 3000
        While 1
            $oWMP.URL = @ScriptDir & "\Wildlife.wmv" ;url/link zur avi/mp3/wma/wmv/... datei
            $oWMP.uiMode = "full" ;videos anzeigen lassen und andere funktionen ausblenden (auf "full" setzen für alles anzeigen)
            $oWMP.settings.mute = True
            $oWMP.controls.play() ;abspielen (Play Taste)
    
            $hTimer = TimerInit()
            Do
                If $oWMP.Playstate = 3 Then ExitLoop
                Sleep(500)
            Until TimerDiff($hTimer) < $iTimeOut ; Wenn nach 3 Sekunden das Video nicht gestartet wurde, ist evtl. ein Fehler aufgetreten.
            If $oWMP.Playstate <> 3 Then Return SetError(1, 0, False)
    
            While $oWMP.Playstate = 3
                Switch GUIGetMsg()
                    Case $GUI_EVENT_CLOSE, $Exit
                        Exit
                    Case $StartStopbutton
                        $oWMP.controls.stop()
                        Return GUICtrlSetData($StartStopbutton, 'Start')
                EndSwitch
            WEnd
        WEnd
    EndFunc   ;==>Batterytest
    Alles anzeigen
  • _IsPressed mit ß

    • Bitnugger
    • 6. Juni 2018 um 04:02

    Hiermit kannst du dir die gedrückte Taste via ToolTip anzeigen lassen... Abbruch mit ESC!

    AutoIt
    ;-- TIME_STAMP   2018-06-06 04:00:06   v 0.1
    
    #Region    ;************ Includes ************
    #Include <WindowsConstants.au3>
    #include <Misc.au3>
    #EndRegion ;************ Includes ************
    
    Local $hDLL = DllOpen("user32.dll"), $hGUI = GUICreate('', 1, 1, -1, -1, $WS_POPUP), $x = @DesktopWidth / 2 - 50,  $y = @DesktopHeight / 2
    ToolTip('Die gedrückte Taste wird als Tooltip angezeigt... Abbruch mit ESC!', $x, $y)
    Sleep(1000)
    
    While True
        For $i = 1 To 0xFF
            If _IsPressed(Hex($i, 2), $hDLL) Then
                If $i = 0x1B Then ExitLoop 2 ; ESC
                ToolTip('_IsPressed: ' & Hex($i, 2) & @CRLF, $x, $y)
                While _IsPressed(Hex($i, 2), $hDLL)
                    Sleep(250)
                WEnd
            EndIf
        Next
        If Not WinActive($hGUI) Then WinActivate($hGUI)
        Sleep(10)
    WEnd
    
    ToolTip('')
    DllClose($hDLL)
    Alles anzeigen

    Wenn dein Script eine GUI hat und die Taste(n) nur abgefragt werden sollen, wenn diese aktiv ist, solltest du besser GUISetAccelerators verwenden.

  • _IsPressed mit ß

    • Bitnugger
    • 5. Juni 2018 um 21:21

    Auf einer engl. Tastatur... er hat aber sicher eine deutsche... und da ist das "-" doch an einer anderen Stelle?!

    Bei mir (deutsche Tastatur) reagiert _IsPressed bei $VK_OEM_8 = 0xDF, wenn ich "ß" drücke.

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™