Como descubro a pasta da área de trabalho do usuário?

Estou fazendo um pequeno aplicativo no visual studio que carrega uma ROM em um emulador. Eu tenho dois emuladores e 20 ROMs.

Fiz um formulário e adicionei alguns botões. Quando você clica no botão, ele abre um novo formulário e fecha o antigo. Então, no novo formulário, tenho quatro botões: cada um carrega uma ROM diferente em um emulador. Portanto, quando você pressiona o Botão1, esse código é acionado:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles yellow.Click
Shell("C:\Users\shifty\Desktop\pokemon games\Emulator\VBA\VisualBoyAdvance.exe ""C:\Users\shifty\Desktop\pokemon games\Roms\Yellow\Pokemon Yellow.gb""", vbNormalFocus)
End Sub

Funciona bem - clico nele e carrega o jogo no emulador. O pouco que estou tendo problemas é com os caminhos dos arquivos. Se eu enviar esse aplicativo a um amigo, ele ainda procurará "C: \ Users \ shifty \ Desktop \" - mas está no meu computador, não no dele.

xiste uma maneira de fazer com que o aplicativo procure o arquivo em seu computador (sem alterar o caminho do arquivo para (C: \ Users \ "" seu nome de usuário "" \ Desktop))

questionAnswers(8)

yourAnswerToTheQuestion