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

Перевод консоли в окно - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 4.86
Битл
0 / 0 / 0
Регистрация: 08.03.2012
Сообщений: 65
29.03.2012, 19:51     Перевод консоли в окно #1
есть консольный исходник VMProtect для получения HWID. Хочу перевести его в оконное приложение... Может у кого есть шаблон окошка для таких целей? Желательно чтоб с кнопкой копирования в буфер.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
}
#include <iostream>
#include <windows.h>
#include <stdio.h>
#include <winnt.h>
#include "VMProtectSDK.h"
 
 
int main(int argc, char **argv)
{
 int nSize = VMProtectGetCurrentHWID(NULL, 0);
 char *buf = new char[nSize];
 VMProtectGetCurrentHWID(buf, nSize);
 printf("HWID: %s\n", buf);
 delete [] buf;
 system("pause");
 return 0;
}
VMProtectSDK.h
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
#pragma once
 
#ifdef _WIN64
    #pragma comment(lib, "VMProtectSDK64.lib")
#else
    #pragma comment(lib, "VMProtectSDK32.lib")
#endif
 
#ifdef __cplusplus
extern "C" {
#endif
 
// protection
__declspec(dllimport) void __stdcall VMProtectBegin(const char *);
__declspec(dllimport) void __stdcall VMProtectBeginVirtualization(const char *);
__declspec(dllimport) void __stdcall VMProtectBeginMutation(const char *);
__declspec(dllimport) void __stdcall VMProtectBeginUltra(const char *);
__declspec(dllimport) void __stdcall VMProtectBeginVirtualizationLockByKey(const char *);
__declspec(dllimport) void __stdcall VMProtectBeginUltraLockByKey(const char *);
__declspec(dllimport) void __stdcall VMProtectEnd(void);
__declspec(dllimport) BOOL __stdcall VMProtectIsDebuggerPresent(BOOL);
__declspec(dllimport) BOOL __stdcall VMProtectIsVirtualMachinePresent(void);
__declspec(dllimport) BOOL __stdcall VMProtectIsValidImageCRC(void);
__declspec(dllimport) char * __stdcall VMProtectDecryptStringA(const char *value);
__declspec(dllimport) wchar_t * __stdcall VMProtectDecryptStringW(const wchar_t *value);
 
// licensing
enum VMProtectSerialStateFlags
{
    SERIAL_STATE_FLAG_CORRUPTED         = 0x00000001,
    SERIAL_STATE_FLAG_INVALID           = 0x00000002,
    SERIAL_STATE_FLAG_BLACKLISTED       = 0x00000004,
    SERIAL_STATE_FLAG_DATE_EXPIRED      = 0x00000008,
    SERIAL_STATE_FLAG_RUNNING_TIME_OVER = 0x00000010,
    SERIAL_STATE_FLAG_BAD_HWID          = 0x00000020,
    SERIAL_STATE_FLAG_MAX_BUILD_EXPIRED = 0x00000040,
};
#pragma pack(push, 1)
typedef struct
{
    WORD            wYear;
    BYTE            bMonth;
    BYTE            bDay;
} VMProtectDate;
typedef struct
{
    INT             nState;             // VMProtectSerialStateFlags
    wchar_t         wUserName[256];     // user name
    wchar_t         wEMail[256];        // email
    VMProtectDate   dtExpire;           // date of serial number expiration
    VMProtectDate   dtMaxBuild;         // max date of build, that will accept this key
    INT             bRunningTime;       // running time in minutes
    BYTE            nUserDataLength;    // length of user data in bUserData
    BYTE            bUserData[255];     // up to 255 bytes of user data
} VMProtectSerialNumberData;
 
#pragma pack(pop)
__declspec(dllimport) INT  __stdcall VMProtectSetSerialNumber(const char * SerialNumber);
__declspec(dllimport) INT  __stdcall VMProtectGetSerialNumberState();
__declspec(dllimport) BOOL __stdcall VMProtectGetSerialNumberData(VMProtectSerialNumberData *pData, UINT nSize);
__declspec(dllimport) INT  __stdcall VMProtectGetCurrentHWID(char * HWID, UINT nSize);
 
#ifdef __cplusplus
}
#endif

С оконными только начал разбираться...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.03.2012, 19:51     Перевод консоли в окно
Посмотрите здесь:

Как убрать окно консоли C++
Закрывается окно консоли C++
C++ Исчезает окно консоли
Изменение окно в консоли C++
Как очистить окно консоли? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Битл
0 / 0 / 0
Регистрация: 08.03.2012
Сообщений: 65
30.03.2012, 21:06  [ТС]     Перевод консоли в окно #21
Спасибо большое! Все поехало! "Edit" правда не совсем то, возможность редактировать не нужна, но так зато есть возможность скопировать в буфер.

Как-нибудь потом, когда разберусь, просто сделаю кнопку копирования в буфер. Спасибо!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Avazart
 Аватар для Avazart
6897 / 5137 / 252
Регистрация: 10.12.2010
Сообщений: 22,578
Записей в блоге: 17
30.03.2012, 21:23     Перевод консоли в окно #22
Там по идее в стиле надо добавить ES_READONLY или что-то вроде того, что бы редактировать нельзя было.

Но реализация на RAD конечно намного проще, буквально в несколько кликов
Битл
0 / 0 / 0
Регистрация: 08.03.2012
Сообщений: 65
30.03.2012, 21:28  [ТС]     Перевод консоли в окно #23
А не подскажешь, можно фон наложить и сделать ListBox прозрачным (50проц) или полностью прозрачным, но чтобы текст выводился 100 видимости.


Цитата Сообщение от Avazart Посмотреть сообщение
Но реализация на RAD конечно намного проще, буквально в несколько кликов
Буду смотреть значит в сторону пары кликов. Пасиб!
Avazart
 Аватар для Avazart
6897 / 5137 / 252
Регистрация: 10.12.2010
Сообщений: 22,578
Записей в блоге: 17
30.03.2012, 22:02     Перевод консоли в окно #24
Фон в смысле картинку или цвет?
В RAD можно убрать бордюры и выставить цвет фона так что элемент сравняется с формой будет только виден текст, если вы про это.

Добавлено через 9 минут
C++
1
hEdit=CreateWindowA("Edit",text.c_str(),WS_CHILD|WS_VISIBLE|WS_VSCROLL|WS_BORDER|ES_MULTILINE|ES_READONLY, lx,ly,lw,lh,hWnd,(HMENU)ID_EDIT,hInst,0);
Avazart
 Аватар для Avazart
6897 / 5137 / 252
Регистрация: 10.12.2010
Сообщений: 22,578
Записей в блоге: 17
30.03.2012, 22:18     Перевод консоли в окно #25
C++
1
2
3
4
5
6
7
8
9
10
11
    case WM_PAINT:
        hdc = BeginPaint(hWnd, &ps);
 
        RECT R;
        GetClientRect(hWnd,&R);
        HBRUSH hBrush; 
        hBrush= CreateSolidBrush(0x0F0F0F0);
        FillRect(hdc,&R,hBrush);
 
        EndPaint(hWnd, &ps);
        break;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.03.2012, 11:31     Перевод консоли в окно
Еще ссылки по теме:

C++ Массивы структур - зависает окно консоли
Окно консоли исчезает C++
Убрать/скрыть окно консоли C++

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

Или воспользуйтесь поиском по форуму:
Taras_Z
 Аватар для Taras_Z
100 / 84 / 2
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
31.03.2012, 11:31     Перевод консоли в окно #26
вот хороший сайт http://shatalov.su/ru/articles/cpp_primer/window_0.php
там есть первая и вторая часть
прочтите иначе кода не поймете
Yandex
Объявления
31.03.2012, 11:31     Перевод консоли в окно
Ответ Создать тему
Опции темы

Текущее время: 04:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru