Accueil > > > COMPOSANT : TDBPLINKMAKER CREEZ DES .LNK
COMPOSANT : TDBPLINKMAKER CREEZ DES .LNK
Information sur la source
Description
Je l'avais dit ;)
Bon voila mon 18eme compo, un créateur de *.lnk 99% complet, le dernier % est réussir à ajouter des shortcut/hotkey aux liens créés autres que des simples lettres car CTRL+ALT+R devrait etre possible mais jue ne'y suis pas parvenu encore.
La démo reprends le style de création de raccouric de windows. un .exe de la démo est dispo sur mon site perso pour les flemmards de la compilation avec unité supplémentaire ^^
L'unité StrMan.pas peut etre trouvée ici : http://diabloporc.Free.fr/delphi/
Source
- {
- ################################################################################
- # DBPLINKMAKER #
- ################################################################################
- # #
- # VERSION : 1.0 #
- # FICHIERS : dbpLinkMaker.pas,.dcu,.dcr,.bmp,ReadMe.htm #
- # AUTEUR : Julio P. (Diabloporc) #
- # CREATION : 02 sep 2006 #
- # MODIFIEE : 02 sep 2006 #
- # SITE WEB : http://diabloporc.free.fr #
- # MAIL : juliobox@free.fr #
- # LEGAL : Free sous Licence GNU/GPL #
- # INFOS : Retrouvez moi sur www.delphifr.com : "JulioDelphi" #
- # Lisez le ReadMe.htm ! #
- # #
- ################################################################################
- }
- unit dbpLinkMaker;
-
- interface
-
- uses
- Menus, Windows, SysUtils, Classes, Registry, ComObj, ActiveX, ShlObj;
-
- type
- TShellDir = (sdMenuDemarrer, sdMenuDemarrage, sdMenuProgrammes, sdMesDocuments, sdBureau, sdOnlySubDir);
-
- TCreation = class(TPersistent)
- private
- FCreateDir: Boolean;
- FShellDir: TShellDir;
- FSubdir: String;
- procedure SetSubDir(Value: String);
- public
- published
- property CreateDir: Boolean read FCreateDir write FCreateDir;
- property ShellDir: TShellDir read FShellDir write FShellDir;
- property SubDir: String read FSubDir write SetSubdir;
- end;
-
- TTypeFenetre = (tfNormale, tfAgrandie, tfReduite);
-
- TdbpLinkMaker = class(TComponent)
- private
- FAbout: String;
- FCreation: TCreation;
- FLinkFileName: String;
- FLinkFileTarget: String;
- FIcoFileName: String;
- FIcoFileNb: Integer;
- FParams: String;
- FLaunchDir: String;
- FCommentaires: String;
- // FSHortCut: String;
- FTypeFenetre: TTypeFenetre;
- procedure FSetAbout(const s: string);
- // procedure FSetShortCut(s: string);
- // function FGetShortCut: string;
- protected
- { Déclarations protégées }
- public
- constructor Create(aOwner: TComponent); override;
- destructor Destroy; override;
-
- procedure Execute;
- published
- property About: String read FAbout write FSetAbout;
- property ACreerDans: TCreation read FCreation write FCreation;
- property Commentaires: String read FCommentaires write FCommentaires;
- property DossierDeLancement: String read FLaunchDir write FLaunchDir;
- property FichierACreer: String read FLinkFileName write FLinkFileName;
- property FichierALinker: String read FLinkFileTarget write FLinkFileTarget;
- property FichierIcone: String read FIcoFileName write FIcoFileName;
- property FichierIconeNb: Integer read FIcoFileNb write FIcoFileNb;
- property Parametres: String read FParams write FParams;
- // property ShortCut: String read FGetShortCut write FSetShortCut;
- property TypeFenetre: TTypeFenetre read FTypeFenetre write FTypeFenetre;
- end;
-
- procedure Register;
-
- implementation
-
- {$R dbpLinkMaker.dcr}
-
- procedure TCreation.SetSubDir(Value: String);
- begin
- if (FSubDir <> Value) and (Value <> '') then
- begin
- IncludeTrailingPathDelimiter(Value);
- FSubDir := Value;
- end;
- end;
-
- constructor TdbpLinkMaker.Create(aOwner: TComponent);
- begin
- inherited Create(aOwner);
- FCreation := TCreation.Create;
- FCreation.CreateDir := True;
- FLinkFileName := 'Nouveau Lien';
- fAbout := 'v1.0 par Julio P. (Diabloporc)';
- end;
-
- destructor TdbpLinkMaker.Destroy;
- begin
- FCreation.Free;
- inherited Destroy;
- end;
-
- procedure TdbpLinkMaker.FSetAbout(const s: string);
- begin
- //
- end;
- {
- function TdbpLinkMaker.FGetShortCut : string;
- begin
- result := FShortCut;
- end;
-
- procedure TdbpLinkMaker.FSetShortCut(s : string);
- begin
- FShortCut := s;
- end;
- }
- procedure TdbpLinkMaker.Execute;
- var
- ShellObj: IUnknown;
- ShellLnk: IShellLink;
- PersistFile: IPersistFile;
- FileName: WideString;
-
- Reg: TRegistry;
- RegStr: String;
- i: Integer;
- begin
- Reg := TRegistry.Create;
- with Reg do
- try
- RootKey := HKEY_CURRENT_USER;
- OpenKey('\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders', True);
- case FCreation.FShellDir of
- sdMenuDemarrer: RegStr := 'Start Menu';
- sdMenuDemarrage: RegStr := 'Startup';
- sdMenuProgrammes: RegStr := 'Programs';
- sdMesDocuments: RegStr := 'Personal';
- sdBureau: RegStr := 'Desktop';
- else RegStr := '';
- end;
- if RegStr<>'' then
- RegStr := IncludeTrailingPathDelimiter(ReadString(RegStr)) + IncludeTrailingPathDelimiter(FCreation.FSubDir)
- else
- RegStr := IncludeTrailingPathDelimiter(FCreation.FSubDir);
- except
- end;
- Reg.Free;
-
- if FCreation.FCreateDir then ForceDirectories(RegStr);
-
- ShellObj := CreateComObject(CLSID_ShellLink);
- ShellLnk := ShellObj as IShellLink;
- PersistFile := ShellObj as IPersistFile;
-
- with ShellLnk do
- begin
- case FTypeFenetre of
- tfAgrandie: i := sw_ShowMaximized;
- tfReduite: i := sw_ShowMinNoActive;
- else i := sw_ShowNormal;
- end;
- SetArguments(PChar(FParams));
- SetDescription(PChar(FCommentaires));
- SetPath(PChar(FLinkFileTarget));
- SetWorkingDirectory(PChar(FLaunchDir));
- SetShowCmd(i);
- //SetHotkey(TextToShortCut(FShortCut));
- if fIcoFileName <> '' then
- SetIconLocation(PChar(fIcoFileName),fIcoFileNb);
- end;
-
- FileName := RegStr + FLinkFileName + '.lnk';
- PersistFile.Save(PWChar(FileName), False);
- end;
-
- procedure Register;
- begin
- RegisterComponents('Diabloporc', [TdbpLinkMaker]);
- end;
-
- end.
{
################################################################################
# DBPLINKMAKER #
################################################################################
# #
# VERSION : 1.0 #
# FICHIERS : dbpLinkMaker.pas,.dcu,.dcr,.bmp,ReadMe.htm #
# AUTEUR : Julio P. (Diabloporc) #
# CREATION : 02 sep 2006 #
# MODIFIEE : 02 sep 2006 #
# SITE WEB : http://diabloporc.free.fr #
# MAIL : juliobox@free.fr #
# LEGAL : Free sous Licence GNU/GPL #
# INFOS : Retrouvez moi sur www.delphifr.com : "JulioDelphi" #
# Lisez le ReadMe.htm ! #
# #
################################################################################
}
unit dbpLinkMaker;
interface
uses
Menus, Windows, SysUtils, Classes, Registry, ComObj, ActiveX, ShlObj;
type
TShellDir = (sdMenuDemarrer, sdMenuDemarrage, sdMenuProgrammes, sdMesDocuments, sdBureau, sdOnlySubDir);
TCreation = class(TPersistent)
private
FCreateDir: Boolean;
FShellDir: TShellDir;
FSubdir: String;
procedure SetSubDir(Value: String);
public
published
property CreateDir: Boolean read FCreateDir write FCreateDir;
property ShellDir: TShellDir read FShellDir write FShellDir;
property SubDir: String read FSubDir write SetSubdir;
end;
TTypeFenetre = (tfNormale, tfAgrandie, tfReduite);
TdbpLinkMaker = class(TComponent)
private
FAbout: String;
FCreation: TCreation;
FLinkFileName: String;
FLinkFileTarget: String;
FIcoFileName: String;
FIcoFileNb: Integer;
FParams: String;
FLaunchDir: String;
FCommentaires: String;
// FSHortCut: String;
FTypeFenetre: TTypeFenetre;
procedure FSetAbout(const s: string);
// procedure FSetShortCut(s: string);
// function FGetShortCut: string;
protected
{ Déclarations protégées }
public
constructor Create(aOwner: TComponent); override;
destructor Destroy; override;
procedure Execute;
published
property About: String read FAbout write FSetAbout;
property ACreerDans: TCreation read FCreation write FCreation;
property Commentaires: String read FCommentaires write FCommentaires;
property DossierDeLancement: String read FLaunchDir write FLaunchDir;
property FichierACreer: String read FLinkFileName write FLinkFileName;
property FichierALinker: String read FLinkFileTarget write FLinkFileTarget;
property FichierIcone: String read FIcoFileName write FIcoFileName;
property FichierIconeNb: Integer read FIcoFileNb write FIcoFileNb;
property Parametres: String read FParams write FParams;
// property ShortCut: String read FGetShortCut write FSetShortCut;
property TypeFenetre: TTypeFenetre read FTypeFenetre write FTypeFenetre;
end;
procedure Register;
implementation
{$R dbpLinkMaker.dcr}
procedure TCreation.SetSubDir(Value: String);
begin
if (FSubDir <> Value) and (Value <> '') then
begin
IncludeTrailingPathDelimiter(Value);
FSubDir := Value;
end;
end;
constructor TdbpLinkMaker.Create(aOwner: TComponent);
begin
inherited Create(aOwner);
FCreation := TCreation.Create;
FCreation.CreateDir := True;
FLinkFileName := 'Nouveau Lien';
fAbout := 'v1.0 par Julio P. (Diabloporc)';
end;
destructor TdbpLinkMaker.Destroy;
begin
FCreation.Free;
inherited Destroy;
end;
procedure TdbpLinkMaker.FSetAbout(const s: string);
begin
//
end;
{
function TdbpLinkMaker.FGetShortCut : string;
begin
result := FShortCut;
end;
procedure TdbpLinkMaker.FSetShortCut(s : string);
begin
FShortCut := s;
end;
}
procedure TdbpLinkMaker.Execute;
var
ShellObj: IUnknown;
ShellLnk: IShellLink;
PersistFile: IPersistFile;
FileName: WideString;
Reg: TRegistry;
RegStr: String;
i: Integer;
begin
Reg := TRegistry.Create;
with Reg do
try
RootKey := HKEY_CURRENT_USER;
OpenKey('\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders', True);
case FCreation.FShellDir of
sdMenuDemarrer: RegStr := 'Start Menu';
sdMenuDemarrage: RegStr := 'Startup';
sdMenuProgrammes: RegStr := 'Programs';
sdMesDocuments: RegStr := 'Personal';
sdBureau: RegStr := 'Desktop';
else RegStr := '';
end;
if RegStr<>'' then
RegStr := IncludeTrailingPathDelimiter(ReadString(RegStr)) + IncludeTrailingPathDelimiter(FCreation.FSubDir)
else
RegStr := IncludeTrailingPathDelimiter(FCreation.FSubDir);
except
end;
Reg.Free;
if FCreation.FCreateDir then ForceDirectories(RegStr);
ShellObj := CreateComObject(CLSID_ShellLink);
ShellLnk := ShellObj as IShellLink;
PersistFile := ShellObj as IPersistFile;
with ShellLnk do
begin
case FTypeFenetre of
tfAgrandie: i := sw_ShowMaximized;
tfReduite: i := sw_ShowMinNoActive;
else i := sw_ShowNormal;
end;
SetArguments(PChar(FParams));
SetDescription(PChar(FCommentaires));
SetPath(PChar(FLinkFileTarget));
SetWorkingDirectory(PChar(FLaunchDir));
SetShowCmd(i);
//SetHotkey(TextToShortCut(FShortCut));
if fIcoFileName <> '' then
SetIconLocation(PChar(fIcoFileName),fIcoFileNb);
end;
FileName := RegStr + FLinkFileName + '.lnk';
PersistFile.Save(PWChar(FileName), False);
end;
procedure Register;
begin
RegisterComponents('Diabloporc', [TdbpLinkMaker]);
end;
end.
Conclusion
Comme d'hab, si vous parvenez a l'améliorer, optimiser, vous trouvez des bugs, dites le moi ici ou juliobox@free.fr
merci a vous
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
help !! comment excuté un raccourci *.lnk svp [ par tsainvet ]
bonjours !!je suis nouveau dans le monde de la programation et apres avoir je l'avous récuperer quelque source sur le site pour apprendre !!je me dé
.lnk et opendialog [ par emmanuelgo ]
salut a tous,j'ai un morceau de code qui permet de récupérer dans une listview les chemins et noms des fichiers que l'utilisateur chois
Récupérer la cible d'un raccourci [ par fgsav ]
Bonjour à tous et merci de vous intéresser à mon problème Je suis en quelque sorte en train de reproduire le comportement de l'out
Raccourci .lnk du bureau Windows [ par phephelavi ]
Bonjour à tous !Voilà, j'ai besoin pour le développemnt de mon logiciel de trouver du code qui me permet de savoir quel raccourci bureau à le focus !
racourci d'un lien [ par eclems ]
Bonsoir voila j'ai fait une fonction pour que aulieu de metre le nom de mon site dans une Tedit comme ca :='http://www.eclems68.hbg.fr/dossier'; je
openpicturedialog et raccourci.lnk [ par cLapp ]
bo'your ! ça ne semble pas avoir été soulevé ; c'est peut-être juste à moi que ça arrive... Bref, le composant openpicturedialog plante, sérieusement
comment faire le lien entre TQUERY et TDATABASE [ par sharifcrd ]
sharif bonjour tout le monde je charche à lier un composant tquery avec un composant tdatabase
impossible de telecharger un lien avec tidhttp.get [ par aroslide ]
Bonjour j'ai un probleme entre tidhttp et différents liens que je cherche à sauvegarder sur un disque dans l'hypothese de faire un telechargeur d'imag
création raccourci [ par senv ]
Bonjour, J'ai créé une listview et lorsque je l'édite, je fais appel à l'évènement onEdited. Tout cela fonctionne bien comme je veux. Le problème, c
|
Derniers Blogs
CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT)CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT) par FREMYCOMPANY
Bonjour à tous, Je viens de publier une proposition comprenant 5 pseudo-classes pour le CSS Working Group ayant trait à l'état de chargement d'un élément (ex: IMG,VIDEO,AUDIO,OBJECT pour l'HTML.). Si le c½ur vous en dit, vous pouvez retrouver cette p...
Cliquez pour lire la suite de l'article par FREMYCOMPANY MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ?MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ? par ROMELARD Fabrice
Formation initiale Durant la formation, le découpage classique est le suivant (je donnerai les équivalences Suisse lorsque je les connaîtrais) : Ecole primaire jusqu'au Collège : Formation générale permettant d'obtenir les méthodes...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice Y'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENTY'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENT par Aleks
Quand on a ce genre d'erreur sans log :
Et bas on a juste envie de choper le gas de Microsoft qu'a développé ça et lui foutre des baffes de Coboye ! ...
Cliquez pour lire la suite de l'article par Aleks [HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL[HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL par Pierrick CATRO-BROUILLET
Avec la sortie prochaine de la Beta Consumer Preview de Windows 8, j'avais envie de revenir sur une des fonctionnalités que j'attends le plus et que, en bon geek que je suis, j'utilise déjà : Hyper-V 3 ainsi son module PowerShell.
Il y a déjà pléthor...
Cliquez pour lire la suite de l'article par Pierrick CATRO-BROUILLET IIS7 - COMPRESSION GZIPIIS7 - COMPRESSION GZIP par cyril
La compression GZIP permet d'améliorer les performances de navigation en compressant ce qu'envoie le serveur à un client. Pour comprendre comment cela fonctionne, regardons ce qu'il se passe au niveau HTTP lorsqu'un client tente d'accéder à une ress...
Cliquez pour lire la suite de l'article par cyril
Logiciels
Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning Academy System (17.1.3.0)ACADEMY SYSTEM (17.1.3.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|