【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集

現在VB2008でプログラムを組んでいるのですが、(VB初心者です)
現在の壁紙を取得し、そのファイルをコピーしてCドライブ直下に保存する方法がわかりません。
壁紙の取得はできました(sPathにアドレスが出る) ただそれをコピーできません。

以下のようなエラーが出ます。
パスに無効な文字が含まれています。

ソースコードは以下の通りです。
Dim sPath As New System.String(" ", MAX_PATH + 1)
SystemParametersInfo(SPI_GETDESKWALLPAPER, MAX_PATH, sPath, 0)
My.Computer.FileSystem.CopyFile(sPath, "C:\Test.bmp", True)

原因不明でよくわかりません。 教えてくださいお願いします。

A 回答 (1件)

>My.Computer.FileSystem.CopyFile(sPath, "C:\Test.bmp", True)


sPathに取得された文字列の次がNULL文字になっています。
NULL直前までの文字列を使います。
My.Computer.FileSystem.CopyFile(Microsoft.VisualBasic.Left(sPath, sPath.IndexOf(vbNullChar)), "C:\Test.bmp", True)
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!