Solved

Running programs

Posted on 2000-02-26
8
169 Views
Last Modified: 2010-04-04
Hi!

Maybe it's an easy question, but anyway... how can i run a program when my application starts?

That program could be a com, exe or a batch (.bat) file.

Thank you
0
Comment
Question by:janez
  • 2
  • 2
  • 2
  • +2
8 Comments
 
LVL 1

Expert Comment

by:cobramania
ID: 2561825
Use  WinExec for simple execution:

procedure TForm1.Button1Click(Sender: TObject);
begin
     if (WinExec('C:\Progra~1\GrIP\GripInit.exe', SW_SHOWNORMAL)<32) then
        MessageDlg('You dont have GripInit.exe',mtError,[mbOK],0);
end;

Change to Form Show event if you want the program executed when your program run.

Hope this helps :)
0
 

Author Comment

by:janez
ID: 2562252
For cobramania:

Hi! Your answer is excellent and i'll evaluate it, but i'd like to ask you something else. How can I run a program with patameters, for example: "arj.exe x archive.arj" ?

Thank you
0
 

Expert Comment

by:yingkit
ID: 2562322
Hi, try the following:

uses shellapi;
.......
procedure TForm1.Button1Click(Sender: TObject);
begin
     ShellExecute(0, 'open', PChar(arj.exe), pchar('x archive.arj'), nil, SW_NORMAL);
end;
0
Courses: Start Training Online With Pros, Today

Brush up on the basics or master the advanced techniques required to earn essential industry certifications, with Courses. Enroll in a course and start learning today. Training topics range from Android App Dev to the Xen Virtualization Platform.

 

Author Comment

by:janez
ID: 2562393
Sorry yingkit, i have to reject your answer, because i promised to cobramania to evaluate his answer. Really sorry again!

0
 
LVL 1

Accepted Solution

by:
cobramania earned 30 total points
ID: 2562548
Hi, since i thought you don't need any paramater so i pasted the previous code....
Here's the complete code of mine with the parameter:

procedure TForm1.Button1Click(Sender: TObject);
begin
     if (WinExec('C:\Progra~1\GrIP\GripInit.exe -ge -ke', SW_SHOWNORMAL)<32) then
        MessageDlg('You dont have GripInit.exe',mtError,[mbOK],0);
end;

take a look at the "-ge" and "-ke" parameters

Hope this helps :)
0
 
LVL 1

Expert Comment

by:titz
ID: 2573778
hi,
you can do the same with CREATEPROCESS.
if wanted i can give you an example.

cheers
titz
0
 

Expert Comment

by:zeno_rummler
ID: 2596587
I don't know what operating system you are programming for.
The WinExec function is available just for compatibility to the 16-bit systems!!
To start a program, use - like mentiones before - ShellExecute oder
CrateProcess.
I found out, that ShellExecute is more stabel, when you change the OS.
Running at win9x, Win NT 4.0 won't start the programm and creates an ACCESS_DENIED ERROR
0
 

Expert Comment

by:zeno_rummler
ID: 2596595
Sorry, I forgot:
The parameters for these function are described in
win32.hlp of delhi3

:)

Zeno
0

Featured Post

Live: Real-Time Solutions, Start Here

Receive instant 1:1 support from technology experts, using our real-time conversation and whiteboard interface. Your first 5 minutes are always free.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

A lot of questions regard threads in Delphi.   One of the more specific questions is how to show progress of the thread.   Updating a progressbar from inside a thread is a mistake. A solution to this would be to send a synchronized message to the…
Introduction I have seen many questions in this Delphi topic area where queries in threads are needed or suggested. I know bumped into a similar need. This article will address some of the concepts when dealing with a multithreaded delphi database…
This video shows how to quickly and easily add an email signature for all users on Exchange 2016. The resulting signature is applied on a server level by Exchange Online. The email signature template has been downloaded from: www.mail-signatures…
Nobody understands Phishing better than an anti-spam company. That’s why we are providing Phishing Awareness Training to our customers. According to a report by Verizon, only 3% of targeted users report malicious emails to management. With compan…

785 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question