求代码,删除系统已安装的输入法,或者让系统已经安装的输入法为不使用
各大输入法的绿色版已经提取,利用AU3 程序启动配置文件中的EXE文件(输入法绿色安装文件)
询问用户 是否删除系统中已安装的输入法
如果是删除系统中已安装输入法然后将新安装的输入法设置为激活
具体可以参照网维大师 7系列的 输入法功能
大致功能和网维大师的相同
只是 网维大师7系列的输入法功能必须调用7系列的游戏菜单才能正常使用
由于7系列的游戏菜单不稳定所以希望高手能给出代码 写段模仿 网维大师输入法的程序 #include <GUIConstants.au3>
#include <WindowsConstants.au3>
#include <array.au3>
Dim $var, $ime, $imee = ""
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("输入法伪删除", 477, 50, 278, 127)
$Label1 = GUICtrlCreateLabel("选择输入法", 10, 25, 64, 20)
$Combo1 = GUICtrlCreateCombo("", 80, 20, 160, 25)
$button3 = GUICtrlCreateButton("删除", 380, 16, 50, 28, 0)
Readreg()
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $button3
Local $ime_temp
$delime = StringRegExp(GUICtrlRead($Combo1), '=(.+)', 3)
If UBound($delime) > 0 Then
For $i = 1 To $var
If $var[$i] == $delime Then
RegDelete('HKEY_CURRENT_USER\keyboard layout\preload', $i)
Else
$ime_temp &= $var[$i] & "|"
RegDelete('HKEY_CURRENT_USER\keyboard layout\preload', $i)
EndIf
Next
$arr = StringSplit(StringTrimRight($ime_temp, 1), "|")
For $n = 1 To $arr
RegWrite('HKEY_CURRENT_USER\keyboard layout\preload', $n, 'REG_SZ', $arr[$n])
Next
EndIf
readreg()
MsgBox(0, 0, "重新启动后生效")
EndSwitch
WEnd
Func readreg()
GUICtrlSetData($Combo1, "")
$imee = ''
For $i = 1 To 100
$var[$i] = RegRead("HKEY_CURRENT_USER\keyboard layout\preload", $i)
If Not $var[$i] Then
$var = $i - 1
ExitLoop
EndIf
Next
For $i = 1 To $var
$ime[$i] = RegRead("HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Keyboard Layouts\" & $var[$i], "Layout Text")
If $ime[$i] Then $imee = $imee & $ime[$i] & "=" & $var[$i] & "|"
Next
If StringRight($imee, 1) = "|" Then $imee = StringTrimRight($imee, 1)
GUICtrlSetData($Combo1, $imee, $ime)
EndFunc ;==>readreg 回复 2# 3mile
感谢你的帮助 代码我测试下 首先还是要感谢下二楼的大大
代码执行后 选择删除某输入法后提示重起后才能生效
代码需要删除所有系统已安装的输入法 只留下EN 输入 和 即将安装的输入法
不知道能不能实现 回复 4# kisyan
能。不重启系统继续删,然后重启 顶,,,好东东 还有注册表键项也需要删除的! 支持下,不错的源码 嘿嘿,顶一个,做个标记,以待不时之需!
页:
[1]