用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
托盘区就是在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;interfaceuses Windows, SysUtils, Messages, ShellAPI, Classe
托盘实现,你只要在定时器中改图,就可以实现让它动了,就象qq一样。 下面是托盘技术 一、 实现步骤 1. 创建一个应用程序,在主窗体上增加一个TpopupMenu组件。并为该弹出菜单组件增加菜单项Exit,标题为“退出”。 2. 在Uses中添加ShellAPI,因为在系统状态栏中增加图标时需调用ShellAPI函数Shell_NotifyIconA。该函数需要2个参数,其中一个是TnotifyIconDataA结构,需在主窗体中增加TnotifyIconDataA类型全局变量ntida。 3. 定义消息mousemsg,并编写主窗体的mousemessage消息处理函数,此函数说明在图标上用鼠标左键单击时,会打开应用程序窗口;用鼠标右键单击时,会弹出一个菜单。 下面给出步骤2和3的实现代码: unit Unit1; interface
今日看到一个帖子问:如何在托盘图标实现象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
PRTINFO(nPrinterSetting [, cPrinterName])cPrinterName 指定要返回信息的打印机名。如果省略 cPrinterName, 返回默认打印机的信息
sys(3)
printstatus()
如何在程序里判断一个打印作业已经进入打印队列(也就是可以在打印管理程序里看到该作业的信息),或者说如何察看打印队列里已有的作业信息? 看下面的这个例程。还有测试代码。 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 :
第一种方法
1、创建一个文本框,给此文本框一个变量名txt;2、文本格式为:动态;3、选:多行输入4、在第一帧上增加脚本语言。(按F9)loadVariablesNum("b.txt",0); //b.txt是文件名,0是场景中的根目录然后打开poems.txt文件,在记事本里输入:txt= 注意:在加载之前对文本文件进行转换,另存为Unicode编码格式。
第二种方法 在主文件帧上输入防乱码的AS按钮实现引用外部文本文件的效果:第一步:主场第一帧AS:Sys
作为一名程序员,会经常为制作、设计程序图标费尽心思,当我们看到许多应用软件的图标非常漂亮的时候,是多么的羡慕!我们可不可以借鉴一下他们的图标?完全可以!我们利用 ExtractIcon API函数就能够轻松地从ICO文件或可执行文件以及DLL文件中提取图标。
下面的代码示范了一个完整的提取图标、存储图标的程序:unit UFormIconGrabber;interfaceuses 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
IOpenDoor = interface function Open: booleanend;
THome = class(IOpenDoor) function Openend;
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:Tstringsbegin a:=Tstringlist.createend;
* * @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);
// 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...6union 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;}
//模板函
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