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

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

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

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

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

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

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

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

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

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

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

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
23.03.2013, 17:50     Запуск .ехе файлов
  #16

Не по теме:

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

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

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

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

Не по теме:

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


Уж извиняй, но я подожду ответа ТС.
Avazart
Эксперт С++
7119 / 5296 / 273
Регистрация: 10.12.2010
Сообщений: 23,418
Записей в блоге: 17
23.03.2013, 18:18     Запуск .ехе файлов #19
- занятно занятно, чего же тогда раз такой дока не можешь настроить свой Gnome3
Может чет путаешь ? К чему это ?
У меня Unity в Ubuntu. Да и говорил я про прогу которая по Win
( Gnome3 пробовал чет не понравился как в принципе и другие оболочки...)
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\"");
}
Все прекрасно идет, спасибо
-=ЮрА=-
Заблокирован
Автор 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
        );
}
Миниатюры
Запуск .ехе файлов   Запуск .ехе файлов  
Вложения
Тип файла: 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,"и еще на что-то,вроде все инклуды добавил...в чем дело?
-=ЮрА=-
Заблокирован
Автор FAQ
23.03.2013, 21:08     Запуск .ехе файлов #23
Mkh, в аттаче лежит готовый проект RunProcess_project.rar , там все нужные настройки, обычно такое возникает
Цитата Сообщение от Mkh Посмотреть сообщение
ругается на "char *sPath, szTitle,"и еще на что-то,вроде все инклуды добавил...в чем дело?
когда создаётся дефалтный проект в VisualStudio в котором по умолчанию стоит юникод, следует переставить его на Multy-Byte-Character Set. Через пару минут прицеплю скриншот как это сделать.

Не по теме:

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

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.03.2013, 21:16     Запуск .ехе файлов
Еще ссылки по теме:

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

Сделать .ехе файл с С++ - C++
Есть листинг программы, но надо сделать его .ехе файлом. Например DEMO.EXE. Заранее благодарю Пирамидальная сортировка template void...

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

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

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


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

Или воспользуйтесь поиском по форуму:
-=ЮрА=-
Заблокирован
Автор FAQ
23.03.2013, 21:16     Запуск .ехе файлов #24
Так вот скриншот по изменению кодировки проекта
Миниатюры
Запуск .ехе файлов  
Yandex
Объявления
23.03.2013, 21:16     Запуск .ехе файлов
Ответ Создать тему
Опции темы

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