Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

DIR2DOS - POUR OUVRIR CMD.EXE DIRECTEMENT SUR LE RÉPERTOIRE UTILE.


Information sur la source

Catégorie :Système Classé sous : registre, msdos, contextuel, explorateur, utilitaire Niveau : Initié Date de création : 21/07/2006 Vu / téléchargé: 10 041 / 372

Note :
5 / 10 - par 3 personnes
5,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (8)
Ajouter un commentaire et/ou une note

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

  • 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.
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 :)
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de elguevel le 21/07/2006 11:40:14

Ouai çà laisse un peu sur sa fin ...

Cà se résume à ajouter des clés dans le registre (ou les virer) pour avoir le menu contextuel sur le programme et à :

"ShellExecute(0, 'OPEN', PChar('Cmd.exe'), Nil, PChar(ExtractFilePath(Data2)), SW_SHOW);"

signaler à un administrateur
Commentaire de cirec le 21/07/2006 11:52:50 administrateur CS

Salut,

on pourrait faire plus simple ... non ?

Tu mets ceci dans le registre
(où dans un fichier texte avec l'extention .REG et tu DblClique dessus):
[HKEY_CLASSES_ROOT\Directory\shell\cmd]
@="Ouvre une Fenêtre de Commande ici"
[HKEY_CLASSES_ROOT\Directory\shell\cmd\command]
@="cmd.exe /k \"cd %L\""

Et il ne te reste plus qu'a faire un contextuel sur un dossier (dans explorer par Ex.)
et de choisir "Ouvre une Fenêtre de Commande ici" et le tour est joué ...

Pas besoin de programme pour cela un simple fichier text avec ces quatre lignes et tu lui donne l'extention .REG et tu double clique dessus. (même pas besoin de Delphi :-))

Bonne continuation ...

@+
Cirec

signaler à un administrateur
Commentaire de elguevel le 21/07/2006 11:56:23

http://www.regfr.com

signaler à un administrateur
Commentaire de cirec le 21/07/2006 12:05:08 administrateur CS

Salut Elguevel,
je suis au regret de t'apprendre que ton lien est mort ... :-)
@+
Cirec

signaler à un administrateur
Commentaire de GenEars le 21/07/2006 14:21:10

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é ;)

signaler à un administrateur
Commentaire de elguevel le 21/07/2006 14:25:16

LoooL c'est pas un lien mort ... c'est une connerie que j'ai ecrite.

Au lieu de www.DelphiFr.com j'ai ecrit www.RegFr.com pour ironisé sur la situation, et oui un simple *.reg suffit à faire ce que fait ce programme :-)

Désolé pour mon humour ...

signaler à un administrateur
Commentaire de japee le 04/08/2006 13:47:03 administrateur CS

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... ;-)

signaler à un administrateur
Commentaire de elguevel le 04/08/2006 14:43:53

Désolé quand meme .. :-D

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Registre [ par Shadow ] Salut, je veux que la caption de mon label sois dans le registre mais j arrive pas a lire dans le registre pour afficher la caption que je veux!!!!!!! composant de l'explorateur [ par vib ] Bonjour,Quelqu'un pourrit il me dire ou trouver le composant qui liste les fichiers dans l'explorateur et qui permet d'un simple clic sur l'entête de base de registre [ par eedy31 ] Je sais que dans le style casse couille ,on fait pas mieux que moi,mais j'ai ENCORE une question!Comment on fait pour ecrire dans la base registre(c p Ouvrir depuis l'explorateur [ par nirousse ] Toujours pour mon éditeur de texte, Je n'arrive pas à faire pour que quand je mets dans l'explorateur windows "ouvrir avec" mon éditeur, la page s'aff Registre [ par sebastienbro ] J'aimerais savoir comment écrire dans la valeur par défaut d'un clé (celle intitulé (Défaut))merci ecrire des data dans registre [ par crogger ] Salut, je voudrai arriver à ecrire dans la base registre des informations de type DATA...par exemple, une fois détérminé le chemin etc... pouvoir ecri Accès base de registre !!! [ par scott114 ] Debutant Delphi !!Comment puis-je recuperer une serie de clef de la base de registre et inscrire les dites clefs et leurs valeurs dans un fichier text Registre : prob avec HKEY_CURRENT_USER [ par Bruto ] Salut,je migre de vb vers delphi et je rencontre qq prob's. Je me crée des outils sur la base de registre mais mon compilateur m'indique qu'il ne reco Registre : récupère l'ensemble des clés d'une clé [ par Bruto ] Dans mon programme, l'utilisateur choisit un mot par exemple aléatoire et je crée une clé portant le même nom dans un clé spécifique.Il y a donc possi Raccourci dans le menu contextuel [ par MyC ] Bonjour, je cherche le moyen de pouvoir effectuer divers actions sur un fichier ou pouvoir le lancer dans une application, en cliquant sur des élément


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,390 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.