I am desperate to automate BSPlayer from my script. I managed to send simple command identifiers to the BSPlayer window (volume up / down, play / pause, etc.), however, I cannot return the file name.
Here is the BSPlayer API. I was able to emulate the first parts in python, however WM_COPYDATA does not work.
Here is my Python code:
copyDataCmd = COPYDATASTRUCT() copyDataCmd.dwData = self.BSP_GetFileName copyDataCmd.lpData = "" copyDataCmd.cbData = 4 win32gui.SendMessage(self.playerWindowHandler, win32con.WM_COPYDATA, ownHandler, copyDataCmd);
Obviously .lpData returns "" ...
I'm trying to imitate:
cds:TCOPYDATASTRUCT; buf:array[0..MAX_PATH-1] of char; adr:pointer; // adr: =@buf ; cds.dwData:=BSP_GetFileName; cds.lpData: =@adr ; cds.cbData:=4; SendMessage(bsp_hand,WM_COPYDATA,appHWND,lParam(@cds)); // available in BSPlayer version 0.84.484+ // // appHWND is calling application window handle // File name will be copied to buf // // Get open file name BSP_GetFileName = $1010B;
To be more detailed, I am trying to get the file name from the BSPlayer window. To do this, I try to imitate the code above. I expect a buffer of some type to be filled with my desired string, but it will be empty. So, again, I want the equivalent Python code above.
For example, this code has been emulated successfully:
status := SendMessage(bsp_hand,WM_BSP_CMD,BSP_GetStatus,0); // available in BSPlayer version 0.84.484+ // // Return player status // 0 - STOP // 1 - PAUSE // 2 - PLAY // 4 - No movie open BSP_GetStatus = $10102;
Thanks in advance!