externe Anwendung
-
hallo leute
da auf mein ole problem niemand reagiert , versuch ich es anders ...
ich möchte ein vb script aus der boorland oberfläche heraus starten ...( um an dateieigenschaften eines dokuments zu kommen ....das script liest dann die eigenschaften , schreibt sie in ein textfeld und ich kann diese auslesen )nur hab ich keinen blaßen schimmer wie ich das script im bcb aufrufen soll
hat jemand ne Idee ??
Ines
-
Seit wann kennt VB Scripte? Dachte VB erzeugt auch fertige EXE??
Sofern du externe Programme aufrufen willst
http://www.marquardtnet.info/cecke/quickies.1/1_quicky_18.html
http://www.marquardtnet.info/cecke/quickies.1/1_quicky_25.html
Sofern du Quellcode von VB in einem C-Compiler ausführen willst -> wird wohl nicht gehen. Du müsstest also ein fertiges VB Programm aufrufen, welches die Daten deines Dokumentes über eine Datei an dein C-Programm weitergibt.
Die Firma heisst übrigens Borland
-
Hy Christian ...
ich habe ein fertiges Script was dateieigenschaften ausliest und dann in eine textdatei schreibt welche ich im Borland auslese (exe) .... da aber mein Hauptprogramm im BORLAND
läuft und ich nicht weiss wie ich im Borland Dateieigenschaften auslesen kann , dachte ich mir es über ein script zu realisieren, das bei einer bestimmten Prozedur im Borland aufgerufen wird ... oder weist du eine elegantere Lösung ??? ansonsten hab ich mir die links angeschaut und werde mal sehn , ob es klappt ........ vielen Dank erst mal oder vieleicht bis später
Ines
-
... oder weist du eine elegantere Lösung ???
Naja, fang doch an, dich mit lesen/schreiben von Dateien unter C++ zu befassen
Schau mal fürs erste im C++Builder unter TMEMO ->Lines-> LoadFromFile an. Da du die Daten ja anzeigen willst
-
hey .... ich weiss wie ich dateien lesen oder schreiben kann .... (fread, fgets...) das lesen und schreiben ist ja nicht das problem .... im übrigen klappte das SHELLEXECUTE NICHT
int aus=(int)ShellExecute(btnAuswahl->Handle,0,"benutzer.vbs","parameter1",0,SW_SHOWNORMAL);
if(aus<=32)
Application->MessageBox("Fehler","Fehler",MB_APPLMODAL|MB_ICONSTOP|MB_OK);er geht zwar rein ... startet aber das vbs nicht .... geht mit messagebox raus ... helf mal mir Anfänger
... wo ist der fehler ....
und zur dateiarbeit >>>> ich möchte aus einem worddokument was ich in einem ole Objekt geladen und sichtbar mache die Dateieigenschaften sehen ( Autor , erstelldatum usw. ..... und das ist mein problem , was ich nicht übers Borland geregelt krieg
mit LoadFromFile krieg ich den Dokumenteninhalt und nicht die eigenschaften !!!!Ines
-
Heeey, lesen und dann der schreien!
habe ein fertiges Script was dateieigenschaften ausliest und dann in eine textdatei schreibt
a) Die Idee war, dass du das Programm ablaufen läßt und mit LoadFromFile die geschriebenen Daten aus der textdatei einliest.
b)Sollte es mich erstaunen, wenn du mit LoadFromFile den Dokumenteninhalt einer *.doc Datei bekommst
c)Shellexecute führt entweder Programme aus, oder lädt anhand des Dateitypen das entsprechende Programm. Für beides ist ein Beispiel vorhanden. Um überhaupt VB zu starten ( oder was auch immer bei dir mit *.vbs verbunden ist), ist
int aus=(int)ShellExecute(MeineAnwendung->Handle,"open","MeineHTMLDatei.html",NULL,NULL,SW_SHOWNORMAL);
anzuwenden.
-
meine dokumente lade ich in ein ole objekt rein -- rufe diese mit doVerb auf ..so das sich innerhalb meines Programms Word öffnet und mein Dokument anzeigt ....
vieleicht drück ich mich ja auch falsch aus also nochmal ....
von diesen geladenen dokumenten brauche ich die Dok eigenschaften ( autor usw ) um diese Sachen dann in eine Datenbank innerhalb des borlands zu speichern .... deine Zeile> int aus=(int)ShellExecute(MeineAnwendung->Handle,"open","MeineHTMLDatei.html",NULL,NULL,SW_SHOWNORMAL);
habe ich benutzt
Ergebnis >>> das VB Script wird weder geladen noch gestartet noch angezeigt ...meine Zeilen sehen so aus
> int aus=(int)ShellExecute(test_2->Handle,0,"C:\\va201205\benutzer.vbs","parameter1",0,SW_SHOWNORMAL);
if(aus<=32)
Application->MessageBox("Fehler","Fehler",MB_APPLMODAL|MB_ICONSTOP|MB_OK);die variable aus hat zu beginn den wert 2 ( durch debugger gesehn) und am ende auch ....
wo liegt mein fehler ???
test_2 ist mein aufgerufenes Programm und benutzer.vbs mein scriptso, hast du einen Tip für mich ??? muss noch irgendeine dll eingebunden werden oder warum geht es nicht ???
-
hy christian
PS
im übrige finde ich es wirklich nett wie schnell du dich meldest und was für ne geduld du für solche problemfälle wie mich an den tag legstdanke schön
-
2= ERROR_FILE_NOT_FOUND
"C:\\va201205\\benutzer.vbs"
Doppelte Backslashes beachten
-
es geht nicht
mein verdacht ist , das er das> int aus=(int)ShellExecute(test_2->Handle nicht versteht !!!
ich muss doch dort meine borland exe (von der mein script aufgerufen wird ) als ausführendes programm angeben oder nicht ???
-
Kannst auch 0 angeben, weil nur
Specifies a parent window. This window receives any message boxes that an application produces. For example, an application may report an error by producing a message box.
-
auch mit null behält die variable aus = 2
also ohne erfolgich weiss nich weiter ... es muss doch möglich sein , so ein kleines script zu starten ??????????
hast du noch ne winzig kleine idee ??? es ist unheimlich wichtig ... das ist das einzige was meinem programm fehlt um in meiner firma scharf geschalten zu werden ...
vieleicht kann er ja kein vb script lesen ??
oder sowasich bin am verzweifeln
-
Wie oben schon erwähnt, dir fehlt das "open".
Oder du rufst den Scriptinterpreter explizit auf und übergibst den Pfad zum Script als Parameter.int aus = ShellExecute(0, "cscript.exe", "pfad\\zur\\script.vbs", 0, 0, SW_SHOWNORMAL);
-
hallo Jansen
hallo christianeure Hilfe hat sehr gut funktioniert .... vielen dank
und christian , auch deins hätte gestern schon gut funktioniert, wenn ich nicht einen schreibfehler drin gehabt hätte ..... statt benutzer.vbs heist das script nämlich nutzer.vbs .....
tut mir wirklich leid .... ich hab es erst heut morgen gesehn ...also noch mal vielen dank euch zwei
Ines :xmas1:
-
Guten Rutsch
-
danke Christian dir auch und allen die hier so rumschwirren