Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : aide Libc.system [ Système / Exécution ] (yannfrance)

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é 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...

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 0,28 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.