Fehler in der deutschen Hilfe bitte hier melden (Hilfedatei 3.3.14.5 2020.08.30)

  • Hi,

    falls ihr beim benutzen der deutschen Hilfe Rechtschreibfehler, Formatfehler und inhaltliche Fehler findet, wäre es nett dass ihr diesen dann auch hier meldet.

    Dann können wir diese korrigieren.


    Bitte nur Fehler der Hilfedatei 3.3.14.5 2020.08.30 melden

  • Habe die Hilfe vorhin gedownloadet... die Dateien sind von 28.09.2020... dafür finde ich aber keine Seite hier im Forum, deshalb schreibe ich es hier.


    _WinAPI_GetAsyncKeyState


    Bemerkungen

    Obwohl das niedrigstwertige Bit des Rückgabewertes anzeigt, ob die Taste seit der letzten Abfrage gedrückt wurde, kann aufgrund des präventiven Multitasking-Verhaltens von Windows eine andere Anwendung GetAsyncKeyState aufrufen und das "kürzlich gedrpckte" Bit anstelle der Anwendung empfangen. Das Verhalten des niedrigstwertigen Bits des Rückgabewertes wird für die Kompatibilität mit 16-Bit-Windows-Anwendungen (die nicht präventiv sind) strikt beibehalten und worauf man sich jedoch nicht verlassen sollte.

    Obwohl das niedrigstwertige Bit des Rückgabewerts angibt, ob die Taste seit der letzten Abfrage gedrückt wurde, kann eine andere Anwendung aufgrund des vorbeugenden Multitasking-Charakters von Windows GetAsyncKeyState aufrufen und anstelle Ihrer Anwendung das Bit "Zuletzt gedrückt" empfangen. Das Verhalten des niedrigstwertigen Bits des Rückgabewerts wird aus Gründen der Kompatibilität mit 16-Bit-Windows-Anwendungen (die nicht präemptiv sind) streng beibehalten und sollte nicht verwendet werden.

  • Funktion _GUICtrlMenu_CreatePopup

    Bemerkungen

    Menüressourcen die mit einem Fenster verknüpft sind, werden automatisch wieder freigegeben. Falls das Menü nicht mit einem Fenster verknüpft ist, <= hier Zeilenumbruch löschen =>

    so muss eine Anwendung die Systemressourcen wieder freigeben bevor das Menü geschlossen wird. Um die Ressourcen wieder freizugeben, ist _GUICtrlMenu_DestroyMenu() aufzurufen.

    $MNS_NOTIFYBYPOS ist ein Menü-Header-Stil und hat keinen Einfluss individuelle Untermneüs angewandt werden.
    Vorschlag:
    $MNS_NOTIFYBYPOS ist ein Menü-Header-Stil und hat keine Auswirkung, wenn er auf einzelne Untermenüs angewendet wird.

  • _WinAPI_GetAsyncKeyState


    Rückgabewert

    Erfolg:Wenn die Funktion erfolgreich ist, gibt der Rückgabewert (SHORT) an, ob die Taste seit dem letzten Aufruf von GetAsyncKeyState gedrückt wurde und ob die Taste derzeit auf oder ab ist. Wenn das höchstwertige Bit gesetzt ist (KeyState < 0), ist die Taste gedrückt, und wenn das niedrigstwertige Bit gesetzt ist (Mod(KeyState, 2) = 1), wurde die Taste nach dem vorherigen Aufruf von GetAsyncKeyState gedrückt. Sie sollten sich jedoch nicht auf dieses letzte Verhalten verlassen. Weitere Informationen finden Sie in den Bemerkungen.
    Fehler:Der Rückgabewert ist 0 wenn die Taste nicht gedrückt ist oder in den folgenden Fällen:
    - Der aktuelle Desktop ist nicht der aktive Desktop
    - Der Vordergrund-Thread gehört zu einem anderen Prozess und der Desktop erlaubt den Hook oder die Journal-Aufnahme nicht.


    Bemerkungen

    Die für $iKey zu verwendenden Konstanten finden Sie in WinAPIvkeysConstants.au3


    Die GetAsyncKeyState-Funktion funktioniert mit Maustasten. Es wird jedoch der Status der physischen Maustasten überprüft, nicht die logischen Maustasten, denen die physischen Tasten zugeordnet sind. Beispielsweise gibt der Aufruf _WinAPI_GetAsyncKeyState ($VK_LBUTTON) immer den Status der linken physischen Maustaste zurück, unabhängig davon, ob sie der linken oder rechten logischen Maustaste zugeordnet ist. Sie können die aktuelle Zuordnung der physischen Maustasten zu logischen Maustasten durch das System ermitteln, indem Sie _WinAPI_GetSystemMetrics($SM_SWAPBUTTON) aufrufen, das TRUE zurückgibt, wenn die Maustasten ausgetauscht wurden.


    Obwohl das niedrigstwertige Bit des Rückgabewerts angibt, ob die Taste seit der letzten Abfrage gedrückt wurde, kann eine andere Anwendung aufgrund des vorbeugenden Multitasking-Charakters von Windows GetAsyncKeyState aufrufen und anstelle Ihrer Anwendung das Bit "Zuletzt gedrückt" empfangen. Das Verhalten des niedrigstwertigen Bits des Rückgabewerts wird aus Gründen der Kompatibilität mit 16-Bit-Windows-Anwendungen (die nicht präemptiv sind) streng beibehalten und sollte nicht verwendet werden.


    Sie können die Codekonstanten für virtuelle Schlüssel $VK_SHIFT, $VK_CONTROL und $VK_MENU als Werte für den Parameter vKey verwenden. Dies gibt den Status der UMSCHALT-, STRG- oder ALT-Tasten an, ohne zwischen links und rechts zu unterscheiden.


    Related

    _WinAPI_GetKeyState, _WinAPI_GetKeyboardState

  • Zitat

    Funktion _WinAPI_MessageBoxCheck

    Bemerkungen

    This function records the message boxes that the user has chosen to suppress under the following registry key.


    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\LowRegistry\DontShowMeThisDialogAgain

    Der Pfad ist bei mir unter Win 10 x64:


    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\DontShowMeThisDialogAgain

  • Google findet diesen AHK thread aus dem Jahr 2013. Scheint von der Windows-Version abzuhängen.

  • Ich bin mir noch nicht mal sicher, ob es tatsächlich ein Fehler in der Hilfe ist.
    So wie ich das bisher verstehe, wird vermutet, dass es abhängig von der Windows Version ist.


    Aber da ich mich in diesen Untiefen von Windows zu wenig auskenne, traue ich mir keine endgültige Aussage zu.
    Wir sollten aber verhindern, dass wir bei der Korrektur erst einen Fehler einbauen.


    Ich poste es mal im engl. Forum - vielleicht erbarmt sich jemand :)

  • Ich bin mir noch nicht mal sicher, ob es tatsächlich ein Fehler in der Hilfe ist.

    Ich habe es unter Bugs gepostet, in Abstimmung mit Tweaky, der in etwa meinte "ist egal wo du postest, landet alles bei mir!" 8o Und so ist es übersichtlicher, als wenn es überall verstreut liegt.


    Zum Thema: Wenn der Pfad z.B. unter Win 7 und 8.x so stimmt wie angegeben (NICHT getestet!), ist es eher als Ergänzung zu sehen, dass unter Win 10 der andere Pfad zutrifft. Dabei wäre zu klären, ob es in einer x32 Version von Win 10 auch so ist.

  • Ich habe mir mal die Funktion _WinAPI_MessageBoxCheck angesehen. Sie ruft

    Code
    DllCall('shlwapi.dll', 'int', 'SHMessageBoxCheckW', ...

    auf.

    SHMessageBoxCheckW ist hier dokumentiert. Am Ende wird der verwendete Link dokumentiert und der verwendet: LowRegistry.


    Habe gerade unter W7 und W10 getestet. Beide verwenden den Schlüssel ohne LowRegistry.


    Jetzt fehlt mir etwas der Plan: Ist das ein Dokumentationsfehler bei Microsoft? Oder hat LowRegistry sonst noch eine Bedeutung?


    Ich würde empfehlen, eine Änderung in der engl. bzw. deutschen Hilfe erst vorzunehmen, wenn wir verstehen, wo das Problem konkret liegt.


    P.S. Mit Bug habe ich die Ursache für diese unterschiedlichen RegKeys gemeint :)

  • Jetzt fehlt mir etwas der Plan: Ist das ein Dokumentationsfehler bei Microsoft? Oder hat LowRegistry sonst noch eine Bedeutung?

    Den Schlüssel "LowRegistry" gibt es definitiv, jedoch bei anderen Anwendungen (ich glaube beim IE oder so), aber halt nicht in dem Pfad, der in der AutoIt Hilfe steht.


    Auf der MS Seite zu SHMessageBoxCheckW steht als Datum 12/05/2018, das ist nicht sehr alt. Somit hätte ich eine recht hohe Zuverlässigkeit der Angaben angenommen.Der Beitrag steht unter ".../windows/win32/api/...". War unter deinen Testsystemen ein x32 Windows? Vielleicht ist es unter x32 anders. :/ Vielleicht habe ich irgendwo eine virtuelle Maschine mit x32 Win.

  • Bei W7 und W10 ist bei mir der LowRegistry Key leer. Google weist aber auch Ergebnisse zu diversen Programmen dazu auf.

    Meine beiden Testsysteme sind alle 64 Bit.

    Ich denke aber, dass die MS Doku nicht in einen 32 Bit und einen 64 Bit Teil zerfällt, sondern nur auf 64 Bit hingewiesen wird, wo es notwendig ist z.B. wenn beid en APIs die Parameter ein anderes Format haben.

    Aber wie gesagt: Da habe ich zu wenig Ahnung.

  • Ok, habe es gerade unter Win 7 x32 getestet, und es ist dort das Gleiche wie unter Win 10: Zwar gibt es einen "LowRegistry" Schlüssel, aber auch dort wird er nicht verwendet. Somit sieht es tatsächlich nach einem Fehler aus. Wo er herkommt und ob MS das falsch publiziert hat kann ich nicht sagen. Was ich sagen kann ist, bei allen Tests, sowohl von dir als auch von mir wird der Registry-Pfad OHNE LowRegistry verwendet!


    Auf jeden Fall sollte man auch den "richtigen" Pfad in der Hilfe zeigen .Entscheidet ihr, was zu tun ist.


    Edit: Nachtrag nur zur Information. Der Schlüssel LowRegistry war auch bei einer jungfräulichen Win 7 x32 Registry vorhanden, der Schlüssel DontShowMeThisDialogAgain war NICHT vorhanden und wurde erst angelegt, nachdem ich das Häkchen in der MsgBox gesetzt hatte.