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
GELÖST

VB6 Variablen von einem Skript (.exe) in eine andere (.exe) übergeben

Frage Entwicklung VB for Applications

Mitglied: skid

skid (Level 1) - Jetzt verbinden

23.01.2008, aktualisiert 24.01.2008, 6873 Aufrufe, 6 Kommentare

Hi,

habe da ein kleines Problem mit der Übergabe von Variablen aus einem Skript in das andere.
Ich habe 2 Skripte in VB6 erstellt und beide zu einer .EXE kompiliert.
Das eine Skript ruft sozusagen mit Administratorrechten das andere auf.
Im Skript sollen nun 2 Werte ausgelesen und diese im zweiten Skript weiterverarbeitet werden.

Habe hier im Forum schon ein Beispiel gefunden wie es Funktionieren soll und an mein Skript angepasst :

01.
Set wshShell = CreateObject("WScript.Shell") 
02.
 
03.
wshShell.Run ScriptPath & "PSEXEC -u" & " Domäne\Adminuser" & " -p" & " Passwort " & Skript2 & " """ & Var1 & """ """ & Var2 & """", 0, True
Das Funktioniert auch soweit - das 2. Skript wird aufgerufen.

Um das ganze auch zu Prüfen ob die 2 Variablen übergeben werden habe ich im 2. Skript das hier stehen:

01.
Var1 = WScript.Arguments(0) 
02.
Var2 = WScript.Arguments(1) 
03.
MsgBox Var1 & Var2
Nur bekomme ich die Fehlermeldung : Laufzeitfehler 424 - Objekt erforderlich

Hat jemand evtl. eine Idee woran das liegen kann ??
Vielleicht ist es ja nur eine Kleinigkeit

Gruss
SKID
Mitglied: misterdemeanor
23.01.2008 um 11:16 Uhr
Hallo SKID,

Du willst also herausfinden mit welchen Argumenten Deine .Exe ANWENDUNG aufgerufen wurde...

In VB6 gibt es in der Sub Main dummerweise kein Parameter-Array Argument...allerdings existiert die Function Command(). Mit dieser kannst Du Dir die beim Aufruf mitgegebenen Argumente als String abrufen.

Da Du ja wohl mindestens zwei Argumente beim Aufruf übergeben lassen willst solltest Du einen entsprechenden Delimiter vorschreiben...z.B. ein einfaches Leereichen zwischen den Argumenten. So fällt Dir das extrahieren der einzelnen Startparameter leichter.

01.
 
02.
Dim cmdLineArgs() As String 
03.
 
04.
  cmdLineArgs=Split(Command," ") 
05.
 
Nun hast Du Dein Kommandozeilen Argumenten Array.

BTW: Was bei Dir die Fehlermeldung verursacht:

Du hast wahrscheinlich keine Instanz der WScript.Shell in Anwendung2 erstellt.

Was nicht davon ablenkt das dort der logische Fehler liegt:

Es wäre 1) ohnehin nutzlos da Du in zwei verschiedenen Anwendungen agierst.
2) Würde Dir das sowieso nicht weiterhelfen weil (z.B.) WScript.Arguments(0) gar nichts mit Den Aufrufparametern Deiner Anwendung2 zu tuen hat.

Möglicherweise liege ich aber vollkommen falsch da Dein Post etwas verwirrend war: Du schreibst von Skripten als kompilierte .Exe Dateien. Auch war mir nicht ganz klar ob Du Deine beiden Skripte als eine ".Exe" kompiliert hast-->sogesehen ja nicht möglich. Es sei denn Du rufst in Deiner .Exe die gleiche Skript .Exe auf. In diesem und vielen anderen Fällen wäre Dir dann mal das Schlagwort Component Object Model um die Ohren gefeuert. Nur nochmal um eines klarzustellen: Wenn Du in VB6 etwas programmierst und kompilierst...ist es kein Script.

Sage mal Bescheid ob Dir das helfen konnte

BG, Felix
Bitte warten ..
Mitglied: skid
23.01.2008 um 13:28 Uhr
Hi Felix,

danke für den Tip.

Werde mal versuchen das ganze auf die Reihe zu bekommen.
Bin nicht soo Fit in Sachen VB
Bisher bekomme ich nur den Fehler beim Kompilieren das ein Array erwartet wird !?
Mal gucken was das wieder ist.....

Gruß
SKID
Bitte warten ..
Mitglied: misterdemeanor
24.01.2008 um 05:04 Uhr
Guten Morgen,

Bisher bekomme ich nur den Fehler beim
Kompilieren das ein Array erwartet wird !?
Mal gucken was das wieder ist.....


Hoppla...

mein Fehler. Da schicke ich Dir zwei Zeilen "Code" und dann noch mit einem Fehler...das editiere ich mal in meinem ersten Post

So hatte ich es fälschlicherweise zuerst geschrieben:

01.
Dim cmdLIneArgs As String() 
02.
 ...
Und so muss es in VB6 aussehen:

01.
Dim cmdLineArgs() As String 
02.
...
editiere es wie gesagt noch im ersten Post.
Bitte warten ..
Mitglied: skid
24.01.2008 um 07:36 Uhr
Guten Morgen auch.....

aja, sieht jetzt beim Kompilieren schon besser aus

Ok, kann sein das mein Post etwas verwirrend war da ich von Scripten und .Exe rede - ich versuch´s nochmal

Also, es sind 2 .Exe (Programme).
Das erste Programm ruft das zweite auf. Im ersten Programm werden irgendwelche Werte ausgelesen die im zweiten Programm weiter verwendet werden sollen.
Das ganze hatte ich so gelöst das eine Textdatei mit den ausgelesenen Werten angelegt wird das dann vom 2. Programm wieder ausgelesen wird. Nur will ich jetzt gerne ohne die Textdateien arbeiten und die Werte so übergeben.

Wie kann ich denn in meinem zweiten Programm überprüfen ob die Werte aus dem ersten Programm übergeben worden sind ? Evtl. mit einer MsgBox ?

Wie ist eigentlich das
01.
cmdLineArgs=Split(Command," ")
zu verstehen ?
Muss ich anstelle von Command den Aufruf des 2. Programms schreiben ?

SKID
Bitte warten ..
Mitglied: misterdemeanor
24.01.2008 um 08:16 Uhr
Also, es sind 2 .Exe (Programme).
Das erste Programm ruft das zweite auf.
...

Wie kann ich denn in meinem zweiten Programm
überprüfen ob die Werte aus dem
ersten Programm übergeben worden sind ?
Evtl. mit einer MsgBox ?

Du rufst ja aus Exe1 Exe2 mit den Parametern auf:

01.
> Set wshShell = 
02.
> CreateObject("WScript.Shell") 
03.
>  
04.
> wshShell.Run ScriptPath & "PSEXEC 
05.
> -u" & " 
06.
> Domäne\Adminuser" & " 
07.
> -p" & " Passwort " & 
08.
> Skript2 & " """ & 
09.
> Var1 & """ 
10.
> """ & Var2 & 
11.
> """", 0, True 
12.
> 

So wie ich das verstehe wird Exe2 also nicht eigenständig sondern eben von Exe1 aus gestartet und somit müsste ja klar sein das Parameter vorhanden sind. Aber mittels der Function Command kannst Du ja überprüfen ob Werte übergeben worden sind.
Bitte warten ..
Mitglied: skid
24.01.2008 um 10:16 Uhr
So, jetzt Funktioniert´s so wie es soll - kann jetzt die Werte auslesen

Dank Dir für Deine Hilfe !!!

SKID
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Variablen von Batch zu VBS übergeben
gelöst Frage von ciejayBatch & Shell10 Kommentare

Hallo liebe Com, ich versuche mich gerade in der Batch und vbs Programmierung und bin daher sozusagen noch Anfänger. ...

Batch & Shell
PS1 Skript in EXE
gelöst Frage von 112TimoBatch & Shell4 Kommentare

Hallo Leute, wie der Tietel schon sagt, möchte ich ein PowerShell-Skript (.ps1) in eine funktionsfähige .exe kompilieren. Bitte keine ...

Batch & Shell
CMD-Ergebnis in Variable speichern und diese Variable dann andere Batchdatei übergeben
Frage von torilloBatch & Shell6 Kommentare

Hallo Forum, ich habe ein Problem mit der Übergabe einer Variable von einer in eine andere Batchdatei und würde ...

Batch & Shell
Variable in neues Batch Script übergeben
gelöst Frage von alex89Batch & Shell3 Kommentare

Hallo, ich habe mir ein Batch Script erstellt um einige adminrelevante Tools und Abfragen aus einem Menü heraus zu ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 23 StundenWindows 102 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 1 TagSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 1 TagInternet3 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 1 TagDSL, VDSL2 Kommentare

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
Windows Server
GPO nur für bestimmte Computer
Frage von Leo-leWindows Server13 Kommentare

Hallo Forum, gern würde ich ein Robocopy script per Bat an eine GPO hängen. Wichtig wäre aber dort der ...

Windows Server
KMS Facts for Client configuration
Frage von winlinWindows Server13 Kommentare

Hey Leute, wir haben in unserem Netz nun einen neuen KMS Server. Haben Bestands-VMs die noch nicht aktiviert sind. ...

Windows Tools
Software-Tool zum Entfernen von bösartigem Windows
Frage von emeriksWindows Tools11 Kommentare

Hi, siehe Betreff hat das jemals irgendjemand schonmal sinnvoll eingesetzt? (MRT) E.

Router & Routing
OpenWRT bzw. L.E.D.E auf Buffalo WZR-HP-AG300H - update
gelöst Frage von EpigeneseRouter & Routing11 Kommentare

Guten Tag, ich habe auf einem Buffalo WZR-HP-AG300H die alternative Firmware vom L.E.D.E Projekt geflasht. Ich bin es von ...