Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Запускается одна и та же программа с разными ключами

Ответить
Настройки темы
C/C++ - Запускается одна и та же программа с разными ключами

Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Запускается одна и та же программа во всех трех (с разными ключами),что не так сделано

Код:
#include <vcl.h>
#pragma hdrstop
#include <Tlhelp32.h>
#include "Unit1.h"

#pragma package(smart_init)
#pragma resource "*.dfm"


TForm1 *Form1;

char* pName;
AnsiString FullPath;
int OE;
String Capt;

__fastcall TForm1::TForm1(TComponent* Owner)
:TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N1Click(TObject *Sender)
{
OE = ((TMenuItem *)Sender)->Tag;
Capt = ((TMenuItem *)Sender)->Caption;
BitBtn1->Enabled = true;
switch(OE)
{
case 0 : FullPath = "revLoader.exe","-launch hl.exe -game cstrike -steam"; break;
case 1 : FullPath = "revLoader.exe","-launch hl.exe -game czero -steam"; break;
case 2 : FullPath = "revLoader.exe","-launch hl.exe -steam"; break;
}
Timer1->Enabled = true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
ShellExecute(NULL,"open",FullPath.c_str(),NULL,NULL,SW_SHOWNORMAL);
}
//---------------------------------------------------------------------------
bool IsProcessRun(char* pName)
{
HANDLE Hndl = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if(Hndl == INVALID_HANDLE_VALUE) return false;
PROCESSENTRY32 ProcessEntry;
ProcessEntry.dwSize = sizeof(ProcessEntry);
bool Loop = Process32First(Hndl, &ProcessEntry);
while (Loop)
{
if (strcmp(ProcessEntry.szExeFile, pName) == 0)
{
CloseHandle(Hndl);
return true;
}
Loop = Process32Next(Hndl, &ProcessEntry);
}
return false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
pName = AnsiString(ExtractFileName(FullPath)).c_str();
if(! IsProcessRun(pName))
{
BitBtn1->Caption = Capt + " [0]";
BitBtn1->Enabled = true;
}
else
{
BitBtn1->Caption = Capt + " [1]";
BitBtn1->Enabled = false;
}
Application->ProcessMessages();
}
//---------------------------------------------------------------------------

P.S

Исходный код для C++ Builder XE6

Отправлено: 18:39, 31-07-2014

 

Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Теги проверял все правильно,и все равно не правильный запуск

Отправлено: 18:41, 31-07-2014 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


И так тоже самое:
#include <vcl.h>
#pragma hdrstop
#include <Tlhelp32.h>
#include "Unit1.h"

#pragma package(smart_init)
#pragma resource "*.dfm"


TForm1 *Form1;

char* pName;
AnsiString FullPath;
AnsiString Keys;
int OE;
String Capt;

__fastcall TForm1::TForm1(TComponent* Owner)
:TForm(Owner)
{
}

//---------------------------------------------------------------------------
bool IsProcessRun(char* pName)
{
HANDLE Hndl = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if(Hndl == INVALID_HANDLE_VALUE) return false;
PROCESSENTRY32 ProcessEntry;
ProcessEntry.dwSize = sizeof(ProcessEntry);
bool Loop = Process32First(Hndl, &ProcessEntry);
while (Loop)
{
if (strcmp(ProcessEntry.szExeFile, pName) == 0)
{
CloseHandle(Hndl);
return true;
}
Loop = Process32Next(Hndl, &ProcessEntry);
}
return false;
}

void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
ShellExecute(NULL,"open",FullPath.c_str(),Keys.c_str(),NULL,SW_SHOWNORMAL);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
pName = AnsiString(ExtractFileName(FullPath)).c_str();
if(! IsProcessRun(pName))
{
BitBtn1->Caption = Capt + " [0]";
BitBtn1->Enabled = true;
}
else
{
BitBtn1->Caption = Capt + " [1]";
BitBtn1->Enabled = false;
}
Application->ProcessMessages();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N1Click(TObject *Sender)
{
OE = ((TMenuItem *)Sender)->Tag;
Capt = ((TMenuItem *)Sender)->Caption;
BitBtn1->Enabled = true;
switch(OE)
{
case 0 : FullPath = "revLoader.exe", Keys ="-launch hl.exe -game cstrike -steam"; break;
case 1 : FullPath = "revLoader.exe", Keys ="-launch hl.exe -game czero -steam"; break;
case 2 : FullPath = "revLoader.exe", Keys ="-launch hl.exe -steam"; break;
}
Timer1->Enabled = true;
}
//---------------------------------------------------------------------------

Отправлено: 20:40, 31-07-2014 | #3


Аватара для lxa85

Необычный


Contributor


Сообщения: 4463
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


Alattare, ага. А теперь пожалуйста подробней про цели запуска программы.
А так же где находится revLoader, запускается ли он из командной строки (если да, то как ? С полными путями), что указано в переменной среды PATH, каково относительное расположение (где они друг от друга) компилируемого приложения и revLoader?
Что будет если открыть новую консоль и сразу выполнить " revLoader.exe -launch hl.exe -game cstrike -steam "?

P.S. Будете оформлять код, воспользуйтесь соотв. тегом. Во-о-он та решетка сверху.

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)

Это сообщение посчитали полезным следующие участники:

Отправлено: 08:46, 01-08-2014 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Запускается одна и та же программа с разными ключами

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Не запускается ни одна программа. Fronter1 Лечение систем от вредоносных программ 16 28-01-2012 19:52
Прочее - [решено] Одна и та же XP на одном железе видит интернет, на другом только локалку nikvasko Сетевое оборудование 5 03-09-2011 00:47
Не запускается ни одна программа TverReus Лечение систем от вредоносных программ 23 28-11-2010 15:31
Разное - [решено] Одна и та же формула считает по разному в Excel и PHP Artem-Samsung Программирование и базы данных 1 21-10-2010 18:39
Разное - Не запускается ни одна программа Glebush Microsoft Windows Vista 5 05-03-2010 09:57




 
Переход