• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1859
  • Last Modified:

VB6 Impersonation in Windows 7

Hi,

I have a legacy application that contains some VB6 impersonation code on startup.

I am trying to make the application function on Windows 7.  I've tried creating a SHIM and also used the Standard User Analyzer to 'mitigate' issues, with no success.

To be clear, I am right-clicking the application and selecting 'run as administrator'.  There is a chance the application is calling another application, but I'm sure if the first app is run as 'admin' then the rest would follow?

The error message:

ImpersonationVB6:
CreateProcessWithLogonW() failed with error 740

I don't require the application to process the impersonation seqment and simply want the error to go away!

Any ideas?
0
jamie77777
Asked:
jamie77777
1 Solution
 
_Commented:
What about Right-click, run in XP Compatibility Mode?
0
 
jamie77777Author Commented:
Thanks for the vey quick response, but no, unfortunately that doesn't work...
0
 
torimarCommented:
Try creating a manifest file for your application.

Here's a sample that I think should work:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <assemblyIdentity version="1.1.0.24" processorArchitecture="X86" name="MyApplication" type="win32"/>
    <description>This is my VB6 application</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="requireAdministrator" uiAccess="false" />
            </requestedPrivileges>
        </security>
    </trustInfo>
</assembly>

Open in new window


Copy the above into a text file, adjust the "name" and "description" tags to fit your application, call the file like your application and add a '.manifest', i.e. "myapp.exe.manifest". Copy that manifest file into the application's installation folder next to the executable. Then try launching the program again.
0
Get your problem seen by more experts

Be seen. Boost your question’s priority for more expert views and faster solutions

 
jamie77777Author Commented:
That didn't work, thanks anyway :)  I'm thinking I need to 'fool' the OS into thinking the VB6 impersonation code is working... any more ideas anyone?
0
 
torimarCommented:
Just came across this one application virtualizer: http://www.evalaze.de/en/Evalaze-Softwarevirtualisierung-Evalazer/

It promises to be able to run "old applications" (even 16-bit ones) under modern operating systems.
Maybe that will also apply to your problem program.
0
 
jamie77777Author Commented:
Hi torimar, thanks but virtualising the app isn't an option...
0
 
jamie77777Author Commented:
I'd still really like some help with this. It's to the point of the vendor reengineering the app, a very expensive project..
0
 
BrianVSoftCommented:
My apologies for responding with a totally non-helpful comment..
But I think you - like us - are out of luck. Microsoft is determined to close all VB6 functionality within a few years and are refusing to "fix" any aspect of VB6 that has already ceased to work.
Our company is facing the expense of re-writing millions of lines of VB6 code (maybe $100,000?)
Every other software language on the planet has had major upgrades - but always in backwards compatible steps that involved an expense of just a few percent of project value.
The approx 30% impost of converting VB6 to DotNet is worthy of a class action by the 10s of thousands of programmers affected. I saw (and joined) a link to such a class action at www vs2020.com - see article on "Microsoft Issues"
0
 
jamie77777Author Commented:
Yep, figured as much.  I guess the only plus side is the amount of work it'll generate in the industry (I'm clutching at straws here...).  Thanks the information, interesting site.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Upgrade your Question Security!

Your question, your audience. Choose who sees your identity—and your question—with question security.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now