It is a known Windows "feature" that having the word "update" (among other words) in your EXE's name will make Windows Vista and higher display a UAC prompt upon running.
Here's a source that explains it: http://stackoverflow.com/questions/2222217/exe-name-like-update-exe-blocked-by-uac-in-scheduled-task (http://stackoverflow.com/questions/2222217/exe-name-like-update-exe-blocked-by-uac-in-scheduled-task).
In FireFly, I created a program called abcupdate.exe, and it there is no UAC prompt. If I create the same thing in PB's native editor, the EXE triggers UAC.
What does FireFly do to circumvent this?
Could it have something to do with the manifest file?
See http://msdn.microsoft.com/en-us/library/windows/desktop/bb756960.aspx (http://msdn.microsoft.com/en-us/library/windows/desktop/bb756960.aspx)
Wilko
Ahh, you may be right. I have my project set to delete all these files after compile so I didn't even notice. Here's a part of the manifest file that may well take care of this:
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
I guess I need to create a similar file for my pure PB program with these contents! I'll give that a try later.
Thanks for the pointer...
Thanks Wilko, a manifest solved the issue.
I know this forum is for FireFly, but to make this work in pure PB, I created a manifest file called "AbcUpdate.exe.manifest". It's identical to the one FireFly generates, but I set the "assemblyIdentity" section's "name" value to that of the EXE I'm was creating:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" >
<assemblyIdentity
version="0.2.0.5"
processorArchitecture="X86"
name="AbcUpdate"
type="win32" />
<description></description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*" />
</dependentAssembly>
</dependency>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
<dpiAware>true</dpiAware>
</asmv3:windowsSettings>
</asmv3:application>
</assembly>
Then I included it into the EXE as a resource:
#RESOURCE MANIFEST, 1, "AbcUpdate.exe.manifest"
The final EXE no longer triggered UAC!