Сохранить расположение иконок на рабочем столе, восстановить по команде

Задание закрыто
Стоимость:Договорная
Срок выполнения:3 дня
Варианты оплаты:По договоренности
Дата публикации:2024-02-12 10:11
Был(а) на сайте:2024-12-11 01:02

Сохранить расположение иконок на рабочем столе, восстановить по команде

 
Задача

Мы бэкапим и восстанавливаем ПК с помощью ПО написанного на С++.
ПО стоит на ПК. По шедулеру восстанавливает ПО, рабочий стол. Но расположение иконок после восстановления изменяется. Надо чтобы расположение не менялось.

Оставлять заявки могут только авторизованные пользователи.
Игорь Celsius

Грамотный, аккуратный, читаемый код

Специализация: Программирование и IT
  • 15 000 руб3 дня
Здравствуйте Михаил, сделаю консольное приложение на с++, которое будет сохранять и восстанавливать расположение иконок OC Windows.
Сергей Стаднийчук
Специализация: Программирование и IT
  • 10 000 руб3 дня
Большой опыт разработки на С++.
Точный срок и стоимость смогу озвучить после обсуждения всех деталей.
Тимур Алиев

Тяжела и некозиста жизнь простого программиста.

Специализация: Программирование и IT
  • 250 руб3 дня
Можно написать скрипт, который будет сохранять расположение иконок на рабочем столе в файл, а затем восстанавливать их из файла после восстановления системы.Ниже приведен пример скрипта на C++, который сохраняет расположение иконок на рабочем столе в файл:
#include <windows.h>
#include <shellapi.h>
#include <iostream>
#include <fstream>

using namespace std;

int main() {
// Получение списка иконок на рабочем столе
int count = 0;
LPMALLOC pMalloc;
if (SHGetMalloc(&pMalloc) == NOERROR) {
IShellFolder *pDesktopFolder;
if (SHGetDesktopFolder(&pDesktopFolder) == NOERROR) {
IEnumIDList *pEnumIDList;
if (pDesktopFolder->EnumObjects(0, SHCONTF_FOLDERS | SHCONTF_NONFOLDERS, &pEnumIDList) == NOERROR) {
LPITEMIDLIST pItemIDList;
while (pEnumIDList->Next(1, &pItemIDList, NULL) == S_OK) {
count++;
pMalloc->Free(pItemIDList);
}
pEnumIDList->Release();
}
pDesktopFolder->Release();
}
pMalloc->Release();
}

// Создание файла для сохранения расположения иконок
ofstream file("icon_positions.txt");

// Получение расположения иконок и сохранение их в файл
int x, y;
for (int i = 0; i < count; i++) {
IShellFolder *pDesktopFolder;
if (SHGetDesktopFolder(&pDesktopFolder) == NOERROR) {
IEnumIDList *pEnumIDList;
if (pDesktopFolder->EnumObjects(0, SHCONTF_FOLDERS | SHCONTF_NONFOLDERS, &pEnumIDList) == NOERROR) {
LPITEMIDLIST pItemIDList;
if (pEnumIDList->Next(1, &pItemIDList, NULL) == S_OK) {
SHGetIconLocation(pItemIDList, NULL, &x, &y);
file << x << " " << y << endl;
pMalloc->Free(pItemIDList);
}
pEnumIDList->Release();
}
pDesktopFolder->Release();
}
}

file.close();

return 0;
}
Этот скрипт сохраняет расположение иконок на рабочем столе в файл icon_positions.txt. Для восстановления расположения иконок после восстановления системы необходимо запустить этот скрипт снова.

Оставлять заявки могут только авторизованные пользователи.