When opening a file using default program in windows..

Started by
3 comments, last by ArunHaridas 11 years, 3 months ago

I made a small video player and I want my video player to be the default program for opening video files.

Does the video file's name become the argument(char** argv) to my program? (Windows)

An invisible text.
Advertisement

You would have to modify the registry to have it open with your program. You can do this yourself on your own machine you will need to create an installer program of some sort to do it on other people's machines (and in most cases may need to run the installer as admin to write to the correct registry locations.). When you create the registry entries you can set what arguments it will send to your program, I think the default setup if you just right click, open with your program would be the same as calling "C:\full\path\to\myprogram.exe C;\full\path\to\video.mpg" or whatever the case may be from the console (dos) window.

http://msdn.microsoft.com/en-us/library/windows/desktop/cc144154(v=vs.85).aspx

Dan Mayor

Professional Programmer & Hobbyist Game Developer

Seeking team for indie development opportunities, see my classifieds post

Right click on a video file, hover over open with, choose your programs execution file, and check "Make this your default program". No need for registry editing :)!

I'm a game programmer and computer science ninja !

Here's my 2D RPG-Ish Platformer Programmed in Python + Pygame, with a Custom Level Editor and Rendering System!

Here's my Custom IDE / Debugger Programmed in Pure Python and Designed from the Ground Up for Programming Education!

Want to ask about Python, Flask, wxPython, Pygame, C++, HTML5, CSS3, Javascript, jQuery, C++, Vimscript, SFML 1.6 / 2.0, or anything else? Recruiting for a game development team and need a passionate programmer? Just want to talk about programming? Email me here:

hobohm.business@gmail.com

or Personal-Message me on here !

Does the video file's name become the argument(char** argv) to my program? (Windows)
If you compiled as a console program then your main function's prototype should be something like:

int main(int argc, char** argv);

The argc is the ARGument Count. The argv is the ARGument Values.

argv[0] is the name of your executable (the program's own file name).
argv[1] is the first command-line argument
argv[2] is the second command-line argument

etc. The command-line arguments are separated by spaces, except when enclosed by double quotes:

myprog -play my test video.mp4

argc[0] -> myprog
argc[1] -> -play
argc[2] -> my
argc[3] -> test
argc[4] -> video.mp4

myprog -play "my test video.mp4"

argc[0] -> myprog
argc[1] -> -play
argc[2] -> my test video.mp4

If you compiled the program as a windows program then your entry point prototype looks something like:

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow);

hInstance is the instance handle for your program, which is required by some functions. This is incidentally the base address of the module in memory, but that's trivia. You can also get this value by calling GetModuleHandle(0).

hPrevInstance is typically not used and is shrouded in ancient secrets kept by a select order of monks who never leave the basement of the Redmond campus.

lpCmdLine is a pointer to your command line, excluding the program itself.

nCmdShow is just something to pass to ShowWindow() if you want. It has the indicated user preference for how the window should be shown at program start (start minimized, etc).

lpCmdLine is something like this:

Typed at command line:

myprog -play my test video.mp4

Contents of lpCmdLine:

-play my test video.mp4

In other words, it's everything that came after the program name except for the first space.
void hurrrrrrrr() {__asm sub [ebp+4],5;}

There are ten kinds of people in this world: those who understand binary and those who don't.

Create a batch file and write code like this

@echo off

assoc .mpeg=YourVPlayer

assoc .mp4=YourVPlayer

assoc .mp3=YourVPlayer

assoc .wav=YourVPlayer

[Write all the extensions that your software supports

type YourVPlayer=[Your software exe file path]

save as anyname.bat

You can use in you vedio player setup file or SFX file and run it automatically after installation

I think usefull.

Arun Haridas

This topic is closed to new replies.

Advertisement