Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

 Страниц (4): « 1 2 3 [4]   

> Описание: Добавить данные из блокнота в комбобокс
Zireael
Отправлено: 27 Апреля, 2023 - 23:13:05
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4399
Дата рег-ции: Нояб. 2017  
Репутация: 580




 Цитата:
А как сделать чтобы данные в блокнот с настройками сохранялись? И при запуске программы подтягивались из блокнота?

При закрытии окна сработает WM_CLOSE, сохранить нужные данные в файл.
В WM_CREATE прочитать файл и присвоить нужные данные.
 
 Top
Martin
Отправлено: 30 Апреля, 2023 - 05:11:21
Post Id



Пользователь
Мастер


Покинул форум
Сообщений всего: 121
Дата рег-ции: Июнь 2022  
Репутация: 1




Zireael , А какие именно данные брать чтобы координаты сохранить? Пытаюсь static0 записать, но сохраняет другие значения.

CODE:
#define WS_VISIBLE 0x10000000
#define WS_CHILD 0x40000000
#define WS_BORDER 0x00800000
#define BS_MULTILINE 0x00002000
#define SS_EDITCONTROL 0x00002000
#define BS_AUTOCHECKBOX 0x00000003
#define BS_AUTORADIOBUTTON 0x00000009
#define BM_SETCHECK 0x00F1
#define BST_UNCHECKED 0x0000
#define BST_CHECKED 0x0001
#define TRUE 1
#define WM_SETFONT 0x0030
#define RUSSIAN_CHARSET 204

external(INT, "CreateWindow", "CreateWindowExA", "User32.dll");
external(INT, "GetWindowText", "GetWindowTextA", "User32.dll");
external(INT, "SetWindowText", "SetWindowTextA", "User32.dll");
external(INT, "CreateFont", "CreateFontA", "Gdi32.dll");
external(INT, "GetWindowRect", "GetWindowRect", "User32.dll");
external(INT, "DeleteObject", "DeleteObject", "Gdi32.dll");
external(INT, "DeleteFile", "DeleteFileA", "kernel32.dll");
external (INT, "GetPrivateProfileString", "GetPrivateProfileStringA", "kernel32.dll");
external (INT, "WritePrivateProfileString", "WritePrivateProfileStringA", "kernel32.dll");

char str[255];
string path=pathfolder()+"setting.ini"; // путь к файлу настроек


int h_font;
string rn = formatic(13)+formatic(10);
int dialogPosX_0 = 547, dialogPosY_0 = 255;
int static0[10];

int autocheck0[5], flag_autocheck0 = 0;
int staticX, staticY;

int MousePosX, MousePosY;

createdialog(0);
showdialog(0, "Диалог0", dialogPosX_0, dialogPosY_0, 260, 187, 4, 1);

enabletimer(0);
textbkcolor(65280, 0);
textout(0, 50, 100, "Нажать Ё для получения координат курсора", 0);
loop()
{
// тут нужный код
sleep(10);
}
end_0:;

function getmessage(0, WM_CREATE)
{
int i;
h_font = CreateFont(-12, 0, 0, 0, 400, 0, 0, 0, RUSSIAN_CHARSET, 0, 0, 0, 0, "Arial");
staticX = CreateWindow(0, "STATIC", "X", WS_VISIBLE | WS_CHILD, 144, 8, 16, 20, gethwnd(0), 0, 0, 0);
staticY = CreateWindow(0, "STATIC", "Y", WS_VISIBLE | WS_CHILD, 208, 8, 16, 20, gethwnd(0), 0, 0, 0);
static0[0] = CreateWindow(0, "STATIC", "Empty", WS_VISIBLE | WS_CHILD, 128, 32, 48, 20, gethwnd(0), 0, 0, 0);
static0[1] = CreateWindow(0, "STATIC", "Empty", WS_VISIBLE | WS_CHILD, 128, 56, 48, 20, gethwnd(0), 0, 0, 0);
static0[2] = CreateWindow(0, "STATIC", "Empty", WS_VISIBLE | WS_CHILD, 128, 80, 48, 20, gethwnd(0), 0, 0, 0);
static0[3] = CreateWindow(0, "STATIC", "Empty", WS_VISIBLE | WS_CHILD, 128, 104, 48, 20, gethwnd(0), 0, 0, 0);
static0[4] = CreateWindow(0, "STATIC", "Empty", WS_VISIBLE | WS_CHILD, 128, 128, 48, 20, gethwnd(0), 0, 0, 0);
static0[5] = CreateWindow(0, "STATIC", "Empty", WS_VISIBLE | WS_CHILD, 192, 32, 48, 20, gethwnd(0), 0, 0, 0);
static0[6] = CreateWindow(0, "STATIC", "Empty", WS_VISIBLE | WS_CHILD, 192, 56, 48, 20, gethwnd(0), 0, 0, 0);
static0[7] = CreateWindow(0, "STATIC", "Empty", WS_VISIBLE | WS_CHILD, 192, 80, 48, 20, gethwnd(0), 0, 0, 0);
static0[8] = CreateWindow(0, "STATIC", "Empty", WS_VISIBLE | WS_CHILD, 192, 104, 48, 20, gethwnd(0), 0, 0, 0);
static0[9] = CreateWindow(0, "STATIC", "Empty", WS_VISIBLE | WS_CHILD, 192, 128, 48, 20, gethwnd(0), 0, 0, 0);
autocheck0[0] = CreateWindow(0, "BUTTON", "Координаты1", BS_AUTORADIOBUTTON | WS_VISIBLE | WS_CHILD, 8, 32, 100, 20, gethwnd(0), 0, 0, 0);
autocheck0[1] = CreateWindow(0, "BUTTON", "Координаты2", BS_AUTORADIOBUTTON | WS_VISIBLE | WS_CHILD, 8, 56, 100, 20, gethwnd(0), 0, 0, 0);
autocheck0[2] = CreateWindow(0, "BUTTON", "Координаты3", BS_AUTORADIOBUTTON | WS_VISIBLE | WS_CHILD, 8, 80, 100, 20, gethwnd(0), 0, 0, 0);
autocheck0[3] = CreateWindow(0, "BUTTON", "Координаты4", BS_AUTORADIOBUTTON | WS_VISIBLE | WS_CHILD, 8, 104, 100, 20, gethwnd(0), 0, 0, 0);
autocheck0[4] = CreateWindow(0, "BUTTON", "Координаты5", BS_AUTORADIOBUTTON | WS_VISIBLE | WS_CHILD, 8, 128, 100, 20, gethwnd(0), 0, 0, 0);
if(flag_autocheck0 > -1)sendmessage(BM_SETCHECK, BST_CHECKED, 0, formatiw(autocheck0[flag_autocheck0]));
for(i=0; i<10; i++)sendmessage(WM_SETFONT, h_font, TRUE, formatiw(static0[i]));
for(i=0; i<5; i++)sendmessage(WM_SETFONT, h_font, TRUE, formatiw(autocheck0[i]));
sendmessage(WM_SETFONT, h_font, TRUE, formatiw(staticX));
sendmessage(WM_SETFONT, h_font, TRUE, formatiw(staticY));
}

function getmessage(0, WM_COMMAND)
{
int i;
for(i=0; i<5; i++) // обработка нажатий галок переключателей
{
if(message.lparam == autocheck0[i])
{
flag_autocheck0 = i;
return;
}
}
}

function getmessage(0, WM_CLOSE)
{
WritePrivateProfileString ("Координаты", "координаты 1 х", format(static0[0]), path);
WritePrivateProfileString ("Координаты", "координаты 1 y", format(static0[1]), path);



DeleteObject(h_font);
goto global end_0; // переход в метке
// close(); // закрыть кибор
}

CREATE_TIMER(0, 50)
{
if(getkeystate(192))
{
while(getkeystate(192))sleep(10);
getmouse(MousePosX, MousePosY);
SetWindowText(static0[flag_autocheck0], format(MousePosX));
SetWindowText(static0[flag_autocheck0+5], format(MousePosY));
}
}

 
 Top
Zireael
Отправлено: 30 Апреля, 2023 - 10:36:10
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4399
Дата рег-ции: Нояб. 2017  
Репутация: 580




 Цитата:
А какие именно данные брать чтобы координаты сохранить? Пытаюсь static0 записать, но сохраняет другие значения.

В массиве static хранятся хендлы окон. А текст окна нужно получить функцией GetWindowText.
CODE:
function getmessage(0, WM_CLOSE)
{
char text[999];
GetWindowText(static0[0], address(#text[0]), sizearray(text));
WritePrivateProfileString ("Координаты", "координаты 1 х", format(#text[0]), path);
GetWindowText(static0[5], address(#text[0]), sizearray(text));
WritePrivateProfileString ("Координаты", "координаты 1 y", format(#text[0]), path);

DeleteObject(h_font);
goto global end_0; // переход в метке
// close(); // закрыть кибор
}
 
 Top
Martin
Отправлено: 04 Мая, 2023 - 15:31:38
Post Id



Пользователь
Мастер


Покинул форум
Сообщений всего: 121
Дата рег-ции: Июнь 2022  
Репутация: 1




Как сделать чтобы в комбо боксе если все слова не входят в заданную высоту то можно было бы листать вниз с помощью колеса прокрутки?
 
 Top
Zireael
Отправлено: 04 Мая, 2023 - 15:37:18
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4399
Дата рег-ции: Нояб. 2017  
Репутация: 580




 Цитата:
Как сделать чтобы в комбо боксе если все слова не входят в заданную высоту то можно было бы листать вниз с помощью колеса прокрутки?

При создании комбо добавить соответствующий стиль.
CODE:
#define WS_VSCROLL 0x00200000

 Цитата:
combobox0[0] = CreateWindow(0, "COMBOBOX", "", WS_VSCROLL | WS_VISIBLE | WS_CHILD | WS_BORDER | CBS_DROPDOWNLIST
 
 Top
Martin
Отправлено: 04 Мая, 2023 - 16:23:08
Post Id



Пользователь
Мастер


Покинул форум
Сообщений всего: 121
Дата рег-ции: Июнь 2022  
Репутация: 1




 Zireael пишет:
При создании комбо добавить соответствующий стиль.
Добавил.
И в комбо бокс тоже но не работает
CODE:
combobox0[0] =CreateWindow(0, "COMBOBOX", "", WS_VSCROLL | WS_VISIBLE | WS_CHILD | WS_BORDER | CBS_DROPDOWNLIST, 132, 192, 200, 346, gethwnd(0), 0, 0, 0);

(Добавление)
Не на тот комбо бокс добавил) всё работает спасибо!
 
 Top
Страниц (4): « 1 2 3 [4]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Вопросы и решение проблем »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by