Computername in Variable speichern

reeng

Grünschnabel
Hallo zusammen....

Damit ein von mir geschriebens Programm nicht einfach auf jedem Rechner kopiert werden kann, möchte ich eine Art Algorythmus auf den jeweiligen Computernamen (Hostnamen) anwenden. Wenn der Computername z.B. ABC ist, ist der Freischaltcode dann 123 (A=1,B=2,C=3......). Problemstellung:

1. Hierzu muss ich aber mit Visual Basic 2008 express Edition den Computernamen ausgeben lassen können. Dieser Computernamen soll dann in eine Variable gespeichert werden.

2. Die Buchstaben der Variable (String) sollen einzeln ansprechbar sein.

Kann mir Jemand sagen, wie ich dies am einfachsten realisieren kann?!

Danke wie immer bereits im Voraus ;)...

Freundliche Grüsse

Reeng
 
Zuletzt bearbeitet:
Hi

Den Computername findest du unter Environment.MachineName. Diesen kannst du wenn du willst in einer String-Variable speichern.
Du kommst jedoch jederzeit an den Namen, diesen zusätzlich zu speichern finde ich weniger ratsam.
Über den Indexer kannst du auf die einzelnen Zeichen zugreifen.
Die Methode String.ToCharArray liefert dir zudem ein Character-Array zurück.
 
Hallo,

den Computername (Netbios Name) solltest Du über die Environment Variable bekommen.

Hier mal ein Beispiel für C# (ich habe keine Ahnung von VB.net):
Code:
string computerName = Environment.MachineName;

Wenn Du da die einzelnen Buchstaben möchtest, dann brauchst Du einfach nur noch splitten und fertig.
 
Hallo zusammen...

Vielen Dank für eure raschen Antworten. Den Computernamen konnte ich nun in eine Variable speichern.

Code:
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Testy = Environment.MachineName()
        MaskedTextBox1.Text = Testy
    End Sub

Das mit den einzelnen Buchstaben, verstehe ich leider nicht so ganz. Was ist ein Indexer, und wie muss ich den Code split verwenden? Könnt Ihr mir eventuell ein kurzes Code-Beispiel schreiben, wie ich dann mit den einzelnen Buchstaben weiterarbeiten kann?

Danke und Grüessli

Reeng
 
Das Ansprechen eines einzelnen Buchstabens in einem String funktioniert zum Beispiel so:

Code:
Dim s As String = "abcd"

MessageBox.Show(s.ToCharArray(1))    'Gibt den zweiten Buchstaben des Strings aus (In diesem Fall "b")

'Verkürzt kann man es auch so schreiben:
'MessageBox.Show(s(1))
 
Hallo Masterclavat...

Danke für dein Beispiel. Habe es soeben auch probiert in VB 2008 Express Edition. Leider kommt dabei folgende Fehlermeldung:

Fehler 1 Fehler bei der Überladungsauflösung, da keine zugreifbare "ToCharArray" diese Anzahl von Argumenten akzeptiert.

Leider kann ich mit dieser Fehlermeldung nichts anfangen. Wenn ich die 1 in der Klammer weglasse, wird eine MSGbox angezeigt mit dem Wert abcd. Muss ich irgend einen anderen Wert in die Klammer schreiben?

Gruss

Reeng
 
Habe noch deinen letzten Kommentar gesehen:

'Verkürzt kann man es auch so schreiben:
'MessageBox.Show(s(1))


Dies funktioniert wunderbar.

Danke dir...

Reeng
 
Hallo Masterclavat...

Danke für dein Beispiel. Habe es soeben auch probiert in VB 2008 Express Edition. Leider kommt dabei folgende Fehlermeldung:

Fehler 1 Fehler bei der Überladungsauflösung, da keine zugreifbare "ToCharArray" diese Anzahl von Argumenten akzeptiert.

Leider kann ich mit dieser Fehlermeldung nichts anfangen. Wenn ich die 1 in der Klammer weglasse, wird eine MSGbox angezeigt mit dem Wert abcd. Muss ich irgend einen anderen Wert in die Klammer schreiben?

Gruss

Reeng


Ups, da hatte ich 'n' kleinen Fehler gemacht, eigentlich wollte ich es so schreiben:

Code:
s.ToCharArray()(1)

So funktionierts auch.
 
Zurück