12

I want to invent a new mime-type and associate it to a custom application in the browser to enable users to launch my app from a web page. The users of my secure web site are in a closed-environment, meaning this is not a general-purpose, mainstream application - I can configure their browser ahead of time.

Spoon.net does something very similar to enable launching virtualized applications using their mini-kernel plugin.

One of the answers to this question alluded to this method, without details for how to accomplish it.

How do I achieve this in a cross-platform manner on Chrome and IE 8/9? Is there a way to do the mime-type association through browser extensions, either native or through crossrider? How does an app like Adobe Reader or Apple Quicktime achieve this? I want to avoid touching the registry if possible.

What are the risks associated with this method? My site is an intranet web application secured with a certificate and trusted by my users. Any reason I should not go down this path?

EDIT: Apparently this can be achieved in Firefox by manipulating the mimeTypes.rdf file.

EDIT: It looks like JDIC is a Java-based mechanism that could be used for the same thing. Is there a similar non-Java construct? Maybe in Javascript?

Community
  • 1
  • 1
retrodrone
  • 5,850
  • 9
  • 39
  • 65
  • 1
    I don't know much about this, but I've seen some apps use a custom url scheme, like callto: for skype That may be a simpler option? – grapefrukt Jun 07 '11 at 15:31
  • Yeah, based on the question I linked it sounds like that is a custom protocol, requiring an associated app to be running when that url is followed. I was hoping to avoid that, instead let the browser / extension recognize a MIME-type and fire up the app. I'm trying to minimize client-side installation and resource usage if possible. Good suggestion, though! – retrodrone Jun 07 '11 at 15:39
  • Information about registering protocols can be found [here](http://kb.mozillazine.org/Register_protocol). This may be the route I go, but I'd really like to know how to do it with a custom mime-type. – retrodrone Jun 07 '11 at 16:18

2 Answers2

13

It looks like it can be done via a registry change on windows.

[HKEY_CLASSES_ROOT\.atom]
    @="atom_file"

[HKEY_CLASSES_ROOT\atom_file]
    @="Atom Syndication Program"

[HKEY_CLASSES_ROOT\atom_file\shell]

[HKEY_CLASSES_ROOT\atom_file\shell\open]

[HKEY_CLASSES_ROOT\atom_file\shell\open\command]
    @="\"C:\\AtomHandler\\handle.exe\" %1"

[HKEY_CLASSES_ROOT\MIME\Database\Content Type\application/atom+xml]
    "Extension"=".atom"

Further reading on Windows...

And here's how to do so on Linux.

Use xdg-utils from freedesktop.org Portland

Community
  • 1
  • 1
Jason
  • 4,897
  • 2
  • 33
  • 40
1

I often want to associate a new file type with being a text file. The safest and quickest way of doing this is:

A. Create the file type in Registry if it doesn't already exist

  • Windows -> Search for RegistryEditor -> Open
  • Right-Click HKEY_CLASSES_ROOT -> New -> Key
  • Name the key the same as the extension (e.g. .txttt)
  • Click on the newly created key (e.g. HKEY_CLASSES_ROOT -> .txttt) -> Right-click on (Default) in the right pane -> Modify -> Set to the following values:

(Default) REGSZ txtfile

  • Right-click on the newly created key (e.g. HKEY_CLASSES_ROOT -> .txttt) -> New -> String -> Set to the following values:

ContentType REG_SZ text/plain

  • Right-click on the newly created key (e.g. HKEY_CLASSES_ROOT -> .txttt) -> New -> String -> Set to the following values:

PerceivedType REG_SZ text

B. Associate the file type with a default program

  • Right-click on your file -> Open with -> Choose another app
  • Check "Always use to open with this program"
  • Select the default program

The new file type should open and preview in Windows Explorer with the default text editor program you selected.

Chris Sprague
  • 3,158
  • 33
  • 24