Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

Problem with shellexecute ?

Posted on 2004-04-07
18
Medium Priority
?
471 Views
Last Modified: 2010-04-05
Hi guys
I use shellexecute to run another application by my program
this instruction success with most of programs , but it is not work well with games programs ,some times don't do anything and another time give me an error
I want to run any program without any problem .

thanks
0
Comment
Question by:peruzzi
  • 9
  • 8
18 Comments
 
LVL 11

Expert Comment

by:shaneholmes
ID: 10779070
Try this

 function CreateProcessSimple(
  sExecutableFilePath : string )
    : string;
var
  pi: TProcessInformation;
  si: TStartupInfo;
begin
  FillMemory( @si, sizeof( si ), 0 );
  si.cb := sizeof( si );

  CreateProcess(
    Nil,

    // path to the executable file:
    PChar( sExecutableFilePath ),

    Nil, Nil, False,
    NORMAL_PRIORITY_CLASS, Nil, Nil,
    si, pi );

  // "after calling code" such as
  // the code to wait until the
  // process is done should go here

  CloseHandle( pi.hProcess );
  CloseHandle( pi.hThread );
end;


SHane
0
 
LVL 11

Expert Comment

by:shaneholmes
ID: 10779086
sorry,

Then call it like - CreateProcessSimple( 'C:\MyApp.exe' );

Shane
0
 
LVL 5

Accepted Solution

by:
Hypoviax earned 60 total points
ID: 10781186
Just a query shane, why would shellexecute not work? In every instance i've tried to run a program it has worked using code such as

shellexecute(handle,'open',pchar(filepath),'','',sw_show);

Regards,

Hypoviax
0
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 

Author Comment

by:peruzzi
ID: 10781702
Hi
Hypoviax, you are right ,its my fault I wrote SW_SHOWNORMAL

thanks for you and thanks for shan
0
 
LVL 11

Expert Comment

by:shaneholmes
ID: 10782670
I dont know, but it looks lke he didn't like your answer either - "B"

<Smile>

Shane
0
 

Author Comment

by:peruzzi
ID: 10785852
sorry shan
but your answer didn't solve my problem
and the bad thing is that the accepted answer didn't work with all applications

I choose the wrong answer to be accepted.

sorry again
0
 
LVL 11

Expert Comment

by:shaneholmes
ID: 10785898
Hmm, what didn't my procedure do?

Could you elaborate more on both Hypoviax's and mine, as to why they didn't work, what you received for any errors, etc.

Shane
0
 

Author Comment

by:peruzzi
ID: 10786024
Hi
your code and Hypoviax's code run the game for part of second and then close without give any error !!!!!

0
 
LVL 11

Expert Comment

by:shaneholmes
ID: 10786104
Is the game a dos game or Windows game?

Shane
0
 
LVL 11

Expert Comment

by:shaneholmes
ID: 10786138
Hey Hypoviax, I guess it doesn't work in every instance.... <SMILE>

"Just a query shane, why would shellexecute not work? In every instance i've tried to run a program it has worked using code such as"

Shane
0
 

Author Comment

by:peruzzi
ID: 10786182
It is windows program like fifa2004
0
 
LVL 11

Expert Comment

by:shaneholmes
ID: 10786317
Well, i have tested my procedure over and over with all kinds of Dos, & windows programs, and it works fine. So does the SHellExecute method of the API. Try it yourself, with some applications on your machine and you will see. There is something else about your program that hasn't been disclosed to us.  

SO its a game like Fifa2002 - you can't tell us what game it is?

Shane
0
 

Author Comment

by:peruzzi
ID: 10806431
Hi guys
I tried to use (winexec function)
it success when I  use opendialog component with this code on the button :

if opendialog1.Execute then
winexec(pchar(opendialog1.FileName),sw_show);

but if I write in the code of button :

winexec(pchar('c:\my game.exe'),sw_show);

the game not work and I see an error message( zsystem defulte output
game release only support packed scenes)

so what you say

I am waiting .............
0
 
LVL 11

Expert Comment

by:shaneholmes
ID: 10806453
Try renaming the Executable (right click choose rename)

from

my game.exe

to

mygame.exe

SHane
0
 

Author Comment

by:peruzzi
ID: 10808654
the problem isn't on space in the exename
because the function do the same wronge with exename don't have space


0
 

Author Comment

by:peruzzi
ID: 10808661
shane , your procedure do the same wronge with the same error message
0
 

Author Comment

by:peruzzi
ID: 10815698
where are you guys

help me
0
 

Author Comment

by:peruzzi
ID: 10821738
Hi guys
stop you search for solution
because I find  where  the problem is

when I try to run the game ,the game start but it try to get its data from the folder of my application
so I use setcurrentdir to go to the folder of game.

I wish you understand me
thanks for your help
0

Featured Post

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

Question has a verified solution.

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

This article explains how to create forms/units independent of other forms/units object names in a delphi project. Have you ever created a form for user input in a Delphi project and then had the need to have that same form in a other Delphi proj…
Objective: - This article will help user in how to convert their numeric value become words. How to use 1. You can copy this code in your Unit as function 2. than you can perform your function by type this code The Code   (CODE) The Im…
Integration Management Part 2
Despite its rising prevalence in the business world, "the cloud" is still misunderstood. Some companies still believe common misconceptions about lack of security in cloud solutions and many misuses of cloud storage options still occur every day. …
Suggested Courses

963 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