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

Advertenties

Het Computer Winkeltje HCW


Evenementen

Komende evenementen

Tue, 30 March 2010
Wed, 31 March 2010
Thu, 01 April 2010
Wed, 07 April 2010
Wed, 05 May 2010

Forum

Plaats nieuw bericht   Plaats Reactie
Vorige onderwerp Printervriendelijke versie Log in om je privé berichten te bekijken Volgende onderwerp
Auteur Bericht
guido1Offline
Onderwerp: Meldingen van Regedit  BerichtGeplaatst: 07 feb 2010 - 21:36
In draf


Geregistreerd op: 24-mrt-2006
Berichten: 449

Status: Offline
Hoi,

Ik maak in mijn project een .reg file aan om het register aan te passen. Ik gebruik volgende code om deze .reg file uit te voeren:
Visual Basic code:
   Private Sub Voer_REG_File_uit()
      Try
         Dim REG_Uitvoeren As New Process()
         REG_Uitvoeren.StartInfo.FileName = HlpPath
         REG_Uitvoeren.Start()
         Do While Not REG_Uitvoeren.HasExited
            System.Windows.Forms.Application.DoEvents()
         Loop
         Schrijf_melding("R0", "Registryfile verwerkt met succes")
      Catch
         Schrijf_melding("RN", "Registryfile verwerking mislukt")
      End Try
   End Sub


De twee meldingen die een normale REGEDIT geeft wil ik weg. Hoe moet ik dat doen?
Met "Schrijf_melding" wil ik melden of de .reg file goed is uitgevoerd. Maar zoals ik dat geschreven heb werkt dat niet want dan is het altijd goed uitgevoerd. Wie helpt mij uit de nood?

Bedankt op voorhand,
Guido
 
 Bekijk gebruikers profiel Stuur privé bericht  
Reageer met quote Naar boven
VozzieOffline
Onderwerp: Re: Meldingen van Regedit  BerichtGeplaatst: 07 feb 2010 - 21:55
Moderator


Geregistreerd op: 11-mei-2009
Berichten: 637

Status: Offline
Hallo,

Over Regedit

Je kan ook op andere manieren waarden toevoegen aan het register. Via de Microsoft.Win32.Registry classes. Of als je toch een project hebt, je kan waarden toevoegen in je installer ook.(ClickOnce weet ik niet)

Over processen

In plaats van het lusje met doevents kan je Process.WaitForExit method gebruiken.

Dan heb je ook de Process.ExitCode property welk je kan controleren of het goed is uitgevoerd.

Verder, als je geen exe uitvoert kan je beter de ProcessStartInfo.UseShellExecute property op true zetten voor het starten vh process. Ook kan je dan met Verbs werken, "open" verb bijvoorbeeld.

Wil je dat het programma dat je uitvoert geen graphische interface geeft kan je kijken of daar argumenten voor zijn. Of je kan proberen met de process startup properties, daar kan je ProcessStartInfo.WindowStyle meegeven.

Je kan dus eens zoeken of er argumenten zijn voor a) regedit onzichtbaar te runnen. b) een .reg file onzichtbaar uit te voeren.

Groeten

_________________
con\con

Stappen, keuzes en herhaling combineren is programmeren.
 
 Bekijk gebruikers profiel Stuur privé bericht Bekijk de homepage  
Reageer met quote Naar boven
guido1Offline
Onderwerp: Re: Meldingen van Regedit  BerichtGeplaatst: 08 feb 2010 - 22:19
In draf


Geregistreerd op: 24-mrt-2006
Berichten: 449

Status: Offline
Dat is veel leesvoer, daar zal ik wel even zoet mee zijn. Maar dat zal wel iets voor volgende week zijn.
In alle geval fel bedankt.

Guido
 
 Bekijk gebruikers profiel Stuur privé bericht  
Reageer met quote Naar boven
VozzieOffline
Onderwerp: Re: Meldingen van Regedit  BerichtGeplaatst: 08 feb 2010 - 22:44
Moderator


Geregistreerd op: 11-mei-2009
Berichten: 637

Status: Offline
Hallo,

Graag gedaan,...

Ik heb ondertussen de optie gevonden. Staat hier omschreven: http://support.microsoft.com/kb/310516

Wanneer gebruikers het REG-bestand uitvoeren, wordt het volgende bericht weergegeven:
Register-editor
Weet u zeker dat u de gegevens in pad naar REG-bestand aan het register wilt toevoegen?
Als de gebruiker op Ja klikt, wordt het volgende bericht weergegeven:
Register-editor
De gegevens in 'pad naar REG-bestand' zijn ingevoerd in het register.
Regedit.exe ondersteunt de schakeloptie /s om deze berichten niet weer te geven. Als u het REG-bestand bijvoorbeeld op de achtergrond (met de schakeloptie /s) wilt uitvoeren vanuit een batchbestand met een aanmeldingsscript, gebruikt u de volgende syntaxis:
regedit.exe /s pad naar REG-bestand


Probeer eens,... (heb deze code niet getest, dus ik weet niet of het zal werken, maar het zou zoiets moeten zijn)

Visual Basic code:
Dim theFile As String = "C:\temp.reg"
Dim process As Process = Process.Start("regedit.exe", "/s """ & theFile & """")
' OF
'Dim process As Process = Process.Start("regedit.exe", "/s " & theFile)
process.WaitForExit()
MsgBox process.ExitCode


Groeten

_________________
con\con

Stappen, keuzes en herhaling combineren is programmeren.
 
 Bekijk gebruikers profiel Stuur privé bericht Bekijk de homepage  
Reageer met quote Naar boven
guido1Offline
Onderwerp: Re: Meldingen van Regedit  BerichtGeplaatst: 09 feb 2010 - 19:43
In draf


Geregistreerd op: 24-mrt-2006
Berichten: 449

Status: Offline
Vozzie nog eens bedankt. Ik had al eens ingegeven "regedit /?" maar dat loste niet veel op.

Het uittesten zal voor volgende week zijn want ik ben niet thuis en kan dus niet aan mijn eigen pc.

Bedankt,
Guido
 
 Bekijk gebruikers profiel Stuur privé bericht  
Reageer met quote Naar boven
guido1Offline
Onderwerp: Re: Meldingen van Regedit  BerichtGeplaatst: 11 feb 2010 - 19:56
In draf


Geregistreerd op: 24-mrt-2006
Berichten: 449

Status: Offline
Hoi Vozzie,

Ik ben terug thuis en jou voorbeeld uitgetest. Het voert de .reg file goed uit.

Maar ik heb wel een probleem: De ExitCode is altijd 0 ook indien de .reg file niet uitgevoerd. Ik heb dus geen controle over het resultaat.

Ik heb via Google terug gevonden dat reg.exe wel een exitcode terug geeft maar dat krijg ik niet werkend.

Iemand een oplossing?
Guido
 
 Bekijk gebruikers profiel Stuur privé bericht  
Reageer met quote Naar boven
VozzieOffline
Onderwerp: Re: Meldingen van Regedit  BerichtGeplaatst: 11 feb 2010 - 20:32
Moderator


Geregistreerd op: 11-mei-2009
Berichten: 637

Status: Offline
Hallo,

Hoe start je het? Gebruik je de WaitForExit? Het process moet gestopt zijn voor je de exitcode opvraagt...

Misschien eens een andere manier van starten proberen...

Anders eens je code posten, als ik tijd heb en't niet uit het oog verlies probeer ik het hier wel eens.

Groeten.

_________________
con\con

Stappen, keuzes en herhaling combineren is programmeren.
 
 Bekijk gebruikers profiel Stuur privé bericht Bekijk de homepage  
Reageer met quote Naar boven
guido1Offline
Onderwerp: Re: Meldingen van Regedit  BerichtGeplaatst: 11 feb 2010 - 21:19
In draf


Geregistreerd op: 24-mrt-2006
Berichten: 449

Status: Offline
Hoi Vozzie,

Deze eerste code voert de reg file wel uit maar geeft geen correcte exitcode:
Visual Basic code:
      Dim process As Process = process.Start("regedit.exe", "/s """ & HlpPath & """")
      process.WaitForExit()
      MsgBox("process.ExitCode= " & process.ExitCode)


Google wist mij te vertellen dat ik reg.exe moest gebruiken en dat zou wel een correcte exitcode terug geven. Ik heb deze code gebruikt:
Visual Basic code:
     Dim process As Process = process.Start("reg.exe ", "import " & HlpPath)
      process.WaitForExit()
      MsgBox("process.ExitCode= " & process.ExitCode)

Maar dit krijg ik niet aan 't werken.

Ik zal wel ergens een fout maken maar waar?
Guido
 
 Bekijk gebruikers profiel Stuur privé bericht  
Reageer met quote Naar boven
VozzieOffline
Onderwerp: Re: Meldingen van Regedit  BerichtGeplaatst: 11 feb 2010 - 21:44
Moderator


Geregistreerd op: 11-mei-2009
Berichten: 637

Status: Offline
Hallo

er staat een spatie achter "reg.exe". Misschien is het dat,...

Als er spaties in je filename staan zet je heb best tussen quotes.

probeer eens ...

Visual Basic code:
Dim process As Process = process.Start("reg.exe", "import """ & HlpPath & """")
process.WaitForExit()
MsgBox("process.ExitCode= " & process.ExitCode)



Groeten

_________________
con\con

Stappen, keuzes en herhaling combineren is programmeren.
 
 Bekijk gebruikers profiel Stuur privé bericht Bekijk de homepage  
Reageer met quote Naar boven
guido1Offline
Onderwerp: Re: Meldingen van Regedit  BerichtGeplaatst: 12 feb 2010 - 13:14
In draf


Geregistreerd op: 24-mrt-2006
Berichten: 449

Status: Offline
Hoi Vozzie,

Je hebt gelijk, die spatie was er teveel aan. De .reg file wordt nu wel uitgevoerd. Maar het probleem is hetzelfde als bij regedit. De exitcode is altijd 0 zelfs indien in de .reg file fouten instaan die beletten dat de file uitgevoerd wordt.

Ken je daar een oplossing voor?
Guido
 
 Bekijk gebruikers profiel Stuur privé bericht  
Reageer met quote Naar boven
VozzieOffline
Onderwerp: Re: Meldingen van Regedit  BerichtGeplaatst: 12 feb 2010 - 13:51
Moderator


Geregistreerd op: 11-mei-2009
Berichten: 637

Status: Offline
Hallo,

Probeer eens met een niet bestaande filename, of een filename met fouten in,... Geeft hij dan ook nog 0 terug? Waarschijnlijk is het commando goed uitgevoerd en trekt hij zich geen fouten in de file aan.

Ik denk dat hij enkel een andere waarde geeft als er een fout in je argumenten zitten, onafhankelijk van de file...

Je zou kunnen de file zelf inlezen, interpreteren en uitvoeren, ...

Groeten

_________________
con\con

Stappen, keuzes en herhaling combineren is programmeren.
 
 Bekijk gebruikers profiel Stuur privé bericht Bekijk de homepage  
Reageer met quote Naar boven
guido1Offline
Onderwerp: Re: Meldingen van Regedit  BerichtGeplaatst: 12 feb 2010 - 19:15
In draf


Geregistreerd op: 24-mrt-2006
Berichten: 449

Status: Offline
Hoi Vozzie,

De process.ExitCode heeft alleen maar betrekking op de aanwezigheid van de .reg file. Is die file er niet of leeg dan krijg ik een code=1 is ze er wel dan maakt de inhoud er van niks uit, ik krijg altijd code=0. Ik ben er dus niks mee vooruit.

Het was juist om de zaken eenvoudig te houden dat ik deze methode gekozen had. Ik zal dan maar genoegen moeten nemen met de twee meldingen van regedit.exe zoals ik in de start van dit topic reeds melde.

Toch bedankt voor het meedenken. Als er iemand een idee heeft dan hoor ik het graag.

Guido
 
 Bekijk gebruikers profiel Stuur privé bericht  
Reageer met quote Naar boven
VozzieOffline
Onderwerp: Re: Meldingen van Regedit  BerichtGeplaatst: 13 feb 2010 - 02:11
Moderator


Geregistreerd op: 11-mei-2009
Berichten: 637

Status: Offline
Hallo,

Wat je nog zou kunnen doen is de Error output lezen, als die er is...

Krijg je als je het uitvoert via commandline met een "foute file" output terug in het "dos venster"?

Anders zou je die kunnen uitlezen uit vanuit je programma,....

Groeten

_________________
con\con

Stappen, keuzes en herhaling combineren is programmeren.
 
 Bekijk gebruikers profiel Stuur privé bericht Bekijk de homepage  
Reageer met quote Naar boven
VozzieOffline
Onderwerp: Re: Meldingen van Regedit  BerichtGeplaatst: 13 feb 2010 - 02:21
Moderator


Geregistreerd op: 11-mei-2009
Berichten: 637

Status: Offline
Hallo,

Nope, "The operation completed successfully" zit in de output buffer. In de error buffer zit niks.

Visual Basic code:
Dim fileName As String = "c:\temp.reg"
IO.File.WriteAllText(fileName, "gnar gnar")
Dim startInfo As New ProcessStartInfo
startInfo.UseShellExecute = False
startInfo.FileName = "reg.exe"
startInfo.Arguments = "IMPORT """ & fileName & """"
startInfo.RedirectStandardError = True
startInfo.RedirectStandardOutput = True
Dim process As Process = process.Start(startInfo)
MsgBox(process.StandardOutput.ReadToEnd())
MsgBox(process.StandardError.ReadToEnd())
process.WaitForExit()
MsgBox(process.ExitCode)


Groeten

_________________
con\con

Stappen, keuzes en herhaling combineren is programmeren.
 
 Bekijk gebruikers profiel Stuur privé bericht Bekijk de homepage  
Reageer met quote Naar boven
guido1Offline
Onderwerp: Re: Meldingen van Regedit  BerichtGeplaatst: 13 feb 2010 - 17:48
In draf


Geregistreerd op: 24-mrt-2006
Berichten: 449

Status: Offline
Hoi Vozzie,

Helaas, allemaal hopeloos. Het maakt geen enkel verschil in de meldingen. In de eerste komt altijd in: "De bewerking is voltooid". De tweede is zoal je schreef altijd leeg en de derde altijd 0 zoals we dat al wisten van de vorige probeersels.

Toch bedankt voor de hulp.
Guido
 
 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