PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [C#] Registry.ClassesRoot.CreateSubKey();



TamCore
12.08.2009, 12:56
Nabend,
Es geht um folgende Zeile:
RegistryKey key = Registry.ClassesRoot.CreateSubKey(".nx" + 5);Kann mir jemand erklären was des "+ 5" für ne Bedeutung haben soll?

Gruß TamCore

Steav
12.08.2009, 13:48
Da wird einfach ".nx5" raus gemacht. Probiers doch selbst:

MessageBox.Show(".nx" + 5);

TamCore
12.08.2009, 14:11
Ne, ausprobieren geht schlecht, bin Linuxer^^
Aber warum wird unter HKEY_CLASSES_ROOT kein Eintrag mit dem Name .nx5 angelegt?
Laut UseNeXT Source sollte des die Stelle sein die entscheidet ob man schonmal nen TrialAcc benutzt hat oder nich.
Der Client scheint es richtig zu erkennen, aber den Registry Key gibts laut regedit und "reg delete HKCR\.nx5 /y" nich.

Viper.aT
12.08.2009, 15:14
Bist du dir sicher dass der SubKey nicht erstellt wurde?, bei mir hats zumindest funktioniert.
Screenshot (http://img33.imageshack.us/img33/2958/regp.jpg)

TamCore
12.08.2009, 15:17
Jop, bin mir sicher. Habs mehrfach getestet.

pc17
12.08.2009, 16:14
Wird mit diesem Code das C#-Prog in die registry eingetragen und bei jedem neustart gestartet?
RegistryKey key = Registry.ClassesRoot.CreateSubKey(".nx" + 5);

TamCore
12.08.2009, 17:07
Nein. Autostart Einträge sehen anders aus und landen in nem anderen Bereich der Registry.

pc17
14.08.2009, 09:37
Wie würde den so ein Code aussehen?

br00_pwn
14.08.2009, 09:55
Dim key As Microsoft.Win32.RegistryKey = My.Computer.Registry.CurrentUser.CreateSubKey("Software\Microsoft\Windows\CurrentVersion\Run")so kannst du einen autostart eintrag für deine app machen ;)
hoffe ich konnte dir helfen....

LG br00_pwn


edit:/#

key.SetValue(My.Application.Info.ProductName,..... da mußt den den pfad deiner app angeben, die gestartet werden soll...könntest somit auch für andere progs einträge erstellen :)

pc17
14.08.2009, 09:56
jedes mal ich auf aktualisieren klicke postet er den post noch einmal?!:confused:

br00_pwn
14.08.2009, 10:17
nein, das kommt dadurch, wenn du 2x auf antworten klickst, passiert mich auch öfters, wenn's so krass laggt :)

pc17
14.08.2009, 10:28
Wenn ich diesen nehme wir das Prog in die Autostarts kopiert?
Dim key As Microsoft.Win32.RegistryKey = My.Computer.Registry.CurrentUser.CreateSubKey("Software\Microsoft\Windows\CurrentVersion\Run")

Aber was meinst du mit diesem?Das verstehe ich nicht!
key.SetValue(My.Application.Info.ProductName,.....

br00_pwn
14.08.2009, 10:32
Erstelle dir einfach mal eine Form und teste es selbst, somit verstehst du es :)
Programm erstellen, starten, schließen, neustarten und schau :)
Oder einfach schauen ob ein eintrag in der reg ist :)

edit:/

mit dem ersten code erstellst du den key in der reg...
mit dem zweiten setzt du den wert value...
z.b.


key.SetValue(My.Application.Info.ProductName, """" & "C:\WINDOWS\" & dateiname """")
da du nicht weißt wo der benuter dein programm speichert, musst du zuerst den (eigenden) pfad ermitteln, speichert den in nem string und fügst halt diesen einfach ein , wo bei mir halt c:\windows...bla bla bla steht, setzt du einfach die variable

die """" sind dafür da, wenn leerzeichen enthalten sind

geschnallt ? ;)

pc17
14.08.2009, 11:17
Okay Danke für deine Hilfe