Dir2dos - pour ouvrir cmd.exe directement sur le répertoire utile.

Soyez le premier à donner votre avis sur cette source.

Vue 15 528 fois - Téléchargée 672 fois

Description

Cette mini-application sert depuis l'Explorateur Windows à ouvrir une fenêtre de commande MsDOS directement dans le répertoire concerné.
  • L'interface utilisateur sert à Activer/désactiver la fonction Dir2DOS
  • Une fois activée, un click-droit sur un fichier, raccourci ou répertoire propose d'ouvrir la ligne de commande
  • La fonction renvoie au programme Dir2DOS qui interprète le chemin et déclenche le programme Cmd.exe

sur le chemin désigné.

Le tout travaille avec la base de registre... aussi Dir2DOS ne fonctionnera pas pour les comptes sans privilèges suffisants.

Ci-après, le code d'interprétation de la fonction Dir2DOS (le code de l'interface est dans une autre unité) ...

Source / Exemple :


program Dir2DOS;

// =============================================================================
//   Dir2DOS
//
//   Ouverture d'une fenêtre 'Commande MsDOS' sur le chemin désigné par
//   une fenêtre ouverte de l'Explorateur Windows.
//
//   Lionel T. @ www.2Ears.net
//   Juillet 2006
//
// =============================================================================

uses
  Windows,
  Forms,
  ShellApi,
  SysUtils,
  Dir2DosCode in 'Dir2DosCode.pas' {Dir2DOSWindows};

var
  Data1,
  Data2       : String;

{$R *.RES}

// Processus premier :
// Active l'ouverture d'une fenêtre 'Cmd.exe' si '-dir' est en option commande,
// sinon, met en oeuvre la fiche 'Dir2DOSWindows' de commande.

begin
  // Vérification qu'une seule instance de Dir2DOS est active (/Registre)
  SetLastError(NO_ERROR);
  CreateMutex (nil, False, 'Dir2DOS');
  if GetLastError = ERROR_ALREADY_EXISTS then Exit;

  // Initialisation et traîtement des paramètres de la ligne de commande Reg.
  Application.Initialize;
  Application.Title := 'Dir2DOS';

  Data1 := ParamStr(1);

  if Data1 <> '-dir' then begin
     Application.CreateForm(TDir2DOSWindows, Dir2DOSWindows);
     Application.Run;
     end

  else begin
     Data2 := ParamStr(2);
     ShellExecute(0, 'OPEN', PChar('Cmd.exe'), Nil, PChar(ExtractFilePath(Data2)), SW_SHOW);
  end;

end.

Conclusion :


Il n'y aura pas de mises-à-jour de ce programme...

l'exécutable sera bientôt disponible sur mon web...

le code a été compilé sur Delphi v2.0...

et testé sur Win NT et XP.

A la prochaine :)

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

GRAM03
Messages postés
3
Date d'inscription
samedi 29 mars 2003
Statut
Membre
Dernière intervention
15 juillet 2012
-
Pour ecrire dans un Caption sur plusieurs lignes
Utilisez le caractère #13 (Retour Chariot) pour séparer 2 lignes
Label1.Caption := 'Première ligne' + #13 + 'Deuxième ligne';
elguevel
Messages postés
735
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
22 novembre 2016
3 -
Désolé quand meme .. :-D
japee
Messages postés
1708
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
5 octobre 2019
1 -
Salut,

J'ai trouvé les notes assez sévères...
On va plus oser poster ! :(

Je trouve l'étude de ce code plutôt intéressante, ne serait-ce que pour rafraîchir ses connaissances en BDR, ParamStr et autres Mutex...

Bon, pour pinailler, à la place de :

If Reg.KeyExists('*\Shell\Dir2DOS\') then
KeyExists := True
Else KeyExists := False;

j'aurais fait :

KeyExists := Reg.KeyExists('*\Shell\Dir2DOS\');

et deux ou trois bricoles encore, mais chacun son style, hein ?

Moi je le trouve très bon, ton humour, elguevel... ;-)
GenEars
Messages postés
16
Date d'inscription
mercredi 2 novembre 2005
Statut
Membre
Dernière intervention
25 janvier 2008
-
Cirec, bonne approche aussi merci,

sur mon lieu de travail c'était la façon la plus simple d'intégration sur les postes, notamment pour le déploiement : si tu veux bien m'en excuser :)

Elguevel, bon résumé ;)
cirec
Messages postés
3809
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
1 septembre 2019
32 -
Salut Elguevel,
je suis au regret de t'apprendre que ton lien est mort ... :-)
@+
Cirec

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.