博文

解开被锁定的.reg与.inf文件(2006-05-22 13:49:00)

摘要:解开被锁定的.reg与.inf文件   一、如果注册表编辑器未被锁定,可进入注册表编辑器,手动修改如下键值  找到[HKEY_LOCAL_MACHINE\Softe\CLASSES\.reg],将右边窗口中的“默认”字符串的值修改为“REGFILE”;   找到[HKEY_LOCAL_MACHINE\Software\CLASSES\.inf],将右边窗口中的“默认”字符串的值修改为“INFFILE”;   二、如果注册表编辑器已被锁定  1.用VBS文件解锁:   打开记事本录入以下内容:   Dim A   Set A=CreateObject("WScript.Shell")   A.RegWrite"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableRegistrytools","00000000","REG_DWORD"   A.RegWrite"HKEY_LOCAL_MACHINE\Software\CLASSES\.reg\","regfile"   A.RegWrite"HKEY_LOCAL_MACHINE\Software\CLASSES\.inf\","inffile"   输入完成后另存为UNLOCK.VBS,双击执行即可。   2.用JS文件解锁:   打开记事本录入以下内容:   VAR:A=WScript.CreateObject("WScript.Shell")   A.RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableRegistrytools","00000000","REG_DWORD");   A.RegWrite ("HKEY_LOCAL_MACHINE\Software\CLASSES\.reg\","regfile");   A.RegWrite ("HKEY_LOCAL_MACHINE\Software\CLASSES\.inf\","inffile");   输入完成后另存为UNLOCK.jS,双击执行即可。 (辽宁 乔珊)   1.在......

阅读全文(2786) | 评论:0

好东东 分享一下:使用起泡法按照时间排列文件(2006-05-20 17:54:00)

摘要:Function  qipaosorting(path)  'path  =  "D:\spreadtrum  magazine\"     Set  FSO  =  Server.CreateObject("Scripting.FileSystemObject")    'FSO对象     Set  FD  =  FSO.GetFolder(path)    '获得文件夹     Set  F  =  FD.Files      '获得文件夹内文件     For  Each  OneFile  in  F    '列出所有的htm文件           filename  =  OneFile.Name         If  LCase(right(filename,3))  =  "htm"  Then    '只对htm文件处理           filename_arr0  =  filename_arr0  &  Left(filename,Len(filename))  &  "  ¦"    '获得主文件名,保存在变量中,0  ¦0  ¦形式                   filename_arr1  =  filename_......

阅读全文(3422) | 评论:0

如何判断本机是否可以打开某一个网址?(2006-05-20 17:48:00)

摘要:我的意思就是说,当ie打不开如“http://csdn.net/expert”时,跳转到打开“www.google.com”这个网址        谢了,在线等  ---------------------------------------------------------------   可能会慢一些   Option  Explicit  Private  Declare  Function  ShellExecute  Lib  "shell32.dll"  Alias  "ShellExecuteA"  (ByVal  hWnd  As  Long,  ByVal  lpOperation  As  String,  ByVal  lpFile  As  String,  ByVal  lpParameters  As  String,  ByVal  lpDirectory  As  String,  ByVal  nShowCmd  As  Long)  As  Long   Private  Sub  Command1_Click()         Command1.Enabled  =  False         txStatus.Text  =  ""          If  Len(Inet1.OpenURL("http://www.ourfly.com"))  <>  0  Then   ......

阅读全文(3599) | 评论:0

Shell_NotifyIcon->作一个放在windows托盘的程序(2006-05-20 17:46:00)

摘要:'相信您的机器上一定装有"金山词霸",试着启动它您发现了什么?启动画面过后它"不见了"。把鼠标移到  桌面的右下角,原来它以图标的形式"藏在"  Windows的托盘中。用鼠标右击它还会弹出一个菜单功能项供您选择。现在您一定想把自己的程序也放到托盘,这样您的  程序多具有专业水准!  '下面是此功能的实现步骤:  '1.这里我们调用的API函数是:  '"Shell_NotifyIcon",在您的模块中添加如下的函  '数声明和常量声明:  '以下常量告诉系统在托盘中您的图标上发生了什么  操作  '常量声明  Public  Const  WM_MOUSEMOVE  =  &H200  '在图标上移动鼠标  Public  Const  WM_LBUTTONDOWN  =  &H201  '鼠标左键按下  Public  Const  WM_LBUTTONUP  =  &H202  '鼠标左键释放  Public  Const  WM_LBUTTONDBLCLK  =  &H203  '双击鼠标左键  Public  Const  WM_RBUTTONDOWN  =  &H204  '鼠标右键按下  Public  Const  WM_RBUTTONUP  =  &H205  '鼠标右键释放  Public  Const  WM_RBUTTONDBLCLK  =  &H206  '双击鼠标右键  Public  Const  WM_SETHOTKEY  =  &H32  '响应您定义的热键  'API函数声明  ......

阅读全文(5002) | 评论:0

如何在vb中调用autocad r14 打开一个dwg 文件(2006-05-20 17:45:00)

摘要:要求与Dwg文件已经建立关联:         Private   Declare   Function   ShellExecute   _             Lib   "shell32.dll"   Alias   "ShellExecuteA"   _             (   _             ByVal   hwnd   As   Long,   _             ByVal   lpOperation   As   String,   _             ByVal   lpFile   As   String,   _             ByVal   lpParameters   As   String,   _             ByVal   lpDirectory   As   String,   _             ByVal   nShowCmd   As   Long   _             )   As   Long         Private   Sub   cmdOpen_Click() ......

阅读全文(5121) | 评论:0

注册表的API编程(2006-05-14 13:30:00)

摘要: 注册表的API编程关于注册表的知识相信您通过前面专题的介绍已经有了较深入的了解。系统有六个预定义好的关键字,这六个关键字是用户或系统访问注册表的入口点。我们常用到的只有前四个关键字。而在编程时我们一般用到只是HKEY_CURRENT_USER和HKEY_LOCAL_MACHINE这两个关键字,因为与应用程序相关的数据存在于这两个关键字下。许多商品化的软件或专业化的软件在您的机器上首次安装的时候都会通过改写注册表来完成软件的正确安装运行,梦想成为编程高手的你当然需要掌握读写注册表这一技术。利用好注册表会为您的应用程序增色不少。虽然VB本身提供了四个关于注册表的函数GetSetting,SaveSetting、GetAllSettings、DeleteSetting(这四个函数的使用比较简单读者可以参考VB的联机帮助),但是这四个函数只能在“HKEY_CURRENT_USER\Software\VB and VBA ProgramSettings”下读取、删除、修改键值。对于一般的应用程序利用它们可以达到您的目的,对于特殊的要求利用它们就显的无能为力了。下面举一个例子说明它们的局限性。熟悉DOS操作系统的读者都知道,可以编写一个“Autoexec.bat”的批处理文件来实现某一个应用程序在系统启动的时候自动运行,在Win95中我们可以把应用程序的快捷方式放到系统的启动组中来达到同样的效果。但是,假如我需要在我的应用程序首次安装以后就能自动达到这种效果,那该如何呢?其实,注册表中提供了三个这样的键:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunHKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceHKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices这三个键字的区别是:Run:此键字下的应用程序在系统启动的时候会自动运行;RunOnce:此键字下的应用程序在系统下一次启动的时候会自动运行,以后不再运行;RunServices:功能和“Run”一样,只是应用程序被启动的时候不同而已。现在您一定知道该如何利用注册表......

阅读全文(3973) | 评论:0

Windows各种路径的获得(2006-05-14 13:29:00)

摘要:在WINDOWS 下编程经常需要在程序中获得各种路径,比如当前的工作路径,系统的路径,等各种路径。 在WINDOWS 的API 中提供了齐全的API 函数供我们调用。 ---- 先来看一下这几个API 函数的说明: ---- (1). DWORD GetCurrentDirectory( DWORD nBufferLength, //接收目录的字符串的长度LPTSTR lpBuffer //接收目录的字符串的地址);---- 通过调用这个函数将获得当前的目录,如果调用失败此函数将返回零。 调用这个函数时应将nBufferLength 参数设足够大,接收目录的字符串当然也要有这么长。 详细用法请看例子。 另外用SetCurrentDirectory()函数可以设置当前目录。 ---- (2). UINT GetSystemDirectory( LPTSTR lpBuffer, //接收目录的字符串的地址UINT uSize // 接收目录的字符串的长度);---- 通过调用这个函数可获得系统的目录,如果调用失败此函数将返回零。 ---- 3. UINT GetWindowsDirectory( LPTSTR lpBuffer, //接收目录的字符串的地址UINT uSize // 接收目录的字符串的长度);---- 通过调用这个函数可获得WINDOWS 目录,如果调用失败将返回零。 关于这个函数和第二个函数的区别,通过下面的例子你一定会非常清楚。 ---- 下面用VB 来实现。 首先当然要先把API 的声明加到代码中, 开始一个新项目,在窗体(Form1)上放上三个按钮(Command1,Command2,Command3)。 这个例子的功能是单击按钮用MSGBOX 显示得到的路径。 ---- 笔者发现不能简单地复制VB5 的API 文本查看器中关于上面几个API 的声明,要做一定的修改,要在每个函数名后加一个"A",所有代码如下。 Private Declare Function GetCurrentDirectoryALib "kernel32" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As LongPrivate Declare Function GetWindowsDirectoryALi......

阅读全文(4526) | 评论:0

调用Windows API的注意事项(2006-05-14 13:27:00)

摘要:Visual Basic (VB)作为一种高效编程环境,它封装了部分Windows API函数,但也牺牲了一些API的功能。调用API时稍有不慎就可能导致API编程错误,出现难于捕获或间歇性错误,甚至出现程序崩溃。要减少API编程错误,提高VB调用API时的安全性,应重点注意下列八个问题: (1)指定“Option Explicit" 编程前最好将VB编程环境中的“Require Variable Declaration(要求变量申明)项选中。如果该项未被指定,任何简单的录入错误都可能会产生一个“Variant”变量,在调用API时,VB对该变量进行强制转换以避免冲突,这样一来,VB就会为字符串、长整数、整数、浮点数等各种类型传递NULL值,导致程序无法正常运行。 (2)注意VB整数和Win32整数的区别在VB环境下,涉及到的所有integer(整型数),都是16位,而一旦涉及C/C++Win32文档时,则是32位,阅读与Windows API函数或与32位动态链接库有关的资料或应用程序时,尤其要注意分析理解环境背景,以利于分清数据类型和数据结构,正确地声明API函数。 (3)减少和避免使用As Any 虽然用As Any的方法声明库,可使Windows API函数能接受多种类型的参数,但更严重的是,即使是一个很小的错误,比如遗漏类型标识符或错误地使用了ByVal关键字,都可能导致系统崩溃或很难发现的其他数据错误。 (4)注意检查参数类型API错误中,除了因遗漏ByVal关键字导致的错误外,大约有50%是因为声明中有不正确的参数类型。在Win32环境下,无论是8位、16位,还是32位数值变量都是以32位传递,如果同时使用,则很难发现其中错误。如果声明的参数类型不同,被VB视为Variant传递给API函数,会出现“错误的DLL调用规范”的消息。 (5)勿忘ByVal,确保函数声明的完整性ByVal是“按值”调用,参数传递时,不将指向DLL的指针传递给参数变量本身,而是将传递参数值的一份拷贝传递给DLL。比如传递字符串参数时,VB与DLL之间的接口支持两种类型的字符串,如未使用ByVal关键字,VB将指向DLL的函数指针传递给一个OLE2.0字符串(即BSTR数据类型),而Windows API函数往往不支持这种数据类型,导致错误。而使用ByVal关键字后VB将字符串......

阅读全文(3001) | 评论:0

男人最碰不得的十大危险女人(组图)(2006-05-07 13:15:00)

摘要: 俗语道:君子有所为,有所不为。在对待爱情这个问题上,男人也应如此,有些女人是不能碰的,一旦中招必将后悔莫及。男同胞们睁大眼睛,好好看看吧! 1、把男人当玩物的女人 她的爱情字典里没有“惟一”这两个字,她懂得利用女人的天赋来让男人心悦诚服,从不同的男人身上获取不同的需要,同时却巧妙地让每个人都以为自己才是她的最爱。 2、拜金主义的女人 她不会看上穷光蛋,因为她的爱情首先建立在物质的满足上,她知道花男人的钱比自己辛苦赚钱容易,这是她选定和男人交往的条件。和她交往的男人,总有金山银山被挖光的一天,那时只有落得人财两空的局面。 3、歇斯底里的女人 她的专长是一哭二闹三上吊,只要你稍稍辜负她,她就会以死做威胁。当发现一个女人充满神经质,动不动就有撒泼之势,你就要随时提防她闹出失控局面,同时也意味着你不得安宁的日子从此开始。 4、翻脸不认人的女人 不管好的时候有多么好,一旦反目,她就完全变成另一个人,毫不留情地公开你们之间所有的秘密,甚至不惜玉石俱焚。碰到这样的女人,你要有心理准备,分手后她的报复心常常会炸得你粉身碎骨。 5、女权主义的女人 在女权主义至上的女人眼里,男人根本不是东西,她开口闭口都是批判男人的种种不是,别寄望她百依百顺,只有你做牛做马才有可能取悦她。除非你有呼之即来挥之即去的“优点”,否则还是赶快逃之夭夭吧。 6、随时准备打翻醋坛子的女人 有一种女人的醋劲之大、威力之猛,是一般男人所难以承受的。因为有她在身边,你走在路上眼睛就别想往两边看,和任何女性交往都必须经过她同意,反之,她的醋坛子会活活淹死你。 7、弱不禁风的女人 她是林黛玉的化身,听不得粗话,做不得重活,连出门、回家都要你接送。简单说,她跟着你就是要你照顾她,从心理到身体。除非你有被依赖癖,不然要像养小孩一样养她。 8、水性杨花的女人 移情别恋不是她的错,因为她生来太易动情。她的最大特点是不放弃任何一个恋爱的机会,所有追求她的男士在她看来都别有魅力。面对这样的女人,你只能有心理准备,她爱上你是真的,她爱上别人也是真的。 9、糊涂邋遢的女人 你和她在一起永远有收拾不完的残局,她忘东忘西的记性需要你在一旁随时补救。一个糊涂......

阅读全文(1662) | 评论:0

AutoCAD结合MATLAB实现公式曲线、曲面的精确绘制(2006-05-04 12:34:00)

摘要: |  在进行产品设计时,经常会涉及到公式曲线、曲面的绘制,而一般的设计人员使用的方法比较复杂,不利于掌握和使用。本文介绍了一种结合MATLAB和Excel在AutoCAD中精确绘制各种公式曲线、曲面的技巧,而通过这种方法绘制的曲线、曲面不是插图,而是实际绘出的AutoCAD图元。 一、引言     用AutoCAD绘制平面公式曲线(如渐开线、心形线)、空间公式曲线(如螺旋线)以及公式曲面(如马鞍形曲面)是比较困难的,一般情况下,需要用AutoCAD开发程序编程,但多数程序比较复杂,尤其是公式曲面的绘制程序,需要多层嵌套循环,复杂且运行效率低。     快速且精确地绘制各种公式曲线、曲面恰恰是MATLAB的长项,但是MATLAB绘制的图形却不能直接用于机械零件设计。其中非常关键的一点,就是MATLAB绘制的曲线、曲面分别是由有限个点连接而成的折线和空间网格构成的,而在AutoCAD中绘制的曲线、曲面也是如此。因此,只需要把在MATLAB中绘制的公式曲线、曲面上所有的点坐标数据都提取出来,若能让AutoCAD正确识别,那么我们就可以在AutoCAD中精确地绘制这些曲线、曲面了。     本文介绍了一种快速、精确地绘制各种公式曲线、曲面的方法,即在AutoCAD中通过调用经过Excel处理的MATLAB数据实现。 二、AutoCAD和MATLAB的特点     MATLAB是非常优秀的科学计算、信号处理以及图形显示软件,它有自身的语言,与其他高级语言相比,MATLAB提供了一个人机交互的数学环境,并以矩阵作为基本的数据结构,可大大节省编程时间。另外,MATLAB不仅语法规则简单,容易掌握,调试方便,还可以存储中间结果,这使得MATLAB既可以快捷、精确地绘制各种公式曲线、曲面,又可以很方便地提取中间数据。     在工业设计领域,AutoCAD不仅被广泛应用于平面绘图,也可以用于三维建模,但在曲线、曲面造型方面不是很理想。它是开放型的人机交互系统,有多种语言接口,与外界的数据交换很灵活,这些特点使得它与MATLAB的结合成为可能。 三、结合MATLAB在AutoCAD......

阅读全文(4260) | 评论:0