neulermer
Goto Top

Mit VBS Datum, User in Zwischenablage kopieren

Hallo,

ich suche nach einer Möglichkeit das Aktuelle Datum (dd.mm.yyyy) per VBS Script in die Zwischenablage zu kopieren, um es dann per paste wieder einzufügen. Das selbe brauche ich auch noch in einem weiteren Script für den User. Kann mir hier jemand helfen, denn so gut kenn ich mich jetzt nicht in VBS aus.

Content-Key: 155746

Url: https://administrator.de/contentid/155746

Printed on: April 25, 2024 at 13:04 o'clock

Member: bastla
bastla Nov 25, 2010 at 08:34:01 (UTC)
Goto Top
Hallo neulermer!

Das wollten andere auch schon face-wink: http://www.geekstogo.com/forum/topic/133067-vbs-and-the-clipboard/

Das Datum bekommst Du mit "date" und für den aktuellen User:
Set WshNetwork = CreateObject("WScript.Network")  
User = WshNetwork.UserName
Wenn's kein VBS sein muss, ginge es als Batch unter Verwendung von"clip.exe" noch einfacher:
echo %date%|clip
echo %username%|clip

Wozu soll die ganze Aktion eigentlich dienen?

Grüße
bastla
Member: neulermer
neulermer Nov 25, 2010 at 09:34:32 (UTC)
Goto Top
ich arbeite mit ProE (3D CAD Programm) und hier muss ich immer die Parameter manuell ausfüllen. Man kann zwar per Mapkeys ("programmierte" Tastenfolge, shortcuts oder wie man die nennen will) einiges ausfüllen lassen, aber sowas können die nicht. Man kann in einem Mapkey aber ein VBS ausführen, deswegen der Umweg mit der Zwischenablage. Eine andere Möglichkeit gibt es leider nicht.

Kannst du mir vielleicht ncoh erklären, wie man den User oder das Datum in die Zwischenablage kriegt? Ein komplettes Skript wäre hilfreich, da ich wirklich nicht viel Ahnung vom Programmieren habe.
Member: bastla
bastla Nov 25, 2010 at 10:27:39 (UTC)
Goto Top
Hallo neulermer!

Na dann kopiere ich mal für Dich den Scriptansatz aus dem oben verlinkten Artikel und passe ihn etwas an:
Set Clipboard = New cClipBoard

ClipBoard.Clear
ClipBoard.Data = FormatDateTime(Date)
MsgBox "... und jetzt der User ..."  
ClipBoard.Data = CreateObject("WScript.Network").UserName  

Class cClipBoard
	Private objHTML
		Private Sub Class_Initialize
			Set objHTML = CreateObject("InternetExplorer.Application")  
			objHTML.Navigate ("about:blank")  
		End Sub
		Public Sub Clear()
			objHTML.Document.ParentWindow.ClipboardData.ClearData()
		End Sub
			
		Public Property Let Data (Value)
			objHTML.Document.ParentWindow.ClipboardData.SetData "Text" , Value  
		End Property
	
		Public Property Get Data()
			Data = objHTML.Document.ParentWindow.ClipboardData.GetData("Text")  
		End Property

		Private Sub Class_Terminate
			objHTML.Quit
			Set objHTML = Nothing
		End Sub
		
End Class
Grüße
bastla
Member: neulermer
neulermer Nov 25, 2010 at 11:00:55 (UTC)
Goto Top
Danke für das Skript.

Zum Laufen hab ich das gekriegt, aber der IE fragt dann immer Zugriff zulassen. Wie kriegt man das in den griff?
Member: bastla
bastla Nov 25, 2010 at 11:26:28 (UTC)
Goto Top
Hallo neulermer!

Das Script muss mit dem Dateityp ".vbs" gespeichert sein - falls Du den Windows-Editor verwendet hast, wird vermutlich automatisch noch ".txt" angefügt worden sein; um das zu vermeiden, beim Speichern als "Dateityp" "Alle Dateien" einstellen.

Wie das Script dann von Deinem Programm aus gestartet werden muss, kann ich Dir leider nicht sagen - zum Testen kannst Du aber einfach das Script per Doppelklick starten.

Grüße
bastla

[Edit] Nur der Ordnung halber: Zum Zeitpunkt meiner Antwort lief das Script noch nicht [/Edit]
Member: neulermer
neulermer Nov 25, 2010 at 12:15:16 (UTC)
Goto Top
Soweit so gut, aber die "Fehlermeldung" mit Zugriff zulassen?
Mitglied: 60730
60730 Nov 25, 2010 at 13:13:04 (UTC)
Goto Top
Moin,
Zitat von @neulermer:
Soweit so gut, aber die "Fehlermeldung" mit Zugriff zulassen?

das ist keine Fehlermeldung - sondern ein Sicherheitshinweis.

Kommt die auch, wenn du die doppelt anklickst oder nur, wenn dein Cad Tool die startet?

Anyway einmal klick weg ist es (bis zum nächsten mal)


Gruß
Member: neulermer
neulermer Nov 25, 2010 at 14:46:04 (UTC)
Goto Top
Von mir aus auch ein Sicherheitshinweis.

Fakt ist, dass es bei beidem angezeigt wird. Mit einmal wegklicken ist es nicht getan, da ich das Skript so 50x am Tag benutzen würde.
Member: bastla
bastla Nov 25, 2010 at 15:26:59 (UTC)
Goto Top
Hallo neulermer!

Dann eben die im oben verlinkten Artikel genannte Alternative ...

Besorge Dir (falls auf Deinem bisher nicht genannten System nicht vorhanden) die [ftp://ftp.microsoft.com/Services/TechNet/samples/PS/Win98/Reskit/FILE/CLIP.EXE CLIP.EXE], speichere diese in einem passenden Ordner (zB C:\Scripts) und verwende folgende beiden VBScripts:
CreateObject("WScript.Shell").Run "cmd /c <nul set /p""=%date%""|C:\Scripts\CLIP",0
bzw
CreateObject("WScript.Shell").Run "cmd /c <nul set /p""=%username%""|C:\Scripts\CLIP",0
Falls Du auch noch ein automatisches "Enter" nach dem Einfügen haben möchtest, dann so:
CreateObject("WScript.Shell").Run "cmd /c echo %date%|C:\Scripts\CLIP",0

Grüße
bastla
Member: neulermer
neulermer Dec 02, 2010 at 07:53:13 (UTC)
Goto Top
Danke bastla, mit dem Clip Programm hab ich das jetzt alles machen können. Das erspart mir seeeehr viel arbeit
Member: giadsc
giadsc Jun 13, 2012 at 08:05:44 (UTC)
Goto Top
Hallo Neulermer,

Ich bin mit meinem Problem auf diesen Eintrag gestossen.
So wie es aussieht hast Du das Ding mit dem %USERNAME% zu Laufen gebracht.
Ich muss sagen ich bin wahrscheindlich der super DAU im Programmieren und daher möchte ich fragen, ob Du mir ev Deine Lösung zur Verfügung stellen könntest.

Wie geht das dann dass der Username auf der Zeichnung geschrieben wird? Mapkey??

Vielen Dank für Dein Feedback

daniel