Forums Neueste Beiträge
 

ScreenUpdating = False vs SendKeys

02/09/2012 - 14:26 von Hans Alborg | Report spam
Hallo Gruppe,

Meine Mappe (2007'er) soll sich auf fremden PC's einigeln.
Der Code (Aufruf aus "Workbook_open").

Sub Wb_Open_Passw()
Dim Pwort
Set Netzwerk = CreateObject("wscript.network")
If Netzwerk.Computername = "Privat-PC" Or _
Netzwerk.Computername = "Laptopf 01" Or _
Netzwerk.Computername = "myDienst-PC" Or _
Netzwerk.Computername = "nochein-PC" Then
Call VB_Pw_aus
Exit Sub
Else
Call VB_Pw_ein
Pwort = InputBox("'" & ActiveWorkbook.Name & "' ist geschützt." &
Chr(10) & "Kennwort: ", "Kennwort", "xxxxxxxxxxxxxxxxxxxxx")
If Pwort <> "mein Passw-01" Then
Application.DisplayAlerts = False
Application.Quit
End If
End If
End Sub

... làuft unter Excel 2007 tadellos.
Die 2 Call- Aufrufe sollen den VB-Code schützen bzw. entsperren.
Auch das funktioniert. Aber die sichtbare Ausführung von SendKeys stört
mich.

Eine dieser Routinen sieht so aus:

Sub VB_Pw_ein()
Application.ScreenUpdating = False
SendKeys "%{F11}%xi{TAB 9}{RIGHT}{tab}a{tab}" & mein Passw-vb" & _
"{TAB}" & "mein Passw-vb" & "{tab}{enter}%q"
Application.ScreenUpdating = True
End Sub

Die Passwort- Eingabebox flackert aber immer noch auf, trotz ScreenUpdating
= False.
Vielleicht muß das so sein?
Weil "SendKeys" ja ein Bildschirmbefehl ist?

Gibt es dann eine andere, unsichtbare Alternative?

TIA,

Hans
 

Lesen sie die antworten

#1 Hans Alborg
09/09/2012 - 23:28 | Warnen spam
Excel2007("Hans Alborg").schrieb _

Meine Mappe (2007'er) soll sich auf fremden PC's einigeln.
Eine dieser Routinen sieht so aus:

Sub VB_Pw_ein()
Application.ScreenUpdating = False
SendKeys "%{F11}%xi{TAB 9}{RIGHT}{tab}a{tab}" & mein Passw-vb" & _
"{TAB}" & "mein Passw-vb" & "{tab}{enter}%q"
Application.ScreenUpdating = True
End Sub

Die Passwort- Eingabebox flackert aber immer noch auf, trotz
ScreenUpdating = False.



Nachtrag:

Inzwischen habe ich im Netz "Windowsupdating (0)" gefunden (o.à.). Einen
Zacken schàrfer, aber leider mit demselben Ergebnis.

Nach einigem Nachdenken beschloß ich die Sache so zu drehen, daß nur auf
bekannten Computern das verdàchtige Fensteraufflackern sichtbar ist, aber
nicht auf Fremdrechnern.
Bei "Freund-PCs" wird das Passwort beim Start gelöscht und bei Beenden der
Mappe wieder gesetzt. Flackern fàllt zwar auf, aber schadet nicht.
Bei "Feind-PCs" erfolgt kein SendKeys, weil VBA ja bereits geschützt ist. Es
erscheint nur meine diletantische Inputbox (1.Posting) und wenn's da eine
falsche Eingabe gibt schließt sich Excel.

So sollte es laufen, aber beim Setzen des VBA-Passworts per Sendkeys wird
die Save- Abfrage beim Schließen abgewürgt ("abbrechen") und ich bekomme
Excel nicht zu!

Naja, ich geb nicht auf ;-)

Hans

Ähnliche fragen