我要调用QQ里的抓图工具CameraDll.all 里的CameraSubArea函数批处理做的执行文件是
rund32.exe cameradll.dll camerasubarea
这是别人用C语言写的 strcpy(m_szCommand, szTempPath);
strcat(m_szCommand, _T(" CameraSubArea"));
LRESULT OnHotKey(UINT, WPARAM, LPARAM, BOOL&)
{
ShellExecute(NULL, "open", "rundll32.exe", m_szCommand,NULL, NULL);
return 0;
} 他是先把cameradll.dll存到系统临时文件夹里,然后调用的.
如果用delphi做,代码要怎么写?
rund32.exe cameradll.dll camerasubarea
这是别人用C语言写的 strcpy(m_szCommand, szTempPath);
strcat(m_szCommand, _T(" CameraSubArea"));
LRESULT OnHotKey(UINT, WPARAM, LPARAM, BOOL&)
{
ShellExecute(NULL, "open", "rundll32.exe", m_szCommand,NULL, NULL);
return 0;
} 他是先把cameradll.dll存到系统临时文件夹里,然后调用的.
如果用delphi做,代码要怎么写?
lpszCmdLine: PChar; nCmdShow: Integer); stdcall; external 'CameraDll.dll';
procedure TForm1.Button1Click(Sender: TObject);
begin
CameraSubArea(Handle, HInstance, nil, SW_SHOWNORMAL);
end;
把CameraDll.dll拷贝到跟你的exe在一个目录或者Window、System32的目录下,用CameraSubArea(Handle, HInstance, nil, SW_SHOWNORMAL);来调用就行了。
我这样做的
procedure TForm1.Button1Click(Sender: TObject);
begin
try
CameraSubArea(Handle, HInstance, nil, SW_SHOWNORMAL);
except
free;
end;
end;但是程序会自动关闭
换成CameraSubArea(Handle, HInstance, '', SW_SHOWNORMAL);
试试
lpszCmdLine: PChar; nCmdShow: Integer); stdcall; external 'CameraDll.dll';
换成
procedure CameraSubArea(hWindow: HWND; hInst: THandle;
lpszCmdLine: PChar; nCmdShow: Integer); cdecl; external 'CameraDll.dll';CameraSubArea(Handle, HInstance, nil, SW_SHOWNORMAL);
换成
CameraSubArea(Handle, GetModuleHandle('CameraDll.dll'), nil, SW_RESTORE);
ShellExecute(NULL, "open", "rundll32.exe", m_szCommand,NULL, NULL);