How to unbind a Microsoft .OBD file? - windows-7

I can't seem to find any way to open an old .OBD file. Our company has around a hundred of these binders that were created a long time ago by another company that we took over. They were created using Office 97 on some old machines that don't exist any more.
Our current machines run Windows 7 or later, with Microsoft Office 2010 and later. Is there a way to open these .OBD files? I've tried the Unbind.exe program that some people mentioned on other forums, but it won't run in Windows 7 with any compatibility settings. 7-zip was able to sort of look into the binders, but the files that were extracted aren't readable by any Office software.
We looked into using pywin32 to talk through COM and use Office to do the unbinding automatically, but we still need some program to actually do the unbinding.
Does anyone have any solutions? Thanks.
EDIT: I figured out the problem. The unbind.exe application (available from Microsoft) works, but only when run in a 32-bit OS. Using compatibility mode from a 64-bit OS doesn't seem to work. I was able to use a virtual machine on our servers that was set up for something else. If you don't have a 32-bit environment handy, I'm not sure on how to get around this.

I had 4 Microsoft binder (*.obd) files I wanted to open and didn't have access to a 32bit Windows computer. Please note that this method does not retain the original file names of the documents. Using Windows 10 64 bit I used 7Zip to extract the obd files to folders. Inside the folders were subfolders numbered 1, 2, 3 etc. In the subfolders were data files called WordDocument, Book and PowerPoint Document. I renamed WordDocument files to filename subfolder.doc, renamed Book files to filename subfolder.xls and renamed PowerPoint Document files to filename subfolder.ppt. Then I opened .doc files in Word 2019 and resaved as .docx files. Then I opened .xls files in LibreOffice Calc v7.2 and resaved as .xlsx files. I didn't have any luck with .ppt files. In my case I had to change Word 2019 protected view settings (File, Options, Trust Center, Trust Center Settings..., File Block Settings, untick Word 2, 6.0 & 95). Hope someone finds this info useful.

Related

How to delete files of same extension in Windows

I am now facing a great problem. I don't know how many files has come to my computer with unknown extensions (such as: .pxv,.cf)
I don't need these files. Can you give any command by which all the files of such extension in my computer will gone forever?

Windows is hacked - All file's extension have changed

We have a Microsoft Windows server, we find all files changed to an extension .ETH file (Specially the AutoCAD files .dwg files).
As the following:
All files converted to .id-26E67253.[helpfilerestore#india.com].ETH.
Also, If I tried to connect any flash USB to the computer, all files inside the USB Drive hacked also.
I just need any suggestion, how can I get my old files, and how can I fix the virus or hacking?
It is a ransomware named Dharma.
Check this link Dharma Ransomware

How to tell VB6 where to find winhlp32.exe

I maintain a large VB6 application I would like to be able to install on Windows 10. It has a large Help file in WinHelp format. I would like to distribute winhlp32.exe (and winhlp32.exe.mui) with the application rather than replace the winhlp32.exe file in the Windows 10 Windows folder. If I put (an old) winhlp32.exe file in the application folder in Windows 10, and file winhlp32.exe.mui in a subfolder named en-US, the help file works if I enter the command "winhlp32.exe myhelpfile.hlp" in the application folder. However if I run the application exe (created by VB6), and press F1, it runs the Windows 10 winhlp32.exe stub, not the winhlp32.exe in the application folder.
Can anyone suggest how to persuade the VB6 application (before or after compiling it) to use winhlp32.exe from the application folder instead of the Windows folder?
The short story - you may be warned and you know in all it's a heavy task to migrate your VB6 app maybe without reaching a simple way for migrating WinHelp to HTMLHelp.
The official recommendation (10 years old):
Forget about WinHelp, it's history and migrate to CHM help file format.
But, maybe you already have found my answer (search for Run WinHelp on Windows10) and read all further links:
How to convert HLP files into CHM files
Please note a tool called HHPMod especially for migrating context-sensitive F1 help.
I tried the WinHelp of an old VB6 program before and after the fix from above and it is working for me on Windows 10 (Version 1803).
Another solution you may want to try (depends on your deploy and IT environment):
Windows Help Program (WinHlp32.exe) for Windows 8.1 and Windows 7 x64 and x86
Quoted from this article (thanks to Komeil Bahmanpour):
"Please note users who have tried to replace winhlp32.exe manually in Windows folder and winhlp32.exe.mui in Windows\en-US folder of Windows 7, was faced with overwrite restrictions due to ownership and permission problems."
Additional information:
I may well be wrong, but I believe that also (old) online help files are usually copyrighted as part of Microsoft Windows. Distributing the files would normally constitute a violation of copyright law (as you mentioned in your question).
AFAIK developers are not allowed to distribute the Vista version of WinHlp32.exe or included it in their installations. Every individual user who wants to use WinHelp must download the WinHelp update directly from Microsoft and install it themselves.
Help for applications has been .chm for many many years now. Microsoft released the tool HH Workshop (HTMLHelp SDK 1.4) around 1997. Around March 2006 during discussions with MVPs, Microsoft Help team announced that WinHelp would be deprecated (phased out). WinHelp is architected in such a way that Microsoft would have to rewrite it from the ground up to meet the Windows Vista code standards. Since then .CHM has been the only choice for our application help.
What does this mean (please note we are about ten years later now!):
WinHelp runtime (WinHelp32.exe) no longer ships with Windows Vista/7/8/10
ISVs (Independant Software Vendors) should stop promoting WinHelp as a viable help system.
Help authors should move over to HTML Help 1.x (.chm) if they haven't done so already.
HH Workshop is sufficient to author .CHM help files. I'm using a tool with a few more features (drag and drop TOC/Index editing etc) called "FAR HTML". Then there are high-end more expensive tools (you mentioned RoboHelp) that have advanced features such as "convert between different help systems".
Try (untested, but you should get the idea)
Shell App.Path & "\winhlp32.exe myhelpfile"
App.Path gets the executable's current path, so just make sure your winhlp32.exe file is right there with it.

Comprehensive list of programs on different operating systems

How would I get a list of EVERY program into a text file for windows 95-windows 10. The uninstall programs in control panel doesn't have the version and publisher for the older operating systems, and wmic does not display every program. Even the uninstall registry, which I thought would be my savior, does not list every program. I can see discrepancies between that and the uninstall programs tab. Powershell and the like are off the table since it is relatively new.
Some combination of the following:
Enumerate registry for HKEY_CURRENT_USER\Software\Microsoft\CurrentVersion\Uninstall and HKEY_LOCAL_MACHINE\Software\Microsoft\CurrentVersion\Uninstall. And probably HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall on 64-bit os (might be duplicated). These are the list of installed programs that appear in the Control Panel's "Program and Features" section. Notice that some of the entries are straight-forward and have most of the data you want. Others are a GUID - this corresponds to an MSI installation.
For all the entries obtained in #1 that reference a GUID, use the MSI API to find the installation information you seek. Start with MsiEnumProducts. From there you can get at version info of installed applications.
Brute force search for EXEs installed in C:\Program Files and C:\Program Files (x86). For each EXE found, you can use this method to get the version information.
You want a list of applications installed from the Windows Store? Ask me for a code sample if that's important too.
The registry uninstall registration requirements in the 90's was just the display name and the command to start the uninstallation. Windows 2000 added support for more values and exposed them in the new UI but they were still optional. In recent years a couple of them became a requirement to pass the Windows Logo tests but they are still optional for non-certified applications so the uninstall key is not guaranteed to contain version/publisher information for every entry. Portable applications are not listed in the registry so if you need a inventory of everything then you need to inspect all exe files and ignore the registry.
Supporting everything back to Win95 RTM is going to be tough since you have nothing except batch files as a scripting option. VBScript is a optional component that normally gets installed with IE 4 and I don't even remember if it is possible to get Powershell on these systems.
I don't think it is possible to extract the version information with a simple batch file, you probably need the help of a 3rd-party tool. The issue with 3rd-party tools is that a lot of them depend on the Microsoft CRT run-time .DLLs and Windows 95 RTM does not have them out of the box, not even msvcrt.dll.
If you can raise your requirement for Win95 to have Windows Scripting Host installed (redistributable or part of IE4) then you could write a VB/Jscript file that uses the FileSystemObject to both walk the entire directory tree on every drive and to get version information from .exe files.
If that is unacceptable then you need to try to find a tool that can extract version information. There is a Microsoft tool named filever.exe listed here but I don't know if it works on Win95 and a NirSoft tool here but I'm not sure if it supports stdout redirection from the commandline (but it is open source so you could fix that if needed). Even if you find a suitable tool you would still need to walk the directory tree looking for .exe files and that is not going to be fun when you are limited to command.com and its DOS compatible batch handling.
My recommendation is to write a new application. I can't recommend writing it in a .NET language because you would be dealing with versions 1-4 and it is not installed on XP and older by default.
The way I see it, you have 3 options if you are writing it yourself: Visual Basic 6, Delphi (something old, v3 or older perhaps) or C/C++.
For C/C++ any version of Microsoft Visual C++ or MinGW/GCC will do but the older the better and you must not link to or use any C run-time library stuff (you might get away with static linking with MinGW but not recent versions of Visual Studio). If I was doing this I would use Visual Studio 6 or 2003 and build with /Zl & /NODEFAULTLIB. There are multiple small standalone CRT libraries if you need them. If you use any recent version of Visual Studio you will manually have to hex-edit the file to make it run on anything older than XP.
The actual implementation needs to call FindFirstFileA (and friends) on Windows 95/98/ME and FindFirstFileW on other systems to walk the directory tree and GetFileVersionInfoA/W (and friends) to get version info.
If you are feeling fancy you could perhaps filter out files in %WinDir% signed by Microsoft. Good luck...

Creating a new installer for an old VB6 program

Recently my boss told me that he wants a new installer for his program he created in Visual Basic 6 back in 2001, moreover he said "he want's it to be like one of those Adobe installers".
so to make a long story short, for the past few days I've been using everything i could find but none of the solutions I've found(mostly software) yielded any results
To clarify, he specifically told me to do it without the source code of the program
all i have to work with is the programs actual installer (which is not even .msi) the .CAB file of the program and a file folder where he keeps some support files for the actual installation method.
Your old setup is PDW based and should have a Setup.lst file which lists all the files, where and how to install them.
This can easily converted to an Inno Setup script that provides a much nice and more up to date "installation experiance" than the PDW can natively.

Resources