Код (Отобразить)CODE:function Emulation_Effects()
{
getmouse(Mouse_x, Mouse_y);
int Handle_Controls = WindowFromPoint(Mouse_x, Mouse_y);
for (int i=0; i<sizearray(Object_Checkbox); i++)
{
if (Handle_Controls == Object_Checkbox[i] ||
Handle_Controls == Object_Checkbox2[i] ||
Handle_Controls == Object_Button1 ||
Handle_Controls == Object_Button2 ||
Handle_Controls == Object_Button3 ||
Handle_Controls == Object_Static3 ||
Handle_Controls == Object_Static4)
{
SetCursor(Object_Cursor1);
sleep(10);
break;
}
//===========
if (Handle_Controls == Object_Edit1)
{
SetCursor(Object_Cursor2);
sleep(10);
break;
}
//============
if (Flash == 1)
{
if(getkeystate(1) || getkeystate(2) || getkeystate(4))
{
setwindowparam(MainWindow);
Rect_Dialog[0] = MainWindow.left;
Rect_Dialog[1] = MainWindow.top;
Rect_Dialog[2] = MainWindow.left+MainWindow.width;
Rect_Dialog[3] = MainWindow.top+MainWindow.height;
if(Handle_Controls == gethwnd(0) || GetParent(Handle_Controls) == gethwnd(0))
{
if(PtInRect(address(#Rect_Dialog[0]), Mouse_x, Mouse_y))
{
FlashWindowEx(address(#FLASHWINFO[0]));
break;
}
}
}
}
}
}
Сейчас всё работает нормально, и не нужно лишнего гавна в столбик, и есть один минус, что при перемещении дочернего окна(Настройки) над основным(Основное, которое открывает настройки), начинает мигать, но не всегда, а так в целом нормально. А при щелчке ЛКМ, СКМ, ПКМ - по основному в момент открытых настроек блокировано само окно основное и кроме того настройки начинают мигать как задумывалось. Спасибо.
(Добавление)
Эту кучу так оставить?
CODE: if (Handle_Controls == Object_Checkbox[i] ||
Handle_Controls == Object_Checkbox2[i] ||
Handle_Controls == Object_Button1 ||
Handle_Controls == Object_Button2 ||
Handle_Controls == Object_Button3 ||
Handle_Controls == Object_Static3 ||
Handle_Controls == Object_Static4)
{
SetCursor(Object_Cursor1);
sleep(10);
break;
}
(Добавление)
Даже можно, например, добавить курсор для всех контролов "Руку"(C:\Windows\Cursors\aero_link.cur), а для эдита - луч(C:\Windows\Cursors\beam_r.cur). А еще, а эти курсоры нужно паковать в ресы? мало ли нету у кого их на компьютере.
(Добавление)
Почему при проверку Хеша изображения, он получается такой какой был? Ведь я удалил изоброажение, а после запуска кода Хеш остается таким же, хотя изображение удалено.
Я думал оно возрвратит что-то из ряда "-1" или же "0"
(Добавление)
Кому нужен код.
Код (Отобразить)CODE:
char Md5[32];
string Hash_Images[3] =
{"7330666d94ccf730d332fcf311e09eea",//вставить через копипастира
"33042642b0f9d1c13db4b3a43c540613",
"6aec253fda23825e879ac87cf822037a"};//свой хеш для 3 картинок(или более: изменить массив)
int Verify_Image[3];
for (int gh=0; gh<sizearray(Hash_Images); gh++)
{
if(fopen(temp_fold+"Image_"+format(gh)+".bmp", "r") != 0)//если открылся
{
if(HashMD5(temp_fold+"Image_"+format(gh)+".bmp", address(#Md5[0])))//читаем хеш
{
/*
writeclipboard(format(#Md5[0]));//записать в буфер хеш, что бы втсавить в массив
messagebox(format(#Md5[0]));//после каждого сообщения останавливать скрипт моментально (удерживая остановку скрипта, сочетание)
*/
if(format(#Md5[0]) == Hash_Images[gh])//сравниваем хеш с написанным, который в массиве
{
Verify_Image[gh] = 1;//если совпадает
}
else
{
Verify_Image[gh] = 0;//если нет
}
}
}
else
{
Verify_Image[gh] = 0;//если не открылась картинка
}
}
messagebox(Verify_Image[0]);//проверяем
messagebox(Verify_Image[1]);
messagebox(Verify_Image[2]);
(Добавление)
Где-то пару страниц выше должна быть библиотека и external просто я тороплюсь очень, завтра поищу.
(Добавление)
Этот код проверяет на открытие картинок, а так же на некий ключ, который изменяется взависимости от изменения изображения, если бы Md5 возращал переменную, при которой нету файла, то fopen не понадобился
(Добавление)
007wan пишет:
который изменяется взависимости от изменения изображения
Например, изменении в паинте