You can use the TrID tool which has a growing library of file type definitions for identifying files with.
Wildcards are supported, so in your example you could just put all the images to be examined in a folder, e.g. C:\verifyimages - then you can use the command:
trid C:\verifyimages\*
This will examine all files in the verifyimages
folder.
There is also a GUI version available, TrIDNet:
There is documentation available on how you can you can easily integrate TrID or TrIDNet into Windows Explorer and Total Commander:
Windows Explorer
Total Commander
That's cause you didn't register your file type correctly. Well, technically, you didn't register your "application" correct.
http://msdn.microsoft.com/en-us/library/cc144148(v=vs.85).aspx#fa_register_type\
You registered .int correctly. .int
says to call intfile
. intfile however is where you put in the application that handles the file! So Shellex goes looking into intfile
and all it finds is a string in the default field. So the operation fails.
Since you want string there, you have to supply the Shell with a default verb to execute. Under the intfile
create shell\open\command. Enter the full path to your application, for example, "%ProgramFiles%\Notepad++\Notepad++.exe" "%1".
FileName is the Full path to the file you want to make a copy, so you need "%windir% and not WINDOWS.
Edit
I can't believe I'm condoning this method. . .
But I don't know of any way to add this without writing a program. . .
edit2:
Ok here we go.
Key .int
has Default(SZ)
= intfile
and Context Type(SZ) = plain.text
. Under Key .int
, you'll have subkey Shellnew
. The default should be empty. Make a new empty string (Reg_SZ) and for the value put in the filename: `C:\windows\ShellNew\NewLocalization File'.
Under intfile
make the default New Localization File.
Note the lack of double quotes. Now intfile
needs the following subkeys: shell
, make it's Default = open
. Next, make subkey open
under shell.
Now make subkey command
under open.
Put the full path of the program under the string with quotes. ie "c:\Program Files (x86)\Notepad++\notepad++.exe" "%1"
. Note there are double quotes.
Edit:3
So it looks like the OP ran into an unknown issue and solved it this way.
Hrm ok figured it out! You were right mostly, and I was right a little. The problem was I had opened the file once and set the default program to notepad++ in the pop up dialogue. This created a key called int_auto_file. I went through the registry, very time consuming, and deleted all references to the .int extension. After that I rebuilt them and now it works perfectly.
Best Answer
In short: you make your own file extension by applying whatever letters you want to the end of the file name. You run it by telling your OS what program should be called when you double-click on it.
Full explanation:
A file extension is actually just the letters after the file, there is nothing magical about the extension. A lot of files I have made when I'm on my Linux machines I have forgotten to even put the file extension on.
That being said, in Windows the file extension is how Windows determines what the file is. If you change the file extension of a
.mp3
for example to a.png
Windows will think it is a picture when it tries to open it. What Windows does is it looks at the extension and sends the file to an appropriate program related to that file. so .mp3 gets sent to iTunes,.png
gets sent to Paint,.html
gets sent to Firefox/Chrome, and.docx
gets sent to Word.In terms of the creation of these files, they fall into two categories. There are plain text files (
.html
,.txt
,.java
,.py
,.cpp
,.config
,.xml
) and then there are binary data files (.exe, .mp3, .png) (well, and then there are mixes of binary and plain text like.docx
, but they can be treated like binary files). When you are dealing with plain text files (it is plain text if Notepad can open it) it is very easy to do. Depending on your programming language you basically just open a file and read/write strings to the file. With binary files, it gets a little more complicated, but the principle remains the same, you are reading/writing bytes from a file.To make a file of a particular type executable (by double-clicking on it) is probably the hardest step depending on your programming language. If it is C or C++, you simply point Windows to your .exe and Windows sends the file you wish to open as the second argument in args to your program's main method. In Java or Python, it is still doable, but you'll have to work out some sort of workaround to get Windows to open the run-time environment or interpreter and send the file argument to the program.