Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » вопрос по external и др

Страниц (22): В начало « ... 3 4 5 6 [7] 8 9 10 11 ... » В конец
 

61. Zireael - 16 Марта, 2019 - 08:47:59 - перейти к сообщению
 Цитата:
Нашел вот

И что нужно? Узнать сколько памяти занимает приложение?
62. 007wan - 16 Марта, 2019 - 09:01:53 - перейти к сообщению
Zireael , Узнать ЦП в %, у меня визуальное окно жрет много и комп виснет. На мощном компьютрере почти за 60% заходит, а на старом, не смотрел, но виснет хорошо, да и софт там галимый, я хочу узнать сколько будет в %, что бы он автоматически отключал визуальное окно при определенном % загрузки ЦП
(Добавление)
А еще не могу найти как добавить текст в Эдит, потому что SendMessage(Edit1, WM_SETTEXT, 0, "Текст", 0); Только заменяет, а не добавляет в эдит или же если такого нету, то тогда как перевести строку в эдит и добавить последующий текст

А еще UPPERCASE и LOWERCASE не пашут, хотя я прочитал и там написано, что нужно SetWindowLong, может сюда что-то надо добавить? SetWindowLong(HWND, -16, GetWindowLong(HWND, -16)+WS_SIZEBOX);
63. Zireael - 16 Марта, 2019 - 09:16:12 - перейти к сообщению
 Цитата:
Узнать ЦП в %

CODE:
external(INT, "GetSystemTimes", "GetSystemTimes", "Kernel32.dll");

int idle[2], idle2[2];
int kernel[2], kernel2[2];
int user[2], user2[2];

loop()
{
GetSystemTimes(address(#idle2[0]), address(#kernel2[0]), address(#user2[0]));
sleep(1400); // подобрать значение
GetSystemTimes(address(#idle[0]), address(#kernel[0]), address(#user[0]));

int sys = (user[0] - user2[0]) + (kernel[0] - kernel2[0]);
int cpu = (sys - idle[0] + idle2[0]) * 100 / sys;
if(cpu<=100)textout(0, 300, 300, "Загрузка цп "+format(cpu)+"%", 2);
}

 Цитата:
А еще UPPERCASE и LOWERCASE не пашут

CODE:
#define WS_VISIBLE 268435456
#define WS_CHILD 1073741824
#define WS_BORDER 8388608
#define ES_UPPERCASE 8
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll" );

int edit1;

createdialog(0);
showdialog(0, "Диалог", 100, 100, 300, 300, 1, 1);


loop()sleep(1);

function getmessage(0, WM_CREATE)
{
edit1=CreateWindow(0, "EDIT", "", WS_VISIBLE | WS_CHILD | WS_BORDER | ES_UPPERCASE, 10, 10, 100, 20, gethwnd(0), 0, 0, 0);
}

 Цитата:
как добавить текст в Эдит

Получить текст, добавить нужный текст, изменить текст в edit.
64. 007wan - 16 Марта, 2019 - 09:40:49 - перейти к сообщению
 Zireael пишет:
Zireael , Если я правильно понял, то UPPERCASE преобразует верхний текст в нижний регистр я так же все сделал и подумал, что он все верхний символы вбивает внизу, это так? или как? что вообще означают эти оба))
CODE:
#define WS_VISIBLE 268435456
#define WS_CHILD 1073741824
#define WS_BORDER 8388608
#define ES_UPPERCASE 8
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll" );

int edit1;

createdialog(0);
showdialog(0, "Диалог", 100, 100, 300, 300, 1, 1);


loop()sleep(1);

function getmessage(0, WM_CREATE)
{
edit1=CreateWindow(0, "EDIT", "", WS_VISIBLE | WS_CHILD | WS_BORDER | ES_UPPERCASE, 10, 10, 100, 20, gethwnd(0), 0, 0, 0);
}
65. Zireael - 16 Марта, 2019 - 09:44:27 - перейти к сообщению
 Цитата:
UPPERCASE преобразует верхний текст в нижний регистр

При вводе маленьких букв преобразует их в большие.
66. 007wan - 16 Марта, 2019 - 09:46:51 - перейти к сообщению
CODE:
#define WS_VISIBLE 268435456
#define WS_CHILD 1073741824
#define WS_BORDER 8388608
#define ES_UPPERCASE 8
#define ES_LOWERCASE 16
#define ES_AUTOHSCROLL 128
#define ES_UPPERCASE 8
#define ES_MULTILINE 4
#define ES_WANTRETURN 4096
#define ES_LOWERCASE 16
#define ES_READONLY 2048
#define WS_VISIBLE 268435456
#define WS_CHILD 1073741824
#define WS_BORDER 8388608
#define WS_SIZEBOX 262144
#define WS_CHILD 1073741824
#define WS_HSCROLL 1048576
#define WS_VSCROLL 2097152
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll" );

int edit1;

createdialog(0);
showdialog(0, "Диалог", 100, 100, 300, 300, 1, 1);


loop()sleep(1);

function getmessage(0, WM_CREATE)
{
edit1=CreateWindow(0, "EDIT", "Этот текст должен быть в самом внизу ", ES_MULTILINE | ES_AUTOHSCROLL | ES_WANTRETURN | WS_HSCROLL | WS_VSCROLL | WS_VISIBLE | WS_CHILD | WS_BORDER | ES_UPPERCASE, 10, 10, 200, 200, gethwnd(0), 0, 0, 0);
}

(Добавление)
Zireael , Ааааа. Блин.
(Добавление)
Zireael , А что получается никак не сдалать это: весь вводимый текст оседает внизу эдита(вверху код) и поднимается вверх?
67. 007wan - 16 Марта, 2019 - 12:37:31 - перейти к сообщению
Я конечно могу старым способом, даже тема была по этому поводу, но может есть способ по короче и через эту директиву
(Добавление)
Ай, и код я к сожалению просрал
68. Zireael - 16 Марта, 2019 - 13:58:09 - перейти к сообщению
 Цитата:
весь вводимый текст оседает внизу эдита(вверху код) и поднимается вверх?

code (Отобразить)
69. 007wan - 17 Марта, 2019 - 03:01:18 - перейти к сообщению
ДА, именно это, но текст должен идти не вниз, а вверх...
(Добавление)
Ну ладно. И так сойдет.
А можно ли с помощью external реализовать связь с другими программами и посылать им команды?
(Добавление)
И наоборот. Они мне.
(Добавление)
А как найти нужное окно с помощью external? просто хочу посмотреть: выйдет больше кода или нет и смотря какой там метод используется(для просмотра ссылки Вам необходимо авторизоваться)
70. Zireael - 17 Марта, 2019 - 11:24:56 - перейти к сообщению
 Цитата:
А можно ли с помощью external реализовать связь с другими программами и посылать им команды?

Sendmessage и все функции что используют хендл.
 Цитата:
А как найти нужное окно с помощью external?

CODE:
external(INT, "FindWindow", "FindWindowA", "User32.dll");

int handle;
string name="Новый текстовый документ.txt — Блокнот"; // имя окна
string class="Notepad"; // класс окна


handle=FindWindow(class, 0); // поиск по классу
if(handle)messagebox("Хендл окна: "+format(handle));
else messagebox("Окно по классу не найдено");

handle=FindWindow(0, name); // поиск по имени
if(handle)messagebox("Хендл окна: "+format(handle));
else messagebox("Окно по имени не найдено");

handle=FindWindow(class, name); // поиск по классу и имени
if(handle)messagebox("Хендл окна: "+format(handle));
else messagebox("Окно по классу и имени не найдено");

// win w=window (-1, "Notepad", -1);
// messagebox("Хендл: "+format(formatwi(w)));

FindWindow не ищет дочерние окна. Если окон несколько, находит то, которое было активно последним, в отличие от функции window(), которая находит первое запущенное окно.

Powered by ExBB FM 1.0 Final