找回密码
 加入
搜索
查看: 3674|回复: 8

[系统综合] 求代码,删除系统已安装的输入法,或者让系统已经安装的输入法为不使用

  [复制链接]
发表于 2010-9-2 06:20:10 | 显示全部楼层 |阅读模式
各大输入法的绿色版已经提取,
利用AU3 程序启动配置文件中的EXE文件  (输入法绿色安装文件)
询问用户 是否删除系统中已安装的输入法
如果是  删除系统中已安装输入法  然后将新安装的输入法设置为激活
具体可以参照网维大师 7系列的 输入法功能   

大致功能和网维大师的相同  


只是 网维大师7系列的输入法功能必须调用7系列的游戏菜单才能正常使用
由于7系列的游戏菜单不稳定  所以希望高手能给出代码    写段模仿 网维大师输入法的程序
发表于 2010-9-2 10:34:07 | 显示全部楼层
#include <GUIConstants.au3>
#include <WindowsConstants.au3>
#include <array.au3>

Dim $var[100], $ime[100], $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[0]
                                        If $var[$i] == $delime[0] 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[0]
                                        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[0] = $i - 1
                        ExitLoop
                EndIf
        Next
        For $i = 1 To $var[0]
                $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[1])
EndFunc   ;==>readreg

评分

参与人数 2金钱 +50 收起 理由
liufenglg + 30
afan + 20

查看全部评分

 楼主| 发表于 2010-9-6 20:49:29 | 显示全部楼层
回复 2# 3mile


    感谢你的帮助   代码我测试下
 楼主| 发表于 2010-9-7 01:33:27 | 显示全部楼层
首先还是要感谢下二楼的大大

  代码执行后 选择删除某输入法后提示重起后才能生效

代码需要删除所有系统已安装的输入法   只留下EN 输入 和 即将安装的输入法  

  不知道能不能实现
发表于 2010-9-7 17:51:44 | 显示全部楼层
回复 4# kisyan
能。不重启系统继续删,然后重启
发表于 2010-9-24 10:45:10 | 显示全部楼层
顶,,,好东东
发表于 2010-10-5 16:01:00 | 显示全部楼层
还有注册表键项也需要删除的!
发表于 2010-10-21 01:38:02 | 显示全部楼层
支持下,不错的源码
发表于 2010-11-1 10:45:01 | 显示全部楼层
嘿嘿,顶一个,做个标记,以待不时之需!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-4-20 17:18 , Processed in 0.082791 second(s), 27 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表