Freigeben über


Vista To Support Legacy VB6 Apps

A number ISVs I've been talking to as participants in the Windows Vista early-adoption programs have asked questions on the support of legacy Visual Basic 6 applications on Windows Vista.

In this DevSource article "Microsoft's Upcoming Vista To Support Legacy VB6 Apps" Jay Roxe doens't fully answer the question "Will Microsoft's forthcoming Vista OS support legacy applications written in VB6 (Visual Basic 6)?", but he says that Microsoft will extend mainstream support for the VB6 runtime at the time Vista will be shipping. Other take-aways from the article:

  • the VB6 runtime will ship with Vista
  • in general VB6 applications will work on Windows Vista and they will get AppCompat testing
  • the VB6 IDE will not take advantage of new Vista features or behavior but it will run on Windows Vista
  • Will the VB6 runtime be shipped with Windows XP and Server 2003 until the end of life of these products

Microsoft is currently readying a white paper about VB6 support in the next edition of Windows. More in-detail answers to the support question will be available in about a month from now.

Below a list of some very useful resources on Visual Basic 6 and Visual Basic 2005:

Comments

  • Anonymous
    February 26, 2006
    So is that a change from XP, then? VB 6 wasn't supported on Windows XP on either of the 64-bit platforms (IA64 when XP first shipped, and X64/AMD64 when Server SP1 shipped and XP X64 shipped with it).

    Or does this just mean Vista X86 will continue support, but X64 (where Microsoft is hoping Vista will be successful with new hardware) won't?

  • Anonymous
    February 26, 2006
    Wes, Microsoft will extend mainstream support for the VB6 runtime — already being supplied through the end of the Windows XP lifecycle — by another six or seven years, through the end of the Vista lifecycle. So no change here for XP.
    For the Vista support plans (32-bit/64-bit) we will have to wait on the white paper which should be available in a couple of weeks.

  • Anonymous
    February 26, 2006
    The comment has been removed

  • Anonymous
    February 27, 2006
    The comment has been removed

  • Anonymous
    June 24, 2006
    The comment has been removed

  • Anonymous
    July 11, 2006
    Very very good point Pasquale, and mr Boschmans di'dn't even bother to reply. You are so right. It's time to abandon Microsoft and move on. They are not the best, certainly not, but they are way too expensive. Remember all you pay for you can get for free through open source.

  • Anonymous
    July 11, 2006
    Pasquale, I understand that you're worried about the Windows Vista compatibility of the VB applications you've developped in the past. Since you posted this comment I contacted several people within the Visual Basic Product team to have a look at this. As I haven't had any news from them so far, I can't currently add any value to the discussion. Hence why I didn't comment here yet. I will provide you with an answer as soon as I've more info.
    Microsoft has a support cycle for all products of 9+ years. More info on the support story of VB (shipped in 1999) can be found on http://msdn.microsoft.com/vbrun/support.aspx.
    @Yochem: It won't hurt to have a look at the facts ... Just wondering, which open source dev language/IDE has 9+ years product support on 5+ OSs?

  • Anonymous
    July 30, 2006
    Pasquale,

    I'm the VB Program Manager responsible for Visual Basic 6 on Vista.  The SendKeys issues has been corrected and will be released in Vista RC1.  The calls to SendKeys that work under Windows XP will work the same way under Vista.

    Hope that helps.
    Thanks,
    Chris Mayo
    Visual Basic Program Manager

  • Anonymous
    July 30, 2006
    Dear Chris,

    Thank you very much indeed for having solved a problem that otherwise would have caused a real headache.

    Please say thank you on my behalf to all the MS Staff who, once again, have revealed their professionalism.

    Keep up the good work.

    All the best.

    Pasquale Esposito
    Perugia, Italy

  • Anonymous
    September 13, 2006
    Now we have RC1 of Vista Ready to go, Sendkeys in VB6 Apps is working but not in .NET 2.0 Apps ... sick world.

  • Anonymous
    September 21, 2006
    The comment has been removed

  • Anonymous
    November 13, 2006
    Well. We're doing serious automation through keyboard simulation and specific API calls (like the Office API) to do text manipulation and such. The main application is written in .NET 1.1. We've decided to use the Win32 function Sendinput to do all the text manipulation in applications that don't have a specific API to do it for us. If SendKeys will be gimped in .NET 2.0, what will replace it? Will we have to use Win32 still? I find this very odd if it is the case! Also, SendKeys is very slow compared to using interop and Win32 calls. Also odd.

  • Anonymous
    November 14, 2006
    Tomas, take a look at the MSDN documentation of SendKeys at http://msdn2.microsoft.com/en-us/library/system.windows.forms.sendkeys.sendwait.aspx. It describes why SendKeys can behave differently on different operating systems.

  • Anonymous
    March 20, 2007
    Hello, some people knows if is possible use regsvr32 on vista for dll and ocx registration? Thk

  • Anonymous
    March 21, 2007
    Hi, I am using a 3rd party utility stamina 32. It crashes on windows vista. I need help with regards to this. thanks

  • Anonymous
    March 21, 2007
    sorry for my earlier post. the 3rd party utility name is Stamina ASM library. please help me find a solution. thanks

  • Anonymous
    March 22, 2007
    @Mark: yes this is possible. @thotak: please check with the vendor of the 3rd party library (MicroDexterity) if they have support for Windows Vista. When looking at their site at http://www.microdexterity.com/ I'm pretty sure they don't.

  • Anonymous
    March 22, 2007
    hi, thanks for your reply.Really appreciate it. Checked with the vendors and found out that they don seem to be having any problem with Vista OS. Can you help me find the list of known issues of legacy VB application/IDE on Vista OS. Where I can I find an exhaustive list of all the scenarios?

  • Anonymous
    March 23, 2007
    I suggest you start at the Troucleshooting and Support section of the MSDN site at http://msdn2.microsoft.com/en-us/support/default.aspx. Post you questions in the appropriate forum/newsgroup. I don't think there's such a list you're asking for.

  • Anonymous
    March 30, 2007
    Hi, maybe not the ideal forum for this question as it is general, but I note we have a microsoft spokesman on the vb6 vista issue: What does microsoft recommend shareware authors to do? I am continuing writing in VB6 even for Vista. I made a .NET version using that wonderful program that converted my VB6 program, but immediately my source code was PIRATED!! by reverse compile. Come on guys, what are we supposed to do here????

  • Anonymous
    April 02, 2007
    Hi John, I'm not the Microssoft spokesman on VB6 and Window Vista but I'm helping where possible :-). When making .NET code commercially available you should use code obfuscation. Eg: .NET Obfuscator is a tool that can be used for this purpose. This adds at least one level of protection to your source code. When writing shareware I would advice you to invest in a good licensing model. You could make a free version with limited functionality available as test. For the full version people would have to pay the full price. Every type of code can be reverse engineered so writing in VB6 is not really a solution. I would therefore advice to continue writing software in .NET and look at code obfuscation solutions.

  • Anonymous
    April 05, 2007
    The comment has been removed

  • Anonymous
    April 17, 2007
    I suggest you have a look at some of the obfuscation tools listed on the SharpToolbox.com site at http://sharptoolbox.com/categories/code-protectors-obfuscators. Some of them might be expensive, but others aren't. You should be able to find what you're looking for in that list.

  • Anonymous
    April 25, 2007
    The comment has been removed

  • Anonymous
    April 25, 2007
    While in design mode Sendkeys generates an error 70 (Permission denied) under Vista, when you launch the compiled VB6 exe it doesn't. This is the behaviour I detected on my PC equipped with Vista Premium (Italian version). Pasquale Esposito Perugia, Italy

  • Anonymous
    April 27, 2007
    Chris Mayo wrote on 7/30/06 that "The SendKeys issues has been corrected and will be released in Vista RC1."  Did this apply only to VB6 and not VBA?  I have several Access 2003 applications that use SendKeys.  In Vista, Access halts with run-time error 70 - permission denied.  I'm using the released version (6.000) of Vista Ultimate.  Was this only partially fixed?  Is there a policy that can be modified to correct this? Thanks.

  • Anonymous
    May 11, 2007
    Hello, We have a small Excel application that we ship with a Time Reporting system. The associated VBA code makes extensive use of the SendKeys command and customers running the application under Vista are encountering the "Permission denied - error 70" problem. I'm tearing my hair out because I can't figure it out. We have a 6.0.6000 Vista here at the office and the application runs fine with Excel 2002, 2003 and 2007. I currently have two screaming customers also with Vista 6.0.6000 and both are unable to use the application. I've been going from forum to forum but can't find out what the current status is. Has the problem been fixed, or not? If it is fixed, what do people need to do to update ? If not, will it be ? Please help ! Guenter Kloepper Grenoble, France

  • Anonymous
    May 18, 2007
    All, I forwarded the "Permission denied - error 70" problem to Chris Mayo's team. He's tracking down the issue and a possible solution. Chris will be posting a comment on this blog soon. Thanks for your patience!

  • Anonymous
    May 22, 2007
    How does one obtain the RC1 update?

  • Anonymous
    May 22, 2007
    Windows Vista is RTM since beginning of 2007. RC1 builds are pre-RTM builds and aren't available anymore.

  • Anonymous
    June 06, 2007
    The comment has been removed

  • Anonymous
    June 08, 2007
    Hello Chris, Sounds like you need to open a VBA code page, go to Tools/References and replace the MISSING dependency file with the most recent version of that Reference. The Office Experts http://www.theofficeexperts.com/forum/forumdisplay.php?f=3 is a great place to ask this kind of question. I'm the Access mod there, but starl, firefytr and the rest of the Mr Excel crew support the Excel forum. Mac

  • Anonymous
    June 08, 2007
    I have also fallen foul of the SendKeys problem with a legacy Access application.  A quick workaround was to produce a compiled dll using VB which wrapped the Sendkeys method, and then update the app to use the dll's method instead  

  • Anonymous
    June 11, 2007
    Hi Nigel, I tried the dll's method, but it didnt work. It still gives the permission denied error message. How did you make it work?

  • Anonymous
    June 16, 2007
    The comment has been removed

  • Anonymous
    June 20, 2007
    Today's headlines report that Microsoft will be working to help Google run on Vista because "As part of the [2002] settlement, Microsoft is bound by a consent decree that requires it to help rivals build software that runs smoothly on Windows." Too bad we VB programmers aren't "rivals".  Maybe then our software would run smoothly on Vista :)

  • Anonymous
    June 28, 2007
    The problem with VB6 applications using the SendKeys function and Vista seems to be down to the UAC in Vista. I have found that by turning off the UAC and running my application, either as Administrator or as a normal user, SendKeys works fine but with UAC switched on the SendKeys function does not work at all either running as Administrator or as a normal user. I have also noticed that under Vista with UAC switched on when tabbing backwards (SHIFT+TAB) you cannot tab backwards more than one field as the second press of TAB with SHIFT already down does not realise that SHIFT is still held down so tabs forward. This is also solved by turning off the UAC. Microsoft seem to have tried to create extra security and in the process stopped alot of already existing applications from working as they were designed to do so using the available tools at the time of development, although all of this seems to be fixed if the UAC is switched off, which defeats the purpose of Microsoft implementing the UAC anyway !! I hope this in some ways helps people out. I would be grateful if you could post back and let me know if what I have suggested fixes your problems. I know it is not ideal but it is a workaround for now.

  • Anonymous
    June 28, 2007
    The comment has been removed

  • Anonymous
    July 07, 2007
    We provide bespoke accounting apps in VB6 and have just realised how major the problem is with Vista. We have issued advice to our 240 clients (each with up to 16 VB6 apps) to stay with XP while Vista cannot support Sendkeys. Re-write, deploy, training and support to avoid Sendkeys is a huge job - any one app. can have 60 refs to Sendkeys. It is also embedded in some ActiveX controls. Some of these apps are less that 6 months old! It seems the latest installs of Vista with the latest downloads still don't work. PLEASE Microsoft - proceed with the plan to make Vista support VB6 Sendkeys.

  • Anonymous
    July 17, 2007
    I am getting a UAC dialog about vb6.exe saying that it is from an "unidentified publisher" (since when is Microsoft "unpublished"?). I either need a way to have vb6.exe become from an identified publisher, or for the "Allow - I trust this program. I know where it's from or I've used it before" to persist between executions. I can't believe that I am the first one to have this particular problem. Anyone have a solution?

  • Anonymous
    July 30, 2007
    I have a leagacy application having VB6 thich client. There are no modifications/customizations hapenning in that application, except that we are moving our infrastructure to Vista. I want to know whether it will be good to migrate this application to web (java/. Net). Or should I continue with the legacy system. What is the future of VB6? Will microsofts futher release keep supporting VB6? its seems that microsoft it self is discouraging the use of VB6.  please help me in evaluation of VB6 over .Net/java on vista platform.