please can someone help me with this I want to create two subfolders using single button, but having trouble with DirCreate, I dont know how to create the 2nd subfolder(Folder2)
help on How to create two subfolders.
Is controlsend bugged?
Hi, I'm having problem with script in au3. For example when I run code like this below:
ControlSend("Notepad", "", "", "D")
it is working, but after 3 minutes it is sending "D" everywhere, to Firefox, wordpad etc. When i press "Shift/ctrl/alt" my keyboard is getting bug, and it doing some crazy things.
Thanks for help, sorry for my english.
Walrus.
flexibility with declaring an array
#include <array.au3> Local $array[10] $x = 0 $array[$x += 1] = "bob" $array[$x += 1] = "larry" $array[$x += 1] = "mark" $array[$x += 1] = "will" $array[$x += 1] = "pete" $array[$x += 1] = "martha" $array[$x += 1] = "jane" $array[$x += 1] = "jill" $array[$x += 1] = "jack" $array[$x += 1] = "jim" _ArrayDisplay($array)
Force IECreate to be on focus
Im running an script on a webserver and when im connect via rdp it works fine but when i try to run it w/o being connected to the rdp it do not work.
The script do not bring the window to the front (it works on im connected)
Is there anyway to bring it to the front, even im not connected to the server ?
GDIPlus_ImageResize error 4... ok, so how do I fix it?
My program is supposed to resize an image. It fails and displays a black image on the screen and seems to never really recover from this. After some exploration, I found that I was receiving error #4 with the resize command.
https://www.autoitscript.com/autoit3/docs/libfunctions/_GDIPlus_ImageResize.htm
4: unable to copy image to scaled bitmap
Well that's great and all... but how do I fix it?
Help with utilizing control notification messages
I'm struggling to find any examples for this. I am looking to utilize control notification messages as defined in their respective constants include.
For example: in the TreeViewConstants.au3 include I see notifications for selection chang(e/ing), expand(ed/ing), etc.
I was thinking it would tie into the usage of WM_NOTIFY, but I don't know I would populate the dllstruct for $tagNMTREEVIEW. I am also assuming that "Action" would be the portion of the struct where I would identify the notification message? Can anyone shed some light on this for me?
Latest iamge recognition?
I am trying to automate an app that uses lots of non-standard gui elements, and so image search is the only way. The only image search functionality I can find for AutoIt is ImageSearchDll.dll but it looks quite old now (2009) and I can't seem to get it to work. There are many old forum posts on it and once you dig to find one of a few different dll downloads, it's still difficult to debug and get working.
Is there a better way these days? I'm on a headless (hence the need for automation) Windows 7 system.
Thanks so much!
Please Explain How While Wend Infinite Loop Works
Hi,
I fundamentally don't know how this While... Wend loop works in relation to other code in the script - could someone please provide an explanation.
Local $aPos[2] ;Declaring an array to hold mouse coordinates. HotKeySet("!m", "GetMouseCoords") ;Capture the current mouse coordinates <Alt>+m. HotKeySet("!{SPACE}", "SaveToFile") ;Start the 'Save File' function <Alt>+<Space>. HotKeySet("!{ESC}", "Terminate") ;Exit from the script/program <Alt>+<Esc>. While 1 ;This keeps the script permanently running until 'exit' hotkey pressed. Sleep(100) WEnd Func GetMouseCoords() $aPos = MouseGetPos() ;Capture the current mouse coordinates. EndFunc ;==>GetMouseCoords Func SaveToFile() MouseMove($aPos[0], $aPos[1]) ;Moves the mouse to the previously captured mouse coordinates. ; <Other lines of code would follow here.> EndFunc ;==>SaveToFile Func Terminate() Exit ;Exit the script/progam. EndFunc ;==>Terminate
Where I have the problem is that, as far as know - based on what I've read in the AutoIt help file - the above While... Wend loop is an infinite loop. My understanding of an 'infinite loop' is that the loop is entered in the functioning program and there the program gets 'stuck'/'locked in that loop'. Yet this can't be what is happening here - after all the program still monitors the keyboard for HotKey presses, and, if one of the hotkeys is pressed, then the program (correctly) goes to one of the three functions and (correctly) executes whatever instructions are contained inside the function. How can the program do this if it is stuck in an infinite loop - should it not just be perpetually looping in the loop? How does it (seemingly) jump of the loop to check the keyboard and then jump back in the loop to keep the program perpetually running (till the 'exit' key is pressed)?
(I hope I've explained the problem well enough for people to get a handle on what I'm trying to say. I'm really asking a 'concept question' I suppose - I don't understand how the program does anything other than stay in the loop. I also suspect that it is 'staying in that loop' that allows the program to constantly run monitoring for key-presses - instead of just on launching the program the program runs for a split second then just exits from itself.)
SimpleSpy fine under XP but not Windows 7 x64
Good Morning All,
I'm using the latest UIA_V0_51 on XP and Windows 7 x64. I'm able to see focus, elements and all options under Windows XP for SimpleSpy - but not on Windows 7 x64. With Windows 7 x64 all I can focus on is the window frame. Very odd. I've tried running simplespy "#AutoIt3Wrapper_UseX64=n" and the app under x32 on the Windows 7 x64 device. Please let me know what I am doing wrong. I believe this is a simple thing I am overlooking... Thank you AutoIT Gurus!!! YOU ARE THE BEST!!!
Thanks
Comparing the data in a 2d array with a for loop error
I have a GUI and I am trying to get user input and compare the input to the first column in a 2d array.
#include <GUIConstants.au3> #include <File.au3> #include <Array.au3> Global $aRead[][] = [[0],[0]] Global $Path = @ScriptDir & "\data.ini" _FileReadToArray($Path,$aRead,0,";");Reads the contents of data.ini to $aRead. HotKeySet("{ENTER}", "ProcessData");Enter a number and hit enter $Form1 = GUICreate("Form1",800,600,100,100);GUI Main window $edit_field = GUICtrlCreateInput("", 30, 25, 150, 15) GUISetState(@SW_SHOW) GUISetBkColor(0x000000);sets background color on GUI window GUISetState(@SW_SHOW) Func ProcessData() $Input = GUICtrlRead($edit_field) If $Input <> "" Then For $i = 1 To UBound($aRead - 1) If $Input == $aRead[$a] Then $Data = $aRead[$a] _ArrayDisplay($Data) ExitLoop EndIf Next GUICtrlSetData($edit_field,"");Clear the input box EndIf EndFunc
data.ini looks like:
1;1 2;2 3;3 4;4
I am trying to use a for loop to compare the user input value to each item in the forst column of my 2d array.
- If a match is found in $aRead[5] then I want to assign a variable to the data in $aRead[5][2] and exit the for loop and make the input box blank and wait for another user input.
- If a match isnt found then blank out the user input box.
The gui crashes when I enter 1 and hit return and I get an error. What am I doing wrong?
Loop, FilePattern (Transitioning from AutoHotkey)
Hello, I am transitioning from AutoHotkey to AutoIt and am looking for a nudge in the right direction with regard to looping through files and folders. What I would like to do is create a delimited list of certain attributes (filename, path, extension, size, last modified) about all files in network drives. In AutoHotkey I can use "Loop, FilePattern" to go through every file and folder and pull all the information I need. How can I go about doing this efficiently in AutoIt?
From what I've learned so far, it appears I'll need to use "FileListToArray" to create an array of filepaths, then loop through the entire array, using "FileGet . . ." for each element. Is there a better way or am I on the right track?
Please be kind as this is my first post. Thank you!
Is it possible to automatically go to last edited page in word
Hi all,
I am using word 2007. It lacks a good feature that help to go to last edited page when opening a word document. Even the AutoOpen.GoBack() macro didn't work in word 2007. So i am asking here. Is there any way to do this with autoit ?
Help with URL showing in IE window when toolbar set to False
I am trying to write a script to open a webpage in IE in a fairly small window. I want the IE window to be as uncluttered as possible with little/no room for the user to naviagate away from the page.
Whenever I use _IEPropertySet to set the toolbar to False, it places the URL before the document title of the page. I don't want the URL in the title, just the actual title. I am assuming this is an IE thing, but has anyone found a way to overcome this behavior? This script will interact with another web app, and that app only runs on IE8, so that is what I have been testing with.
#include <IE.au3> _IEErrorNotify(True) Opt("WinTitleMatchMode", 1) ;1=start, 2=subStr, 3=exact, 4=advanced, -1 to -4=Noca $oIE = _IECreate ("about:blank",0,0) _IEPropertySet ($oIE, "addressbar", False) _IEPropertySet ($oIE, "menubar", False) _IEPropertySet ($oIE, "statusbar", False) _IEPropertySet ($oIE, "toolbar", False) ; Setting this to TRUE removes the URL from the title bar _IEPropertySet ($oIE, "height", 332) _IEPropertySet ($oIE, "width", 450) _IENavigate($oIE,"http://www.google.com",1) $oIE.visible = 1
I appreciate any ideas.
exact same script doesnt run on other computer
when i try to run the script on my desktop pc I suddently get allot of error but when i run it on my laptop it runs perfect and im using the same version v3.3.12.0 versi
this are the errors that i get from my desktop pc but not on my laptop
"C:\Users\joesoef\Desktop\addmefast.au3"(46,17) : warning: $oIE: possibly used before declaration. _IELoadWait($oIE) ~~~~~~~~~~~~~~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1703,4) : error: syntax error local ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1703,4) : error: Statement cannot be just an expression. local ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1731,1) : error: missing EndSwitch. EndSelect ^ "C:\Users\joesoef\Desktop\addmefast.au3"(1700,7) : REF: missing EndSwitch. Select ~~~~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1731,1) : error: missing Wend. EndSelect ^ "C:\Users\joesoef\Desktop\addmefast.au3"(1570,14) : REF: missing Wend. Switch $nMsg ~~~~~~~~~~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1731,1) : error: syntax error EndSelect ^ "C:\Users\joesoef\Desktop\addmefast.au3"(1731,1) : error: Statement cannot be just an expression. EndSelect ^ "C:\Users\joesoef\Desktop\addmefast.au3"(1738,4) : error: syntax error local ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1738,4) : error: Statement cannot be just an expression. local ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1740,1) : error: syntax error Case ^ "C:\Users\joesoef\Desktop\addmefast.au3"(1740,1) : error: Statement cannot be just an expression. Case ^ "C:\Users\joesoef\Desktop\addmefast.au3"(1744,4) : error: syntax error Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1744,4) : error: Statement cannot be just an expression. Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1748,4) : error: syntax error Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1748,4) : error: Statement cannot be just an expression. Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1752,4) : error: syntax error Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1752,4) : error: Statement cannot be just an expression. Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1756,4) : error: syntax error Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1756,4) : error: Statement cannot be just an expression. Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1760,4) : error: syntax error Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1760,4) : error: Statement cannot be just an expression. Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1766,1) : error: syntax error EndSelect ^ "C:\Users\joesoef\Desktop\addmefast.au3"(1766,1) : error: Statement cannot be just an expression. EndSelect ^ "C:\Users\joesoef\Desktop\addmefast.au3"(1773,4) : error: syntax error local ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1773,4) : error: Statement cannot be just an expression. local ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1775,1) : error: syntax error Case ^ "C:\Users\joesoef\Desktop\addmefast.au3"(1775,1) : error: Statement cannot be just an expression. Case ^ "C:\Users\joesoef\Desktop\addmefast.au3"(1779,4) : error: syntax error Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1779,4) : error: Statement cannot be just an expression. Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1783,4) : error: syntax error Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1783,4) : error: Statement cannot be just an expression. Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1787,4) : error: syntax error Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1787,4) : error: Statement cannot be just an expression. Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1791,4) : error: syntax error Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1791,4) : error: Statement cannot be just an expression. Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1795,4) : error: syntax error Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1795,4) : error: Statement cannot be just an expression. Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1799,4) : error: syntax error Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1799,4) : error: Statement cannot be just an expression. Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1804,1) : error: syntax error EndSelect ^ "C:\Users\joesoef\Desktop\addmefast.au3"(1804,1) : error: Statement cannot be just an expression. EndSelect ^ "C:\Users\joesoef\Desktop\addmefast.au3"(1811,4) : error: syntax error local ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1811,4) : error: Statement cannot be just an expression. local ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1813,1) : error: syntax error Case ^ "C:\Users\joesoef\Desktop\addmefast.au3"(1813,1) : error: Statement cannot be just an expression. Case ^ "C:\Users\joesoef\Desktop\addmefast.au3"(1817,4) : error: syntax error Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1817,4) : error: Statement cannot be just an expression. Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1821,4) : error: syntax error Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1821,4) : error: Statement cannot be just an expression. Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1825,4) : error: syntax error Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1825,4) : error: Statement cannot be just an expression. Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1829,4) : error: syntax error Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1829,4) : error: Statement cannot be just an expression. Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1833,4) : error: syntax error Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1833,4) : error: Statement cannot be just an expression. Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1841,1) : error: syntax error EndSelect ^ "C:\Users\joesoef\Desktop\addmefast.au3"(1841,1) : error: Statement cannot be just an expression. EndSelect ^ "C:\Users\joesoef\Desktop\addmefast.au3"(1848,4) : error: syntax error local ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1848,4) : error: Statement cannot be just an expression. local ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1850,1) : error: syntax error Case ^ "C:\Users\joesoef\Desktop\addmefast.au3"(1850,1) : error: Statement cannot be just an expression. Case ^ "C:\Users\joesoef\Desktop\addmefast.au3"(1854,4) : error: syntax error Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1854,4) : error: Statement cannot be just an expression. Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1858,4) : error: syntax error Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1858,4) : error: Statement cannot be just an expression. Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1862,4) : error: syntax error Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1862,4) : error: Statement cannot be just an expression. Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1866,4) : error: syntax error Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1866,4) : error: Statement cannot be just an expression. Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1870,4) : error: syntax error Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1870,4) : error: Statement cannot be just an expression. Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1875,1) : error: syntax error EndSelect ^ "C:\Users\joesoef\Desktop\addmefast.au3"(1875,1) : error: Statement cannot be just an expression. EndSelect ^ "C:\Users\joesoef\Desktop\addmefast.au3"(1882,4) : error: syntax error local ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1882,4) : error: Statement cannot be just an expression. local ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1884,1) : error: syntax error Case ^ "C:\Users\joesoef\Desktop\addmefast.au3"(1884,1) : error: Statement cannot be just an expression. Case ^ "C:\Users\joesoef\Desktop\addmefast.au3"(1888,4) : error: syntax error Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1888,4) : error: Statement cannot be just an expression. Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1892,4) : error: syntax error Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1892,4) : error: Statement cannot be just an expression. Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1896,4) : error: syntax error Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1896,4) : error: Statement cannot be just an expression. Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1900,4) : error: syntax error Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1900,4) : error: Statement cannot be just an expression. Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1904,4) : error: syntax error Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1904,4) : error: Statement cannot be just an expression. Case ~~~^ "C:\Users\joesoef\Desktop\addmefast.au3"(1909,1) : error: syntax error EndSelect ^ "C:\Users\joesoef\Desktop\addmefast.au3"(1909,1) : error: Statement cannot be just an expression. EndSelect ^ "C:\Users\joesoef\Desktop\addmefast.au3"(1920,2) : error: syntax error EndSwitch ^ "C:\Users\joesoef\Desktop\addmefast.au3"(1920,2) : error: Statement cannot be just an expression. EndSwitch ^ "C:\Users\joesoef\Desktop\addmefast.au3"(1921,1) : error: Statement cannot be just an expression. WEnd ^ "C:\Users\joesoef\Desktop\addmefast.au3"(1800,16) : error: input7(): undefined function. Call("input7") ~~~~~~~~~~~~~~~^ C:\Users\joesoef\Desktop\addmefast.au3 - 92 error(s), 1 warning(s) !>23:08:32 AU3Check ended. Press F4 to jump to next error.rc:2 +>23:08:32 AutoIt3Wrapper Finished. >Exit code: 2 Time: 2.206
Get ListView Header Order After Drag/Drop
Hi all,
So, I was following the Help file trying to get the resulting column order after dragging a column header in a listview. I can't seem to get the order after the drag as the results I receive are from before. It's rather odd. Is there a way I can get this information using WM_NOTIFY like in the below example?
Thanks for the help!
#include <Array.au3> #include <GUIConstantsEx.au3> #include <GuiHeader.au3> #include <GuiListView.au3> #include <WindowsConstants.au3> Global $g_ListView Example() Func Example() Local $hGUI ; Create GUI $hGUI = GUICreate("Header", 400, 300) $g_ListView = GUICtrlCreateListView("Column 1|Column 2|Column 3|Column 4", 0, 0, 400, 300, BitOR($LVS_SHOWSELALWAYS, $LVS_REPORT), BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT, $LVS_EX_SUBITEMIMAGES, $LVS_EX_INFOTIP, $LVS_REPORT, $LVS_EX_HEADERDRAGDROP)) GUISetState(@SW_SHOW) GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY") ; Loop until the user exits. Do Until GUIGetMsg() = $GUI_EVENT_CLOSE EndFunc ;==>Example Func WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam) #forceref $hWnd, $iMsg, $wParam Local $hWndFrom, $iCode Local $tNMHDR, $tNMHEADER, $tNMHDFILTERBTNCLICK, $tNMHDDISPINFO $hHwnd = GUICtrlGetHandle($g_ListView) $tNMHDR = DllStructCreate($tagNMHDR, $lParam) $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom")) $iCode = DllStructGetData($tNMHDR, "Code") Switch $iCode Case $HDN_ENDDRAG ; Sent by a header control when a drag operation has ended on one of its items ConsoleWrite("!> " & _GUICtrlListView_GetColumnOrder($g_ListView) & @CRLF); <<<<<<<<<<<<<<< This will return the order BEFORE the drop Return False ; To allow the control to automatically place and reorder the item EndSwitch Return $GUI_RUNDEFMSG EndFunc ;==>WM_NOTIFY
Need help with winwaitactive
Hi this is my first time asking for help, I usually find a solution online but this one has stumped me. I am working with a business retail software and I have noticed a very annoying feature with the software, it doesn't matter what window or tab I am on the hidden text is almost always the same because the more tabs I visit the number of hidden text items grow, which pretty much eliminates the usefulness of the text portion of winwaitactive("title", "text"). Is there a way that I can use only the visible text in identifying a window/tab? The reason I need this to work is because I have a while loop that is intended to only activate the hotkeys on the final page of the software.
How to perform a click
Hi All,
I am trying to click on a image,following is the path when i do devloper tool(f12) in IE
<img title="Create new document" class="x138" id="pt1:pt_region0:1:pt1:ci17:inbox_pc1:it2:inbox_toolbarNew::icon" alt="Create new document" src="/DocumakerCorrespondence/static/images/new_ena.png" theme="light"/>
now i am not sure how to do a click on on this.
Let me know if anyone needs any more information
TCPNameToIP not working?
I'm trying to use TCPNameToIP to resolve a hostname, and for some reason whenever I call to this function the CPU jumps to 100% and lags my vm, and the program hangs. Any idea why this is happening? Also is there a different way of resolving a hostname?
trying some simple clicks not work? (noob)
_WinAPI_ShellExecute() different or better that ShellExecute()?
I've been using ShellExecute() for some time, without knowing if there's any significant difference from _WinAPI_ShellExecute() (other than the extra call parameter).
For example, are these two statements interchangeable?:
ShellExecute("C:\Downloads\", "", "", "explore")
_WinAPI_ShellExecute("C:\Downloads\", "", "", "explore")
Regarding the _WinAPI functions, in general, it has always looked to me like they are the "complete" set of available functions, but that several of them have AutoIt versions that are slightly simplified.
Is that essentially the situation? Or is it more complicated than that.
Thanks for any insights.