托盘的方式,收到消息后,把窗口show出来
解决方案 »
- 如何捕获外部程序LISTVIEW鼠标单击事件,获取该LISTVIEW当前选中行的某列的值
- 关于文件编码问题(ANSI,UTF8,Unicode等)
- 在拖拉Treeview里的信息时,如何让Treeview的滚动条跟着鼠标拖动的方向一起滚动?
- 我想把一个读串口的程序在DLL中实现,怎么做。请教高手
- 二种格式的写法为什么会产生不同的结果?
- 程序监控的问题
- 关于dbgrid的小问题
- (ado连库adoquery查询)label控件可以显示数据库中的字段内容吗? 怎样实现?怎样只显示一条记录内容(不用grid件,自己做显示界面)?
- 急!急!在WIN2000中是否有似WIN98中MSCONFIGT的程序?
- 关于系统挂钩?
- delphi 如何获取显示 windows 鼠标选中 文件的绝对路径?
- 求救:怎么样用Delphi 实现Unsharp mask 锐化效果。
procedure Setup_Tel(Data:DWORD;B:integer);stdcall; external 'Sandu.dll';设定回调函数:(C++) void WINAPI Setup_Tel(void (__stdcall * fPost2User)(unsigned int),int getall=FALSE)
功能:设定回调函数
参数:1 fPost2User 回调函数地址;2 getall=0(默认)
返回值:1 成功;0 失败。
VB函数原型:Declare Sub Setup_Tel Lib "SANDU.DLL" (ByVal fPost2User As Long, ByVal getall As Long)
function Begin_Tel(Port:integer;powerchar:char):integer;stdcall ; external 'Sandu.dll';1.开启“来电通”函数 :(C++) int WINAPI Begin_Tel(int port,Char app)功能:开启“来电通”
参数:1 port 端口号,ap 保留
返回值:1 成功;0 失败。
VB函数原型:Declare Function Begin_Tel Lib "SANDU.DLL" (ByVal port As Long, ByVal ap As Long) As Long
Delphi函数参考:function Begin_Tel(DIDN:integer;powerchar:Char):integer;stdcall ; far external 'Sandu.dll';以下是实现代码:procedure Test(aPort: integer);stdcall;var
lpData:PNotifyIconData;
// TelNum: pchar;
begin
if aPort = 0 then
begin
mainform.IniDevList(nil);
end
else
begin
if IsIconic(mainform.Handle)=True then
begin
lpData := new(PNotifyIconDataA);
lpData.cbSize := 88;//SizeOf(PNotifyIconDataA);
lpData.Wnd := Mainform.Handle;
lpData.hIcon := Mainform.Icon.Handle;
lpData.uCallbackMessage := WM_BARICON;
lpData.uID :=0;
lpData.szTip := 'Samples';
lpData.uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
Shell_NotifyIcon(NIM_DELETE,lpData);
dispose(lpData);
Mainform.Visible := True;
end; end;
end;procedure Tmainform.IniDevList(Sender: TObject);
begin
if Begin_Tel(1, #1) = 1 then
ldtzt:=1
else
ldtzt:=0;procedure Tmainform.FormCreate(Sender: TObject);
begin
IniDevList(nil);
Setup_Tel(DWORD(@Test), 1);
end;
begin
Timer1.Enabled := false;
Visible := True;
Application.ShowMainForm := Visible; //自动弹出
SetForegroundWindow(Application.Handle);
ShowWindow(Application.Handle, SW_SHOWNORMAL);
GetUserMsg;//查询相应的用户信息,
end;
type
TPost2User = procedure (aPort: Integer); stdcall;procedure Setup_Tel(fPost2User: TPost2User; B: Integer); stdcall; external 'Sandu.dll';
function Begin_Tel(DIDN: Integer; powerchar: Char): Integer; stdcall; external 'Sandu.dll';procedure Test(aPort: Integer);stdcall;
begin
MainForm.Memo1.Lines.Add('Test');
end;procedure TMainForm.IniDevList(Sender: TObject);
begin
if Begin_Tel(1, #1) = 1 then
ldtzt:=1
else
ldtzt:=0;
end;procedure TMainForm.FormCreate(Sender: TObject);
begin
IniDevList(nil);
Setup_Tel(Test, 1);
end;
那还是仔细看一下那个"来电通"的SDK文档和Demo吧。