webForumDet fria alternativet

Delphi frågor

5 svar · 365 visningar · startad av Alvar s

Alvar sMedlem sedan mars 2000398 inlägg
#1

1: Hur byter man namn på filer från ett program? ( om jag t ex vill byta namn på c:\test.exe till c:\test2.exe )

2: Kan jag lägga en fil i ett program och sen lägga den t ex i c:\windows\sendto med nån kod?

3: Hur gör man för att länka till en annan program fil? ( t ex C:\WINDOWS\SYSTEM\Msconfig.exe )

------------------
One technique mastered is better than one hundred sampled.

jtMedlem sedan juni 2000350 inlägg
#2

1.
var
f : file;
begin
AssignFile(f, 'c:\test.exe');
Rename(f, 'c:\test2.exe');

osäker på vad du menar med dina andra frågor.

the proclaimerMedlem sedan aug. 200088 inlägg
#3

ska man tolka fråga 2 som att du vill skapa en genväg i SendTo mappen?

Vill du helt enkelt starta msconfig.exe så kan du använda dig av ShellExecute(); annars förstrår jag nog inte vad du menar...

Alvar sMedlem sedan mars 2000398 inlägg
#4

2: Ja :) Men det skulle vara bra att veta för vilken fil som helst..

3: Exakt hur använder man ShellExecute(); ? :)

------------------
One technique mastered is better than one hundred sampled.

WiNNeMedlem sedan maj 2000192 inlägg
#5
  1. Varför inte bara använda funktionen renamefile istället. Mycket lättare :)
    ex.
    renamefile ('c:\test.exe' , 'c:\test2.exe);

------------------
winne.net

jtMedlem sedan juni 2000350 inlägg
#6

Winne:
Vill man göra det lätt för sig så bör man nog använda renamefile ;).

Genväg:
Hittade en unit på disken som borde fixa detta. Eftersom jag sparat den antar jag att den funkar. Du kan ju testa.

Om allt funkar så borde koden bli
CreateShortcut('c:\minfil.exe',_SENDTO);

unit ShortcutUnit;

interface

uses
Registry, ShlObj, ActiveX, ComObj, Sysutils;

type
ShortcutType = (_DESKTOP, _QUICKLAUNCH, _SENDTO, _STARTMENU);

procedure CreateShortcut(FileName: string; Location: ShortcutType);

implementation

procedure CreateShortcut(FileName: string; Location: ShortcutType);
{ proc to create a shortcut on the desktop or startmenu. }
var
MyObject: IUnknown;
MySLink: IShellLink;
MyPFile: IPersistFile;
Directory, LinkName: string;
WFileName: WideString;
MyReg, QuickLaunchReg: TRegIniFile;
begin
MyObject := CreateComObject(CLSID_ShellLink);
MySLink := MyObject as IShellLink;
MyPFile := MyObject as IPersistFile;

MySLink.SetPath(PChar(FileName));

MyReg :=
TRegIniFile.Create('Software\MicroSoft\Windows\CurrentVersion\Explorer');
try
LinkName := ChangeFileExt(FileName, '.lnk');
LinkName := ExtractFileName(LinkName);
case Location of
_DESKTOP: Directory := MyReg.ReadString('Shell Folders', 'Desktop','');
_STARTMENU: Directory := MyReg.ReadString('Shell Folders', 'Start Menu', '');
_SENDTO: Directory := MyReg.ReadString('Shell Folders', 'SendTo', '');
_QUICKLAUNCH:
begin
QuickLaunchReg :=
TRegIniFile.Create('Software\MicroSoft\Windows\CurrentVersion\GrpConv');
try
Directory := QuickLaunchReg.ReadString('MapGroups', 'Quick Launch', '');
finally
QuickLaunchReg.Free;
end;
end;
end;

if Directory <> '' then
begin
WFileName := Directory + '\' + LinkName;
MyPFile.Save(PWideChar(WFileName), False);
end;
finally
MyReg.Free;
end;
end;

end.

[Redigerat av WiNNe den 11 jan 2001]

131 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)