I understand from reading Arik Poznanski's blog that the Windows Ribbon UI Framework is a COM object in Windows 7, and the WindowsRibbon wrapper is just a .NET veneer around that, to allow the Ribbon UI to be used in Windows Forms applications.
I've been successful in implementing a Hello World Windows Form app that employs this wrapper:
It is running on my development machine, which is Windows7.
Questions:
Will this "hello, world" application run on Vista? XP? Do I need to download something onto those machines in order to make that happen?
Is there a way to specify the Windows Ribbon UI components as a pre-requisite, in an MSI installer?
Thanks
Browsing around I found the documentation for UIRibbon.dll, which is the DLL on Windows7 that delivers the Ribbon UI. It lists these as minimum supported clients:
Windows 7, Windows Vista with SP2 and Platform Update for Windows Vista
how would I check for that in an MSI ?
Best I can tell, you are taking on a dependency that won't work on Windows XP. This doesn't seem to be a redistributable component ( although I will admit hacking on a VM trying to see if I could transplant it into an XP machine ).
Since it isn't redistributable, I'm not sure there's any point in doing a search in MSI as you can just rely on checking the OS Major version ( Win7 ).
You are free to use a Ribbon UI wherever you like (subject to the Ribbon license agreement; which basically asks that you don't make a half-assed version).
There are companies that created their own Ribbon controls. Some of those implementations (i.e. Microsoft's Windows Ribbon Framework) only work on Windows 7 or Windows Vista (with a download installed first).
If you want to check that the Windows Ribbon Framework is available on the client machine, try to create a UIRibbonFramework object:
IUIFramework* pFramework = NULL;
HRESULT hr = ::CoCreateInstance(
CLSID_UIRibbonFramework,
NULL,
CLSCTX_INPROC_SERVER,
IID_PPV_ARGS(&pFramework));
if (FAILED(hr))
{
//Ribbon not available - fallback to something else
return;
}
Related
Hi I have developed on software using visual basic for windows CE, now i want to run the same software on windows TAB. how can i do that....pls help
I tried directly running software into my windows based tab. it shows some error.
If TAB means tablet and it runs any version of Windows (8,10 etc.) that is not CE then your application will not run as it is.
Posting the error message you get would help.
But if the app has been designed for the .NET Compact Framework, at least you need to take the source code and rebuild it for the full .NET Framework. Some things may not compatible and you may need to fix or change parts of your code. Estimating this is not simple and depends on the features used by your application.
Well you may not like this solution, but you could run a windows mobile or windows CE emulator inside of full blown windows (windows 7, 8.1 or 10). Then install and run your application on the emulator.
https://www.microsoft.com/en-us/download/details.aspx?id=16182
Microsoft no longer supports VB6 development and support from Microsoft has already stopped. But VB6 applications still run on Windows 8.1. See also this article titled "Support Statement for Visual Basic 6.0 on Windows Vista, Windows Server 2008, Windows 7, Windows 8 and Windows 8.1".
When would a VB6 application stop running on Windows? Is there any official statement from Microsoft or any clue about the same?
EDIT:
In this link, the Visual Studio team has mentioned that, "It will be supported at least through 2024". But it's not clear whether they said it's supported in Windows 8 till 2024 or in future release of windows OS too.
The "2024" means as part of Windows 8. The link says the VB6 runtime is part of Windows and therefore will be supported in the same way as the rest of Windows. For example Windows 8 will be supported until 2024 because that's the support lifecycle for Windows 8.
EDIT: Microsoft have now said the VB6 runtime is officially part of Windows 10 too.
EDIT: the VB6 IDE (not runtime) is no longer officially supported on any version of Windows, but there are ways to get it to work on Windows 7 and 8.
Uservoice: The VB6 runtime it is still a component of the Windows operating
system and is a component shipped in Windows 8.1. It will be supported
at least through 2024
It seems clear they mean VB6 will be supported through 2024, not just VB6 on Windows 8 (whose mainstream support ends 6 years earlier anyway).
The VB6 programming language installs and runs on Windows 7, 8.x and 10.
There is a utility to install it here: VB6 IDE install utility
It is in Microsoft's interests for VB6 applications to run in Windows 10 and so they probably will. The same is probably true of most old application frameworks: Microsoft works hard to maintain compatibility. The IDE runs on Windows 7 (not sure about 8 or 10).
However, just because Microsoft says VB6 will run it doesn't mean your particular application will work, particularly if you use third party components. You should at least be thinking about migrating to another development environment.
From what I heard, VB6 applications still work on Windows 10 technical preview. I've seen no official statement yet, but it would seem that VB6 will stay supported for at least a few years.
Microsoft have just stated for VB6 programming on Windows 10:-
"Windows is committed to compatibility. The Windows compatibility team
has been looking at user telemetry and reacting to feedback from
Windows Insiders to ensure that existing apps work well with Windows
10. Windows 10 is designed to run Windows 8.1 and Windows Phone 8.1 software programs. And yes, everyone’s favorite VB6 Runtime will
continue to work, too. In the near future, the compat team will go
more in-depth on this topic on Blogging Windows."
Everyone's favorite VB6 programming on Windows 10
So VB6 programming will work on Windows 10, as does VBA programming.
They also state that 'Project Centennial' Universal Windows Platform Bridge will work with VB6 code.
Instructions for installing the VB6 IDE are available here...
In my personal experience if you build a dll in VB6 and add it as a component to COM Plus in Server 2016 it just won't add. You will get an error such as the following, even for a 'Hello World' component.
A registry value was changed while installing the following component
into a COM+ Application. If you are experiencing activation problems
with this component then please check the registry value for the
following key.
Component: C:\temp\Project1.dll
Registry Key:
CLSID\{D5DE8D20-5BB8-11D1-A1E3-00A0C90F2731}\InProcServer32
Process Name: RunDll32.exe Comsvcs.dll file version: not loaded
There is a project to provide a new language "RADBasic" which is intended to be compatible with the VB6 programming language.
New language compatible with VB6 programming
Looks like Microsoft just extended VB6 runtime support out to Windows 11 and Server 2022. No such luck for the IDE though.
Read more from Microsoft here:
https://learn.microsoft.com/en-us/previous-versions/visualstudio/visual-basic-6/visual-basic-6-support-policy
I ported my windows phone7 application to windows 8(just copy paste the xaml and c# code in visual studio 2012->new->project->WPFApplication) and made changes in UI sizes.The problem is the .exe file(after building wpf application) runs only in the system with .NET framework installed.I want to run my application in all system running windows(7(32/64),xp,vista).I am newbie to windows application basically wp7 developer.Thank u.
If you really want to port a windos phone 7 app to windows 8, You should go through the following resources. They provide most of the information.
http://msdn.microsoft.com/en-us/library/windows/apps/hh465136.aspx
http://leventoz.wordpress.com/2012/03/07/moving-a-windows-phone-app-to-windows-8-a-case-study-part-1/
http://leventoz.wordpress.com/2012/03/11/moving-a-windows-phone-app-to-windows-8-a-case-study-part-2/
WPF is a part of the .NET framework, so you can't write a WPF application that can run without the framework on the machine.
If you want to create a binary that run on the classic windows runtime you can't use WPF/C#/VB etc.
Best thing if you want to port your Windows Phone app to Windows 8 is to create a Microsoft Store app, File > New Project > Blank App in VS2012. The app won't run on anything except Windows 8 but the Microsoft Store for Windows 8 is probably the best place to have your app if it's ported from Windows Phone.
Migrating application to WP7 is not that easy as it sounds. There is lot of different APIs and also limited async/await in WP7 when using this extension.
I would probably recommend starting with this MSDN article. It describes basic problems and challenges and also contains useful namespace and API mapping:
Migrate/port a Windows Phone 7 app to a Windows Store app
I'm a big fan of "Pure Win32 API Code". I use Windows 7 Ultimate SP1 and I'm surprised with it's Ribbon UI. Can we do that in Pure Win32 API? I don't mind complex coding... I use Code::Blocks with MinGW, installed with TDM-GCC 4.6.1_1. Please help...
Ribbon is available as a native control in Windows 7 and Windows Vista with Platform Upgrade installed. The API is COM-based (like many other recent API additions).
See Windows Ribbon Framework in MSDN for complete documentation.
I got that working. I removed MinGW and installed Windows 7 SDK. Code::Blocks integrates well with it. Now I'm enjoying new APIs in Windows 7. Thanks everyone for your answers.
I have an old VB6 application that depends on MSINET.OCX. I'd like to know if I can distribute this application without registering MSINET OCX component. My target OSes are XP, Vista and Windows 7. Do all of them have this component preinstalled?
See if this information from technet helps you. The short of it seems to be that it does not come preinstalled, it is installed when you install an application that uses it. You will need to include it in your installation.
It's not shipping with the OS. It is however delivered with Visual Basic. You must include it within your application setup. For details on Vista and Win7 support see: Support Statement for Visual Basic 6.0 on Windows Vista, Windows Server 2008 and Windows 7