fangyc
驱动牛犊
驱动牛犊
  • 注册日期2006-04-13
  • 最后登录2013-12-10
  • 粉丝0
  • 关注0
  • 积分113分
  • 威望196点
  • 贡献值0点
  • 好评度33点
  • 原创分0分
  • 专家分0分
阅读:2925回复:8

如何做到安装驱动的时候,不用重新启动电脑!

楼主#
更多 发布于:2008-08-15 10:31
现在我的安装驱动的方式,是用inf的方式或者 写一个bat的方式进行安装的。但是这两种方式的安装都会出现一个操作系统的对话框“系统设置改变”必须重新启动计算机才能使新的设置生效。想现在就重启计算机吗?

请问如何配置inf或者bat的内容,来使得这个系统给出的对话框不出现。

或者有更加好的安装方法?
请多多指点,谢谢!
ifsys2008
驱动牛犊
驱动牛犊
  • 注册日期2008-08-12
  • 最后登录2008-08-17
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望6点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-08-15 12:30
我也是有同样的疑问,帮你up
lihaif2001
驱动牛犊
驱动牛犊
  • 注册日期2008-07-25
  • 最后登录2011-03-30
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望6点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-08-15 12:35
InstDrv
下载地址
http://forum.jiangmin.com/UploadFile/2008-4/20084191365398.rar

这个软件你用用试看!

不过我用了感觉不怎么好用!可能方法不对,你用后告诉我效果怎么样!
mz_suya
驱动小牛
驱动小牛
  • 注册日期2008-06-13
  • 最后登录2010-08-01
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望648点
  • 贡献值2点
  • 好评度0点
  • 原创分0分
  • 专家分1分
地板#
发布于:2008-08-15 14:39
可以自己写程序将驱动加载.
调试的时候也可以借用某些工具来实现(例如楼上说的InstDrv)
fangyc
驱动牛犊
驱动牛犊
  • 注册日期2006-04-13
  • 最后登录2013-12-10
  • 粉丝0
  • 关注0
  • 积分113分
  • 威望196点
  • 贡献值0点
  • 好评度33点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2008-08-15 15:05
可以自己写程序将驱动加载.
是否有哪些参考的代码?
microbe
驱动小牛
驱动小牛
  • 注册日期2007-12-10
  • 最后登录2011-01-17
  • 粉丝1
  • 关注0
  • 积分914分
  • 威望420点
  • 贡献值1点
  • 好评度88点
  • 原创分0分
  • 专家分1分
5楼#
发布于:2008-08-15 22:56
需要重启电脑是因为你的去驱动启动选项是boot_start,如果改成service_start随服务启动就不会出现提示了,但是这样下次开机的时候驱动不会自启动,你需要自己启动。。。
ghost2002910
驱动牛犊
驱动牛犊
  • 注册日期2004-10-09
  • 最后登录2013-05-21
  • 粉丝0
  • 关注0
  • 积分12分
  • 威望45点
  • 贡献值1点
  • 好评度6点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2008-09-04 16:52
只要你的驱动确实不是需要在系统启动的时候才能工作(比如为了确保加载顺序),都可以不用重启电脑。
在注册表里面写几个键值就可以了,看下CreateService吧。
sghcel
驱动牛犊
驱动牛犊
  • 注册日期2009-02-26
  • 最后登录2009-05-07
  • 粉丝0
  • 关注0
  • 积分14分
  • 威望131点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2009-03-08 23:32
#include<stdio.h>
#include<windows.h>
void addService(char *path, char *serviceName);
int main()
{
    printf("输入要增加的服务程序路径:");
    char path[100];
    scanf("%s", path);
    printf("输入服务的名称:");
    char name[100];
    scanf("%s", name);
    addService(path, name);
    return 0;
}


void addService(char *path, char *name)
{
    SC_HANDLE schSCManager;
    SC_HANDLE schService;
    // Get a handle to the SCM database.
    schSCManager = OpenSCManager(
        NULL,                    // local computer
        NULL,                    // ServicesActive database
        SC_MANAGER_ALL_ACCESS);  // full access rights
    if (NULL == schSCManager)
    {
        printf("OpenSCManager failed (%d)\n", GetLastError());
        return;
    }
    // Create the service.
    schService = CreateService(
        schSCManager,              // SCM database
        name,                   // name of service
        name,                   // service name to display
        SERVICE_ALL_ACCESS,        // desired access
        SERVICE_FILE_SYSTEM_DRIVER, // service type
        SERVICE_DEMAND_START,      // start type
        SERVICE_ERROR_NORMAL,      // error control type
        path,                    // path to service's binary
        NULL,                      // no load ordering group
        NULL,                      // no tag identifier
        NULL,                      // no dependencies
        NULL,                      // LocalSystem account
        NULL);                     // no password
 
    if (schService == NULL)
    {
        printf("CreateService failed (%d)\n", GetLastError());
        CloseServiceHandle(schSCManager);
        return;
    }
    else printf("Service installed successfully\n");

    CloseServiceHandle(schService);
    CloseServiceHandle(schSCManager);
}



看到msdn写的一个
yiyi507
驱动牛犊
驱动牛犊
  • 注册日期2008-10-22
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分37分
  • 威望313点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2009-03-13 12:17
做驱动安装程序最好根据inf文件来做,随便通过服务来安装驱动的话会出现意想不到的问题
游客

返回顶部