Turn Your Vehicle Into a Smart Earning Asset

While you’re not driving your car or bike, it can still be working for you. MOTOSHARE helps you earn passive income by connecting your vehicle with trusted renters in your city.

🚗 You set the rental price
🔐 Secure bookings with verified renters
📍 Track your vehicle with GPS integration
💰 Start earning within 48 hours

Join as a Partner Today

It’s simple, safe, and rewarding. Your vehicle. Your rules. Your earnings.

Quick Launch shortcut in Vista and Windows 7

InstallerGeek created the topic: Quick Launch shortcut in Vista and Windows 7
The right substitute for Vista/XP like Quick Launch shortcut is to make the link pinned to the taskbar (IMO).
>
> It appears as simple as putting the shortcut in User Pinned\TaskBar subfolder of Quick Launch folder in Windows 7.
>
>
>
>
>
>
>
>
>

>

>

>

>
> Now, I can condition the installation of the component containing the Shortcut element.
> When OS is Windows 7 shortcut gets created in QL6 directory, otherwise in QL4.
>
> Since this would unnecessarily create User Pinned\TaskBar folders on Vista and XP, does anybody know if there is a more elegant way to accomplish the same goal?

applicationPackaging replied the topic: Re: Quick Launch shortcut in Vista and Windows 7
Tony, how do you catch the case, that your user only can install applications elevated as administrator (don’t assume everybody is admin on his/her machine)? Wouldn’t the quick launch shortcut then only appear on the administrator’s quick launch bar and hence is invisible for the normal user(s)?

Tom

applicationPackaging replied the topic: Re: Quick Launch shortcut in Vista and Windows 7
Because of various other factors, I require from users to have admin rights when installing and running the app. So this is not a problem for me (at least not for now).

But you don’t have to be admin to install the application. Administrator can approve of certain MSI to be installed by non-elevated users on his network and MSI takes care of elevating the rights so that, for example, folders and files can be created in Program Files.

I tested this scenario once: I allowed all users on my machine to run MSI and as non-elevated user I had no problem installing the app. I had problems running it because some of installed apps write to Program Files subfolders, but that’s another issue.

applicationPackaging replied the topic: Re: Quick Launch shortcut in Vista and Windows 7
I am not sure if I understood the question well and if my previous response makes sense. But this is how would I try doing it if I had to do it and if WiX didn’t let me do declaratively:

Even if MSI (or more correctly parts of install) run with elevated privileges, I think that immediate custom action runs non-elevated and I can find current user’s ApplicationData folder via Shell API call GetSpecialFolder. I can then create shortcut links programmatically in custom action code as seen below (I don’t know where I got it from, probably some MSDN article).

//
//
// CreateLink – uses the Shell’s IShellLink and IPersistFile interfaces
// to create and store a shortcut to the specified object.
//
// Returns the result of calling the member functions of the interfaces.
//
// Parameters:
// lpszPathObj – address of a buffer containing the path of the object.
// lpszPathLink – address of a buffer containing the path where the
// Shell link is to be stored.
// lpszDesc – address of a buffer containing the description of the
// Shell link.
// lpszIconLink – address of a buffer containing the path where the
// Shell link icon can be found.
// index – index of the icon
//

HRESULT CreateLink(LPCTSTR lpszPathObj, LPCTSTR lpszPathLink, LPCTSTR lpszDesc, LPCTSTR lpszIconLink, int index) {
HRESULT hres;
IShellLink* psl;

// Get a pointer to the IShellLink interface.
hres=::CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER,
IID_IShellLink, (LPVOID*)&psl);
if(SUCCEEDED(hres))
{
IPersistFile* ppf;

// Set the path to the shortcut target and add the description.
psl->SetPath(lpszPathObj);
psl->SetDescription(lpszDesc);
if(lpszIconLink!=0)
psl->SetIconLocation(lpszIconLink, index);

// Query IShellLink for the IPersistFile interface for saving the
// shortcut in persistent storage.
hres=psl->QueryInterface(IID_IPersistFile, (LPVOID*)&ppf);

if(SUCCEEDED(hres))
{
USES_CONVERSION;

// Ensure that the string is Unicode.
LPWSTR wsz=CT2W(lpszPathLink);

// Add code here to check return value from MultiByteWideChar
// for success.

// Save the link by calling IPersistFile::Save.
hres = ppf->Save(wsz, TRUE);
ppf->Release();
}
psl->Release();
}
return hres;
}
InstallerGeek replied the topic: Re: Quick Launch shortcut in Vista and Windows 7
There’s no need to do that: The Shortcut table can be used to create shortcuts in any directory. And it takes care of uninstall and rollback, which your code does not.

Subscribe
Notify of
guest
0 Comments
Newest
Oldest Most Voted
Inline Feedbacks
View all comments

Certification Courses

DevOpsSchool has introduced a series of professional certification courses designed to enhance your skills and expertise in cutting-edge technologies and methodologies. Whether you are aiming to excel in development, security, or operations, these certifications provide a comprehensive learning experience. Explore the following programs:

DevOps Certification, SRE Certification, and DevSecOps Certification by DevOpsSchool

Explore our DevOps Certification, SRE Certification, and DevSecOps Certification programs at DevOpsSchool. Gain the expertise needed to excel in your career with hands-on training and globally recognized certifications.

0
Would love your thoughts, please comment.x
()
x