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

Beiträge von UEZ

  • FreeBasic Debug Hilfe

    • UEZ
    • 5. Juni 2021 um 14:41
    Zitat von Alina

    es erscheind kurz eine Fenster von "Dos" (schwarzer Hintergrund) und das verschwindet dann. danach nichts zu sehen, auch unten re. nichts zu sehen

    Sorry, hatte vergessen, dass auf Win7 TLS 1.1 und TLS 1.2 aktiviert sein muss, damit das Tool funktioniert.

    Ich habe das Zip Archiv aktualisiert -> wenn du jetzt startest, sollte eine Fehlermeldung kommen!

    In diesem Thread ist eine Anleitung, wie du unter Win7 TLS 1.1 und TLS 1.2 aktivieren kannst. Falls du Lust hast, kannst du das Update einspielen, wenn nicht, auch ok.

    Danke.

    Ich weiß nicht, wie man in einer VM mehrere Monitore einbinden kann, sonst hätte ich es selbst getestet, wie sich unter Win7 das Fenster verhält, wenn man es zwischen den unterschiedlichen Monitoren hin und her bewegt.

    Apropos, ist es überhaupt möglich unter Win7 unterschiedliche DPIs zu fahren?

  • UEFA EURO 2020 Tipp Wettbewerb

    • UEZ
    • 29. Mai 2021 um 19:23

    Hier die nächste Tipprunde UEFA EURO 2020. Am 11.06.21 geht's los.:rock:

    Einfach unter https://www.kicktipp.de/autoit-em21 kostenlos anmelden, falls noch kein Account existiert, und bei autoit-em21 Mitglied werden.

    Ich hoffe auch diesmal auf rege Beteiligung. :)


    Viel Spaß und viel Glück!

  • FreeBasic Debug Hilfe

    • UEZ
    • 26. Mai 2021 um 18:41

    OS sollte Windows 7 sein.

    Ich will testen, was das Fenster macht,

    a) vom 96 DPI Monitor (Default) zum andern Monitor (> 96 DPI),

    b) vom >96 DPI Monitor (Default) zum anderen Monitor (= 96 DPI)

    Download: Radio Station

    Das Logo sollte immer rechts unten sein und beim wechseln dort bleiben.

  • Kicktipp Bundesliga 2020/2021 Wett-Tippen!

    • UEZ
    • 22. Mai 2021 um 19:31

    Herzlichen Glückwunsch an SirChrizm! :thumbup:

    Bald kommt der EM Kick-Tipp...

  • Consolen Fenster hooken

    • UEZ
    • 17. Mai 2021 um 15:52
    Zitat von Schnuffel

    Ich bekam aber nur einen grünen Strich hin.

    Lass' mal den Code sehen, ob ich den Strich auch sehen kann. :)

  • Consolen Fenster hooken

    • UEZ
    • 16. Mai 2021 um 13:18

    Schnuffel danke für den Hinweis, aber in diesem Fall geht es um ein externes Fenster (CMD Box) und ich weiß nicht, ob ModernMenu auch für externe Fenster gültig ist. Mal sehen...

    Btw, wenn ich das Default Icon vom Close / Schließen verwende, dann erscheint das Icon (X).

  • Struktur _CONSOLE_FONT_INFOEX in AutoIt darstellen

    • UEZ
    • 9. Mai 2021 um 13:45

    Hi BugFix

    Zitat von BugFix

    Unklar ist mir: WCHAR FaceName[LF_FACESIZE];

    Dies ist ein Array mit dem Typ WCHAR.

    Die Definition könnte so aussehen:

    AutoIt
    Global Const $tagCONSOLE_FONT_INFOEX = "ULONG cbSize; DWORD nFont; SHORT X; SHORT Y; UINT dwFontFamily; UINT FontWeight;wchar FaceName[32];"

    CONSOLE_SCREEN_BUFFER_INFO:

    AutoIt
    Global Const $tagCONSOLE_SCREEN_BUFFER_INFO = "SHORT dwSizeX; SHORT dwSizeY; SHORT dwCursorPositionX;SHORT dwCursorPositionY;" & 
                                                                                        "SHORT wAttributes; SHORT srWindowLeft; SHORT srWindowTop; SHORT srWindowRight; SHORT srWindowBottom;" & _
                                                                                        "SHORT dwMaximumWindowSizeX; SHORT dwMaximumWindowSizeY"

    Ich wollte auch damit Anfangen eine Console UDF zu basteln, habe aber mich daran erinnert, dass Mat beriets eine fast vollständige Consolen UDF gebastelt hatte -> https://code.google.com/archive/p/consoleau3/downloads.

  • Consolen Fenster hooken

    • UEZ
    • 8. Mai 2021 um 14:54
    Zitat von BugFix

    Wenn ich deinen Code ausführe passiert bei mir rein gar nichts. :rolleyes:

    - ich öffne eine Konsole

    - dann starte ich dein Skript

    - in der Konsole ist das Menü unverändert

    Wenn du das Skript von Post#1 kompiliert und gestartet hast, dann sollte nur in die CMD Box "Test selected" erscheinen, wenn du den Menu Eintrag "Test" selektiert hast. In dem nächsten Problem geht das darum, dem Test Eintrag ein Icon zu verpassen.

    Zitat von BugFix

    Alternative:

    Verwende doch eine eigene Konsole, die kannst du dann nach Lust und Laune gestalten und mit ihr interagieren.

    Zu dem Thema Eigene Konsole hatten wir vor Jahren hier schon etwas gepostet (ProgAndy und ich). Leider wurden die Links bei der Forenaktualisierung nicht umgestellt und somit sind die Posts unauffindbar. 8|

    Primär geht es mir nicht um die Consolen Funtionalität, sondern um die Interaktion mit dem Menu. Eigentlich benötige ich diese Funktionalität eher für mein FB Programm "Radio Station", aber dies kann man vielleicht auch in Autoit gebrauchen, da im Prinzip die WinAPI angezapft wird und die Programmiersprache ist eher Nebensache.

    In FB speichere ich die Menus, danach lösche ich die letzen 4 und am Ende stelle ich sie wieder her. Das funktioniert auch soweit, aber das Icon z.B. für "Close" / "Schließen" wird nicht gesetzt. Ferner würde ich auch gerne für meinen Eintrag ein Icon haben.

    Zitat von Musashi

    Ok, mein Fehler. AutoIt ist bei mir in einem anderen Pfad installiert, da kann er die .gif natürlich nicht finden :whistling:. So sieht es jetzt aus :


    (Edit) UEZ :

    Ich weiß, Du hast die 'Merlin.gif' hier nur zu Demozwecken genommen. Wäre es im Rahmen der Tests aber nicht trotzdem sinnvoll, folgenden Parameter zu verwenden ?

    AutoIt
    $hImage = _GDIPlus_ImageLoadFromFile(StringRegExpReplace(@AutoItExe, "(?i)AutoIt3.exe$", "") & "Examples\GUI\Merlin.gif")

    Eigentlich wollte ich ein Base64 eingebettes Icon benutzen, aber im Prinzip ist das für diesen Test egal, wo die Quelle ist, sondern die Frage, wie bekomme ich das Icon dorthin.

  • Consolen Fenster hooken

    • UEZ
    • 6. Mai 2021 um 20:14

    Wir wechseln uns immer alle 2 Wochen mit meinem Kollegen ab, d.h. eine Personen ist dann immer im Büro.


    Zurück zum Thema: warum kann ich kein Icon dem Menu Eintrag zuweisen?

    AutoIt
    #AutoIt3Wrapper_Change2CUI=y
    #include <GDIPlus.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiMenu.au3>
    #include <WinAPIConstants.au3>
    #include <WinAPISys.au3>
    #include <WindowsConstants.au3>
    
    
    Global $id_Test = 5201
    Global $hConsole = DllCall("kernel32.dll", "hwnd", "GetConsoleWindow")[0]
    
    HotKeySet("{ESC}", "_Exit")
    
    Global $hSysmenu = _GUICtrlMenu_GetSystemMenu($hConsole)
    Global $iCount = _GUICtrlMenu_GetItemCount ($hSysmenu)
    _GUICtrlMenu_InsertMenuItem($hSysmenu, $iCount, "Test", $id_Test)
    _GDIPlus_Startup()
    $hImage = _GDIPlus_ImageLoadFromFile("c:\Program Files (x86)\AutoIt3\Examples\GUI\Merlin.gif")
    $hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $hBitmap = ' & $hBitmap & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
    _GUICtrlMenu_SetItemBmp($hSysmenu, $id_Test, $hBitmap, False)
    _GDIPlus_ImageDispose($hImage)
    _GDIPlus_Shutdown()
    Global $iMouseFunc
    Global $hMouseHook
    
    ;~ Global $tParam = DllStructCreate("int")
    ;~ Global $iThread = DllCallbackRegister("_ThreadMouse", "none", "int")
    ;~ ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $iThread = ' & $iThread & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
    ;~ Global $hThread = DllCall("kernel32.dll", "hwnd", "CreateThread", "ptr", 0, "dword", 0, "ptr", DllCallbackGetPtr($iThread), "struct*", $tParam, "dword", 0, "dword*", 0)[6]
    ;~ ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $hThread = ' & $hThread & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
    
    Do
        Sleep(1000)
    Until False
    
    Func _Exit()
        ConsoleWrite("Exiting..." & @CRLF)
        _GUICtrlMenu_DeleteMenu ($hSysmenu, $id_Test, False)
        _WinAPI_DeleteObject($hBitmap)
    ;~     _WinAPI_UnhookWindowsHookEx($hMouseHook)
    ;~     DllCallbackFree($iMouseFunc)
    ;~     DllCallbackFree($iThread)
    ;~     DllCall("kernel32.dll", "none", "ExitThread", "dword", 1)
        Exit
    EndFunc
    
    Func _MouseHook($iCode, $iwParam, $ilParam)
        If $iCode >= 0  And $iwParam = $WM_LBUTTONDOWN Then
            If $hSysmenu  Then
                If _GUICtrlMenu_GetItemHighlighted($hSysmenu, $id_Test, False) Then
                    ConsoleWrite("Test selected" & @CRLF)
                EndIf
            EndIf
        EndIf
        Return _WinAPI_CallNextHookEx($hMouseHook, $iCode, $iwParam, $ilParam)
    EndFunc
    
    Func _ThreadMouse($empty)
        $iMouseFunc = DllCallbackRegister("_MouseHook", "int", "int;wparam;lparam")
        ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $iMouseFunc = ' & $iMouseFunc & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
        $hMouseHook = _WinAPI_SetWindowsHookEx($WH_MOUSE_LL, DllCallbackGetPtr($iMouseFunc), _WinAPI_GetModuleHandle(0))
        ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $hMouseHook = ' & $hMouseHook & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
        Do
        Until GUIGetMsg() = $GUI_EVENT_CLOSE
    EndFunc
    Alles anzeigen

    In FB habe ich einfach den Maus Hook als Thread laufen und die Maus macht seit dem keine Mucken mehr. In Autoit läuft das noch nicht mit dem Threading...

  • Consolen Fenster hooken

    • UEZ
    • 6. Mai 2021 um 08:05
    Zitat von BugFix

    UEZ Kann leider nicht testen, bin bis Freitag auf Dienstreise.

    Kein Problem. Dienstreise in der Pandemie Zeit...krass.

    @Musashi das ist kein reines Autoit Problem, sondern tritt auch mit FB auf. Vielleicht hast du es geahnt, dass ich dies für den Radio Station Player benötige, da es ein Consolen Proggy ist.

    Ich habe den Hook bereits in FB implementiert und dort habe ich auch das Problem, wie bereits geschrieben. Komisch ist nur, dass der Hook nicht immer in FB greift. Das merke ich daran, dass die Maus wie gewohnt sich bewegen lässt. Wenn dies der Fall ist, dann funktioniert auch der Check, ob der Menu Eintrag selektiert wurde, nicht.

    Ich werde es mal in der VM testen, ob dies vielleicht ein Win10 Ding ist.

  • Consolen Fenster hooken

    • UEZ
    • 5. Mai 2021 um 22:01
    Zitat von BugFix

    Es könnte helfen, wenn du beim Eintritt in die Maus-Hook Funktion zuerst auf die Bedingungen prüfst, bei denen die Funktion nicht arbeiten soll und sie sofort wieder verlässt.

    iCode < 0 Or wParam <> LDown

    Hmm, leider immer noch gleich. Hast du nicht den Effekt?

  • Consolen Fenster hooken

    • UEZ
    • 5. Mai 2021 um 21:10

    Das Maus Hooking verursacht ein laggen der Mausbewegung. Habt ihr das auch? Falls ja, wie kann man das abstellen?

  • Consolen Fenster hooken

    • UEZ
    • 4. Mai 2021 um 21:50

    Ich suche nach einer Möglichkeit das Systemmenu eines Consolen Fensters (CMD Box) zu hooken, um ein Menu Eintrag, das ich angelegt habe, zu kontrollieren.

    D.h., wenn ich z.B. ein Menü Eintrag "About" hinzufüge und dieser selektiert wird, soll dann ein Prozess starten.

    Leider habe ich kein Weg gefunden, um diesen Event zu kontrollieren, wie er normalerweise über WM_NOTIFY möglich wäre.

    Hat jemand eine Idee?


    Edit: dies scheint zu funzen.

    AutoIt
    #AutoIt3Wrapper_Change2CUI=y
    #include <GuiMenu.au3>
    #include <WinAPIConstants.au3>
    #include <WinAPISys.au3>
    #include <WindowsConstants.au3>
    
    Global $id_Test = 1000
    Global $hConsole = DllCall("kernel32.dll", "hwnd", "GetConsoleWindow")[0]
    
    HotKeySet("{ESC}", "_Exit")
    
    Global $hSysmenu = _GUICtrlMenu_GetSystemMenu($hConsole)
    Global $iCount = _GUICtrlMenu_GetItemCount ($hSysmenu)
    _GUICtrlMenu_InsertMenuItem($hSysmenu, $iCount, "Test", $id_Test)
    
    Global $hMouseFunc = DllCallbackRegister("_MouseHook", "int", "int;wparam;lparam")
    Global $hMouseHook = _WinAPI_SetWindowsHookEx($WH_MOUSE_LL, DllCallbackGetPtr($hMouseFunc), _WinAPI_GetModuleHandle(0))
    
    Do
        Sleep(50)
    Until False
    
    Func _Exit()
        _WinAPI_UnhookWindowsHookEx($hMouseHook)
        DllCallbackFree($hMouseFunc)
        Exit
    EndFunc
    
    Func _MouseHook($iCode, $iwParam, $ilParam)
        If $iCode >= 0  And $iwParam = $WM_LBUTTONDOWN Then
            If $hSysmenu  Then
                If _GUICtrlMenu_GetItemHighlighted($hSysmenu, $id_Test, False) Then
                    ConsoleWrite("Test selected" & @CRLF)
                EndIf
            EndIf
            Return 0
        EndIf
    
        Return _WinAPI_CallNextHookEx($hMouseHook, $iCode, $iwParam, $ilParam)
    EndFunc
    Alles anzeigen
  • Menu Item wieder zurückholen

    • UEZ
    • 24. April 2021 um 19:17

    Bitnugger vielen Dank! Funzt wie erwartet!

    :thumbup:

    Jetzt muss ich sehen, ob man auch für das CMD Box Fenster dies anwenden kann.

  • Menu Item wieder zurückholen

    • UEZ
    • 24. April 2021 um 14:24

    Hat jemand eine Idee, wie ich ein Menu Item, welches ich mit _GUICtrlMenu_RemoveMenu() gelöscht habe, wieder zurückholen kann mit allen Untermenüs?

    Beispiel: in Notepad wird der Menueintrag "Hilfe / Help" gelöscht.

    AutoIt
    #include <GuiMenu.au3>
    
    Example()
    
    Func Example()
        Local $hWnd, $hMain
    
        ; Open Notepad
        Run("notepad.exe")
        WinWaitActive("[CLASS:Notepad]")
        $hWnd = WinGetHandle("[CLASS:Notepad]")
        $hMain = _GUICtrlMenu_GetMenu($hWnd)
        ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $hMain = ' & $hMain & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
        $iD = _GUICtrlMenu_GetItemID ( $hMain, 4)
        ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $iD = ' & $iD & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
        $hMenu_save = _GUICtrlMenu_GetItemSubMenu($hMain, 4)
        ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $hMenu_save = ' & $hMenu_save & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
    
        Sleep(1000)
        ; Remove Help menu
        _GUICtrlMenu_RemoveMenu($hMain, 4)
    
        Sleep(2000)
    ;~     ConsoleWrite(_GUICtrlMenu_SetMenu($hMain, $hMenu_save) & @CRLF)
    ;~     ConsoleWrite(_GUICtrlMenu_SetItemSubMenu ( $hMain, 4, $hMenu_save) & @CRLF)
    ;~     _GUICtrlMenu_InsertMenuItem ( $hMain, 4, "Help", $iD,  $hMain)
        _GUICtrlMenu_DrawMenuBar($hMain)
    
    EndFunc   ;==>Example
    Alles anzeigen

    Laut MS

    Zitat

    Deletes a menu item or detaches a submenu from the specified menu. If the menu item opens a drop-down menu or submenu, RemoveMenu does not destroy the menu or its handle, allowing the menu to be reused. Before this function is called, the GetSubMenu function should retrieve a handle to the drop-down menu or submenu.

    Danke.

  • FreeBasic Debug Hilfe

    • UEZ
    • 11. April 2021 um 12:54
    Zitat von Bitnugger

    Heute habe ich dein Tool gestartet... und nach dem ~17 Song ist auf einmal nur noch Stille... kommt nichts mehr... aber (das Wichtigste) der Ball dreht sich noch. ;)

    Puuh, da bin ja beruhigt. :rofl:


    Zitat von Bitnugger

    Für die zusätzlichen Buttonbar-Windows überwacht DisplayFusion die Position der Windows, die eine Titelbar haben. Ändert sich eine Position, wird das zugehörige Buttonbar-Windows entsprechend verschoben. Mehr passiert nicht mit den Windows. Falls gewünscht, kann man das Erzeugen eines zusätzlichen Buttonbar-Windows für bestimmte Fenster aber auch unterbinden... FireFox ist in der Liste schon vordefiniert.

    Falls es dir nicht zu viel Umstände bereitet: könntest du das Tool mal abschalten und nochmals testen? Denn ich arbeite primär auch auf Win10 x64 und bei mir läuft alles wie geplant.:)

  • FreeBasic Debug Hilfe

    • UEZ
    • 10. April 2021 um 11:10
    Zitat von Bitnugger

    DisplayFusion... daran liegt es aber sicher nicht, denn da wird nur was ausgelöst, wenn ich einen der Buttons anklicke.

    Fenster auf Titelleiste reduzieren, Fenster auf nächsten Monitor verschieben, Fenster immer im Vordergrund halten, Einstellungen (DisplayFusion) öffnen

    Hmm, die Aussage ist aber gewagt. Irgendwie muss das Tool ja sich in die CMD Fenster einklinken und entsprechend reagieren. Ich möchte aber auch nicht behaupten, dass dies daran liegt, aber ausschließen möchte ich es auch nicht.

    Zitat von Bitnugger

    Radio Station amigaremix.com.exe

    Nach dem 3. Song ist der Ball weg und ich sehe nur noch ein schwarzes Rechteck... nach dem 4. ist auch das weg... Win 10 X64.

    Ist das immer nach dem 3. Song?

  • Suche About-Dialog mit Credits-Bereich

    • UEZ
    • 10. April 2021 um 00:34

    Ist wie beim Abspann von einem Film. In seltensten Fällen wird der Abspann angeschaut, es sei denn, man kann was sehen und/oder hören. ;)

    Die fliegenden Buchstaben eignen sich eher für kürzere Texte. Für längere Texte würde ich dann eher eine Laufschrift nehmen, wie beim Filmabspann.

  • Suche About-Dialog mit Credits-Bereich

    • UEZ
    • 9. April 2021 um 20:37

    Hier meine Version auch im diesem Forum. :)

    Dateien

    About Window.au3 100,38 kB – 443 Downloads
  • FreeBasic Debug Hilfe

    • UEZ
    • 9. April 2021 um 08:04
    Zitat von Bitnugger

    Radio Station amigaremix.com.exe

    Nach dem 3. Song ist der Ball weg und ich sehe nur noch ein schwarzes Rechteck... nach dem 4. ist auch das weg... Win 10 X64.

    Erst einmal danke fürs Testen. Hmmm, das ist aber komisch, denn ich arbeite primär auch mit Win10 x64 und bei mir dreht sich der Ball durchgehend, zumal die GIF Animation alle 30 ms aktualisiert wird.

    Bei dir muss wohl was anders sein. Ich sehe auf dem Screenshot, dass die CMD Titelleiste noch einige Icons hat, die kein Standard sind. Was ist das für ein Tool, dass sich in das CMD Fenster einklinkt?

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™