Det kan godt være at jeg må lave den løsning med at diregere output ud i en fil og indlæse den bagefter. Det ville i hvert fald være den lette løsning her. Desværre har jeg ikke kildekoden, men da de fleste billedbehandlings programmer har funktionalitet til at finde ud af hvilken type et givent image er, mente jeg at der måske fandtes en free dll, eller ocx fil man kunne bruge til dette. I guess not :-) jeg lader lige spørgsmålet hænge lidt for at se om der er andre forslag.
Hvis dit spørgsmål er om du kan lave et VB program der starte dit gamle dos program og derefter vise resultater i dit VB program så kender jeg 2 muligheder. Den ene er at bruge API kald og det bliver hurtigt lidt langhåret. Den anden og nemme løsning er at bruge vb scripting host i dit vb program (WScript.Shell) her har man nemlig muligheden for at læse stdOut og stdErr fra et dos program.
Dim objWshshell As Object Dim objExec As Object Dim strCommandolinie as String Dim strStdOut As String Dim strStdErr As String Dim intExitCode as Integer
Set objWshshell = CreateObject("WScript.Shell")
''%comspec%'= reference til kommando fortolker dette er nødvendig for at kunne læse StdErr '/c'= Afslut efter kørsel strCommandolinie = ?%comspec% /c mitdosprogram.exe?
Set objExec = objWshshell.Exec(strCommandolinie)
'Loop'er indtil programmet er færdig med at køre Do While objExec.Status = 0 DoEvents Loop
'Sætter ExitCode intExitCode = objExec.ExitCode
'Checker om alt gik godt eller der er opstået en fejl If intExitCode = 0 Then strStdOut = objExec.StdOut.ReadAll 'Viser Output msgbox strStdOut Else strStdErr = objExec.StdErr.ReadAll msgbox strStdErr End If
NTN Hej ! jeg kan få det til at virke hvis den fil jeg tester på ligger i c root, men ikke hvis den ligger længere ude i directory strukturen når jeg anvender commondialog. msgbox returnere ingenting, men hvis jeg kører den i hånden på detn fil virker det. Den ser således ud.
Dim strCommandolinie As String Dim strStdOut As String Dim strStdErr As String Dim intExitCode As Integer Dim FileName As String ComFile.ShowOpen FileName = ComFile.FileName
Set objWshshell = CreateObject("WScript.Shell")
''%comspec%'= reference til kommando fortolker dette er nødvendig for at kunne læse StdErr '/c'= Afslut efter kørsel strCommandolinie = "%comspec% /c micinfo.exe"
Set objExec = objWshshell.Exec("c:\mosaic\bin\micinfo.exe '" & FileName & "' ") 'MsgBox FileName 'Loop'er indtil programmet er færdig med at køre Do While objExec.Status = 0 DoEvents Loop
'Sætter ExitCode intExitCode = objExec.ExitCode
'Checker om alt gik godt eller der er opstået en fejl If intExitCode = 0 Then strStdOut = objExec.StdOut.ReadAll 'Viser Output MsgBox strStdOut Else strStdErr = objExec.StdErr.ReadAll MsgBox strStdErr End If
Prøv med Set objExec = objWshshell.Exec("%comspec% /c c:\mosaic\bin\micinfo.exe '" & FileName & "' ") i stedet for Set objExec = objWshshell.Exec("c:\mosaic\bin\micinfo.exe '" & FileName & "' ")
Det kan også skyldes FilName ikke indeholder den fulde sti eller at '' ikke er sat rigtigt, jeg kan ikke huske om de skal uden om hele udtykket.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.