Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.70/40: Рейтинг темы: голосов - 40, средняя оценка - 4.70
0 / 0 / 0
Регистрация: 15.08.2015
Сообщений: 35

Функция для открытия папки

15.08.2015, 21:15. Показов 7451. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно сделать так, что бы после ввода пароля открывалась папка c:\\Program Files. Целый день играюсь с этим, но так и не понял куда втыкнуть "ShellExecute(NULL, "open", "c:\\Program Files", NULL, NULL, SW_RESTORE);". Много времени еще потратил на shellapi.h, который выдавал сотни ошибок и я до сих пор не понял почему. В общем в голове каша, нуждаюсь в вашей помощи.
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
#include <iostream>
#include <windows.h> 
#include <shellapi.h> 
#include <string>
 
using namespace std;
 
bool password_is_valid(string password)
{
    string valid_pass = "qwer";
    if (valid_pass == password)
        return true;
    else
        return false;
}
 
void get_pass()
{
    string user_pass;
    cout << "Введите пароль: ";
    getline(cin, user_pass);
    if (!password_is_valid(user_pass)) {
        cout << "Неверный пароль!" << endl;
        get_pass();
    }
    else {
        cout << "Доступ разрешен." << endl;
    }
}
        int main()
        {
            get_pass();
            return 0;
        
            //ShellExecute(NULL, "open", "c:\\Program Files", NULL, NULL, SW_RESTORE);
    
        }
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.08.2015, 21:15
Ответы с готовыми решениями:

Пользовательская функция для создания/открытия файла
void CreatOpenFile(Name &amp;NameFile, int &amp;flag) // Создание,открытие файла базы данных { char YorN; flag = 0; cout &lt;&lt;...

Функция открытия файла
typedef char* Name; typedef FILE* File Name NameFile = new char File* file; Auto Pauto int flag = 0; void...

Батник для открытия сетевой папки
помогите решить проблему!! создаю батник для открытия сетевой папки, не работает. потом через &quot;меню выполнить&quot; прописываю путь к...

15
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
15.08.2015, 21:45
Что не работает? Закомментированное? Какие ошибки?
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
16.08.2015, 03:21
Лучший ответ Сообщение было отмечено RaHoWa как решение

Решение

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
#include <iostream>
#include <windows.h> 
#include <shellapi.h> 
#include <string>
 
using namespace std;
 
bool password_is_valid(string password)
{
    string valid_pass = "qwer";
    if (valid_pass == password)
        return true;
    else
        return false;
}
 
bool get_pass(int cnt)
{
    string user_pass;
    for (int i = cnt; i > 0; --i)
    {
        cout << "Количество попыток для ввода пароля: " << i << endl;
        cout << "Введите пароль: ";
        getline(cin, user_pass);
        if (!password_is_valid(user_pass)) 
            cout << "Неверный пароль!" << endl;
        else 
        {
            cout << "Доступ разрешен." << endl;
            return true;
        }
    }
    cout << "Попытки исчерпаны!" << endl;
    return false;
}
 
int main()
{
    setlocale(0, "");
    
    int cnt = 3; // количество попыток ввода пароля
    if (get_pass(cnt))
        ShellExecute(NULL, "open", "c:\\Program Files", NULL, NULL, SW_RESTORE);
    else
        cout << "Не удалось ввести правильный пароль! Попробуйте позже." << endl;
    
    system("pause");
    return 0;
}
1
0 / 0 / 0
Регистрация: 15.08.2015
Сообщений: 35
16.08.2015, 08:15  [ТС]
Теперь ошибка:
In function 'int main()':
43 79[Error] 'ShellExecute' was not declared in this scope
[Error] parpapka.o: No such file or directory

и когда навожу курсор на строку "ShellExecute(NULL, "open", "c:\\Program Files", NULL, NULL, SW_RESTORE);" подсвечивает красным "INT nShowCmd"
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
16.08.2015, 08:22
Какая среда?
0
0 / 0 / 0
Регистрация: 15.08.2015
Сообщений: 35
16.08.2015, 08:24  [ТС]
dev-c++
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
16.08.2015, 08:28
Цитата Сообщение от RaHoWa Посмотреть сообщение
dev-c++
Студия и mingw компилируют этот код без ошибок. Попробуй ещё так:
C++
1
ShellExecuteA(NULL, "open", "c:\\Program Files", NULL, NULL, SW_RESTORE);
Миниатюры
Функция для открытия папки  
1
0 / 0 / 0
Регистрация: 15.08.2015
Сообщений: 35
16.08.2015, 08:47  [ТС]
в студии все работает, спасибо огромное за помощь

но тогда еще вопрос, почему приходиться бегать от одной среды к другой, раз devc++ подвел?

Добавлено через 9 минут
и можно ли поставить таймер, по истечении которого можно будет снова ввести пароль, если до этого исчерпал все три попытки? Или при каждом запуске программы она будет работать как "с чистого листа"?
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
16.08.2015, 09:10
Цитата Сообщение от RaHoWa Посмотреть сообщение
но тогда еще вопрос, почему приходиться бегать от одной среды к другой, раз devc++ подвел?
Какой там (в devC++) компилятор (версия mingw) подключен?

Добавлено через 2 минуты
Цитата Сообщение от RaHoWa Посмотреть сообщение
и можно ли поставить таймер, по истечении которого можно будет снова ввести пароль, если до этого исчерпал все три попытки?
Можно, но это - другая тема.
0
Заблокирован
16.08.2015, 09:10
Там после маин нужно ставить этот код, плюс не забудьте подключить библиотеки, иначе будут ошибки.
0
0 / 0 / 0
Регистрация: 15.08.2015
Сообщений: 35
16.08.2015, 09:20  [ТС]
Цитата Сообщение от lss Посмотреть сообщение
Какой там (в devC++) компилятор (версия mingw) подключен?
mingw 4.7.1
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
16.08.2015, 10:08
Цитата Сообщение от RaHoWa Посмотреть сообщение
mingw 4.7.1
В Code Blocks, такой компилятор, компилирует этот код (скрин в 7 посте).
0
0 / 0 / 0
Регистрация: 15.08.2015
Сообщений: 35
16.08.2015, 10:29  [ТС]
Цитата Сообщение от lss Посмотреть сообщение
В Code Blocks, такой компилятор, компилирует этот код (скрин в 7 посте).
А может быть такое, что я что то нарушил в devc?
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
16.08.2015, 11:04
Цитата Сообщение от RaHoWa Посмотреть сообщение
А может быть такое, что я что то нарушил в devc?
Может быть всё, что угодно, гадать смысла нет. Посмотри в папке компилятора, в папке include, есть ли файл shellapi.h? А в нём такие строки (у меня это 311, 312 строка):
HINSTANCE WINAPI ShellExecuteA(HWND,LPCSTR,LPCSTR,LPCSTR, LPCSTR,INT);
HINSTANCE WINAPI ShellExecuteW(HWND,LPCWSTR,LPCWSTR,LPCWS TR,LPCWSTR,INT);
0
0 / 0 / 0
Регистрация: 15.08.2015
Сообщений: 35
16.08.2015, 11:23  [ТС]
Цитата Сообщение от lss Посмотреть сообщение
есть ли файл shellapi.h?
Он вообще пустой. Где я могу найти начинку?
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
16.08.2015, 11:38
Скачай отсюда новую Dev-C++ 5.11, там компилятор с поддержкой С++11:
http://orwelldevcpp.blogspot.ru/
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.08.2015, 11:38
Помогаю со студенческими работами здесь

список доступных для открытия файлов из заданной папки
Как создать приложение, при открытии которого в comboBox добавляется список доступных файлов для открытия (например txt) в заданной раннее...

Как поставить пароль для открытия файла или папки?
Всем знатокам доброго времени суток! Вопрос, собственно, в заголовке. Сторонние программы существуют, но код на NET найти не...

не работает функция для открытия скрытого элемента
Всем приветы. Пишу работку на Asp.NET MVC. Есть такое представление: @model...

Встроенная функция для открытия файла (*.txt)
Подскажите плз функцию на С# для открытия файла (аналог функции fopen() на С++)? Заранее спс

не работает функция для открытия скрытого элемента
Всем приветы. Пишу работку на Asp.NET MVC. Есть такое представление: @model...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru