Windows Explorer Drag and Drop for CLI Arugments

P

Patrick Kramer

I'm building a file format converter for someone who at best takes more
than his fair share of IT helpdesk hours :D

So I want to make it as simple as possible. What I want it to do is,
run:

program.exe file.txt

When I drop file.txt onto the executable file. In other words, take
whatever file dropped onto the executable as the second CLI arugment.

I don't know how this works, but I have seen it before with the OggDrop
Encoder, where you drop your audio file onto the executable and it
outputs an .ogg encoded file. I've also seen it in pure CLI
executables.. But from working with the OggDrop Source I dont see
anything that would allow me to do what they are doing. And the other
utilities are closed source, so no luck there.

Any Insights, Help or Misc. Commentary would be greatly appreciated.
 
M

mlimber

Patrick said:
I'm building a file format converter for someone who at best takes more
than his fair share of IT helpdesk hours :D

So I want to make it as simple as possible. What I want it to do is,
run:

program.exe file.txt

When I drop file.txt onto the executable file. In other words, take
whatever file dropped onto the executable as the second CLI arugment.

I don't know how this works, but I have seen it before with the OggDrop
Encoder, where you drop your audio file onto the executable and it
outputs an .ogg encoded file. I've also seen it in pure CLI
executables.. But from working with the OggDrop Source I dont see
anything that would allow me to do what they are doing. And the other
utilities are closed source, so no luck there.

Any Insights, Help or Misc. Commentary would be greatly appreciated.

That's an OS issue, not so much a programming issue, and so it's
off-topic here. The C++ question would be related to argc and argv, and
if you need help with that, just ask.

Cheers! --M
 
M

Marcus Kwok

Patrick Kramer said:
I'm building a file format converter for someone who at best takes more
than his fair share of IT helpdesk hours :D

So I want to make it as simple as possible. What I want it to do is,
run:

program.exe file.txt

When I drop file.txt onto the executable file. In other words, take
whatever file dropped onto the executable as the second CLI arugment.

I don't know how this works, but I have seen it before with the OggDrop
Encoder, where you drop your audio file onto the executable and it
outputs an .ogg encoded file. I've also seen it in pure CLI
executables.. But from working with the OggDrop Source I dont see
anything that would allow me to do what they are doing. And the other
utilities are closed source, so no luck there.

Any Insights, Help or Misc. Commentary would be greatly appreciated.

<off-topic>
There is no special facility needed, as long as your program handles
argc/argv properly. If you drag and drop files onto the program, it
will pass each file as a command line parameter. Try dragging files
onto this program:



#include <iostream>
#include <string>

int main(int argc, char* argv[])
{
if (argc < 2) {
std::cout << "no files!\n";
}
else {
// argv[0] is probably program name, so skip it
for (int i = 1; i < argc; ++i) {
std::cout << argv << '\n';
}
}

// to pause the screen
std::cout << "\n\nPress <Enter> to quit.\n";
std::string trash;
std::getline(std::cin, trash);

return 0;
}


</off-topic>
 
P

Patrick Kramer

That's what I needed..

I wrote an exploratory program that excepted CLI arguments in command
prompt and then ouputed the file as output.txt. It worked within the
command prompt, but didn't do anything when I dragged and dropped to
the executable in windows.

I figured I was doing something wrong (apparently :D).. But I'll just
work off the code you submitted, as It does exactly what I want.

Thanks.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,055
Latest member
SlimSparkKetoACVReview

Latest Threads

Top