Commande dos

Résolu
Valmont21 Messages postés 4 Date d'inscription dimanche 24 avril 2011 Statut Membre Dernière intervention 11 mai 2011 - 8 mai 2011 à 01:48
Valmont21 Messages postés 4 Date d'inscription dimanche 24 avril 2011 Statut Membre Dernière intervention 11 mai 2011 - 8 mai 2011 à 19:46
Bonjour,

Voilà, j'a créé des fichiers bat (pour arrêter le pc, faire un chkdsk, SFC /scannow ....), j'ai mis les fichiers sur une clé USB.

Je voudrais créer un programme qui me permette de les centraliser, j'ai donc trouvé cette commande :
shellexecute(Handle,'open','cmd', '/k C:\MonFichierBat.bat',nil,sw_show);

Mais le prob, c'est que je voudrais utiliser ma clé sur plusieurs pc, je ne peux donc pas lui attribuer une lettre; j'ai testé çà, mais evidement çà ne marche pas : shellexecute(Handle,'open','cmd', '/k \SFCSCANNOW.bat',nil,sw_show);

Pouvez-vous m'aider à trouver une commande sans préciser la lettre de la clé ? si c'est possible ! ou sinon me donner la commande pour lancer par exempple un SFC /SCANNOW directement dans Delphi ?

Merci par avance

3 réponses

f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
8 mai 2011 à 15:27
tu peux aussi utiliser ExtractFilePath sur ParamStr(0) de ton application :

exemple :

structure des répertoires :

MonAppli.exe
.\Bats\
.\Bats\Chkdsk.bat
.\Bats\Copy.bat
.\Bats\Shutdown.bat


dans le programme :

var
  BatDir : string= 'Bats\';
  PrgDir : string;

procedure Execute(aCommande: string);
begin
  shellExecute(0, 'open', 'cmd.exe', PChar(aCommande), PChar(BatDir), SW_SHOW);
end;

procedure TForm1.Form1Create(Sender: TObject);
begin
  PrgDir := ExtractFilePath(ParamStr(0));
  BatDir := PrdDir + BatDir;

  assert(DirectoryExists(BatDir), 'Fichiers de commandes introuvables.');
end;


en sachant que tu n'est pas obligé de passer par des fichiers .bat!

________________________________________________________
besoin de câbles audio, vidèo, informatique pas cher ?
3
dubois77 Messages postés 675 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 19 février 2019 14
8 mai 2011 à 11:22
Salut

Si pas d'autres solution proposée, Tu peux toujours faire comme cela :

if FileExiste('C:\MonFichierBat.bat') then shellexecute(Handle,.... );
if FileExiste('D:\MonFichierBat.bat') then shellexecute(Handle,.... );
...


Dubois77
0
Valmont21 Messages postés 4 Date d'inscription dimanche 24 avril 2011 Statut Membre Dernière intervention 11 mai 2011
8 mai 2011 à 19:46
super, merci de vos réponses, vous m'avez débloqué
a+
0
Rejoignez-nous