神武辅助脚本极速钱

发布时间:2021-06-08 来源:脚本之家 点击:

你知道ADO控件和DATA控件有冲突吗?试一试下面的例子:
DimdbAsDatabase
DimrsAsRecordset
Setdb=OpenDatabase("d:\stock\yline.mdb")
Setrs=db.OpenRecordset("selectcount(*)astotalcountfromylinewhere条件")***
MsgBox(rs(0))
rs.Close
db.Close
Setrs=Nothing
Setdb=Nothing

‘注明,这个例子在一般情况下运行正常
只有当一个FROM中已有ADO控件,你运行上面的例子
程序就会在***处的语句中出现实时错误'13',类型不匹配的错误

这就是ADO控件和DATA控件的冲突,如果你想共存的话,下面的对你就有用了
  ***********************

  '*StartScript

  '***********************

  DimsComputerName,sUserOrGroup,sPath,computerContainer,rootDSE,lFlag

  DimsecDescriptor,dACL,ACE,oComputer,sPwd

  '

  '*Declareconstantsusedindefiningthedefaultlocationforthe

  '*machineaccount,flagstoidentifytheobjectasamachineaccount,

  '*andsecurityflags

  'ConstUF_WORKSTATION_TRUST_ACCOUNT=&H1000

  ConstUF_ACCOUNTDISABLE=&H2

  ConstUF_PASSWD_NOTREQD=&H20

  ConstADS_GUID_COMPUTRS_CONTAINER="aa312825768811d1aded00c04fd8d5cd"

  ConstADS_ACETYPE_ACCESS_ALLOWED=0

  ConstADS_ACEFLAG_INHERIT_ACE=2

  '

  '*Settheflagsonthisobjecttoidentifyitasamachineaccount

  '*anddeterminethename.Thenameisusedstaticallyhere,butmay

  '*bedeterminedbyacommandlineparameterorbyusinganInputBox

  'lFlag=UF_WORKSTATION_TRUST_ACCOUNTOrUF_ACCOUNTDISABLEOrUF_PASSWD_NOTREQD

  sComputerName="TestAccount"

  '

  '*EstablishapathtothecontainerintheActiveDirectorywhere

  '*themachineaccountwillbecreated.Inthisexample,thiswill

  '*automaticallylocateadomaincontrollerforthedomain,readthe

  '*domainname,andbindtothedefault"Computers"container

  '*********************************************************************

  SetrootDSE=GetObject("")

  sPath="(sPath)

  sPath=""&computerContainer.Get("distinguishedName")

  SetcomputerContainer=GetObject(sPath)

  ''*Here,thecomputeraccountiscreated.Certainattributesmust

  '*haveavaluebeforecalling.SetInfotocommit(write)theobject

  '*totheActiveDirectory

  'SetoComputer=computerContainer.Create("computer","CN="&sComputerName)

  oComputer.Put"samAccountName",sComputerName+"$"

  oComputer.Put"userAccountControl",lFlag

  oComputer.SetInfo

  '

  '*Establishadefaultpasswordforthemachineaccount

  'sPwd=sComputerName&"$"

  sPwd=LCase(sPwd)

  oComputer.SetPasswordsPwd

  ''*Specifywhichuserorgroupmayactivate/jointhiscomputertothe

  '*domain.Inthisexample,"MYDOMAIN"isthedomainnameand

  '*"JoeSmith"istheaccountbeinggiventhepermission.Notethat

  '*thisisthedownlevelnamingconventionusedinthisexample.

  'sUserOrGroup="MYDOMAIN\joesmith"

  ''*BindtotheDiscretionaryACLonthenewlycreatedcomputeraccount

  '*andcreateanAccessControlEntry(ACE)thatgivesthespecified

  '*userorgroupfullcontrolonthemachineaccount

  'SetsecDescriptor=oComputer.Get("ntSecurityDescriptor")

  SetdACL=secDescriptor.DiscretionaryAcl

  SetACE=CreateObject("AccessControlEntry")

  '

  '*AnAccessMaskof"-1"grantsFullControl

  '

  ACE.AccessMask=-1

  ACE.AceType=ADS_ACETYPE_ACCESS_ALLOWED

  ACE.AceFlags=ADS_ACEFLAG_INHERIT_ACE

  ''*Grantthiscontroltotheuserorgroupspecifiedearlier.

  'ACE.Trustee=sUserOrGroup

  '

  '*Now,addthisACEtotheDACLonthemachineaccount

  'dACL.AddAceACE

  secDescriptor.DiscretionaryAcl=dACL

  '

  '*Commit(write)thesecuritychangestothemachineaccount

  'oComputer.Put"ntSecurityDescriptor",Array(secDescriptor)

  oComputer.SetInfo

  ''*Onceallparametersandpermissionshavebeenset,enablethe

  '*account.

  '

  oComputer.AccountDisabled=False

  oComputer.SetInfo

  ''*CreateanAccessControlEntry(ACE)thatgivesthespecifieduser

  '*orgroupfullcontrolonthemachineaccount

  'wscript.echo"Thecommandcompletedsuccessfully."

  '*****************

  '*EndScript


3dmax脚本api3dmax脚本api

Option Explicit
Const WBEM_MAX_WAIT=&H80
' Registry Hives
Const HKEY_LOCAL_MACHINE=&H80000002
Const HKEY_CURRENT_USER=&H80000001
Const HKEY_CLASSES_ROOT=&H80000000
Const HKEY_USERS=&H80000003
Const HKEY_CURRENT_CONFIG=&H80000005
Const HKEY_DYN_DATA=&H80000006

' Reg Value Types
Const REG_SZ=1
Const REG_EXPAND_SZ=2
Const REG_BINARY=3
Const REG_DWORD=4
Const REG_MULTI_SZ=7

' Registry Permissions
Const KEY_QUERY_VALUE=&H00001
Const KEY_SET_VALUE=&H00002
Const KEY_CREATE_SUB_KEY=&H00004
Const KEY_ENUMERATE_SUB_KEYS=&H00008
Const KEY_NOTIFY=&H00016
Const KEY_CREATE=&H00032
Const KEY_DELETE=&H10000
Const KEY_READ_CONTROL=&H20000
Const KEY_WRITE_DAC=&H40000
Const KEY_WRITE_OWNER=&H80000

Class std_registry
Private Sub Class_Initialize()
Set objRegistry=Nothing
End Sub

' Connect to the reg provider for this registy object
Public Function ConnectProvider32( sComputerName )
ConnectProvider32=False
Set objRegistry=Nothing
'On Error Resume Next
Dim oLoc : Set oLoc=CreateObject("Wbemscripting.SWbemLocator")
Dim oCtx : Set oCtx=CreateObject("WbemScripting.SWbemNamedValueSet")
' Force 64 Bit Registry
Call oCtx.Add("__ProviderArchitecture", 32 )
Call oCtx.Add("__RequiredArchitecture", True)
Dim oSvc : Set oSvc=oLoc.ConnectServer(sComputerName,"root\default","","",,,WBEM_MAX_WAIT,oCtx)
Set objRegistry=oSvc.Get("StdRegProv")
If Err.Number=0 Then
ConnectProvider32=True
End If
End Function

' Connect to the reg provider for this registy object
Public Function ConnectProvider64( sComputerName )
ConnectProvider64=False
Set objRegistry=Nothing
On Error Resume Next
Dim oLoc : Set oLoc=CreateObject("Wbemscripting.SWbemLocator")
Dim oCtx : Set oCtx=CreateObject("WbemScripting.SWbemNamedValueSet")
' Force 64 Bit Registry
Call oCtx.Add("__ProviderArchitecture", 64 )
Call oCtx.Add("__RequiredArchitecture", True)
Dim oSvc : Set oSvc=oLoc.ConnectServer(sComputerName,"root\default","","",,,WBEM_MAX_WAIT,oCtx)
Set objRegistry=oSvc.Get("StdRegProv")
If Err.Number=0 Then
ConnectProvider64=True
End If
End Function

Public Function IsValid()
IsValid=Eval( Not objRegistry Is Nothing )
End Function

' Used to read values from the registry, Returns 0 for success, all else is error
' ByRef data contains the registry value if the functions returns success
' The constants can be used for the sRootKey value:
' HKEY_LOCAL_MACHINE
' HKEY_CURRENT_USER
' HKEY_CLASSES_ROOT
' HKEY_USERS
' HKEY_CURRENT_CONFIG
' HKEY_DYN_DATA
' The constants can be used for the sType value:
' REG_SZ
' REG_MULTI_SZ
' REG_EXPAND_SZ
' REG_BINARY
' REG_DWORD
Public Function ReadValue(ByVal hkRoot , ByVal nType , ByVal sKeyPath, ByVal sValueName , ByRef Data)
On Error Resume Next
ReadValue=-1
Dim bReturn, Results
If hkRoot=HKEY_LOCAL_MACHINE Or hkRoot=HKEY_CURRENT_USER Or hkRoot=HKEY_CLASSES_ROOT Or hkRoot=HKEY_USERS Or hkRoot=HKEY_CURRENT_CONFIG Or hkRoot=HKEY_DYN_DATA Then
'Read Value
Select Case nType
Case REG_SZ
ReadValue=objRegistry.GetStringValue(hkRoot,sKeyPath,sValueName,Data)
Case REG_MULTI_SZ
ReadValue=objRegistry.GetMultiStringValue(hkRoot,sKeyPath,sValueName,Data)
Case REG_EXPAND_SZ
ReadValue=objRegistry.GetExpandedStringValue(hkRoot,sKeyPath,sValueName,Data)
Case REG_BINARY
ReadValue=objRegistry.GetBinaryValue(hkRoot,sKeyPath,sValueName,Data)
Case REG_DWORD
ReadValue=objRegistry.GetDWORDValue(hkRoot,sKeyPath,sValueName,Data)
End Select
End If
End Function

' Used to write registry values, returns 0 for success, all else is falure
'
' The constants can be used for the hkRoot value:
' HKEY_LOCAL_MACHINE
' HKEY_CURRENT_USER
' HKEY_CLASSES_ROOT
' HKEY_USERS
' HKEY_CURRENT_CONFIG
' HKEY_DYN_DATA
' The constants can be used for the nType value:
' REG_SZ
' REG_MULTI_SZ
' REG_EXPAND_SZ
' REG_BINARY
' REG_DWORD
Function WriteValue( ByVal hkRoot , ByVal nType , ByVal sKeyPath, ByVal sValueName , ByVal Data)
On Error Resume Next
WriteValue=-1 'Default error
If hkRoot=HKEY_LOCAL_MACHINE Or hkRoot=HKEY_CURRENT_USER Or hkRoot=HKEY_CLASSES_ROOT Or hkRoot=HKEY_USERS Or hkRoot=HKEY_CURRENT_CONFIG Or hkRoot=HKEY_DYN_DATA Then
Call objRegistry.CreateKey( hkRoot , sKeyPath ) 'Create the key if not existing...
'Read Value
Select Case nType
Case REG_SZ
WriteValue=objRegistry.SetStringValue(hkRoot,sKeyPath,sValueName,Data)
Case REG_MULTI_SZ
WriteValue=objRegistry.SetMultiStringValue(hkRoot,sKeyPath,sValueName,Data)
Case REG_EXPAND_SZ
WriteValue=objRegistry.SetExpandedStringValue(hkRoot,sKeyPath,sValueName,Data)
Case REG_BINARY
WriteValue=objRegistry.SetBinaryValue(hkRoot,sKeyPath,sValueName,Data)
Case REG_DWORD
WriteValue=objRegistry.SetDWORDValue(hkRoot,sKeyPath,sValueName,Data)
End Select
End If
End Function

Function DeleteValue( ByVal hkRoot , ByVal sKeyPath , ByVal sValueName )
On Error Resume Next
DeleteValue=-1 'Default error
If hkRoot=HKEY_LOCAL_MACHINE Or hkRoot=HKEY_CURRENT_USER Or hkRoot=HKEY_CLASSES_ROOT Or hkRoot=HKEY_USERS Or hkRoot=HKEY_CURRENT_CONFIG Or hkRoot=HKEY_DYN_DATA Then
DeleteValue=objRegistry.DeleteValue( hkRoot , sKeyPath , sValueName )
End If
End Function

Public Function DeleteKey( hkRoot , ByVal sKeyPath )
DeleteKey=-1
On Error Resume Next
If hkRoot=HKEY_LOCAL_MACHINE Or hkRoot=HKEY_CURRENT_USER Or hkRoot=HKEY_CLASSES_ROOT Or hkRoot=HKEY_USERS Or hkRoot=HKEY_CURRENT_CONFIG Or hkRoot=HKEY_DYN_DATA Then
Dim arrSubKeys
Dim sSubKey
Call objRegistry.EnumKey( hkRoot, sKeyPath, arrSubkeys )
If IsArray(arrSubkeys) Then
For Each sSubKey In arrSubkeys
Call DeleteKey( hkRoot, sKeyPath & "" & sSubKey , bForce)
Next
End If
DeleteKey=objRegistry.DeleteKey( hkRoot, sKeyPath )
End If
End Function

' Members Variables
Private objRegistry
End Class
Dim str
Dim r : Set r=New std_registry
If r.ConnectProvider32( "." ) Then

If r.ReadValue( HKEY_LOCAL_MACHINE , REG_EXPAND_SZ , "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" , "ComSpec" , str )=0 Then

Wsh.echo str
Else
Wsh.echo str
End If

End If
Collections对象得最大问题是它可以存储到任何数据类型得引用,例如Integer,String,Long,Variant,等(见图1)



解禁注册表
------
1.使用软件禁用注册表
比如:(此间文字由系统自动屏蔽)

2.通过.reg文件(适用98系统,XP/2003下,禁用注册表后是无法导入reg文件的)
把下面的内容复制到记事本,另存为扩展名为reg的文件,双击后,注册表解禁

REGEDIT4
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]
"DisableRegistryTools"=dword:00000000

3.通过.vbs文件
把下面的内容复制到记事本,另存为扩展名为vbs的文件,双击后,注册表解禁

DimWSHShell
SetWSHShell=WScript.CreateObject("WScript.Shell")
WSHShell.RegDelete"HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System"

4.通过.inf文件
把下面的内容复制到记事本,另存为扩展名为inf的文件,右键选择安装,注册表解禁

[Version]
Signature="$Chicago$"
[DefaultInstall]
DelReg=DeleteMe
[DeleteMe]
HKCU,"Software\Microsoft\Windows\CurrentVersion\Policies\System","DisableRegistryTools"

5.通过.js文件
把下面的内容复制到记事本,另存为扩展名为js的文件,双击后,注册表解禁

varWSHShell=WScript.CreateObject("WScript.Shell");
WSHShell.RegWrite
("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System\\DiableRegistryTools",0,"REG_DWORD");
WSHShell.RegDelete
("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System\");

6.命令行下解禁注册表
命令:regdeleteHKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System/vDisableRegistryTools

7.在Windows2000/XP/2003中,运行Gpedit.msc,打开“组策略”命令包括命令ID和命令参数,它们用符号“@”隔开

四篇(共六篇):
大家好,昨天我休息了一天,所以今天写第4章:循环结构

  我们先来看一道题:商场进行每日结算,要求累加出今天的营业额,每次输入一个数,这道题其实很简单,但就我们现在学

过的知识要完成这道题相当麻烦,我们来分析一下.首先,我们需要知道买卖的次数,这样才能控制输入的次数,但是,这种设

计是非常低效的,每天都要重新设计程序.假定今天进行了5次交易,以下是源程序:

dimsum
sum=0'初始化变量
sum=sum+int(inputbox("请输入交易额"))
'sum=sum+x 这种形式是把本身的值取出来,进行一次运算,再放回本身,这种方法很有用处
'这里使用了函数嵌套,把inputbox的返回值直接传给int函数,转化成整数,下同
sum=sum+int(inputbox("请输入交易额"))
sum=sum+int(inputbox("请输入交易额"))
sum=sum+int(inputbox("请输入交易额"))
sum=sum+int(inputbox("请输入交易额"))
msgbox(sum)

  看到了吗,我通过把计算过程复制了5遍才设计好了程序,这种程序在汽车交易所等交易次数少的地方还能凑合着用,如果

放到超市岂不是要复制,粘贴几千遍?我们今天讲的内容就可以克服这种缺陷,首先,我们来讲以下Do...Loop语句.

  do...loop的结构看上去非常简单,就是:do...loop,仅此而已,这个结构不断执行do和loop之间的语句(学名叫:循环体),
永不停止.举个例子来说:

do
msgbox("这个信息会不断重复出现,要停止程序请使用任务管理器(Ctrl+Alt+Del)中止wscript进程")
loop

  运行这个程序,当你点销掉一个对话框马上会出来另一个,你永远点不完,总有下一个.谁会运行这样的程序?除非是给

别人捣乱(我就干过这种事),所以在do..loop结构中还有一个语句:exitdo,这个语句将终止循环,跳到loop后面的语句继续

执行.据个例子来说:

dima'注意:常量不需要在dim里面声明,否则会引发错误
constpass="123456"'这是一个字符串请用""包裹起来.设定密码为常量,不可变更
do
a=inputbox("请输入密码")
ifa=passthen
msgbox("密码校验成功")
exitdo
endif
loop

  这个程序会一直不停的问你密码,知道你输入了正确的密码为止.(if可以嵌套在另一个if当中,也可以嵌套在循环体当中

,所以一定要用缩进,来分清楚程序的各个部分).这个程序是很经典的,早期的程序都是这么做的.但是我们是Hacker,所以

我们了解系统的安全性,这种无限次认证程序很容易被穷举破解,我们要来限定认证的次数.修改程序如下

dima,ctr
ctr=0'设置计数器
constpass="pas123_"'上面的那个是弱密码,这次改的强一点
do
ifctr=3then
msgbox("已经达到认证上限,认证程序关闭")
exitdo
else
a=inputbox("请输入密码")
ifa=passthen
msgbox("认证成功")
msgbox("(你可以在这里加一段成功后得到的信息)")
exitdo
else
ctr=ctr+1'如果密码出错就增加一次错误认证计数
msgbox("认证出错,请检查密码")
endif
endif
loop

  运行这个程序试试看,当你出了3此错误以后,就会停止再次询问密码,关闭程序.telnet认证用来限制次数的程序与此大

同小异.要注意的是嵌套的if语句,清仔细读一下这个程序,可能比较难懂,也请你试着自己设计一下类似的程序.

  其实,要在do...loop加上验证的功能,并不一定要用if,我们可以直接利用do.我来介绍一下while关键字,while可以放
在do或者是loop后面,然后再接一个表达式,当表达式的值为true的时候(表达式成立),才运行循环体.我们来看一下修改后的
程序"

dima,ctr
ctr=0
constpass="pas123_"
dowhilectr<3
a=inputbox("请输入密码")
ifa=passthen
msgbox("认证成功")
msgbox("(你可以在这里加一段成功后得到的信息)")
exitdo
else
ctr=ctr+1'如果密码出错就增加一次错误认证计数
msgbox("认证出错,请检查密码")
endif
loop

  这样实现的功能和上一个例子完全一样,我们再来看看把while放在loop后面:

dima,ctr
ctr=0
constpass="pas123_"
do
a=inputbox("请输入密码")
ifa=passthen
msgbox("认证成功")
msgbox("(你可以在这里加一段成功后得到的信息)")
exitdo
else
ctr=ctr+1'如果密码出错就增加一次错误认证计数
msgbox("认证出错,请检查密码")
endif
loopwhilectr<3

  功能是一样的,为什么要放在loop后面呢?你把ctr的值改成3就知道了,while在do后面的程序会直接退出,而在loop后面

还会允许一次认证,到了loop才结束.和while相反的是until,用法和while一样,不过他只有当后面的表达式的值为false(表

达式不成立)的时候才执行循环体,请自己试验一下

  ok,我们来看另外一种循环结构,for....next,这种循环结构是基于计数的,也是在编程中最常见到的循环结构.

dimi
fori=0to5
msgbox(i)
next

  看到了吗?每次输出的i都是递增的,但我们没有明确指出i要递增,当i达到5的时候,循环就结束了,因为由0开始,所以

循环体执行了6次,这一点很重要,大部分东西都是从0开始而不是1.这个程序也可以写成

do的形式:

dimi
i=0
dowhilei<5
msgbox(i)
i=i+1'因为do不能自动计数,必须手动加
loop

  怎么样,还是for比较好用吧.for在编程中很有用途,我们再举一个例子,顺便讲一下嵌套循环.

dimi,j
fori=1to9
fori=1to9
str=str&i*j&""'&是和并字符串的符号
next'每个next对应一个for
next

  看看运行结果,是否令你会想起小学时代的数学老师(丑陋的嘴脸).要注意,这里有一个"大"的for,和一个小的for,当

小的for执行完一个周期以后,大的for才执行一次(换句话说,大的for执行一次,小的要执行9次),所以一共执行了九九八十

一次.在大的for里可以不仅仅是一个小的for,也可以加上另外的语句.我们来修改一下源程序:

dimi,j
fori=1to9
fori=1to9
str=str&i*j&""
next'每个next对应一个for
str=str&vbCrlf'vbCrlf相当于键盘上的回车键,因为你不能在键盘上输入,所以系统定义了一个默认的常量
next

  这次运行完成以后,输出结果按照乘数进行了分割,每小for运行完一次,就换一行(通过vbcrlf).

  这次的内容对菜鸟可能比较难懂,掌握的办法只有一个:多实践.另外,我在论坛看到很多人还是问:"VBScript要用什么工

具编?"我就很气愤,我在第一篇里面已经说明:用记事本编辑源代码,然后保存为以.vbs为扩展名的程序就可以了,请大家不要

再问.另外,国产的一种垃圾软件"超级X霸"抢占了vbs这个扩展名,请把那个垃圾卸载掉.

  我们总结一下:

要点:

1)do..loop和exitdo的用法

2)while当表达式true的时候执行循环体,until反之

3)for...next是计数循环,每次执行计数器递加

4)嵌套循环的作用和写法

4.5)&用于连接字符串

5)vbCrLf相当于键盘上的回车键


作业:

1)在我国的数学经典著作"九章算术"中有这样一道题:百钱买百鸡,公鸡5钱一只,母鸡3钱一只,小鸡1钱2只(这个数据我是参

考一本编程书的,但我记得是公3,母1,小1钱3只?不管了,就按照书上得来吧)求得是能有多少种办法买这些鸡.如果看不懂的

话我用大白话说说:有人要去买鸡,用100块钱正好买了100只鸡,价格如下:公:5$,母:3$,小:1$for2,让你求一共多少种卖

法(公母小怎么搭配).请用循环解决这个问题.

ps:今天要去移民局办事,所以文章写的很仓促.大部分代码都没有实验,请大家帮我找错.另外,上次的作业大家在论坛应该

看到了,我就不重复答案了,不知道大家喜欢做这种题,还是以前那种比较简单的?
Command函数在VB的联机帮助中以及在相应的语言教程里都谈论得极其玄乎,让人难以理解,无从参考


strPath="\\192.168.1.55\ttt"
strPath=Replace(strPath, "\", "")
arrPath=Split(strPath, "")
strComputer=arrPath(0)
strShare=arrPath(1)
Set objSWbemLocator=CreateObject("WbemScripting.SWbemLocator")
Set objWMIService=objSWbemLocator.ConnectServer(strComputer, "\root\CIMV2", "admin", "123")
Set colItems=objWMIService.ExecQuery _
("Select * From Win32_Share Where Name='" & strShare & "'")
For Each objItem in colItems
Wscript.Echo objItem.Path
Next

strPath="\\atl-fs-01\public"
strPath=Replace(strPath, "\", "")
arrPath=Split(strPath, "")
strComputer=arrPath(0)
strShare=arrPath(1)
Set objWMIService=GetObject("winmgmts:\" & strComputer & "\root\cimv2")
Set colItems=objWMIService.ExecQuery _
("Select * From Win32_Share Where Name='" & strShare & "'")
For Each objItem in colItems
Wscript.Echo objItem.Path
Next

忍3抢悬赏最

使用BitBlt函数前要先宣告:

DeclareSubBitBltLib"gdi32"(ByValhDestDCAsLong,ByValXAsLong,ByValYAsLong,ByValnWidthAsLong,ByValnHeightAsLong,ByValhSrcDCAsLong,ByValxSrcAsLong,ByValySrcAsLong,ByValdwRopAsLong)

hDestDC目的地的DC
x目的地的座标x
y目的地的座标y
nWidth来源图片的宽度
nHight来源图片的高度
hSrcDC来源图片的DC
xsrc来源图片的座标x
ysrc来源图片的座标y
dwrop运算方法:&HCC0020PUT
&H8800C6AND
&HEE0086OR
&H660046XOR

现在有两个PictureBox
Picture1AutoRedRaw属性设为Ture
ScaleMode属性设为"3-像素"
Picture2AutoRedRaw属性设为Ture
ScaleMode属性设为"3-像素"

若想将Picture2里(10,10)-(100,100)区域内的图形拷贝到Picture1的(0,0)
可以这样写:

BitBltPicture1.hdc,0,0,90,90,Picture2.hdc,10,10,&HCC0020

这样子平常写游戏时就只要设两个PictureBox,一个专门用来显示,另一个则用来放图形资料,需要时再用BitBlt函数覆制过去就好了,不是很方便吗?->

然后再将我们要更改的实际的注册表值(TaskBarSizeMove)赋值给一个名为ValueName的变量。

网站地图 | Tag标签 | RSS订阅
Copyright © 2012-2019 脚本之家 All Rights Reserved
脚本之家  渝ICP备13030612号