'Drag and drop' app
BlitzMax Forums/BlitzMax Programming/'Drag and drop' app| 
 | ||
| As the topic title suggests, I would like to create a 'drag and drop' application. Ie. I would like to be able to drag a text file onto a blitzmax .exe and have the .exe open the file and make some changes. Is there anyway to force blitzmax into automatically opening it? | 
| 
 | ||
| When you drag-n-drop, the file name will be passed to blitzmax in AppArgs[]. SuperStrict
Local Filename:String
If AppArgs.length = 2
	Filename = AppArgs[1]
Else
	Filename = RequestFile("Load TXT file")
End If
If Filename
	Local Stream:TStream = ReadStream(Filename)
	If Stream
		While Not Eof(Stream)
			Local a:String = ReadLine(Stream)
			Print a
		Wend
	End If
	CloseStream Stream
End If
	
Delay(10000) | 
| 
 | ||
| That's interesting. Is there a way to check that the arguement supplied is for a filename other than trying to open it? | 
| 
 | ||
| If FileType( Dir:String ) = FILETYPE_FILE | 
| 
 | ||
| That's not exactly what I mean. Let's say my program can open files by either dragging and dropping on the exe, or by running it from a console window and providing it with arguements that way. If I give it a valid file path in each method, how can my program tell by which way it got that file name? | 
| 
 | ||
| You can't, really, but why would that matter? | 
| 
 | ||
| I'm a pedant. :( | 
| 
 | ||
| Well, you can check AppArgs[0], if it is "Full/Path/To/Program/ProgramName.exe", then it is most likely drag-n-drop since most people don't type the entire path when running from a console. |