Кибор » Кибор - Интегрированная среда разработки ботов » О программе Кибор » Версия 6.04 Открытие скриптов перетаскиванием файла в окно программы. Вывод BMP файлов в Графике перетаскиванием файла в окно программы.

Страниц (1): [1]
 

1. Kibor - 28 Января, 2022 - 08:24:12 - перейти к сообщению
Стало возможно открывать TXT скрипты перетащив их мышью в окно Кибор во вкладке Код и Щпион.
Во вкладку Графика можно перетащить BMP файл, который выведется в Кибор на месте скрина для работы с ним.
2. Dantes3000 - 28 Января, 2022 - 16:41:01 - перейти к сообщению
 Kibor пишет:
Стало возможно открывать TXT скрипты перетащив их мышью в окно Кибор во вкладке Код и Щпион

у меня не работает
3. Zireael - 28 Января, 2022 - 16:51:45 - перейти к сообщению
 Цитата:
у меня не работает

Вариантов 2:
1. Запустить кибор без прав администратора, тогда сработает.
2. Запустить explorer.exe с правами администратора, тогда и кибор можно запускать с правами.
4. ivantu - 29 Января, 2022 - 02:12:43 - перейти к сообщению
Без прав админа работает, но это замкнутый круг, т.к. кибор без прав админа , не кибор ))
5. Kibor - 29 Января, 2022 - 02:21:38 - перейти к сообщению
Посмотрел. Это в 10.. Позже посмотрю что там..
6. ivantu - 29 Января, 2022 - 02:48:17 - перейти к сообщению
 Kibor пишет:
Посмотрел. Это в 10.. Позже посмотрю что там..


Все верно у меня 10-ка
7. Kibor - 29 Января, 2022 - 06:09:04 - перейти к сообщению
Сделал. Работает везде.
8. Zireael - 29 Января, 2022 - 09:51:59 - перейти к сообщению
 Цитата:
Сделал. Работает везде.

Если не секрет что нужно было исправить чтобы заработало?

Если возможно, то добавить проверку что перетаскивание было сделано именно в окно кибор, для диалоговых окон не выводить сообщения.
CODE:
#define WS_VISIBLE 0x10000000
#define WS_CHILD 0x40000000
#define ES_MULTILINE 0x0004
#define TRUE 1

external(INT, "DragAcceptFiles", "DragAcceptFiles", "Shell32.dll");
external(INT, "DragQueryFile", "DragQueryFileA", "Shell32.dll");
external(INT, "DragFinish", "DragFinish", "Shell32.dll");
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll" );

int static;
createdialog(0);
showdialog(0, "Диалог", 500, 200, 300, 300, 1, 1);


loop()sleep(10);


function getmessage(0, WM_CREATE)
{
DragAcceptFiles(gethwnd(0), TRUE);
static = CreateWindow(0, "STATIC", "В это окно можно перетащить файлы", WS_CHILD | WS_VISIBLE, 80, 100, 150, 150, gethwnd(0), 0, 0, 0);
}


function getmessage(0, WM_DROPFILES)
{
int hDrop = message.wparam;
char path[256];
int count = DragQueryFile(hDrop, -1, address(#path[0]), sizearray(path));
resettextout(1);
messagebox("Всего перенесено файлов: "+format(count));
for(int i=0; i<count; i++) // вывод списка файлов
{
DragQueryFile(hDrop, i, address(#path[0]), sizearray(path));
textout(i, 0, i*20, format(#path[0]), 1);
}
DragFinish(hDrop);
}
9. Kibor - 29 Января, 2022 - 10:00:50 - перейти к сообщению
 Zireael пишет:
Если не секрет что нужно было исправить чтобы заработало?


CODE:
#define WS_VISIBLE 0x10000000
#define WS_CHILD 0x40000000
#define ES_MULTILINE 0x0004
#define TRUE 1

//ДОБАВЛЕНИЕ
#define MSGFLT_ALLOW 1

external(INT, "DragAcceptFiles", "DragAcceptFiles", "Shell32.dll");
external(INT, "DragQueryFile", "DragQueryFileA", "Shell32.dll");
external(INT, "DragFinish", "DragFinish", "Shell32.dll");
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll" );

//ДОБАВЛЕНИЕ
external(INT, "ChangeWindowMessageFilter", "ChangeWindowMessageFilter", "User32.dll" );

int static;
createdialog(0);
showdialog(0, "Диалог", 500, 200, 300, 300, 1, 1);

loop()sleep(10);

function getmessage(0, WM_CREATE)
{
//ДОБАВЛЕНИЕ
ChangeWindowMessageFilter (WM_DROPFILES, MSGFLT_ALLOW);
ChangeWindowMessageFilter (WM_COPYDATA, MSGFLT_ALLOW);
ChangeWindowMessageFilter (0x0049, MSGFLT_ALLOW);

DragAcceptFiles(gethwnd(0), TRUE);
static = CreateWindow(0, "STATIC", "В это окно можно перетащить файлы", WS_CHILD | WS_VISIBLE, 80, 100, 150, 150, gethwnd(0), 0, 0, 0);
}


function getmessage(0, WM_DROPFILES)
{
int hDrop = message.wparam;
char path[256];
int count = DragQueryFile(hDrop, -1, address(#path[0]), sizearray(path));
resettextout(1);
messagebox("Всего перенесено файлов: "+format(count));
for(int i=0; i<count; i++) // вывод списка файлов
{
DragQueryFile(hDrop, i, address(#path[0]), sizearray(path));
textout(i, 0, i*20, format(#path[0]), 1);
}
DragFinish(hDrop);
}


 Zireael пишет:
Если возможно, то добавить проверку что перетаскивание было сделано именно в окно кибор, для диалоговых окон не выводить сообщения.

Исправлю.
(Добавление)
 Zireael пишет:
Если возможно, то добавить проверку что перетаскивание было сделано именно в окно кибор, для диалоговых окон не выводить сообщения.

Поправил.

Powered by ExBB FM 1.0 Final