| 网站首页 | 技术文章 | 下载频道 | 博客 | 编程论坛 |
 
| 技术教程首页 | 开发语言 | WEB开发 | .NET技术 | 数据库 | 操作系统 | 网页制作 |
 
 
您现在的位置: 编程中国 >> 技术教程 >> 开发语言 >> 汇编 >> 汇编源码 >> 正文
  ►  用Win32asm写的"同时打开多个网页的实用小工具
用Win32asm写的"同时打开多个网页的实用小工具
作者:ONEPROBLEM    阅读人次:……    文章来源:本站原创    发布时间:2008/9/16    网友评论()条
 

原帖及讨论:http://bbs.bccn.net/thread-233329-1-1.html

用Win32asm写的"同时打开多个网页的实用小工具",请大家指正~~

中秋自己过没趣,去南宁书城蹲地翻书也没趣,只好写小程序打发时间了~~
谁叫自己还是个菜鸟呢,所以写的都是小程序~~
这是个功能单一简单的小工具,觉得自己写得很粗陋,希望大家批评指正~~修改多了,它就会完善起来了.
;=========================================
程序很简单,但代码也有近400行吧.所以,只帖出主程序代码出来了.其它的,大家可以在附件中下载.
声明:
1.希望高手指正,而不是耻笑;
2.字符串匹配部分的代码,要感谢我们汇编论坛的dizengrong朋友!
;==========================
这个程序,你可以在列表中任意添加或删除网址,然后,就可以同时打开多个网址,对于每天都要到很多个网站浏览东西的朋友,不必为一一打开网址而麻烦了.
;==================================
;===程序功能:可以同时打开多个网页==
;=======作者:ONEPROBLEM============
        .386
        .model flat,stdcall
        option casemap:none
;===================================
include        windows.inc
include        user32.inc
includelib    user32.lib
include        kernel32.inc
includelib    kernel32.lib
include        shell32.inc
includelib    shell32.lib

IDD_DIALOG    equ    1
ICO_MAIN    equ    1
IDC_ADD        equ    1000
IDC_DELETE    equ    1001
IDC_EDIT    equ    1002
IDC_LISTBOX    equ    1003

        .data?
hInstance    dd    ?
hWinMain    dd    ?
szBuffer    db    256 dup (?)
szBuffer1    db    256 dup (?)

        .const
szFileName    db    'openwebtools.bat',0
szCaption    db    '友情提示',0
szText        db    '请您首先在列表中添加网址!',0
;===================================================
        .code
include        _writeFile.asm
include        _initListBox.asm
include        _deleteAddress.asm

;=================对话框过程==========================
_procDlgMain    proc    uses ebx edi esi hWnd,wMsg,wParam,lParam
        
        mov    eax,wMsg
        .if    eax == WM_CLOSE
            invoke    EndDialog,hWnd,NULL
            
        .elseif    eax == WM_INITDIALOG
            push    hWnd
            pop    hWinMain
            invoke    LoadIcon,hInstance,ICO_MAIN
            invoke    SendMessage,hWnd,WM_SETICON,ICON_BIG,eax
            invoke    _initListBox,addr szFileName,hWinMain,IDC_LISTBOX
            
        .elseif    eax == WM_COMMAND
            mov    eax,wParam
            
            .if    ax == IDCANCEL
                invoke    EndDialog,hWnd,NULL
                
            .elseif    ax == IDOK
                invoke    ShellExecute,hWnd,0,addr szFileName,0,0,SW_SHOW
                .if    eax < 31
                    invoke    MessageBox,hWnd,addr szText,addr szCaption,MB_OK
                .else
                    invoke    EndDialog,hWnd,NULL
                .endif
                
            .elseif    ax == IDC_EDIT
                invoke    GetDlgItemText,hWnd,IDC_EDIT,addr szBuffer,sizeof szBuffer

            .elseif    ax == IDC_ADD            ;添加模块
                invoke    SendDlgItemMessage,hWnd,IDC_LISTBOX,LB_ADDSTRING,0,addr szBuffer
                invoke    _writeFile,addr szFileName,hWinMain,addr szBuffer
                
            .elseif    ax == IDC_LISTBOX
                shr    eax,16
                .if    ax == LBN_SELCHANGE
                    invoke    RtlZeroMemory,addr szBuffer1,sizeof szBuffer1
                    invoke    SendMessage,lParam,LB_GETCURSEL,0,0
                    lea    ecx,szBuffer1
                    invoke    SendMessage,lParam,LB_GETTEXT,eax,ecx
                .endif
            
            .elseif    ax == IDC_DELETE        ;删除模块
                invoke    _deleteAddress,addr szFileName,hWinMain,addr szBuffer1
                invoke    SendDlgItemMessage,hWnd,IDC_LISTBOX,LB_RESETCONTENT,0,0
                invoke    SendMessage,hWnd,WM_INITDIALOG,0,0
            .endif
        .else
            mov    eax,FALSE
            ret
        .endif
        mov    eax,TRUE
        ret
        
_procDlgMain    endp
;======================主程序==================================
start:
        invoke    GetModuleHandle,NULL
        mov    hInstance,eax
        invoke    DialogBoxParam,hInstance,IDD_DIALOG,NULL,offset _procDlgMain,NULL
        invoke    ExitProcess,NULL
        
        end    start
;==============================================================
 
 

 

 
文章录入:静夜思    责任编辑:静夜思 
  • 上一篇文章:

  • 下一篇文章: 没有了

  •  
    相关文章
    原创地带
    24小时热门帖子