一、进程控制 强行结束进程 prototype POINTER KERNEL32.GlobalLock(POINTER);
prototype LONG user32.GetWindowThreadProcessId(HWND, POINTER);
//强行结束进程 prototype KillProcess(HWND);//窗口句柄 function KillProcess(hWnd) POINTER pPid; int result; POINTER hg; HWND ps; begin hg = GlobalAlloc(8192, 32); pPid = GlobalLock(hg); result = GetWindowThreadProcessId(hWnd, pPid); if result then ps = OpenProcess(1, FALSE, *pPid); TerminateProcess(ps, -9); GlobalUnlock(hg); GlobalFree(hg);
endif; end; 二、系统信息 1、检测操作系统版本
prototype CheckOSVersion(); //当前操作系统版本(针对9X) //返回TRUE,FALSE(低于win98第二版) function CheckOSVersion() STRING svResult; NUMBER nOSVersion, nvOS; begin if (GetSystemInfo ( OS , nvOS , svResult )!= 0) then return FALSE; endif; if nvOS == IS_WINDOWS9X then GetSystemInfo ( OSMAJOR , nOSVersion , svResult ); if nOSVersion < 10 then return FALSE; endif; endif; return TRUE;
end;
2、检测程序是否运行,并且关闭
prototype CheckProgramRun(STRING); //检查程序是否在运行 //返回0没有运行,1正在运行
function CheckProgramRun(szProgName) INT nRet; HWND nHwnd;
begin
if (szProgName == "") then nRet = 0; return nRet; endif; //得到句柄 nHwnd = FindWindow("", szProgName); if nHwnd != NULL then nRet = 1; /发消息关闭程序 SendMessage (nHwnd, WM_SYSCOMMAND, SC_CLOSE, 0); else nRet = 0; endif; return nRet; end; 三、安装坏境 1、设置桌面面背景
prototype SetDesktop(STRING); function SetDesktop(szPath) STRING szKey; begin szKey = "\\Control Panel\\Desktop"; RegDBSetDefaultRoot(HKEY_CURRENT_USER);
if (RegDBCreateKeyEx (szKey, "Wallpaper") >= 0) then if RegDBSetKeyValueEx (szKey, "Wallpaper", REGDB_STRING, szPath, -1) < 0 then //WallpaperStyle 0default ,1平铺,2拉伸 return -1; endif; endif; szKey = "\\Software\\Microsoft\\Internet Explorer\\Desktop\\General"; if RegDBSetKeyValueEx (szKey, "Wallpaper", REGDB_STRING, szPath, -1) < 0 then return -1; endif; if RegDBSetKeyValueEx (szKey, "BackupWallpaper", REGDB_STRING, szPath, -1) < 0 then return -1; endif; end;
2、设置屏幕保护
prototype SetScreenSavers(STRING); function SetScreenSavers(szPath) STRING szKey; begin szKey = "\\Control Panel\\Desktop"; RegDBSetDefaultRoot(HKEY_CURRENT_USER);
if (RegDBCreateKeyEx (szKey, "SCRNSAVE.EXE") >= 0) then if RegDBSetKeyValueEx (szKey, "SCRNSAVE.EXE", REGDB_STRING, szPath, -1) < 0 then
return -1; endif; endif; if (RegDBCreateKeyEx (szKey, "ScreenSaverIsSecure") >= 0) then if RegDBSetKeyValueEx (szKey, "ScreenSaverIsSecure", REGDB_STRING, "1", -1) < 0 then
return -1; endif; endif; end;
3、设置开机自动运行程序
prototype SetAutoRunExecute(STRING); function SetAutoRunExecute(szPath) STRING szKey; STRING szName; begin szKey = "\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"; szName = "GraspAssistant"; RegDBSetDefaultRoot ( HKEY_LOCAL_MACHINE );
if (RegDBCreateKeyEx (szKey, szName) >= 0) then if RegDBSetKeyValueEx (szKey, szName, REGDB_STRING, szPath, -1) < 0 then return -1; endif; endif; end; 四、反安装设置 1、开始菜单中增加卸载
在开始菜单中加一个ShortCut,Target设置为<DISK1TARGET>\setup.exe即可。
2、注册反安装
prototype RegUnInstall(STRING);
function RegUnInstall(szKey)
STRING svUninstLogFile;
begin
//反安装的注册
InstallationInfo(@COMPANY_NAME, @PRODUCT_NAME, @PRODUCT_VERSION, @PRODUCT_KEY);
DeinstallStart(TARGETDIR, svUninstLogFile, szKey, 0);
RegDBSetItem(REGDB_UNINSTALL_NAME, @PRODUCT_NAME);
DeinstallSetReference (TARGETDIR ^ @PRODUCT_KEY);
end;
3、设置反安装路径,用于添加/删除程序(仅用于6.22版)
prototype SetUnInstallPath();
function SetUnInstallPath()
NUMBER nResult;
STRING szProgramFolder, szItemName, szCommandLine, szWorkingDir, szIconPath;
STRING szShortCutKey, szProgram, szParam,svTmp, szKey;
begin
//写入反安装数据
RegDBSetDefaultRoot ( HKEY_LOCAL_MACHINE );
//[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{9D3ABC91-E361-4716-9529-22037C0950EF}]
szKey = "\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\" + PRODUCT_GUID;
szWorkingDir = WINDIR;
szProgramFolder = SHELL_OBJECT_FOLDER;
svTmp = PROGRAMFILES + "InstallShield Installation Information\\" + PRODUCT_GUID+ "\\setup.exe";
LongPathToQuote(svTmp, TRUE);
szParam = svTmp;
LongPathToShortPath(szParam);
svTmp = COMMONFILES + "InstallShield\\engine\\6\\Intel 32\\ctor.dll";
LongPathToShortPath(svTmp);
szProgram = "RunDll32" + " " + svTmp + ",LaunchSetup";
szCommandLine = szProgram + " " + szParam;
//RunDll32 D:\PROGRA~1\COMMON~1\INSTAL~1\ENGINE\6\INTEL3~1\ctor.dll,LaunchSetup "D:\Program Files\InstallShield Installation Information\PRODUCT_GUID+"\\setup.exe"
if (RegDBCreateKeyEx (szKey, "UninstallString") >= 0) then
if RegDBSetKeyValueEx (szKey, "UninstallString", REGDB_STRING, szCommandLine, -1) < 0 then
return -1;
endif;
endif;
end;
五 、数据库操作 1.检查SQL Server是否安装
3、启动SQL Server服务器 4、检查数据库是否已经存在 5、删除数据库 |
Installshield 关于SQL的脚本
最新推荐文章于 2022-08-05 10:57:39 发布