问题标签 [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.
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 加载资源。这似乎也适用,但我还没有工作(婴儿步骤..)。hInst
LoadString
LoadIcon
LoadAccelerators
我可以通过使用这些字符串和图标来注册一个 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 的调试信息,并且断点等不起作用。
有任何想法吗?我在正确的轨道上吗?
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 位行为吗?
windows - 使用 rundll32.exe 运行 dll .. 没有看到输出或错误
我正在使用 rundll32.exe 运行 dll,但我没有看到预期的输出,也没有看到我的日志语句,也没有看到任何类型的错误。
我该如何调试?
谢谢,
公斤
windows - 使用 rundll32.exe 作为 Windows 服务运行 dll
我能够使用 rundll32.exe 运行 dll。
现在我想将它作为 Windows 服务运行,但它似乎没有启动并超时。
我不确定如何传递参数。
尝试类似..
sc.exe 创建服务 binPath="c:\windows\system32\rundll32.exe -test.dll -Main"
尝试 使用 sc.exe 创建服务的建议;如何传入上下文参数 ,但它似乎不起作用。
有什么建议么?
谢谢,
卡尔提克
windows - 使用附加数据源参数从命令行打开 Word 文档
可以使用以下命令从命令行打开 word 文档:
不幸的是,该文档需要一个外部数据源,因此该数据源的路径必须在打开后手动设置。
有没有更方便的方法来提供一个额外的参数来指向数据源?
java - rundll32 url.dll,FileProtocolHandler
我rundll32 url.dll,FileProtocolHandler my_file.dotx
用来在 Windows 下打开文件。
它适用于 .docx 文档,但是当我尝试使用 .dotx 文档(模板文档)时,它会基于模板创建一个新的 .docx。
就像 Windows 资源管理器中的正常行为一样:当您双击 .dotx 模板文件时,它会基于它创建一个新的 .docx 文件。如果要打开真正的 .dotx 文件,则必须右键单击它并选择“打开”而不是“新建”。
问题是:如何对 rundll32 做同样的事情?命令中是否有强制打开基础模板而不是创建新文档的选项?
编辑:我需要一种在命令行中没有 C 函数的方法,只是纯文本(我正在使用 Java 来做)。
dll - 如何获取 user32.dll 中所有入口点的名称?
我正在试验rundll32.exe和user32.dll。例如,要锁定我的工作站,我键入:
我想在user32.dll中尝试其他命令(入口点),但我不知道它们是什么。是否有某种方法可以确定user32.dll中的所有入口点,或者更一般地确定任何 dll 中的所有入口点?还有什么是 dll 函数调用的有效参数?
请注意,我最终要做的是使用 rundll32.exe 打开开始菜单。如果有人知道哪个 dll/入口点会导致开始菜单弹出,请告诉我。
谢谢!
windows-xp - 在 WindowsXP 上运行 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
我想断开当前连接并在一分钟后重新连接。此外,要禁止所有提示/确认。
c# - GetForegroundWindow 抛出 Win32Exception 拒绝访问
我试过以管理员身份运行该应用程序,不行。我在这里做错了什么,我得到了这个例外?
visual-c++ - 在路径中有空格的图像文件上运行 Windows PhotoViewer
我在路径中有空格的图像文件上运行 PhotoViewer 时遇到问题。
我正在使用 C++ 函数 CreateProcess,提供一个命令行作为它的参数。命令行模板是:
这里的问题是必须没有双引号并且不能包含空格。
我的代码或多或少是这样的
现在我想在路径上有空格的图像文件上运行 PhotoViewer,例如