NoDriveTypeAutoRun 禁止自动播放 在有些机器上(比例小), 设置了这个注册表值后, 需要重起才能生效. (大多数机器不需要).直接使用gpedit.msc进行处理时, 又是即时生效的. 请问gpedit.msc还做了其他的什么处理吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://hi.baidu.com/feierinlove/blog/item/ac5b14811cae58dcbd3e1ee9.html修改注册表,比如修改光盘为不自动运行,如果单单通过写注册项修改NoDriveTypeAutorun属性,则要使其生效必须重起电脑,但是TweakUI就可以立即生效,到网上查发现必须先通知Windows外壳更新信息。最后去MSDN查了一下SendMessageTimeOut,觉得可以一试,结果还真成功了,呵呵下面是我修改系统 Policy 设置后实现立即生效的方法:SendMessageTimeout(HWND_BROADCAST,WM_SETTINGCHANGE,NULL,(LPARAM)(LPTSTR)lpD­ata,SMTO_NORMAL,1000,&dwResult);上面是 C 语言的 API 函数调用,用易语言就是:SendMessageTimeout (#HWND_BROADCAST, #WM_SETTINGCHANGE, 0, 0, #SMTO_NORMAL, 1000, dwResult).常量 HWND_BROADCAST, "65535".常量 SMTO_NORMAL, "0".常量 WM_SETTINGCHANGE, "26".DLL命令 SendMessageTimeout, 整数型, "user32", "SendMessageTimeoutA", , .参数 hWnd, 整数型, , 要接收消息的一个窗口的句柄 .参数 Msg, 整数型, , 消息的标识符 .参数 wParam, 整数型, , 由消息决定 .参数 lParam, 整数型, , 由消息决定 .参数 fuFlags, 整数型, , 下述常数的一个或多个;SMTO_ABORTIFHUNG:如目标进程挂起,则函数立即返回;SMTO_BLOCK:除非函数返回,否则调用线程不能处理消息;SMTO_NORMAL:允许调用线程处理消息,同时保持函数继续执行 .参数 uTimeout, 整数型, , 超时值,采用毫秒为单位 .参数 lpdwResult, 整数型, 传址, 用于装载函数结果的一个变量;这个API函数可以帮你通知底层应用程序更新注册表中 Policies 和 Enviroment 相关的所有注册项。AU3都会吧。AU3也一样可以用。嘿嘿。#NoTrayIconRegWrite("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced","StartMenuChange","REG_DWORD","0")RegWrite("HKLM\SYSTEM\CurrentControlSet\Control\CrashControl","AutoReboot","REG_DWORD","1")DllCall("user32.dll","int","SendMessageTimeout","hwnd",65535,"int",26,"int",0,"int",0,"int",0,"int",1000,"str","dwResult")(这句关键。哈哈)Exit ls说的是一种方法,我这边再说一种在你的程序修改注册表的代码段的后面,RegClose后面加上一句: SystemParametersInfo(SPI_SETCURSORS,0,NULL,SPIF_SENDCHANGE); 就可以了 (奇怪+求助)自己写的 CTreeCtrl类直接调用没问题,编译DLL后调用有问题. 关于编辑框透明的问题 我这有10分,谁给个理由我给他分! 通过ADO调用存储过程,如何取得存储过程中的return码(返回码)? 为什么我把工程Seting设为Win32 Unicode Debug,提示我没有Mfc42ud.dll? 关于内存泄漏 怎么实现编辑操作的Undo, 高分求助... 如何给时间控件赋值 如何在mfc里使用winsock2的函数? 画图中如何定义坐标原点? MFC是怎样。。。自己写了一个类。。老是因为stdafx的问题报错。。 拖拉了spin控件到对话框上,咋它不带编辑框?
修改注册表,比如修改光盘为不自动运行,如果单单通过写注册项修改NoDriveTypeAutorun属性,则要使其生效必须重起电脑,但是TweakUI就可以立即生效,到网上查发现必须先通知Windows外壳更新信息。最后去MSDN查了一下SendMessageTimeOut,觉得可以一试,结果还真成功了,呵呵下面是我修改系统 Policy 设置后实现立即生效的方法:SendMessageTimeout(HWND_BROADCAST,WM_SETTINGCHANGE,NULL,(LPARAM)(LPTSTR)lpD­ata,SMTO_NORMAL,1000,&dwResult);上面是 C 语言的 API 函数调用,用易语言就是:SendMessageTimeout (#HWND_BROADCAST, #WM_SETTINGCHANGE, 0, 0, #SMTO_NORMAL, 1000, dwResult).常量 HWND_BROADCAST, "65535"
.常量 SMTO_NORMAL, "0"
.常量 WM_SETTINGCHANGE, "26".DLL命令 SendMessageTimeout, 整数型, "user32", "SendMessageTimeoutA", ,
.参数 hWnd, 整数型, , 要接收消息的一个窗口的句柄
.参数 Msg, 整数型, , 消息的标识符
.参数 wParam, 整数型, , 由消息决定
.参数 lParam, 整数型, , 由消息决定
.参数 fuFlags, 整数型, , 下述常数的一个或多个;SMTO_ABORTIFHUNG:如目标进程挂起,则函数立即返回;SMTO_BLOCK:除非函数返回,否则调用线程不能处理消息;SMTO_NORMAL:允许调用线程处理消息,同时保持函数继续执行
.参数 uTimeout, 整数型, , 超时值,采用毫秒为单位
.参数 lpdwResult, 整数型, 传址, 用于装载函数结果的一个变量;这个API函数可以帮你通知底层应用程序更新注册表中 Policies 和 Enviroment 相关的所有注册项。AU3都会吧。AU3也一样可以用。嘿嘿。#NoTrayIcon
RegWrite("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced","StartMenuChange","REG_DWORD","0")
RegWrite("HKLM\SYSTEM\CurrentControlSet\Control\CrashControl","AutoReboot","REG_DWORD","1")
DllCall("user32.dll","int","SendMessageTimeout","hwnd",65535,"int",26,"int",0,"int",0,"int",0,"int",1000,"str","dwResult")
(这句关键。哈哈)Exit
SystemParametersInfo(SPI_SETCURSORS,0,NULL,SPIF_SENDCHANGE);
就可以了