为什么会这样呢,最开始时是好使的
后来我加了一个POp菜单,又加了一个TCoolTrayIcon,就不行了
把菜单和TCoolTrayIcon删除也不行
后来我加了一个POp菜单,又加了一个TCoolTrayIcon,就不行了
把菜单和TCoolTrayIcon删除也不行
解决方案 »
- 小弟初学delphi,应书中要求写下一计算器,请童鞋,老是,指教。
- 怎样使用ide从已有窗体继承创建出新窗体?
- 一百元求助调试delphi程序!!!!!
- 报错: "0.0' is not a valid timestamp'如何解决?
- 怎么把两个文件读入内存,在把两个文件一行行的比较,得出另一个文件????我一点也不懂5555
- DELPHI窗体问题
- 如何读取Window2000中的所有服务名,在线等待。
- http://community.csdn.net/expert/deeptree/RoomForum.asp?roomid=5306
- G Framework 一个开源的震撼的model driven web app framework
- midas的环境配置问题?
- 有没有人做过LASIK的治疗近视的手术?
- 请教如何在动态生成的控件里写事件?
http://www.csdn.net/Expert/TopicView1.asp?id=811701
综合到一起
procedure TRunMyApp.ServiceExecute(Sender: TService);
var Timer,i:Integer;
lppe: TProcessEntry32;
found,runing : boolean;
Hand : THandle;
aList:TStringList;
execnames:String;
begin
Timer:=3000;
execnames:='NOTEPAD.EXE';
while true do begin
aList:=TStringList.Create;
aList.Clear;
Hand := CreateToolhelp32Snapshot(TH32CS_SNAPALL,0);
found := Process32First(Hand,lppe);
while found do begin
aList.Add(StrPas(lppe.szExeFile));
found := Process32Next(Hand,lppe);
end;
runing:=false;
for i:=0 to aList.Count-1 do begin
if UpperCase(aList.Strings[i])=execnames then
runing:=true;
end;
if not runing then
winexec('c:\WINNT\NOTEPAD.exe',SW_SHOWNORMAL);
sleep(Timer);
end;
end;
谁能告诉我怎么回事!!!
在服务里NOTEPAD.exe运行了,可是是在后台,只能看到进程,看不到窗口
使用P S A P I获取进程信息,首先要调用E n u m P r o c e s s e s ( )函数,其声明如下:
FUNCTION ENUMPROCESS(LPIDPROCESS:LPDWORD;CB:DWORD;VAR CBNEEDED:DWORD):BOOL;
• lpidProcess是一个指向D W O R D数组的指针,由函数用进程I D填充。
• cb包含由l p i d P r o c e s s指定的数组的元素数。
• c b N e e d e d返回拷贝到l p i d P r o c e s s数组的实际字节数。用此值除以S i z e O f ( D W O R D )将得到拷贝到
数组的元素数,即正在运行的进程数。
调用这个函数后, l p i d P r o c e s s指定的数组将包含一些进程的I D。进程I D在自身进程中无用,但可
以传递给OpenProcess() API函数以获取进程的句柄。
这是书上的说明,源代码太长就不贴不。
Process status API
Performance Data Help
我在大富翁问了,那边说服务就是这样的,能不能有什么折中的办法
EnumProcesses我没找到详细点的说明最好麻烦你把源程序贴给我