Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.79
Mkh
1 / 1 / 0
Регистрация: 22.03.2013
Сообщений: 21
#1

Запуск .ехе файлов - C++

22.03.2013, 21:12. Просмотров 2210. Ответов 23
Метки нет (Все метки)

Изучаю C++ полгода.Программирую на Visual Studio 2010. Windows XP,7.Недавно познакомился с потоковым вводом/выводом, и задался вопросом, можно ли запустить удаленный файл .ехе (путь я знаю),при помощи программы на С++?Если можно, то пожалуйста приведите пример кода.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.03.2013, 21:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Запуск .ехе файлов (C++):

Запуск ехе-файлла - C++
Здравствуйте! Можно ли при нажатии кнопки на форме найти нужный ехе-файл и запустить его? Заранее большое спасибо.

Запуск .ехе-шного файла - C++
Как запустить имеющийся .ехе-шный файл средствами С++?

Работа с файлами и запуск ехе из другой дерриктории. - C++
Доброго время суток, господа. У меня возникла небольшая проблемка: Есть файл PHP, который открывает .ехе файл из дерриктории в...

Запуск программы с запрошенным параметром и очистка временных файлов - C++
Помогите с написание батника, плиз. 1.exe - работает под DOS. синтаксис такой: 1.exe -S /W 00 123456789ABCDEF изменяемая,...

Запуск и последующее удаление всех исполняемых файлов из каталога - C++
Здравствуйте. Прошу помочь написать программу, которая бы запускала все исполняемые файлы (.exe, .bat, .cmd) из заданного каталога, а потом...

Компиляция в ехе - C++
Добрый день форумчане. Помогите скомпилировать в ехе: #include <iostream> #include <Windows.h> #include <vector> #include...

23
-=ЮрА=-
23.03.2013, 17:50     Запуск .ехе файлов
  #16

Не по теме:

Цитата Сообщение от Черный ворон Посмотреть сообщение
а где человек пишущий пол года возьмет этот червь/кейлогер? не сам же напишет а лично я в свободном доступе подобного не замечал
- исходников кейлоггеров как грязи в интернете и даже здесь на форуме

0
Avazart
Нарушитель
Эксперт С++
7232 / 5404 / 293
Регистрация: 10.12.2010
Сообщений: 23,951
Записей в блоге: 17
23.03.2013, 18:00 #17
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
- на удалённой машине запускаем обычный планировщик задач и не надо никакого удалённого подключения, сам планировщик можно включить 1 раз как удалённо так и с борта удалённого ПК.
Вы предлагаете на каждой удаленной машине настраивать планировщик ручками?
А потом еще вдруг время изменить нужно будет или еще что

Запуск возможен только при наличии доступа к удаленной машине... а без него ничего не стоит...

Добавлено через 9 минут
А вообще из личного опыта- я делал прогу клиент/сервер (когда еще жил ещё общаге) она удаленно отключала интернет соединение на удаленном компе (находящимся в нескольких метрах) и подключала на моем (интернет соединение по одному логину,паролю)
0
-=ЮрА=-
Заблокирован
Автор FAQ
23.03.2013, 18:06 #18

Не по теме:

Цитата Сообщение от Avazart Посмотреть сообщение
А вообще из личного опыта- я делал прогу клиент/сервер (когда еще жил ещё общаге) она удаленно отключала интернет соединение на удаленном компе (находящимся в нескольких метрах) и подключала на моем (интернет соединение по одному логину,паролю)
- занятно занятно, чего же тогда раз такой дока не можешь настроить свой Gnome3?


Уж извиняй, но я подожду ответа ТС.
0
Avazart
Нарушитель
Эксперт С++
7232 / 5404 / 293
Регистрация: 10.12.2010
Сообщений: 23,951
Записей в блоге: 17
23.03.2013, 18:18 #19
- занятно занятно, чего же тогда раз такой дока не можешь настроить свой Gnome3
Может чет путаешь ? К чему это ?
У меня Unity в Ubuntu. Да и говорил я про прогу которая по Win
( Gnome3 пробовал чет не понравился как в принципе и другие оболочки...)
0
Mkh
1 / 1 / 0
Регистрация: 22.03.2013
Сообщений: 21
23.03.2013, 20:14  [ТС] #20
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
- на удалённой машине запускаем обычный планировщик задач и не надо никакого удалённого подключения, сам планировщик можно включить 1 раз как удалённо так и с борта удалённого ПК.

- для человека пишушего пол года задание удалённого запуска 99,9% - запуск какого-нибудь кейлогера, по крайней мере пусть даст вразумительный ответ зачем ему это, а там посмотрим какую информацию предоставить.

Добавлено через 2 минуты
PS: - что значит левая?
Эх,вы.Чтож так плохо думаете...кейлогер...Случайно неправильно сформировал вопрос, хотелось как раз запуска .ехе на своем компьютере.Хотя почитав ваши сообщения, стало интересно, т.к. имеется школьный сервер...с адекватными админами... поэкспериментируем

Добавлено через 8 минут
Цитата Сообщение от sovaz1997 Посмотреть сообщение
У меня так Firefox открыл:

C++
1
2
3
4
5
6
7
8
#include <iostream>
#include <windows.h>
 
using namespace std;
 
int main() {
    system("\"C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe\"");
}
Все прекрасно идет, спасибо
0
-=ЮрА=-
Заблокирован
Автор FAQ
23.03.2013, 20:38 #21
Цитата Сообщение от Mkh Посмотреть сообщение
хотелось как раз запуска .ехе на своем компьютере.
Ниже код примитивной стартера-оболочки, который не только создаст процесс в замороженном виде, но и выдаст исчерпывающую инфу по вновь созданному процессу (иногда она очень полезна для поиска процесса по его PID)
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#include <windows.h>
#include <shlobj.h>
#include <iostream>
using namespace std;
 
//Диалог выбора папки/файла 
bool SelectFile(char * sPath, const char * szTitle);
bool NewProcess
    (
        const char * szProcPath,
        STARTUPINFO &pSTART ,
        PROCESS_INFORMATION &pINFO
    );
 
int main()
{
    char sPath[256]           = {0};
    STARTUPINFO pSTART        = {0};
    PROCESS_INFORMATION pINFO = {0};
    if(!SelectFile(sPath, "Выберите исполняемый файл"))
        cout<<"Error open path : "<<strerror(GetLastError())<<endl;
    else
    if(!NewProcess(sPath, pSTART, pINFO))
        cout<<"Error CreateProcess : "<<strerror(GetLastError())<<endl;
    else
    {
        cout<<"CreateProcess : PID"<<pINFO.dwProcessId<<" HANDLE : "<<pINFO.hProcess<<endl;
        cout<<"Process start at 2 seconds..."<<endl;
    }
    Sleep(2000);
    if(pINFO.hThread)
        ResumeThread(pINFO.hThread);
    return 0;
}
 
bool SelectFile(char * sPath, const char * szTitle)
{
    bool bRet = false;
    LPCITEMIDLIST lpItemDList;
    BROWSEINFO bi = {
        NULL, 
        NULL, 
        sPath,
        szTitle,
        BIF_DONTGOBELOWDOMAIN|BIF_BROWSEINCLUDEFILES,
        NULL,
        NULL,
        0
    };
    if((lpItemDList=SHBrowseForFolder(&bi)))
    {
        if((bRet = SHGetPathFromIDList(lpItemDList, sPath)))
            GetShortPathName((LPCTSTR)sPath,sPath,strlen(sPath));
        else
            sPath[0] = '\0';
    }
    return bRet;
}
 
bool NewProcess
    (
        const char * szProcPath,
        STARTUPINFO &pSTART ,
        PROCESS_INFORMATION &pINFO
    )
{
    char szCMD[1024]     = {0};//Комманданая строка
    char szDIR[MAX_PATH] = {0};//Текущий каталог
    char * szPTR         = NULL;
    if(strcpy(szDIR, szProcPath))
    if(szPTR = strrchr(szDIR, '\\'))
        szDIR[strlen(szDIR) - strlen(szPTR)] = '\0';
    return CreateProcess//Создаём процесс
        (
            szProcPath, 
            strcpy(szCMD, szProcPath), 
            NULL,
            NULL,
            FALSE,
            CREATE_SUSPENDED | NORMAL_PRIORITY_CLASS,//CREATE_SUSPENDED  - спящий процесс 
            NULL,
            szDIR,
            &pSTART,
            &pINFO
        );
}
1
Миниатюры
Запуск .ехе файлов   Запуск .ехе файлов  
Вложения
Тип файла: rar RunProcess.exe.rar (40.3 Кб, 6 просмотров)
Тип файла: rar RunProcess_project.rar (8.2 Кб, 5 просмотров)
Mkh
1 / 1 / 0
Регистрация: 22.03.2013
Сообщений: 21
23.03.2013, 20:54  [ТС] #22
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Ниже код примитивной стартера-оболочки, который не только создаст процесс в замороженном виде, но и выдаст исчерпывающую инфу по вновь созданному процессу (иногда она очень полезна для поиска процесса по его PID)
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#include <windows.h>
#include <shlobj.h>
#include <iostream>
using namespace std;
 
//Диалог выбора папки/файла 
bool SelectFile(char * sPath, const char * szTitle);
bool NewProcess
    (
        const char * szProcPath,
        STARTUPINFO &pSTART ,
        PROCESS_INFORMATION &pINFO
    );
 
int main()
{
    char sPath[256]           = {0};
    STARTUPINFO pSTART        = {0};
    PROCESS_INFORMATION pINFO = {0};
    if(!SelectFile(sPath, "Выберите исполняемый файл"))
        cout<<"Error open path : "<<strerror(GetLastError())<<endl;
    else
    if(!NewProcess(sPath, pSTART, pINFO))
        cout<<"Error CreateProcess : "<<strerror(GetLastError())<<endl;
    else
    {
        cout<<"CreateProcess : PID"<<pINFO.dwProcessId<<" HANDLE : "<<pINFO.hProcess<<endl;
        cout<<"Process start at 2 seconds..."<<endl;
    }
    Sleep(2000);
    if(pINFO.hThread)
        ResumeThread(pINFO.hThread);
    return 0;
}
 
bool SelectFile(char * sPath, const char * szTitle)
{
    bool bRet = false;
    LPCITEMIDLIST lpItemDList;
    BROWSEINFO bi = {
        NULL, 
        NULL, 
        sPath,
        szTitle,
        BIF_DONTGOBELOWDOMAIN|BIF_BROWSEINCLUDEFILES,
        NULL,
        NULL,
        0
    };
    if((lpItemDList=SHBrowseForFolder(&bi)))
    {
        if((bRet = SHGetPathFromIDList(lpItemDList, sPath)))
            GetShortPathName((LPCTSTR)sPath,sPath,strlen(sPath));
        else
            sPath[0] = '\0';
    }
    return bRet;
}
 
bool NewProcess
    (
        const char * szProcPath,
        STARTUPINFO &pSTART ,
        PROCESS_INFORMATION &pINFO
    )
{
    char szCMD[1024]     = {0};//Комманданая строка
    char szDIR[MAX_PATH] = {0};//Текущий каталог
    char * szPTR         = NULL;
    if(strcpy(szDIR, szProcPath))
    if(szPTR = strrchr(szDIR, '\\'))
        szDIR[strlen(szDIR) - strlen(szPTR)] = '\0';
    return CreateProcess//Создаём процесс
        (
            szProcPath, 
            strcpy(szCMD, szProcPath), 
            NULL,
            NULL,
            FALSE,
            CREATE_SUSPENDED | NORMAL_PRIORITY_CLASS,//CREATE_SUSPENDED  - спящий процесс 
            NULL,
            szDIR,
            &pSTART,
            &pINFO
        );
}
Все работает на ура , но только вставить код в компилятор и запустить на удалось, ругается на "char *sPath, szTitle,"и еще на что-то,вроде все инклуды добавил...в чем дело?
0
-=ЮрА=-
Заблокирован
Автор FAQ
23.03.2013, 21:08 #23
Mkh, в аттаче лежит готовый проект RunProcess_project.rar , там все нужные настройки, обычно такое возникает
Цитата Сообщение от Mkh Посмотреть сообщение
ругается на "char *sPath, szTitle,"и еще на что-то,вроде все инклуды добавил...в чем дело?
когда создаётся дефалтный проект в VisualStudio в котором по умолчанию стоит юникод, следует переставить его на Multy-Byte-Character Set. Через пару минут прицеплю скриншот как это сделать.

Не по теме:

Для простоты следует просто открыть мой проект через dsw файл и подтвержить конвертирование да и всё

2
-=ЮрА=-
Заблокирован
Автор FAQ
23.03.2013, 21:16 #24
Так вот скриншот по изменению кодировки проекта
1
Миниатюры
Запуск .ехе файлов  
23.03.2013, 21:16
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.03.2013, 21:16
Привет! Вот еще темы с ответами:

Импорт в ехе - C++
Здраствуйте!Есть прога на с++.Все работает,через терминал норм пашет тоже.Как сделать с этого файла ехе.Либо чтоб можно было открыть на...

Создание .ехе файла - C++
У меня установлена Borland Developer Studio Turbo C++. При создании программки, создается и .ехе файл. У меня на компе он запускается и...

Закрывается ехе-файл - C++
Всем доброго время суток! Возникла такая дурацкая проблема, не могу разобраться. Пишу на 10й студии, обычное консольное приложение....

создание .ехе файла - C++
Здраствуйте меня мучает вопрос- как из програм которые я делал ( console application) сделать отдельные .ехе файлы , или просто...


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

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru