Problem bei Programm, verursacht PC-Absturz

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von BeNe.

    Problem bei Programm, verursacht PC-Absturz

    3.4.10:

    Hallo,

    ich habe ein programm geschrieben, dass einen eintrag in die registry schreibt und dann entsprechend das login hintergrundbild ändert,

    bei mir funktioniert es auch wunderbar, aber als mein freund es ausprobiert hat stürzte sein rechner ab, bzw is dann heruntergefahren

    kann es sein, dass bei anderen ausführungen von win 7 die registry einträge anders sin(ich: win 7 home premium, freund: win 7 professional)

    anbei mein code



    form load

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Imports Microsoft.Win32
    2. Imports System.Security.Permissions
    3. Public Class Form1
    4. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    5. 'prüfen ob win7 das betriebssystem ist, wegen registry eintrag bzw gesamte funktionalität
    6. If My.Computer.Info.OSFullName.Contains("7") = False Then
    7. MsgBox("Funktioniert nur unter Windows 7!", MsgBoxStyle.Information)
    8. Button1.Enabled = False
    9. Button2.Enabled = False
    10. Button3.Enabled = False
    11. Label2.ForeColor = Color.Red
    12. Label2.Text = "Falsche Windows Version!"
    13. Else
    14. OpenFileDialog1.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.MyPictures
    15. Label2.Text = "Bitte Bild" + vbCrLf + "auswählen"
    16. End If
    17. End Sub



    button bild wählen
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. 'button1 beschriftung: bild auswählen
    3. OpenFileDialog1.ShowDialog()
    4. Try
    5. PictureBox1.Image = New Bitmap(OpenFileDialog1.FileName)
    6. TextBox1.Text = OpenFileDialog1.FileName
    7. Dim datei As New System.IO.FileInfo(TextBox1.Text)
    8. If datei.Length / 1024 > 255 Then
    9. Button2.Enabled = False
    10. Label2.Text = "Datei zu groß!"
    11. Label2.ForeColor = Color.Red
    12. Else
    13. Button2.Enabled = True
    14. Label2.Text = "In Ordnung!"
    15. Label2.ForeColor = Color.Green
    16. End If
    17. Catch ex As Exception
    18. Button2.Enabled = False
    19. Label2.Text = "Ein Bild muss" + vbCrLf + "ausgewählt werden!"
    20. Label2.ForeColor = Color.Red
    21. End Try
    22. End Sub



    button anwenden
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    2. 'button2 beschriftung : verwenden
    3. 'weiss nicht ob fileIOpermission noch notwendig ist wenn ich
    4. '<requestedExecutionLevel level="highestAvailable" uiAccess="false" /> durch
    5. '<requestedExecutionLevel level="asInvoker" uiAccess="false" /> ersetzt habe
    6. 'allein mit fileIOpermission ging es nicht
    7. Dim erlaubnis As New FileIOPermission(FileIOPermissionAccess.AllAccess, "C:\Windows\System32\oobe\")
    8. erlaubnis.AddPathList(FileIOPermissionAccess.AllAccess, "C:\Windows\System32\oobe\")
    9. Try
    10. erlaubnis.Demand()If System.IO.File.Exists("C:\Windows\System32\oobe\info") = False Then My.Computer.FileSystem.CreateDirectory("C:\Windows\System32\oobe\info")
    11. If System.IO.File.Exists("C:\Windows\System32\oobe\info\backgrounds") = False Then My.Computer.FileSystem.CreateDirectory("C:\Windows\System32\oobe\info\backgrounds")
    12. My.Computer.FileSystem.CopyFile(TextBox1.Text, "C:\Windows\System32\oobe\info\backgrounds\backgroundDefault.jpg", True)
    13. Registry.SetValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background", "OEMBackground", "1", RegistryValueKind.DWord)
    14. MsgBox("Fertig, ffnen Sie den Taskmanager und betrachten das Ergebnis!", MsgBoxStyle.Information)
    15. Catch ex As Exception
    16. MsgBox("Fehler aufgetreten! " + ex.Message, MsgBoxStyle.Exclamation)
    17. End Try
    18. End Sub


    button zurücksetzen:

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    2. 'button3 beschr: zurcksetzen
    3. Registry.SetValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background", "OEMBackground", "0", RegistryValueKind.DWord)
    4. PictureBox1.Image = New Bitmap("C:\Windows\System32\oobe\background.bmp")MsgBox("Standard Bild wiederhergestellt!", MsgBoxStyle.Information)
    5. End Sub
    6. End Class



    kann mir da jemand helfen, wenn jemand meinen stil kritisieren will der kann das gerne tun, mit dem hinweis dass ich ziemlich neu in der materie bin :whistling:

    andere frage, wieso wird der code so krass geändert wenn ich von vb 2008 hierrein kopiere?^^



    4.4.10 : kann denn keiner helfen?




    09.04.:
    Vll kanns mal jemand ausprobieren, ich garantiere bei mir gings!!
    Alles was ihr braucht is Windows7 und das verzeichnis:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background
    (regedit bei ausführen eingeben und da sollts dann stehn)

    Bitte kann sich das mal wer anschauen ?(

    Dieser Beitrag wurde bereits 9 mal editiert, zuletzt von „BeNe“ ()

    Hi,

    eigentlich müssten die registry Einträge gleich sein oder nur bei "besseren" Versionen ilein paar mehr sein(für mehr Features). Ich kann mir den absturtz zwar nich erklären, aber ist dein Freund an dem PC Admin ? Hast du das Programm als Admin ausgeführt ?



    Grüße,

    viperkill
    hi viperkill,
    ich bin admin auf meinem rechner, allerdings fragt das programm(bzw windows) auch nach ob man es zulassen möchte, dass durch das programm änderungen am computer vorgenommen werden, eben dieser standarddioalog der benutzerkontensteuerung, wie er zb auch bei installationen erscheint.
    und da er mein programm starten konnte denk ich dass es nicht erforderlich ist admin zusein, oder dass mein freund es auf seinem rechner ist

    als admin ausführen: ähm also ich hab nicht drauf rechts geklickt und als administrator ausführen gedrückt falss du dass meinst

    danke dass du dir mein problem anschaust :thumbup:

    edit: falls du zeit hast willst du dir das auch noch mal anschauen