Datenübergabe an und -empfang von VBS Datei

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Pelagio
Beiträge: 424
Registriert: 11.11.2004 17:52
Computerausstattung: AMD Ryzen 5 7600 6-Core Prozessor 3.80 GHz
16,0 GB Arbeitsspeicher
Windows 11 Pro Betriebssystem
Wohnort: Bremen

Datenübergabe an und -empfang von VBS Datei

Beitrag von Pelagio »

Hallo Leute,

lang ist es her aber Fragen holen einen immer wieder ein.
Meine Problem ist, das ich von einer Exceldatei den Namen der ersten Tabelle brauche.
Ich möchte gleich dazu sagen, ich wollte keine zusätzliche pbi-Datei includen.
Um dies mit eigenen Mitteln zu bewerkstellingen habe ich mir ein VBScript geschrieben
'*****************
' DEKLARATIONEN
'*****************
DIM WSHShell

'*****************
' MAIN
'*****************
SET WSHShell = WScript.CreateObject("WScript.Shell")
CALL MAIN(WScript.Arguments(0))
WSCRIPT.QUIT

'*****************
' PROZEDUREN
'*****************
SUB MAIN(vFile)
DIM pXL, pWB, pSheet

SET pXL = CreateObject("Excel.Application")
SET pWB = pXL.Workbooks.Open(vFile)
pSheet = pWB.Worksheets(1 ).Name
pWB.Close(False)
SET pWB = Nothing
pXL.Quit()
Set pXL = Nothing
WSHShell.PopUp pSheet, , "InfoBox", vbExclamation
END SUB
und kann dieser auch über PB eine Exceldatei übergeben

Code: Alles auswählen

Global DBFile.s = GetPathPart(ProgramFilename()) + "Test Manor.xlsx"

Debug RunProgram("Material_Zugang.vbs", Chr(34) + DBFile + Chr(34), GetPathPart(ProgramFilename()))
Was mir jetzt noch fehlt, und leider habe ich dies auch über das Internet nicht rausbekommen (wahrscheinlich die falschen Fragen gestellt).
Wie kann ich den Tabellennamen, statt in einem Fenster anzuzeigen, dem PB-Programm übergeben?
Ohne Zeit kein Fleiß
Auf neustem Stand zu sein ist eine Kunst die nicht jeder perfektioniert [Win11Pro; PB6.20 LTS]. :allright:
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Datenübergabe an und -empfang von VBS Datei

Beitrag von Kiffi »

Du schreibst in Deinem VBS einfach in stdout:

Code: Alles auswählen

wscript.stdout.writeline "Hallo!"
und liest stdout mit ReadProgramString() aus:

Code: Alles auswählen

VBS = RunProgram("wscript", "dein.vbs", "", #PB_Program_Open | #PB_Program_Read)

If VBS
	Debug ReadProgramString(VBS)
	CloseProgram(VBS)
Else
	Debug "!RunProgram"
EndIf
Grüße ... Peter
a²+b²=mc²
Benutzeravatar
Pelagio
Beiträge: 424
Registriert: 11.11.2004 17:52
Computerausstattung: AMD Ryzen 5 7600 6-Core Prozessor 3.80 GHz
16,0 GB Arbeitsspeicher
Windows 11 Pro Betriebssystem
Wohnort: Bremen

Re: Datenübergabe an und -empfang von VBS Datei

Beitrag von Pelagio »

Danke Kiffi für die Antwort,

leider funktioniert es nicht so wie es sollte.

Code: Alles auswählen

DIM WSHShell
DIM gSheet
SET WSHShell = WScript.CreateObject("WScript.Shell")
gSheet = WScript.Arguments(0)
wscript.echo gSheet
WScript.StdOut.Writeline "Hallo!"
WScript.QUIT
ergibt den Fehler: Das handle ist ungültig!
Insofern ist es mir leider nicht möglich die Daten mit PB

Code: Alles auswählen

Global DBFile.s = GetPathPart(ProgramFilename()) + "20140915 input Dun Arklow Manor.xlsx"
Global VBS.i
VBS = RunProgram("Material_Zugang.vbs", Chr(34) + DBFile + Chr(34), GetPathPart(ProgramFilename()), #PB_Program_Open|#PB_Program_Wait)
If VBS
   Debug "= " + ReadProgramString(VBS)
   CloseProgram(VBS)
EndIf
zu empfangen. Die Datenübergabe funktioniert einwandfrei.
Auf VBS bekommt einen Wert zurück, so dass '=' im Debugfenster angezeigt wird.
Ohne Zeit kein Fleiß
Auf neustem Stand zu sein ist eine Kunst die nicht jeder perfektioniert [Win11Pro; PB6.20 LTS]. :allright:
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Datenübergabe an und -empfang von VBS Datei

Beitrag von Kiffi »

Du musst WScript mit RunProgram() starten; nicht Dein VBS (siehe mein Codeschnippsel).

Grüße ... Peter
a²+b²=mc²
Benutzeravatar
Pelagio
Beiträge: 424
Registriert: 11.11.2004 17:52
Computerausstattung: AMD Ryzen 5 7600 6-Core Prozessor 3.80 GHz
16,0 GB Arbeitsspeicher
Windows 11 Pro Betriebssystem
Wohnort: Bremen

Re: Datenübergabe an und -empfang von VBS Datei

Beitrag von Pelagio »

DANKE! Kiffi
:bounce:

das mit dem WScript Programm hatte ich nicht sogleich verstanden (schwer von Begriff),
jedenfalls funktioniert es jetzt.
:allright:
Ohne Zeit kein Fleiß
Auf neustem Stand zu sein ist eine Kunst die nicht jeder perfektioniert [Win11Pro; PB6.20 LTS]. :allright:
Benutzeravatar
Josh
Beiträge: 1028
Registriert: 04.08.2009 17:24

Re: Datenübergabe an und -empfang von VBS Datei

Beitrag von Josh »

Ist das Programm nur für dich gedacht oder willst du es weiter geben? In zweiteren Fall könnte es Probleme geben, da, soweit ich weiß, die Scripts vom Systemadministrator deaktiviert werden können.
Benutzeravatar
Pelagio
Beiträge: 424
Registriert: 11.11.2004 17:52
Computerausstattung: AMD Ryzen 5 7600 6-Core Prozessor 3.80 GHz
16,0 GB Arbeitsspeicher
Windows 11 Pro Betriebssystem
Wohnort: Bremen

Re: Datenübergabe an und -empfang von VBS Datei

Beitrag von Pelagio »

Danke Josh,

für die Information, aber das Programm welches auf den Script zugreifen soll ist nur für meine Arbeitsumgebung und natürlich damit auch für mich zum Üben.
Immer mal was Neues ausprobieren, was ein in den Sinn kommt. Wer weiß wozu dies noch Gut ist.
Sollte ich es doch einmal in einem Programm weitergeben, wo die Scripts deaktiviert sind, werde ich mir was Neues einfallen lassen und wenn es nicht anderes geht mit etwas aus dem Pool zum Bsp. ExDatabase.
Auch wenn ich ungern etwas Vollwertiges übernehme, so will ich mich doch hier einmal bei allen Progern für Ihre, zur freien Verfügung stehenden, Arbeiten bedanken.
:praise:
Ohne Zeit kein Fleiß
Auf neustem Stand zu sein ist eine Kunst die nicht jeder perfektioniert [Win11Pro; PB6.20 LTS]. :allright:
Antworten