使用ShellExecute文档作为参考:
我从命令行运行以下命令:
C:\>RUNDLL32.EXE SHELL32.DLL,ShellExecute handle,"open","C:\Documents and Settings\admin\Desktop\tmp",NULL,NULL,SW_SHOWNORMAL
Run Code Online (Sandbox Code Playgroud)
这会导致异常错误.
我不知道这意味着什么:
HINSTANCE ShellExecute(
__in_opt HWND hwnd,
__in_opt LPCTSTR lpOperation,
__in LPCTSTR lpFile,
__in_opt LPCTSTR lpParameters,
__in_opt LPCTSTR lpDirectory,
__in INT nShowCmd
);
Run Code Online (Sandbox Code Playgroud)
但是在描述中,提到了句柄(HWND)和指向以空字符结尾的字符串(LPCTSTR)的指针,但它非常混乱.
任何帮助将不胜感激.我还想了解更多,所以任何参考(书籍,网络链接等)也会很棒!
Mic*_*ael 26
Rundll32仅支持使用以下签名运行DLL导出:
void CALLBACK
EntryPoint(HWND hwnd, HINSTANCE hinst, LPSTR lpszCmdLine, int nCmdShow);
Run Code Online (Sandbox Code Playgroud)
它不支持运行任意入口点.由于ShellExecute没有该签名,因此显然会发生不好的事情.
信息:Windows Rundll和Rundll32接口在rundll32接口上有更多信息.
如果要从命令行执行等效的ShellExecute,只需使用start:
C:\>start "C:\Documents and Settings\admin\Desktop\tmp"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
49992 次 |
| 最近记录: |