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

  • ListView Header-Fokus für Init-Sortierung setzen

    • Micha_he
    • 11. September 2019 um 06:56

    Ich möchte ein ListView mit _GUICtrlListView_RegisterSortCallBack() und später dann mit _GUICtrlListView_SortItems() sortieren, Damit die Rückgabe von GUICtrlGetState() beim ListView aber die richtige Spalte zurückgibt (Ziel ist 0), muss ich den Fokus auf den Header der Spalte 0 setzen.

    Meine letzte/einzige Lösung ist ControlClick(). Hat jemand eine bessere Idee, damit das Ergebnis von GUICtrlGetState($idListView) das gewünschte ist ?

    Hier mein Test-Script:

    C
    #include <GUIConstantsEx.au3>
    #include <MsgBoxConstants.au3>
    #include <WindowsConstants.au3>
    #include <GuiListView.au3>
    
    $hMainGUI = GUICreate("ListView Init-Sort-Test", 400, 200, 100, 100, -1, $WS_EX_ACCEPTFILES)
    $idListview = GUICtrlCreateListView("col1  |col2|col3  ", 10, 10, 380, 180)
    $idItem1 = GUICtrlCreateListViewItem("bbb|data11|data21", $idListview)
    $idItem2 = GUICtrlCreateListViewItem("ddd|data12|data22", $idListview)
    $idItem3 = GUICtrlCreateListViewItem("aaa|data13|data23", $idListview)
    _GUICtrlListView_RegisterSortCallBack($idListview, 2, True)
    GUICtrlSetState($idListview, $GUI_DROPACCEPTED)
    GUICtrlSetResizing($idListview, $GUI_DOCKAUTO)
    GUISetState(@SW_SHOW)
    
    ; folgendes bekomme ich nicht hin:
    $h_LV_Header = _GUICtrlListView_GetHeader(GUICtrlGetHandle($idListView))
    _SendMessage($h_LV_Header, $HDM_SETFOCUSEDITEM, 0, 1)
    MsgBox(0,"Status","Sortierung nach Spalte (0 ist Ziel):   " & GUICtrlGetState($idListview))
    
    ; folgendes auch nicht:
    GUICtrlSendMsg($idListView, $LVM_SETSELECTEDCOLUMN, 0, 0)
    MsgBox(0,"Status","Sortierung nach Spalte (0 ist Ziel):   " & GUICtrlGetState($idListview))
    
    ; folgendes auch nicht:
    _GUICtrlListView_SetItemFocused(_GUICtrlListView_GetHeader(GUICtrlGetHandle($idListView)), 0)
    MsgBox(0,"Status","Sortierung nach Spalte (0 ist Ziel):   " & GUICtrlGetState($idListview))
    
    
    ; mit ControlClick klappt es
    ControlClick($hMainGUI, "", _GUICtrlListView_GetHeader(GUICtrlGetHandle($idListview)),"left",1,10,10)
    MsgBox(0,"Status","Sortierung nach Spalte (0 ist Ziel):   " & GUICtrlGetState($idListview) & @CRLF & @CRLF & "damit eine anschließende Sortierung mit" & @CRLF & "'_GUICtrlListView_SortItems($idListview, GUICtrlGetState($idListview)' klappt !")
    
    
    While 1
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE
                _GUICtrlListView_UnRegisterSortCallBack($idListview)
                ExitLoop
    
            Case $idListview
                _GUICtrlListView_SortItems($idListview, GUICtrlGetState($idListview))
    
        EndSwitch
    WEnd
    Alles anzeigen
  • WinPESE

    • Micha_he
    • 13. August 2019 um 15:33
    Zugriff auf:Umleitung auf:
    32bit-Anwendung:
    (oder CMD aus 32bit Anwendung) \Windows \System32\Windows\SysWOW64
    (32bit)
    \Windows\Sysnative\Windows\System32
    (64bit)
    \Windows\SysWOW64\Windows\SysWOW64
    (32bit)
    64bit-Anwendung:
    (oder CMD aus 64bit Anwendung,
    bzw. direkt von Windows gestartet)
    \Windows \System32\Windows \System32
    (64bit)
    \Windows\Sysnative(nicht verfügbar)
    \Windows\SysWOW64\Windows\SysWOW64
    (32bit)

    alles auf einem 64bit-Windows.

  • WinPESE

    • Micha_he
    • 13. August 2019 um 08:11

    AutoIt-Script 32bit oder 64bit kompiliert ? Ggf. gibt es dism & diskpart bei WINPESE nur im x64 Pfad !?

  • For...Next... für Funktionen?

    • Micha_he
    • 25. Juli 2019 um 07:59

    Danke autoiter für deine erklärende Hilfe an Joschy41. War nicht online und konnte es daher nicht kommentieren.

  • For...Next... für Funktionen?

    • Micha_he
    • 24. Juli 2019 um 11:50

    Wüsste nicht, das das bei GUICtrlSetOnEvent() geht !?

  • For...Next... für Funktionen?

    • Micha_he
    • 24. Juli 2019 um 10:17

    Schau mal unter @GUI_CtrlId bzw. unter @GUI_CtrlHandle in der Hilfe. Damit sollte es möglich sein, aus immer der gleichen Fuktion die Du mit GUICtrlSetOnEvent zuweist, auf unterschiedliche Controls zu reagieren.

    So z.B.:

    Code
    #include <GUIConstantsEx.au3>
    Opt("GUIOnEventMode", 1)
    
    Global $iHigh = 30
    Global $iFirstButtonId
    
    GUICreate("CtrlId-Test")
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
    For $i = 0 To 9
        If Not $iFirstButtonId Then
            $iFirstButtonId = GUICtrlCreateButton("Button" & $i+1, 10, $i*$iHigh)
        Else
            GUICtrlCreateButton("Button" & $i+1, 10, $i*$iHigh)
        EndIf
        GUICtrlSetOnEvent(-1, "_ButtonAktion")
    Next
    GUISetState(@SW_SHOW)
    
    While 1
        Sleep(100)
    Wend
    
    Func _ButtonAktion()
        Msgbox(0,"Info", "Button Nr. " & @GUI_CtrlId - $iFirstButtonId + 1 & " wurde gewählt.")
    EndFunc
    
    Func _Exit()
        Exit
    EndFunc
    Alles anzeigen
  • Anwendungen automatisch an bestimmte Monitorposition mit definierter Größe öffnen

    • Micha_he
    • 26. März 2019 um 09:04

    Meiner Meinung nach, wäre WinMove() die bessere Wahl.

  • ProcessExists für einzelne Benutzer

    • Micha_he
    • 13. Februar 2019 um 10:30

    Versuch es mal mit einem "Sleep(3000)" nach dem Shutdown-Kommando.

    Ich hatte ein ähnliches Problem einmal. Da beendete sich das Script zu schnell und daher wurde das Shutdown-Kommando erst gar nicht gestartet!

  • WMI: Alle Property's

    • Micha_he
    • 21. Dezember 2018 um 09:54

    Meist Du, Script-o-matic hätte ihm bei der Ermittlung der Property-Names einer Klasse geholfen ?

    Aber ich lasse mich gerne eines besseren belehren...

  • WMI: Alle Property's

    • Micha_he
    • 20. Dezember 2018 um 13:17
    Code
    For $Item in $colItems
        For $Prop In $Item.Properties_
            ConsoleWrite ($Prop.Name & @crlf)
        Next
    Next

    Versuch mal...

  • Icon verstecken (Systray)

    • Micha_he
    • 5. Dezember 2018 um 10:44

    Auf Basis der letzten Info's, habe ich nochmal eine verkürzte Variante geschrieben, die ohne Autoiter's UDF auskommt:

    Dateien

    RemoveSystrayIcon_V3.au3 9,65 kB – 475 Downloads
  • Icon verstecken (Systray)

    • Micha_he
    • 5. Dezember 2018 um 10:11

    Mein Beispiel oben enthält bereits eine korrigierte Version der _Get_Systray_Infos-Funktion. Die brauchst nur noch die originale UDF aus dem Beitrag von Autoiter im selben Ordner wie das Beispielskript.

  • Icon verstecken (Systray)

    • Micha_he
    • 5. Dezember 2018 um 10:02

    autoiter : Funktioniert leider auch nicht allen Fällen.

    Auf meinem Win7-System existieren 2 'ToolbarWindows32'-Instanzen. Einmal "Infobereich des Systems" und einmal "Infobereich des Benutzers". Deine Variante liefert bei mir (zufällig) die Instanz des "Infobereich des Systems" zurück und darin sind leider die bereffenden Objekte nicht.

    Desweiteren verwendest Du in der For-Schleife der _Get_Systray_Infos-Funktion die Variable $iInstances statt $i.

    Unter Zuhilfenahme der _ListControls-UDF von autoiter, sollte folgendes jetzt aber weitesgehend funktionieren, jedenfalls wenn das Windows deutsch oder englisch ist:

    Dateien

    RemoveSystrayIcon_V2.au3 10,28 kB – 464 Downloads
  • Icon verstecken (Systray)

    • Micha_he
    • 4. Dezember 2018 um 14:39

    Probiers mal mit dieser Variante. Die ToolbarWindows32-Instanz für den Infobereich ist bei Windows 10 eine '3'.

    Der Name passt auch schon...

    Dateien

    RemoveSystrayIcon.au3 9,44 kB – 499 Downloads
  • Icon verstecken (Systray)

    • Micha_he
    • 4. Dezember 2018 um 13:21

    Das von mir gepostete Script war für ein Symbol im Infobereich unten rechts. Kann natürlich sein das es mit Win10 nicht mehr läuft, müsste ich schauen.

    Aber das Tool 'PresentationSetting.exe' zeigt dort auch gar kein Symbol an, jedenfalls bei meinem Test. Nur das Symbol mittig in der 'Fensterleiste', für das gestartete Programm bzw. geöffnete Fenster. Meinst Du dieses Symbol ?

  • Icon verstecken (Systray)

    • Micha_he
    • 21. November 2018 um 16:10

    Hier mal meine damalige Lösung für ein ähnliches Problem. Wenn Du im Hauptprogramm das 'ProcessClose' weglässt, sollte damit das gewünschte möglich sein.

    Dateien

    RemoveSystrayIconAndProcess.au3 9,41 kB – 513 Downloads
  • PID Process ID überwachen

    • Micha_he
    • 21. September 2018 um 11:22

    Dann lass doch den Loop mit der PID-Prüfung weg und fahre ganz normal fort. Wo ist da ein Problem.

    Die in der Variable gesperte PID könntest Du auch später nochmal bei Bedarf auf Existenz prüfen.

  • Ältere Ordner löschen

    • Micha_he
    • 16. November 2017 um 06:50

    Damit solltest Du auf mein damaliges Beispiel kommen: Klick

  • DNS-Server IP auslesen

    • Micha_he
    • 3. November 2017 um 09:40

    Auf Basis der damaligen Idee nach niedrigster Metric zu wählen, hier eine WMI-Variante für die DNS-Einträge:

    AutoIt
    MsgBox(0,"Low Metric DNS", _LowMetricAllDNS())
    
    Func _LowMetricAllDNS($sHost = ".")
        Local $objAdapter, $iMetric = 500, $sDNS
        Local $EachDNS
        Local $objWMIService = ObjGet("winmgmts:{impersonationLevel = impersonate}!\\" & $sHost & "\root\cimv2")
        If Not IsObj($objWMIService) Then Return SetError(1, 0, 0)
        Local $colAdapter = $objWMIService.ExecQuery("Select * From Win32_NetworkAdapterConfiguration WHERE IPEnabled = True", "WQL", 0x30)
        If IsObj($colAdapter) Then
            For $objAdapter In $colAdapter
                If $objAdapter.IPConnectionMetric < $iMetric Then
                    $sDNS = ""
                    If IsArray($objAdapter.DNSServerSearchOrder) Then
                        For $EachDNS In $objAdapter.DNSServerSearchOrder
                            $sDNS &= $EachDNS & "|"
                        Next
                        $sDNS = StringTrimRight($sDNS, 1)
                        $iMetric = $objAdapter.IPConnectionMetric
                    EndIF
                EndIf
            Next
            If $sDNS Then Return $sDNS
        EndIf
        Return SetError(2, 0, 0)
    EndFunc
    Alles anzeigen
  • Hilfslinien bei Multigraph verschoben

    • Micha_he
    • 12. September 2017 um 09:21

    Jemand noch eine Idee, warum der Befehl "GUICtrlSetGraphic" das Zeichnen des Graphen bzw. vielleicht auch den Buffer verändert/verschiebt ?

    Sonst würde ich mal im englischen Forum fragen...

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™