• 全部
  • VC综合技术
  • 互联网技术
  • MFC AppLauncher
  • .NET 技术
  • 界面
  • 进程
  • 算法
  • 硬件/系统
  • 数据库
  • VC++技术资源

如何在98启动时让它加载我的DLL以及运行里面的函数?

chengyumao 2001-12-26 09:46:12
是不是要在那个INI文件中加点什么,但我不大清楚。
...全文
78 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
mickeyx 2001-12-28
假定要执行的函数名为Go

一. 创建你的DLL
1.在DEF文件里应有:
EXPORTS
Go PRIVATE

2. 在CPP文件里实现Go(必须按下列格式写)
void CALLBACK Go(HWND hwnd, HINSTANCE hinst, LPSTR lpszCmdLine, int nCmdShow)
{
...........
RegisterServiceProcess(NULL, RSP_SIMPLE_SERVICE ); //此行可以没有, 但如果你要求在用户"Log off"时不被终止, 则必须有.
...........
}


二.
设你的DLL的名字叫somedll.dll
在注册表里加上
Key: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices
Value: yourservicename = rundll32 somedll.dll, Go

总结:
1. 你的函数在用户登陆前被调用,
2. RegisterServiceProcess只适用与Windows 9X
3. 具体描述参阅MSDN:
"How to Start an Application at Boot Time Under Windows 95"




回复
chengyumao 2001-12-28
又查了一下,好像是执行完了最后一遍DLLMAIN后就出错了。而且我用VC6的向导生成的空 Sample DLL(只有一个MSGBOX)用RUNDLL32运行也一样,执行完了出错!!!.BUG????
回复
chengyumao 2001-12-28
#include "stdafx.h"
#include "windows.h"
#define dllexport _declspec(dllexport)

BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
return TRUE;
}

extern "C" dllexport void startlock()
{
SystemParametersInfo( SPI_SETSCREENSAVERRUNNING, TRUE, NULL, 0 );
SystemParametersInfo( SPI_SETSCREENSAVEACTIVE, FALSE, 0, 0 );
}

extern "C" dllexport void unlock()
{
SystemParametersInfo( SPI_SETSCREENSAVERRUNNING, FALSE, NULL, 0 );
SystemParametersInfo( SPI_SETSCREENSAVEACTIVE, TRUE, 0, 0 );
}
我的整个DLL。CPP就是这样,编译完了。以RUNDLL32运行时出访问出错??为什么?不过函数是执行了。
回复
chengyumao 2001-12-27
upup
有知道的吗?
回复
Rigel 2001-12-27
注册表里下面的键中加一句:
HKEY_LOCAL_MACHINE\software\Microsoft\windows\currentversion\Run

RunDll32.EXE *.DLL,Function

应该是这样,我没试,如果好用的话请告诉我。
回复
kiko_lee 2001-12-27
来帮忙push

http://www.csdn.net/expert/topic/441/441154.shtm

多谢了
回复
chengyumao 2001-12-27
mickeyx(试试看),不好意思,只有这么多分了。分给你,等你信了。
Rigel(红雪),你的做法是不是会被结束掉?就是那个RUNDLL32进程,我是想让系统启动时加载,但不是启动后不过还是谢谢你。
回复
mickeyx 2001-12-27
忘了, 如果先把分送给我, 然后发信給我, 给你个Sample Project. :)
mickey.xue@yeah.net
回复
mickeyx 2001-12-27
这个题目值一百分以上, 你太小气, 我有官方答案.
mickey.xue@yeah.net
真的想帮你, 不过先逗逗, 别生气.
回复
swqs 2001-12-26
我也非常想知道答案,帮你抬一下
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2001-12-26 09:46
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……