begin process at 2010 02 10 05:51:59
  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. modélisation par l'UML et le processus de developpement UP [ par soumia12 ] Salut ,je veut un exemple pratique sur la modélisation par l'UML et le processus de devellopement UPmérci. Autorun [ par ytillang30400 ] Bonjour.Pour activer l'autorun d'un programme sur toutes les sessions, on utilise la clé HKEYLOCALMACHINE... RUNPour l'activer sur la session actuelle PB avec Mapisendmail [ par fbalien ] Bonjourj'ai fait un soft de création de compte user qui une fois le compte créé généré un mail pour indiquer les différentes informationsJ'utilise don calibrage de carte geographique [ par lidia22 ] SALUT,Pour calibrer une carte géographique on peut choisir, par exemple, deux points en donnant leurs coordonnées géographiques et leurs coordonnées s Bloquer URL [ par hurrycane ] salut Je voudrais savoir comment intercepter les requetes d'URL sortantes, DE NAVIGATEUR ---> INTERNET et repondre est ce possible de répondre a ces Problème ShellExecute [ par luluthefirst ] Bonjour à tous, voilà j'ai importer ShellApi dans uses et ensuite je met le code ShellExecuteShellExecute(handle,'open',textbox1.text,nil,nil,SW_MAXIM GetUserName [ par ytillang30400 ] Bonjour. La fonction : "Windows.GetUserName" permet de connaitre le user de la session en cours. Exemple : "MIMI" Mais si je modifie le mom. Exemple " delphi vers excel [ par mtronic ] Comment sauvegarder des données sous un format lisible par excel sans utiliser l'interface OLE.Un exemple a été donné par Mr LinKin dans l'article sur


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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 : 0,484 sec (4)

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