Beiträge von UEZ

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

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

    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.


    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.


    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.

    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?


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

    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.

    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?

    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.

    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.



    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.

    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:



    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.:)

    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.

    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?

    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.

    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?

    ConEmu - mein Favorit für die CMD.

    Schaue ich mir an.


    Das mit der rechten Maustaste ist ein Feature der Console, d.h. der Inhalt des Clipboards wird in die Console gesendet (Quick Edit Mode). Muss mal checken, wie ich dies abschalten kann.