auggiman
Goto Top

VB Computername in den Zwischenspeicher

Leider bin ich nicht wirklich in VB drin, brauche dennoch Hilfe

Hallo zusammen,

ich muss zwecks Dateispeichern in einem Makro den Computernamen per VB auslesen und in den Zwischenspeicher legen. Leider brachte die Suche bei Google nicht den gewünschten Erfolg. Auch habe ich mich noch nicht wirklich mit VB auseinandergesetzt.

Vielleicht kann mir jemand helfen oder sogar das Script dafür hier benennen.

Vielen Dank schonmal.

Grüße
Stefan

Content-Key: 137176

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

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

Member: HStumpf
HStumpf Mar 02, 2010 at 10:25:38 (UTC)
Goto Top
Hallo,

was soll zum Einsatz kommen
VBScript:
On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_ComputerSystem",,48)
For Each objItem in colItems
Wscript.Echo "Name: " & objItem.Name
Next
--> Beippiel zeigt den Namen in der Console an

oder

soll Visual Basic zum Einsatz kommen?

Horst
Member: Auggiman
Auggiman Mar 02, 2010 at 10:29:08 (UTC)
Goto Top
Hallo Horst,

vielen Dank erstmal für die Antwort.

Es soll Visual Basic zum Einsatz kommen.

Grüße
Stefan
Member: HStumpf
HStumpf Mar 02, 2010 at 11:00:38 (UTC)
Goto Top
Hallo,

Dim strCNAME As String=System.Windows.Forms.SystemInformation.ComputerName()
oder
Dim strCNAME As String=System.Environment.MachineName()
Member: Auggiman
Auggiman Mar 02, 2010 at 11:58:35 (UTC)
Goto Top
Hallo nochmal,

er macht immer wieder Probleme in VBA. Bei Dim strCNAME sagt er unerwarteter Fehler. Nehme ich den ersten Code kommt die Meldung: Keine Objektreferenz.

Was mache ich falsch?

Grüße
Stefan
Member: HStumpf
HStumpf Mar 02, 2010 at 13:40:29 (UTC)
Goto Top
Hallo,

bei VBA siehts anders aus:

Dim strcname As String
strcname = Environ("COMPUTERNAME")

Horst
Member: Auggiman
Auggiman Mar 02, 2010 at 20:42:36 (UTC)
Goto Top
Hallo Horst,

vielen Dank. Das funktioniert soweit. Allerdings wird der Computername bis jetzt nicht im Zwischenspeicher abgelegt. Mir fehlt noch was, richtig?

Grüße
Stefan
Member: Biber
Biber Mar 02, 2010 at 21:15:42 (UTC)
Goto Top
Moin Auggiman,

Mir fehlt noch was, richtig?
Vielleicht ein vernünftiger Prozess?

Warum um Gates willen willst du denn
  • über ein VBA-Geraffel, das normalerweise nur im Kontext einer Excel/Outlook/Word/Sonstwas-Office-Appz leben kann
  • eine Umgebungsvariable auslesen
  • und die in den Zwischenspeicher legen???

Bitte schreib jezz' nich, diese Brünette aus der Buchhaltung möchte gern ein Excel-Makro "Computernamen zum Copy&Paste bereitlegen" haben, damit sie das dann mit Strg-C in ihre Outlook-Signatur einfügen kann...

Wie sieht denn der ganze Plan aus, der zu diesem "Upps, wofür dieses Werkzeug wohl gut sein mag?"-Durchprobieren geführt hat?

Grüße
Biber
Member: Auggiman
Auggiman Mar 02, 2010 at 21:23:28 (UTC)
Goto Top
Hallo,

nix Buchhaltung, eher Kundenseitig face-smile

Ich nutze ein Makrotool, welches Userabläufe interaktiv ablaufen lässt. Dazu gehört u.a. das Öffnen einer Word Datei und dann wieder das Speichern unter einem anderen Namen. Da ich hier eine Trennung für mehrere Rechner benötige, bin ich leider auf das Auslesen aus dem Zwischenspeicher als Variable beschränkt. Sprich, ich kann den Dateinamen zwar eingeben lassen, möchte aber den Rechnernamen mit einfügen. Allerdings kann das Makrotool auch VBA und somit könnte ich den Computernamen in den Zwischenspeicher einlesen und ihn später wieder herausholen.

Dafür die ganze Aktion.

Und Durchprobieren ist nicht. Soweit läuft alles, nur das Auslesen klemmt eben. ich nutze auch aktiv google und Co., aber irgendwo hakt noch was.

Grüße
Stefan
Member: HStumpf
HStumpf Mar 02, 2010 at 21:41:24 (UTC)
Goto Top
Hallo,

Zwischenspeicher = Zwischenablage?

http://www.online-excel.de/excel/singsel_vba.php?f=28

Horst
Member: Biber
Biber Mar 03, 2010 at 09:53:22 (UTC)
Goto Top
Moin Auggiman,

Ich nutze ein Makrotool, welches Userabläufe interaktiv ablaufen lässt. Dazu gehört u.a. das Öffnen einer Word Datei und dann wieder das Speichern unter einem anderen Namen. Da ich hier eine Trennung für mehrere Rechner benötige, bin ich leider auf das Auslesen aus dem Zwischenspeicher als Variable beschränkt. Sprich, ich kann den Dateinamen zwar eingeben lassen, möchte aber den Rechnernamen mit einfügen. Allerdings kann das Makrotool auch VBA und somit könnte ich den Computernamen in den Zwischenspeicher einlesen und ihn später wieder heraushole
Das hört sich für mich alles nicht so an, als würde sich irgendjemand die Patentrechte darauf sichern lassen wollen oder auch nur, dass jemand dieses Gestrunkele als Arbeitsprobe der eigenen Skriptfähigkeiten bei einem Bewerbungsgespräch vorlegen möchte.

Gibt es den keinen anderen Weg? Welcher Namenskonvention folgen denn diese bearbeiteten/geclonten Worddateien sonst so?
Ich meine, wenn sich der "neue" Name wenigstens vollständig generieren ließe, z.B. als Kombination von Alt-Dateiname+Username oder Rechnername+Datum oder ähnlich, dann könntest du wenigtens dieses (wie du es scherzhaft genannt hast) "interaktive" Strg-C-Drücken wegschmelzen.

Und zum andern... wenn du die "Dateinamen durch Unterbringen von %computername% im Namen" kenntlich machen willst, dann liegt der Verdacht nahe, dass diese Dateien noch ein weiteres Mal halbautomatisiert weiterverarbeitet werden müssen.

Das hört sich alles irgendwie eher gewachsen als gesund an.

Magst du mal den ganzen Prozess skizzieren?

P.S. Ist wirklich nicht so, dass ich keinen Spass am Skripten hätte.
Aber ich finde, es sollte nicht alles umgesetzt werden, was technisch im Bereich der Runtertippselbaren liegt.

Grüße
Biber
Member: Auggiman
Auggiman Mar 03, 2010 at 10:22:17 (UTC)
Goto Top
Hallo Biber, Hallo Horst,

nachdem ich bis spät nachts noch gebastelt habe und Eure Hilfe sehr schätze, aber auch Eure Bedenken, habe ich mit nochmals genauer mit dem Tool auseinandergesetzt und nutze nun die Funkton, das er mir den Hostnamen aus einer Datei ausliest, die ich vorher festlege und als Variable festlegt.

Ich wollte es eigentlich schon vollautomatisieren, aber wenn es nicht funktioniert, dann lasse ich es doch. So habe ich doch noch ein wenig zu tun.

Evtl. aber gibt es die Möglichkeit, unter Win XP mit Office 2003 Prof. ein kleines VBS zu erstellen, welches mir den Hostnamen ausliest und in eine Textdatei namens hostname.txt schreibt.

Wäre dies möglich?

Nochmals vielen, vielen Dank für Eure Mühe(n).

Grüße
Stefan
Member: Biber
Biber Mar 03, 2010 at 12:00:25 (UTC)
Goto Top
Moin Auggiman,

nochmals zum Verständnis:
  • eine Umgebungsvariable %COMPUTERNAME% gibt es ohnehin auf jedem Windowsrechner.
  • der Inhalt dieser Variablen %COMPUTERNAME% lässt sich auch (unter einigen Windowsversionen) mit einer Winz-Exe namens hostname.exe abfragen als "Hostname".
  • Und natürlich könnte auch dieser Hostnam/computername in eine einzeilige Textdatei geschrieben werden. Macht ihn aber weder aktueller noch verkässlicher noch konsistenter.

--> Wenn und weil es eine immer vorhandene, immer aktuelle Umgebungsvariable %COMPUTERNAME% gibt, deshalb sollte diese auch als Umgebungsvariable aktuell abgefragt werden... OHNE Zwischenclonerei als Textdatei, ini-Dateiwert oder selbst benamste Variable "myComputername".
--> bedeutet: wenn du diesen ver###te Variableninhaltet Environ("COMPUTERNAME") in einem VBA-Makro brauchst, dann genau wie in dieser Zeile angegeben.
---> Wenn Du den Rechnernamen erst dann brauchst, wenn du die Word-Dateien weiterverarbeitest, dann ergänze die Info erst dann (beim Abholen/Kopieren/Lesen der "Rechner"spezifischen Datei-Version.

Grüße
Biber
Member: Auggiman
Auggiman Apr 22, 2010 at 07:48:36 (UTC)
Goto Top
Hallo zusammen,

ich habe nun eine andere Möglichkeit genutzt:

echo %computername% >C:\hostname.txt

Das hat mir geholfen.

Dennoch vielen Dank nochmals für Eure Unterstützung.

Grüße
Stefan