26 (изменено: Malcev, 2018-11-13 19:38:11)

Re: AHK: при запуске более одного макроса, перестают работать.

baplo пишет:

Как устранить этот косяк, уже задрало

Поставьте Windows 7 Professional и проверьте.

27

Re: AHK: при запуске более одного макроса, перестают работать.

Malcev пишет:
baplo пишет:

Как устранить этот косяк, уже задрало

Поставьте Windows 7 Professional и проверьте.

Она дорого стоит.

Если по делу, я нашел в чем проблема.
Проблема оказалась в моём графическом планшете.

Не знаю в чем проблема. но когда он воткнут в системник, то макросы перестают работать.
Видимо недоработка AHK программы.

Люблю когда мне понижают репутацию (мне правда все равно)

28

Re: AHK: при запуске более одного макроса, перестают работать.

Рисование с планшета нестандартная ф-сть для windows, уверен что впридачу к планшету шел софт для эмуляции мыши, который вы сами и установили.
Недоработка у вас в другом месте.

29

Re: AHK: при запуске более одного макроса, перестают работать.

stealzy, сразу видно, что вы не понимаете что такое планшет.
Для Windows это нормальное устройство.
Эмуляции мыши никакой в этом устройстве нет.
Никакого софта устанавливать не нужно.
Дело тут явно в AHK, т.к AHK не учла другие устройства, отсюда появились и баги в скрипте.

Люблю когда мне понижают репутацию (мне правда все равно)

30

Re: AHK: при запуске более одного макроса, перестают работать.

baplo пишет:

Дело тут явно в AHK, т.к AHK не учла другие устройства

Если вы так считаете, то пишите на оф.форум в баг репорт.
У меня такого устройства нет, но как я понимаю, что если не устанавливать на него драйвер, то винда берет свой.
Возможно виндовский драйвер отключает мышиные горячие кнопки.
А возможно дело в вашей системе, так как только у вас на ноутбуке обновления влияли на работу горячих кнопок.

31

Re: AHK: при запуске более одного макроса, перестают работать.

Malcev

А тут я уже не уверен влияли ли обновления на ноутбуке, т.к я мог просто планшет вырубить в тот момент.

Ладно, проехали.

Люблю когда мне понижают репутацию (мне правда все равно)

32 (изменено: upsi_daezium, 2018-11-29 17:26:51)

Re: AHK: при запуске более одного макроса, перестают работать.

teadrinker пишет:

У меня одновременно работают примерно 7 скриптов, некоторые из них скомпилированные, в некоторых есть заданные горячие клавиши, в одном их около 100.

Было бы интересно ознакомиться.

33

Re: AHK: при запуске более одного макроса, перестают работать.

Как вы себе это представляете? Создать тему «Мои скрипты» и выложить все подряд? А потом объяснять, как они работают.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

34

Re: AHK: при запуске более одного макроса, перестают работать.

teadrinker сначала можете выложить скрипт в котором около 100 горячих клавишь, например. Ну или самый самый, без которого "как без рук".
Вот наши зарубежные товарищи постоянно выкладывают свои скрипты, везде пишут кто это сделал, библиотеки называют своим именем. Действительно можно многое подсмотреть. Мы, к сожалению, по этому параметру остаем.
Всегда интересно посмотреть на чужой workflow, интересно как человек решил задачу.
А по-поводу "объяснять как работают", так то что вы на форуме выкладывали вроде выглядит понятно и прилично, врятли вы когда писали чисто для себя придерживались кардинально другого стиля.

35

Re: AHK: при запуске более одного макроса, перестают работать.

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

upsi_daezium пишет:

то что вы на форуме выкладывали вроде выглядит понятно и прилично

Часть кода, которым я пользуюсь, написана давно, и выглядит по моим нынешним представлениям не очень прилично, а причесать руки не доходят, работает — и ладно.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

36

Re: AHK: при запуске более одного макроса, перестают работать.

teadrinker пишет:

Часть кода, которым я пользуюсь, написана давно, и выглядит по моим нынешним представлениям не очень прилично, а причесать руки не доходят, работает — и ладно.

Такая же фигня.

37

Re: AHK: при запуске более одного макроса, перестают работать.

Понимаю, что вы люди скромные.
Но, все равно, выкладывайте!
Если работает и работает, то кто-то возьмет себе и у него так же будет работать. Кто-то может перепишет на современный манер. Библиотеки можно и присовокупить.

38

Re: AHK: при запуске более одного макроса, перестают работать.

Да ну, потом скажут — знаем мы этого teadrinker'a, тот ещё говнокодер.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

39

Re: AHK: при запуске более одного макроса, перестают работать.

В принципе, наверное, идея интересная для тех, кто хочет что-нибудь соптимизировать, но не знает чего.
То есть тут прежде всего ценится идея, а исполнение дело десятое...
Мне показать нечего, так как скрипты запускаю либо при работе со специфическим софтом для специфических задач (автоматизация субтитрования в адобе премьер либо работы с hp remote receiver вряд ли кого-то заинтересует), либо для автоматизации личных (непубличных) задач в интернете.

40 (изменено: upsi_daezium, 2018-11-30 13:53:14)

Re: AHK: при запуске более одного макроса, перестают работать.

teadrinker пишет:

Да ну, потом скажут — знаем мы этого teadrinker'a, тот ещё говнокодер.

Да нет, что вы, скажут — вот это программист, вот это уровень! Ну если уж вы настолько сомневающийся в себе человек, то можно запостить из под нового аккаунта, "чтобы никто не догадался". Вообще, слишком уж вы переживаете, как говорится "морду-то вам за это на набьют".
Malcev так и начните, а то получается "да да, было бы неплохо, но только не я!". Очень заинтересует, а личную информацию из личных же задач можно удалить.
Оптимизацией-перепиской я мог бы занятся, собственно, как раз делаю это со своими старыми скриптами, потому что мой уровень несколько подрос.
Надо самим развиваться и развивать русскоязычное AHK сообщество, а не ошибки в сообщениях новичкам исправлять.

41

Re: AHK: при запуске более одного макроса, перестают работать.

upsi_daezium пишет:

Malcev так и начните, а то получается "да да, было бы неплохо, но только не я!"

Лично меня тема чужих скриптов не интересует, потому что всё, что мне необходимо в работе я уже оптимизировал.

upsi_daezium пишет:

а личную информацию из личных же задач можно удалить

Там не личная информация, а личные задачи, которые афишировать не хочу.
Наработками, которыми я хотел поделиться, я уже поделился - можете посмотреть созданные мной темы.
Ну и наверное есть пару наработок в чужих темах, навскидку помню - обменивание информацией через гитхаб, автоматизация инстаграма через неофициальный апи, автоматизация скайпа через веб-интерфейс, управление тимвьюерами.

upsi_daezium пишет:

Очень заинтересует

Ну например чем вам может пригодиться такой скрипт?
Скрипт, который при нажатии q,w увеличивает/уменьшает размер выделенного клипа на линейке премьера.
Создаём файлы:
1) C:\Program Files (x86)\Common Files\Adobe\CEP\extensions\test\index.html

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<script src="./lib/CSInterface.js"></script>
<script type="text/javascript">
var csInterface = new CSInterface();
csInterface.registerKeyEventsInterest(JSON.stringify([
{"keyCode": 0x51},  //q
{"keyCode": 0x57}   //w
]));

function evalScriptCallback(result)
{
   if (result !== "undefined")
      document.getElementById("selected").value = result;
}

function keyDownInBody(event)
{
   if (event.keyCode == 0x51)   //q
   {
      var ControlledEffect = "AE.ADBE Motion";   //effect matchName
      var ControlledProperty = 1;   //effect property scale
      var step = 1;   //increase/decrease value
      csInterface.evalScript('var ControlledEffect = "' + ControlledEffect + '"; var ControlledProperty = ' + ControlledProperty + '; var step = ' + step + '; ' + document.getElementById("selected").value + '$._PPP_.ChangeEffectParameters()', evalScriptCallback);
   }
   else if (event.keyCode == 0x57)   //w
   {
      var ControlledEffect = "AE.ADBE Motion";   //effect matchName
      var ControlledProperty = 1;   //effect property scale
      var step = -1;   //increase/decrease value
      csInterface.evalScript('var ControlledEffect = "' + ControlledEffect + '"; var ControlledProperty = ' + ControlledProperty + '; var step = ' + step + '; ' + document.getElementById("selected").value + '$._PPP_.ChangeEffectParameters()', evalScriptCallback);
   }
}

</script>
</head>
<body onkeydown="keyDownInBody(event)">
<input type="text" id="selected" value="var SelectedTrack = 0; var SelectedClip = 0; var SelectedEffect = 0;">
</body>
</html>

2) C:\Program Files (x86)\Common Files\Adobe\CEP\extensions\test\PProPanel.jsx

$._PPP_={

ChangeEffectParameters: function()
{
   var NowSelectedTrack = SelectedTrack; var NowSelectedClip = SelectedClip; var NowSelectedEffect = SelectedEffect;
   try {
      var videoTracks = app.project.activeSequence.videoTracks;
   }
   catch(err) {
      alert("Error!\nNo active sequence!");
      return
   }
   try {
      if (videoTracks[SelectedTrack].clips[SelectedClip].isSelected())
         var clip = videoTracks[SelectedTrack].clips[SelectedClip];
   }
   catch(err) {
   }
   if (!clip)
   {
      exit_loops:
      for (var i=0 ; i< videoTracks.numTracks ; i++)
      {
         for (var k=0 ; k< videoTracks[i].clips.numItems ; k++)
         {
            if (videoTracks[i].clips[k].isSelected())
            {
               var NowSelectedTrack = i; var NowSelectedClip = k;
               var clip = videoTracks[i].clips[k];
               break exit_loops;
            }
         }
      }        
   }
   if (!clip)
   {
      alert("Error!\nNo clip selected!");
      return
   }
   
   var effects = clip.components;
   try {
      if (effects[SelectedEffect].matchName == ControlledEffect)
         var effect = effects[SelectedEffect];
   }
   catch(err) {
   }
   if (!effect)
   {
      for (var l=0 ; l< effects.numItems ; l++)
      {
         if (effects[l].matchName == ControlledEffect)
         {
            var NowSelectedEffect = l;
            var effect = effects[l];
            break;
         }
      }
   }
   if (!effect)
   {
      alert("Error!\nNo such effect!");
      return
   }

   var property = effect.properties[ControlledProperty];
   if (property.isTimeVarying())
   {
      alert("Error!\nParameter has keyframes!");
      return
   }
   var value = property.getValue();
   property.setValue(value + step, true);
   if (NowSelectedTrack == SelectedTrack && NowSelectedClip == SelectedClip && NowSelectedEffect == SelectedEffect)
      return
   else
      return ('var SelectedTrack = ' + NowSelectedTrack + '; var SelectedClip = ' + NowSelectedClip + '; var SelectedEffect = ' + NowSelectedEffect + ';');
}

}

3) C:\Program Files (x86)\Common Files\Adobe\CEP\extensions\test\CSXS\manifest.xml

<?xml version="1.0" encoding="UTF-8"?>
<!--
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2014 Adobe
* All Rights Reserved.
*
* NOTICE: Adobe permits you to use, modify, and distribute this file in
* accordance with the terms of the Adobe license agreement accompanying
* it. If you have received this file from a source other than Adobe,
* then your use, modification, or distribution of it requires the prior
* written permission of Adobe.
**************************************************************************/
-->    
<ExtensionManifest Version="5.0" ExtensionBundleId="com.adobe.PProPanel" ExtensionBundleVersion="11.1"
ExtensionBundleName="Premiere Pro sample panel"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <ExtensionList>
        <Extension Id="com.adobe.PProPanel" Version="10.3.0" />
    </ExtensionList>
    <ExecutionEnvironment>
        <HostList>
            <Host Name="PPRO" Version="9.0" />
        </HostList>
        <LocaleList>
            <Locale Code="All" />
        </LocaleList>
        <RequiredRuntimeList>
            <RequiredRuntime Name="CSXS" Version="6.0" />
        </RequiredRuntimeList>
    </ExecutionEnvironment>

    <DispatchInfoList>
        <Extension Id="com.adobe.PProPanel">
            <DispatchInfo >
                <Resources>
                    <MainPath>./index.html</MainPath>
                    <ScriptPath>./PProPanel.jsx</ScriptPath>
                    <CEFCommandLine>
                        <Parameter>--allow-file-access</Parameter>
                        <Parameter>--allow-file-access-from-files</Parameter>
                    </CEFCommandLine>
                </Resources>
                <Lifecycle>
                    <AutoVisible>false</AutoVisible>
                    <StartOn>
                        <!-- Premiere Pro dispatches this event on startup -->
                        <Event>com.adobe.csxs.events.ApplicationActivate</Event>
                    </StartOn>
                </Lifecycle>
                <UI>
                    <Type>Modeless</Type>
                    <Menu>PProPanel (SDK sample panel)</Menu>
                    <Geometry>
                        <Size>
                            <Height>300</Height>
                            <Width>180</Width>
                        </Size>
                    </Geometry>
                </UI>
            </DispatchInfo>
        </Extension>
    </DispatchInfoList>
</ExtensionManifest>

Скрипт автохотки:

SleepDuration := 5
FirstPressDelay := 0.15

#InstallKeybdHook
#InstallMouseHook
#UseHook
DetectHiddenWindows, On

#If WinActive("ahk_exe Adobe Premiere Pro.exe") and WinExist("Script Alert ahk_exe Adobe Premiere Pro.exe")
q::
w::
return

#If WinActive("ahk_exe Adobe Premiere Pro.exe")
q::
w::
SetBatchLines -1
SetKeyDelay, -1, -1
If (A_PriorKey != "q") and (A_PriorKey != "w")
{
   SetControlDelay -1
   ControlClick, Chrome_WidgetWin_01, ahk_exe Adobe Premiere Pro.exe, Chrome Legacy Window,,, NA
   loop
   {
      ControlGetFocus, Focus, ahk_exe Adobe Premiere Pro.exe, Chrome Legacy Window
      if (Focus = "Chrome_WidgetWin_01")
         break
   }
}
KeyWait, %A_ThisHotkey%, T%FirstPressDelay%
If ErrorLevel
{
   DllCall("Winmm\timeBeginPeriod", UInt, 3)
   loop
   {
      if !GetKeyState(A_ThisHotKey, "P")
         break
      SendInput {%A_ThisHotKey%}
      loop % SleepDuration
         DllCall("Sleep", UInt, 1)
   }
   DllCall("Winmm\timeEndPeriod", UInt, 3)
}
Else
   SendInput {%A_ThisHotKey%}

42

Re: AHK: при запуске более одного макроса, перестают работать.

Спасибо. Только это надо бы оформить отдельной темой.
Очень даже полезный для меня пример по автоматизации премьера. Я в свое время решал задачу по автоматизации фотошопа, но тут совсем другой уровень.