问题标签 [rundll32]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
679 浏览

windows - 通过 rundll32 在 dll 中运行完整的 Windows 应用程序

有没有人有一个将完整的 WIN32 Windows 应用程序构建为 dll 的示例?

我想导出一个函数,通过 rundll32 调用它,并拥有一个完整的 Windows 应用程序,其中包含装饰、菜单、加速器和弹出的所有内容。

我知道rundll32的调用约定:

我可以通过以下命令从该函数中提取一个 MessageBox:rundll32.exe test3.dll,TestEntry other params and args

我可以通过获取 DLL 的句柄并在我的调用中GetModuleHandle("test3.dll")使用它来从我的 DLL 加载资源。这似乎也适用,但我还没有工作(婴儿步骤..)。hInstLoadStringLoadIconLoadAccelerators

我可以通过使用这些字符串和图标来注册一个 Windows 类RegisterClassEx,但我必须使用父类hInst,否则我ERROR_CANNOT_FIND_WND_CLASS在调用CreateWindow. 我认为这是预期的。

但是,当我尝试在 中使用该类时CreateWindow,它返回 NULL,而GetLastError.

我可以检索使用从 rundll32 传递的 hInst 的窗口类GetWindowsLong(hWnd, GWL_ATOM)。将它用于 lpClassName,我可以拉出一个没有菜单和加速器的装饰窗口,但它有点时髦,因为 rundll 的窗口类通常只用于它的消息队列。我尝试使用子类化窗口SetWindowsLong来替换WndProc和调用CallWindowProc而不是DefWindowProc在我的 dll 中WndProc

由于无法在 MSVC++ 2010 Express 中调试它,我受到了阻碍。我用适当的条目替换了项目的命令和命令参数,因此它可以正确启动它,但它抱怨没有 rundll32.exe 的调试信息,并且断点等不起作用。

有任何想法吗?我在正确的轨道上吗?

0 投票
1 回答
1025 浏览

gcc - 使用 mingw 构建 64 位 dll 以与 rundll 一起使用

我目前正在尝试将我的项目更新为 64 位支持。该项目使用 i686-w64-mingw32 工具链构建了一个 32 位 dll,可以与 rundll 一起使用来启动它。

现在,我正在尝试使用 x86_64-w64-mingw32 工具链来构建它的 64 位版本。我在编译时也使用-m64。DLL 可以被构建和链接,甚至可以被执行。但是在windbg中检查结果时我得到了奇怪的结果(见下面的输出)。看起来它将我的 mmbbq.dll 加载到 32 位地址空间中。它还加载一些依赖项的 32 位版本。我们可以通过查看模块加载时的基地址在输出中看到这一点。它首先加载一些 64 位 dll(可能是 rundll 依赖项)。然后它开始加载 32 位的东西,最后以 32 位模式加载我的 64 位 dll。有趣的是,当我检查它的 PE 标头时,我的 DLL 是 64 位版本。

对此行为的任何解释或我可能搞砸的其他事情,或者我只是误解了输出?我认为基地址应该与 64 位模式下的不同。

更新 从 System32 目录使用 rundll32 后,它看起来更好。但我仍然对我的 dll 加载到“0x00000000”段中感到困惑。那是常规的 64 位行为吗?

0 投票
1 回答
2273 浏览

windows - 使用 rundll32.exe 运行 dll .. 没有看到输出或错误

我正在使用 rundll32.exe 运行 dll,但我没有看到预期的输出,也没有看到我的日志语句,也没有看到任何类型的错误。

我该如何调试?

谢谢,

公斤

0 投票
1 回答
1927 浏览

windows - 使用 rundll32.exe 作为 Windows 服务运行 dll

我能够使用 rundll32.exe 运行 dll。

现在我想将它作为 Windows 服务运行,但它似乎没有启动并超时。

我不确定如何传递参数。

尝试类似..

sc.exe 创建服务 binPath="c:\windows\system32\rundll32.exe -test.dll -Main"

尝试 使用 sc.exe 创建服务的建议;如何传入上下文参数 ,但它似乎不起作用。

有什么建议么?

谢谢,

卡尔提克

0 投票
3 回答
18158 浏览

windows - 使用附加数据源参数从命令行打开 Word 文档

可以使用以下命令从命令行打开 word 文档:

不幸的是,该文档需要一个外部数据源,因此该数据源的路径必须在打开后手动设置。

有没有更方便的方法来提供一个额外的参数来指向数据源?

0 投票
1 回答
14618 浏览

java - rundll32 url.dll,FileProtocolHandler

rundll32 url.dll,FileProtocolHandler my_file.dotx用来在 Windows 下打开文件。

它适用于 .docx 文档,但是当我尝试使用 .dotx 文档(模板文档)时,它会基于模板创建一个新的 .docx。

就像 Windows 资源管理器中的正常行为一样:当您双击 .dotx 模板文件时,它会基于它创建一个新的 .docx 文件。如果要打开真正的 .dotx 文件,则必须右键单击它并选择“打开”而不是“新建”。

问题是:如何对 rundll32 做同样的事情?命令中是否有强制打开基础模板而不是创建新文档的选项?

编辑:我需要一种在命令行中没有 C 函数的方法,只是纯文本(我正在使用 Java 来做)。

0 投票
1 回答
3579 浏览

dll - 如何获取 user32.dll 中所有入口点的名称?

我正在试验rundll32.exeuser32.dll。例如,要锁定我的工作站,我键入:

我想在user32.dll中尝试其他命令(入口点),但我不知道它们是什么。是否有某种方法可以确定user32.dll中的所有入口点,或者更一般地确定任何 dll 中的所有入口点?还有什么是 dll 函数调用的有效参数?

请注意,我最终要做的是使用 rundll32.exe 打开开始菜单。如果有人知道哪个 dll/入口点会导致开始菜单弹出,请告诉我。

谢谢!

0 投票
1 回答
472 浏览

windows-xp - 在 WindowsXP 上运行 rundll32.exe

在 Windows XP 中使用 Rundll32.exe

我可以将一些参数传递给这些命令吗?

就像我们在复制/粘贴文件和覆盖等时所做的那样。

编辑:有问题的DLL:

C:\Program Files\Sony Ericsson\Sony Ericsson PC Suite\RasCnxMngr.dll

使用保存的连接打开 GPRS 会话的命令是:

C:\WINDOWS\system32\Rundll32.exe RasCnxMngr.dll,Rundll_Dial Aitel_GPRS

我对DLL知之甚少。但是,以二进制模式打开 DLL 我可以找到下面的字符串以及“ Rundll_Dial ”:

RasCnxMngr.dll
Rundll_Dial
RasCM_CreateView
RasCM_ModuleInquire
RasCM_RemoveAllConnection
RasCM_RemoveConnection
_RasCM_ClearConnectionStatistics@4
_RasCM_Connect@16
_RasCM_Connection@12
_RasCM_ConnectionProperties@12
_RasCM_ConnectionWizard@12
_RasCM_Disconnect@4
_RasCM_Disconnection@8
_RasCM_EnumConnections@12
_RasCM_EnumConnectionsEx@16
_RasCM_GetConnectStatus@4
_RasCM_GetConnectionStatistics@8
_RasCM_GetConnectionStatus@8
_RasCM_GetDefaultConnection@4
_RasCM_GetFallbackConnection@8
_RasCM_GetRASHandle@4
_RasCM_HideConnections@4
_RasCM_Init@8
_RasCM_InitEx@12
_RasCM_ReadConnectionData@12
_RasCM_SetModemInfos@8
_RasCM_Uninit@4
_RasCM_ViewConnections@12
_RasCM_ViewLog@12

我想断开当前连接并在一分钟后重新连接。此外,要禁止所有提示/确认。

0 投票
1 回答
315 浏览

c# - GetForegroundWindow 抛出 Win32Exception 拒绝访问

我试过以管理员身份运行该应用程序,不行。我在这里做错了什么,我得到了这个例外?

0 投票
1 回答
1285 浏览

visual-c++ - 在路径中有空格的图像文件上运行 Windows PhotoViewer

我在路径中有空格的图像文件上运行 PhotoViewer 时遇到问题。

我正在使用 C++ 函数 CreateProcess,提供一个命令行作为它的参数。命令行模板是:

这里的问题是必须没有双引号并且不能包含空格。

我的代码或多或少是这样的

现在我想在路径上有空格的图像文件上运行 PhotoViewer,例如