Avatar billede shjdsi Nybegynder
12. marts 2003 - 13:28 Der er 7 kommentarer og
1 løsning

output fra dos commando til vb form, eller alternativ løsning

Hej!
Jeg har et dos program jeg gerne vil lave et grafisk interface til, enten via API, eller bruge shell funktionen.

Mit dos program laver en masse output lignende dette i command windue

Creator      : Adobe Illustrator 9.0
Title        : Sitplan(CG9)[0.15-0.3].ai
Date        : 2002/02/14 15:18:21
Resolution  : 72 x 72
Offset (pt)  : -2381.1, -3367.6
Size (pt)    : 2381.1 x 3367.6
Color space  : Unknown 0 0
Size (pixels): 0 x 0
Depth        : 1
Planes      : 1
PlanarFormat : 0
Color map    : 0
Compression  : Unknown
Readable    : No
Pages        : 1


Er det muligt at få dette skrevet ud på en form, eller i en listbox istedet.


Et alternativt kunne være.
Findes der en dll, eller ocx der kan læse informationer omkring en billedfil.

med ovenstående oplysninger.

Jeg overvejer at lave et sådan program men er ikke gået igang endnu.
Avatar billede Spotgun Seniormester
12. marts 2003 - 13:34 #1
Prøv at køre dit dosprogram sådan her:
"filnavn.exe > output.txt"

Og så se om du evt. kan hente output.txt ind i din form.

Har ikke prøvet det, men det er da et bud på en mulig løsning :-)
Avatar billede driis Nybegynder
12. marts 2003 - 14:17 #2
Har du kildekoden til DOS programmet ?
Avatar billede driis Nybegynder
12. marts 2003 - 14:18 #3
... ellers er spotgun's forslag med at skrive outputtet til en fil, og så læse denne fil med Visual Basic kode.
Avatar billede shjdsi Nybegynder
12. marts 2003 - 14:23 #4
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.
Avatar billede ntn Nybegynder
12. marts 2003 - 14:47 #5
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
Avatar billede larsen Nybegynder
12. marts 2003 - 14:54 #6
Disse 2 kan vise nogle info om billeder, men ved ikke om det er det du søger.

Image Informer
http://pscode.com/vb/scripts/ShowCode.asp?txtCodeId=33650&lngWId=1

Eller

VisImage - Image Viewer
http://pscode.com/vb/scripts/ShowCode.asp?txtCodeId=42510&lngWId=1
Avatar billede shjdsi Nybegynder
12. marts 2003 - 15:29 #7
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

End Sub
Avatar billede ntn Nybegynder
12. marts 2003 - 20:52 #8
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.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester