I don't use an installer at all. Whenever possible I only send a zip file. I think a big advantage of Pelles C results is that they usually don't depend on third party dll's/ocx's. Unless you code to. So there's no need to use installers to check the registry for existence of those and install them when absent. When the first clients start using MS Window 7, I also removed any use of/dependency on the registry for settings in favour of the ancient INI files to avoid UAC issues (and the risk of false positives).
Using INI files will not get you around the UAC... UAC works by examining the resources of the EXE or DLL files looking for an imbedded manifest. If that fails it looks for a free standing manifest in the same folder as the executable. When there is no manifest it usually decides the program is risky and asks the user to confirm they want to proceed. Many virus scanners also check manifests...
1: Including a combobox "loaded" with previous entries for the specific function in progress.
2: Without caption/control bar/borders so the end user doesn't need to bother and might think it's the original CAD command prompt, but it's actually an external program. The window is not put in the window hierarchy of the CAD program.
It might be #2 that's tripping you up.
A virus scanner cannot legitimately freak out about individual windows API calls, directly, since they are by definition legitimate subroutines made available to the user. They work mostly by pattern recognition so it would take a complex of several calls to trip a legitimate positive. (For example a keyboard hook in a tight loop with disk writes might signal a keylogger.) Also keep in mind that C library functions are not magic, at some point many of them call Windows API functions to do their thing.
Given your descriptions so far, I would say your best bets are to 1) Add a manifest into your program's resources, 2) Use a properly formed window, 3) return to using registry settings. Each of these is at least worth a try... but I'd suggest you do all of them.
Since manifests are poorly explained on MSDN here's an example you can modify to your own uses...
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity type="win32"
name="AutoLogon"
version="1.0.0.0"
processorArchitecture="X86" />
<description>
Auto logon tool
</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.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker"
uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
To personalize it for your programs you will need to change the name= to the name of your program (without extension), the description block to describe your program in 10 words or less, and if it's a 64bit program you would change the processorarchitecture to amd64. DO NOT change anything else. You would then import this file into your program's resources (create them if they don't already exist).
About the only other possibility I can think of is that some #$%#$%^ has reported a virus written in Pelles C (yes, it can happen) and now the scanner is freaking out about every Pelles C program. In that case I'd be getting hold of these AV guys right quick...