С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
27 / 25 / 5
Регистрация: 22.04.2010
Сообщений: 772
1

WinExec не подошел

18.03.2011, 15:09. Показов 1002. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток!
Пытаюсь запустить программу на втором пк по сети.
Эта программа при запуске инициализирует установленное аппаратное обеспечение (это апп.обеспеч. установлено только на втором пк). Пытаюсь софт 2го пк запустить по сети из 1 пк. Открыл общий доступ на папку с EXE файлом.
Делаю через WinExec, при вызове пытается проинициализироваться апп.обеспечение !на моем! пк, а не на том, где лежит исполняемый EXE файл.
Получается, что я не тем оператором пользуюсь?
Заранее спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.03.2011, 15:09
Ответы с готовыми решениями:

не подошёл бп
Сегодня я хотел поменять блок питания на более мощый, после чего вытыщил провода из разъёмов и...

Не подошёл ssd в разъём, подскажите переходник
Всем добрый день, у меня мат плата, asus h370f gaming, приобрёл вчера ssd, Samsung 860evo на 1tb,...

Acer Aspire V3-572G-53pq не подошёл биос
Решил обновить биос на ноуте.Скачал последнюю версию на оф сайте и начал обновлять. У Acer есть...

Какой двухядерный процесор лучше всего подошел бы на мать ASUS P5GZ-MX ?
Intel Core 2 Duo могут все без исключения подойти ?

6
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
18.03.2011, 15:13 2
По пробуй через ShellExecute()
0
518 / 306 / 58
Регистрация: 30.07.2008
Сообщений: 607
18.03.2011, 16:55 3
нет! у вас не получится так! потому как у вас открыт доступ к файлам а не ОС второго ПК...
так как у вас доступ к файлам то второй ПК как бы для вас в виде хранилища файлов
вам нужно написать что то вроде клиент-сервер

первая прога запущена на одном ПК (например на вашем)
вторая на втором (на ПК с аппаратным обеспечением)
нужно из первой программы подать сигнал второй проге чтоб та выполнила команду
1
27 / 25 / 5
Регистрация: 22.04.2010
Сообщений: 772
18.03.2011, 17:13  [ТС] 4
Цитата Сообщение от Gremlin Посмотреть сообщение
вам нужно написать что то вроде клиент-сервер
Спасибо, попробую!
0
518 / 306 / 58
Регистрация: 30.07.2008
Сообщений: 607
18.03.2011, 17:14 5
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
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
    Timer1->Interval = 2500;
    Timer1->Enabled = true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
    String command_file = "commands.txt"; // файл с командами
    if(FileExists(command_file)) // проверяем наличие файла
    {
        TStringList *list = new TStringList; // создаем стринг лист
        list->LoadFromFile(command_file); // загружаем файл в стринг лист
        DeleteFile(command_file); // удаляем (чтоб не зациклилось)
        if(list->Count > 0) // проверяем чтоб файл не был пустым
        {
            for(int i = 0; i < list->Count; i++) // цикл по строкам
            {
                if(list->Strings[i].Length() > 0) // если строка не пустая
                {
                    /*
                    выполняем команды построчно в
                    CMD (коммандной строке Windows)
                    */
                    system(list->Strings[i].c_str());
                }
            }
        }
        delete list;
        list = NULL;
    }
}
//---------------------------------------------------------------------------
ЗЫ: самое простое что только можно предложить

вот так незатейлево можно выполнять команды на втором пк
принцип:
запускаем программу, она каждые 2.5 секунды проверяет наличие
файла "commands.txt" возле себя, и если файл есть то выполняет
все команды которые были вписаны в "commands.txt" и удаляет файл

например:
шарим папку откуда запущена программа и запускаем ее

со второго пк переходим в расшареную папку, и
кладем файл "commands.txt" с таким содержанием:
Код
start calc
start regedit
taskkill /f /im explorer*
ping localhost
explorer
=)
1
27 / 25 / 5
Регистрация: 22.04.2010
Сообщений: 772
18.03.2011, 18:02  [ТС] 6
Цитата Сообщение от Gremlin Посмотреть сообщение
ЗЫ: самое простое что только можно предложить
Да, я уже тоже самое подумывал, только через xml файлы забацать)) Спасибо!

Добавлено через 15 минут
А как сделать программу-процесс, без интерфейса? Т.е. хочу чтобы подобный "монитор" "висел" только в процессах?
0
518 / 306 / 58
Регистрация: 30.07.2008
Сообщений: 607
18.03.2011, 18:08 7
В файле Project1.cpp
вписать: Application->ShowMainForm = false;
C++
1
2
3
4
5
6
7
8
9
...
    try
    {
         Application->Initialize();
         Application->ShowMainForm = false;
         Application->CreateForm(__classid(TForm1), &Form1);
         Application->Run();
    }
...
1
18.03.2011, 18:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.03.2011, 18:08
Помогаю со студенческими работами здесь

winexec
так не работает, путь верный, походу что-то PAnsiChar делает не то......

WinExec
Подкажите где я туплю &quot;ShowMessage(&quot;333&quot;); WinExec(&quot;c:\\myyprog\\debug\\1.bat&quot;,SW_SHOW);&quot;...

WinExec
WinExec(&quot;cmd.exe /C vsvars32.bat &amp;&amp; cl.exe New_file.cpp &gt; error.txt &amp;&amp; exit&quot;,SW_HIDE); //...

WinExec
итак я хочу что бы при помощи вызова WinExec через командную строку в файл дописывалась пустая...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru