So you've got a networked database and you need an easy way of deploying customised desktop shortcuts for it to your users. Here's a cunning method.
The basis for this method is the use of Visual Basic scripting in the form of a VBS file - saves you having to build a setup.exe file or anything strenuous like that. Now VBS files have had something of a bad press, mainly because script-kiddies have used them to write viruses. Don't let that put you off.
Anyway, create a file in the text-editor of your choice and name it something intelligent like install_production.vbs - note the extension. Now the script shown below does the following:
- Prompts the user to confirm their database username - since I use the user's Windows username for their database username, this is shown as the default response. If you're not using user-level security you can skip this step.
- Creates and names the shortcut, checking the Registry to look-up the location of the user's version of Access (you can hard-code the Access executable's location if you'd prefer)
- Sets the "run in" directory
- Sets the shortcut icon
- Sets the shortcut's window style
In the example that follows:
- MyApp is the name of the database application
- \\srvr\share\fldr\myapp.mdb is the location of the database file
- \\srvr\share\fldr\system.mdw is the location of the workgroup information file
- \\srvr\share\fldr\myapp.ico is the location of the application icon file
Okay, here's the script:
Set WshNetwork = WScript.CreateObject("WScript.Network")
Dim strI
strI = InputBox("Enter your MyApp database username here. If a default has been suggested, please " & _
"check it before you proceed, amending as required." & Chr(10) & Chr(13) & Chr(10) & Chr(13) & _
"NOTE: leaving this blank cancels the installation!", "Shortcut personalisation", WshNetwork.Username)
If Len(strI)>0 Then
Dim WSHShell
Set WSHShell = WScript.CreateObject("WScript.Shell")
Dim MyShortcut, DesktopPath, AccessPath
DesktopPath = WSHShell.SpecialFolders("Desktop")
Set MyShortcut = WSHShell.CreateShortcut(DesktopPath & "\MyApp - production.lnk")
AccessPath = WSHShell.RegRead("HKCR\.mdb\")
AccessPath = WSHShell.RegRead("HKCR\" & AccessPath & "\shell\new\command\")
AccessPath = Replace(Left(AccessPath, InStr(1, AccessPath,"/", 1) -1), """", "")
MyShortcut.TargetPath = AccessPath
MyShortcut.Arguments = "\\srvr\share\fldr\myapp.mdb /wrkgrp \\srvr\share\fldr\system.mdw /user " & strI
MyShortcut.WorkingDirectory = "C:\Program Files\Microsoft Office\Office\"
MyShortcut.WindowStyle = 3 '1=normal, 2=minimised, 3=maximised
MyShortcut.IconLocation = "\\srvr\share\fldr\myapp.ico"
MyShortcut.Save
Msgbox "Installation completed successfully.", 64, "MyApp"
Else
Msgbox "Installation was cancelled.", 48, "MyApp"
End If
Note that your users may get prompted to confirm that they want to run a VBS file, depending on their PC/environment security settings. Like I said before, this is a security measure to help prevent the feeble-minded exploiting the power of Visual Basic scripting to be malicious.
No comments:
Post a Comment