Funktion SEND und Bildschirmschoner

  • Hallo Zusammen,

    habt ihr vielleicht einen Trick wie man mittels SEND Tastendrücke an einen Dialog senden kann auch wenn der Bildschirmschoner aktiv ist?

    Konkret habe ich das Problem, daß ich das Script ausführen kann und auch das entsprechende Programm startet. Nur wenn der Logindialog erscheint, dann funktioniert das Senden von Benutzername und Passwort nicht. Wenn der Bildschirmschoner nicht aktiv ist, dann klappt es prima.

    Vielen Dank für eure Hilfe,
    Grüße

    Thomas

    Cuiusvis hominis est errare, nullius nisi insipientis in errore perseverare.
    [Cicero, Philippica 12,2]

    Einmal editiert, zuletzt von TheDude (19. Januar 2010 um 10:43)

  • Ich kapier nicht ganz, was du willst ^^
    wenn du den bildschirmschoner beenden willst:
    Dann mach vorher einmal mausmove ODER Deaktivire den bildschirmschoner: rechtsklick auf Desktop Eigenschaften -> Bildschirmschoner und als bildschirmschoner wählst du "kein" aus.
    Wenn du trotz Bildschirmschoner eingaben senden willst, ohne ihn zu beenden:
    Probier mal ControlSend, weiß nciht ob es geht, aber ien versuch ist es wert... ;)

    p.s. es würde mir und den anderen helfen, wenn du dein Programmscript hier reinstellen würdest, und sagen könntest, um welches Programm es sich handelt.

    l.g. Jonathan

  • Hallo Jonathan,

    Der Rechner ist im AD und die Bildschirmschoner-Einstellungen sind per Policy gesetzt. Um den Bildschirmschoner zu deaktivieren bedarf es CTRL-ALT-DEL, was ich nicht senden kann. Daher meine Frage.

    Zur Zeit benutze ich folgendes um die Daten zu senden:


    Code
    WinActivate("Anmeldung")
     ControlFocus("Anmeldung", "", "Edit1")
     Sleep(1000)
     Send("Username")
     Send("{TAB}")
     Send("Password")
     Send("{ENTER}")

    Ich werde mich aber, wie vorgeschlagen, mit den Control-Funktionen auseinandersetzen. Klingt gut und könnte des Rätsels Lösung sein. :P Mal sehen, was ich stricken kann.

    Viele Grüße
    Thomas

    Cuiusvis hominis est errare, nullius nisi insipientis in errore perseverare.
    [Cicero, Philippica 12,2]

  • Hallo Zusammen,

    ... also - die Informationen zu den Funktionen klingen recht gut. Nur wie bekomme ich die Control-ID heraus? Ist mit Control-ID die "ID" gemeint, die ich mit dem Tool AU3INFO.EXE unter dem Tab "Control" angezeigt bekomme? Dann wäre es ja wirklich einfach ... :thumbup:

    Nochmals danke,
    Grüße

    Thomas

    Cuiusvis hominis est errare, nullius nisi insipientis in errore perseverare.
    [Cicero, Philippica 12,2]

  • Hallo Jonathan,

    Send(^!{Esc})

    ... habe ich probiert, leider ohne Erfolg. :S

    Grüße
    Thomas

    Cuiusvis hominis est errare, nullius nisi insipientis in errore perseverare.
    [Cicero, Philippica 12,2]

  • ... also - die Informationen zu den Funktionen klingen recht gut. Nur wie bekomme ich die Control-ID heraus? Ist mit Control-ID die "ID" gemeint, die ich mit dem Tool AU3INFO.EXE unter dem Tab "Control" angezeigt bekomme? Dann wäre es ja wirklich einfach ...

    Genau so ist es.
    Ich bevorzuge aber den Advanced Classname, statt der ID

    Send(^!{Esc})

    ... habe ich probiert, leider ohne Erfolg. :S


    Das könnte daran liegen, dass es da "" fehlen. :P:P:P

    [autoit]

    Send("^!{DEL}")

    [/autoit]
  • Hallo Zusammen,

    ... kein Thema, in meinem Original-Script steht es mit den "" drinne - ging dennoch nicht. Habe gegoogelt wie ein Weltmeister, aber es scheint definitiv nicht möglich zu sein, den CTRL-ALT-DEL per "Software-Keyboard" zu senden.

    Es wäre aber auch egal - wenn das mit den ControlSend funktioniert. Leider kann ich es heute Nachmittag testen, werde mich dann aber wieder melden! :P

    Noch eine Frage wegen der Control-ID, bitte: Ist die denn immer gleich oder ändert die sich, wenn ich das Programm oder den Rechner neu gestartet habe (sorry, bin da wirklich ein Newbie :S )?

    Danke euch!

    Grüße
    Thomas

    Cuiusvis hominis est errare, nullius nisi insipientis in errore perseverare.
    [Cicero, Philippica 12,2]


  • Noch eine Frage wegen der Control-ID, bitte: Ist die denn immer gleich oder ändert die sich, wenn ich das Programm oder den Rechner neu gestartet habe (sorry, bin da wirklich ein Newbie :S )?

    Danke euch!

    Grüße
    Thomas

    die Conttrol ID bleibt eigentlich immer gleich... außer, du machst ein Softwareupdate, dann kann Sie sich ändern (war bei mir einmal so)

    l.g. Jonathan

  • die Conttrol ID bleibt eigentlich immer gleich... außer, du machst ein Softwareupdate, dann kann Sie sich ändern (war bei mir einmal so)

    Und genau deswegen rate ich zum Advanced Classname. Der ist beständiger gegenüber Software änderungen. Statt 350 (ID) nimmt man dann halt [CLASS:Scintilla; INSTANCE:1] (Advanced Mode).


  • wenns keien bessere lösung für CTRL-ALT-DEL gibt versuch mal das... is zwar nicht die beste lösung aber sollte funzen (habs nocht nich probiert)


    [autoit]

    send("{ALTDOWN}")
    send("{CTRLDOWN}")
    send("{DEL}")
    send("{ALTUP}")
    send("{CTRLUP}")

    [/autoit]
  • Hallo Zusammen,

    send("{ALTDOWN}")
    send("{CTRLDOWN}")
    send("{DEL}")
    send("{ALTUP}")
    send("{CTRLUP}")

    ... hatte ich auch probiert, klappt leider auch nicht. ;(

    Aber egal - es ist vollbracht dank eurem Tipp mit dem ControlSend:

    Code
    ControlSend("Anmeldung","","[CLASS:Edit; INSTANCE:1]","Benutzername")
     ControlSend("Anmeldung","","[CLASS:Edit; INSTANCE:2]","Passwort")
     ControlClick("Anmeldung","","[CLASS:Button; INSTANCE:1]")

    Nochmals vielen vielen Dank!

    Grüße
    Thomas

    Cuiusvis hominis est errare, nullius nisi insipientis in errore perseverare.
    [Cicero, Philippica 12,2]