2017-03-07 22 views
0

これは私のコードです 私は私の友人を助けようとしています。 ほとんどのコードが動作しますが、コードの最初の部分に人のユーザー名を取得する方法がわかりません。 (私のユーザー名)VBSがスタートアップフォルダにコピーされます

set wshShell = CreateObject("Wscript.Shell") 

    sSourceFile = "C:\My UserName\Downloads\Word\Word.VBS" 
    sTargetFolder = "C:\My UserName\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup" 

    sCmd = "%comspec% /c copy """ & sSourceFile & """ """ & sTargetFolder & """ /Y" 

    wshShell.Run sCmd, 0, True 


    Set objWord = CreateObject("Word.Application") 

    objWord.Visible = True 
    Set objDoc = objWord.Documents.Add() 
    Set objSelection = objWord.Selection 

    objSelection.Font.Name = "Calibri" 
    objSelection.Font.Size = "9" 
    objSelection.TypeText "====================================================================================================" 
    objSelection.TypeParagraph() 

    objSelection.Font.Name = "Calibri" 
    objSelection.Font.Size = "12" 
    objSelection.TypeText "___________________________________________________________________________" 
    objSelection.TypeParagraph() 

    objSelection.Font.Name = "Algerian" 
    objSelection.Font.Size = "77" 
    objSelection.TypeText "EQUACHALK" 
    objSelection.TypeParagraph() 

    objSelection.Font.Name = "Calibri" 
    objSelection.Font.Size = "12" 
    objSelection.TypeText "--------------------------------------------------------------------------------------------------------------------------" 
    objSelection.TypeParagraph() 

    objSelection.Font.Name = "Calibri" 
    objSelection.Font.Size = "12" 
    objSelection.TypeText "--------------------------------------------------------------------------------------------------------------------------" 
    objSelection.TypeParagraph() 

    objSelection.Font.Name = "Algerian" 
    objSelection.Font.Size = "49" 
    objSelection.TypeText "YOU CAN'T STOP ME" 
    objSelection.TypeParagraph() 

    objSelection.Font.Name = "Calibri" 
    objSelection.Font.Size = "12" 
    objSelection.TypeText "___________________________________________________________________________" 
    objSelection.TypeParagraph() 

    objSelection.Font.Name = "Calibri" 
    objSelection.Font.Size = "9" 
    objSelection.TypeText "====================================================================================================" 
    objSelection.TypeParagraph() 

このコードを自分のコンピュータの[スタート]メニューにコピーするにはどうすればよいですか?

ありがとうございました!

答えて

0

Application.UserNameは、ユーザーがOfficeスイートをインストールしたときに入力した名前を表示しますが、これはおそらくあなたが望むものではありません。

Environ$("UserName")は、Windows環境変数からユーザー名を取得します。それが設定されている場合。

これは長くて複雑ですが、ユーザー名も返します(マイクロソフトの例があります)。

' Declare for call to mpr.dll. 
    Declare Function WNetGetUser Lib "mpr.dll" _ 
     Alias "WNetGetUserA" (ByVal lpName As String, _ 
     ByVal lpUserName As String, lpnLength As Long) As Long 

    Const NoError = 0  'The Function call was successful 

    Sub GetUserName() 

     ' Buffer size for the return string. 
     Const lpnLength As Integer = 255 

     ' Get return buffer space. 
     Dim status As Integer 

     ' For getting user information. 
     Dim lpName, lpUserName As String 

     ' Assign the buffer size constant to lpUserName. 
     lpUserName = Space$(lpnLength + 1) 

     ' Get the log-on name of the person using product. 
     status = WNetGetUser(lpName, lpUserName, lpnLength) 

     ' See whether error occurred. 
     If status = NoError Then 
     ' This line removes the null character. Strings in C are null- 
     ' terminated. Strings in Visual Basic are not null-terminated. 
     ' The null character must be removed from the C strings to be used 
     ' cleanly in Visual Basic. 
     lpUserName = Left$(lpUserName, InStr(lpUserName, Chr(0)) - 1) 
     Else 

     ' An error occurred. 
     MsgBox "Unable to get the name." 
     End 
     End If 

     ' Display the name of the person logged on to the machine. 
     MsgBox "The person logged on this machine is: " & lpUserName 

    End Sub 

ユーザーIDを取得したら、残りの作業を行うことができます。私はあなたが「このコードを自分自身をスタートメニューにコピーする」という意味を正確には知らない。 VBAコードを実際に実行するファイルに置くことはできません。それは、いくつかの種類のOfficeホストアプリケーションに接続する必要があります。

スタートメニューにWordのドキュメント(またはそのショートカット)を挿入する場合は、スタートメニューのショートカットを作成する際にいくつかの検索を行い、壁に当たった場合は質問してください。

+0

コンテキストで判断すると、「このコードをコピーしてスタートメニューに入れる」とは、起動時の自動実行を意味します。私はこれがいたずら(コンテンツで与えられる可能性が高い)または境界線の悪意のあるものとして意味されていると推測しています。 – Comintern

0

Set wshShell = CreateObject("WScript.Shell")

strUserName = wshShell.ExpandEnvironmentStrings("%USERNAME%")

WScript.Echo "User Name: " & strUserName

このコードは、あなたがするか何か、それを送信している誰の名を得るのを助ける必要があります。あなたのコードで判断すると、これを最初に置いて、私のユーザ名の代わりにstrUserNameをそこに入れます。

+0

しかし、なぜいたずらやウイルスを作成していますか? – TiptoeSB

+0

はスペースを使います – TiptoeSB

関連する問題