controll einer fremden anwendung verändern?

  • hallo

    mal so ne frage

    gibt es eine funktion mit der man ein controll eines anderen fensters verändern kann?

    so wie z.b. ControlDisable nur z.b. conrollsetpassword?
    das das controll zu einem passwortfeld wird?

  • Wenn du unter einer fremden Andwendung z.B MS Outlook oder Firefox usw meinst dann geht sowas nicht.

  • Jo stimme hoschbert zu...bei fremdanwendungen wie FF geht das nich so leicht, aber wenn du deine eigene Gui meinst dann geht das mit GuiCtrlSetstyle:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <EditConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Opt('MustDeclareVars', 1)

    [/autoit] [autoit][/autoit] [autoit]

    Example()

    [/autoit] [autoit][/autoit] [autoit]

    Func Example()
    Local $msg,$input,$button

    GUICreate("My GUI style",-1,200) ; will create a dialog box that when displayed is centered

    [/autoit] [autoit][/autoit] [autoit]

    $input = GuiCtrlCreateEdit("Passwort", 10,20)
    $button = GuiCtrlCreateButton("StyleChange", 220, 75)

    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    ; Run the GUI until the dialog is closed
    While 1
    $msg = GUIGetMsg()
    If $msg = $GUI_EVENT_CLOSE Then
    ExitLoop
    ElseIf $msg = $button Then
    GuiCtrlSetstyle($input, $ES_ReadOnly)
    ENdIf
    WEnd
    EndFunc ;==>Example

    [/autoit]
  • Bei nem eigenen Gui geht das und ist auch viel einfacher. Ich glaube aber es würde gehen wenn du eine bestimmte seite in ff oder so in ein Gui machst.
    Kann dir aber nichts versprechen ;)
    mfg Bio

  • also ich würde mal sagen,
    dass man wahrscheinlich alles ändern kann, was man unter Windows sieht.
    Es ist wahrscheinlich eher eine Frage des Aufwandes. ;)

    Ich habe heute zufällig eine Funktion "entdeckt" im engl. Forum, mit der man beliebige Edit's in ein fremdes Gui/Programm/Fenster einbauen kann.
    Es ist sicherlich auch möglich bestehende Edit's zu ändern.
    Zum Glück muss mich mein Gewissen nicht plagen, ob ich das Preis gebe oder nicht, da ich auch nicht weiß wie das Geht. :rofl:

    Aber mal zum Einblick: der Link zu AnyGui...

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

  • Ey, alle zusammen, guckt euch mal die Controls an, in der Hilfe!

    Eh und was hat das jetzt mit dem Thema zu tun? Les dir bitte den ersten Post genauer durch!


    Und Schnuffel: Cool thx das kannte ich noch garnich 8) Habs mir durchgelesen und im prinzip ist das noch recht einfach aber sehr gut gemacht:
    Die UDF ermittelt die Position wo sich die Controls befinden, erstellt dann eine neue Gui direkt über den Controls, macht diese transparent und platziert
    neue Controls direkt über den alten... das heißt man kontrolliert nicht die alten Controls, sondern man überspielt einfach die alten mit neuen und kann dann den neuen Controls einfach neue Funktionen zuweisen.Cool... :D

    2 Mal editiert, zuletzt von ChaosKeks (12. April 2009 um 23:35)

  • @ChaosKeks
    Ganz einfach, man kann mit ControlGetHandel den Handel des Steuerelements herausbekommen, und wenn man den hat muss man doch nur noch einen kleinen _SendMessage ausführen!

    Spoiler anzeigen
    [autoit]

    #include <EditConstants.au3>
    #include <SendMessage.au3>
    _SendMessage(ControlGetHandle("AutoIt-Hilfe","","[CLASS:Edit; INSTANCE:1]"), $EM_SETPASSWORDCHAR, Asc("*"))

    [/autoit]

    mfg. Jam00

  • Und was hat _SendMessage jetzt damit zu tun sich die verschiedenen Controls in der Hilfe anzusehen? Sag doch einfach direkt _SendMessage ;)