使用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)的指针,但它非常混乱.
任何帮助将不胜感激.我还想了解更多,所以任何参考(书籍,网络链接等)也会很棒!
我的ac #dll定义如下:
namespace SMSNotificationDll
{
public class smsSender
{
public void SendMessage(String number, String message)
{
ProcessStartInfo info = new ProcessStartInfo();
info.FileName = "c:\\Program Files\\Java\\jdk1.6.0_24\\bin\\java";
info.WorkingDirectory = "c:\\";
info.Arguments = "-jar SendSms.jar "+number + " "+message;
info.UseShellExecute = false;
Process.Start(info);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我需要从命令行执行它.
有什么方法可以通过rundll32运行它吗?
当我用它运行它:
rundll32 SMSNotificationDll.dll, SendMessage 0749965244 hello
Run Code Online (Sandbox Code Playgroud)
我错过了条目:SendMessage.
RunDll32究竟如何调用函数,而不知道函数可以采用的参数的数量/类型?
它是否有内置的编译器或类似的东西?
我刚刚(2014年8月)看到了一个使用命令行的程序的报告
rundll32.exe javascript:"\..\mshtml,RunHTMLApplication"
Run Code Online (Sandbox Code Playgroud)
这是如何运作的?我认为第一个参数应该是DLL的名称(mshtml),但是rundll32如何解析该命令行?
rundll参考:http: //support.microsoft.com/kb/164787
我正在重复另一个论坛的问题,因为我想要同样的答案.
来自MSDN的SwapMouseButton函数.
如何通过rundll32.exe将布尔数据从命令提示符传递到从user32.dll运行的命令中的布尔类型参数?
我正试图从CMD(命令提示符)运行它
Run Code Online (Sandbox Code Playgroud)RUNDLL32.EXE user32.dll,SwapMouseButton *
星号在这里的地方是争论应该去的地方.我已经运行它没有参数,它交换了我的左右鼠标按钮(似乎TRUE是布尔参数的默认条目).现在我要撤消它.但是我已经尝试了每一个在参数中传递FALSE,并且没有一个工作(没有设置我的鼠标按钮恢复正常).
- F
- F
- 假
- 假
- 假
- "假"
- "假"
- "假"
- 0
- -1
请帮我根据需要传递论据.提前致谢.
我一直被 Java 中这个老错误/缺失的功能所困扰:
https://bugs.java.com/bugdatabase/view_bug;jsessionid=b2ac8ea11f05c16d948e24d36fb5?bug_id=4673406
问题是,Java 标准打印对话框中的“属性”按钮在 Windows 上似乎始终处于禁用状态。仅当 PrintService.getServiceUIFactory() 返回不为 null 的内容时,才会启用该按钮。不幸的是 Win32PrintService 实例总是返回 null。总是。
通过谷歌搜索,我发现你可以通过调用 rundll32 来调用 Windows 自己的打印属性对话框:
rundll32 printui.dll,PrintUIEntry /e /n "name of printer here"
Run Code Online (Sandbox Code Playgroud)
我希望我可以使用它来规避 Win32PrintService 中的错误/缺失功能。但是,我不知道如何查询 PrintUIEntry 对话框以获取用户的选择。
换句话说,如何获得上述 rundll32 调用的结果?(如果我必须用 C/JNI 编写一些东西并直接使用 Windows API,那就这样吧。不过,我宁愿不这样做。)
或者有更好的方法来解决这个问题吗?
我有一个导出函数的DLL:
__declspec(dllexport)
void __stdcall MyEntryPoint(char* params)
{
MessageBoxA("MyEntryPoint",params,0,0);
}
Run Code Online (Sandbox Code Playgroud)
如何使用rundll32.exe加载我的DLL并调用MyEntryPoint()
?
我用来rundll32 url.dll,FileProtocolHandler my_file.dotx
在 Windows 下打开文件。
它适用于 .docx 文档,但当我尝试使用 .dotx 文档(模板文档)时,它会根据模板创建一个新的 .docx。
就像 Windows 资源管理器中的正常行为一样:当您双击 .dotx 模板文件时,它会基于它创建一个新的 .docx 文件。如果你想打开真正的.dotx文件,你必须右键单击它并选择“打开”而不是“新建”。
问题是:如何对 rundll32 执行同样的操作?命令中是否有一个选项可以强制打开底层模板而不是创建新文档?
编辑:我需要一种方法来做到这一点,无需C函数,只需纯文本,在命令行中(我使用Java来做到这一点)。
我正在试验rundll32.exe和user32.dll。例如,要锁定我的工作站,我键入:
rundll32.exe user32.dll, LockWorkStation
Run Code Online (Sandbox Code Playgroud)
我想在user32.dll 中尝试其他命令(入口点),但我不知道它们是什么。有没有办法确定user32.dll 中的所有入口点或更一般地确定任何 dll 中的入口点?还有什么是 dll 函数调用的有效参数?
请注意,我最终要做的是使用 rundll32.exe 打开开始菜单。如果有人知道哪个 dll/入口点会导致开始菜单弹出,请告诉我。
谢谢!
rundll32 ×10
windows ×3
c ×2
dll ×2
java ×2
c# ×1
command-line ×1
entry-point ×1
javascript ×1
mouse ×1
ms-word ×1
mshtml ×1
printing ×1
win64 ×1
winapi ×1