Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.09.2017, 11:38   #1
Мирсаидов Некбахт
 
Регистрация: 02.09.2017
Сообщений: 8
По умолчанию удалить и копировать файл с рабочего стола с помощью программы Delphi

Я хочу, чтобы подготовить программу, которая при нажатии на кнопку, удалить файл с рабочего стола или копировать файл с рабочего стола и вставить его в папку которая лежит сама програма
Мирсаидов Некбахт вне форума Ответить с цитированием
Старый 03.09.2017, 12:35   #2
SLAUR
Пользователь
 
Регистрация: 16.10.2014
Сообщений: 51
По умолчанию

Путь к рабочему столу для текущего пользователя

Код:
Function PathDesktopUser:String;
var  r : TRegistry;
begin
Result:='';
try
r:=TRegistry.Create(KEY_READ);
R.RootKey := HKey_Current_User;
R.OpenKey('Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders', False);
if r.ValueExists('Desktop') then  Result:=r.ReadString('Desktop');
finally
r.CloseKey;
r.Free;
end;
end;
Путь к рабочему столу для всех пользователей

Код:
Function PathDesktopAllUser:String;
var  r : TRegistry;Path:string;
begin
Result:='';
try
r:=TRegistry.Create(KEY_READ);
R.RootKey:=HKEY_LOCAL_MACHINE;
if R.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\Shell Folders',False) then
if r.ValueExists('Common Desktop') then
 Result:=r.ReadString('Common Desktop');
if Result='' then
begin
Result:=PathDesktopUser;
end;
Finally
r.CloseKey;
r.Free;
end;
end;
SLAUR вне форума Ответить с цитированием
Старый 03.09.2017, 13:13   #3
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

Код:
uses Winapi.ShlObj
...
procedure TForm1.Button1Click(Sender: TObject);
  function GetDesktopPath1: String; // Текущий пользователь
  var
    Buffer: Array[0..MAX_PATH] of Char;
  begin
    if ShGetSpecialFolderPath(Application.Handle, Buffer, CSIDL_DESKTOPDIRECTORY, False) then Result := Buffer else Result := '';
  end;

  function GetDesktopPath2: String; // Все пользователи
  var
    Buffer: Array[0..MAX_PATH] of Char;
  begin
    if ShGetSpecialFolderPath(Application.Handle, Buffer, CSIDL_COMMON_DESKTOPDIRECTORY, False) then Result := Buffer else Result := '';
  end;
begin
  ShowMessage(GetDesktopPath1);
  ShowMessage(GetDesktopPath2);
end;
Shouldercannon вне форума Ответить с цитированием
Старый 03.09.2017, 19:53   #4
kropotkina-alice
Форумчанин
 
Аватар для kropotkina-alice
 
Регистрация: 27.10.2014
Сообщений: 594
По умолчанию

С помощью ShGetSpecialFolderLocation можно узнать многое:

Код:
uses shlobj;

procedure tform1.formcreate(sender: tobject);
const
folders: array [0..15] of integer = (
csidl_bitbucket,
csidl_controls,
csidl_desktop,
csidl_desktopdirectory,

csidl_drives,
csidl_fonts,
csidl_nethood,
csidl_network,
csidl_personal,
csidl_printers,
csidl_programs,
csidl_recent,
csidl_sendto,
csidl_startmenu,
csidl_startup,
csidl_templates);

var
s: pchar;
p: pitemidlist;
i: integer;
begin
s := stralloc(128);
for i := low(folders) to high(folders) do begin
p := nil;
shgetspecialfolderlocation(form1.handle, folders[i], p);

shgetpathfromidlist(p, s);
listbox1.items.add(s);
end;
end;
kropotkina-alice вне форума Ответить с цитированием
Старый 03.09.2017, 22:55   #5
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Злые вы, человек программу попросил, а вы ему какой-то код непонятный пишете
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Затемнение рабочего стола при запуске программы Khayzenberg Общие вопросы Delphi 2 14.10.2012 12:20
[Delphi] "Создание рабочего стола Windows" JonMagon Помощь студентам 4 28.07.2011 00:17
Как сделать скрин рабочего стола на Delphi 7? dradysman Общие вопросы Delphi 10 26.07.2009 19:37
Фон рабочего стола. Rahim1993 Общие вопросы Delphi 11 17.02.2008 21:40