Jump to content

argumentum

MVPs
  • Posts

    5,407
  • Joined

  • Last visited

  • Days Won

    179

argumentum last won the day on December 15

argumentum had the most liked content!

About argumentum

Profile Information

  • Member Title
    ✨Universalist ✨
  • Location
    I'm in your browser now =)
  • WWW
    https://www.youtube.com/watch?v=SjwX-zMRxO0&t=5s
  • Interests
    Relax

Recent Profile Visitors

13,968 profile views

argumentum's Achievements

  1. Goodness @MoriceGrene ! ..but I figure you'd need it and did it anyway. It couldn't be any louder I claim to be the "king of copy and paste", but it does takes some reading. @argumentum slaps @MoriceGrene around a bit with a large trout
  2. There is a simpler example for in the loop IPC here.
  3. #include <WMCDIPC.au3> ; https://www.autoitscript.com/forum/topic/212541-wmcdipc-x32x64-useradmin-self-triggering-slow-wm_copydata-ipc/ #include <ButtonConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> If Not StringInStr($CmdLineRaw, "/anotherOne") Then ShellExecute(@AutoItExe, '"' & @ScriptFullPath & '" /anotherOne') ; oppened another ( just for you =D ) EndIf Exit Example() ; in the loop Func Example() #Region ### START Koda GUI section ### Form= Local $iFormWidth = 400 Local $iFormHeight = 400 Local $Form1 = GUICreate("WMCDIPC example on PID:" & @AutoItPID, $iFormWidth, $iFormHeight) Local $aWinList = WinList("WMCDIPC example on PID:") ; so that you can see both GUIs loaded WinMove($Form1, "", (@DesktopWidth / 3) + UBound($aWinList) * 100, (@DesktopHeight / 3) + UBound($aWinList) * 40) Local $ButtonSend = GUICtrlCreateButton("Send", 10, 10, 75, 25) Local $Input1 = GUICtrlCreateInput("My message to another", 100, 10, $iFormWidth - 110, -1, BitOR($WS_EX_CLIENTEDGE, $WS_EX_STATICEDGE)) GUICtrlCreateGroup("Received", 10, 50, $iFormWidth - 20, $iFormHeight - 60, -1, $WS_EX_STATICEDGE) Local $Edit1 = GUICtrlCreateEdit("", 20, 65, $iFormWidth - 40, $iFormHeight - 85, -1, BitOR($WS_EX_CLIENTEDGE, $WS_EX_STATICEDGE)) GUICtrlSetData($Edit1, @CRLF & @TAB & "Received will show here") GUICtrlCreateGroup("", -99, -99, 1, 1) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### WMCDIPC_Register() ; register the message handler While 1 WMCDIPC_Receive_Example($Edit1) Switch GUIGetMsg() Case $GUI_EVENT_CLOSE GUIDelete($Form1) Return Case $ButtonSend WMCDIPC_Send_Example($Form1, GUICtrlRead($Input1)) GUICtrlSetData($Edit1, @CRLF & @TAB & "Sent to " & @extended & " others") EndSwitch WEnd EndFunc ;==>Example Func WMCDIPC_Send_Example($hGUI, $sStr) Local $iCount = 0, $aWinList = WinList("WMCDIPC example on PID:") For $n = 1 To UBound($aWinList) - 1 If StringInStr($aWinList[$n][0], "PID:" & @AutoItPID) Then ContinueLoop ; don't send to itself ConsoleWrite($aWinList[$n][1] & @TAB & $aWinList[$n][0] & @CRLF) WMCDIPC_Send($hGUI, $aWinList[$n][1], 1, $sStr) ; send to others that may be loaded $iCount += 1 Next Return SetError(0, $iCount, $iCount) EndFunc ;==>WMCDIPC_Send_Example Func WMCDIPC_Receive_Example($iCtrl) Local Static $iLastCount = 0 Local $aDataArray = WMCDIPC_MsgData() Local Enum $eWMCDIPC_Adlib, $eWMCDIPC_receiver, $eWMCDIPC_iMsg, $eWMCDIPC_sender, $eWMCDIPC_int, $eWMCDIPC_string, _ $eWMCDIPC_TimerDiff, $eWMCDIPC_TimerInit, $eWMCDIPC_MsgCounter, $eWMCDIPC_CaughtCounter, $eWMCDIPC_UBound If $iLastCount = $aDataArray[$eWMCDIPC_MsgCounter] Then Return ; because there is nothing new $iLastCount = $aDataArray[$eWMCDIPC_MsgCounter] Local $sStr = (@AutoItX64 ? "64bit" : "32bit") & " / " & (IsAdmin() ? "Admin" : "User") & ' level - ( UDF ver.: ' & WMCDIPC_Version() & ' )' & @CRLF & @CRLF $sStr &= "- receiver >" & $aDataArray[$eWMCDIPC_receiver] & '<' & @CRLF $sStr &= "- iMsg >0x" & Hex($aDataArray[$eWMCDIPC_iMsg], 4) & '<' & @CRLF $sStr &= "- sender >" & $aDataArray[$eWMCDIPC_sender] & '<' & @CRLF $sStr &= "- data >0x" & Hex($aDataArray[$eWMCDIPC_int], 4) & '< ' & ($aDataArray[$eWMCDIPC_int] = 0xFADE ? "the other script failed to act on this" : (Mod($aDataArray[$eWMCDIPC_int], 5) ? "" : " will return ""sup !""")) & @CRLF & @CRLF $sStr &= "- string >" & $aDataArray[$eWMCDIPC_string] & '<' & @CRLF & @CRLF ; all you would care about I guess $sStr &= "- MsgHandler >" & $aDataArray[$eWMCDIPC_TimerDiff] & '< time spent receiving' & @CRLF $sStr &= "- MsgHandler >" & TimerDiff($aDataArray[$eWMCDIPC_TimerInit]) & '< time it took to get here' & @CRLF $sStr &= "- MsgHandler >" & $aDataArray[$eWMCDIPC_MsgCounter] & '< Incoming messages count' & @CRLF ; These two should $sStr &= "- MsgHandler >" & $aDataArray[$eWMCDIPC_CaughtCounter] & '< Messages caught count' & @CRLF ; be the same count. $sStr &= @CRLF GUICtrlSetData($iCtrl, $sStr) WMCDIPC_MsgData(1) ; at the end to allow a next message EndFunc ;==>WMCDIPC_Receive_Example There is a simpler example for in the loop IPC.
  4. /topic/212541-wmcdipc-x32x64-useradmin-self-triggering-slow-wm_copydata-ipc/ is simple. If you need a simpler example, tell me if is "GUIOnEventMode" 0 ( in a loop ) or 1 ( OnEvent functions notifications )
  5. did you look at /topic/204734-overlapped-named-pipe-ipc ?
  6. ...yes, this is a @jpm level of knowing. It should be simple to fix. Just check the range so it don't blindly do stuff, as it shows that watever worked back in win98, WinNT or WinXP, does not work now For the rest of your exploration, am afraid I don't have time for ( work it's got me by the 😅 ) But yes, this should go strait to trac. Is an AutoIt3 issue ( in regards to the error MsgBox and the DllStruct stuff )
  7. ...actually: Return Value: Success: a variable for use with DllStruct calls. Failure: sets the @error flag to non-zero. @error: 1 = Variable passed to DllStructCreate was not a string. 2 = There is an unknown Data Type in the string passed. 3 = Failed to allocate the memory needed for the struct, or Pointer = 0. 4 = Error allocating memory for the passed string. @mLipok, this needs a trac entry because it does not behave as it should. It should not crash nor fail to return the corresponding @error. That in regards to DllStructCreate() In regards of the "AddHookApi", it works just fine ( in my script anyways )
  8. #AutoIt3Wrapper_UseX64=y DllStructCreate("byte[123456789097]") ; This is a deliberate action intended to display an error That above, will not display an error. No MsgBox, nothing to do.
  9. Your code should be a sample of the problem, not the whole script.
  10. No problem. I like doing that too, but here is seen as necro-posting Your first post, and not even a question, but some code. You're good in my book ( just don't do it again )
  11. We need some of those markers like phones have. Those dot,dot,dot ( ... ) so we get to know that someone is typing
  12. Since @Ace08 is unlikely to thank you for the code and welcome you to the forum, I'll do it. There are some forum rules, like all forums do. One is that all communications are in English. Welcome to the forum
  13. Provider=Advantage OLE DB Provider That above is the "other" I use. MySQL for my "AutoIt as a CGI"** , and the beloved SQLite. ** in apache/php. I either code an AutoIt page generator, or a JSON string "returner", or anything that would avoid me coding perl or php. And use a MySQL UDF from somewhere that is in code I haven't touch in years, and would take for me to go to the client(s) PC(s) to look at to tell you exactly the one. Note to self: get organized !, you 😅
  14. powershell "Get-PhysicalDisk | Select-Object FriendlyName, DeviceID, AdapterSerialNumber" That will give you the info you would need to ask for RMA on the drive and I believe that is the info he is looking for.
×
×
  • Create New...