who-heaven下载:有谁知道用vb做一个小软件,怎样让它启动过后就不能再打开了?

来源:百度文库 编辑:神马品牌网 时间:2024/04/28 18:32:02

含苞 的方法只适应于启动程序唯一的情况,如果将程序拷贝一份再运行就不能避免了,可以用查找窗口的方法,发现本程序的窗口就结束
比如我用的是mdiform
Hnd = FindWindows("ThunderRT6MDIForm", "MyTestFrom")
if hnd<>0 then end
注意:一定要用Main函数启动,在form加载之前判断

如果你想运行一次后就不能再运行了,也就是删除程序
以下是关于程序在运行的情况下删除本程序的代码:
不是VB,但可以参考!
int main(int argc,char*argv[])
{
HMODULE module=GetModuleHandle(0);
CHAR buf[MAX_PATH];
GetModuleFileName(module ,buf,sizeof buf);
CloseHandle(HANDLE(4));
_asm{
lea eax,buf
push 0
push 0
push eax
push ExitProcess
push module
push DeleteFile
push UnmapViewOfFile
ret
}
return 0;
}

生成一个小程序监视主进程
一旦主进程关闭就删除主程序文件
或者在某个隐秘的注册表项或者文件夹内做个小标记
但是如果有人有意要破解
你就没有办法了
连windows都给人破了呢

你是说控制程序只运行一次吗?
在Form初始化事件里面加入如下代码就可以了。
If App.PrevInstance Then
End
End If

在数据库做个字段
布尔行 运行的时候将该字段变为false
程序运行时判断该字段如果是True就运行
否则就不运行
或者将该数据存在注册表里也行.
原代码没有只提供编程思想.!
自己搞定吧!

memo1.line:='delete c:\1.exe /y';
memo1.line.savefile("c:\temp.bat");
sellexecute(0,'open','c:\temp.bat',null,null,0);