静态博客入口:http://blog.5d.cn/user8/wwle/
2010/11/02 | 用程序修改NTFS权限
类别(语言类学习笔记) | 评论(0) | 阅读(224) | 发表于 15:59
Windows NT/2K/XP版本的操作系统都支持NTFS格式的文件系统,这是一个有安全性质的文件系统,你可以通过Windows的资源管理器来设置对每个目录和文件的用户访问权限。这里我就不对NTFS的安全性进行讲述了,我默认你对NTFS的文件目录的安全设置有了一定的了解。在这里,我将向你介绍使用Windows的API函数来操纵NTFS的文件权限。       一、       理论和术语     在Windows NT/2K?XP下的对象,不一定是文件系统,还有其它的一些对象,如:进程、命名管道、打印机、网络共享、或是注册表等等,都可以设置用户访问权限。在Windows系统中,其是用一个安全描述符(Security Descriptors)的结构来保……
2009/05/20 | Delphi制作托盘分析
类别(语言类学习笔记) | 评论(0) | 阅读(262) | 发表于 17:50
2009-05-03 14:23
系统状态栏图标是指在Windows桌面系统下边的任务栏右边区域内显示的小图标,通常包括时间和输入法,另外,还会包括一些应用程序,如金山词霸或其它一些杀毒软件等的小图标。通常用鼠标右键点击这些小图标时会弹出菜单,通过选择这些菜单可以灵活地实现程序的各项功能。
下面本文以一个具体的例子,详细介绍一下利用Delphi实现系统状态栏图标的步骤和方法。
首先,介绍一下本实例要实现的功能:程序开始运行时会在系统状态栏生成一个小图标,同时会打开应用程序窗口,并在任务栏上显示相应的程序窗口;当用户关闭应用程序窗口时,该窗口和任务栏上相应的应用程序窗口都会消失,但应用程序并没有退出;当用户用鼠标左健单击该图标时,会再次打开应用程序窗口,同时在任务栏上显示应用程序窗口;当用户用鼠标右键单击系统状态栏中应用程序的小图标时,会弹出菜单,选择菜单项“退出”可以完全退出应用程序。
一、 实现步骤
1. 创建一个应用程序,在主窗体上增加一个TpopupMenu组件。并为该弹出菜单组件增加菜单项Exit,标题为“退出”。
2. 在Uses中添加ShellAPI,因为在系统状态栏中增加图标时需调用ShellAPI函数Shell_NotifyIconA。该函数需要2个参数,其中一个是TnotifyIconDataA结构,需在主窗体中增加TnotifyIconDataA类型全局变量ntida。
3. 定义消息
2009/05/20 | 用Delphi瞬间消除无用托盘图标
类别(语言类学习笔记) | 评论(0) | 阅读(221) | 发表于 17:31
2008-10-05 11:52

用TerminateProcess把一个进程结束后有个问题,就是如果该程序在托盘有图标的话,这个图标并不会在它被结束时也消失。当然你用鼠标从上面移过可以解决这个问题,但本人在用自己的刷新辅助软件“疯狂刷新”的时候,每5分钟结束一次,一天下来如果不动电脑,就会在托盘区生成NNN个死图标,即使你拚命去点,也要点半天才能全部消除。有没有办法一下子搞定它呢?答案是肯定的,在网上搜了很久……

用Delphi编写几行代码搞定。

添加自定义类型,用作判断系统类型,
type
    TOSVersion = (osUnknown, os95, os98, osME, osNT3, osNT4, os2K, osXP, os2K3);

添加自定义函数过程

function GetOS: TOSVersion; //获得系统类型,用来取得托盘句柄
var
    OS: TOSVersionInfo;
begin
    ZeroMemory(@OS, SizeO

2009/05/20 | Delphi托盘类
类别(语言类学习笔记) | 评论(0) | 阅读(816) | 发表于 17:16
Delphi托盘类
2009/05/20 | 托盘 定时器中改图
类别(语言类学习笔记) | 评论(0) | 阅读(409) | 发表于 17:00

托盘实现,你只要在定时器中改图,就可以实现让它动了,就象qq一样。  
  下面是托盘技术  
  一、     实现步骤          
  1.     创建一个应用程序,在主窗体上增加一个TpopupMenu组件。并为该弹出菜单组件增加菜单项Exit,标题为“退出”。          
  2.     在Uses中添加ShellAPI,因为在系统状态栏中增加图标时需调用ShellAPI函数Shell_NotifyIconA。该函数需要2个参数,其中一个是TnotifyIconDataA结构,需在主窗体中增加TnotifyIconDataA类型全局变量ntida。          
  3.     定义消息mousemsg,并编写主窗体的mousemessage消息处理函数,此函数说明在图标上用鼠标左键单击时,会打开应用程序窗口;用鼠标右键单击时,会弹出一个菜单。          
  下面给出步骤2和3的实现代码:          
  unit     Unit1;          
  interface    

2009/05/20 | 如何在托盘图标实现象window开始菜单中菜单左侧的图片效果
类别(语言类学习笔记) | 评论(0) | 阅读(458) | 发表于 16:52

  今日看到一个帖子问:如何在托盘图标实现象window开始菜单中菜单左侧的图片效果。于是自己动手做了一个。
  我的思路是不用菜单,用窗体来实现(我想不仅是delphi其他编程语言应该一样可以)。
  例子中我用到了一个第三方控件:Trayicon用来显示动态托盘图标(下载地址:http://2ccc.com/article.asp?articleid=1985)。请看我如下步骤:
  1.新建立一个project,同时建立两个窗体Form1和iconform。其中第二个用来显示托盘图标菜单。
  2.各放置一个Trayicon、imagelist和Applicationevents控件于Form1上。
  3.加入合适的图标到imagelist,然后在trayicon的属性编辑器中的icon项关联imagelist。(如果你加入了多个图标,你可以把trayicon的animate设置为true,可以看见动态图标,trayicon控件包里有DEMO)
  4.将trayicon的popupmenuon属性设置为imnone;visible设置为true。
  5.在trayicon的mouseup事件中写:
var
  APoint: TPoint;
begin
  GetCursorPos(APoint);
  if (Screen.ActiveForm <> nil) and (Screen.ActiveForm.Handle <> 0) then

2009/01/12 | 打印机状态
类别(语言类学习笔记) | 评论(0) | 阅读(39) | 发表于 23:10

PRTINFO(nPrinterSetting [, cPrinterName])
cPrinterName
指定要返回信息的打印机名。如果省略 cPrinterName, 返回默认打印机的信息

sys(3)

printstatus()

2009/01/12 | 一些关于打印机的代码
类别(语言类学习笔记) | 评论(0) | 阅读(309) | 发表于 23:08

如何在程序里判断一个打印作业已经进入打印队列(也就是可以在打印管理程序里看到该作业的信息),或者说如何察看打印队列里已有的作业信息?  
   
  看下面的这个例程。还有测试代码。  
   
  uses   WinSpool;    
  type   JOB_INFO_1_ARRAY   =   Array   of   JOB_INFO_1;    
  Function   GetSpoolerJobs(sPrinterName   :   String)   :   JOB_INFO_1_ARRAY;    
  var    
  i   :   Integer;    
  hPrinter   :   THandle;    
  bResult   :   Boolean;    
  cbBuf   :   DWORD;    
  pcbNeeded   :   DWORD;    
  pcReturned   :  

2008/12/02 | 最常见的20种VC++编译错误信息
类别(语言类学习笔记) | 评论(0) | 阅读(26) | 发表于 21:44
 压缩包下载
2008/11/28 | Flash 加载外部文本文件的三种方法 B
类别(语言类学习笔记) | 评论(0) | 阅读(65) | 发表于 15:24
Flash 加载外部文本文件的三种方法
2007-09-22 23:39

托盘区就是在windows的状态栏下方显示时钟、输入法状态的地方,

要把你的程序显示在托盘区:
下面是一个托盘类,只要把下面粘贴到文本文件中,改成TrayIcon.pas,使用时uses TrayIcon就可以了。

先声明一个全局变量:
var tray:TTrayNotifyIcon;

然后在窗体的OnCreate事件中:
tray:=TTrayNotifyIcon.Create(self);//将窗体创建为托盘
tray.Icon:=application.Icon;//定义托盘的显示图标
tray.IconVisible:=true;//托盘可见
tray.PopupMenu:=popmenu;//给托盘定义一个右击时的弹出菜单
tray.OnDblClick:=trayDblClick;//给托盘定义一个双击事件(当然要自己写了,不过多数情况只有一行,就是Form1.show);


unit TrayIcon;

interface

uses Windows, SysUtils, Messages, ShellAPI, Classe

第一种方法

1、创建一个文本框,给此文本框一个变量名txt;
2、文本格式为:动态;
3、选:多行输入
4、在第一帧上增加脚本语言。(按F9)

loadVariablesNum("b.txt",0);           //b.txt是文件名,0是场景中的根目录

然后打开poems.txt文件,在记事本里输入:txt= 

注意:在加载之前对文本文件进行转换,另存为Unicode编码格式。



第二种方法
 在主文件帧上输入防乱码的AS按钮实现引用外部文本文件的效果:

第一步:主场第一帧AS:
Sys

2008/09/17 | 提取图标代码[YY]
类别(语言类学习笔记) | 评论(0) | 阅读(53) | 发表于 14:37

作为一名程序员,会经常为制作、设计程序图标费尽心思,当我们看到许多应用软件的图标非常漂亮的时候,是多么的羡慕!我们可不可以借鉴一下他们的图标?完全可以!我们利用 ExtractIcon API函数就能够轻松地从ICO文件或可执行文件以及DLL文件中提取图标。


     下面的代码示范了一个完整的提取图标、存储图标的程序:
unit UFormIconGrabber;
interface
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls, ShellAPI, ExtDlgs;
type
  TForm1 = class(TForm)
    Image1: TImage;
    btNextIcon: TButton;
    Label1: TLabel;
    EditFileName: TEdit;
    btBowserFile: TButton;
    OpenDialog1: TOpenDialog;
btSaveIco: TButton;
    SavePict

2008/09/16 | 先记下一个接口与继承
类别(语言类学习笔记) | 评论(0) | 阅读(14) | 发表于 22:44

IOpenDoor = interface
  function Open: boolean
end;

THome = class(IOpenDoor)
  function Open
end;

TCar = class(IOpenDoor)
  function Open;
end;

var
  AOpen: IOpenDoor;
begin
  if xxx then AOpen := THome.Create
  else AOpen := TCar.Create;
  AOpen.Open();
end;

这个很像:

var
  a:Tstrings
begin
  a:=Tstringlist.create
end;

2008/09/16 | java applet Example
类别(语言类学习笔记) | 评论(0) | 阅读(44) | 发表于 02:56

 *
 * @author
 * @version 1.00 2007/9/22
 */
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import java.applet.*;

 
public class A1 extends Applet implements ActionListener{
    Label xm;
    TextField sxm,ssxm;
    Button tj;
   
    public void init(){
     xm= new Label("");
     sxm= new TextField(6);
     ssxm= new TextField(20);
     tj =new Button("Enter");
     add(xm);
     

2008/09/16 | C++ console program
类别(语言类学习笔记) | 评论(1) | 阅读(343) | 发表于 02:51

// test1.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "iostream.h"
//c++的基本类型你要记住  int bit long char strings float double
enum WeekDay {Sun,Mon,Th,We,Tus,Fri,Sat}; // 0...6
union Stuinfo { int Age;float Score; };
struct StuIn { char xm[20];
               int age;
};

//自定义数据类型
typedef int INT;
typedef char Ch[80]; // char[80]

//内联函数
inline int rmax(int a,int b)
{
  if (a>b)
 return a;
  else
    return b;
}

//模板函

2008/05/26 | VFP 编写 DLL
类别(语言类学习笔记) | 评论(0) | 阅读(246) | 发表于 13:47

http://community.csdn.net/expert/topicview1.asp?id=4090638

以下为一个例子:

首先建一个工程,如MyDll,
然后建一个主程序,如MyDllMain,
然后在这个主程序里写如下代码:

**********取得表中记录总数**********

DEFINE CLASS MyData AS SESSION OLEPUBLIC 
&&如果是VFP6-SP5以下,把SESSION改为CUSTOM
PROCEDURE  GetDataCount
LPARAMETERS tcTable
SELECT 0
SELECT COUNT(*) FROM (tcTable) INTO ARRAY curData
USE IN (tcTable)
RETURN ALLTRIM(STR(curdata))
ENDPROC 
ENDDEFINE

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


注:
1.sessio