reinix
Goto Top

VBscript - appdata Variable von Windows verwenden?

Hallo,
Ich habe eine Website, die eine textdatei einlesen soll, die im %appdata% verzeichnis des jeweiligen benutzers liegt.
einfach auf %appdata% aus einer vbscript-site zugreifen geht ja wohl nicht.

gibts irgendwie ne möglichkeit mir %appdata% auf umwegen in mein vbscript zu bringen?

danke,
ReiniX

Content-Key: 72811

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

Printed on: April 23, 2024 at 12:04 o'clock

Member: bastla
bastla Nov 06, 2007 at 10:57:36 (UTC)
Goto Top
Hallo ReiniX!

Versuch es so:
set WshShell = WScript.CreateObject("WScript.Shell")  
strAppData = WshShell.ExpandEnvironmentStrings("%AppData%")  

Grüße
bastla
Member: Biber
Biber Nov 06, 2007 at 10:57:42 (UTC)
Goto Top
Moin ReiniX,

siehe bitte die (baugleiche) Frage "syntax problem" von gigagaga im gleichen Bereich von gestern. Die ist zumindest schon halb beantwortet.
Lass uns bitte Deine Variante dort mit abhandeln und diesen Beitrag hier später löschen.

Danke
Biber

[Edit] na gut... bastla war wieder schneller *gg [/Edit]
Member: fritzo
fritzo Nov 06, 2007 at 11:08:50 (UTC)
Goto Top
Option Explicit

Dim WshShell
Dim AppData

SET WshShell = CreateObject ("WScript.Shell")

AppData = WshShell.Environment("Process")("APPDATA")
wscript.echo AppData
Member: ReiniX
ReiniX Nov 06, 2007 at 11:16:44 (UTC)
Goto Top
Danke an alle.
hat mit den oben geschriebenen tipps funktioniert =)
Member: pacobay
pacobay Nov 06, 2007 at 11:29:50 (UTC)
Goto Top
Im Prinzip unnötig weil Bastla hier eindeutig der Roadrunner ist face-wink)
@bastla Kompliment!
aber dennoch weil: ist halt schon da und besser mehr Antworten als keine

ciao pacobay

' VB Script Document  
option explicit

Function ShowAppdata

'Deklaration  

Dim WshShell , strAppdata

'Objekt  
set WshShell = WScript.CreateObject("WScript.Shell")  

'setzen + echo der Variablen strProgramFiles  
strAppdata = WshShell.ExpandEnvironmentStrings("%appdata%")  

'Zuweisen des Ergebnisses an die Funktion  
'  
ShowAppdata=strAppdata

End Function 'CallAPPdata  

'aufruf beispielsweise mit:   

WScript.echo ShowAppdata
Member: bastla
bastla Nov 06, 2007 at 12:02:37 (UTC)
Goto Top
@pacobay

THX und *meep meep* ... face-smile

Grüße
bastla
Member: ColdCoke
ColdCoke Nov 19, 2007 at 10:04:53 (UTC)
Goto Top
Gibt es sowas auch für die Variable %USERNAME% oder eine VBscript Variable die ich stattdessen nutzen kann?


Gruß,

ColdCoke
Member: bastla
bastla Nov 19, 2007 at 10:57:41 (UTC)
Goto Top
Hallo ColdCoke und willkommen im Forum!

Analog zum Code oben könntest Du schreiben:
Set WshShell = WScript.CreateObject("WScript.Shell")  
strUserName = WshShell.ExpandEnvironmentStrings("%Username%")  
Alternativ dazu können "UserName", "UserDomain" und "ComputerName" zB auch über das "Network"-Objekt ermittelt werden:
Set WshNetwork = WScript.CreateObject("WScript.Network")  
strUserName = WshNetwork.UserName

Grüße
bastla
Member: ColdCoke
ColdCoke Nov 19, 2007 at 11:04:27 (UTC)
Goto Top
Danke, Danke, Danke =)

werde ich gleich mal ausprobieren.

Gruß,

ColdCoke
Member: ColdCoke
ColdCoke Nov 19, 2007 at 13:20:21 (UTC)
Goto Top
Jetzt muss ich doch noch genauer Fragen.

Ich möchte mit einem VBscript eine Verknüpfung von einer .exe erstellen. Diese soll dann direkt in das Startmenü des angemeldeten Users gespeichert werden. Ein script, was eine Verknüpfung auf den Desktop erstellt habe ich bereits gefunden. Wie müsste ich jetzt das Skript ändern damit die Verknüpfung ins Startmenü gespeichert wird?

Script###########


Const strProgramtitel="Programm"
Const strProgram ="s:\Programm_Ordner\Programm.exe"
Dim objShortcut
Dim objShell
Set objShell= WScript.CreateObject("Wscript.Shell")
strLPfad=objShell.SpecialFolders("Desktop")
Set objShortcut=objShell.CreateShortcut(strLPfad & "\" & strProgramtitel & ".lnk")
objShortcut.TargetPath= strProgram
objShortcut.Description= "strProgramtitel"
objShortcut.Save


ENDE#############

Danke schonmal im Voraus.

Gruß,

Daniel
Member: pacobay
pacobay Nov 19, 2007 at 14:48:47 (UTC)
Goto Top
Hi
es gibt mehrer Startmenueverzeichnisse

im Default-Userbereich
C:\Dokumente und Einstellungen\Default User\Startmenü
wird verwendet bei erstellung eines neuen Users
macht hier aber wohl wenig sinn und bedürfte wohl auch eines anderen Ansatzes

Interessant dürfte wohl sein:

All-User-Bereich
C:\Dokumente und Einstellungen\All Users\Startmenü
wenn du es dort ablegst steht es allen usern des Systems zur Verfügung


userBereich
C:\Dokumente und Einstellungen\"username"\Startmenü
nur für den spezifischen User mit dem Name "username"

alle pfadangaben verstehen sich als allgemeine Angaben eines XP systems
habe server nicht im Kopf, meine mich zu erinnern das dies dort auch so ist

Ob du alle diese Pfade im Explorer siehst hängt auch von den entsprechenden Einstellungen ab

Im prinzip kannst Du die Verzeichnisse (sofern ausreichende Rechte vorhanden) ganz normal via SpecialFolderObjekt ansprechen.

Hierzu Aus der WSH Hilfe
The WshSpecialFolders object is a collection.
...
The following special folders are available:
AllUsersDesktop
AllUsersStartMenu !!!!!!!!!!!!!!!!!!!!!!!!!!!!!
AllUsersPrograms
AllUsersStartup
Desktop
Favorites
Fonts
MyDocuments
NetHood
PrintHood
Programs
Recent
SendTo
StartMenu !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Startup
Templates

Ende des Zitates

Also sinngemäß
strLPfad=objShell.SpecialFolders("Desktop")

einfach ändern zu
strLPfad=objShell.SpecialFolders("AllUsersStartMenu")
bzw
strLPfad=objShell.SpecialFolders("StartMenu")

u.U. wäre es auch sinnvoll ein Verzeichnis "MyLinks" zu erstellen sonst ufert dein Startmenüe irgendwann aus und wird zunehmend unübersichtlich.

By the way die Sortierungsreihenfolge der Einträge wird im Rahmen des Reg verwaltet
wäre aber eine andere Baustelle.
Jedoch innerhalb des Startmenüs kannst du mit der rechten Maustaste die Einträge nach Namen sortieren bzw mit gedrückter rechten Maustaste die Einträge verschieben.

Aber wenn Du anfängst in immer systemnaheren Bereichen zu arbeiten, dann denke auch mal über die allgemeine MS-Mantra zu systemnahen Änderungen(Vorsicht & Backup etc ) nach.
face-wink

ciao pacobay
Member: bastla
bastla Nov 19, 2007 at 14:51:45 (UTC)
Goto Top
Hallo ColdCoke!

Ein script, was eine Verknüpfung auf den Desktop erstellt habe ich bereits gefunden. Wie müsste ich jetzt das Skript ändern damit die Verknüpfung ins Startmenü gespeichert wird?
Du könntest "Desktop" durch "StartMenu" ersetzen ...

Grüße
bastla

[Edit] @pacobay: So weit aus- und mich dabei auch noch überholt - Respekt face-wink [/Edit]
Member: ColdCoke
ColdCoke Nov 19, 2007 at 15:33:50 (UTC)
Goto Top
Wow.. Klasse.. Funktioniert toll face-smile

Danke euch beiden

face-smile


Gruß,

ColdCoke