Corona skrev:
> Hej,
> jeg har brug for at starte et vb prg fra en asp side der bruger vb-scipt.
> vbprget skal kaldes med en værdi der ligger i en variabel i scriptet.
>
> mvh
> Carsten
Hvis det blot er en .exe-fil du ønsker kørt med en bestemt parameter, kan
det gøres meget simpelt med WScript.Shell-objektet:
Dim Parameter
Dim wsh
Parameter = CStr(4) ' Vi vil sende 4 som parameter til vores .exe-fil
Set wsh = Server.CreateObject("WScript.Shell")
If wsh.Run("stien-på-exe-filen.exe " & Parameter, True, 1) Then
' Parameter 2 (som er True) gør at .asp-eksekveringen først fortsætter når
..exe-filen afsluttes
' Det kan selvfølgelig ændres til False, hvis man ikke vil vente på at
..exe-filen lukker.
Response.Write "Der opstod en fejl med eksekvering af .exe-filen."
Else
Response.Write "Det virkede!"
End If
Set wsh = Nothing
.... selvfølgelig skal WScript.Shell-objektet være tilladt at bruge på den
server du kører scriptet.
Denne ovenstående måde at bruge eksterne programmer på giver ikke de store
muligheder for kommunikation. Man kunne jo få .exe-filen til at oprette en
fil, som scriptet bagefter læser, men alt i alt er det ret bøvlet.
Hvis man ønsker noget mere avanceret kommunikation og har adgang til at
registrere .dll-filer på serveren, kan man lave sine egne objekter. Så kunne
noget a la følgende kunne laves:
Dim Parameter
Dim obj
Set obj = Server.CreateObject("MyObject.Test")
obj.MyVariable = Parameter ' Sætter en af objektets properties, som man
selv har defineret.
obj.DoSomething
If obj.DidSomething() Then
Response.Write "Objektet gjorde hvad det skulle."
Else
Response.Write "Der opstod en fejl: " & obj.GetErrorMessage()
End If
Set obj = Nothing
.... der er en kort og nem begynderartikkel her:
http://www.netcoders.dk/articles.asp?mode=show_article&article_id=38&tech_id
=12
Håber du kunne bruge det!
Mvh. Bjarke