vBNT矿池
『壹』 vb的移植性
VB是一个解释性语言、如果你使用的是VB6、那么可以在WIN 9X以上(不包括WIN 9X、包括WIN ME)任意一个系统中运行(包括最新的WIN 7),WIN 9X需要安装VB6运行库即可运行(默认9X只有VB5运行库)、同时作为一门解释性语言、VB的运行效率略低于编译性语言(比如pascal、C类语言)、但是又比Java这类虚拟机程序效率高很多(尽管Java很少用户桌面应用程序)、不过我个人认为、效率的差异在目前计算机的运算效率上几乎体现不出来(除非代码的效率特别低)、
如果你使用的是VB.NET、那么可以在任何WIN NT 4.0以上的系统中运行(但是需要额外安装.NET运行库、WIN 2003集成到.NET 1.1、viata集成到.NET 3.5、win 7集成到.NET 4.5、win 2003以下系统不自带任何版本的.NET运行库、需要用户自行安装)、不过之前的VB6是WIN32编程、而之后的VB.NET是.NET编程、本质上有着区别、而且按照微软的意愿、将来基于.NET编程的程序都是可以跨平台的(类似Java)、但是目前来说.NET仅仅支持Windows系列、据说微软内部测试已经有了可以支持Mac的.NET了
至于pascal前面已经说了、是编译性语言、现在最新的delphi 2010也是同时支持WIN32和.NET编程的、delphi的WIN32编程同VB6、只不过没有运行库的要求、理论上程序没有特殊设计、那么仅仅支持从WIN 9X(包括)到最新的WIN7任何系统、至于.NET编程完全同VB.NET、只是语言不同而已
希望对你有帮助、、支持原创、反对答案
『贰』 VB TRANSPARENTBLT具体的用法!!
TransparentBlt函数功能:该函数对指定的源设备环境中的矩形区域像素的颜色数据进行位块(bit_block)转换,并将结果置于目标设备环境。 函数原型:BOOL TransparentBlt(HDC hdcDest, int nXOriginDest, int nYOriginDest, int nWidthDest, int hHeightDest, HDC hdcSrc, int nXOriginSrc, int nYOriginSrc, int nWidthSrc, int nHeightSrc, UINT crTransparent); 参数: hdcDest:指向目标设备环境的句柄。 nXOriginDest:指定目标矩形左上角的X轴坐标,坐标以逻辑单位表示。 nYOriginDest:指定目标矩形左上角的Y轴坐标,坐标以逻辑单位表示。 nWidthDest:指定目标矩形的宽度。 nHeightDest:指定目标矩形的高度。 hdcsrc:指向源设备环境的句柄。 nXOriginSrc:指定源矩形(左上角)的X轴坐标,坐标以逻辑单位表示。 nYOriginsrc:指定源矩形(左上角)的Y轴坐标,坐标以逻辑单位表示。 nWidthSrc:指定源矩形的宽度。 nHeightSrc:指定源矩形的高度。 crTransparent:源位图中的RGB值当作透明颜色。返回值:如果函数执行成功,那么返回值为TRUE;如果函数执行失败,那么返回值为FALSE。 Windows NT:若想获取更多错误信息,请调用GetLastError函数。 备注:函数TransparentBlt支持4位/像素和8位/像素格式的源位图,使用AlphaBlend可以指定带有透明度的32位/像素格式的位图。如果源和目标矩形的大小不一致,那么将对源位图进行拉伸以与目标矩形匹配,当使用SetStretchBltMode函数时,BLACKONWHITE和WHITEONBLACK两种iStretchMode模式将被转换成TransparentBlt函数的COLORONCOLOR模式。目标设备环境指定了用于目标坐标的变换类型,而源设备环境指定了源坐标使用的变换类型。如果源位图或目标位图的宽度或高度是负数,那么TransparentBlt函数也不对位图进行镜像。 速查:Windows NT:5.0及以上版本;Windows:98及以上版本;Windows CE:Windows CE .NET 4.0 and later;头文件:wingdi.h:库文件:作为一个资源包含在msimg32.dll中。
『叁』 VB.NT懂的进高手分大大的有
就是利用System.IO里的一些类来实现。
利用代码创建一个文本文件,然后向内写入HTML代码,保存到指定路径,命名htm就可以了。
『肆』 VB6如何获取系统NT版本我记得有一个十几句就可以获取NT版本的代码,现在忘了。
'基本满足你的要求。
'说明:因为PROFESSIONAL或者HOME EDITION均属XP系统,所以不必再细加判断
OptionExplicit
"kernel32"Alias"GetVersionExA"()AsLong
privateTypeOSVERSIONINFO
dwOSVersionInfoSizeAsLong
dwMajorVersionAsLong
dwMinorVersionAsLong
dwBuildNumberAsLong
dwPlatformIdAsLong
szCSDVersionAsString*128'Maintenancestringforpssusage
osNameAsString'我自己加的,操作系统的名称
endType
PPLNS+是一种矿池挖矿
收益分配
模式,由AA矿池创建的,在传统的PPLNS、PPLNT和PROP三种模式做的优化结合,在
算力
和收益的分配上更精准,更高效,具体的直观体现就是,挖到块得到的收入精准分配,长期挖掘提高了矿工的收益。
『陆』 [VB].. BitBlt 的具体用法!!详细!!!
BitBlt 目标hDC, 目标X, 目标Y, 图像高, 图像宽, 源hDC, 源X, 源Y, 光栅运算常数
【函数】
BitBlt
【操作系统】
Win9X:Yes
WinNT:Yes
【声明】
BitBlt Lib "gdi32" Alias "BitBlt" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
【说明】
将一幅位图从一个设备场景复制到另一个。源和目标DC相互间必须兼容
【返回值】
Long,非零表示成功,零表示失败。会设置GetLastError
【其它】
在NT环境下,如在一次世界传输中要求在源设备场景中进行剪切或旋转处理,这个函数的执行会失败
如目标和源DC的映射关系要求矩形中像素的大小必须在传输过程中改变,那么这个函数会根据需要自动伸缩、旋转、折叠、或切断,以便完成最终的传输过程
【参数表】
hDestDC -------- Long,目标设备场景
x,y ------------ Long,对目标DC中目标矩形左上角位置进行描述的那个点。用目标DC的逻辑坐标表示
nWidth,nHeight - Long,欲传输图象的宽度和高度
hSrcDC --------- Long,源设备场景。如光栅运算未指定源,则应设为0
xSrc,ySrc ------ Long,对源DC中源矩形左上角位置进行描述的那个点。用源DC的逻辑坐标表示
dwRop ---------- Long,传输过程要执行的光栅运算
『柒』 vb程序高手帮帮忙解答一下!!谢谢!
这就是StretchBlt这个API的申明啊 - -/
还翻译什么啊,看下各个参数的含义就ok了
****
函数功能:函数从源矩形中复制一个位图到目标矩形,必要时按目前目标设备设置的模式进行图像的拉伸或压缩。
函数原型:BOOL StretchBlt(HDC hdcDest, int nXOriginDest, int nYOriginDest, int nWidthDest, int nHeighDest, HDC hdcSrc, int nXOriginSrc, int nYOriginSrc, int nWidthSrc, int nHeightSrc, DWORD dwRop);
参数:
hdcDest:指向目标设备环境的句柄。
nXOriginDest:指定目标矩形左上角的X轴坐标,按逻辑单位表示坐标。
nYOriginDest:指定目标矩形左上角的X轴坐标,按逻辑单位表示坐标。
nWidthDest:指定目标矩形的宽度,按逻辑单位表示宽度。
nHeightDest:指定目标矩形的高度,按逻辑单位表示高茺。
hdcSrc:指向源设备环境的句柄。
nXOriginSrc:指向源矩形区域左上角的X轴坐标,按逻辑单位表示坐标。
nYOriginSrc:指向源矩形区域左上角的Y轴坐标,按逻辑单位表示坐标。
nWidthSrc:指定源矩形的宽度,按逻辑单位表示宽度。
nHeightSrc:指定源矩形的高度,按逻辑单位表示高度。
dwRop:指定要进行的光栅操作。光栅操作码定义了系统如何在输出操作中组合颜色,这些操作包括刷子、源位图和目标位图等对象。参考BitBlt可了解常用的光栅操作码列表。
返回值:如果函数执行成功,那么返回值为非零,如果函数执行失败,那么返回值为零。Windows NT:若想获得更多的错误信息,请调用GetLastError函数。
『捌』 VB如何调用NTSuspendThread。希望高手能给一个例子程序!完整代码。
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function NtSuspendProcess Lib "NTDLL.DLL" (ByVal hProc As Long) As Long
Private Declare Function NtResumeProcess Lib "NTDLL.DLL" (ByVal hProc As Long) As Long
以上是声明
调用:
NtSuspendProcess OpenProcess(&H1F0FFF, 0, PID)'其中PID是你要暂停的进程
恢复进程:
NtResumeProcess OpenProcess(&H1F0FFF, 0, PID)
『玖』 如何利用VB编写NT服务程序
一、NT服务程序
所谓NT服务,实际上就是一个可以在系统启动时自动在一定身份下启动的伴随系统长时间存在的进程。象FTP server、HTTP server、脱机打印等都是采用NT服务的形式提供的。这实际上类似Unix的root daemon进程。NT服务归纳起来,NT服务又以下几个特征:
1、可以自启动,不需要交互启动。这对于服务器来说是一个重要的特征。当然,你可以决定服务是否自启动,甚至可以屏蔽某个服务。
2、NT服务没有用户界面,基本上类似一个DOS 程序,因为NT服务必须长时间运行,所以不想普通win32进程一样有自己的界面。但是NT服务可以同用户有界面交互,这是一类特殊的服务进程。可以通过NT的任务管理器来看到服务进程。
3、NT服务通过SCM(Services Control Manager)接口来管理,安装、启动、停止、撤除等都需要SCM的接口功能来进行。控制面板的服务控制器就是利用SCM接口来管理系统中的所有服务的。实际上,还有一些可以控制服务的程序或者命令,有net.exe 、服务器管理器等 、SCM.exe等。
4、这些进程都以一定的身份运行,以方便进行服务器资源的存取。一般情况下使用域中的LocalSystem账号运行,此账号对本机上的大多数资源(除非特别禁止)有完全的存取权限,这样可以保证服务程序的“强大”。但是,也有些服务采用特别的账号运行,你也可以特别设定一个服务的帐号。
5、由系统自动以线程方式运行,一般情况下不过多占用系统资源,这同普通的进程有所区别,如果不采用线程方式,一般进程往往消耗整个CPU资源。一般需要时时存在,又不能过多消耗资源的任务以服务来实现最合适。
二、服务控件
一般认为编写NT服务需要使用C/C++来实现,VC6利用ATL向导来提供一个基本的服务框架。具体实现步骤为:FileàNew…àATL COM AppWizardàserviceàFinish.但是使用VC编写NT服务需要编写太多的代码,这也意味着需要太多的调试、维护。实际上,NT服务不是必须由C/C++才可以编写的,实际上可以由任何能够实现上一节几个特点的任何语言实现,包括VB。
VB编写服务有那些好处呢,至少可以列出以下几条:
1、编码简单,熟悉Vb语法的任何人理解本文后都可编写。
2、意味着修改服务实现的逻辑简单,维护简单。
3、可以利用几乎大多数的Vb中的组件功能,编写一个强大的服务,譬如ado等,如果用VC来实现,相信任何人都会发怵。
4、(牵强一点)可以证明Vb在Bill的天空下是多么强大。
那么,Vb如何实现NT服务编写呢?据我所至,至少有两种途径:
1、 按照C/C++的思路利用WinAPI来实现。
2、 利用组件按照Vb传统方式实现。
如果利用方法1实际上是照搬C/C++的套路,如果有更好的路子可以实现,相信任何人都不会走这条“绝路”,因为相对于其他语言来说这种编程完全丧失了Vb自身得特点同时也没有获得其他语言的任何优势。在这里,想告诉大家的是利用OCX来实现一个服务。如果您在MSDN中搜索Samples/msdn/techart/4920/,您可以看到一个已经编写好的vc5的工程文件。编译这个工程实际上会得到一个ntsvc.ocx的。如果您对C/C++不熟悉,可以从http://www.mywebtech.net/download/ntsvc.zip 下载一个ntsvc.ocx,此OCX是我从backoffice碟中获得的,将其拷贝到/winnt/system32/下,利用regsvr32 ntsvc.ocx命令注册之。这样,您的Vb就可以从project/components…引出的对话框列表中看到名为“Microsoft NT Service Control”项。此组件拥有我们创建一个服务的基本的功能,如果要编写一个NT服务,我们将其拖进我们的窗体,然后设定其属性,调用其与系统、注册表、SCM交互的功能就可以实现完成一个服务了。
我们首先了解这个组件的属性,并向大家解释这些属性的用法:
Account String ,账号属性,即本NT服务在哪一个NT域账号下运行,缺省是LocalSystem账号,实际上大多数的NT服务都可以在此账号下安全圆满的运行。
ControlsAccepted Long,此服务接受那些SCM控制,为以下值:
0 允许Start 以及 Stop .
2 允许Pause 以及 Continue .
4 允许 shutdown 。
其他值,用户自定义的某些事件.
利用这个属性,您可以自己决定NT服务进程某个(譬如某个不可中断操作)时刻是否允许SCM停止、暂停、启动等操作。
Dependencies String ,如果您编写的服务依赖于某个或者某些服务才能正常运行,您必须在注册服务时指定依赖的服务列表。Dependencies按照依赖顺序以chr(0)来分隔多个服务,最后必须以两个chr(0)结束。(大家可以看到这是一个C/C++的存在痕迹)
DisplayName String,显示名,NT服务以何种名字显示给察看者。
Interactive Boolean ,是否允许有同桌面用户有交互的部分。
LoadOrderGroup String,同Dependencies相关,决定如果本服务启动之前,那些服务必须启动,格式也类似,也以chr(0)分割,连续的两个chr(0)结尾。
Password String,服务启动的口令,如果使用缺省得账号,就没有必要设定服务启动的帐号。
ServiceName String,服务名,如果使用net.exe来控制服务,net.exe的指定那一个服务的参数就是此属性中的字符串。
StartMode 枚举型,具体为:
vcStartAutomatic 2 服务可以自己启动
svcStartManual 3 服务手动启动
svcStartDisabled 4 服务不能自启动
另外有一个Debug属性,不做讨论。
我们要将一个VB程序当作一个NT服务,必须向系统作一些“申请”,而相应的工作VB是无法很好的完成的。所以,NTSVC.ocx提供了相应的方法留作我们想系统传递相关信息。
Install ,将当前Vb程序安装成NT服务,在此之前,您必须至少设置DisplayName, ServiceName, ControlsAccepted以及StartMode等属性。除此之外您可能还要设置Account、Password、LoadOrderGroup、Dependencies等。这些信息的设置正确与否,决定您的服务程序能否正常启动运行。
Uninstall, 将当前NTSVC.ocx指定的服务从系统注册表中删除。NT服务取决于系统服务注册表的设定,这是一个众所周知的秘密。
StartService,将指定的服务启动,如果该服务注册了。
StopService,停止服务,如果服务正在运行。
LogEvent ,记录服务事件。服务运行中,可能发生错误以及意料不到的事件,这些可以通过此方法记录下来,供管理员通过“事件察看器”察看相关的信息,以最优化服务。此方法有三个参数event, id, message. Event指发生的事件类型,可以设为以下值:
svcEventError 1 错误事件
svcEventWarning 2 警告事件.
svcEventInformation 4 提供参考信息.
svcEventAuditSuccess 8 审计成功.
svcEventAuditFailure 10 审计失败
除了以上方法,可能用户还需要读写注册表,此控件还提供了注册表的访问方法:
DeleteSetting (section[, key])
GetAllSettings(section)
GetSetting(section, key[, default])
SaveSetting(section, key, setting).
三、编写服务
了解以上内容,下面我们开始来设计一个服务,通过例子,让大家理解如何在VB中编写服务.
在此之前,我们决定写一个什么样的服务。我参考C++Build中的一个例子,写一个不断报警的服务进程。该进程启动后在后台不断间隔5秒发出Beep叫,这可以让大家更深切知道此服务的存在,虽然有些令人讨厌。服务的名字为VBBeepSVC,在SCM中显示为The VB NT SVC View。
跟着我一起来吧!
1、创建工程,设定相关使用到的控件。
所有的Vb的控件必须有一个Form作为载体,所以,首先我们创建一个标准工程,选择菜单project—>Components…,然后选取(Microsoft NT Service Control),会在Toolbar中出现NT服务控件。再拖一个Timer控件到Form上。然后保存一下。基本上,创建过程完成。
2、设定控件属性。
选中NtSvc.ocx实例,在属性栏中设定:DisplayName: The VB NT SVC View,ServiceName: VBBeepSVC,StartMode:3(手动启动服务).其他的就缺省吧。
由于我们希望每个5秒就beep一次,所以我们必须依靠一种定时机制来实现,所以我们将timer的Interval设定位5000毫秒。
以上属性的设定视您的需要而定,我只是说在我的VBBeepSVC中如此设定足够了。
3、编写代码,实现服务逻辑以及服务安装、撤除。
因为服务程序实际上是一个Exe文件,并且需要自己解决安装、撤除问题,因此需要在此程序中加入利用NT服务控件来实现安装、撤除问题。那么,应当在什么时候进行了。VB程序启动时正时Form装载的时候,所以,我们需要在窗体的Load事件中加入一些代码:
On Error GoTo Err_Load ‘如果出现错误就纪录以供参考
Dim strDisplayName As String
strDisplayName = NTService1.DisplayName
If Command = "-install" Then ‘当启动时带上 –install的参数时
NTService1.Interactive = True
If NTService1.Install Then
Call NTService1.SaveSetting("Parameters", "TimerInterval", "1000") ‘系统参数存储
MsgBox strDisplayName & " 安装成功!"
Else
MsgBox strDisplayName & " 安装失败"
End If
End ‘终止安装
Else
If Command = "-uninstall" Then ‘如果启动时带上 撤除参数
If NTService1.Uninstall Then
MsgBox strDisplayName & " 撤除成功"
Else
MsgBox strDisplayName & " 撤除失败"
End If
End ‘终止撤除
Else
End If
End If
‘假若不是安装或撤除操作,即为启动服务
Timer1.Interval = CInt(NTService1.GetSetting("Parameters", "TimerInterval", "2000"))
‘使用Timer控件来模拟服务的线程特性
NTService1.ControlsAccepted = svcCtrlPauseContinue ‘接受暂停、停止操作,意味着需要为此编码
NTService1.StartService ‘设置好参数后启动服务
Err_Load:
Call NTService1.LogEvent(svcMessageError, svcEventError, "[" & Err.Number & "] " & Err.Description) ‘svcMessageError为NT服务控件的错误值
4、添加控制服务的代码。
尽管服务的连续线程等特性是依赖Timer实现的,但是服务的控制却是有SCM接口向每一个服务发出的,表现在VB服务程序中为NT服务控件捕获到相关的事件发生,我们就应当在这些事件中根据具体的情况响应,决定能不能、如何控制服务逻辑。当然,具体的逻辑在Timer事件中表现,但是通过改变NT服务控件和Timer控件均支持的全局变量,可以实现控制服务的逻辑实现。具体代码演示:
Private Sub NTService1_Control(ByVal EventID As Long)
On Error GoTo Err_Control
‘在此加入一些自己的处理逻辑,当然也可以如本例一样空缺
Err_Control:
Call NTService1.LogEvent(svcMessageError, svcEventError, "[" & Err.Number & "] " & Err.Description) ‘纪录
End Sub
Private Sub NTService1_Pause(Success As Boolean)
On Error GoTo Err_Pause
Timer1.Enabled = False ‘禁止Timer事件,因此也停止了服务的发生
Call NTService1.LogEvent(svcEventError, svcMessageError, "Service paused")
Success = True ‘返回给SCM命令发出者,表示服务成功停止
Err_Pause:
Call NTService1.LogEvent(svcMessageError, svcEventError, "[" & Err.Number & "] " & Err.Description)
End Sub
Private Sub NTService1_Start(Success As Boolean)
On Error GoTo Err_Start
Success = True
Timer1.Enabled = True ‘允许服务逻辑进行
Err_Start:
Call NTService1.LogEvent(svcMessageError, svcEventError, "[" & Err.Number & "] " & Err.Description)
End Sub
Private Sub NTService1_Stop()
On Error GoTo Err_Stop
Unload Me ‘撤除Form,自然Timer也不存在,服务逻辑停止了
Err_Stop:
Call NTService1.LogEvent(svcMessageError, svcEventError, "[" & Err.Number & "] " & Err.Description)
End Sub
5、编写服务逻辑。
具体就是在Timer事件中,根据约定写一些服务细节。本例中就是发出Been,但是考虑到对SCM命令的响应,所以需要编码为:
On Error GoTo Err_Timer
Beep ‘此处即具体的服务细节
Err_Timer:
Call NTService1.LogEvent(svcMessageError, svcEventError, "[" & Err.Number & "] " & Err.Description)
End Sub
6、编译安装、测试
如果以上没有什么错误的话,现在可以编译程序了。假设我们得到的服务程序的文件名为:VBBeepSVC.exe,我们需要通过以下命令进行安装:
d:/vbprog/>VBBeepSVC –install
如果需要撤除已经安装的服务,则:
d:/vbprog/>VBBeepSVC –uninstall
安装完后,打开控制面板的“服务”(win2000中在“管理工具”),好了,看到其中的NT服务列表中包含我们加入的服务,显示为:“The VB NT SVC View”,我们可以类似启动其他任何服务一样启动、停止、暂停此服务。启动服务时,我们会听到服务发出的讨厌的beep声音。我们的测试完成。
四、VB编写服务的几个说明:
1、首先声明:VB编写服务是一种尝试,技术研究,并非提倡所有服务都要用VB写才对头。同理,也说明了服务非VC写不可。
2、VB写的服务仅适合win32服务,不适合NT底层服务。
3、VB的优势在ActiveX控件,NT服务中我们可以使用绝大多数控件来完成我们的服务逻辑,譬如涉及数据库操作,我们可以使用ADO组件,这方面,同VC相比,VB具有天然的优势。
4、做好服务内部的错误事件记载,只有用好这一点,才能够真正符合服务编写规范,也方便我们的除错。
5、最后一点,本文仅供参考,如有错误以及错误引起的后果,本人概不负责.
转载
『拾』 懂VB的高手请进
只能读,不能设置,你要设置他字段的type不是不可能。
'//在查询里就把字段原始类型给设置了
Adodc1.ConnectionString="连接字符串"
Adodc1.RecordSource="Select CStr(日期) as 日期文本, Int(文本序号) as 数字 From 表名"
Adodc1.Refresh
'//把查询出来的数据整理成任何类型都可以
Dim riqi As String
Dim shuzi As integer
Adodc1.ConnectionString="连接字符串"
Adodc1.RecordSource="Select 日期, 文本序号 From 表名"
Adodc1.Refresh
If Not Adodc1.Recordset.EOF Then
riqi=Cstr(Adodc1.Recordset.Fileds("日期"))
shuzi=Int(Adodc1.Recordset.Fileds("文本序号"))
End If