📄 9930.txt
字号:
================================================================
《编 程 技 术》
一份属于广大编程爱好者的电子杂志
这是一份完全关于探讨编程的免费电子杂志
您可以任意传播本刊,但必须保持它的完整
本刊承诺绝不向订户发送任何形式的垃圾邮件!
================================================================
第30期 99/10/24 本期发送数: 4939
================================================================
◆本期栏目◆
*刊首语*
*网友作品*
《编程机器2.1》正式版
学生小助手(helper)
定时器
*技术文档*
用VB设计聚焦框程序
彩蛋一枚:VB——在微软的蓝天下
用VC++6.0编写Proxy服务器
提高FoxPro应用程序的智商
DELPHI:检测存在打印机
监视POP3信箱
VB与VC混合编程中处理消息的方法
用C++ Builder实现Word 97自动化
*下载专区*
4个编程工具和控件下载
*有问必答*
****************************************************************
****************************************************************
◆刊首语◆
有个通知,下周学校里要进行计算机等级考试,周六、周日我一连
要考两天,故下周杂志暂停一期。这次是真的要暂停了。望大家谅解。
****************************************************************
****************************************************************
◆网友作品◆
003.
软件名称:《编程机器2.1》正式版
下载地址:ftp://ftp.pchome.net:169/program/Automac.zip
硬件要求:386以上
内存:1M硬盘2M空间
运行平台:DOS或WIN95/98下的MS-DOS
支持的汉字平台:UCDOS等汉字平台或WIN95/98的PDOS95
软件性质:共享软件
软件介绍:
你想学计算机编程吗?你想一下子掌握多种计算机语言的编程吗?你是不
是希望不要背那繁琐的命令就能写出程序?<<编程机器2.1>>为你解决一
切。<<编程机器2.1>>是一个全中文界面的程序自动生成软件。你只需通
过中文的菜单选择就能生成你想要的程序!它将所有的计算机命令都翻译
成了中文,让你的程序全中文化。一切就那么简单!<<编程机器2.1>>同
时支持C语言,PASCAL语言,QUICK BASIC语言,以及FOXPRO语言的编程!
拥有它你简直就成了计算机编程语言专家!还不快点下载,这可是真正的
2.1正式版哦!
004.
软件名称:学生小助手(helper)
网址:http://bluelark.yeah.net
软件作者:李海滨(复旦9718#)
Email:happyli@126.com
下载地址:http://www.china-avenue.com/lihaibin/program/helper/helper.exe
运行要求:1。vb6运行库,800x600 真彩色。
2。安装helper.exe即可。
3。在“开始|程序|lhb|"中找。
软件介绍:
本软件结合了学生在校学习的特点,为学生提供了许多常用的功能。
如文字资料分类整理,提醒学习上课休息、计算数学式子、单词循环记忆
、201卡拨号等。
1。文字资料
可以处理rtf、txt文件,支持文件拖放,关联。可以自己建立文件夹,
建立树形结构目录。给资料分门别类,还带有一课程表并可直接计算算式,
运行指定名称软件。
tg(Pi/4)+2
上面选中再右键 选“计算”即可以直接计算
http://www.netease.com
上面选中再右键 选“运行”即可以连上网页
MSPAINT.EXE
上面选中再右键 选“运行”即可运行指定程序
SetTime 10:22:16
SetDate 99-9-26
上面分别选中再右键 选“运行”即可设置时间,日期
happyli@netease.com
上面选中再右键 选“运行”即可以email给我!
2。多功能提醒
许多事情是不很容易忘记,同学的生日是不是忘掉了。。。总之现在
学生的事情也不少。本软件的提醒功能可以说是很强!可以设立任意长的
时间间隔(>1分钟),提前任何天提醒。同时可附带运行一个程序,一个
音乐文件,并可自动关闭计算机、自动换桌面图案自动报时等。
3。单词、名人名言
在“显示”菜单中,可选择显示名人名言,6级、gre单词,点击"cpu
使用”软件即变成条状象任务栏一样在屏幕的一边。鼠标移到名人名言上
面会自动躲避若再点击则恢复默认形状。
4。电话拨号、快捷等(略)
本软件的“电话”可以拨电话(针对201卡、其他也可以用只要在“电话”
栏中输入电话号码.选项/密码第一次可以自己输密码可以启动时要密码。
(在选项中设置)
欢迎提出意见以便改进!
005.
软件名称:定时器
版本:1.0 (Build 81)
作者:望月
Email:SecondMoon@21cn.com
主页:无
运行平台:Windows95/98
性质:免费软件
下载地址:http://www.my169.com/~yao/dsq.exe
定时器特点:
1、拥有三种方式能设置提醒时间,令该程序更方便易用。
2、支持定时重启、关机或定时打开其它应用程序,并可设置定时强制关
机!!!这下想不关机都不行了。
3、支持半点报时、正点报时,支持更换时钟款式(共七种),支持最上
层显示。
4、程序启动时根据系统时间自动选择电子表和电子表(夜光)两种时钟
款式。
5、最小化定时器则会在任务栏中显示时间(虽然Windows已经任务栏中
显示时间,但多一个时间显示也不是坏事)。
6、可以将定时器窗口完全隐藏,直至指定时间才出现。隐藏定时器后再
也不怕别人修改提醒时间了。建议将这个功能和强制关机功能一起使
用。
您自己开发过软件吗? 您有自己满意的作品吗? 您希望发布推广您的作品
吗? 本刊竭诚为您提供宣传空间。有意的朋友请把您的作品介绍以及下载
地址、您的网址、联系方法等相关信息发给我(具体格式请参照上面)。
本刊免费为您宣传三期。如有疑问可以与我联系。
我的信箱: yaozheng@kali.com.cn
****************************************************************
****************************************************************
◆技术文档◆
用VB设计聚焦框程序
作者: 季昭君
什么是聚焦框?在Windows中是这样解释的:当某个按钮被按下或某
个控件正在使用时,由一个长方形的虚线框聚焦在此按钮或控件上来提
示用户它正起作用。但是并非所有的控件在任何时候都能得到焦点(即
得到聚焦框),有时我们在日常的编程中也许会用到它,用来提示用户
一些必要的信息。这时你可以这样做:
说明: 在以下程序中可以使Picture控件得到聚焦框,且程序调用
API函数来完成。
首先,在FORM1上新建一个Picture1和一个Command1,然后输入以
下代码:
Private Declare Function DrawFocusRect Lib ″user32″ (ByVal
hdc As Long, lpRect As RECT) As Long
Private Type RECT
X1 As Long
Y1 As Long
X2 As Long
Y2 As Long
End Type
Dim lpRect As RECT ′在通用中声明调用API函数
Private Sub Form_Load()
Form1.WindowState = 2 ′最大化窗口
Picture1.Picture = LoadPicture(″C:\BMP\1.BMP″) ′请读者根据自己选择图片
Command1.Caption =″设置聚焦框″
End Sub
Private Sub Form_Activate()
Picture1.Move (Form1.ScaleWidth - Picture1.ScaleWidth) / 2,
(Form1.ScaleHeight - Picture1.ScaleHeight) /2′使Picture1居中显示
End Sub
Private Sub Command1_Click()
Dim DENG As Long
lpRect.X1 = Picture1.Left - 10
lpRect.Y1 = Picture1.Top - 10
lpRect.X2 = lpRect.X1 + Picture1.Width + 20
lpRect.Y2 = lpRect.Y1 + Picture1.Height + 20
DENG = DrawFocusRect(hdc, lpRect)
End Sub
OK,大功告成,按F5运行,通过单击按钮Command1就可以实现Picture1
控件被聚焦! 当然你也可以作适当调整,使它符合你个人的需要。
****************************************************************
彩蛋一枚:VB——在微软的蓝天下
作者: 何弘
微软的发迹是从Basic开始的,这可能是唯一一个凝聚着比尔·盖
茨心血和汗水的软件,所以盖茨一直对它情有独钟,多次在不同场合声称
它无所不能。尽管由盖茨亲自操刀撰写源代码的Basic,与现在运行
在Windows环境下的可视化开发工具Visual Basic,
看起来差别实在是太大了,但毕竟盖茨是通过Basic认识到了PC所
具有的无法估量的潜在价值,而且一脉传承至今的Basic确实对PC
的发展起到了巨大的推动作用。
从盖茨开始,许多极具才华的程序员把他们的心血花在了Basic
上,并进一步使许多程序员通过Basic发挥了自己的才能、展示了自
己的才华。那么,目前最新的Basic版本,即VB6·0是由哪些人
开发完成的呢?
启动VB6·0中文版(其它语言的版本也可以,操作时请选择相应
的菜单或按钮),单击“视图”菜单,从其中的“工具栏”子菜单中选择
“自定义”,单击它可以打开“自定义”对话框,选择其中的“命令”选
项卡。在这个对话框中,在左边的“类别”选项框中找到“帮助”并单击
它,然后从右边的“命令”选择框中找到“关于Microsoft
Visual Basic...”,按住鼠标左键将它拖到“工具条”
上(也可以拖到一个菜单中)。用鼠标右键单击该按钮,在弹出的菜单中
找到“命名”,它的后边跟着一个文字框,其中有该按钮的名字:“关于
Microsoft Visual Basic(&A)...”将它
改为“Show VB Credits”,然后关闭“自定义”对话框。
这时,“Show VB Credits”就成了工具条上的一个
按钮或某菜单中的一个条目,用鼠标左键单击它,会弹出一个叫做
“Microsoft Visual Basic”的窗口,在飘动的
微软式的蓝天白云下,红、蓝、橙、黄四个立方体色块在不停地变化组合,
而自下而上的滚动字幕所显示的就是VB6·0工作组的成员名单。这就
是在微软的蓝天下让Basic绵延至今的人。
****************************************************************
用VC++6.0编写Proxy服务器
万捷
---- 我们一般常用的Internet代理服务器是用微软的Proxy Server 2.0 。
但我们可以自己动手编写一个简单、小型的Proxy Server 。下面介绍具体
的实现方法。
---- 一. 原理
---- 本程序的结构原理如下:
---- 对于每一个用户的请求(Internet 请求,由浏览器发出),本程序
将启动两个线程,一个把本地用户的请求数据发送到远程的Internet主机,
另一个线程把远程主机的回应数据发送到本地请求用户。
---- 二. 主要函数
UserToProxyThread ( void * pParam ) :它是用来把本地用户请求数据
发送到远程主机的,起服务器线程角色。当接到本地(局域网)用户的请
求,它就启动另一个自身线程,以侦听别的用户的请求,并读出已接收到
的请求数据,接着启动第二个线程ProxyToServer()(这个线程用来连接
远程主机),当远程主机连接成功后,它把已读出的本地用户请求数据发
送到远程主机。
ProxyToServer ( void * pParam) ,可以被当作是客户端服务,它把远程
主机发送来的数据分发给本地请求用户。
---- 三. 开发运行环境
---- 本程序是在VC++6.0环境下开发的,在Win95 和 WinNT4.0下运行正常。
---- 四. 详细代码
#include "stdafx.h"
#include "Proxy.h"
#include < winsock2.h > //WINSOCKET API 2。0
#include < stdlib.h >
#include < stdio.h >
#include < string.h >
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
////////////////////////////////////////////////////////////////
#define HTTP "http://"
#define FTP "ftp://"
#define PROXYPORT 5001 //Proxy 端口
#define BUFSIZE 10240 //缓冲区大小
CWinApp theApp;
using namespace std;
UINT ProxyToServer(LPVOID pParam);
UINT UserToProxyThread(void *pParam);
struct SocketPair{
SOCKET user_proxy; //socket : 本地机器到PROXY 服务机
SOCKET proxy_server; //socket : PROXY 服务机到远程主机
BOOL IsUser_ProxyClosed; // 本地机器到PROXY 服务机状态
BOOL IsProxy_ServerClosed; // PROXY 服务机到远程主机状态
};
struct ProxyParam{
char Address[256]; // 远程主机地址
HANDLE User_SvrOK; // PROXY 服务机到远程主机的联结状态
SocketPair *pPair; // 维护一组SOCKET的指针
int Port; // 用来联结远程主机的端口
}; //这个结构用来PROXY SERVER与远程主机的信息交换.
SOCKET gListen_Socket; //用来侦听的SOCKET。
int StartServer() //启动服务
{
WSADATA wsaData;
sockaddr_in local;
SOCKET listen_socket;
if(::WSAStartup(0x202,&wsaData)!=0)
{printf("\nError in Startup session.\n");WSACleanup();return -1;};
local.sin_family=AF_INET;
local.sin_addr.s_addr=INADDR_ANY;
local.sin_port=htons(PROXYPORT);
listen_socket=socket(AF_INET,SOCK_STREAM,0);
if(listen_socket==INVALID_SOCKET)
{printf("\nError in New a Socket.");WSACleanup();return -2;}
if(::bind(listen_socket,(sockaddr *)&local,sizeof(local))!=0)
{printf("\n Error in Binding socket."); WSACleanup();return -3; };
if(::listen(listen_socket,5)!=0)
{printf("\n Error in Listen."); WSACleanup(); return -4;}
gListen_Socket=listen_socket;
AfxBeginThread(UserToProxyThread,NULL); //启动侦听
return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -