nekin 发表于 2010-2-25 12:19:55

【已解决】怎样自动运行windows计算器的科学计算模式?

本帖最后由 nekin 于 2010-3-3 09:42 编辑

如果windows计算器当前的运行模式为“标准模式”,怎样自动启动计算器,自动转换成“科学计算”模式?

maxkingmax 发表于 2010-2-25 12:33:11

win7下测试通过run('calc')
sleep(1000)
send('!2')

maxkingmax 发表于 2010-2-25 12:42:34

另外发现注册表中
HKEY_CURRENT_USER\Software\Microsoft\Calc
下的layout 值可以控制其启动模式(值为DWord类型)
值为0时为科学型
值为1时为标准型
值为2时为程序员型(wIN7下才有)
....
所以可以通过先修改注册表值,再启动 CALC就可以达到楼主之目的

nekin 发表于 2010-2-25 12:50:15

回复 2# maxkingmax

不好意思,我测试没成功,在普通的XP系统下,有区别么?我能到”科学计算“模式下,但转换不过去。

nekin 发表于 2010-2-25 12:54:30

回复 3# maxkingmax


    谢谢啦,我先试试

maxkingmax 发表于 2010-2-25 13:41:30

在XP下,刚用虚拟机测试了下
Win.ini中如下字段

layout=0
控制 计算器的界面
layout=0 为科学型
layout=1 为普通型
iniWrite(@WindowsDir&'\win.ini','SciCalc','layout','0')
run('calc')

nekin 发表于 2010-2-25 13:50:21

回复 6# maxkingmax


    成功了,真的十分感谢!:face (15):

nekin 发表于 2010-2-25 13:53:34

回复 6# maxkingmax


我要做一个测试windows计算器的程序,应该做成什么样的呢?能否给点建议?

maxkingmax 发表于 2010-2-25 14:31:26

看不懂,要测试什么呢!?

nekin 发表于 2010-2-25 14:45:05

回复 9# maxkingmax


    windows的计算器

sanmoking 发表于 2010-2-25 15:09:05

楼主要做一个用au3写的程序?
然后楼主想到了做一个操作系统自带计算器的程序,但是一时半会有不知道这个东西是什么样的,所以就让大家帮忙想想这个test.exe应该有哪些功能,才能完美展示au3的强悍..

给你点建议:
1\打开科学型计算器,(展示au3打开其他exe,操作注册表,ini等文件,的功能)
1-2\识别计算器是否已打开(检测窗体是否出现,出现后弹出提示"已发现计算机界面"...呵呵)
2\点击计算器上的按钮进行计算,(展示au3的控件操作能力)
3\读取计算器的结果(展示au3的窗体\控件的读取能力)
4\移动\隐藏\最大化\最小化\关闭计算器的界面,(窗体操作能力)
5\其他.....
6\貌似这个东西根本无法展示出au3的强悍......充其量使用了au3的千分之一不到的功能......

痒痒 发表于 2010-2-25 15:59:24

不错的小技巧,收藏!

netegg 发表于 2010-2-25 17:52:18

如果只是测试计算器功能的话,用send吧,管它什么呢,直接发送按键就完了(计算器里面好像不包含send不可用的按键),何必管autoit呢

gapkiller 发表于 2010-2-25 18:33:21

强大不....
Global $Calc = ["1", "2", "3", "+", "4", "5", "6", "-", "7", "8", "9", "X", ".", "0", "=", "÷", "(", ")", "Back", "C"]
GUICreate("calculator",200,205)
$ioput = GUICtrlCreateInput("",10,10,180,20)

$x=10
$y=40
For $i = 0 To 19
        $Calc[$i] = GUICtrlCreateButton($Calc[$i],$x,$y,43,30)
        If Mod(($i+1), 4)=0 Then
                $x=10
                $y += 32
        Else
                $x += 45
        EndIf
Next
GUISetState()

$str=""
While 1
        Switch GUIGetMsg()
                Case -3
                        Exit
                Case $Calc
                        $str &= "1"
                        GUICtrlSetData($ioput,$str)
                Case $Calc
                        $str &= "2"
                        GUICtrlSetData($ioput,$str)
                Case $Calc
                        $str &= "3"
                        GUICtrlSetData($ioput,$str)
                Case $Calc
                        $str &= "+"
                        GUICtrlSetData($ioput,$str)
                Case $Calc
                        $str &= "4"
                        GUICtrlSetData($ioput,$str)
                Case $Calc
                        $str &= "5"
                        GUICtrlSetData($ioput,$str)
                Case $Calc
                        $str &= "6"
                        GUICtrlSetData($ioput,$str)
                Case $Calc
                        $str &= "-"
                        GUICtrlSetData($ioput,$str)
                Case $Calc
                        $str &= "7"
                        GUICtrlSetData($ioput,$str)
                Case $Calc
                        $str &= "8"
                        GUICtrlSetData($ioput,$str)
                Case $Calc
                        $str &= "9"
                        GUICtrlSetData($ioput,$str)
                Case $Calc
                        $str &= "*"
                        GUICtrlSetData($ioput,$str)
                Case $Calc
                        $str &= "."
                        GUICtrlSetData($ioput,$str)
                Case $Calc
                        $str &= "0"
                        GUICtrlSetData($ioput,$str)
                Case $Calc
                        $str = Execute($str)
                        GUICtrlSetData($ioput,$str)
                Case $Calc
                        $str &= "/"
                        GUICtrlSetData($ioput,$str)
                Case $Calc
                        $str &= "("
                        GUICtrlSetData($ioput,$str)
                Case $Calc
                        $str &= ")"
                        GUICtrlSetData($ioput,$str)
                Case $Calc
                        $str = StringLeft($str, StringLen($str)-1)
                        GUICtrlSetData($ioput,$str)
                Case $Calc
                        $str = ""
                        GUICtrlSetData($ioput,$str)
        EndSwitch
        $str = GUICtrlRead($ioput)
WEnd
页: [1]
查看完整版本: 【已解决】怎样自动运行windows计算器的科学计算模式?