几个外部程序调用

生活 CN-P5 1649℃ 0评论

1,开机(windows运行)时间:(By Gooker)
$time = DllCall("kernel32.dll","int","GetTickCount")
MsgBox(0,0,$time[0]) ;$time[0]是window运行时间的毫秒数

2,根据文件扩展名取得相关图标(By 辣椒龙)
以txt文件为例。
1.找HKEY_CLASSES_ROOT.txt下的默认键,值是“txtfile”。
2.找HKEY_CLASSES_ROOTtxtfileDefaultIcon下的默认值,值是“%SystemRoot%system32shell32.dll,-152”。
逗号前是文件名(也可以是exe文件等),后是位置(正值为顺序号,负值为索引号)。

3,设置Combo内内容为不可更改(样式)(By chasedream)
GUICtrlCreateCombo("", 32, 45, 145, 25,$SS_BLACKFRAME)

4,判断大写键盘灯亮还是灭(By Gooker)
$result = DllCall("user32.dll","Int","GetKeyState","int",20)
If @error = 1 Then
           MsgBox(0,"错误","函数调用失败") ;基本上不会的 🙂
           Exit
Else
           If $result[0] = 1 Then
                   MsgBox(0,"大写键盘灯状态","亮")
           Else
                   MsgBox(0,"大写键盘灯状态","灭")
           EndIf
EndIf

5,调用迅雷下载(By thesnow)
$obj=ObjCreate("ThunderAgent.Agent")

;$obj.Addtask("下载地址", "另存文件名", "保存目录","任务注释","引用地址","开始模式", "只从原始地址下载","从原始地址下载线程数") ;添加下载任务
;说明一下,开始模式只能为1(立即)/0(手动)/-1,只从原始地址下载请设置为真或者假(True/False)(1/0)

$obj.AddTask(");添加下载任务
$obj.CommitTasks(1)                   ;提交任务.

6,查CPU温度(WMI)(By zcbenz)
Dim $temp = ""
While 1
       $objWMIService = ObjGet("winmgmts:.rootWMI")
       $colItems = $objWMIService.ExecQuery("SELECT * FROM MSAcpi_ThermalZoneTemperature")
       $temp = ""
       For $objItem in $colItems
           $temp &= "CurrentTemperature: " & ($objItem.CurrentTemperature – 2732) / 10 & "°C" & @LF
       Next
       ToolTip(StringTrimRight($temp,1),100,0)
       $objWMIService = 0
       Sleep(5000)
WEnd

7,调用放大镜的功能(By zcbenz)
Global $SRCCOPY = 0x00CC0020
Global $leave = 0

HotKeySet("{PAUSE}","leave")

SplashTextOn ( "AU3MAG", "" , 100 , 100 , 0, 0, 1 )
$MyhWnd = WinGetHandle("AU3MAG")

While Not $leave
     Sleep(25)
     MAG()
WEnd

Func MAG()
     $MyHDC = DLLCall("user32.dll","int","GetDC","hwnd",$MyhWnd)
     If @error Then Return
     $DeskHDC = DLLCall("user32.dll","int","GetDC","hwnd",0)
     If Not @error Then
        $xy = MouseGetPos()
        If Not @error Then
           $l = $xy[0]-10
           $t = $xy[1]-10
           DLLCall("gdi32.dll","int","StretchBlt","int",$MyHDC[0],"int",0,"int",0,"int",100,"int",100,"int",$DeskHDC[0],"int",     $l,"int",$t,"int",20,"int",20,"long",$SRCCOPY)
        EndIf
        DLLCall("user32.dll","int","ReleaseDC","int",$DeskHDC[0],"hwnd",0)
     EndIf
     DLLCall("user32.dll","int","ReleaseDC","int",$MyHDC[0],"hwnd",$MyhWnd)
EndFunc

Func leave()
     $leave = 1
EndFunc

7,打开我的电脑,定位到C盘(By 辣椒龙)
Run(@WindowsDir & "explorer.exe /e, /select,C:")

8,限制input框为数字和数量限制(By dyljf & 20ysbb)
$Input1 = GUICtrlCreateInput("", 95, 205, 129, 21,$ES_NUMBER)
GUICtrlSetLimit(-1, 9)

9,强制刷新组策略和注册表 (By redapple)
xp/2003命令
gpupdate /force
2k命令
secedit /refreshpolicy machine_policy /enforce

10,获得进程路径 (By sanhen)
Func Processpath($iPID)
       Local $aProc = DllCall(‘kernel32.dll’, ‘hwnd’, ‘OpenProcess’, ‘int’, BitOR(0x0400, 0x0010), ‘int’, 0, ‘int’, $iPID)
       If $aProc[0] = 0 Then Return SetError(1, 0, ”)
       Local $vStruct = DllStructCreate(‘int[1024]’)
       DllCall(‘psapi.dll’, ‘int’, ‘EnumProcessModules’, ‘hwnd’, $aProc[0], ‘ptr’, DllStructGetPtr($vStruct), ‘int’, DllStructGetSize($vStruct), ‘int_ptr’, 0)
       Local $aReturn = DllCall(‘psapi.dll’, ‘int’, ‘GetModuleFileNameEx’, ‘hwnd’, $aProc[0], ‘int’, DllStructGetData($vStruct, 1), ‘str’, ”, ‘int’, 2048)
       If StringLen($aReturn[3]) = 0 Then Return SetError(2, 0, ”)
       Return $aReturn[3]
EndFunc

转载:小黑Sky

转载请注明:黑白的自留地 » 几个外部程序调用

喜欢 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址