Qbasicnews.com
Chaining to another program. - Printable Version

+- Qbasicnews.com (http://qbasicnews.com/newforum)
+-- Forum: QBasic (http://qbasicnews.com/newforum/forum-4.html)
+--- Forum: QB Discussion & Programming Help (http://qbasicnews.com/newforum/forum-11.html)
+--- Thread: Chaining to another program. (/thread-310.html)



Chaining to another program. - Dex4now - 03-01-2003

Hi all, quite awhile back, before some cracker messed with the forum, I posted a question where I asked if there was some way to use QuickBASIC 4.5 to control another program. There were suggestions of SHELL and CHAIN, with caveats that they probably wouldn't do what I wanted very well, and that was correct, they didn't! Sad

However, not being one to give up, I've still been playing around with this, and came up with this solution. Not exactly elegant, but it works. The following code is a very simplified version of what I actually have, in order to post it in this forum.



Code:
Setup:
  COLOR 7
  CHDIR "C:\"
  file$ = "INTRFACE.BAT"
  mpx$ = "MPXPLAY.EXE -fl -v -bl "
  CLS
  LOCATE 4, 4 : PRINT "Select by number . . ."
  LOCATE 6, 4 : PRINT "1. Maaya Sakamoto - Light of Love"
  LOCATE 8, 4 : PRINT "2. Maaya Sakamoto - 24"
  LOCATE 10, 4 : PRINT "3. Exit program."
  g$ = INPUT$(1)
  IF g$ = "1" THEN mp3$ = mpx$ + "C:\MP3\Litelove.mp3"
  IF g$ = "2" THEN mp3$ = mpx$ + "C:\MP3\24.mp3"
  IF g$ = "3" THEN GOTO Finish
  CLS
  CHDIR "C:\TEMP"
  OPEN file$ FOR OUTPUT AS #1
      PRINT #1, "@echo off"
      PRINT #1, "C:"
      PRINT #1, "CD\"
      PRINT #1, "CLS"
      PRINT #1, mp3$
      PRINT #1, "MP3PLAY.EXE"
  CLOSE
  SHELL "BAT2EXE INTRFACE.BAT>NUL"
  KILL "C:\TEMP\INTRFACE.BAT"
  CHAIN "C:\TEMP\INTRFACE.COM"

Finish:
  CHDIR "C:\"
  KILL "C:\TEMP\INTRFACE.COM"
  CLS
  END

This assumes that you have a C:\TEMP directory and the program BAT2EXE.COM in your path somewhere, preferably C:\DOS. This is a little freeware program that converts batch files to .COM files.

Also, this basic program MUST be run compiled only. (With the program in the root directory.)

Let me know what you think. Smile

Dex

EDIT: BTW - If anyone wants to mess with these, they can be downloaded here:
http://members.aol.com/dex4now2/files/mp3play.bas
http://members.aol.com/dex4now2/files/mp3play.exe


Chaining to another program. - NovaProgramming - 03-08-2003

Can't help ya there, but it looks to me like you're trying to run MP3 files from the looks of things, not transforming BATCH into .COM files... er, But I have NO IDEA how to help you so I am just rambling on heheh


Chaining to another program. - Dex4now - 03-08-2003

Hi Nova; thanks for replying. I don't actually need "help" per se., the above code works perfectly. I just respect the opinions of others in this forum and wondered what others thought of this somewhat "solution" to a problem.

I don't like this solution, however, because it requires writing a "file" that must be deleted. It just doesn't seem . . . elegant!

Smile Dex


Chaining to another program. - Plasma - 03-08-2003

If this is for your car MP3 player, just write the file to a RAM disk; that's what I did. (I used a method similar to yours, but a little simpler)

I finally finished mine, btw...just waiting for my new head unit so I can install it in my car. Pics should be up soon, and I can send you the source code if you'd like.


Chaining to another program. - Dex4now - 03-08-2003

Plasma . . . I'm all ears....LOL

Feel free to "enlighten" me!

My whole system exists "virtually" in my lab, till I get this whole 12 volt thang worked out!

Dex