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

  • _OL_Wrapper_SendMail gibt den Fehler 6002 aus

    • Bitnugger
    • 19. September 2020 um 06:57
    Zitat von Daniel

    Was ich noch nicht ganz verstehe, warum es von heut auf morgen nicht mehr geht,

    es wurde in der Zeit auch kein Update gefahren.

    Mit "kein Update gefahren" meinst du wohl "kein Windows-Update"... doch wenn du es in Outlook nicht umgestellt hast, macht es das unabhängig davon automatisch im Hintergrund bei jedem Start.

    Um dir die Version von Outlook anzeigen zu lassen, gibst du in der Outlook-Hilfe einfach "version" ein... dort steht dann, wie/wo du sie ablesen kannst. Ich habe dann wohl eine andere/älterere Version als du...

    "C:\Program Files (x86)\Microsoft Office\root\Office16\OUTLOOK.EXE"

    Outlook_Version.png Outlook_Lister.png

    In der MsBox (dann ist es ein COM-Error) wird als Ursache WinDescription = Falscher Parameter angegeben.

    Welcher Parameter das ist, kannst du evtl. herausbekommen, wenn du die Funktion nur mit den ersten beiden (weniger geht nicht) Parametern aufrufst... und dann einen weiteren anhängst, bis der Fehler wieder auftritt:

    _OL_Wrapper_SendMail($oOutlook, $sCurrentUser, "", "", "Geschriebene Stunden", _ArrayToString($g_aZeiten, ' ', 1, -1, '<br>'), "", $olFormatHTML, $olImportanceHigh)

    _OL_Wrapper_SendMail($oOutlook, $sCurrentUser) ; Test 1

    _OL_Wrapper_SendMail($oOutlook, $sCurrentUser, "") ; Test 2

    ...

    Oder du testest es so:

    AutoIt
    ;-- TIME_STAMP   2020-09-19 06:56:02   v 0.1
    
    Opt('MustDeclareVars', 1)
    
    #include <OutlookEX.au3>
    
    _OL_ErrorNotify(2) ; 2  - Enable Debugging. Output the debug info to a MsgBox
    
    Global $g_aZeiten[13][2] = [[12], _
            ['08:00', 'Rainer'], ['08:00', 'Peter'], ['08:00', 'Uwe'     ],    ['08:00', 'Dieter'   ],    ['08:00', 'Jens' ], ['08:00', 'Udo'   ], _
            ['08:00', 'Jörg'  ], ['08:00', 'Franz'], ['08:00', 'Wolfgang'], ['08:00', 'Siegfried'], ['08:00', 'Willi'], ['08:00', 'Günter']]
    
    Global $oOutlook = _OL_Open()
    If @error Then Exit MsgBox(16, "OutlookEX UDF", "Error creating a connection to Outlook. @error = " & @error & ", @extended = " & @extended)
    
    Global $sCurrentUser = $oOutlook.GetNameSpace("MAPI").CurrentUser.Name
    If @error Or $sCurrentUser = "" Then Exit MsgBox(16, "OutlookEX UDF: _OutlookEX", "Error $sCurrentUser = " & $sCurrentUser & " @error = " & @error & ", @extended: " & @extended)
    
    ;~ _OL_Wrapper_SendMail($oOutlook, $sCurrentUser, "", "", "Geschriebene Stunden", _ArrayToString($g_aZeiten, ' ', 1, -1, '<br>'), "", $olFormatHTML, $olImportanceHigh)
    __OL_Wrapper_SendMail($oOutlook, $sCurrentUser, "", "", "Geschriebene Stunden", _ArrayToString($g_aZeiten, ' ', 1, -1, '<br>'), "", $olFormatHTML, $olImportanceHigh)
    If @error Then Exit MsgBox(16, "OutlookEX UDF: _OutlookSendMail Wrapper Script", "Error sending mail. @error = " & @error & ", @extended: " & @extended)
    
    _OL_Close($oOutlook)
    
    Func __OL_Wrapper_SendMail($oOL, $sTo = "", $sCc = "", $sBCc = "", $sSubject = "", $sBody = "", $sAttachments = "", $iBodyFormat = $olFormatPlain, $iImportance = $olImportanceNormal)
    
        If $sTo = Default Then $sTo = ""
        If $sCc = Default Then $sCc = ""
        If $sBCc = Default Then $sBCc = ""
        If $sSubject = Default Then $sSubject = ""
        If $sBody = Default Then $sBody = ""
        If $sAttachments = Default Then $sAttachments = ""
        If $iBodyFormat = Default Then $iBodyFormat = $olFormatPlain
        If $iImportance = Default Then $iImportance = $olImportanceNormal
        If Not IsInt($iBodyFormat) Then SetError(1, 0, 0)
        If StringStripWS($sBody, 3) = "" Then SetError(2, 0, 0)
        If StringStripWS($sTo, 3) = "" And StringStripWS($sCc, 3) = "" And StringStripWS($sBCc, 3) = "" Then SetError(3, 0, 0)
        ; Access the default outbox folder
        Local $aFolder = _OL_FolderAccess($oOL, "", $olFolderDrafts)
        If @error Then Return SetError(@error + 1000, @extended, 0)
        ConsoleWrite('+ _OL_FolderAccess OK' & @CRLF)
        ; Create a mail item in the default folder
        Local $oItem = _OL_ItemCreate($oOL, $olMailItem, $aFolder[1], "", "Subject=" & $sSubject, "BodyFormat=" & $iBodyFormat, "Importance=" & $iImportance)
        If @error Then Return SetError(@error + 2000, @extended, 0)
        ConsoleWrite('+ _OL_ItemCreate OK' & @CRLF)
        ; Set the body according to $iBodyFormat
        If $iBodyFormat = $olFormatHTML Then
            _OL_ItemModify($oOL, $oItem, Default, "HTMLBody=" & $sBody)
        Else
            _OL_ItemModify($oOL, $oItem, Default, "Body=" & $sBody)
        EndIf
        If @error Then Return SetError(@error + 3000, @extended, 0)
        ConsoleWrite('+ _OL_ItemModify OK' & @CRLF)
        ; Add recipients (to, cc and bcc)
        Local $aRecipients
        If $sTo <> "" Then
            $aRecipients = StringSplit($sTo, ";", 2)
            _OL_ItemRecipientAdd($oOL, $oItem, Default, $olTo, $aRecipients)
            If @error Then Return SetError(@error + 4000, @extended, 0)
            ConsoleWrite('+ _OL_ItemRecipientAdd $sTo OK' & @CRLF)
        EndIf
        If $sCc <> "" Then
            $aRecipients = StringSplit($sCc, ";", 2)
            _OL_ItemRecipientAdd($oOL, $oItem, Default, $olCC, $aRecipients)
            If @error Then Return SetError(@error + 4000, @extended, 0)
            ConsoleWrite('+ _OL_ItemRecipientAdd $sCc OK' & @CRLF)
        EndIf
        If $sBCc <> "" Then
            $aRecipients = StringSplit($sBCc, ";", 2)
            _OL_ItemRecipientAdd($oOL, $oItem, Default, $olBCC, $aRecipients)
            If @error Then Return SetError(@error + 4000, @extended, 0)
            ConsoleWrite('+ _OL_ItemRecipientAdd $sBCc OK' & @CRLF)
        EndIf
        ; Add attachments
        If $sAttachments <> "" Then
            Local $aAttachments = StringSplit($sAttachments, ";", 2)
            _OL_ItemAttachmentAdd($oOL, $oItem, Default, $aAttachments)
            If @error Then Return SetError(@error + 5000, @extended, 0)
            ConsoleWrite('+ _OL_ItemAttachmentAdd $sAttachments OK' & @CRLF)
        EndIf
        ; Send mail
        _OL_ItemSend($oOL, $oItem, Default)
        If @error Then Return SetError(@error + 6000, @extended, 0)
        ConsoleWrite('+ _OL_ItemSend OK' & @CRLF)
        Return $oItem
    
    EndFunc   ;==>__OL_Wrapper_SendMail
    Alles anzeigen

    Die Ausgabe sollte dann so aussehen, wenn kein Fehler aufgetreten ist:

    + _OL_FolderAccess OK 

    + _OL_ItemCreate OK 

    + _OL_ItemModify OK 

    + _OL_ItemRecipientAdd $sTo OK 

    + _OL_ItemSend OK

  • _OL_Wrapper_SendMail gibt den Fehler 6002 aus

    • Bitnugger
    • 17. September 2020 um 20:13

    Ich habe das Script in Post #4 noch ein wenig geändert... teste es mal bitte und poste hier die Ausgaben, wenn damit auch wieder ein Fehler auftritt.

  • Bildschirminhalt einfrieren

    • Bitnugger
    • 17. September 2020 um 16:40

    Und so:

    AutoIt
    ;-- TIME_STAMP   2020-09-17 16:30:18   v 0.1
    
    #Region    ;************ Includes ************
    #include <GUIConstantsEx.au3>
    #include <ScreenCapture.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Include <Array.au3>
    #Include <WinAPISysWin.au3>
    #include <WinAPIGdi.au3>
    #include <WinAPIGdiDC.au3>
    #EndRegion ;************ Includes ************
    
    Opt('MustDeclareVars', 1)
    
    ;~ Global $sScreenCapture = "M:\DPIAwareness.jpg"
    Global $sScreenCapture = "D:\DPIAwareness.jpg"
    
    ; enum _PROCESS_DPI_AWARENESS -> https://msdn.microsoft.com/en-us/library/windows/desktop/dn280512(v=vs.85).aspx
    Global Enum $DPI_AWARENESS_INVALID = -1, $PROCESS_DPI_UNAWARE = 0, $PROCESS_SYSTEM_DPI_AWARE, $PROCESS_PER_MONITOR_DPI_AWARE
    Global Enum $Context_UnawareGdiScaled = -5, $Context_PerMonitorAwareV2, $Context_PerMonitorAware, $Context_SystemAware, $Context_Unaware
    Global Const $WM_DPICHANGED = 0x02E0, $WM_GETDPISCALEDSIZE = 0x02E4
    
    Global $aAufloesung = _GetGlobalResolution()
    If @error Then Exit @error
    Global $aRec = $aAufloesung[0]
    Global $aPos = $aAufloesung[1]
    ConsoleWrite('@Desktop = ' & @DesktopWidth & ',' & @DesktopHeight & @CRLF)
    ConsoleWrite('$aRec    = ' & _ArrayToString($aRec, ', ') & @CRLF)
    ConsoleWrite('$aPos    = ' & _ArrayToString($aPos, ', ') & @CRLF)
    
    _WinAPI_SetDPIAwareness()
    Local Const $hBitmap = _ScreenCapture_Capture("", $aRec[0], $aRec[1], $aRec[2] -1, $aRec[3] -1, False)
    Local Const $hGUI = GUICreate("", $aPos[2], $aPos[3], $aPos[0], $aPos[1], $WS_POPUP, $WS_EX_TOPMOST)
    Local Const $iPic = GUICtrlCreatePic("", 0, 0, $aPos[2], $aPos[3])
    _WinAPI_DeleteObject(GUICtrlSendMsg($iPic, $STM_SETIMAGE, $IMAGE_BITMAP, $hBitmap))
    GUISetState()
    _ScreenCapture_Capture($sScreenCapture, $aRec[0], $aRec[1], $aRec[2] -1, $aRec[3] -1, False) ; Bild speichern
    
    Do
        If GUIGetMsg() = $GUI_EVENT_CLOSE Then
            _WinAPI_DeleteObject($hBitmap)
            GUIDelete($hGUI)
            ShellExecute($sScreenCapture)
            Exit
        EndIf
    Until False
    
    Func _WinAPI_SetDPIAwareness($hGUI = 0)
        Switch @OSBuild
            Case 6000 To 9199
                If Not DllCall("user32.dll", "bool", "SetProcessDPIAware") Then Return SetError(1, 0, 0) ;requires Vista+ / Server 2008+
                Return 1
            Case 9200 To 13999
                _WinAPI_SetProcessDpiAwareness($PROCESS_PER_MONITOR_DPI_AWARE) ;requires Win 8.1+ / Server 2012 R2+
                If @error Then Return SetError(2, 0, 0)
                Return 1
            Case @OSBuild > 13999
                #cs
                    Context_Unaware = ((DPI_AWARENESS_CONTEXT)(-1)),
                    Context_SystemAware = ((DPI_AWARENESS_CONTEXT)(-2)),
                    Context_PerMonitorAware = ((DPI_AWARENESS_CONTEXT)(-3)),
                    Context_PerMonitorAwareV2 = ((DPI_AWARENESS_CONTEXT)(-4)),
                    Context_UnawareGdiScaled = ((DPI_AWARENESS_CONTEXT)(-5))
                #ce
                _WinAPI_SetProcessDpiAwarenessContext($Context_PerMonitorAwareV2, $hGUI, 1)
                If @error Then Return SetError(3, @error, 0)
                Return 1
        EndSwitch
        Return -1
    EndFunc   ;==>_WinAPI_SetDPIAwareness
    
    Func _WinAPI_SetProcessDpiAwareness($DPIAware) ;https://docs.microsoft.com/en-us/windows/desktop/api/shellscalingapi/nf-shellscalingapi-setprocessdpiawareness
        Local $aResult = DllCall("Shcore.dll", "long", "SetProcessDpiAwareness", "int", $DPIAware) ;requires Win 8.1+ / Server 2012 R2+
        If @error Then Return SetError(1, 0, 0)
        Return 1
    EndFunc   ;==>_WinAPI_SetProcessDpiAwareness
    
    Func _WinAPI_SetProcessDpiAwarenessContext($DPIAwareContext = $Context_PerMonitorAware, $hGUI = 0, $iMode = 1)
        $DPIAwareContext = ($DPIAwareContext < -5) ? -5 : ($DPIAwareContext > -1) ? -1 : $DPIAwareContext
        $iMode = ($iMode < 1) ? 1 : ($iMode > 3) ? 3 : $iMode
        Switch $iMode
            Case 1
                Local $hDC = _WinAPI_GetDC($hGUI)
                Local $aResult1 = DllCall("user32.dll", "int", "GetDpiFromDpiAwarenessContext", "ptr", $hDC) ;requires Win10 v1803+ / Server 2016+
                If @error Or Not IsArray($aResult1) Then Return SetError(11, 0, 0)
                _WinAPI_ReleaseDC(0, $hDC)
                ;https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-setprocessdpiawarenesscontext
                Local $aResult = DllCall("user32.dll", "Bool", "SetProcessDpiAwarenessContext", "int", $aResult1[0] + $DPIAwareContext) ;requires Win10 v1703+ / Server 2016+
                If @error Or Not IsArray($aResult) Then Return SetError(12, 0, 0)
            Case 2
    ;~             If Not $hGUI Then $hGUI = WinGetHandle(AutoItWinGetTitle())
                Local $aResult2 = DllCall("user32.dll", "int", "GetWindowDpiAwarenessContext", "ptr", $hGUI) ;requires Win10 v1607+ / no server support
                If @error Or Not IsArray($aResult2) Then Return SetError(21, 0, 0)
                Local $aResult = DllCall("user32.dll", "Bool", "SetProcessDpiAwarenessContext", "int", $aResult2[0] + $DPIAwareContext) ;requires Win10 v1703+ / Server 2016+
                If @error Or Not IsArray($aResult) Then Return SetError(22, 0, 0)
            Case 3
                Local $aResult31 = DllCall("user32.dll", "ptr", "GetThreadDpiAwarenessContext")    ;requires Win10 v1607+ / no server support
                If @error Or Not IsArray($aResult31) Then Return SetError(31, 0, 0)
                Local $aResult32 = DllCall("user32.dll", "int", "GetAwarenessFromDpiAwarenessContext", "ptr", $aResult31[0]) ;requires Win10 v1607+ / no server support
                If @error Or Not IsArray($aResult32) Then Return SetError(32, 0, 0)
                Local $aResult = DllCall("user32.dll", "Bool", "SetThreadDpiAwarenessContext", "int", $aResult32[0] + $DPIAwareContext) ;requires Win10 v1607+ / no server support
                If @error Or Not IsArray($aResult) Then Return SetError(33, 0, 0)
        EndSwitch
    
        Return 1
    EndFunc   ;==>_WinAPI_SetProcessDpiAwarenessContext
    
    Func _GetGlobalResolution()
        Local $aRect[4], $aRes[2], $hWindow, $tWINDOWPLACEMENT, $tRECT
        $hWindow = _WinAPI_GetDesktopWindow()
        $tWINDOWPLACEMENT = _WinAPI_GetWindowPlacement($hWindow)
        If Not @error Then
            $tRECT = DllStructCreate($tagRECT, DllStructGetPtr($tWINDOWPLACEMENT, 'rcNormalPosition'))
            $aRect[0] = DllStructGetData($tRECT, 'left')
            $aRect[1] = DllStructGetData($tRECT, 'top')
            $aRect[2] = DllStructGetData($tRECT, 'right')
            $aRect[3] = DllStructGetData($tRECT, 'bottom')
            $aRes[0] = $aRect
            $aRes[1] = _WinAPI_GetPosFromRect($tRECT)
    
            Return $aRes
        Else
            Return SetError(1, 0, 0)
        EndIf
    EndFunc   ;==>_GetGlobalResolution
    Alles anzeigen
  • ListCtrl - GridLines?

    • Bitnugger
    • 17. September 2020 um 14:00
    Zitat von BugFix

    Eigentlich seltsam, dass dieser Style nicht im Modul enthalten ist. Ebenso fehlt LVS_EX_TRACKSELECT.

    Hier sind die versteckt:

    import winim/[inc\commctrl]

    ...

    LVS_EX_GRIDLINES* = 0x1
    LVS_EX_SUBITEMIMAGES* = 0x2
    LVS_EX_CHECKBOXES* = 0x4
    LVS_EX_TRACKSELECT* = 0x8

    ...

  • _OL_Wrapper_SendMail gibt den Fehler 6002 aus

    • Bitnugger
    • 17. September 2020 um 10:55

    Schöner wäre so:

    AutoIt
    #include <OutlookEX.au3>
    
    _OL_ErrorNotify(2)
    
    Global $g_aZeiten[13][2] = [[12], _
            ['08:00', 'Rainer'], ['08:00', 'Peter'], ['08:00', 'Uwe'     ], ['08:00', 'Dieter'   ], ['08:00', 'Jens' ], ['08:00', 'Udo'   ], _
            ['08:00', 'Jörg'  ], ['08:00', 'Franz'], ['08:00', 'Wolfgang'], ['08:00', 'Siegfried'], ['08:00', 'Willi'], ['08:00', 'Günter']]
    
    Global $g_sZeiten = _ArrayToString($g_aZeiten, ' ', 1, -1, '<br>')
    If @error <> 0 Then Exit MsgBox(16, "OutlookEX UDF", "Error by _ArrayToString($g_aZeiten, ...). @error = " & @error & ", @extended = " & @extended)
    
    Global $oOutlook = _OL_Open()
    If @error <> 0 Then Exit MsgBox(16, "OutlookEX UDF", "Error creating a connection to Outlook. @error = " & @error & ", @extended = " & @extended)
    
    Global $sCurrentUser = $oOutlook.GetNameSpace("MAPI").CurrentUser.Name
    If @error Or $sCurrentUser = "" Then Exit MsgBox(16, "OutlookEX UDF: _OutlookEX", "Error $sCurrentUser = " & $sCurrentUser & " @error = " & @error & ", @extended: " & @extended)
    
    _OL_Wrapper_SendMail($oOutlook, $sCurrentUser, "", "", "Geschriebene Stunden", $g_sZeiten, "", $olFormatHTML, $olImportanceHigh)
    If @error Then Exit MsgBox(16, "OutlookEX UDF: _OutlookSendMail Wrapper Script", "Error sending mail. @error = " & @error & ", @extended: " & @extended)
    
    _OL_Close($oOutlook)
    Alles anzeigen

    Evtl. reicht es, ein neues Profil anzulegen. Die Konten darin dann manuell anlegen, nicht mit Assistent - nur so weiß du genau, was gesetzt wird.

  • Such Hilfe zu Win 10 Problem - Potplayer "Benachrichtigung" nervt

    • Bitnugger
    • 17. September 2020 um 09:49
    Zitat von Professor Bernd

    Kannst du in deinem Code "podplayer.exe" durch "PotPlayerMini64.exe" ersetzen?

    Ja, ich kann das... und du sicher auch, wenn du dein Bestes gibst. ;)

    Evtl. kannst du die Fenster des PotPlayers aber auch am ClassName erkennen, wenn dieser unverwechselbar ist... was den Vorteil hätte, dass du dich nicht mit verschiedenen Exe-Namen herumschlagen musst.

    Wenn das Popup-Fenster lange genug aufbleibt, damit du mit der Maus drüberfahren kannst, kannst du dir die nötigen Infos dazu aus so holen:

    AutoIt
    ;-- TIME_STAMP   2020-09-17 09:47:22   v 0.1
    
    Opt('MustDeclareVars', 1)
    
    #include <WindowsConstants.au3>
    #include <Process.au3>
    #include <WinAPIProc.au3>
    #include <WinAPISysWin.au3>
    
    Global $sShow = '{F2}', $sHide = '!{F2}', $sESC = '{ESC}'
    
    _SetHotKey($sShow, '_HotKeyPressed')
    _SetHotKey($sHide, '_HotKeyPressed')
    _SetHotKey($sESC, '_HotKeyPressed')
    
    Global $g_tStruct = DllStructCreate($tagPOINT) ; Create a structure that defines the point to be checked.
    Global $hGUI = GUICreate(@ScriptName & ' - Show = ' & $sShow & ', Hide = ' & $sHide & ', Exit = ' & $sESC, @DesktopWidth - 200, 400)
    Global $aClientSize = WinGetClientSize($hGUI)
    Global $idEdit = GUICtrlCreateEdit('', 0, 0, $aClientSize[0], $aClientSize[1])
    GUICtrlSetFont(-1, 10, 800, 0, 'Courier New')
    GUISetState(@SW_SHOWMINIMIZED)
    SplashTextOn('', 'Press '&$sShow&' um Infos zu dem Fenster unter dem Cursor anzuzeigen, '&@CRLF&$sHide&' um die Info auszublenden, oder '&@CRLF&$sESC&' um das Script zu beenden.', $aClientSize[0] - 150, 90)
    ;~ ToolTip('Press '&$sShow&' um Infos zu dem Fenster unter dem Cursor anzuzeigen, '&$sHide&' um die Info auszublenden, oder '&$sESC&' um das Script zu beenden.', @DesktopWidth / 3, @DesktopHeight / 2)
    Sleep(3000)
    SplashOff()
    ;~ ToolTip('')
    Do
    Until GUIGetMsg() = -3
    Exit
    
    Func _SetHotKey($_sKey, $_sFuncName)
        If Not HotKeySet($_sKey, $_sFuncName) Then Exit MsgBox(16, @ScriptName, 'HotKey ' &$_sKey& ' konnte nicht gesetzt werden!')
        Return True
    EndFunc
    
    Func _HotKeyPressed()
        Switch @HotKeyPressed ; The last hotkey pressed.
            Case $sShow
                If _WinAPI_IsIconic($hGUI) Then GUISetState(@SW_RESTORE)
                DllStructSetData($g_tStruct, "x", MouseGetPos(0))
                DllStructSetData($g_tStruct, "y", MouseGetPos(1))
                Local $hChild = _WinAPI_WindowFromPoint($g_tStruct)
                Local $hParent = _WinAPI_GetAncestor($hChild, $GA_ROOT)
                Local $iPID = WinGetProcess($hParent)
                Local $sProcessFileName = _WinAPI_GetProcessFileName($iPID)
                Local $sProcessName     = _ProcessGetName($iPID)
                Local $sRuleName        = StringRegExpReplace($sProcessName, '(?i)(.*?)\.exe', '\1')
    
                GUICtrlSetData($idEdit, '')
                Local $sText
    ;~             $sText = GUICtrlRead($idEdit) & @CRLF & '@HotKeyPressed = ' & @HotKeyPressed & @CRLF
    ;~             $sText = '> @HotKeyPressed            ==>> ' & @HotKeyPressed & @CRLF
    
                If $hChild Then $sText &= '> $hChild (WindowFromPoint) ==>> ' & $hChild & ' (CLASS = ' & _WinAPI_GetClassName($hChild) & ')' & @CRLF
                $sText &= '> $hParent                  ==>> ' & $hParent & ' (CLASS = ' & _WinAPI_GetClassName($hParent) & ') ( Title = ' & WinGetTitle($hParent) & ')' & @CRLF
                $sText &= '> $iPID                     ==>> ' & $iPID & @CRLF
                $sText &= '> $sProcessFileName         ==>> ' & $sProcessFileName & @CRLF
                $sText &= '> $sProcessName             ==>> ' & $sProcessName & @CRLF
                $sText &= '> $sRuleName                ==>> ' & $sRuleName & @CRLF
                SplashTextOn('', 'Suche nach Firewallregeln, die im Regelname "'&$sRuleName&'" enthalten...', $aClientSize[0] - 50, 50)
    ;~             ToolTip('Suche nach Firewallregeln, die im Regelname "'&$sRuleName&'" beinhalten...', @DesktopWidth / 3, @DesktopHeight / 2)
                ; Ausgehende Firewallregeln suchen, die $sRuleName beinhalten
    ;~             Local $iPID = Run(@ComSpec & " /c " & 'netsh.exe advfirewall firewall show rule name=all dir=out|find /I "'&$sRuleName&'"', '', @SW_HIDE, $STDOUT_CHILD)
                Local $iPID = Run(@ComSpec & " /c " & 'netsh.exe advfirewall firewall show rule name=all dir=out|find /I "Regelname:"|find /I "'&$sRuleName&'"', '', @SW_HIDE, $STDOUT_CHILD)
                ProcessWaitClose($iPID)
                Local $sRead = StdoutRead($iPID)
                SplashOff()
    ;~             ToolTip('')
    
                ; Die Regel muss nicht zwingend den Namen der Exe beinhalten!
                If $sRead Then $sText &= @CRLF & 'Firewallregeln gefunden, die im Regelname "'&$sRuleName&'" enthalten...' & @CRLF & $sRead & @CRLF
    
                GUICtrlSetData($idEdit, $sText)
            Case $sHide
                If Not _WinAPI_IsIconic($hGUI) Then GUISetState(@SW_MINIMIZE)
            Case $sESC
                Exit
        EndSwitch
    EndFunc
    
    ; > $hChild (WindowFromPoint) ==>> 0x0002102C (CLASS = Internet Explorer_Server)
    ; > $hParent                  ==>> 0x00150FB0 (CLASS = HH Parent) ( Title = AutoIt Help (v3.3.14.5))
    ; > $iPID                     ==>> 16852
    ; > $sProcessFileName         ==>> C:\Program Files (x86)\AutoIt3\AutoIt3Help.exe
    ; > $sProcessName             ==>> AutoIt3Help.exe
    ; > $sRuleName                ==>> AutoIt3Help
    ;
    ; Firewallregeln gefunden, die im Regelname "AutoIt3Help" enthalten...
    ; Regelname:                               AutoIt3Help viewer (autoit3help.exe)
    Alles anzeigen
  • _OL_Wrapper_SendMail gibt den Fehler 6002 aus

    • Bitnugger
    • 16. September 2020 um 12:37

    Hm, das funktioniert so bei mir:

    AutoIt
    #include <OutlookEX.au3>
    
    Global $mitarbeiterzeit[13] = [12, '08:00', '08:00', '08:00', '08:00', '08:00', '08:00', '08:00', '08:00', '08:00', '08:00', '08:00', '08:00']
    Global $mitarbeiter[13]     = [12, 'Rainer', 'Peter', 'Uwe', 'Dieter', 'Jens', 'Udo', 'Jörg', 'Franz', 'Wolfgang', 'Siegfried', 'Willi', 'Günter']
    
    Global $oOutlook = _OL_Open()
    If @error <> 0 Then Exit MsgBox(16, "OutlookEX UDF", "Error creating a connection to Outlook. @error = " & @error & ", @extended = " & @extended)
    
    Global $sCurrentUser = $oOutlook.GetNameSpace("MAPI").CurrentUser.Name
    If @error Or $sCurrentUser = "" Then Exit MsgBox(16, "OutlookEX UDF: _OutlookEX", "Error $sCurrentUser = " & $sCurrentUser & " @error = " & @error & ", @extended: " & @extended)
    
    ;~ _OL_Wrapper_SendMail($oOutlook, $sCurrentUser, "", "", "Geschriebene Stunden", $mitarbeiterzeit[1]&" "&$mitarbeiter[1]&"<br>"&$mitarbeiterzeit[2]&" "&$mitarbeiter[2]&"<br>"&$mitarbeiterzeit[3]&" "&$mitarbeiter[3]&"<br>"&$mitarbeiterzeit[4]&" "&$mitarbeiter[4]&"<br>"&$mitarbeiterzeit[5]&" "&$mitarbeiter[5]&"<br>"&$mitarbeiterzeit[6]&" "&$mitarbeiter[6]&"<br>"&$mitarbeiterzeit[7]&" "&$mitarbeiter[7]&"<br>"&$mitarbeiterzeit[8]&" "&$mitarbeiter[8]&"<br>"&$mitarbeiterzeit[9]&" "&$mitarbeiter[9]&"<br>"&$mitarbeiterzeit[10]&" "&$mitarbeiter[10]&"<br>"&$mitarbeiterzeit[11]&" "&$mitarbeiter[11]&"<br>"&$mitarbeiterzeit[12]&" "&$mitarbeiter[12]&"<br>","" , $olFormatHTML, $olImportanceHigh)
    
    _OL_Wrapper_SendMail($oOutlook, $sCurrentUser, "", "", "Geschriebene Stunden", _SliceArraysToString($mitarbeiterzeit, $mitarbeiter), "", $olFormatHTML, $olImportanceHigh)
    If @error Then Exit MsgBox(16, "OutlookEX UDF: _OutlookSendMail Wrapper Script", "Error sending mail. @error = " & @error & ", @extended: " & @extended)
    
    _OL_Close($oOutlook)
    
    Func _SliceArraysToString($mitarbeiterzeit, $mitarbeiter)
        If UBound($mitarbeiterzeit) < 1 Or UBound($mitarbeiterzeit) <> UBound($mitarbeiter) Then Return SetError(1, 0, '')
        Local $sRet
        For $i = 1 To UBound($mitarbeiter) -1 Step 1
            $sRet &= $mitarbeiterzeit[$i]&" "&$mitarbeiter[$i]&"<br>"
        Next
        Return $sRet
    EndFunc
    Alles anzeigen

    @extended = -2147024809 ==>> 0x80070057

    OLEX.png

  • Such Hilfe zu Win 10 Problem - Potplayer "Benachrichtigung" nervt

    • Bitnugger
    • 15. September 2020 um 06:07

    Sicherer als Einträge in die host Datei zu schreiben, die bei neueren Version des Programms womöglich nicht mehr greifen, ist das Sperren des Programms mit der Firewall.

    ;~ Eine ausgehende Regel für "PotPlayerMini64.exe" hinzufügen:

    netsh advfirewall firewall add rule name="PotPlayerMini64" dir=out action=block program="PotPlayerMini64.exe"

    ;~Eine Regel löschen:

    netsh advfirewall firewall delete rule name="PotPlayerMini64" dir=out program="PotPlayerMini64.exe"

    Das Popup-Fenster finden - als Inspiration:

    AutoIt
    ;-- TIME_STAMP   2020-09-15 06:10:53   v 0.1
    
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Change2CUI=y
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    
    Opt('MustDeclareVars', 1)
    
    #include <GUIConstantsEx.au3>
    #include <Array.au3>
    #include <Debug.au3>
    #include <WinAPIProc.au3>
    #include <WinAPISysWin.au3>
    
    Global $bDEBUG = True ; $iPID: True = @AutoItPID, False = ProcessWait('PotPlayerMini64.exe')
    
    ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ;~ "PotPlayerMini64.exe" starten und warten, bis das Popup erscheint, dann dieses Script starten
    ;~ und die gewünschten Einträge aus _DebugArrayDisplay (ohne Header) in die Zwischenablage kopieren,
    ;~ um sie in einer Ini zu speichern!
    ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    
    _OpenPotPlayer() ; Nur für Demo - anderfalls nur _CheckPotPlayer() aufrufen!!!
    ;~ _CheckPotPlayer()
    
    Func _CheckPotPlayer()
        ConsoleWrite('@@ (26) :(' & @MIN & ':' & @SEC & ') _CheckPotPlayer()' & @LF) ;### Function Trace
        Local $iPID, $bVisible = True, $aProcessWindows, $aPotPlayer[0][6], $aChildWindows, $NN = 1, $sTitle, $vClip, $iIndex
    
        $iPID = $bDEBUG ? @AutoItPID : ProcessWait('PotPlayerMini64.exe')
    
        $aProcessWindows = _WinAPI_EnumProcessWindows($iPID, $bVisible)
        If UBound($aProcessWindows) > 0 Then
            ConsoleWrite('> $aProcessWindows:' & @CRLF & _ArrayToString($aProcessWindows, @TAB & ', ') & @CRLF & @CRLF)
    ;~         _DebugArrayDisplay($aProcessWindows, '$aProcessWindows')
            _ArrayAdd($aPotPlayer, $aProcessWindows[1][0] & '|' & $aProcessWindows[1][1] & '|' & $NN & '|Parent|' & _
                _ArrayToString(WinGetPos($aProcessWindows[1][0]), ', ') & '|' & WinGetTitle($aProcessWindows[1][0])) ; Handle, ClassName, NN, Type, Position, Title
    
            $aChildWindows = _WinAPI_EnumChildWindows($aPotPlayer[0][0], $bVisible)
            If UBound($aChildWindows) > 0 Then
    ;~             _DebugArrayDisplay($aChildWindows, '$aChildWindows', '', 0, Default, 'Handle|ClassName')
                For $i = 1 To $aChildWindows[0][0] Step 1
                    $NN = UBound(_ArrayFindAll($aPotPlayer, $aChildWindows[$i][1], 1, 0, 0, 0, 1))
                    $NN = $NN < 1 ? 1 : $NN + 1
                    $sTitle = StringRegExpReplace(WinGetTitle($aChildWindows[$i][0]), '(.*)\R.*', '\1')
                    _ArrayAdd($aPotPlayer, $aChildWindows[$i][0] & '|' & $aChildWindows[$i][1] & '|' & $NN & '|Child|' & _
                        _ArrayToString(ControlGetPos($aChildWindows[$i][0], '', ''), ', ') & '|' & $sTitle) ; Handle, ClassName, NN, Type, Position, Title
                Next
                ConsoleWrite('! $aPotPlayer:' & @CRLF & __ArrayToString($aPotPlayer) & @CRLF)
                _DebugArrayDisplay($aPotPlayer, '$aPotPlayer', '', 0, Default, 'Handle|ClassName|NN|Type|Position|Title')
                ; 0x010E156C|Button|1|Child|2, 35, 100, 25|Refresh
                $vClip = ClipGet()
                $iIndex = _ArraySearch($aPotPlayer, StringLeft($vClip, 10))
                If $iIndex > -1 Then
                    $vClip = StringRegExp(StringStripWS($vClip, 2), '(?m)(.+)\R?', 3)
    ;~                 _DebugArrayDisplay($vClip, '$vClip')
                    ConsoleWrite('[PARENT]' & @CRLF & 'CLASSNAME=' & $aPotPlayer[0][1] & @CRLF & 'TITLE=' & $aPotPlayer[0][5] & @CRLF & '[CHILDS]' & @CRLF)
                    For $i = 0 To UBound($vClip) -1 Step 1
                        $iIndex = _ArraySearch($aPotPlayer, StringLeft($vClip[$i], 10))
                        If $iIndex = 0 Then
                            ConsoleWrite('ACTION=Kill' & @CRLF)
                            ExitLoop
                        EndIf
                        ConsoleWrite('CLASSNAME=' & $aPotPlayer[$iIndex][1] & @CRLF & 'INSTANCE=' & $aPotPlayer[$iIndex][2] & @CRLF & 'TITLE=' & $aPotPlayer[$iIndex][5] & @CRLF & 'ACTION=Hide' & @CRLF)
                    Next
                EndIf
            EndIf
        EndIf
    EndFunc
    
    Func _OpenPotPlayer()
        ConsoleWrite('@@ (71) :(' & @MIN & ':' & @SEC & ') _OpenPotPlayer()' & @LF) ;### Function Trace
        GUICreate('PotPlayer', 600, 240, -1, 100)
        GUICtrlCreateLabel('Popup', 2, 2, 100)
        Local $idRefresh = GUICtrlCreateButton('Refresh', 2, 35, 100)
        Local $idExit = GUICtrlCreateButton('Exit', 120, 35, 100)
        Local $idEdit = GUICtrlCreateEdit('Ads are cool! ;-)', 2, 80, 596, 100)
        GUICtrlSetColor($idEdit, 0xFF0000)
        GUISetState()
    
        _CheckPotPlayer()
    
        While True
            Switch GUIGetMsg()
                Case $GUI_EVENT_CLOSE, $idExit
                    Exit
                Case $idRefresh
                    _CheckPotPlayer()
            EndSwitch
        WEnd
    EndFunc
    
    Func __ArrayToString($aArray)
        ConsoleWrite('@@ (93) :(' & @MIN & ':' & @SEC & ') __ArrayToString()' & @LF) ;### Function Trace
        If UBound($aArray, 2) <> 6 Then Exit 999
        Local $sArray, $aPos, _
            $FOH = '! %-12s | %-32s | %-3s | %-6s | %-26s | %s\n', _
            $FOD = '! %-12s | %-32s | %3i | %-6s | %5i, %5i, %5i, %5i | "%s"\n'
        $sArray &= StringFormat($FOH, 'Handle', 'ClassName', 'NN', 'Type', 'Position', 'Title')
        For $i = 0 To UBound($aArray) -1 Step 1
            $aPos = StringSplit($aArray[$i][4], ', ', 3)
            If UBound($aPos) < 4 Then
                ReDim $aPos[4]
                $aPos[0] = -1
            EndIf
            ;                             Handle          ClassName       NN              Type            Position                                Title
            ;                   $FOD = '! %-12s           %-32s           %3i             %-6s            %5i,      %5i,      %5i,      %5i       %s\n'
            $sArray &= StringFormat($FOD, $aArray[$i][0], $aArray[$i][1], $aArray[$i][2], $aArray[$i][3], $aPos[0], $aPos[1], $aPos[2], $aPos[3], $aArray[$i][5])
        Next
        Return $sArray
    EndFunc
    Alles anzeigen
  • Nimble - Update Checker

    • Bitnugger
    • 14. September 2020 um 03:22
    Zitat von BugFix

    Refresh hat damit aber m.M.n. nichts zu tun, das ist wohl eher in der Search-Funktion begründet.

    Wenn ich den Code in nimble.nim (>> packageinfo.nim) richtig verstehe, wird eine bereits vorhandene, evtl. veraltete, lokale Liste packages.json verwendet.

    Um also zu gewährleisten, dass diese Liste aktuell ist, muss vor (zumindest dem ersten) nimble search ein nimble refresh ausgeführt werden.

    https://github.com/genotrance/nimgen - dort steht: Nimgen wurde von Nimterop abgelöst. Bestehende Wrapper werden langsam auf Nimterop migriert. In Zukunft werden keine neuen Funktionen implementiert.

    Das erklärt aber nicht, warum nimble die Version nimgen 0.5.2, die es ja defintitiv gibt, nach einem refresh nicht anzeigt/installiert.

    Allerdings kann auch eine konkrete Version oder einen Versionsbereich angeben werden:

    nimble install nimgen@#headinstalliert die aktuellste Version (HEAD zeigt immer auf die neuste Version des ausgewählten Zweiges)
    nimble install nimgen@"0.5.2"installiert die Version 0.5.2
    nimble install nimgen@"> 0.5.1"installiert eine aktuellere (das ist nicht unbedingt die aktuellste) Version, als die angegebene

    C:\Users\ghost>nimble list -i|find "nimgen"

    nimgen [#head, 0.5.1]

    Mit #head habe ich also die aktuellste Version von nimgen bereits installiert...

    C:\Users\ghost>nimble dump nimgen

    name: "nimgen"

    version: "0.5.2"

    author: "genotrance"

    desc: "c2nim helper to simplify and automate the wrapping of C libraries"

    license: "MIT"

    skipDirs: "nimgen, tests, web"

    skipFiles: ""

    skipExt: "nim"

    installDirs: ""

    installFiles: ""

    installExt: ""

    requires: "nim >= 0.19.0, c2nim >= 0.9.14, regex >= 0.12.0"

    bin: "nimgen.exe"

    binDir: ""

    srcDir: "src"

    backend: "c"

  • Nimble - Update Checker

    • Bitnugger
    • 13. September 2020 um 07:55

    Da stimmt etwas nicht bei nimgen... die 0.5.2 sollte dann ja eigentlich von nimble gefunden werden? Ein refresh hatte ich zuvor gemacht.

    nimble_upchk.png

  • [Nim] nimble Update

    • Bitnugger
    • 13. September 2020 um 06:46

    Meine etwas erweiterte Version von BassTest.nim (s. Anhang) habe ich wieder ans Laufen bekommen, benötigt nun >= nimbass 0.2.0. Die nicht mehr funktionierenden Zeilen habe ich als Kommentar drin gelassen.

    GetBkColor.nim aber leider nicht...

    .\.nimble\pkgs\winim-3.4.0\winim\inc\winsock.nim(1624, 83) Error: undeclared identifier: 'equalMem'

    Edit:

    Oscar , BugFix

    Nun habe ich endlich auch diesen selten dämlichen Fehler mit GetBkColor.nim gefunden... es lag am Dateinamen... der darf nicht gleichlautend (case sensitiv!) mit dem einer importierten proc sein. <X

    • :thumbdown:nim c -r "c:\Users\ghost\NIM\ Oscar \GetBkColor.nim"
    • :thumbup:nim c -r "c:\Users\ghost\NIM\ Oscar \getBkColor.nim"
    • :thumbup:nim c -r "c:\Users\ghost\NIM\ Oscar \GetBkColor2.nim"

    Dateien

    BassTest.zip 3,35 kB – 531 Downloads
  • Such Hilfe zu Win 10 Problem - Potplayer "Benachrichtigung" nervt

    • Bitnugger
    • 13. September 2020 um 00:27

    Auf der PotPlayer-Homepage steht ganz groß: WINDOW 8.1 / 8 / 7 / VISTA / XP

    Evtl. hilft es, wenn du es im Kompatibilitätsmodus (8.1) laufen lässt.

    https://basic-tutorials.de/potplayer-fuer…dere-erfahrung/

  • Nimble - Update Checker

    • Bitnugger
    • 12. September 2020 um 23:53
    Zitat von BugFix

    let pkgsPath = r"C:\Users\BugFix\.nimble\pkgs" # PFAD ANPASSEN !!

    output = output & fmt"{pkgsHigh[i].name:<20}ver offline: {pkgsHigh[i].version:>7} - ver online: {pkgsHigh[i].versionOnline:>7} {needUp}{'\n'}"

    Habe zwei Stellen geändert, sollte so eigentlich auch bei euch passen.

    Code: nimble_up_check.nim
    let pkgsPath = getEnv("HOMEDRIVE") & getEnv("HOMEPATH") & r"\.nimble\pkgs"  # PFAD ANPASSEN !!
    # pkgsPath = C:\Users\ghost\.nimble\pkgs
    
    output &= fmt"{pkgsHigh[i].name:<20}ver offline: {pkgsHigh[i].version:>7} - ver online: {pkgsHigh[i].versionOnline:>7}  {needUp}{'\n'}"
    Code: nimble_up_check.nims
    --define:ssl # -d:ssl funktioniert nicht!

    VSCodium meckerte zwar kurz wegen dem Inhalt in der .nims... aber es funktioniert jetzt einfach mit F6 - super! ;)

  • "AutoIt" als Standard beim Einfügen von Code

    • Bitnugger
    • 12. September 2020 um 18:29

    Ne, nur Kevin, sonst niemand... :rofl:

  • Unterschied #pragma und #AutoIt3Wrapper

    • Bitnugger
    • 12. September 2020 um 18:28

    Das habe ich dazu gefunden...

    Der Wrapper kann die Ressourcentabelle der kompilierten Datei aktualisieren, indem Informationen wie Kommentar, Beschreibung, rechtliches Urheberrecht und Programmversion festgelegt werden. Hinzufügen zusätzlicher Symbole, die im Skript verwendet werden können; und / oder Hinzufügen von Textzeichenfolgen. Darüber hinaus kann der Wrapper Au3Check ausführen, um das Skript vor dem Ausführen / Kompilieren zu überprüfen und dem Benutzer die Verwendung der Produktions- oder Beta-Version zu ermöglichen. AutoIt3Wrapper verwendet @TempDir für die verschiedenen Dateien, die während des Vorgangs erstellt wurden. Dies kann in der INI-Datei geändert werden.

    Pragma-Kompilierungsrichtlinien sind spezielle Anweisung zum Steuern von Aspekten der Kompilierung des Skripts. Dies ist eine spezielle Anweisung, die spezielle Aut2Exe-Eigenschaften steuert, die sich darauf auswirken, wie das resultierende Skript zu einer EXE-Datei kompiliert wird. Ändern Sie beispielsweise die Dateieigenschaften oder das Dateisymbol.

    #pragma ist eine in AutoIt integrierte Funktion zur Ressourcenaktualisierung, und AutoIt3Wrapper führt die Ressourcenaktualisierung nach dem Erstellungen der EXE-Datei durch. ...

    Beides hat wohl gleichermaßen eine Daseinsberechtigung.

  • Bildschirminhalt einfrieren

    • Bitnugger
    • 12. September 2020 um 17:40

    Da gibt es sicher mehrere Möglichkeiten... z.B. die Taskleiste ausblenden und mit BlockInput bzw. BlockInputEx die Eingaben (Tastatur und/oder Maus) des Users blockieren. Dann kanst du eine Kopie des Desktops erstellen und diese dann anzeigen... sieht ja 100% echt aus... aber da tut sich dann absolut nichts, wenn du es nicht willst. Habe das vor ewigen Jahren mal mit einem Freund auf dem AMIGA gemacht... der wollte mich dafür killen. ;)

  • [Nim] nimble Update

    • Bitnugger
    • 12. September 2020 um 17:26

    Ich habe den bzw. die Fehler gefunden...

    Der Grund für die fehlenden Erweiterungen:

    https://github.com/VSCodium/vscod…ons-marketplace

    c:\Users\Ghost\scoop\apps\vscodium\current\resources\app\product.json

    In der product.json wie auf dieser Seite empfohlen, den Teil für extensionsGallery ändern, und alles ist wieder gut:

    "extensionsGallery": {

    "serviceUrl": "https://open-vsx.org/vscode/gallery",

    "itemUrl": "https://open-vsx.org/vscode/item"

    },

    "extensionsGallery": {

    "serviceUrl": "https://marketplace.visualstudio.com/_apis/public/gallery",

    "itemUrl": "https://marketplace.visualstudio.com/items"

    }

    Zudem waren sämtliche "package.json" Dateien in diesem Pfad mit Linux-Zeilenumbrüchen (@LF) und nicht wie in der 1.44.2 mit @CRLF... bin mir aber nicht sicher, ob das eine Rolle spielt.

    C:\Users\Ghost\scoop\apps\vscodium\current\resources\app\extensions\*\package.json

    Das Script GetBkColor.nim und die von mir geänderte Version von BassTest.nim von Oscar werfen aber beide immer noch denselben Fehler, doch damit kann ich erst einmal leben.

  • File to Base64 String Code Generator v1.20 Build 2020-06-05

    • Bitnugger
    • 12. September 2020 um 16:52

    Grob über den Daumen geschätzt ist RAM-Speicher etwa 100-250 mal schneller, als eine Festplatte... und viele kleine Bilder zu laden, dauert entsprechen länger, als wenige große... ein einziges (sehr großes, kompiliertes) Script hingegen entschieden weniger... und wenn man es weitergeben will, reicht eben diese eine große Exe.

  • [Nim] nimble Update

    • Bitnugger
    • 11. September 2020 um 22:00
    Zitat von Oscar

    Hast Du VSCodium über scoop installiert scoop install vscodium?

    Nur bei der Erstinstallation (1.44.2), alle weiteren Versionen (1.48.2, 1.49.0) mit scoop update vscodium.

    Den Fehler bei GetBkColor.nim habe ich aber immer noch... und in VSCodium kann ich die Erweiterungen Nim und das deutsche Sprachpaket immer noch nicht finden... auf meinem Haupt-System werden sie als installiert angezeigt, aber wenn ich danach suche, werden sie nicht gefunden. Auf dem PC, auf dem ich den ganzen Kram gestern installiert habe, komme ich nun also nicht mehr dazu, Nim und das Sprachpaket zu installieren.

    GetBkColor.nim

    C:\Users\ghost\.nimble\pkgs\winim-3.4.0\winim\inc\winsock.nim(1624, 83) Error: undeclared identifier: 'equalMem'

    BassTest.nim (da habe ich bis auf einen Fehler alle beheben können)

    c:\Users\ghost\NIM\@Bitnugger\BassTest.nim(112, 22) Error: type mismatch: got <HSTREAM, bool>

    but expected one of:

    proc BASS_ChannelPlay(handle: DWORD; restart: BOOL): BOOL

    first type mismatch at position: 2

    required type for restart: BOOL

    but expression 'false' is of type: bool

    expression: BASS_ChannelPlay(hChannel, false)

    Hier meldete scoop zwar ein paar Fehler, die ich inzwischen behoben habe, doch die waren, wie ich schon vermutet hatte, nicht relevant für meine Probleme.

    PS C:\Users\ghost> scoop checkup

    WARN LongPaths support is not enabled.

    You can enable it with running:

    Set-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem' -Name 'LongPathsEnabled' -Value 1

    ERROR 'Inno Setup Unpacker' is not installed! It's required for unpacking InnoSetup files. Please run 'scoop install innounp'. 

    ERROR 'dark' is not installed! It's required for unpacking installers created with the WiX Toolset. Please run 'scoop install dark' or 'scoop install wixtoolset'. 

    WARN Found 3 potential problems.

  • ColorConvert

    • Bitnugger
    • 11. September 2020 um 15:19
    Zitat von UEZ

    color.argb = 0x00F0D0C0

    Hm, color.argb = 0x7FFFFFFF geht noch, 0x80000000 nicht mehr... sollte aber doch eigentlich auch mit 0xFFFFFFFF funktionieren?

    type mismatch: got <int64> but expected 'uint32'

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™