begin process at 2012 02 11 02:57:51
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Système

 > 

Exécution

 > 

aide Libc.system


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

aide Libc.system

mercredi 13 février 2008 à 17:37:44 | aide Libc.system

yannfrance

Bonjour,

Pour qu'il n'y est pas de conflit, je tiens à precisez que je ne suis pas avec delphi, mais Lazarus sous une debian.

Voila; pour moi executer un programme via mon logiciel, j'utilise Libc:
Voici un exemple:

procedure Bouton1;
begin
  Libc.system(pchar('/monrepertoire/' + Edit1.text'));//Lancer depuis Edit
 
  end;
end


le prog externe s'execute sans problème, cependant, ma Form reste bloquer tant que l'application externe n'est pas quitter.
Donc, plus acces au autre fonction de ma form.
Avez vous une parade pour ce genre de problème ?

ps: Je repete que je suis sous Lazarus Linux.

Merci beaucoup

jeudi 14 février 2008 à 03:45:39 | Re : aide Libc.system

f0xi

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !

alors je ne suis pas specialiste du tout de linux, mais je pense qu'il doit y'avoir quelque part un equivalent a shellexecute sous win32.

tu devrait chercher une telle commande qui prendrais en compte les parametres speciaux d'execution par rapport a l'appelant :
execute et attend la fin (modal)
execute et reviens (libre)


trouvé non sans mal :
SysUtils.TProcess
[ Lien ]

"You can use TProcess to launch external programs. Some of the benefits of using TProcess are that it is:

  • Platform Independent
  • Capable of reading from stdout and writing to stdin.
Note: TProcess is not a terminal/shell! You cannot directly execute scripts or redirect output using operators like "|", ">", "<", "&" etc."

Vous pouvez utiliser TProcess pour lancer un programme externe. Les benefices qu'apporte l'utilisation de TProcess sont :
- Independance de la platforme (non dependant d'un systeme)
-  capable de lire/ecrire via stdout et stdin

Note : TProcess n'est pas un terminal/shell! vous ne pouvez pas executer directement des script ou rediriger les sorties en utilisant les operateurs du style [...]


deefsign.gif
jeudi 14 février 2008 à 13:25:52 | Re : aide Libc.system

Oniria

Bonjour,

FOXI a bien trouvé le truc, il faut utiliser un TProcess qui se trouve dans la barre d'outils de lazarus. En cherchant dans le wiki de lazarus, tu trouveras facilement comment faire.

Oniria
jeudi 14 février 2008 à 15:28:31 | Re : aide Libc.system

yannfrance

Bonjour tous,

Alors là, je dit super exellent, je tire mon chapeau.
Tres puissant comme composant.
J'ai trouver tous de suite comment l'adapter à mon projet.
Car en faite, il me sert à executer des scripts qui sont générer par mon prog.

procedure TForm1.Button1Click(Sender: TObject);
  var T:TextFile;
  AProcess: TProcess;
begin
  AssignFile(T, '/home/' + Edit1.text);
     Rewrite(T);
        WriteLn(T, '#!/bin/sh');
        WriteLn(T, 'cd /etc/camfrogserver.d');
        WriteLn(T, 'camfrogserver ' + Edit1.text + '.conf ' + Edit1.text + '.adv');

         CloseFile(T);
        
          AProcess := TProcess.Create(nil);
           AProcess.CommandLine := '/home/' + edit1.text;
            AProcess.Options := AProcess.Options + [poNewConsole];
            AProcess.Execute;
             AProcess.Free;

Donc, le poNewConsole me permet de lancer mon script dans une nouvelle console ce qui as pour but de ne plus buger mon application.

Merci beaucoup, ca fait toute la difference
jeudi 14 février 2008 à 21:27:01 | Re : aide Libc.system

f0xi

Membre Club Administrateur CodeS-SourceS

alors par contre, une petite suggestion quand a l'utilisation de TProcess, tu devrait faire comme cela :

with TProcess.Create(nil) do
try
  CommandLine := ...
  Options := ...
  Execute;
finally
  Free;
end;

cela evite de declarer une variable et en plus d'etre sur que TProcess sera libéré en cas de probleme sur Execute.


deefsign.gif


Cette discussion est classée dans : aide, system, externe, libc, lazarus


Répondre à ce message

Sujets en rapport avec ce message

Utilisation de libc sous kylix [ par Folber ] Bonjour,j'ai un petit problème, je souhaite intégrer une aide dans une programme, mais je ne vois rien pour afficher du texte mis en forme, donc j'ai Comment lancer une application sous Kylix? [ par Folber ] Bonjour,j'ai un petit problème, je souhaite intégrer une aide dans une programme, mais je ne vois rien pour afficher du texte mis en forme, donc j'ai DateTimePicker [ par sopi ] Bijour,J'utilise dans un des mes programmes un DateTimePicker. Cependant j'aimerais bloquer la sélection d'une date inférieure à la date du jour ou au besoin de conseils pour l'utilisation d'images a l'aide d'une webcam [ par abeilles ] Bonjour,voila j'ai besoin de vos services,en fait je débute la programmation sur delphi et j'ai besoin de faire une application avec. En fait je conna Demande d'aide d'un débutant [ par kisscool_30 ] Salut a tous.Voila je suis en stage depuis une semaine sur Delphi c'est la premiere fois que je l'utilise.Je voudrai pouvoir declarer et initialiser d demande aide pour une representation graphique d'une courbe en miliseconde [ par ludolechinois ] je cherche un exemple de programme qui afficherait des donnees type temperature sous forme de courbe et dont l'axe X serait en miliseconde.Ensuite je ajouter l'icone d'aide sur la caption d'une fenetre retaillable [ par ericamiens ] bonjour,j'ai créé une fenetre avec le borderstyle bssizeable (fenetre retaillable standard) et avec les bordericons [biSystemMenu,biMinimize,biMaximiz aide [ par calou87 ] caloubonjour comment générer un nombre aléatoire dans un panelen cliquant ssur un bouton.merci de votre aide. Besoin d'aide avec les labels [ par Programmeur1987 ] Je veut, dison que j'ai x label dans ma form et un text box et un button, bon je veut que j'aye a écrire dans mon edit le nom d'un label et quand je c Aide Création Multithread [ par Dani79 ] Salut a tout le monde,j'essaie de développer un programme qui me permettrait de de communiquer et transferer des fichiers simultanément à travers de 8


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,448 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales