论坛的首页
勇芳的软件
教程和帮助
VisualFreeBasic编程文档
勇芳系列软件帮助说明教程
留言或交流
登录
搜索
登录
搜索
勇芳
累计撰写
330
篇文章
累计收到
0
条评论
首页
栏目
论坛的首页
勇芳的软件
教程和帮助
VisualFreeBasic编程文档
勇芳系列软件帮助说明教程
留言或交流
登录
包含标签 【编程】 的文章
2026-1-21
VisualFreeBasic内置库_内置“代码库”使用方法
VisualFreeBasic已经内置很多扩展库,可以很方便的使用 里面的库,一部分,需要引用库文件,一部分,不需要引用,因为VFB已经使用了这个库,上面引用过了 比方电子邮件的库使用 看到帮助,查看后面 可以先不引用库,当编译出错,就复制这个代码 #include Once "Afx/CCDOMail.inc" 'ln 23 放入到 起始模块中
2026年-1月-21日
129 阅读
0 评论
VisualFreeBasic编程文档
2026-1-21
VisualFreeBasic代码_其它
占位置,有空写。
2026年-1月-21日
60 阅读
0 评论
VisualFreeBasic编程文档
2026-1-21
VisualFreeBasic代码_COM和OCX
暂不支持 不过VFB 中有一些控件是 OCX 的,一些代码库是 COM 的,包装好代码,使用就简单了。 本人没空研究这些,要是感兴趣的请留言。
2026年-1月-21日
63 阅读
0 评论
VisualFreeBasic编程文档
2026-1-21
VisualFreeBasic代码_鼠标键盘
有关键盘鼠标的函数 BackMmouseClick 后台鼠标单击 BackMmouseClick2 后台鼠标单击 BackMmouseDblclk 后台鼠标双击 BackMoveMouse 后台模拟鼠标在某个窗口上面移动,Mk是指示各种虚拟键是否按下。 KeyPress 按下键盘 KeyPressOR 键盘组合按键 MouseClick 前台鼠标模拟 FF_GetKeyState 检索当前的 lKeyIndex 基于状态栏例程使用此函数返回的各种键盘状态的文本字符串的指定索引。 HookKeyboard 定义键盘钩子 HookMouBoard 定义鼠标钩子 GetMousePos 获取鼠标在屏幕或窗口的位置 IsKeyPress 判断某个键是不是被按下{1.VK_LBUTTON 鼠标左键.VK_RBUTTON 鼠标右键.VK_SHIFT SHIFT 键.VK_CONTROL CTRL 键.VK_MENU ALT键.更多见帮助}
2026年-1月-21日
66 阅读
0 评论
VisualFreeBasic编程文档
2026-1-21
VisualFreeBasic代码_网络
网络编程,使用 ”WinInet“ 互联网访问 和 ”Network“ 网络通信 控件编写。 还有一个发送电子邮件代码 #include Once "Afx/CCDOMail.inc" ' // 创建一个CCdoMessage类的实例 DIM pMsg AS CCDOMessage ' // 组态 pMsg.ConfigValue(cdoSendUsingMethod, CdoSendUsingPort) pMsg.ConfigValue(cdoSMTPServer, "smtp.xxxxx.xxx") pMsg.ConfigValue(cdoSMTPServerPort, 25) pMsg.ConfigValue(cdoSMTPAuthenticate, 1) pMsg.ConfigValue(cdoSendUserName, "xxxx@xxxx.xxx") pMsg.ConfigValue(cdoSendPassword, "xxxxxxxx") pMsg.ConfigValue(cdoSMTPUseSSL, 1) pMsg.ConfigUpdate ' // 收件人姓名 - >根据需要更改 pMsg.Recipients("xxxxx@xxxxx") ' // 发件人邮件地址 - >根据需要更改 pMsg.From("xxxxx@xxxxx") ' // 主题 - >根据需要更改 pMsg.Subject("This is a sample subject") ' // 文字正文 - >根据需要更改 pMsg.TextBody("This is a sample message text") ' // 添加附件(使用绝对路径)。 ' // 注意通过重复呼叫,您可以附加多个文件。 pMsg.AddAttachment ExePath & "\xxxxx.xxx" ' // 发送消息 pMsg.Send IF pMsg.GetLastResult = S_OK THEN PRINT "Message sent" ELSE PRINT "Failure" 要使用gmail发送消息,只需更改服务器名称和服务器端口的值: pMsg.ConfigValue(cdoSMTPServer, "smtp.gmail.com") pMsg.ConfigValue(cdoSMTPServerPort, 465)
2026年-1月-21日
64 阅读
0 评论
VisualFreeBasic编程文档
2026-1-21
VisualFreeBasic代码_影音
播放CD光盘 使用内置类 #include Once "Afx/CCDAudio.inc" DIM pAudio AS CCDAudio pAudio.Open pAudio.Play 播放音频文件 使用Direct Show播放各种格式的音频文件。 #include Once "Afx/CDSAudio.inc" DIM pCDSAudio AS CDSAudio pCDSAudio.Load("MyAudioFile.mp3") pCDSAudio.Run API播放WAV文件 PlaySound WAV文件名, NULL, SND_ASYNC Or SND_FILENAME 播放视频 无
2026年-1月-21日
54 阅读
0 评论
VisualFreeBasic编程文档
2026-1-21
VisualFreeBasic代码_打印机
下面有关打印机的函数(本人没打印机,没有测试) AfxEnumLocalPrinterPorts 返回本地安装的打印机的端口名称列表。名称由回车符和换行符分隔。 AfxEnumPrinterNames 使用可用的打印机,打印服务器,域或打印提供程序返回列表。名称由回车符和换行符分隔。 AfxEnumPrinterPorts 返回带有可用打印机,打印服务器,域或打印提供程序的端口名称的列表。名称由回车符和换行符分隔。 AfxGetDefaultPrinter 检索本地计算机上当前用户的默认打印机的名称。 AfxGetDefaultPrinterDriver 检索默认打印机的名称。 AfxGetDefaultPrinterPort 检索默认打印机端口的名称。 AfxGetDocumentProperties 检索打印机初始化信息。 AfxGetPrinterCollate 检查打印机是否支持整理。 AfxGetPrinterCollateStatus 返回打印机的分页状态。 AfxGetPrinterColorMode 检查打印机是否支持彩色打印。 AfxGetPrinterCopies 如果设备支持多页复印,则返回打印份数。 AfxGetPrinterDC 返回打印机设备上下文的句柄。 AfxGetPrinterDriverVersion 返回打印机驱动程序的版本号。 AfxGetPrinterDuplexMode 检查打印机是否支持双面打印。 AfxGetPrinterFromPort 返回给定端口名称的打印机名称。 AfxGetPrinterHorizontalResolution 检索页面可打印区域的宽度(以像素为单位)。 AfxGetPrinterMaxCopies 返回设备可以打印的最大份数。 AfxGetPrinterMaxPaperHeight 以十分之一毫米为单位返回最大纸张高度。 AfxGetPrinterMaxPaperWidth 返回十分之一毫米的最大纸张宽度。 AfxGetPrinterMediaReady 检索当前可用的纸张表单的名称。 AfxGetPrinterMinPaperHeight 以十分之一毫米返回最小纸张高度。 AfxGetPrinterMinPaperWidth 以十分之一毫米返回最小纸张宽度。 AfxGetPrinterOrientation 检索打印机方向。 AfxGetPrinterOrientationDegrees 以纵向方向逆时针旋转以产生横向方向的度数返回设备的纵向和横向方向之间的关系。 AfxGetPrinterPaperLength 返回papel lenght。 AfxGetPrinterPaperNames 检索支持的纸张名称。 AfxGetPrinterPaperSize 返回打印机当前配置的纸张尺寸。 AfxGetPrinterPaperSizes 检索支持的纸张尺寸。 AfxGetPrinterPaperWidth 返回区域宽度。 AfxGetPrinterPhysicalHeight 以设备为单位检索物理页面的高度。 AfxGetPrinterPhysicalOffsetX 以设备为单位检索从物理页面左边缘到可打印区域左边缘的距离。 AfxGetPrinterPhysicalOffsetY 以设备为单位检索从物理页面的上边缘到可打印区域的上边缘的距离。 AfxGetPrinterPhysicalWidth 以设备为单位检索物理页面的宽度。 AfxGetPrinterPort 返回指定打印机的端口名称。 AfxGetPrinterQuality 返回打印机的打印质量模式。 AfxGetPrinterPrintRate 返回打印机的打印速率。 AfxGetPrinterPrintRatePPM 返回打印机的打印速度,以每分钟的页数为单位。 AfxGetPrinterPrintRateUnit 返回打印机的打印速度单位。 AfxGetPrinterScale 返回缩放打印输出的因子。显而易见的页面大小从物理页面大小缩放dmScale / 100。例如,dmScale值为50的letter尺寸的页面将包含与17 x 22英寸的页面一样多的数据,因为输出文本和图形将是其原始高度和宽度的一半。 AfxGetPrinterScalingFactorX 检索打印机x轴的缩放系数。 AfxGetPrinterScalingFactorY 检索打印机y轴的缩放系数。 AfxGetPrinterTray 返回纸张来源。 AfxGetPrinterTrayNames 用打印机的纸盒名称返回一个列表。 AfxGetPrinterTrueType 检索驱动程序使用TrueType字体的能力。 AfxGetPrinterVerticalResolution 检索页面可打印区域的高度(以像素为单位)。 AfxOpenPrintersFolder 打开选择“打印机和传真”文件夹的资源管理器实例。 AfxPrinterDialog 显示一个打印对话框。用户可以使用Print对话框指定特定打印作业的属性。 AfxSetPrinterCollateStatus 在彩色打印机上切换彩色和单色。 AfxSetPrinterColorMode 在彩色打印机上切换彩色和单色。 AfxSetPrinterCopies 如果设备支持多页复印,则选择打印份数。 AfxSetPrinterDuplexMode 设置打印机双面模式 AfxSetPrinterInfo 设置指定打印机的数据。 AfxSetPrinterOrientation 将打印机方向设置为纵向或横向。 AfxSetPrinterPaperSize 设置打印机纸张尺寸。 AfxSetPrinterQuality 指定打印机分辨率。 AfxSetPrinterScale 指定打印输出缩放的因子。显而易见的页面大小从物理页面大小缩放dmScale / 100。例如,dmScale值为50的letter尺寸的页面将包含与17 x 22英寸的页面一样多的数据,因为输出文本和图形将是其原始高度和宽度的一半。 AfxSetPrinterTray 设置打印机纸张来源。
2026年-1月-21日
54 阅读
0 评论
VisualFreeBasic编程文档
2026-1-21
VisualFreeBasic代码_窗口和控件
每个窗口和控件都用于一个窗口句柄,有了窗口句柄,就可以对其直接操作,控件也是属于窗口。 窗口句柄的获得 自己软件的 窗口句柄=Form1.hWnd 控件的窗口句柄=Form1.Picture1.hWnd 别人在运行的软件(包括自己的软件) 窗口句柄=FindWindow("类名","窗口名") 控件的窗口句柄=FindWindowEx(窗口句柄,0,"类名","窗口名") 假如遇到同窗口名和同类名,查找下一个 控件的窗口句柄=FindWindowEx(窗口句柄,上一个控件的窗口句柄,"类名","窗口名") 用句柄直接操作控件 由于函数非常多,可以查看VFB帮助里的源码库,下面列举几个 FF_Control_GetLoc 获取控件,以像素为单位的左上角的位置。位置是相对于客户端的左上角在父窗口中的区域。 FF_Control_SetLoc 以像素为单位设置控件的左上角的位置。该位置是相对于父窗口客户区的左上角。 FF_Control_GetText 获取指定控件的文本 FF_Control_SetText 设置指定控件的文本
2026年-1月-21日
53 阅读
0 评论
VisualFreeBasic编程文档
2026-1-21
VisualFreeBasic代码_进程
在编程中,进程(Process)是计算机系统中的一个基本概念,代表程序在计算机上的一次执行过程。它是系统进行资源分配和调度的一个独立单元,拥有独立的内存空间和系统资源。不同的进程之间互不影响,可以并发执行。了解并熟练使用进程管理是编程中的重要技能之一,尤其对于需要处理多任务或并行计算的场景。 就是说,每个软件运行后,就有一个进程。 进程的基本概念 进程ID(PID):每个进程都有一个唯一的标识符,称为进程ID(Process ID),用于区分不同的进程。 父进程与子进程:每个进程都可能由另一个进程创建,创建它的进程称为父进程,被创建的进程称为子进程。进程之间的这种关系构成了一个进程树。 进程状态:进程在其生命周期中会有多种状态,如新建(New)、就绪(Ready)、运行(Running)、阻塞(Blocked)和终止(Terminated)等。 进程通信:不同进程间可能需要进行通信以交换数据或同步执行。常见的进程通信方式包括管道(Pipe)、消息队列(Message Queue)、共享内存(Shared Memory)和套接字(Socket)等。 进程的创建 通俗来说,就是用代码打开一个软件,就是打开一个 EXE 文件 OpenFileExe(软件文件名.exe,"参数") 也可以打开系统文件 OpenFileExe("Explorer.exe", 文件夹路径) ‘系统资源管理器打开这个文件夹 OpenFileExe("Explorer.exe", 文件名) ‘系统打开这个文件 OpenFileExe( 文件名,"") ‘系统打开这个文件 OpenFileExe("Explorer.exe","/select," & 文件夹路径) '打开资源管理器,并且选中这个文件夹 OpenFileExe("Explorer.exe","/select," & 文件名) '打开资源管理器,并且选中这个文件名 获取系统中所有进程 操作系统中运行的所有软件,包括系统服务进程 Dim 软件文件() As String, 进程ID() As DWORD Dim u As Long = GetAllPID(软件文件(), 进程ID()) Print "进程数量:" & u For i As Long = 0 To UBound(软件文件) Print 进程ID(i),软件文件(i) Next 其它一些关于进程的常用函数 GetWinProId 由窗口句柄获取进程ID GetParentPID 获取父进程ID,PID是要查的进程ID,默认为自己软件的进程ID Process_GetPath 获取进程文件路径 ProcessKill 杀死进程,终止进程,强制关闭进程 ProcessSuspend 挂起一个进程 ProcessResume 恢复一个进程,被 ProcessSuspend 挂起的,恢复它 RemoteDLLinjection 远程DLL注入 GetCurrentProcessId ' 获取自己进程ID GetCurrentThreadId 获取当前线程ID GetCurrentThread 获取当前线程句柄 GetProcessId 通过进程句柄,返还进程ID
2026年-1月-21日
48 阅读
0 评论
VisualFreeBasic编程文档
2026-1-21
VisualFreeBasic代码_文件和文件夹
编程中处理文件是一项基本且常用的技能,几乎每种编程语言都提供了文件操作的功能。这里我将以一个较为通用的方式介绍文件操作的基本概念和步骤。 文件操作的基本概念 文件操作主要包括以下几个步骤: 打开文件:使用编程语言的文件打开函数或方法打开指定的文件。 读写文件:对打开的文件进行读取或写入操作。 关闭文件:完成文件操作后,关闭文件以释放系统资源。 文件操作的模式 在打开文件时,通常需要指定一个模式(mode),该模式决定了文件是用于读取、写入还是其他操作。常见的模式有: 'Read':只读模式(默认)。如果文件不存在,抛出错误。 'Write':写入模式。如果文件已存在则覆盖,如果文件不存在则创建。 'Lock':排他性创建模式。如果文件已存在,则抛出错误。 'Append':追加模式。如果文件存在,则在其末尾追加内容;如果文件不存在,则创建新文件。 'Binary':二进制模式。 FB语句例题 '创建一个字符串并填充它。 Dim buffer As String, f As Integer buffer = "一个文件中的Hello World。" '获取文件号。 f = FreeFile '打开文件“file.ext”进行二进制使用,使用文件号“f”。 Open "file.ext" For Binary As #f If Err>0 Then Print "打开文件时出错" end if '将我们的字符串放在文件中,使用数字“f”。 Put #f, , buffer '关闭所有打开的文件。 Close end if 直接使用VFB封装函数 读写文件还是比较繁琐的,我们使用封装函数,可以简单方便的使用。 读取文件 文件内容= GetFileStr(带路径的文件名) 写入文件 SaveFileStr(带路径的文件名,文件内容) 判断文件是否存在 if AfxFileExists(带路径的文件名) then 文件存在 else 文件不存在 if AfxFolderExists(文件夹) then 文件夹存在 else 文件夹不存在 配置文件 通常我们会将软件配置、选项等保存到文件中,软件开启后读取这些配置和选项。 配置通常扩展名是 INI ,那样在WIn系统中,也能直接打开查看。 读取配置 aa = INI_GetKey(app.path & "配置.ini","节名",“键名”,"默认值") 保存配置 INI_SetKey(app.path & "配置.ini","节名",“键名”,"值") 节名 如同分类一样,保存的配置会把同一个“节名”保存在一起 键名 在同一个“节名”下,是唯一的名字,依靠此名保存和读取内容 默认值 当读取时,不存在内容,就返回默认值 其它封装函数 文件和文件夹相关的封装函数非常多,以下列举几个函数,想看全部函数的,进VFB里共库查看。 GetDIR 获取所有文件,包括文件夹,返回对象数,返回0表示失败或无文件。 Dim lName() As WIN32_FIND_DATAW ,i As Long ,tt As String PrintA GetDIR("c:\*.*" ,lName()) For i = 0 To UBound(lname) If (lname(i).dwFileAttributes And fbDirectory) <> 0 Then tt = "- 目录" Else tt = " - 文件" If (lname(i).dwFileAttributes And fbReadOnly) <> 0 Then tt &= ", 只读" If (lname(i).dwFileAttributes And fbHidden) <> 0 Then tt &= ",隐藏" If (lname(i).dwFileAttributes And fbSystem) <> 0 Then tt &= ",系统" If (lname(i).dwFileAttributes And fbArchive) <> 0 Then tt &= ",存档" PrintA i ,lname(i).cFileName ,tt Next
2026年-1月-21日
73 阅读
0 评论
VisualFreeBasic编程文档
10
11
12
13
14