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.
5 svar · 367 visningar · startad av Alvar s
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.
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.
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...
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.
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]