function mouse_simulation(n,mouse_button)
% n -> number of mouse clicking
% n=2 -> double click
% mouse_button -> 'LEFT' -> left button
%
% 'RIGHT' -> right button
%
% 'MIDDLE' -> middle button
%
% by : Morteza Ahmadi Najafabadi (matlab7.class@gmail.com)
% I used c code for this function !
% If you already have made desirable 'm_click.mexw32' it is not need to run 'make_m_click'
make_m_click(mouse_button)
for i=1:n
m_click
pause(0.1)
end
function make_m_click(mouse_button)
%% #1 create m_click.c
tt=['#include "mex.h" //--This one is required ' char([13 10]) char([13 10]) ,...
'#include "windows.h"' char([13 10]) ,...
'#define MOUSEEVENTF_MOVE 0x0001 /* mouse move */' char([13 10]) ,...
'#define MOUSEEVENTF_LEFTDOWN 0x0002 /* left button down */' char([13 10]) ,...
'#define MOUSEEVENTF_LEFTUP 0x0004 /* left button up */' char([13 10]) ,...
'#define MOUSEEVENTF_RIGHTDOWN 0x0008 /* right button down */' char([13 10]) ,...
'#define MOUSEEVENTF_RIGHTUP 0x0010 /* right button up */' char([13 10]) ,...
'#define MOUSEEVENTF_MIDDLEDOWN 0x0020 /* middle button down */' char([13 10]) ,...
'#define MOUSEEVENTF_MIDDLEUP 0x0040 /* middle button up */' char([13 10]) ,...
'#define MOUSEEVENTF_WHEEL 0x0800 /* wheel button rolled */' char([13 10]) ,...
'#define MOUSEEVENTF_ABSOLUTE 0x8000 /* absolute move */' char([13 10]) ,...
' ' char([13 10]) ,...
'WINUSERAPI' char([13 10]) ,...
'VOID' char([13 10]) ,...
'WINAPI' char([13 10]) ,...
'mouse_event(' char([13 10]) ,...
'DWORD dwFlags,' char([13 10]) ,...
'DWORD dx,' char([13 10]) ,...
'DWORD dy,' char([13 10]) ,...
'DWORD dwData,' char([13 10]) ,...
'DWORD dwExtraInfo);' char([13 10]) ,...
' ' char([13 10]) ,...
'void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])' char([13 10]) ,...
'{' char([13 10]) ,...
' mouse_event(MOUSEEVENTF_' mouse_button 'DOWN, 0,0, 0, 0);' char([13 10]) ,...
' mouse_event(MOUSEEVENTF_' mouse_button 'UP, 0,0, 0, 0);' char([13 10]) ,...
'}' char([13 10]) ,...
' ']+0;
fid=fopen('m_click1.txt','w+');
fprintf(fid,'%s',tt)
fclose(fid);
dos('del m_click.c')
dos('rename m_click1.txt m_click.c')
%% #2 compile 'm_click.c' and make 'm_click.mexw32'
mex m_click.c