---
title: "Delphi frågor"
type: "forum-thread"
url: "https://www.webforum.nu/amne/programmering/27864-delphi-frågor"
topic: "Programmering"
topic_url: "https://www.webforum.nu/amne/programmering"
author: "Alvar s"
published: "2001-01-08T18:22:00.000Z"
updated: "2001-01-10T09:55:00.000Z"
replies: 5
views: 390
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/programmering/27864-delphi-frågor"
---

# Delphi frågor

## #1 — Alvar s, 2001-01-08T18:22Z

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 )

Permalänk: https://www.webforum.nu/p/27864

## #2 — jt, 2001-01-09T07:43Z

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.

Permalänk: https://www.webforum.nu/p/400552

## #3 — the proclaimer, 2001-01-09T17:32Z

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

Permalänk: https://www.webforum.nu/p/400553

## #4 — Alvar s, 2001-01-09T18:39Z

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

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

Permalänk: https://www.webforum.nu/p/400554

## #5 — WiNNe, 2001-01-10T08:03Z

1) Varför inte bara använda funktionen renamefile istället. Mycket lättare :)
ex.
renamefile ('c:\\test.exe' , 'c:\\test2.exe);

Permalänk: https://www.webforum.nu/p/400555

## #6 — jt, 2001-01-10T09:55Z

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\]

Permalänk: https://www.webforum.nu/p/400556

---

Tråden på webben: https://www.webforum.nu/amne/programmering/27864-delphi-frågor
