Bonjour,
voire:
Comment allez vous depuis le temps?
Bon voilà, je suis en train de faire un petit programme pour automatiser un certain nombre de taches et faire une interface visuelle un peu sympa.
Bon, je lance des programmes externes depuis mon interface (Debugview de sysinternals par exemple)
Alors si je fais
Code : Sélectionner tout - Visualiser dans une fenêtre à part ShellExecute(Handle,'open',Pchar(DbgView.exe),Pchar('/l c:\tutu.txt'), nil , SW_SHOW);
Tout se passe bien, DebugView se lance et log les messages de debug dans tutu.txt
Par contre , j'ai voulut paufiner pour pouvoir choisir le fichier log
J'ai donc fait ceci
Bon il ya aquelque chose qui m'echappe, je pensais avoir fait les choses bien mais on dirait bien que je mesuis trompé quelque part.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 var argument:Pchar; log_file:string; begin if savedialog1.Execute then log_file:='/l '+savedialog1.FileName; //jusqu'ici tout va bien disons que j'ai log_file:='/l c:\test.txt' argument:=StrAlloc (length(log_file)+1); //j'alloue l'espace StrPcopy(argument,log_file);//je copie ma string dans le Pchar //ici argument a bien l'air de contenir '/l c:\test.txt' ShellExecute(Handle,'open',Pchar(DbgView.exe),argument, nil , SW_SHOW); //<--- Debugview ne se lance pas, cette ligne ne marche pas... si je mets argument en dur ca marche StrDispose(argument);
Par esprit de programmation statistiquej'ai quand meme essayé Pchar(argument) et aussi @argument
![]()
J'avoue secher...
Merci de votre attention![]()
Partager