Автор Тема: Отключить все эффекты  (Прочитано 1277 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн SharkyEXE [?]

  • Новичок
  • *
  • Сообщений: 80

  • Автор темы
  • Репутация: 0
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Отключить все эффекты
« Ответ #30, Отправлен: Сентябрь 09, 2018, 17:09:36 »
InnI

Здравствуйте.

Честное слово , не обижайтесь , я не знал , даже думать страшно , что x86 приложения могут коряво не работать на x64 системах , всегда компилировал x86 Autoit - всегда отлично работало и на х86, и на х64 - первый случай, когда х86 не работает на х64, честное слово

Я вот тут что обнаружил.

1) Компиляция скрипта как x86
(нажмите для показа/скрытия)
Итого - запускается и работает на x86 системе, но запускается и не работает на x64 системе

2) Компиляция скрипта как x64 - все тоже самое , что x86 , только в самом верху добавлена строка
(нажмите для показа/скрытия)
(нажмите для показа/скрытия)
Итого - запускается и работает на x64 системе, но не запускается и не работает на x86 системе

Вывод - как мне сделать универсальную версию - x86_x64 ,  чтобы на x64 отработало как x64 , а на x86 отработало как x86
« Последнее редактирование: Сентябрь 09, 2018, 17:35:28 от SharkyEXE »
Скорблю и помню.


Русское сообщество AutoIt

Re: Отключить все эффекты
« Ответ #30 Отправлен: Сентябрь 09, 2018, 17:09:36 »

Оффлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 3973
  • Репутация: 1055
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Отключить все эффекты
« Ответ #31, Отправлен: Сентябрь 09, 2018, 17:42:27 »
В справке по функции ControlListView сказано:
Примечания
Некоторые команды не выполняются, когда используется 32-разрядный процесс AutoIt с применением к 64-разрядному процессу. Аналогично некоторые команды не выполняются когда используется 64-разрядный процесс AutoIt с применением к 32-разрядному процессу.


Объясняю. Получить доступ к информации о пункте х64-списка может только процесс х64. То же самое для х86. Когда вы вызываете окно "Звук" из панели управления, то запускается rundll32.exe *64, которая вызывает окно "Звук" с х64-списком. Работать с этим списком вы можете только из х64 скрипта. Если бы вы использовали
Код: AutoIt [Выделить]
ShellExecute("mmsys.cpl")

то система запустила бы ту rundll32.exe, разрядности которой сам скрипт. И с этой строкой скрипт х86 работал бы на обеих системах. Поэтому, при использовании запуска через панель управления нужно два скрипта для каждой разрядности.

А то, что х64 не запускается на х86, то так и должно быть. С этим вы ничего не сделаете.

Оффлайн SharkyEXE [?]

  • Новичок
  • *
  • Сообщений: 80

  • Автор темы
  • Репутация: 0
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Отключить все эффекты
« Ответ #32, Отправлен: Сентябрь 09, 2018, 17:51:05 »
Если бы вы использовали
Код: AutoIt [Выделить]
ShellExecute("mmsys.cpl")

то система запустила бы ту rundll32.exe, разрядности которой сам скрипт. И с этой строкой скрипт х86 работал бы на обеих системах.

Компиляция скрипта как x86
(нажмите для показа/скрытия)
Итого - запускается и работает на x86 системе, но запускается и не показывает вкладку "Дополнительные возможности" на x64 системе


Внимание: Для просмотра прикреплённых файлов необходимо Войти или Зарегистрироваться
« Последнее редактирование: Сентябрь 09, 2018, 17:56:52 от SharkyEXE »

Оффлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 3973
  • Репутация: 1055
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Отключить все эффекты
« Ответ #33, Отправлен: Сентябрь 09, 2018, 17:56:38 »
SharkyEXE  [?]
Цитировать
не показывает вкладку "Дополнительные возможности" на x64 системе
А это вам уже в Microsoft обращаться нужно. Здесь я вам не помогу.

Русское сообщество AutoIt

Re: Отключить все эффекты
« Ответ #33 Отправлен: Сентябрь 09, 2018, 17:56:38 »

Оффлайн SharkyEXE [?]

  • Новичок
  • *
  • Сообщений: 80

  • Автор темы
  • Репутация: 0
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Отключить все эффекты
« Ответ #34, Отправлен: Сентябрь 09, 2018, 18:26:47 »
InnI

Здравствуйте.

Пожалуйста, я Вас очень прошу, придумайте костыль, обход, ну неужели в 21м веке, в языке Autoit нельзя добиться универсальности, чтобы и х86, и х64

Вы упомянули
Поэтому, при использовании запуска через панель управления нужно два скрипта для каждой разрядности.

Пожалуйста, интегрируете фишку внутри одного кода, я Вас очень прошу

Тот же самый редирект, который я отключал - где нужно мне, работает 100%но

Оффлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 3973
  • Репутация: 1055
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Отключить все эффекты
« Ответ #35, Отправлен: Сентябрь 10, 2018, 01:51:17 »
Берёте рабочий скрипт, компилируете его под х86 и переименовываете в TurnOff.exe
Этот же скрипт компилируете под х64 и переименовываете в TurnOffx64.exe
В папке с этими двумя exe создаёте новый скрипт следующего содержания
Код: AutoIt [Выделить]
If @OSArch = "X86" Then
  FileInstall("TurnOff.exe", "*")
  RunWait("TurnOff.exe")
  FileDelete("TurnOff.exe")
Else
  FileInstall("TurnOffx64.exe", "*")
  RunWait("TurnOffx64.exe")
  FileDelete("TurnOffx64.exe")
EndIf

и компилируете этот скрипт под х86. Теперь этот (третий) exe будет содержать в себе оба предыдущих exe и при запуске распакует один из них, запустит и удалит по завершении.

Оффлайн SharkyEXE [?]

  • Новичок
  • *
  • Сообщений: 80

  • Автор темы
  • Репутация: 0
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Отключить все эффекты
« Ответ #36, Отправлен: Сентябрь 10, 2018, 22:57:15 »
InnI

Здравствуйте.

Тут вот при тесте бяка вылезла - не нажалась вкладка Дополнительные возможности, в которой есть строка Отключить все эффекты

Пожалуйста, я Вас очень прошу, сделайте поиск вкладки Дополнительные возможности и переключить на нее, т.е. использовать не
(нажмите для показа/скрытия)
а что-то типа того, что используется для поиска строки "Динамики"
(нажмите для показа/скрытия)
« Последнее редактирование: Сентябрь 11, 2018, 11:54:53 от SharkyEXE »

Оффлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 3973
  • Репутация: 1055
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Отключить все эффекты
« Ответ #37, Отправлен: Сентябрь 11, 2018, 12:04:27 »
Код: AutoIt [Выделить]
; ожидание элемента SysTabControl32
For $i = 0 To 9
  If ControlCommand("Свойства: Динамики", "", "SysTabControl321", "IsVisible") Then ExitLoop
  Sleep(30)
Next

; теперь выбирайте:

; или просто переключение на вкладку справа (2 раза)
ControlCommand("Свойства: Динамики", "", "SysTabControl321", "TabRight")
ControlCommand("Свойства: Динамики", "", "SysTabControl321", "TabRight")

; или поиск по названию и клик по вкладке
#include <GuiTab.au3>
$hTab = ControlGetHandle("Свойства: Динамики", "", "SysTabControl321")
$iTabItem = _GUICtrlTab_FindTab($hTab, "Дополнительные возможности")
If $iTabItem = -1 Then Exit MsgBox(262144, "Ошибка", "Вкладка 'Дополнительные возможности' не найдена")
_GUICtrlTab_ClickTab($hTab, $iTabItem)


Русское сообщество AutoIt

Re: Отключить все эффекты
« Ответ #37 Отправлен: Сентябрь 11, 2018, 12:04:27 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
5 Ответов
5232 Просмотров
Последний ответ Декабрь 02, 2011, 15:25:10
от neobi
1 Ответов
3891 Просмотров
Последний ответ Февраль 21, 2014, 17:57:27
от Dimmak
15 Ответов
3470 Просмотров
Последний ответ Июнь 15, 2014, 18:12:03
от bradu
0 Ответов
551 Просмотров
Последний ответ Январь 16, 2015, 08:47:05
от Primusx
2 Ответов
1351 Просмотров
Последний ответ Февраль 18, 2015, 21:45:41
от mir546
1 Ответов
1855 Просмотров
Последний ответ Февраль 07, 2016, 00:09:55
от Garrett
9 Ответов
3790 Просмотров
Последний ответ Февраль 19, 2016, 19:02:23
от weweWe45s
5 Ответов
620 Просмотров
Последний ответ Август 14, 2017, 13:27:09
от zz555
2 Ответов
440 Просмотров
Последний ответ Ноябрь 13, 2017, 22:28:07
от Alofa
1 Ответов
417 Просмотров
Последний ответ Октябрь 06, 2018, 18:37:19
от Tempo