gibt es ein befehl ausser blockinput das nur wehrend autoit das ausführbare fenster blockt

  • Hallo alle zusammen!

    Es geht darum ich möchte gern ein Programm was mit autoit installiert wird blocken so das man nicht mehr zwischen funken kann aber trotzdem am rechner was anderes machen können. wenn ich blockinput einsetze dann wird ja die maus und tastertur geblockt. ich möchte nur das Installationsfenster was autoit auführt blocken vor schutzt das es nicht die befehle verändert wird so das autoit seine arbeit richtig macht. :wacko:

    Gruß Baron1977

  • Eine eigene transparente GUI drüberlegen, und immer wenn WinActive(Installationsfenster) Dann WinActivate(DeinTransparentesFenster) und Winmove(ZUr selben Position und größe wie das Installationsfenster).

    Twitter: @L3viathan2142
    Benutze AutoIt persönlich nicht mehr, da ich keinen Windows-Rechner mehr besitze.

  • ja wenn das sowieso eine automatische Installation werden soll,
    warum dann nicht gleich das Installationsfenster verschwinden lassen mit:
    ;)

    [autoit]

    WinSetState("title", "text", @SW_HIDE)

    [/autoit]

    Bedienen kannst Du das Fenster doch trotzdem.
    Machste noch eine schöne kleine Gui als MsgBox, die in der oberen rechten Ecke sitzt, oder nur im Tray, oder .....
    die über den Installationsstatus informiert :D

    ...oder auch nicht :rofl:

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • hier ein Beispiel.:

    [autoit]

    Run("Nero-7.10.1.0_deu_trial.exe")
    WinWaitActive("Nero Ask Toolbar")
    Send("{TAB}")
    Send("{SPACE}")
    Send("!s")
    Send("!w")
    WinWaitActive("Nero 7", "Der Installations-Assistent")

    [/autoit]

    habe schon versucht aber ich kann immer noch zugreifen in der installersion es soll wirklich nur das wie in diesem beispiel blockiert werden damit es in ruhe installiert werden kann ohne das man da zwischen funkt. ?(

    WinSetState(@SW_HIDE) ist auch eine idee und dann sein eigenes installersionsbalken einbauen .

    was müßte ich genau bei WinSetState

    @SW_HIDE
    @SW_DISABLE
    @SW_ENABLE

    eintragen damit es geht ?(

    Gruß Baron1977

  • da ich ja nicht genau weiß wie ich WinSetstate einsetze

    habe es so schon probiert und umgekehrt das run als erstes ist

    [autoit]

    WinSetState("Nero-7.10.1.0_deu_trial.exe", @SW_DISABLE)
    Run("Nero-7.10.1.0_deu_trial.exe")
    WinWaitActive("Nero Ask Toolbar")
    Send("{TAB}")
    Send("{SPACE}")
    Send("!s")
    Send("!w")
    WinWaitActive("Nero 7", "Der Installations-Assistent")

    [/autoit]

    Bitte um Hilfe ;(

    Gruß Baron1977

  • Hallo Baron1977,

    Zitat

    WinSetState("Nero-7.10.1.0_deu_trial.exe", @SW_DISABLE)
    Run("Nero-7.10.1.0_deu_trial.exe")
    WinWaitActive("Nero Ask Toolbar")


    1. Du kannst kein Fenster mit WinSetState "bearbeiten", das noch gar nicht existiert :D
    2. Das Fenster selbst hat sicherlich nicht den Namen: Nero-7.10.1.0_deu_trial.exe ;)
    3. Der Aufruf des Befehls WinSetState erfordert mehr Parameter.
    Du musst nach dem Fensternamen auch noch beliebigen Text aus dem Fenster oder "" angeben.
    WinSetState ( "title", "text", flag ) siehe Hilfe ... :thumbup:
    4. Dein Aufruf müsste dann so aussehen:

    Spoiler anzeigen
    [autoit]

    Run("Nero-7.10.1.0_deu_trial.exe")
    WinWaitActive("Nero Ask Toolbar")
    WinSetState("Nero Ask Toolbar","", @SW_DISABLE)

    [/autoit]


    5. @SW_DISABLE scheint nicht bei allen Fenstern zu funktionieren. In diesem Fall versuche es mit @SW_HIDE.
    Du kannst ja die Installation komplett fertig machen und wenn es funktioniert zum Schluß das Fenster "verstecken" :D
    Anbei ein Beispiel, wie das mit dem Verstecken funktioniert.
    Wenn Du das Fenster verstecken willst, und nebenbei auch ein Anwender damit arbeiten soll, kommst Du nicht umhin, die Installation mit ControlSend zu machen.
    Die Funktionsweise von ControlSend entnimm bitte der Hilfe.
    Verwende zum Identifizieren der einzelnen Controls deines Installationsfensters das Tool AutoIt Windo Info. (ist im Programmordner von AutoIt)

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstants.au3>
    ShellExecute("notepad.exe")
    WinWait("Unbenannt - Editor")
    WinMove("Unbenannt - Editor","",0,0,400,200)
    Send("Dieses Fenster verschwindet jetzt gleich")
    Sleep(1000)
    WinSetState("Unbenannt - Editor","",@SW_HIDE)
    ControlSend("Unbenannt - Editor","","[CLASSNN:Edit1]",@CRLF&"Dieser Text wurde geschrieben, während ich unsichtbar war :-)")
    WinMove("Unbenannt - Editor","", 0, 0, 550,200)
    sleep(3000)
    WinSetState("Unbenannt - Editor","",@SW_SHOW)

    [/autoit]

    FF ( Viel Vergnügen) :rofl:

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)