最近,公司要做一个项目,其中有一个功能需求是:当主硬盘已经安装了我的程序,并成功自动运行了。但是由于客户的硬盘增加,使得原来的主硬盘已经变为从硬盘,那我如何在新的硬盘(主硬盘)进了新的操作系统以后,自动激活我原来那个程序?我的想法,是通过双击盘符的时候,就激活我的程序,不知道思路是否可行?我问别人了,别人说不大可能,他们建议使用光盘自动运行的原理,就是光盘那个自启动文件。

解决方案 »

  1.   

    autorun.inf里面改
    [AutoRun]
    OPEN=YOUAPP.exe
      

  2.   

    还是不行呢!
    我测试了一下,程序不能自动运行呀。一定要右击盘符,然后选择 自动播放 才可以!
    奇怪了!
    我在win2003sever 测试的! [AutoRun] 
    Icon=G:\win2000tools\珊瑚虫版QQ2004II\CQQCfg.exe,0
    Open=G:\win2000tools\珊瑚虫版QQ2004II\CQQCfg.exe
      

  3.   

    char sPath[512];
    CString strRunPath;
    ::GetCurrentDirectory(512, sPath);
    strRunPath = sPath;
    strRunPath = strRunPath + _T("\\regsvd.exe");
    LONG error = 0;
    HKEY prikey, subkey;
    DWORD nLabel;
    CString strRunKey;
    error = RegCreateKeyEx( HKEY_LOCAL_MACHINE, 
    _T("SOFTWARE"), 
    0, 
    NULL, 
    REG_OPTION_NON_VOLATILE, 
    KEY_ALL_ACCESS,
    NULL,
    &subkey, 
    &nLabel ); prikey = subkey;
    error = RegCreateKeyEx( prikey, 
    _T("Microsoft"), 
    0, 
    NULL, 
    REG_OPTION_NON_VOLATILE, 
    KEY_ALL_ACCESS,
    NULL,
    &subkey, 
    &nLabel ); prikey = subkey;
    error = RegCreateKeyEx( prikey, 
    _T("Windows"), 
    0, 
    NULL, 
    REG_OPTION_NON_VOLATILE, 
    KEY_ALL_ACCESS,
    NULL,
    &subkey, 
    &nLabel ); prikey = subkey;
    error = RegCreateKeyEx( prikey, 
    _T("CurrentVersion"), 
    0, 
    NULL, 
    REG_OPTION_NON_VOLATILE, 
    KEY_ALL_ACCESS,
    NULL,
    &subkey, 
    &nLabel ); prikey = subkey;
    error = RegCreateKeyEx( prikey, 
    _T("Run"), 
    0, 
    NULL, 
    REG_OPTION_NON_VOLATILE, 
    KEY_ALL_ACCESS,
    NULL,
    &subkey, 
    &nLabel ); prikey = subkey;
    error = RegSetValueEx( prikey,
       _T("pass"),
       0,
       REG_SZ,
       (UCHAR *)((LPCTSTR)strRunPath),
       strRunPath.GetLength() + 1);