Avatar billede bigsanta Nybegynder
16. maj 2001 - 17:52 Der er 16 kommentarer

Ændre Computer navn

Hej Jeg skal i et program ændre navnet på min computer kan man det med VB
Avatar billede joern Nybegynder
16. maj 2001 - 18:04 #1
Tvivler.  Når du gør det i netværksdialogen, skal computeren genstartes før det får effekt.
Har du koden til at får fat i navnet?  Ellers har jeg.
Men hvorfor dog i grunden?

  M.v.h.  Jørn.
Avatar billede bigsanta Nybegynder
16. maj 2001 - 22:30 #2
Det er ok at den skal genstartes. Jeg vil ændre computernavn alt efter MAC addressen... Da der skal installeres på 12 ens computere med et ghost. Så ville jeg spære kontrolpanelet helt så ingen kan ændre i noget som helst. Det ville bare gøre det lidt nemmere at installere.

Jeg ville da gerne se den da jeg ikke har den..

/Jesper
Avatar billede joern Nybegynder
16. maj 2001 - 23:31 #3
Hej Jesper.

I et modul:

Declare Function GetUserName Lib \"advapi32.dll\" Alias \"GetUserNameA\" (ByVal lpBuffer As String, nSize As Long) As Long
Declare Function GetDiskFreeSpace Lib \"kernel32.dll\" Alias \"GetDiskFreeSpaceA\" (ByVal lpRootPathName As String, lpSectorsPerCluster As Long, lpBytesPerSector As Long, lpNumberOfFreeClusters As Long, lpTotalNumberOfClusters As Long) As Long
Declare Function GetComputerName Lib \"kernel32\" Alias \"GetComputerNameA\" (ByVal lpBuffer As String, nSize As Long) As Long

Public Function bruger() As String
  Dim lpBuff As String * 25
  Dim lret As Long
  lret = GetUserName(lpBuff, 25)
  bruger = Left(lpBuff, InStr(lpBuff, Chr(0)) - 1)
End Function

Public Function ComputerName() As String
  Dim cn As String
  Dim ls As Long
  Dim res As Long
  cn = String(1024, 0)
  ls = 1024
  res = GetComputerName(cn, ls)
  If res <> 0 Then
      ComputerName = Mid(cn, 1, InStr(cn, Chr(0)) - 1)
    Else
      ComputerName = \"\"
  End If
End Function

Så for du tillige brugernavn og fri harddiskplads, det bruger jeg i det af mine projekter, hvor jeg lige har klippet.

På Gymnasiet hvor jeg er IT-medarbejder ghoster vi - desværre - ofte.  Vi har 6 grupper af PC\'er med hver sin ghost på grund af hardware forskelle.  Surt slid.
Symantec har lavet en udgave af \"Ghost\" de kan det du efterspørger, men den koster vist 5-6000 kr.

Med VB-kode kan du skrive nøgler i registreringsdatabasen, men det er ikke noget jeg har dyrket.  Men maskinens navn må stå dér et sted.  Jeg har lige kigget det står under Current User / Software / Microsoft / Windows Media / VMSDK / General  - fjollet sted, der må være andre forekomster.  Der er en VB-kommando der hedder \"SaveSetting\" kig i hjælpen på den.

Nu har jeg fundet en mere sandsynlig forekomst:

Local Machine / System / CurrentControlSet / Control / Computername / Computername

Men søg selv i din registry, hvor det skal stå.

Der er givet \"Eksperter\" der ved alt om at skrive i registry, vi må have tDaugaard ud af busken.

M.v.h.  Jørn
Avatar billede bigsanta Nybegynder
17. maj 2001 - 01:58 #4
Hej Jørn

Det er lykkedes mig at få et program flekket sammen, takket være din hjælp, så du ska sefølig have dine point, men hvordan faen gør man, det er første gang at jeg får hjælp her... Jeg kikker ind i morgen..

Ses og tak for hjælpen
Avatar billede joern Nybegynder
17. maj 2001 - 08:20 #5
Hej Jesper.
Imponerende.  Det er nogen tid siden jeg selv har stillet spørgsmål.  Er er ikke en radiobuttom til venstre med \"acceptér svar\"?  M.v.h.  Jørn
Avatar billede mix Nybegynder
21. maj 2001 - 17:09 #6
Hmm det nu er ikke så svært.
Skriv i toppen

Private Declare Function SetComputerName Lib \"kernel32\" Alias \"SetComputerNameA\" (ByVal lpComputerName As String) As Long


Skriv nu I form_load

SetComputerName \"PC 100\"

Nu hedder computeren PC 100

/Mix
Avatar billede joern Nybegynder
21. maj 2001 - 20:03 #7
>>Mix:  Har ikke prøvet din kode.  Vil det navn forblive computerens ved næste genstart?

M.v.h.  Jørn
Avatar billede mix Nybegynder
21. maj 2001 - 21:10 #8
Hej jørn

Ja din computer vil hedder det til du selv skifter det igen

/Mix
Avatar billede joern Nybegynder
21. maj 2001 - 21:19 #9
>>Mix.  Netop prøvet med min VB5  -  tilsyneladende sker intet.  m.v.h.  Jørn
Avatar billede mix Nybegynder
21. maj 2001 - 21:25 #10
Hej Jørn

For at du kan se det nye computernavn, skal du genstarte din maskine.

/Mix
Avatar billede mix Nybegynder
21. maj 2001 - 21:30 #11
Hej Jørn

Hvis du vil checke det nye computernavn, er kan du læse det sådan her.

Skriv i toppen

Private Declare Function GetComputerName Lib \"kernel32\" Alias \"GetComputerNameA\" (ByVal lpBuffer As String, nSize As Long) As Long

Skriv i form_load

Dim strNavn As String
strNavn = Space(&H100)
GetComputerName Navn, &H100
MsgBox Navn


/Mix
Avatar billede joern Nybegynder
21. maj 2001 - 21:40 #12
>>Mix:  Tak for svaret.  På gymnasiet hvor jeg arbejder har vi 6 grupper af maskiner, ialt ca. 120 som jævnligt \"ghostes\" d.v.s. de får med Symantec Ghost overført en komplet C-partition og bliver derved identiske.  Så åbner vi dem i fejlsikret tilstand - ellers får man ikke lov at åbne to med samme navn på et NT-netværk - og navngiver dem.  Det er ret møjsommeligt.
Måske kunne jeg med VB lave noget der automatiserede processen lidt.

M.v.h.  Jørn
Avatar billede mix Nybegynder
21. maj 2001 - 22:14 #13
Hej Jørn

Så kunne du lave et lille program du kaldte via logon.bat file der navn gav computeren på netværket. og genstartede den igen, klar til næste bruger.

Hvis du sender en option til dit vb program
f.eks

Mitprogram.exe PC200
I toppen

Private Declare Function SetComputerName Lib \"kernel32\" Alias \"SetComputerNameA\" (ByVal lpComputerName As String) As Long


\' Så kan du hente det i form_load

if Command$ <> 0 then
Dim StrNavn as string
strNavn = Command$
SetComputerNameA strNavn

End if


/Mix
Avatar billede joern Nybegynder
22. maj 2001 - 20:14 #14
Hej Mix.

Jeg har ikke lavet programmet, kun en test - og den virker.  Tak for tippet.  m.v.h.  Jørn
Avatar billede mix Nybegynder
22. maj 2001 - 21:21 #15
Hej Jørn

Det var så lidt ;-)

/Mix
Avatar billede tma Juniormester
27. oktober 2004 - 10:17 #16
Hmm, jeg havde brug for netop denne løsning men undrer mig over een ting.
Jeg har prøvet at oprette vb-modulerne og jeg kan se at når jeg afvikler dem, får jeg det rigtige navn sat i registreringsdatabasen, og ligeledes hvis jeg undersøger via SET kommandoen, MEN hvis jeg ser på egenskaber på "Denne Computer", er det det gamle navn der står (nu en time siden).

Hvordan kan det være?

Hilsen Torben
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester