<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: получение текста из меню]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=12297</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=12297&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: получение текста из меню».]]></description>
		<lastBuildDate>Wed, 11 Jan 2017 15:04:36 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: получение текста из меню]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=110826#p110826</link>
			<description><![CDATA[<p>Не знаю как можно отловить меню, которое окно рисует само.<br />Можете так попробовать.<br />ahk_class Notepad замените на класс вашего окна.<br /></p><div class="codebox"><pre><code>f11::
Acc_Get(&quot;DoDefaultAction&quot;, &quot;3.2&quot;, 0, &quot;ahk_class Notepad&quot;)
WinWait, ahk_class #32768
msgbox % Acc_Get(&quot;Name&quot;, 1, 6, &quot;ahk_class #32768&quot;)
return



;------------------------------------------------------------------------------
; Acc.ahk Standard Library
; by Sean
; Updated by jethrow:
; 	Modified ComObjEnwrap params from (9,pacc) --&gt; (9,pacc,1)
; 	Changed ComObjUnwrap to ComObjValue in order to avoid AddRef (thanks fincs)
; 	Added Acc_GetRoleText &amp; Acc_GetStateText
; 	Added additional functions - commented below
; 	Removed original Acc_Children function
;	Added Acc_Error, Acc_ChildrenByRole, &amp; Acc_Get functions
; last updated 10/25/2012
;------------------------------------------------------------------------------

Acc_Init()
{
	Static	h
	If Not	h
		h:=DllCall(&quot;LoadLibrary&quot;,&quot;Str&quot;,&quot;oleacc&quot;,&quot;Ptr&quot;)
}
Acc_ObjectFromEvent(ByRef _idChild_, hWnd, idObject, idChild)
{
	Acc_Init()
	If	DllCall(&quot;oleacc\AccessibleObjectFromEvent&quot;, &quot;Ptr&quot;, hWnd, &quot;UInt&quot;, idObject, &quot;UInt&quot;, idChild, &quot;Ptr*&quot;, pacc, &quot;Ptr&quot;, VarSetCapacity(varChild,8+2*A_PtrSize,0)*0+&amp;varChild)=0
	Return	ComObjEnwrap(9,pacc,1), _idChild_:=NumGet(varChild,8,&quot;UInt&quot;)
}

Acc_ObjectFromPoint(ByRef _idChild_ = &quot;&quot;, x = &quot;&quot;, y = &quot;&quot;)
{
	Acc_Init()
	If	DllCall(&quot;oleacc\AccessibleObjectFromPoint&quot;, &quot;Int64&quot;, x==&quot;&quot;||y==&quot;&quot;?0*DllCall(&quot;GetCursorPos&quot;,&quot;Int64*&quot;,pt)+pt:x&amp;0xFFFFFFFF|y&lt;&lt;32, &quot;Ptr*&quot;, pacc, &quot;Ptr&quot;, VarSetCapacity(varChild,8+2*A_PtrSize,0)*0+&amp;varChild)=0
	Return	ComObjEnwrap(9,pacc,1), _idChild_:=NumGet(varChild,8,&quot;UInt&quot;)
}

Acc_ObjectFromWindow(hWnd, idObject = 0)
{
	Acc_Init()
	If	DllCall(&quot;oleacc\AccessibleObjectFromWindow&quot;, &quot;Ptr&quot;, hWnd, &quot;UInt&quot;, idObject&amp;=0xFFFFFFFF, &quot;Ptr&quot;, -VarSetCapacity(IID,16)+NumPut(idObject==0xFFFFFFF0?0x46000000000000C0:0x719B3800AA000C81,NumPut(idObject==0xFFFFFFF0?0x0000000000020400:0x11CF3C3D618736E0,IID,&quot;Int64&quot;),&quot;Int64&quot;), &quot;Ptr*&quot;, pacc)=0
	Return	ComObjEnwrap(9,pacc,1)
}

Acc_WindowFromObject(pacc)
{
	If	DllCall(&quot;oleacc\WindowFromAccessibleObject&quot;, &quot;Ptr&quot;, IsObject(pacc)?ComObjValue(pacc):pacc, &quot;Ptr*&quot;, hWnd)=0
	Return	hWnd
}

Acc_GetRoleText(nRole)
{
	nSize := DllCall(&quot;oleacc\GetRoleText&quot;, &quot;Uint&quot;, nRole, &quot;Ptr&quot;, 0, &quot;Uint&quot;, 0)
	VarSetCapacity(sRole, (A_IsUnicode?2:1)*nSize)
	DllCall(&quot;oleacc\GetRoleText&quot;, &quot;Uint&quot;, nRole, &quot;str&quot;, sRole, &quot;Uint&quot;, nSize+1)
	Return	sRole
}

Acc_GetStateText(nState)
{
	nSize := DllCall(&quot;oleacc\GetStateText&quot;, &quot;Uint&quot;, nState, &quot;Ptr&quot;, 0, &quot;Uint&quot;, 0)
	VarSetCapacity(sState, (A_IsUnicode?2:1)*nSize)
	DllCall(&quot;oleacc\GetStateText&quot;, &quot;Uint&quot;, nState, &quot;str&quot;, sState, &quot;Uint&quot;, nSize+1)
	Return	sState
}

Acc_SetWinEventHook(eventMin, eventMax, pCallback)
{
	Return	DllCall(&quot;SetWinEventHook&quot;, &quot;Uint&quot;, eventMin, &quot;Uint&quot;, eventMax, &quot;Uint&quot;, 0, &quot;Ptr&quot;, pCallback, &quot;Uint&quot;, 0, &quot;Uint&quot;, 0, &quot;Uint&quot;, 0)
}

Acc_UnhookWinEvent(hHook)
{
	Return	DllCall(&quot;UnhookWinEvent&quot;, &quot;Ptr&quot;, hHook)
}
/*	Win Events:

	pCallback := RegisterCallback(&quot;WinEventProc&quot;)
	WinEventProc(hHook, event, hWnd, idObject, idChild, eventThread, eventTime)
	{
		Critical
		Acc := Acc_ObjectFromEvent(_idChild_, hWnd, idObject, idChild)
		; Code Here:

	}
*/

; Written by jethrow
Acc_Role(Acc, ChildId=0) {
	try return ComObjType(Acc,&quot;Name&quot;)=&quot;IAccessible&quot;?Acc_GetRoleText(Acc.accRole(ChildId)):&quot;invalid object&quot;
}
Acc_State(Acc, ChildId=0) {
	try return ComObjType(Acc,&quot;Name&quot;)=&quot;IAccessible&quot;?Acc_GetStateText(Acc.accState(ChildId)):&quot;invalid object&quot;
}
Acc_Location(Acc, ChildId=0, byref Position=&quot;&quot;) { ; adapted from Sean&#039;s code
	try Acc.accLocation(ComObj(0x4003,&amp;x:=0), ComObj(0x4003,&amp;y:=0), ComObj(0x4003,&amp;w:=0), ComObj(0x4003,&amp;h:=0), ChildId)
	catch
		return
	Position := &quot;x&quot; NumGet(x,0,&quot;int&quot;) &quot; y&quot; NumGet(y,0,&quot;int&quot;) &quot; w&quot; NumGet(w,0,&quot;int&quot;) &quot; h&quot; NumGet(h,0,&quot;int&quot;)
	return	{x:NumGet(x,0,&quot;int&quot;), y:NumGet(y,0,&quot;int&quot;), w:NumGet(w,0,&quot;int&quot;), h:NumGet(h,0,&quot;int&quot;)}
}
Acc_Parent(Acc) { 
	try parent:=Acc.accParent
	return parent?Acc_Query(parent):
}
Acc_Child(Acc, ChildId=0) {
	try child:=Acc.accChild(ChildId)
	return child?Acc_Query(child):
}
Acc_Query(Acc) { ; thanks Lexikos - www.autohotkey.com/forum/viewtopic.php?t=81731&amp;p=509530#509530
	try return ComObj(9, ComObjQuery(Acc,&quot;{618736e0-3c3d-11cf-810c-00aa00389b71}&quot;), 1)
}
Acc_Error(p=&quot;&quot;) {
	static setting:=0
	return p=&quot;&quot;?setting:setting:=p
}
Acc_Children(Acc) {
	if ComObjType(Acc,&quot;Name&quot;) != &quot;IAccessible&quot;
		ErrorLevel := &quot;Invalid IAccessible Object&quot;
	else {
		Acc_Init(), cChildren:=Acc.accChildCount, Children:=[]
		if DllCall(&quot;oleacc\AccessibleChildren&quot;, &quot;Ptr&quot;,ComObjValue(Acc), &quot;Int&quot;,0, &quot;Int&quot;,cChildren, &quot;Ptr&quot;,VarSetCapacity(varChildren,cChildren*(8+2*A_PtrSize),0)*0+&amp;varChildren, &quot;Int*&quot;,cChildren)=0 {
			Loop %cChildren%
				i:=(A_Index-1)*(A_PtrSize*2+8)+8, child:=NumGet(varChildren,i), Children.Insert(NumGet(varChildren,i-8)=9?Acc_Query(child):child), NumGet(varChildren,i-8)=9?ObjRelease(child):
			return Children.MaxIndex()?Children:
		} else
			ErrorLevel := &quot;AccessibleChildren DllCall Failed&quot;
	}
	if Acc_Error()
		throw Exception(ErrorLevel,-1)
}
Acc_ChildrenByRole(Acc, Role) {
	if ComObjType(Acc,&quot;Name&quot;)!=&quot;IAccessible&quot;
		ErrorLevel := &quot;Invalid IAccessible Object&quot;
	else {
		Acc_Init(), cChildren:=Acc.accChildCount, Children:=[]
		if DllCall(&quot;oleacc\AccessibleChildren&quot;, &quot;Ptr&quot;,ComObjValue(Acc), &quot;Int&quot;,0, &quot;Int&quot;,cChildren, &quot;Ptr&quot;,VarSetCapacity(varChildren,cChildren*(8+2*A_PtrSize),0)*0+&amp;varChildren, &quot;Int*&quot;,cChildren)=0 {
			Loop %cChildren% {
				i:=(A_Index-1)*(A_PtrSize*2+8)+8, child:=NumGet(varChildren,i)
				if NumGet(varChildren,i-8)=9
					AccChild:=Acc_Query(child), ObjRelease(child), Acc_Role(AccChild)=Role?Children.Insert(AccChild):
				else
					Acc_Role(Acc, child)=Role?Children.Insert(child):
			}
			return Children.MaxIndex()?Children:, ErrorLevel:=0
		} else
			ErrorLevel := &quot;AccessibleChildren DllCall Failed&quot;
	}
	if Acc_Error()
		throw Exception(ErrorLevel,-1)
}
Acc_Get(Cmd, ChildPath=&quot;&quot;, ChildID=0, WinTitle=&quot;&quot;, WinText=&quot;&quot;, ExcludeTitle=&quot;&quot;, ExcludeText=&quot;&quot;) {
	static properties := {Action:&quot;DefaultAction&quot;, DoAction:&quot;DoDefaultAction&quot;, Keyboard:&quot;KeyboardShortcut&quot;}
	AccObj :=   IsObject(WinTitle)? WinTitle
			:   Acc_ObjectFromWindow( WinExist(WinTitle, WinText, ExcludeTitle, ExcludeText), 0 )
	if ComObjType(AccObj, &quot;Name&quot;) != &quot;IAccessible&quot;
		ErrorLevel := &quot;Could not access an IAccessible Object&quot;
	else {
		StringReplace, ChildPath, ChildPath, _, %A_Space%, All
		AccError:=Acc_Error(), Acc_Error(true)
		Loop Parse, ChildPath, ., %A_Space%
			try {
				if A_LoopField is digit
					Children:=Acc_Children(AccObj), m2:=A_LoopField ; mimic &quot;m2&quot; output in else-statement
				else
					RegExMatch(A_LoopField, &quot;(\D*)(\d*)&quot;, m), Children:=Acc_ChildrenByRole(AccObj, m1), m2:=(m2?m2:1)
				if Not Children.HasKey(m2)
					throw
				AccObj := Children[m2]
			} catch {
				ErrorLevel:=&quot;Cannot access ChildPath Item #&quot; A_Index &quot; -&gt; &quot; A_LoopField, Acc_Error(AccError)
				if Acc_Error()
					throw Exception(&quot;Cannot access ChildPath Item&quot;, -1, &quot;Item #&quot; A_Index &quot; -&gt; &quot; A_LoopField)
				return
			}
		Acc_Error(AccError)
		StringReplace, Cmd, Cmd, %A_Space%, , All
		properties.HasKey(Cmd)? Cmd:=properties[Cmd]:
		try {
			if (Cmd = &quot;Location&quot;)
				AccObj.accLocation(ComObj(0x4003,&amp;x:=0), ComObj(0x4003,&amp;y:=0), ComObj(0x4003,&amp;w:=0), ComObj(0x4003,&amp;h:=0), ChildId)
			  , ret_val := &quot;x&quot; NumGet(x,0,&quot;int&quot;) &quot; y&quot; NumGet(y,0,&quot;int&quot;) &quot; w&quot; NumGet(w,0,&quot;int&quot;) &quot; h&quot; NumGet(h,0,&quot;int&quot;)
			else if (Cmd = &quot;Object&quot;)
				ret_val := AccObj
			else if Cmd in Role,State
				ret_val := Acc_%Cmd%(AccObj, ChildID+0)
			else if Cmd in ChildCount,Selection,Focus
				ret_val := AccObj[&quot;acc&quot; Cmd]
			else
				ret_val := AccObj[&quot;acc&quot; Cmd](ChildID+0)
		} catch {
			ErrorLevel := &quot;&quot;&quot;&quot; Cmd &quot;&quot;&quot; Cmd Not Implemented&quot;
			if Acc_Error()
				throw Exception(&quot;Cmd Not Implemented&quot;, -1, Cmd)
			return
		}
		return ret_val, ErrorLevel:=0
	}
	if Acc_Error()
		throw Exception(ErrorLevel,-1)
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Wed, 11 Jan 2017 15:04:36 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=110826#p110826</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: получение текста из меню]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=110813#p110813</link>
			<description><![CDATA[<p><strong>Malcev</strong><br />И ещё второй скрин.</p>]]></description>
			<author><![CDATA[null@example.com (Ivan_vrn89)]]></author>
			<pubDate>Wed, 11 Jan 2017 12:06:09 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=110813#p110813</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: получение текста из меню]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=110812#p110812</link>
			<description><![CDATA[<p><strong>Malcev</strong><br />Сделал как вы написали. Теперь текст в отчёт попадает, но вне зависимости от состояния документа и того, что отображается в меню в отчёт попадает строчка &quot;&amp;Удалить&quot;.</p>]]></description>
			<author><![CDATA[null@example.com (Ivan_vrn89)]]></author>
			<pubDate>Wed, 11 Jan 2017 12:04:58 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=110812#p110812</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: получение текста из меню]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=110810#p110810</link>
			<description><![CDATA[<p>А если так?<br /></p><div class="codebox"><pre><code>NumberOfMenuItem := &quot;&quot;   ; если оставить пустое значение, выдаст информацию о пунктах последнего подменю оконного меню
                        ; если присвоить номер — выдаст информацию о пунктах подменю с этим номером

MIIM_FTYPE := 0x100, MIIM_STRING := 0x40, oType := {0: &quot;MFT_STRING&quot;, 0x800: &quot;MFT_SEPARATOR&quot;, 0x4: &quot;MFT_BITMAP&quot;}

F11::
   InfoString := &quot;&quot;
   if !hMenu := DllCall(&quot;GetMenu&quot;, Ptr, WinExist(&quot;A&quot;), Ptr)  {
      MsgBox, Окно использует нестандартное меню
      Return
   }
   count := DllCall(&quot;GetMenuItemCount&quot;, Ptr, hMenu)
   if !hMenu := DllCall(&quot;GetSubMenu&quot;, Ptr, hMenu, Int, NumberOfMenuItem = &quot;&quot; ? count - 1 : NumberOfMenuItem - 1)  {
      MsgBox, Подменю не найдено
      Return
   }
   count := DllCall(&quot;GetMenuItemCount&quot;, Ptr, hMenu)
   Loop % count  {
         Gosub, IniMII
         NumPut(MIIM_STRING, &amp;MENUITEMINFO + 4)
         DllCall(&quot;GetMenuItemInfo&quot;, Ptr, hMenu, UInt, A_Index - 1, UInt, true, Ptr, &amp;MENUITEMINFO)
         TextLength := NumGet(&amp;MENUITEMINFO + 4*4 + A_PtrSize*6, &quot;UInt&quot;)
         VarSetCapacity(TextBuff, TextLength * (A_IsUnicode ? 2 : 1), 0)
         NumPut(&amp;TextBuff, &amp;MENUITEMINFO + 4*4 + A_PtrSize*5)
         NumPut(++TextLength, &amp;MENUITEMINFO + 4*4 + A_PtrSize*6)
         DllCall(&quot;GetMenuItemInfo&quot;, Ptr, hMenu, UInt, A_Index - 1, UInt, true, Ptr, &amp;MENUITEMINFO)
         InfoString .= StrGet(&amp;TextBuff)
   }
   MsgBox, % InfoString
   Return

IniMII:
   VarSetCapacity(MENUITEMINFO, size := 4*4 + A_PtrSize*8, 0)
   NumPut(size, MENUITEMINFO)
   Return</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Wed, 11 Jan 2017 11:18:45 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=110810#p110810</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: получение текста из меню]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=110809#p110809</link>
			<description><![CDATA[<p><strong>Malcev</strong><br />Спасибо. Обновление помогло. Скрипт заработал. Но не помог. В отчёт попадают только разделители (MFT_SEPARATOR) и пустые строчки. Попробовал в блокноте - все нормально, текст из меню считывает, а в 1С не хочет.</p>]]></description>
			<author><![CDATA[null@example.com (Ivan_vrn89)]]></author>
			<pubDate>Wed, 11 Jan 2017 10:42:24 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=110809#p110809</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: получение текста из меню]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=110808#p110808</link>
			<description><![CDATA[<p><strong>Ivan_vrn89</strong>, имел в виду именно этот скрипт, который у вас выдаёт ошибку.<br />Скачайте актуальную версию автохотки.<br /><a href="https://autohotkey.com/download/ahk-install.exe">https://autohotkey.com/download/ahk-install.exe</a></p>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Wed, 11 Jan 2017 10:08:01 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=110808#p110808</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: получение текста из меню]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=110805#p110805</link>
			<description><![CDATA[<p><span style="color: green"><strong>Ivan_vrn89</strong>, отредактируйте последнее сообщение, расставьте ХОТЯ БЫ заглавные буквы и точки.</span></p>]]></description>
			<author><![CDATA[null@example.com (ypppu)]]></author>
			<pubDate>Wed, 11 Jan 2017 08:12:17 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=110805#p110805</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: получение текста из меню]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=110804#p110804</link>
			<description><![CDATA[<p><strong>Malcev</strong></p><p>Если вы имели ввиду вот это:</p><div class="codebox"><pre><code>
NumberOfMenuItem := &quot;&quot;   ; если оставить пустое значение, выдаст информацию о пунктах последнего подменю оконного меню
                         ; если присвоить номер — выдаст информацию о пунктах подменю с этим номером
                         
MIIM_FTYPE := 0x100, MIIM_STRING := 0x40, oType := {0: &quot;MFT_STRING&quot;, 0x800: &quot;MFT_SEPARATOR&quot;, 0x4: &quot;MFT_BITMAP&quot;}

F11::
   InfoString := &quot;&quot;
   if !hMenu := DllCall(&quot;GetMenu&quot;, Ptr, WinExist(&quot;A&quot;), Ptr)  {
      MsgBox, Окно использует нестандартное меню
      Return
   }
   count := DllCall(&quot;GetMenuItemCount&quot;, Ptr, hMenu)
   if !hMenu := DllCall(&quot;GetSubMenu&quot;, Ptr, hMenu, Int, NumberOfMenuItem = &quot;&quot; ? count - 1 : NumberOfMenuItem - 1)  {
      MsgBox, Подменю не найдено
      Return
   }
   count := DllCall(&quot;GetMenuItemCount&quot;, Ptr, hMenu)
   Loop % count  {
      Gosub, IniMII
      NumPut(MIIM_FTYPE, &amp;MENUITEMINFO + 4)
      DllCall(&quot;GetMenuItemInfo&quot;, Ptr, hMenu, UInt, A_Index - 1, UInt, true, Ptr, &amp;MENUITEMINFO)
      type := oType[NumGet(&amp;MENUITEMINFO + 8, &quot;UInt&quot;)]
      InfoString .= (InfoString = &quot;&quot; ? &quot;&quot; : &quot;`n&quot;)
      if (type != &quot;MFT_STRING&quot;)
         InfoString .= type
      else  {
         Gosub, IniMII
         NumPut(MIIM_STRING, &amp;MENUITEMINFO + 4)
         DllCall(&quot;GetMenuItemInfo&quot;, Ptr, hMenu, UInt, A_Index - 1, UInt, true, Ptr, &amp;MENUITEMINFO)
         TextLength := NumGet(&amp;MENUITEMINFO + 4*4 + A_PtrSize*6, &quot;UInt&quot;)
         VarSetCapacity(TextBuff, TextLength * (A_IsUnicode ? 2 : 1), 0)
         NumPut(&amp;TextBuff, &amp;MENUITEMINFO + 4*4 + A_PtrSize*5)
         NumPut(++TextLength, &amp;MENUITEMINFO + 4*4 + A_PtrSize*6)
         DllCall(&quot;GetMenuItemInfo&quot;, Ptr, hMenu, UInt, A_Index - 1, UInt, true, Ptr, &amp;MENUITEMINFO)
         InfoString .= StrGet(&amp;TextBuff)
      }
   }
   MsgBox, % InfoString
   Return
      
IniMII:
   VarSetCapacity(MENUITEMINFO, size := 4*4 + A_PtrSize*8, 0)
   NumPut(size, MENUITEMINFO)
   Return
</code></pre></div><p>То в этом случае у меня AHK выдает ошибку в 4й строчке и не запускает этот скрипт.</p><p>Если вообще тему, то нормально работают оба скрипта от сюда <a href="https://autohotkey.com/board/topic/19754-get-info-from-context-menu/">https://autohotkey.com/board/topic/1975 … text-menu/</a>. Но они не помогли. Название и номер пункта меню они выводят, но по своему, т.е. вне зависимости от состояния документа(помечен или нет на удаление), отображает не то что в меню написано(&quot;Пометить на удаление&quot; или &quot;Снять пометку на удаление&quot;), а просто &quot;Удалить&quot;.</p>]]></description>
			<author><![CDATA[null@example.com (Ivan_vrn89)]]></author>
			<pubDate>Wed, 11 Jan 2017 07:46:50 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=110804#p110804</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: получение текста из меню]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=110776#p110776</link>
			<description><![CDATA[<p><a href="http://forum.script-coding.com/viewtopic.php?pid=97749#p97749">http://forum.script-coding.com/viewtopi … 749#p97749</a></p>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Tue, 10 Jan 2017 15:15:33 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=110776#p110776</guid>
		</item>
		<item>
			<title><![CDATA[AHK: получение текста из меню]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=110774#p110774</link>
			<description><![CDATA[<p>Добрый вечер.<br />Столкнулся с такой задачей:<br />В программе 1С 7.7 в журнале в зависимости от того помечен документ или свойство в карточке на удаление или нет меняется текст в меню. Т.е. там либо &quot;Пометить на удаление&quot;, либо &quot;снять пометку на удаление&quot;. Вопрос состоит в том как этот текст оттуда получить, для последующего использования в AHK.</p>]]></description>
			<author><![CDATA[null@example.com (Ivan_vrn89)]]></author>
			<pubDate>Tue, 10 Jan 2017 14:59:46 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=110774#p110774</guid>
		</item>
	</channel>
</rss>
