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

Beiträge von Micha_he

  • regedit zeigt Unterschlüsselnamen nicht an

    • Micha_he
    • 4. Dezember 2016 um 22:04

    Hab ich... ;(

  • Funktion RegEnumKey zeigt Unterschlüssel nich an

    • Micha_he
    • 29. November 2016 um 17:28

    Nun wieder von daheim und da viel es mangels Admin-Rechten gleich auf:

    HKLM64 ist richtig, außer Du hast das Script als 64bit bereits kompiliert. Aber der Hauptpunkt viel zu Haus unter Win10 dann auf, #RequireAdmin fehlte. Ein 'normaler' Benutzer darf den Schlüssel nicht auslesen !

    So sollte es funktionieren:

    #RequireAdmin
    #include <MsgBoxConstants.au3>
    Local $sSubKey = ""
    For $i = 1 To 10
    $sSubKey = RegEnumKey("HKLM64\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tasks", $i)
    If @error Then
    MsgBox($MB_SYSTEMMODAL, "SubKey #" & $i , "Fehler")
    ExitLoop
    EndIf
    MsgBox($MB_SYSTEMMODAL, "SubKey #" & $i , $sSubKey)
    Next

    ! Irgendwie kann ich mit FF keine Code-Tags mehr nutzen. Der Speichern-Button geht nicht oder macht nur Müll !

  • Funktion RegEnumKey zeigt Unterschlüssel nich an

    • Micha_he
    • 29. November 2016 um 14:45

    Den Fall 32/64bit hast Du geklärt ?

    AutoIt
    $sSubKey = RegEnumKey("HKLM64\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tasks", $i)


    Weil, im 32bit Zweig sind bei mir keine Unterschlüssel !

  • regedit zeigt Unterschlüsselnamen nicht an

    • Micha_he
    • 28. November 2016 um 16:55

    Wahrscheinlich startet dein AutoIt-Programm per default im 32bit Modus und der normal aufgerufene RegEdit läuft im 64bit Modus.

    siehe hierzu den Registryschlüssel: HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node (enthält bei 64bit die 32bit Anwendungen)

    und zum Compilevorgeng die Pragma-Directive '#pragma compile(x64, true)'.

    Aus einem 32bit AutoIt-Tool heraus, kannst du mit HKLM64 statt HKLM auf den 64bit-Zweig zugreifen. Ist er nicht vorhanden, wird automatisch der 32bit genommen.

  • msg to pdf?

    • Micha_he
    • 18. November 2016 um 14:13

    Du musst nur darauf achten, das das Arbeitsverzeichnis die 'wkhtmltopdf.exe' enthält !

  • msg to pdf?

    • Micha_he
    • 18. November 2016 um 12:45

    Du brauchst scheinbar nur die 'emailconverter.jar', die DLL's und die 'wkhtmltopdf.exe' Datei aus dem Programmverzeichnis der Installation.

    Das Java (V1.8) habe ich direkt vom Server genutzt, da lokal eine zu alte Version (V1.6) auf dem Rechner ist. Sollte aber eigentlich auch ohne jegliche lokal installierte klappen !?

  • msg to pdf?

    • Micha_he
    • 18. November 2016 um 12:06

    @Peter S Taler

    Du kannst aber den Java-Ordner einfach mit ins Scriptverzeichnis kopieren und mit deinem Tool mitliefern.
    Start ist dann: ...\bin\java.exe -jar [dateiname].jar [-optionen]

  • msg to pdf?

    • Micha_he
    • 18. November 2016 um 08:27

    Diese Java-Version hier, könnte man verwenden. Anhänge werden zwar per Option mit entpackt, leider aber im Anschluß nicht im PDF angezeigt. Aber Du sagtest ja auch reine Texte !

  • msg to pdf?

    • Micha_he
    • 17. November 2016 um 22:48

    Wäre ja dann so etwas wie 'Eml2Pdf'. Davon gibt es einige, leider habe ich keinen gefunden der Free und für die Kommandozeile ist. Aber wenn es Dir 2-3€ Wert ist, dann müsste da was zu finden sein...

    Eml-Viewer gibt es ein paar freie, nur ist die Automation dann komplizierter, wegen der Oberfläche.

  • ControlSend sendet Text nur Lower-Case

    • Micha_he
    • 29. September 2016 um 15:57

    Diese Anregung aus dem englischen AutoIt-Forum fand ich interessant:

    AutoIt
    $UserName = "MaxMustermann"
    $UserName = StringRegExpReplace($UserName, '[[:upper:]\W]', "{SHIFTDOWN}{$0}{SHIFTUP}")
    ControlSend($WinHandle,"",$WinHandle,$UserName,1)
  • Noch ein (kurzes) VBS Script --> Autoit

    • Micha_he
    • 16. September 2016 um 12:46

    Sieht im ersten Moment eigentlich gut aus, jedenfalls kann ich den Fehler auch nicht erkennen.

    Unter Umständen kannst Du auch die Funktion '_OOoCalc_BookOpen' aus der UDF 'OOoCalc.au3' von HIER nehmen. (sieht aber im Prinzip nach nahezu identischem Code/Befehlen aus)

  • Noch ein (kurzes) VBS Script --> Autoit

    • Micha_he
    • 16. September 2016 um 11:53

    Schau mal HIER !

    Als Ausgangspunkt für einen Anfänger vielleicht brauchbar. Ob der erzeugte Code dann in der neusten AutoIt-Version immer läuft, würde ich bezweifeln. Aber mit den dann möglicherweise erscheinden Fehlern, findet man schnell den falschen Funktionsnamen oder ggf. den fehlenden Parameter.

    Probier halt mal...

  • Programm bedienen

    • Micha_he
    • 12. September 2016 um 12:44

    Du solltest in der AutoIt-Hilfe unter folgenden Befehlen das für Dich notwendige suchen:

    WinWait, WinWaitActive, ControlCommand, ControlSend, ControlClick, Send

  • Problem mit Proxy Skript

    • Micha_he
    • 5. Juli 2016 um 11:52

    Einfach wäre z.B.:

    AutoIt
    If StringLeft(@IPAddress1, 6) = "10.15." Then
    	RegWrite("HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings","ProxyEnable","REG_DWORD","1")
    	MsgBox(64, "Proxy an")
    Else
    	RegWrite("HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings","ProxyEnable","REG_DWORD","0")
    	MsgBox(64, "Proxy aus")
    EndIf
  • Windows Icons fixieren

    • Micha_he
    • 2. Mai 2016 um 08:59

    Yaerox:


    Du hast aber unter Windows 64bit, auch eine 64bit kompilierte Version des Scripts getestet, oder ?

  • Windows Icons fixieren

    • Micha_he
    • 28. April 2016 um 16:24

    Ich habe mal eine Lösung gebaut:

    Script kompilieren (für x64 muss auch x64 kompiliert sein) und mit Parameter '-save' starten legt eine Ini im Scriptverzeichnis an.
    Mit Parameter '-restore' werden die alten Positionen wieder hergestellt. Unter Win7 x64 läuft es noch !

    Spoiler anzeigen
    AutoIt: SetGet_IconPos.au3
    ;#################################################################################################
    ;
    ;   Titel:   Restore-IconPos-Desktop
    ;   Datum:   28. Jan. 2015
    ;   Version: 1.1
    ;
    ;	Anmerkungen:
    ;    
    ;   -	Die Position der Icons und der Titel wird in einer INI Datei gespeichert
    ;   -	Das Script wird über Parameter aufgerufen:
    ;       	-save    = Speichert die Positionen
    ;       	-restore = Plaziert die Icons wieder da wo sie waren
    ;	-	Unter einem x64-System, muss das Script auch als 64bit-kompiliertem
    ;		Script oder mit AutoIt_x64.exe gestartet werden !
    ;
    ;
    ;	History:
    ;		V1.0	-	Erstrelease
    ;		V1.1	-	Anzahl wird jetzt mit korrektem Wer in der INI gespeichert
    ;
    ;#################################################################################################
    
    
    ;#################################################################################################
    ; Einfügen der Include Dateien
    ;#################################################################################################
    #include <Constants.au3>
    #Include <GuiListView.au3>
    #include <File.au3>
    #include <Array.au3>
    
    
    ;#################################################################################################
    ; Optionen setzen
    ;#################################################################################################
    #NoTrayIcon                        ;Kein TrayIcon anzeigen
    Opt("MustDeclareVars", 1)         ;Variablen müssen deklariert werden
    
    
    ;#################################################################################################
    ; Variablen deklarieren
    ;#################################################################################################
    Local $handle                                    ;Handle für den Desktop
    Local $anzIcons                                    ;Anzahl der Icons auf dem Desktop
    Local $arrIcons[1]                                ;Array für Restore
    Local $arrayPos                                    ;Position im Array
    Local $txt                                        ;Für das zwischenspeichern von Texten
    Local $int                                        ;Als Zähler Variable
    Local $icon                                        ;Name des Icon
    Local $posX                                        ;X Position
    Local $posY                                        ;y Position
    Local $Mode    = "Help"                            ;In welchem Modus das Script gestartet wurde
    Local $iniFile    = @ScriptDir & "\icons.ini"        ;Pfad zu der Ini-Datei
    
    
    If @OSArch = "X64" and not @Autoitx64 Then
    	Msgbox(64, "Falsche Architektur !", "Unter einem 64bit Betriebssystem, muss auch eine 64bit-Variante" & @CRLF & "des Programms gestartet werden !")
    	Exit
    EndIf
    
    
    ;#################################################################################################
    ; Programm Einstigspunkt (POE)
    ;#################################################################################################
    If $CmdLine[0] > 0 Then
        $Mode = $CmdLine[1]
        _CheckIniExist()
        Switch $CmdLine[1]
            Case "-save"
                ToolTip("Positionen der Icons werden gespeichert!",0,0,"Info")
                Sleep(1000)
                _SavePos()
            Case "-restore"
                ToolTip("Icons werden wieder hergestellt!",0,0,"Info")
                Sleep(1000)
                _RestorePos()
            Case Else
                _ShowHelp()
        EndSwitch
    Else
        _ShowHelp()
    EndIf
    
    
    Exit 0 ;Programm wird verlassen
    
    
    ;#################################################################################################
    ; _CheckIniExist
    ; Diese Funktion prüft ob die INI Datei vohanden ist, falls Nein, wird eine leere Datei
    ; erstellt. Ist eine vorhanden, wird gelöscht und eine neue erstellt, aber nur bei -save
    ;#################################################################################################
    Func _CheckIniExist()
        IF Not FileExists($iniFile) Then 
            _FileCreate($iniFile)
            If @error Then 
                MsgBox(48,"Fehler","INI-Datei konnte nicht erstellt werden.")
                Exit 1
            EndIf
        ElseIf $Mode = "-save" Then
            If FileDelete($iniFile) = 0 Then
                MsgBox(48,"Fehler","INI-Datei konnte nicht gelöscht werden.")
                Exit 1
            EndIf
        EndIf
    EndFunc
    
    
    ;#################################################################################################
    ; _ShowHelp
    ; Wenn das Script ohne Parameter gestartet wird, wird diese Hilfe angezeigt, oder wenn ein
    ; falscher Parameter übergeben wurde.
    ;#################################################################################################
    Func _ShowHelp()
        $txt = "Parameter:" & @CRLF
        $txt &= "-save    = Speichert die Positionen"  & @CRLF
        $txt &= "-restore = Plaziert die Icons wieder da wo sie waren"
        MsgBox(64,"Hilfe - Restore-IconPos-Desktop", $txt)
        Exit 0
    EndFunc
    
    
    ;#################################################################################################
    ; _SavePos
    ; Speichern der Icon Positionen in der INI Datei
    ;#################################################################################################
    Func _SavePos()
        $handle = ControlGetHandle("Program Manager", "", "SysListView321")
        $anzIcons = _GUICtrlListView_GetItemCount ($handle)
        IniWrite($iniFile,"Global","Anzahl",$anzIcons)
        For $int = 0 To $anzIcons - 1
            IniWrite($iniFile,"IconPos" & $int,"Icon",_GUICtrlListView_GetItemText($handle,$int))
            IniWrite($iniFile,"IconPos" & $int,"X-Pos",_GUICtrlListView_GetItemPositionX ($handle,$int))
            IniWrite($iniFile,"IconPos" & $int,"Y-Pos",_GUICtrlListView_GetItemPositionY ($handle,$int))
        Next
    EndFunc
    
    
    
    
    ;#################################################################################################
    ; _RestorePos
    ; Stellt die Icon Positionen an Hand der INI Datei wieder her
    ;#################################################################################################
    Func _RestorePos()
        $anzIcons = IniRead($iniFile,"Global","Anzahl",-1)
        If $anzIcons = -1 Then 
            MsgBox(48,"Fehler","INI-Datei ist leer.")
            Exit 1
        Else
            $handle = ControlGetHandle("Program Manager", "", "SysListView321")
            ReDim $arrIcons[_GUICtrlListView_GetItemCount ($handle)]
            For $int = 0 To UBound($arrIcons) - 1
                $arrIcons[$int] = _GUICtrlListView_GetItemText($handle,$int)
            Next
            For $int = 0 To $anzIcons - 1
                $icon = IniRead($iniFile,"IconPos" & $int,"Icon",-1)
                $posX = IniRead($iniFile,"IconPos" & $int,"X-Pos",-1)
                $posY = IniRead($iniFile,"IconPos" & $int,"Y-Pos",-1)
                If $icon = -1 Or $posX = -1 Or $posY = -1 Then ContinueLoop
                $arrayPos = _ArraySearch($arrIcons,$icon,0,0,1,False)
                If $arrayPos = -1 Then ContinueLoop
                _GUICtrlListView_SetItemPosition($handle,$arrayPos,$posX,$posY)
            Next
        EndIf
    EndFunc
    Alles anzeigen

    Edit: Gerade getestet, läuft auch unter Win10 x64 noch !

  • Zugriff auf TreeView Control von regedit.exe, wenn regedit bereits geöffnet ist

    • Micha_he
    • 8. April 2016 um 07:50

    Warum versucht man etwas derartiges, wenn man alles auch mit den AutoIt-Registry-Funktionen auslesen/verändern kann ?

  • AutoIt Programm im Systray beenden

    • Micha_he
    • 1. April 2016 um 11:33

    Dies müsste die Original-UDF dazu sein:

    Dateien

    _SysTray.au3 25,18 kB – 305 Downloads
  • Eigene Funktionen eines Tools in UDF ausgliedern?

    • Micha_he
    • 31. März 2016 um 15:12

    Ich übergebe dann das als Funktionsparameter:

    AutoIt: Test1.au3
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include "Test2.au3"
    Local $Form1 = GUICreate("Form1", 167, 96, 192, 182)
    Local $Input1 = GUICtrlCreateInput("Input123", 8, 8, 121, 21)
    Local $Button1 = GUICtrlCreateButton("Klick mich", 8, 30, 121, 21)
    GUISetState(@SW_SHOW)
    While 1
    	$nMsg = GUIGetMsg()
    	Switch $nMsg
    		Case $GUI_EVENT_CLOSE
    			Exit
    		Case $Button1
    			_Testfunc($Input1)
    	EndSwitch
    WEnd
    Alles anzeigen
    AutoIt: Test2.au3
    Func _Testfunc($hInput)
    	MsgBox(0, "", GUICtrlRead($hInput))
    EndFunc
  • AutoIt Programm im Systray beenden

    • Micha_he
    • 31. März 2016 um 13:53

    Ich habe auch noch eine Lösung. Unter Win10 läufts, Win8 habe ich nicht getestet.

    Hier ist sie:

    AutoIt
    #include <GUIToolBar.au3>
    
    
    $sTitle = "WinVNC"
    
    
    $hTray = ControlGetHandle('[Class:Shell_TrayWnd]', '', '[Class:ToolbarWindow32;Instance:1]')
    $iCount = _GUICtrlToolbar_ButtonCount($hTray)
    For $i = 0 To $iCount
    	If StringInStr(_GUICtrlToolbar_GetButtonText($hTray, _GUICtrlToolbar_IndexToCommand ($hTray, $i )), $sTitle) Then
    		$iPid = WinGetProcess(_SysTrayIconHandle($i))
    		If $iPid > 0 Then
    			_GUICtrlToolbar_DeleteButton($hTray, _GUICtrlToolbar_IndexToCommand ($hTray, $i ))
    			ProcessClose($iPid)
    		EndIf
    	EndIf	
    Next
    
    
    
    
    ;===============================================================================
    ;
    ; Function Name:    _SysTrayIconHandle($iIndex, $iWin = 1)
    ; Description:      Gets hwnd of window associated with systray icon of given index
    ; Parameter(s):     $iIndex     - icon index (Note: starting from 0)
    ;                   $iWin
    ;                   | 1         - ToolbarWindow32, Win2000+
    ;                   | 2         - NotifyIconOverflowWindow, Win7+
    ;
    ; Requirement(s):
    ; Return Value(s):  On Success - Returns hwnd of found icon
    ;                   On Failure - Sets @error and returns -1
    ;                   | See _SysTrayGetButtonInfo for @error returns
    ;
    ; Author(s):        Tuape, Erik Pilsits
    ;
    ;===============================================================================
    Func _SysTrayIconHandle($iIndex, $iWin = 1)
        Local $TRAYDATA = _SysTrayGetButtonInfo($iIndex, $iWin, 2)
        If @error Then
            Return SetError(@error, 0, -1)
        Else
            Return Ptr(DllStructGetData($TRAYDATA, 1))
        EndIf
    EndFunc   ;==>_SysTrayIconHandle
    
    
    
    
    ; INTERNAL =====================================================================
    ;
    ; Function Name:    _SysTrayGetButtonInfo($iIndex, $iWin = 1, $iInfo = 0)
    ; Description:      Gets Tray Button Info
    ; Parameter(s):     $iIndex     - icon index (Note: starting from 0)
    ;                   $iWin
    ;                   | 1         - ToolbarWindow32, Win2000+
    ;                   | 2         - NotifyIconOverflowWindow, Win7+
    ;                   $iInfo      - Info to return
    ;                   | 1         - TBBUTTON structure
    ;                   | 2         - TRAYDATA structure
    ;                   | 3         - tooltip
    ;                   | 4         - icon position
    ; Requirement(s):
    ; Return Value(s):  On Success - Returns requested info
    ;                   On Failure - Sets @error and returns -1
    ;                   | 1        - Failed to find tray window
    ;                   | 2        - Failed to get tray window PID
    ;                   | 3        - Failed to open process
    ;                   | 4        - Failed to allocate memory
    ;                   | 5        - Failed to get TBBUTTON info
    ;
    ; Author(s):        Erik Pilsits, Tuape
    ;
    ;===============================================================================
    Func _SysTrayGetButtonInfo($iIndex, $iWin = 1, $iInfo = 1)
        Local Const $TB_GETBUTTON = 1047
    ;~  Local Const $TB_GETBUTTONTEXT = 1099
    ;~  Local Const $TB_GETBUTTONINFO = 1089
        Local Const $TB_GETITEMRECT = 1053
        Local Const $ACCESS = BitOR(0x0008, 0x0010, 0x0400) ; VM_OPERATION, VM_READ, QUERY_INFORMATION
        Local $TBBUTTON
        If @OSArch = "X86" Then
            $TBBUTTON = DllStructCreate("int iBitmap;int idCommand;byte fsState;byte fsStyle;byte bReserved[2];dword dwData;int iString")
        Else ; X64
            $TBBUTTON = DllStructCreate("int iBitmap;int idCommand;byte fsState;byte fsStyle;byte bReserved[6];uint64 dwData;int64 iString")
        EndIf
        Local $TRAYDATA
        If @OSArch = "X86" Then
            $TRAYDATA = DllStructCreate("hwnd hwnd;uint uID;uint uCallbackMessage;dword Reserved[2];handle hIcon")
        Else
            $TRAYDATA = DllStructCreate("uint64 hwnd;uint uID;uint uCallbackMessage;dword Reserved[2];uint64 hIcon")
        EndIf
        Local $trayHwnd = _FindTrayToolbarWindow($iWin)
        If $trayHwnd = -1 Then Return SetError(1, 0, -1)
        Local $return, $err = 0
        Local $ret = DllCall("user32.dll", "dword", "GetWindowThreadProcessId", "hwnd", $trayHwnd, "dword*", 0)
        If @error Or Not $ret[2] Then SetError(2, 0, -1)
        Local $pId = $ret[2]
        Local $procHandle = DllCall("kernel32.dll", "handle", "OpenProcess", "dword", $ACCESS, "bool", False, "dword", $pId)
        If @error Or Not $procHandle[0] Then Return SetError(3, 0, -1)
        Local $lpData = DllCall("kernel32.dll", "ptr", "VirtualAllocEx", "handle", $procHandle[0], "ptr", 0, "ulong", DllStructGetSize($TBBUTTON), "dword", 0x1000, "dword", 0x04)
        If Not @error And $lpData[0] Then
            $ret = DllCall("user32.dll", "lresult", "SendMessageW", "hwnd", $trayHwnd, "uint", $TB_GETBUTTON, "wparam", $iIndex, "lparam", $lpData[0])
            If Not @error And $ret[0] Then
                DllCall("kernel32.dll", "bool", "ReadProcessMemory", "handle", $procHandle[0], "ptr", $lpData[0], "struct*", $TBBUTTON, "ulong", DllStructGetSize($TBBUTTON), "ulong*", 0)
                Switch $iInfo
                    Case 2
                        ; TRAYDATA structure
                        DllCall("kernel32.dll", "bool", "ReadProcessMemory", "handle", $procHandle[0], "ptr", DllStructGetData($TBBUTTON, 6), "struct*", $TRAYDATA, "ulong", DllStructGetSize($TRAYDATA), "ulong*", 0)
                        $return = $TRAYDATA
                    Case 3
                        ; tooltip
                        $return = ""
                        If BitShift(DllStructGetData($TBBUTTON, 7), 16) <> 0 Then
                            Local $intTip = DllStructCreate("wchar[1024]")
                            ; we have a pointer to a string, otherwise it is an internal resource identifier
                            DllCall("kernel32.dll", "bool", "ReadProcessMemory", "handle", $procHandle[0], "ptr", DllStructGetData($TBBUTTON, 7), "struct*", $intTip, "ulong", DllStructGetSize($intTip), "ulong*", 0)
                            $return = DllStructGetData($intTip, 1)
                        ;else internal resource
                        EndIf
                    Case 4
                        ; icon position
                        If Not BitAND(DllStructGetData($TBBUTTON, 3), 8) Then ; 8 = TBSTATE_HIDDEN
                            Local $pos[2], $RECT = DllStructCreate("int;int;int;int")
                            DllCall("user32.dll", "lresult", "SendMessageW", "hwnd", $trayHwnd, "uint", $TB_GETITEMRECT, "wparam", $iIndex, "lparam", $lpData[0])
                            DllCall("kernel32.dll", "bool", "ReadProcessMemory", "handle", $procHandle[0], "ptr", $lpData[0], "struct*", $RECT, "ulong", DllStructGetSize($RECT), "ulong*", 0)
                            $ret = DllCall("user32.dll", "int", "MapWindowPoints", "hwnd", $trayHwnd, "ptr", 0, "struct*", $RECT, "uint", 2)
                            $pos[0] = DllStructGetData($RECT, 1)
                            $pos[1] = DllStructGetData($RECT, 2)
                            $return = $pos
                        Else
                            $return = -1
                        EndIf
                    Case Else
                        ; TBBUTTON
                        $return = $TBBUTTON
                EndSwitch
            Else
                $err = 5
            EndIf
            DllCall("kernel32.dll", "bool", "VirtualFreeEx", "handle", $procHandle[0], "ptr", $lpData[0], "ulong", 0, "dword", 0x8000)
        Else
            $err = 4
        EndIf
        DllCall("kernel32.dll", "bool", "CloseHandle", "handle", $procHandle[0])
        If $err Then
            Return SetError($err, 0, -1)
        Else
            Return $return
        EndIf
    EndFunc   ;==>_SysTrayGetButtonInfo
    
    
    
    
    ;===============================================================================
    ;
    ; Function Name:    _FindTrayToolbarWindow($iWin = 1)
    ; Description:      Utility function for finding Toolbar window hwnd
    ; Parameter(s):     $iWin
    ;                   | 1         - ToolbarWindow32, Win2000+
    ;                   | 2         - NotifyIconOverflowWindow, Win7+
    ;
    ; Requirement(s):
    ; Return Value(s):  On Success - Returns Toolbar window hwnd
    ;                   On Failure - returns -1
    ;
    ; Author(s):        Tuape, Erik Pilsits
    ;
    ;===============================================================================
    Func _FindTrayToolbarWindow($iWin = 1)
        Local $hwnd, $ret = -1
        If $iWin = 1 Then
            $hWnd = DllCall("user32.dll", "hwnd", "FindWindow", "str", "Shell_TrayWnd", "ptr", 0)
            If @error Then Return -1
            $hWnd = DllCall("user32.dll", "hwnd", "FindWindowEx", "hwnd", $hWnd[0], "hwnd", 0, "str", "TrayNotifyWnd", "ptr", 0)
            If @error Then Return -1
            If @OSVersion <> "WIN_2000" Then
                $hWnd = DllCall("user32.dll", "hwnd", "FindWindowEx", "hwnd", $hWnd[0], "hwnd", 0, "str", "SysPager", "ptr", 0)
                If @error Then Return -1
            EndIf
            $hWnd = DllCall("user32.dll", "hwnd", "FindWindowEx", "hwnd", $hWnd[0], "hwnd", 0, "str", "ToolbarWindow32", "ptr", 0)
            If @error Then Return -1
            $ret = $hwnd[0]
        ElseIf $iWin = 2 Then
            ; NotifyIconOverflowWindow for Windows 7
            $hWnd = DllCall("user32.dll", "hwnd", "FindWindow", "str", "NotifyIconOverflowWindow", "ptr", 0)
            If @error Then Return -1
            $hWnd = DllCall("user32.dll", "hwnd", "FindWindowEx", "hwnd", $hWnd[0], "hwnd", 0, "str", "ToolbarWindow32", "ptr", 0)
            If @error Then Return -1
            $ret = $hwnd[0]
        EndIf
        Return $ret
    EndFunc   ;==>_FindTrayToolbarWindow
    Alles anzeigen

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™