Autoplay Default DVD Program

Posted on 2007-11-29
Last Modified: 2013-12-03
OK, I am trying to set the default autoplay program to launch when a DVD is inserted, and in my case I'm using VideoLan VLC media Player.  To manually do this:

1) Open My Computer
2) Right click on the DVD Drive and select Properties
3) Click the Autoplay tab
4) Select DVD movie
5) Check Select an action to perform and choose a program (I am using VIdeolan VLC PLayer)

I grabbed a snapshot of the registry before hand and found the values that changed, and wrote a script that correctly changes that.  However, when you manually set the default through the GUI something else changes to apply it, but I can't locate it.  Does anyone know what I am missing?  I will attach my code below:
Option Explicit

' Create Objects

dim objNetwork: set objNetwork = CreateObject("Wscript.Network")

' Set Variables

dim strComputer: strComputer = "."

dim strSID, arrDeviceID(), i: i = 0

dim objWMIService, objAccount, colDevices, objDevice

' Connect to Computer

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

' Get User SID

Set objAccount = objWMIService.Get _

    ("Win32_UserAccount.Name='" & objNetwork.UserName & "',Domain='" & objNetwork.UserDomain & "'")

strSID = objAccount.SID

' Collect CD & DVD ROMs

Set colDevices = objWMIService.ExecQuery("Select * from Win32_CDROMDrive")

For Each objDevice in colDevices

	ReDim Preserve arrDeviceID(i)

	arrDeviceID(i) = objDevice.DeviceID

	i = i + 1


' Connect to Registry & Set DVD Autoplay Default for Each DeviceID Detected

const HKEY_USERS = &H80000003

const HKEY_CURRENT_USER = &H80000001

dim objRegistry: set objRegistry = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")

dim strKeyPath: strKeyPath = strSID & "\Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\UserChosenExecuteHandlers"

dim strValue: strValue = "VLCPlayDVDMovieOnArrival"

dim strValueName

For i = 0 to UBound(arrDeviceID)

	strValueName = "H:\\?\" & Replace(arrDeviceID(i),"\","#") & "#{53f5630d-b6bf-11d0-94f2-00a0c91efb8b}+PlayDVDMovieOnArrival"

	objRegistry.SetStringValue HKEY_USERS, strKeyPath, strValueName, strValue

	'objRegistry.SetStringValue HKEY_CURRENT_USER, strKeyPath, strValueName, strValue


Wscript.Echo "Finished"

Open in new window

Question by:deadite
  • 3
LVL 23

Accepted Solution

gecko_au2003 earned 500 total points
Comment Utility
There is this EE post using the user.dll and rundll32 to make the changes take effect :

:: Make the changes effective immediately
%SystemRoot%\System32\RUNDLL32.EXE user32.dll, UpdatePerUserSystemParameters
LVL 23

Expert Comment

Comment Utility
LVL 23

Expert Comment

Comment Utility
sorry for all the posts but forgot to mention you may need to use shell in vbs to launch that command ie :

Set oShell = CreateObject("WScript.Shell")
oShell.Run "%windir%\System32\RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters", 1, True

something along those lines possibly however as per the link in my 2nd post it only updates the HKEY CURRENT USER Hive.


Expert Comment

Comment Utility
This doesn't work.  Did you find a way to get it to work?

Featured Post

Highfive Gives IT Their Time Back

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

Step by step guide to Clean and Sort your windows registry! Introduction: Always remember: A Clean registry = Better performance = Save your invaluable time In this article we're going to clear our registry manually! Yes, manually! The e…
A theme is a collection of property settings that allow you to define the look of pages and controls, and then apply the look consistently across pages in an application. Themes can be made up of a set of elements: skins, style sheets, images, and o…
This is Part 3 in a 3-part series on Experts Exchange to discuss error handling in VBA code written for Excel. Part 1 of this series discussed basic error handling code using VBA.…
Excel styles will make formatting consistent and let you apply and change formatting faster. In this tutorial, you'll learn how to use Excel's built-in styles, how to modify styles, and how to create your own. You'll also learn how to use your custo…

743 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now