Что нового

[Элементы GUI] Почему на Win8 не работает эле-нт GUICreate с использованием стилей resources.au

agikon

Знающий
Сообщения
789
Репутация
17
Столкнулся с ситуацией когда скрипт работает на winXP и на win7, а вот на Win8 не работает.
Ситуация следующая, в товарища стоит win8 и у него не работает вот такой код.
Код самый простой, просто построить шахматную доску.
так вот на Win8 не отображаются квадратики. (желтые и черные)

Код:
#include <resources.au3>

GUICreate('', 50, 50, 100, 100, $WS_POPUP, $WS_EX_TOPMOST,$WS_EX_TOOLWINDOW)
GUISetBkColor(0xbea117)
GUISetState()

GUICreate('', 50, 50, 150, 150, $WS_POPUP, $WS_EX_TOPMOST,$WS_EX_TOOLWINDOW)
GUISetBkColor(0x000000)
GUISetState()

GUICreate('', 50, 50, 200, 200, $WS_POPUP, $WS_EX_TOPMOST,$WS_EX_TOOLWINDOW)
GUISetBkColor(0xbea117)
GUISetState()

GUICreate('', 50, 50, 250, 250, $WS_POPUP, $WS_EX_TOPMOST,$WS_EX_TOOLWINDOW)
GUISetBkColor(0x000000)
GUISetState()

while 1
	sleep(10)
wend


У кого есть возможность запустить этот код на win8, пожалуйста отпишитесь.
в чём может быть дело?
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
а причем тут resources.au?
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
17
joiner [?]
а причем тут resources.au?
resources.au создаёт стили $WS_POPUP, $WS_EX_TOPMOST,$WS_EX_TOOLWINDOW

Ведь простой элемент GUICreate (без стилей) в win8 создается и отображается, например GUICreate('', 50, 50, 100, 100)
а вот если со стилями $WS_POPUP, $WS_EX_TOPMOST,$WS_EX_TOOLWINDOW то не создаётся. или во всяком случае они не отображаются (квадратики)

Вы запускали именно на win8 этот скрипт? отображаются квадратики?
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
в данном варианте скрипт вообще не работает, так как для стилей нужно WindowsConstants.au3
 

erlik

Продвинутый
Сообщения
317
Репутация
84
agikon
Пока могу сказать одно - на моей win 8 x32 все отображается нормально. Так что дело не в версии ОС, а в чем то другом.
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
17
joiner [?]
в данном варианте скрипт вообще не работает, так как для стилей нужно WindowsConstants.au3
ну у меня на xp и win7 компилируется на одной #include <resources.au3>
erlik [?]
Пока могу сказать одно - на моей win 8 x32 все отображается нормально. Так что дело не в версии ОС, а в чем то другом.
а на 64 битной кто-то может проверить? или разницы не будет?
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
agikon
компилируется это не значит что правильно..
#include <resources.au3> для работы с ресурсами а у тебя используются константы..
что рассуждать, ты дописал в скрипт WindowsConstants.au3 ?
 

erlik

Продвинутый
Сообщения
317
Репутация
84
agikon
а на 64 битной кто-то может проверить
Сорри, совсем забыл - я же снес свою 32-битку и поставил 64-битную. Так что проблема с разрядностью, думаю, отпадает.
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
17
joiner [?]
что рассуждать, ты дописал в скрипт WindowsConstants.au3
я конечно же спорить не буду, но при компиляции нет никаких ошибок, и этот код на xp и win7 работает олично, а вот на вин8 запускается но ничего не отображается.
а вот если компилировать без resources.au3 то выдаёт ошибку и скрипт не компилируется.
может у вас виндовс другая, или в WindowsConstants.au3 уже вшиты функции resources.au3.
иначе сами подумайте как бы оно у меня работало без нужных библиотек?
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
agikon
код из первого сообщения твой темы не работает без WindowsConstants.au3. ты упорно споришь о том, что белое это черное.
 

Вложения

  • help.jpg
    help.jpg
    58.4 КБ · Просмотры: 13
  • help1.jpg
    help1.jpg
    78.5 КБ · Просмотры: 20

erlik

Продвинутый
Сообщения
317
Репутация
84
agikon
Вот ты зря споришь со старшими. Тебе дело говорят - resources.au3 вообще никакого отнощения к стилям не имеет.
А вот WindowsConstants.au3 - имеет. Хочешь доказать свое - заливай архив с инклудами. Может у тебя там понапихано совсем не то, что у всех. Я твой скрипт запускал и компилил без resources.au3, но с WindowsConstants.au3, потому что иначе не запускается. И не должно запускаться. Может у тебя вообще запускается потому, что версия resources.au3 древняя и в ней, возможно, были когда то определены константы стилей. В версии от 20.06.2011 никаких $WS_EX_TOPMOST,$WS_EX_TOOLWINDOW нет. И еще - ты неправильно аргументы в функцию передал. Нужно вот так
Код:
BitOr($WS_EX_TOPMOST,$WS_EX_TOOLWINDOW)
, а иначе порядок параметров нарушен и $WS_EX_TOOLWINDOW воспринимаается как дескриптор родительского окна.
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
17
joiner
я не спорю, я прост оговорю как есть.
Вот смотрите.
Вот такой использую файл resources.au3 http://slil.ru/uploaded/a73Eb
и вот видео с компиляцией, разве на видео есть ошибки? http://slil.ru/uploaded/a8jqV
И скрипт работает, вот только на xp и вин7.


ps
хотя попробовал компилировать без resources.au3 но с WindowsConstants.au3, и тоже нормально компилируется. Может реально в этом дело? но почему тогда скипт скомпилированый на resources.au3 раьотает на xp и вин7 ?
 

erlik

Продвинутый
Сообщения
317
Репутация
84
agikon
Ну я же тебе сказал, что твой файл resources.au3 иной, нежели чем у меня или joiner'а.
В твоем включен инклуд #include <APIConstants.au3>, а тот в свою очередь подключает
#Include <BorderConstants.au3>
#Include <Constants.au3>
#Include <FileConstants.au3>
#Include <FontConstants.au3>
#Include <FrameConstants.au3>
#Include <MemoryConstants.au3>
#Include <MenuConstants.au3>
#Include <ProcessConstants.au3>
#Include <SecurityConstants.au3>
#Include <WindowsConstants.au3>
Теперь ясно почему и так и эдак работает? В моем resources.au3 инклуда <APIConstants.au3> нет.
Идем дальше. Качаем последний resources.au3, открываем и что мы видим - там нет данного инклуда. Вывод - ты используешь старую версию resources.au3, о чем я тебе уже намекал.
Надеюсь с этим разобрались? Теперь дальше - раз мы выяснили, что resources.au3 для твоего скрипта не нужен, то используй <WindowsConstants.au3>. У меня все отлично работает - на версии AutoIT 3.3.8.1 и при компиляци в 32-битный вариант. Теперь вопрос к тебе - какая версия AutoIT у тебя? Потому что нельзя исключать, что трабла может быть и из-за этого.
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
17
erlik
тоже 3.3.8.1
Кстати, скипт не работает на вин8, а ведь есть ещё и вин8.1.
Вы в какой виндовс запускали скрипт? может в этом дело?
 

erlik

Продвинутый
Сообщения
317
Репутация
84
agikon
Ну что, не помнишь какую версию скачивал и устанавливал?
Свойства файла AutoIt3.exe-> вкладка Подробно. Или просто наведи курсор на файл и в тексте всплывающей подсказки все написано.


Добавлено:
Сообщение автоматически объединено:

--------------------------------------------
Да, я запускал на 8.1. Для меня 8.0 - это не ОС, а огрызок. Что - кто то еще не обновился?!
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
17
erlik [?]
Да, я запускал на 8.1. Для меня 8.0 - это не ОС, а огрызок. Что - кто то еще не обновился?!
ну значит в этом всё и дело.
думаю, на этом логическом заключении тему можно закрыть.
Спасибо за помощь!

ps
а что теперь темы не надо закрывать?
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
agikon [?]
а что теперь темы не надо закрывать?

[info border=#0000ff float=left]На форуме принято помечать тему решенной после получения ответа на свой вопрос!
Вверху или внизу темы нажмите на ссылку такого вида:
package_old.gif
Тема не решена
[/info]
 

Коршун

Новичок
Сообщения
58
Репутация
1
А я не обновлял)
И у меня квадратики рисуются. 32 разряда
 
Верх