Hey,
es ist zwar ein recht simples Skript, aber ich glaube, dass es nun vollkommen an meine bedüfnisse angepasst wurde.
das script ist da sinnvoll, wo mehrere leute im netzwerk auf office-dateien zugreifen. damit man weiss, wer die aktuelle datei sperrt, trägt das script den usernamen in die registry ein, aus der office nun seine benutzerinformationen bezieht.
das script wurde mit hilfe von einigen autoit-profis hier auf dem board erstellt =)
es ist für windows gedacht (2k und xp sollte 100% unterstützt werden) und nicht auf eine bestimmte office-version zugeschnitten.
Spoiler anzeigen
;
;Username 2 Office V.3
;
;
;© sc4ry
;
#include <string.au3>
[/autoit] [autoit][/autoit] [autoit];Überprüfe Systemsprache
If @KBLayout = 0407 then
;Deutsch
;Msgbox INFO
MsgBox(0, "Username 2 Office V.3 by sc4ry", "Dieses Script trägt Ihre UserID in die MS Office Benutzerinformationen ein", 4)
;Usernamen in Hex wandeln
WinWaitNotActive("Username 2 Office V.3 by sc4ry")
$String = (@username)
$Hex = _StringToHex($String)
$RegHex = ""
For $i = 1 To Stringlen($Hex) Step 2
$RegHex &= StringMid($Hex,$i,2) & "00"
Next
$RegHex &= "0000"
;Registry-Pfad ermitteln
$instance = 1
While 1
$strRegKey = RegEnumKey("HKCU\Software\Microsoft\Office\",$instance)
If @error <> 0 Then ExitLoop
$instance += 1
$read = RegRead("HKCU\Software\Microsoft\Office\" & $strRegKey & "\Common\Userinfo", "Username")
If @error <> 0 Then ContinueLoop
;Schreibe Usernamen in Registry
RegWrite("HKCU\Software\Microsoft\Office\" & $strRegKey & "\Common\Userinfo", "UserName", "Reg_Binary", $RegHex )
;Überprüfe Username
$read = RegRead("HKCU\Software\Microsoft\Office\" & $strRegKey & "\Common\Userinfo", "Username")
if $read = $RegHex Then
MsgBox(64, "Erfolgreich", "UserID korrekt in MS Office übernommen", 4)
Else
MsgBox(16, "Warnung", "UserID nicht korrekt in MS Office übernommen, bitte wenden Sie sich an sc4ry")
EndIf
Wend
Else
;Englisch
;Msgbox INFO
MsgBox(0, "Username 2 Office V.3 by sc4ry", "This Script copies your UserID to the MS Office Userinfo", 4)
;Usernamen in Hex wandeln
WinWaitNotActive("Username 2 Office V.3 by sc4ry")
$String = (@username)
$Hex = _StringToHex($String)
$RegHex = ""
For $i = 1 To Stringlen($Hex) Step 2
$RegHex &= StringMid($Hex,$i,2) & "00"
Next
$RegHex &= "0000"
;Registry-Pfad ermitteln
$instance = 1
While 1
$strRegKey = RegEnumKey("HKCU\Software\Microsoft\Office\",$instance)
If @error <> 0 Then ExitLoop
$instance += 1
$read = RegRead("HKCU\Software\Microsoft\Office\" & $strRegKey & "\Common\Userinfo", "Username")
If @error <> 0 Then ContinueLoop
;Schreibe Usernamen in Registry
RegWrite("HKCU\Software\Microsoft\Office\" & $strRegKey & "\Common\Userinfo", "UserName", "Reg_Binary", $RegHex )
;Überprüfe Username
$read = RegRead("HKCU\Software\Microsoft\Office\" & $strRegKey & "\Common\Userinfo", "Username")
if $read = $RegHex Then
MsgBox(64, "Successful", "UserID was written successfully to the MS Office Userinfo", 4)
Else
MsgBox(16, "Warning", "UserID could not be written to the MS Office Userinfo, please contact sc4ry")
EndIf
Wend
EndIf
PS: Version 3 reagiert auf ein deutsches Tastaturlayout, zeigt ansonsten die meldungen in englisch an.