Herstelpunt maken met een progressbar

Status
Niet open voor verdere reacties.

hanonymouss

Gebruiker
Lid geworden
7 sep 2011
Berichten
283
Hallo allemaal ik heb een programma gemaakt dat een herstelpunt kan maken.
Ik heb gelezen op een site dat de herstelpunt bevindt op winmgmts:\\.\root\default:Systemrestore.


Ik heb ook gelezen dat het maken van een herstelpunt enkele minuten kan duren en dus wil ik dat de vooruitgang wordt weergegeven in een progressabar liefst met een Marquee style. wat ik ook heb ondervonden in mijn programma als hij een herstelpunt wil maken dat je het programma niet kan slepen.

Om deze reference aan te roepen heb ik gebruik gemaakt van (Getobject) het werkt zeer goed.


hier is mijn code van herstelpunt:

[CPP]Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
Try
Dim herstel = GetObject("winmgmts:\\.\root\default:Systemrestore")
If herstelIsNot Nothing Then

If herstel.CreateRestorePoint("Getkeys HP", 0, 100) = 0 Then
ProgressBar1.Style = ProgressBarStyle.Marquee
Timer1.Stop()
Label1.Text = "Herstelpunt is met succes gemaakt"
ProgressBar1.Style = ProgressBarStyle.Blocks
Me.Cursor = Cursors.Default
MessageBox.Show("Herstelpunt is met succes gemaakt.", "Herstelpunt gemaakt", MessageBoxButtons.OK, MessageBoxIcon.Information)
Button1.Enabled = True
Else
Timer1.Stop()
Me.Cursor = Cursors.Default
ProgressBar1.Style = ProgressBarStyle.Blocks
Label1.Text = " Herstelpunt maken is mislukt."
MessageBox.Show("Kon geen herstelpunt maken.", "Herstelpunt niet gemaakt", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Button1.Enabled = True
End If
End If

Catch ex As Exception
Timer1.Stop()
Me.Cursor = Cursors.Default
Button1.Enabled = True
ProgressBar1.Style = ProgressBarStyle.Blocks
Label1.Text = "Probeer het programma uit te voeren als administrator."
MessageBox.Show("Toegang geweigerd. U dient het programma als administrator uit te voeren." & ControlChars.CrLf & _
"Probeer het later opnieuw met adminisitrator rechten.", "Mislukt", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)

End Try
End Sub

[/CPP]

Graag zou ik een oplossing willen hebben voor dit probleem :confused:
 
Volgens moet je zaken als herstelpunten maken gewoon overlaten aan Windows zelf en niet zelf gaan rommelen. Want je zou wel eens kans kunnen lopen dat er iets misgaat waardoor Windows niet meer wilt opstarten. Dan ben je helemaal ver van huis.
 
Een goed script voor een normal user is nooit vergeefse moeite.
Zet 'm op hanonymouss.
 
Laatst bewerkt door een moderator:
# JoZ1: Bij een marquee style is toch ook zichtbaar?

marquee.png


Het mag voor mij ook een klassieke zijn.

Ik heb de multithreading ervoor ook gebruikt en krijg deze als resultaat:

thread.png


Nadien ben ik overgestapt naar een backgroundworker, hetzelfde resultaat.

*************************************************************

#Mighty: Ik doet dit gewoon om te leren programmeren.
Dit is de risico die ik neem. Ik heb mijn herstelpunt gebruikt en het werkt perfect. Ik gebruikt de herstelpunt omdat de gebruikers makkelijk kunnen gebruiken als ze een herstelpunt willen maken.

#handboekict : :thumb: :thumb:
 
In dat geval, prima dan. :)

Vóórdat je NaamVanJeWorker.RunWorkerAsync() aanroept doe je CheckForIllegalCrossThreadCalls = False.
Dat fixed het.
 
Daar heb ik niet aan gedacht. Maar zal hij geen waarschuwing geven ?

Heb je misschien een idee hoe ik de vooruitgang ineen progressbar doe?
 
Laatst bewerkt door een moderator:
Nee je zal dan geen error meer krijgen.

En nee, ik weet verder niet hoe dat moet met een ProgressBar, ik heb het altijd al een lastig te gebruiken component gevonden.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan