⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 试刊4.txt

📁 关于编程技术技巧的文章
💻 TXT
字号:

                     <<编程技术>>

         一份属于广大编程爱好者的mailing list

                 试刊第四期 99/03/14


<本期栏目>
 *刊首语*
 *雕虫小技*
     用VB创建不规则窗口
 *技术文档*
    在FOXPRO FOR WINDOWS中播放声音文件的三种方法
    在程序中实现口令的动态改变
    使用Visual Basic读取和修改Windows注册库
    如何在VB 5.0中将英文字母及阿拉伯数字旋转任意角度。
 *服务台*

*****************************************************

<刊首语>
    
    随着杂志一天天的成长,订阅人数也在不断的增加。但我最近也
收到一些内容不明的E-mail,我估计其中可能有一些是网友的订阅信,
但是没在信中写清楚。
    其实订阅本刊的方法很简单,只要您能表达想订阅本刊的意思,
随便您在E-mail里写什么都可以,因为这些订阅信都会由我亲自处理
的(只要我看到的不是乱码)。当然最简单的方法只要在主题中写上
“subscribe”就可以了。如果您在来信中什么说明也没有,那我只能
默认为是封垃圾信了。
    假如您曾经给我发过订阅信而没有收到刊物,请您检查一下您的
订阅信是不是有问题,如果确实有问题的话,那麻烦您再发一次吧。
但如果您的订阅信没有问题,但还是没有收到刊物(一般在两周内)
请您告诉我一声,我会帮您检查的。

*****************************************************
*****************************************************

<雕虫小技>

                  用VB创建不规则窗口 

    Win32 API 有很多让你意想不到的功能。要创建特殊的不规则窗口
看上去似乎很难。但我们如果我们说我们用几行代码就可以实现,这似
乎不可思议。但事实就是如此!请试试:
Private Declare Function CreateEllipticRgn Lib "gdi32" (ByVal X1 As
 Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long

Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As
 Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long

Private Sub Form_Load()
Show 'The form!
SetWindowRgn hWnd,?? CreateEllipticRgn(0, 0, 300, 200),?? True
End Sub
上述代码可以创建一个椭圆形状的窗口。怎么样??


*****************************************************
*****************************************************

<技术文档>

             在FOXPRO FOR WINDOWS中播放声音文件的三种方法

  —、使用通用字段播放声音文件
  foxpro 2.5 for windows,数据库中的通用字段可以链接或嵌入声音对象
(.wav格式的声音文件)。其命令格式如下:
  append general<general field>from<file>
  其中<general field>为通用字段名称,<file>为含路径和扩展名的声音文
件。命令:@<row,column>say<general field>可以实现声音的播放。

  二、使用set bell to 命令直接播放声音文件
  set bell to 命令不仅可以设置计算机中开关响铃及响铃信号属性,还可
用以播放声音文件:
  WAV_NAME=“SOUND.WAV” &&SOUND.WAV是要播放的声音文件名
  SET BELL TO WAV_NAME,0 &&设置响铃信号为波形声音文件??CHR(7)

    三、调用WINDOWS的“录音机”播放声音文件:
我们还可以通过调用WINDOWS3。X中的“录音机”或声卡提供的类似工具播放声
音文件,下面是调用“录音机”的方法:
   WAV_NAME="SOUND.WAV"
  RUN /N SOUNDREC.EXE & WA_NAME
    &&SOUNDREC.EXE是“录音机”程序的文件名
  需要说明的是:用前两种方法播放声音的操作均不是交互式的,都不能控制
播放的过程,在实际使用中很不方便。此外第一种方法需要把声音对象加入到数
据库之中,不仅会使数据库的备注文件变得非常庞大,而且将多占用近一倍硬盘
空间(如果不删除。WAV文件的话),只有第三种方法不但没有多占质盘空间之
忧,并且播放过程是交互式的,使我们能够非常方便地进行放音、暂停或停止等
操作。因此,笔者在编程中比较偏爱使用第三种方法。
                
*****************************************************

                      在程序中实现口令的动态改变
                           
                           (天津 李金旺)

    有经验的读者都知道,在用BASIC、FOXBASE、PASCAL等高级语言编制口令程
序时,口令设置好后,是不能在程序运行中改变的。所以当口令被他人知道后不
得不去修改程序中口令部分,即使采用口令隐形输入,也挡不住他人从程序中得
知口令内容。有没有一个好方法来解决上述问题呢?只要运行下面笔者提供的程
序即可,它会使您爱不释手。该程序可以用在批处理文件中,也可以用在其它应
用程序中。

使用说明:
    本源程序是用汇编语言编写,采用COM文件格式,故需经过MASM命令汇编,
LINK命令连接,最后用EXE2BIN命令将EXE文件转换成COM文件。
使用环境:
软环境:MS-DOS V2.0以上
硬环境:PC/XT以上
使用方法:
在Input a password:提示后输入口令(口令为三个键盘字符),若口令不正确则继
续输入,直到正确为止。当口令正确后则显示出Input a new password:提示信息,
若不打算更改口令则直接打入回车键即可,否则输入任意三个键盘字符就可作为
新的口令。(最初口令为“abc”)
csd     segment
        assume cs:csd
        org 100h
main    proc far
        push ds
        mov ax,0
        push ax
        mov ah,9
        mov dx,offset msg1
        int 21h             ;显示Input a password:
loop2:  mov ah,3
        mov bh,0
        int 10h             
        push cx
        push dx             ;保存光标位置
        mov cx,3            ;循环次数
        lea di,passw2
loop1:  
        mov ah,1
        int 21h             ;键盘输入字符
	mov [di],al
        inc di
        loop loop1
        mov cx,3
        lea di,passw1
        lea si,passw2
        cld
        repz cmpsb          ;比较输入的口令与原口令是否相同
        je   xmm            ;相同,转
        pop dx
        pop cx
        mov bh,0
        mov ah,2
        int 10h             ;恢复光标位置
        jmp loop2
xmm:    mov dx,offset msg2
        mov ah,9
        int 21h             ;显示Input a new password:
        lea di,passw1
        mov ah,1
        int 21h             ;键盘输入字符
        cmp al,0dh          ;是回车键吗?
        je end_             ;是,转
	mov [di],al
        inc di
        mov cx,2  
loop3:  mov ah,1
        int 21h
	mov [di],al
        inc di              
        loop loop3          ;新口令字符存放在原口令单元中
        mov ax,3d02h
        mov dx,offset filen
        int 21h             ;打开文件供读写
        mov bx,ax           ;保存文件句柄
        mov cx,0
        mov dx,offset passw1-100h
        mov ax,4200h
        int 21h             ;移动文件指针
        mov ah,40h
        mov dx,offset passw1
        mov cx,3
        int 21h             ;写文件
        mov ah,3eh
        int 21h             ;关闭文件
end_:   pop dx
        pop cx
        ret                 ;返回DOS
main    endp
passw1  db "abc"            ;原口令存放单元
passw2  db 3 dup(?)
msg1    db "Input a password:","$"
msg2    db 0dh,0ah,"Input a new password:","$"
filen   db "kl.com",0       ;文件本身
csd     ends
        end main
                     
*****************************************************
 
            使用Visual Basic读取和修改Windows注册库

                                          微软公司供稿

    在过去,在进行Microsoft_ Visual Basic_ 应用程序的开发时,感
到在两次应用程序的运行之间保留状态信息是非常困难的。这是因为基于
Microsoft Windows_ 的应用程序(包括

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -