begin process at 2012 02 09 21:33:54
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Delphi

 > 

Archives

 > 

J'AI BESOIN D'AIDE !!!! :O

 > 

passer une variable dans un process


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

passer une variable dans un process

samedi 27 novembre 2004 à 23:10:55 | passer une variable dans un process

Nexxo

Bonjour a tous,

Voila j'essaye de faire un petit programme afin de lancer plusieurs exécutables mais pas tous en meme temps ( c pour cela que j'utilise les processus plutot que schellcommand)
Le lancement de ces programmes s'effectuent via une interface il suffit de les selectionner via une CheckBox si la valeur est à "true " alors..on lance le processus => exemple :

if (Calculatrice.Checked=true)
then
If CreateProcess(Nil, '"calc.exe"', Nil, Nil, False,
0, Nil, Nil, StartInfo,ProcessInfo)

Le probleme est que si j ai 8 programmes alancer j ai fait 8 boucles en disant si la case est cochée lancé tel processus ou tel autre..
Afin d'optimiser le code et que le rajout de logiciels a cocher soit plus simple Ma question est la suivante:

J'avais pensé par exemple stocker le nom du processus dans une propriété du Checkbox par exemple HInt. Puis ajouter tout ca dans un Tstring et ensuite les lire au fur et a mesure..
Mais comment faire appel a ces parametres lors de la declaration du processus?
Exemple pour la calculatrice si :
Calculatrice.Hint :='calc.exe comment le mettre dans le processus?

If CreateProcess(Nil,(Calculatrice.Hint) , Nil, Nil, False,
0, Nil, Nil, StartInfo,ProcessInfo)

Ne marche pas par exemple..
J'espere ne pas avoir été trop dans le détail afin de ne pas brouiller le poste.
Enfin si vous avez des questions plus précises ou solutions .
Merci de me faire signe
samedi 27 novembre 2004 à 23:34:08 | Re : passer une variable dans un process

Delphiprog

Administrateur CodeS-SourceS
Ne fais pas trop attention au reste du code et la solution est tout simplement :
Dans le cas de l'utilisation de la propriété Hint d'un contrôle visuel, le deuxième argument est alors:
PChar(TControl(Sender).Hint)
Ci-dessous, le bouton Button1 a sa propriété Hint affectée à ce que l'on veut (calc.exe par exemple).

procedure TForm1.Button1Click(Sender: TObject);
var
StartupInfo: TStartupInfo;
ProcessInfo: TProcessInformation;
begin
FillChar (StartupInfo, SizeOf(StartupInfo), #0);
StartupInfo.cb := SizeOf(StartupInfo);
StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow := SW_SHOWNORMAL;

if CreateProcess(nil, PChar(TControl(Sender).Hint), nil, nil, False,
CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil, nil, StartupInfo,
ProcessInfo) then
begin
WaitforSingleObject (ProcessInfo.hProcess, INFINITE);
CloseHandle (ProcessInfo.hProcess);
CloseHandle (ProcessInfo.hThread);
end;
end;

Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
May Delphi be with you
dimanche 28 novembre 2004 à 01:38:24 | Re : passer une variable dans un process

Nexxo

Salut Delphiprog,

Merci c'est exactement ce que je cherchais et cela va me simplifier la vie pour la suite de mes programmes :)
J'ai tout de même encore une question. Le "problème" de cette technique que je voulais utiliser au depart est que les boucles sont toujours malheuresement présentes pour chaque programme que je souhaite installer. Donc je te soumets une idée si tu pouvais me dire ce que tu en penses.

1°) Je declare une Tstring
- ListeNom:TStringList;

2°) Je compte le nombre de Checkbox et si elle est à True alors je l'ajoute dans le Tstring
Donc declaration de=> ACheckBox:TCheckBox;

Code:

For Index := 0 to componentCount-1 do
if (Components[Index] is TCheckBox) then
begin
ACheckBox := TCheckBox(Components[Index]);

if (AcheckBox.Checked = true)
then ListeNom.Add(ACheckBox.Hint)
end;

3°) Enfin je pensais ( et c'est ici ou je coince ) faire une boucle pour les processus et ainsi intérroger la Tstring List qui contiendra les diffrents processus à éxécuter...

L'avantage de cette technique ?
La souplesse du code qui me permettrait dans le cadre d'un rajout d'un logiciel dans la liste à rajouter juste une Checkbox et c tout sans avoir besoin de rerentrer dans le code et de recréer une boucle pour cette future application.

D'avance merci si tu pouvais m'eguyer
Et encore Merci pour ta réponse
dimanche 28 novembre 2004 à 11:30:03 | Re : passer une variable dans un process

Delphiprog

Administrateur CodeS-SourceS
Question subsidiaire : peux-tu me dire si tu souhaites gérer la persistance ?
May Delphi be with you
dimanche 28 novembre 2004 à 13:55:42 | Re : passer une variable dans un process

Nexxo

Salut,

Débutant dans le Delphi , je t'avouerais que je ne sais pas vraiment le fonctionnement de la persistance. Je développe actuelement sous Delphi 6 Personnel, la persistance est elle gérée?
Ainsi, je vais te dire "non" pour l'instant pour la persistance mais si je sais après comment cela fonctionne, peut etre que je le mettrais en place.
dimanche 28 novembre 2004 à 14:16:50 | Re : passer une variable dans un process

Delphiprog

Administrateur CodeS-SourceS
La persistance n'est pas propre à Delphi.

La persistance consiste à stocker les valeurs en dehors de l'application pour pouvoir les retrouver lors d'une nouvelle session.

En clair, souhaites ressaisir les noms et chemins des applications associées à chaque case à cocher à chaque fois que tu lances ton logiciel ou souhaites-tu les voir réapparaître automatiquement ?

May Delphi be with you
dimanche 28 novembre 2004 à 14:31:44 | Re : passer une variable dans un process

Nexxo

Salut,

Le chemin de l'application n'est normalement pas nécessaire puisque tout sera dans le même répertoire c'est pour cela que je voulais stocker par exemple dans Mozilla.Hint = le nom de l'application à exécuter ( mozillasetup.exe), de même pour d'autres logiciels etc..
Donc à ta question, je dirais les voir apparaitre automatiquement
Merci
dimanche 28 novembre 2004 à 14:36:49 | Re : passer une variable dans un process

Delphiprog

Administrateur CodeS-SourceS
Ok, je te prépare ça rapidement...
May Delphi be with you
mercredi 1 décembre 2004 à 22:51:53 | Re : passer une variable dans un process

Delphiprog

Administrateur CodeS-SourceS
Une archive avec un projet répondant à la demande est disponible ici.
J'attends tes observations.
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
May Delphi be with you
mercredi 1 décembre 2004 à 23:09:32 | Re : passer une variable dans un process

Nexxo

Salut Delphiprog,

Je tenais à te remercier pour la rapidité et l'efficacité dont tu as fait preuve pour me livrer ce code très complet.
Maintenant je vais pouvoir grâce à celui ci comprendre le principe de TSring et autres fonctions.

Je te suis entièrement reconnaissant et je te tiens au courant par mp de l'évolution de mon projet ou précisions sur le code...

Encore Merci :))

Cordialement
Nexxo

1 2

Cette discussion est classée dans : exemple, processus, hint, calculatrice, nil


Répondre à ce message

Sujets en rapport avec ce message

classe TService :Application Service et lancement d'executable [ par zorg724 ] Bonjour, j'ai créé un service window (programme qui tourne en tache de fond- icone 'service' dans le menu nouveau->application sous delphi : Classe TS Process group [ par User8 ] Bonjour tout le monde, Je rencontre actuellement un problème pour la suppression de processus. Je serai donc fort intéressé par un petit coup de main. fermer fenetre DOS apres fin processus [ par skiso ] j'utiliser cette fonction pour excuter mon programe sous dos : CreateProcess(nil,PChar('cmd.exe /k go.exe '),nil,nil,True,0,nil,nil,Si,Pi); et cette impossible accéder au fichier ...utilisé par un autre processus [ par Gerard ] Bonjour, J'ai développé un serveur sur lequel les gens viennent jouer au bridge. De temps à autre, le serveur crache une erreur 'Le processus ne peut trouver son programme sur le reseau [ par cyber37 ] Salut, En faite je me demandais [b][u]juste le principe de fonctionnement[/u][/b] (pour l'exemple des cameras IP's par exemple) comment le logitiel fo un "hint" dans un DbGrid [ par Lunasoft ] Salut! Avant que je pose ma question, je montre les codes que j'ai écrit juste pour vous demander de m'aider comment le resultat de cette opération p Est ce filtrable ça??? [ par leader2000 ] Salut! C'est curieux, j'ai eu une chose sur laquelle je me suis demandé si c'est faisable en Delphi. Dans un edit, j'ai écrit par exemple un nombre d Envoi email via shellexecute [ par PhilLU ] Bonjour, Je souhaite envoyer un email avec une pièce attachée via shellexecute: ShellExecute(Self.Handle, nil, PChar(Format(MailToStr, [VarEMail, Va


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 : 1,248 sec (4)

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