Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

VBS Script zur Auswahl von Firmennummer und Benutzernummer sowie Verarbeitung

Frage Entwicklung VB for Applications

Mitglied: cbli

cbli (Level 1) - Jetzt verbinden

02.10.2007, aktualisiert 04.10.2007, 5968 Aufrufe, 3 Kommentare

Ich möchte ein Script schreiben mit dem ich für 9 Benutzer die jeweils in 2 Firmen Zugriff auf ein weiteres Script bekommen sollen,daß durch dieses Script als Desktop Link installiert wird.

1. Es wird die Firmennummer abgefragt (als nummer)

2. Es wird der Benutzername abgefragt (als nummer)

Dieser Teil des Scripts existiert schon und funktioniert auch.

01.
Dim Firma 
02.
Dim strProgram 
03.
Dim objShortcut 
04.
Dim objShell 
05.
Dim User 
06.
 
07.
Firma = inputbox("Geben sie die Firmenbezeichnung ein " & vbnewline & vbnewline & "1 = bbb" & vbnewline & "2 = kg","Desktop Link - Fenstertitel") 
08.
 
09.
 
10.
if Firma ="" then 
11.
WScript.Quit 
12.
end if 
13.
 
14.
if isnumeric(Firma) = false then 
15.
msgbox "Bitte nur 1 oder 2 eingeben",16,"Hinweis" 
16.
WScript.Quit 
17.
else 
18.
end if 
19.
 
20.
if Firma > 2 or Firma = 0 then 
21.
msgbox "Bitte nur 1 oder 2 eingeben",16,"Hinweis" 
22.
WScript.Quit 
23.
else 
24.
end if 
25.
------------------------------------------------------------------------------------------------------------------------- 
26.
 
27.
' Abfrage Benutzer 
28.
 
29.
User = inputbox("Geben sie die Benutzernummer ein " & vbnewline & vbnewline & "1 = Max  Muster" & vbnewline & "2 = Test Testermann" ,"Desktop Link Script") 
30.
 
31.
------------------------------------------------------------------------------------------------------------------------- 
32.
 
33.
Hier beginnen meine Probleme. 
34.
Es soll nun der gewählte Benutzer als Bestätigung mit dem msgbox Befehl ausgegeben werden. 
35.
Dies sollte mit einer Schleife passieren,doch ich weiß nicht wie,da die Benutzer selber ja nicht definiert sind. 
36.
Danach soll die Verarbeitung erfolgen: 
37.
Es müssen also alle mögliche Firma / User kombinationen die möglich sind abgefragt werden und dann jeweils anders weiterverarbeitet werden. 
38.
 
39.
------------------------------------------------------------------------------------------------------------------------- 
40.
 
41.
if user = 1 and Firma = 1 then  
42.
 
43.
strProgram ="c:\LCS\verdi Claus bbb.vbs" 
44.
Const strProgramtitel = "Verdi - Name Firma 1" 
45.
Set WshShell = Wscript.CreateObject("Wscript.Shell") 
46.
Set fso = CreateObject("Scripting.FileSystemObject") 
47.
fso.CopyFile "PFAD zur Datei" , "C:\lcs\" ' Script kopieren 
48.
shortcutwrite 
49.
end if 
50.
----------------------------------------------------------------------------------------------------------------------- 
51.
Die eigentliche Verarbeitung funktioniert -   sub shortcutwrite() 
52.
 
53.
sub shortcutwrite() 
54.
 
55.
Const strWPath = "c:\LCS\"				 'Arbeitsverzeichnis 
56.
Set objShell = WScript.CreateObject("Wscript.Shell") 
57.
strLPfad = objShell.SpecialFolders("Desktop") 
58.
Set objShortcut = objShell.CreateShortcut(strLPfad & "\" & strProgramtitel & ".lnk") 
59.
objShortcut.TargetPath = strProgram 
60.
objShortcut.Description = strProgramtitel 
61.
objShortcut.WorkingDirectory = strWPath 
62.
objShortcut.IconLocation = "c:\lcs\verdi\lcsverdi.exe,0" 
63.
objShortcut.Save 
64.
 
65.
end sub
Wie kann ich mir nun das Leben leichter machen ,ohne jeden Fall einzeln mit if abzufragen
Ihr würdet mir sehr weiterhelfen.

Vielen Dank

Gruß
Claus

PS: Kann ich die Benutzernamen auch aus einer TXT Datei auslesen lassen ?
Mitglied: bastla
02.10.2007 um 16:01 Uhr
Hallo cbli

Falls ich Dich richtig verstanden habe, könnte das etwa so aussehen:
01.
Const Benutzerdatei = "Pfad zur Datei mit den Benutzernamen" 
02.
 
03.
Firma = inputbox("Geben sie die Firmenbezeichnung ein " & vbnewline & vbnewline & "1 = bbb" & vbnewline & "2 = kg","Desktop Link - Fenstertitel") 
04.
 
05.
if isnumeric(Firma) = false then 
06.
	msgbox "Bitte nur 1 oder 2 eingeben",16,"Hinweis" 
07.
	WScript.Quit 
08.
end if 
09.
 
10.
if Firma > 2 or Firma = 0 then 
11.
	msgbox "Bitte nur 1 oder 2 eingeben",16,"Hinweis" 
12.
	WScript.Quit 
13.
end if 
14.
 
15.
'Firmennamen ermitteln 
16.
Select Case Firma 
17.
Case 1 
18.
	Firmenname = "bbb" 
19.
Case 2 
20.
	Firmenname = "kg" 
21.
Case Else 'Kann eigentlich nach den Abfragen oben nicht erreicht werden ... 
22.
	MsgBox "Ungültige Firma!" 
23.
End Select 
24.
 
25.
' Abfrage Benutzer 
26.
 
27.
'Aus Textfile einlesen ... 
28.
Set fso = CreateObject("Scripting.FileSystemObject") 
29.
Benutzer = Split(fso.OpenTextFile(Benutzerdatei, 1).ReadAll, vbCrLF) 
30.
 
31.
'... oder im Script hinterlegen: 
32.
'Benutzer = Array("Max  Muster", "Test Testermann", "...") 
33.
 
34.
AnzBenutzer = UBound(Benutzer) + 1 
35.
 
36.
Eingabetext = "Geben sie die Benutzernummer ein " & vbCrLF 
37.
For i = 0 To AnzBenutzer - 1 'Achtung: Erste Benutzernummer = 0 
38.
	Eingabetext = Eingabetext & vbCrLF & Right(" " & CStr(i + 1), 2) & " = " & Benutzer(i) 
39.
Next 
40.
 
41.
User = InputBox(Eingabetext, "Desktop Link Script") 
42.
 
43.
If IsNumeric(User) Then 
44.
	UserNr = CInt(User) 
45.
Else 
46.
	Msgbox "Bitte nur 1 bis " & CStr(AnzBenutzer) & " eingeben!", vbCritical, "Hinweis" 
47.
	WScript.Quit 
48.
End if 
49.
 
50.
If UserNr < 1 Or UserNr > AnzBenutzer Then 
51.
	Msgbox "Bitte nur 1 bis " & CStr(AnzBenutzer) & " eingeben!", vbCritical, "Hinweis" 
52.
	WScript.Quit 
53.
End If 
54.
 
55.
Benutzername = Benutzer(UserNr - 1) 
56.
 
57.
'Es soll nun der gewählte Benutzer als Bestätigung mit dem msgbox Befehl ausgegeben werden. 
58.
MsgBox "Gewählter Benutzername: " & Benutzername 
59.
 
60.
strProgram ="c:\LCS\verdi Claus " & Firmenname & ".vbs" 
61.
strProgramtitel = "Verdi - " & Benutzername & " - " & Firmenname 
62.
Set WshShell = Wscript.CreateObject("Wscript.Shell") 
63.
Set fso = CreateObject("Scripting.FileSystemObject") 
64.
fso.CopyFile "PFAD zur Datei" , "C:\lcs\" ' Script kopieren 
65.
shortcutwrite
Bitte zu beachten, dass Arrays in VBS null-basiert sind, also der erste Benutzer in Benutzer(0) und der 9. Benutzer in Benutzer(8) gespeichert wird ...

Grüße
bastla
Bitte warten ..
Mitglied: cbli
04.10.2007 um 14:48 Uhr
'... oder im Script hinterlegen:
'Benutzer = Array("Max
Muster", "Test Testermann",
"...")

AnzBenutzer = UBound(Benutzer) + 1

Eingabetext = "Geben sie die
Benutzernummer ein " & vbCrLF
For i = 0 To AnzBenutzer - 1 'Achtung:
Erste Benutzernummer = 0
Eingabetext = Eingabetext & vbCrLF
& Right(" " & CStr(i + 1),
2) & " = " & Benutzer(i)
Next

User = InputBox(Eingabetext, "Desktop
Link Script")

If IsNumeric(User) Then
UserNr = CInt(User)
Else
Msgbox "Bitte nur 1 bis " &
CStr(AnzBenutzer) & "
eingeben!", vbCritical,
"Hinweis"
WScript.Quit
End if

If UserNr < 1 Or UserNr > AnzBenutzer
Then
Msgbox "Bitte nur 1 bis " &
CStr(AnzBenutzer) & "
eingeben!", vbCritical,
"Hinweis"
WScript.Quit
End If

Benutzername = Benutzer(UserNr - 1)

'Es soll nun der gewählte Benutzer
als Bestätigung mit dem msgbox Befehl
ausgegeben werden.
MsgBox "Gewählter Benutzername:
" & Benutzername

Habe die Benutzer im Script angelegt,da das einlesen der Txt datei nicht funktioniert hat.
Jetzt zeigt er mir zwar die Benutzer an ,aber sobald ich eine Nummer eingebe
kommt der Fehler:

Index außerhalb des gültigen Bereichs [number: 2]

außerdem habe ich den weiterverarbeitungsteil etwas geändert

vbscript = "verdi " & Benutzername & " " & Firmenname & " .vbs"
strProgram = "c:\LCS\ & Benutzername & " " & Firmenname & .vbs"
strProgramtitel = "Verdi - " " & Firmenname & "
Set WshShell = Wscript.CreateObject("Wscript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CopyFile "Pfad zum Scrip\ & vbscript & " , "C:\lcs\" ' Script kopieren

vbscript soll den Scriptnamen an den Kopierbefehl übergeben der so zusammengesetzt ist:

verdi Max Muster bbb.vbs

verdi = Programmname (keine variable)
Max Muster = Benutzer (variable)
bbb = Firma (variable)
.vbs = feste Endung (keine variable)

strprogram sollte so aussehen

c:\LCS\verdi Max Muster bbb.vbs

strProgramtitel
Verdi - bbb
Wobei es hilfreich wäre ,wenn ich später die Abkürzung bbb irgendwie gegen den vollen
Firmennamen austauschen könnte.
Dies sollte erst nach Eingabe der Firmennummer geschehen.

Außerdem ist noch das Icon vom Orginal Programm einzubinden,welches sich natürlich immer
noch in C:\lcs befindet

objShortcut.IconLocation = "c:\lcs\verdi\lcsverdi.exe,0"

Oder wird das in deiner Version automatisch gemacht ?
Kann man irgendwie noch die Icon Größe übergeben ?
Musst verzeihen,daß ich soviel frage,ich hab erst wenig Ahnung von VBScript.
Ich habe bisher alles in Batches gemacht.

Noch eine letzte kleine Frage:
Gibt es eine Möglichkeit in VB Script eine Art Menü zu generieren ?
Ich habe hier eine Batch mit Menü,die ich in VB Script portieren will.

Wie immer vielen Dank für deine Hilfe

Gruß
Claus
Bitte warten ..
Mitglied: bastla
04.10.2007 um 15:58 Uhr
Hallo cbli!

Vorweg: Stell bitte Codebeispiele in < code>-Tags (ohne die Leerstelle).

Jetzt zeigt er mir zwar die Benutzer an ,aber sobald ich eine Nummer eingebe
kommt der Fehler:
Index außerhalb des gültigen Bereichs [number: 2]
Kann ich (mit dem aus Deinem Post heruntergeladenen Code) nicht nachvollziehen ...
Mit richtig gesetzten Anführungszeichen sollte der folgende Teil etwa so aussehen:
01.
vbscript = "verdi " & Benutzername & " " & Firmenname & " .vbs" 
02.
strProgram = "c:\LCS\verdi " & Benutzername & " " & Firmenname & ".vbs" 
03.
strProgramtitel = "Verdi - " & Firmenname 
04.
Set WshShell = WScript.CreateObject("WScript.Shell") 
05.
Set fso = CreateObject("Scripting.FileSystemObject") 
06.
fso.CopyFile "Pfad zum Scrip\" & vbscript, "C:\lcs\" ' Script kopieren
Noch ein Hinweis (siehe auch in Deinem anderen Thread): "Set fso = ..." (und natürlich auch "Set WshShell = ...") brauchst Du nur einmal durchzuführen ...
Wobei es hilfreich wäre ,wenn ich später die Abkürzung bbb irgendwie gegen den vollen
Firmennamen austauschen könnte.
Dies sollte erst nach Eingabe der Firmennummer geschehen.
Schau Dir dazu das "Select Case"-Konstrukt oben an ...
Gibt es eine Möglichkeit in VB Script eine Art Menü zu generieren ?
Jein - an sich hat VBS kein Fenster, in welches Du schreiben könntest, sondern bietet eben für die Interaktion MsgBox und InputBox - allerdings lässt sich aus VBS heraus unter Verwendung des Objektes "InternetExplorer.Application" eine Webseite (HTML) erzeugen und anzeigen ...

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Netzwerkprotokolle
VPN - Auswahl der Prokolle und Verarbeitung
gelöst Frage von 85232Netzwerkprotokolle1 Kommentar

Hi, ich versuche mich gerade in VPN einzuarbeiten und Analyse hierzu die Protokolle. Scheinbar hatte ich die ganze Zeit ...

VB for Applications
VBS Datei Auswahl Dialog
gelöst Frage von 133202VB for Applications5 Kommentare

Hallo Ihr, im Thread: konnte ich schon finden, was ich gesucht habe: Jetzt möchte ich allerdings, dass am Anfang ...

VB for Applications
VBS Script kann Prgramm nicht starten
gelöst Frage von C.BoernerVB for Applications15 Kommentare

Hallo ihr Admins, Ich habe folgendes Scenarios ein Programm läuft im Hintergrund (Drivve-Image) das übergibt Werte an ein VBS ...

Batch & Shell
Hilfe Bei einem vbs Script
gelöst Frage von Hattori-HanzoBatch & Shell19 Kommentare

Hey Leute Könnt ihr mir bitte sagen was daran falsch ist? beschäftige mich erst seit kurzem mit vbs scripts. ...

Neue Wissensbeiträge
Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 19 StundenViren und Trojaner1 Kommentar

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 23 StundenRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 3 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 5 TagenWebbrowser8 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Heiß diskutierte Inhalte
Batch & Shell
Trusted Sites für alle User auf dem PC einpflegen
Frage von xXTaKuZaXxBatch & Shell12 Kommentare

Aufgabestellung: Es sollen auf 1 PC (bzw. mehreren PCs) vertrauenswürdige Sites per Powershell eingetragen werden, die für alle User ...

Voice over IP
Telefonstörung - Ortsrufnummern kein Verbindungsaufbau
Frage von Windows10GegnerVoice over IP10 Kommentare

Hallo, sowohl bei uns als auch beim Opa ist es über VoIP nicht möglich Ortsrufnummern anzurufen. Es kommt nach ...

Vmware
DOS 6.22 in VMWare mit CD-ROM
gelöst Frage von hesperVmware10 Kommentare

Hallo zusammen! Ich hab ein saublödes Problem. Es ist eine VMWare mit DOS 6.22 zu erstellen auf dem ein ...

Windows 10
Probleme mit Dateien, deren Pfad + Dateiname länger als 256 Zeichen sind
Frage von FalaffelWindows 109 Kommentare

Guten Tag, unter Windows 10 scheint es immer noch das Problem zu geben, dass der Pfad + Dateiname einer ...