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

Запрет запуска второй копии приложений - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Final для вложенной структуры http://www.cyberforum.ru/cpp-beginners/thread1778648.html
class A{ class B {..} final; }; так класс B теперь входит в размер A, но не инициализируется. это баг? потому что я нигде не нашел про такое использование
C++ Stack. определение шаблона функции testStack. (хочу разобраться в коде) Вот эта программа. Хочу разобраться в коде. #include <iostream> #include <string> #include <Stack> using namespace std; template <typename T> void testStack( Stack< T > &theStack,// показывает ошибку на Stack с требованием точки с запятой! поясните что и как. http://www.cyberforum.ru/cpp-beginners/thread1778626.html
C++ Ошибка компилятора C2784
Код: #include <iostream> #include <conio.h> using namespace std; int main(void) { cout >> "Hello, world" >> endl;
Сложение чисел типа long long C++
Пыталась сложить 2 больших числа (в пределах long long), не получилось. В чем дело? #include <cmath> #include <cstdio> #include <vector> #include <iostream> #include <algorithm> using namespace std; int sum(int n, vector<long long> arr) {
C++ Передвижение коня по доске и сбор букв http://www.cyberforum.ru/cpp-beginners/thread1778602.html
Добрый день! Не могу разобраться, в чём проблема =( Нужно решить задачу: есть шахматная доска. На ней, в каждой клетке, расположены буквы. По доске "ходит" конь (буквой "г", соответственно), и "собирает" фигуры. Нужно собрать таким образом 6 букв (первая "Э" уже задана). К сожалению, кроме всякой ерунды, ничего не выдаёт =( Буду рад помощи. #include <iostream> #include <conio.h>
C++ Сосчитать количество файлов в директории Здравствуйте, совсем недавно начал осваивать C++ Получил задание: "Ввести в консоль директорию и подсчитать файлы в ней и её поддиректориях". С указанием директории через консоль я, вроде как,справился. Написал программу,которая сохранит файл с примером туда,куда я хочу. А вот считать файлы я не умею и ничего не могу придумать, подскажите пжл, какие библиотеки и функции помогут мне в этом?... подробнее

Показать сообщение отдельно
Vergil
42 / 36 / 14
Регистрация: 11.11.2009
Сообщений: 239
10.07.2016, 22:58  [ТС]     Запрет запуска второй копии приложений
можно запихнуть запуск в cmd файл( то бишь ярлык) и при его запуске будет открываться консоль(там уже можешь и написать что-нибудь,мол подождите) и пока игра не будет закрыта, не закроется и консоль
НЕ совсем понял, как мне это поможет

Пока нагородил такую конструкцию:
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
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
HANDLE mutex;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{Application->ShowMainForm=false;
mutex=CreateMutex(NULL,true,L"MutexOfTheMyApplication");
DWORD result;
result = WaitForSingleObject(mutex,0);
UnicodeString path="";
if(result!=WAIT_OBJECT_0)
  {ShowMessage("Игра уже запущена. Если вы не видите игру, обратитесь к администратору");
 
  Application->Terminate();}
  else
  { for(int i=0;i<ParamCount()+1;i++)
     {if (ParamStr(i)=="-path"){i++; path=ParamStr(i);}
     }
    if(path==""){ShowMessage("Неверно указан путь, обратитесь к администратору");
    Application->Terminate();}
    else{STARTUPINFO cif;
    ZeroMemory(&cif,sizeof(STARTUPINFO));
    PROCESS_INFORMATION pi;
 
    if(CreateProcess(path.c_str(), NULL,
     NULL,NULL,FALSE,NULL,NULL,NULL,&cif,&pi)==true){
     WaitForSingleObject(pi.hProcess,INFINITE); }
     else {ShowMessage("Ошибка 2136. Обратитесь к администратору");}
     Application->Terminate();}  }
    }
//---------------------------------------------------------------------------
void __fastcall TForm1::FormDestroy(TObject *Sender)
{ReleaseMutex(mutex);
CloseHandle(mutex);}
//---------------------------------------------------------------------------
Естественно нет обработки парочки ошибок. Причем как минимум одной критичной. И если игра запускается через лаунчер, то данная программа без модификации бесполезна. В принципе доделать не сложно. Как высплюсь, доделаю.
 
Текущее время: 16:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru