VBiB/ACCB.net - Visual Basic in België | .net Ineta User Group  
Hoofdmenu

Advertenties

Het Computer Winkeltje HCW


Evenementen

Forum

Plaats nieuw bericht   Plaats Reactie
Vorige onderwerp Printervriendelijke versie Log in om je privé berichten te bekijken Volgende onderwerp
Auteur Bericht
guido1Offline
Onderwerp: DOS-box onzichtbaar maken  BerichtGeplaatst: 17 jul 2010 - 15:49
Professional Developer


Geregistreerd op: 24-mrt-2006
Berichten: 489

Status: Offline
Om het commando ipconfig uit te voeren gebruik ik volgende code:
Visual Basic code:
           Dim BatFile As String = "c:\ip.bat"
            Dim objStreamWriter As New StreamWriter(BatFile, False)
            objStreamWriter.WriteLine("@echo Off")
            objStreamWriter.WriteLine("ipconfig /all >>" & Chr(34) & LogFile & Chr(34))
            objStreamWriter.WriteLine("exit")
            objStreamWriter.Close()

            Dim listFiles As System.Diagnostics.Process
            listFiles = System.Diagnostics.Process.Start(BatFile)


Dit werkt wel goed maar ik wil die zwarte DOS-box tijdens het uitvoeren onzichtbaar maken.

Iemand een idee hoe ik dat kan doen?

Guido
 
 Bekijk gebruikers profiel Stuur privé bericht  
Reageer met quote Naar boven
Dummy1912Offline
Onderwerp: Re: DOS-box onzichtbaar maken  BerichtGeplaatst: 18 jul 2010 - 08:08
Professional Developer


Geregistreerd op: 28-apr-2010
Berichten: 250

Status: Offline
Hallo guido1,

waarom wil je de dosbox onzichtbaar maken?

is toch handig als je de uitvoer ziet.

maar hier is hoe het mogelijk is Very Happy
hoop dit is wat je zoekt.

Visual Basic code:

Dim mProcess As Process
mprocess.StartInfo.CreateNoWindow = True



Dummy1912
 
 Bekijk gebruikers profiel Stuur privé bericht Bekijk de homepage  
Reageer met quote Naar boven
guido1Offline
Onderwerp: Re: DOS-box onzichtbaar maken  BerichtGeplaatst: 18 jul 2010 - 12:15
Professional Developer


Geregistreerd op: 24-mrt-2006
Berichten: 489

Status: Offline
Hoi Dummy1912,

Bedankt voor je reactie.

Als je zelf aan de pc zit en je voer het commando IPCONFIG uit is het voldoende als je de uitslag op het scherm zit. Maar in mijn geval zal het commando zijn resultaat in een logfile schrijven. Deze logfile wordt dan opgestuurd via email en wordt geanalyseerd door iemand die er hopelijk iets van kent. Buiten het commando IPCONFIG zijn het zog andere commando's die ook telkens zo'n DOS-box aanmaken en dat is geen zicht.

Maar jou voorstel, hoe moet ik dat in mijn voorbeeld implementeren? Ik heb nu:
Visual Basic code:
            Dim listFiles As System.Diagnostics.Process
            listFiles.StartInfo.CreateNoWindow = True
            listFiles = System.Diagnostics.Process.Start(BatFile, vbHide)
Maar dat geeft een error op de lijn met StartInfo:
Quote:
De objectverwijzing is niet op een exemplaar van een object ingeteld.


Hoe met dat in mijn voorbeeld?

Guido
 
 Bekijk gebruikers profiel Stuur privé bericht  
Reageer met quote Naar boven
Dummy1912Offline
Onderwerp: Re: DOS-box onzichtbaar maken  BerichtGeplaatst: 18 jul 2010 - 13:12
Professional Developer


Geregistreerd op: 28-apr-2010
Berichten: 250

Status: Offline
Hallo Guido1,

ok probeer deze eens

Visual Basic code:

Dim mProcess As Process 'form level

mProcess = New Process
With mProcess.StartInfo
..WindowStyle = ProcessWindowStyle.Hidden
..StartInfo.CreateNoWindow = True



zou moeten werken.

Dummy1912
 
 Bekijk gebruikers profiel Stuur privé bericht Bekijk de homepage  
Reageer met quote Naar boven
guido1Offline
Onderwerp: Re: DOS-box onzichtbaar maken  BerichtGeplaatst: 18 jul 2010 - 21:22
Professional Developer


Geregistreerd op: 24-mrt-2006
Berichten: 489

Status: Offline
Hoi Dummy1912,

Het is uiteindelijk gelukt, bedankt.

Guido
 
 Bekijk gebruikers profiel Stuur privé bericht  
Reageer met quote Naar boven
Dummy1912Offline
Onderwerp: Re: DOS-box onzichtbaar maken  BerichtGeplaatst: 19 jul 2010 - 11:07
Professional Developer


Geregistreerd op: 28-apr-2010
Berichten: 250

Status: Offline
@guido1,

Cool Very Happy

ben blij voor je.

graag gedaan.

heb je veel moeten veranderen? of is het met deze code gelukt.

Dummy1912
 
 Bekijk gebruikers profiel Stuur privé bericht Bekijk de homepage  
Reageer met quote Naar boven
guido1Offline
Onderwerp: Re: DOS-box onzichtbaar maken  BerichtGeplaatst: 19 jul 2010 - 14:07
Professional Developer


Geregistreerd op: 24-mrt-2006
Berichten: 489

Status: Offline
Veel veranderen? Nee, het is enkel door mijn gebrekkige kennis dat ik zo bleef sukkelen maar uiteindelijk is het dank zij uw hulp toch gelukt.

En heb ik ook weer een beetje meer doorzicht hoe dat het werkt.

Heel hard bedankt,
Guido
 
 Bekijk gebruikers profiel Stuur privé bericht  
Reageer met quote Naar boven
Dummy1912Offline
Onderwerp: Re: DOS-box onzichtbaar maken  BerichtGeplaatst: 19 jul 2010 - 14:27
Professional Developer


Geregistreerd op: 28-apr-2010
Berichten: 250

Status: Offline
Embarassed

Geen dank Very Happy

je zou net het zelfde doen voor mij Very Happy

Ben blij dat ik je heb kunnen helpen.

Veel success verder

Groetjes

Dummy1912
 
 Bekijk gebruikers profiel Stuur privé bericht Bekijk de homepage  
Reageer met quote Naar boven
appie21Offline
Onderwerp: Re: DOS-box onzichtbaar maken  BerichtGeplaatst: 26 jul 2010 - 20:03
Junior Developer


Geregistreerd op: 08-apr-2010
Berichten: 53

Status: Offline
daar ben ik ook weer met een aanvulling

ik heb ook een probleem met Process.Start


ik wil graag een programma starten
Process.Start("afterfx") dit start adobe after effects op werkt gewoon

maar nu wil ik ook dat hij gelijk mijn script laad en dat doe ik met Process.Start("afterfx -r d:\2.jsx")
als ik het nu draai krijg ik de volgende foutmelding

Code:
System.ComponentModel.Win32Exception was unhandled
  ErrorCode=-2147467259
  Message=Het systeem kan het opgegeven bestand niet vinden
  NativeErrorCode=2
  Source=System
  StackTrace:
       at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
       at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
       at simulator_3._0.Dialog1.Button3_Click(Object sender, EventArgs e) in C:\Users\Albert\Documents\Visual Studio 2010\Projects\simulator 4.0\simulator 3.0\Dialog1.vb:line 11861
       at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
       at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
       at System.Windows.Forms.Control.WndProc(Message& m)
       at System.Windows.Forms.ButtonBase.WndProc(Message& m)
       at System.Windows.Forms.Button.WndProc(Message& m)
       at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
       at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
       at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
       at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
       at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
       at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
       at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
       at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
       at simulator_3._0.My.MyApplication.Main(String[] Args) in 17d14f5c-a337-4978-8281-53493378c1071.vb:line 81
       at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
       at System.Runtime.Hosting.ApplicationActivator.CreateInstance(ActivationContext activationContext, String[] activationCustomData)
       at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssemblyDebugInZone()
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       at System.Threading.ThreadHelper.ThreadStart()
  InnerException:


wat doe ik fout?
 
 Bekijk gebruikers profiel Stuur privé bericht  
Reageer met quote Naar boven
Dummy1912Offline
Onderwerp: Re: DOS-box onzichtbaar maken  BerichtGeplaatst: 26 jul 2010 - 23:07
Professional Developer


Geregistreerd op: 28-apr-2010
Berichten: 250

Status: Offline
@appie,

kan het zijn dat je de c:\+folder bent vergeten en de .exe

ben er niet zeker van maar is maar een gedacht.

Dummy1912
 
 Bekijk gebruikers profiel Stuur privé bericht Bekijk de homepage  
Reageer met quote Naar boven
JarkOffline
Onderwerp: Re: DOS-box onzichtbaar maken  BerichtGeplaatst: 27 jul 2010 - 07:55
Senior Developer


Geregistreerd op: 29-sep-2009
Berichten: 182

Status: Offline
Hallo,

Als je de process class gebruikt moet je de commandline arguments meegeven in de arguments property van de ProcessStartInfo (zie: http://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.arguments.aspx).

Mvg,

Jark
 
 Bekijk gebruikers profiel Stuur privé bericht Bekijk de homepage  
Reageer met quote Naar boven
appie21Offline
Onderwerp: Re: DOS-box onzichtbaar maken  BerichtGeplaatst: 27 jul 2010 - 09:32
Junior Developer


Geregistreerd op: 08-apr-2010
Berichten: 53

Status: Offline
aha opgelost

het juiste is

Code:
Process.Start("afterfx.exe", "-r D:\2.jsx")
 
 Bekijk gebruikers profiel Stuur privé bericht  
Reageer met quote Naar boven
appie21Offline
Onderwerp: Re: DOS-box onzichtbaar maken  BerichtGeplaatst: 29 jul 2010 - 23:31
Junior Developer


Geregistreerd op: 08-apr-2010
Berichten: 53

Status: Offline
Ik heb nog even een aanvullende vraag

met Process.Start("afterfx.exe")
kan ik adobe after effects starten. Dit werkt perfect
maar bestaat er ook zoiets als:

Zodra ik adobe After Effects afsluit mijn programma weer verder gaat.
Dus zodra een extern programma gesloten wordt mijn programma weer verder gaat waar het gebleven was?

Ik ben benieuwd!
 
 Bekijk gebruikers profiel Stuur privé bericht  
Reageer met quote Naar boven
JarkOffline
Onderwerp: Re: DOS-box onzichtbaar maken  BerichtGeplaatst: 30 jul 2010 - 07:17
Senior Developer


Geregistreerd op: 29-sep-2009
Berichten: 182

Status: Offline
Hallo Appie,

Ik gebruik zelf onderstaande code:

Visual Basic code:

While Not process.HasExited
     Threading.Thread.Sleep(1)
End While



De sleep zorgt ervoor dat je geen 100% cpu krijgt en de while zorgt ervoor dat je UI thread nog door blijft lopen en dat je UI niet "vastloopt".

Edit: je moet natuurlijk wel je process toekennen aan de process variable.

Dus jij krijgt dan:
Visual Basic code:

Dim process = Process.Start("afterfx.exe", "-r D:\2.jsx")


Voor bovenstaand stukje code.



Er bestaan nog veel meer manieren om dit te doen (met bijvoorbeeld de .WaitForExit methode), maar deze methode werkt voor mij.

Mvg,

Jark
 
 Bekijk gebruikers profiel Stuur privé bericht Bekijk de homepage  
Reageer met quote Naar boven
appie21Offline
Onderwerp: Re: DOS-box onzichtbaar maken  BerichtGeplaatst: 30 jul 2010 - 07:33
Junior Developer


Geregistreerd op: 08-apr-2010
Berichten: 53

Status: Offline
zou je een voorbeeld willen geven
ik snap het niet helemaal?

ik heb het nu zo dat als ik op een button klik After effects word gestart

Process.Start("afterfx.exe", "-r D:\2.jsx") After effects voert een script ui en after effects wordt gesloten daarna moet mijn programma weer verder gaan
Bijvoorbeeld door een messagebox dat After effects is afgesloten.

hoe nu verder

Alvast bedankt!


Laatst aangepast door appie21 op 30 jul 2010 - 13:03, in totaal 1 keer bewerkt
 
 Bekijk gebruikers profiel Stuur privé bericht  
Reageer met quote Naar boven
Berichten van afgelopen:     
Ga naar:  
Tijden zijn in GMT + 1 uur
Plaats nieuw bericht   Plaats Reactie
Vorige onderwerp Printervriendelijke versie Log in om je privé berichten te bekijken Volgende onderwerp
PNphpBB2 © 2003-2007 
 

 
Postnuke - ADODB Database - PHP 4/5 - pnPhpBB2 - Hosting bij Openminds
Met dank aan Jürgen voor de jarenlange inzet van visualbasic.be (anno 21-12-2000)
vbib.be gestart op 1/03/06 (extra vanaf 1/09: vbnet.be en vbdotnet.be)
VBiB is gerelateerd met wintips.be

Nieuwsbrief RSS Feed: backend.php