author | Michael Krelin <hacker@klever.net> | 2004-07-05 01:53:09 (UTC) |
---|---|---|
committer | Michael Krelin <hacker@klever.net> | 2004-07-05 01:53:09 (UTC) |
commit | 885f8cc426a8840ae61023b75f3f0e4a1e268082 (patch) (unidiff) | |
tree | 5e942d450c97ca0bf0f9cfb80aa0fefb486535d9 /install/install.cpp | |
download | kinsole-885f8cc426a8840ae61023b75f3f0e4a1e268082.zip kinsole-885f8cc426a8840ae61023b75f3f0e4a1e268082.tar.gz kinsole-885f8cc426a8840ae61023b75f3f0e4a1e268082.tar.bz2 |
initial commit into svn repository
git-svn-id: http://svn.klever.net/kin/kinsole/trunk@1 fe716a7a-6dde-0310-88d9-d003556173a8
-rw-r--r-- | install/install.cpp | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/install/install.cpp b/install/install.cpp new file mode 100644 index 0000000..e6f4e5a --- a/dev/null +++ b/install/install.cpp | |||
@@ -0,0 +1,65 @@ | |||
1 | #include "resource.h" | ||
2 | #include "../shared-code/install.h" | ||
3 | |||
4 | #define KINAME"KINSole 1.00 Beta 3" | ||
5 | #define SKINAME"KINSole" | ||
6 | |||
7 | BOOL Install(void) | ||
8 | { | ||
9 | STRING tPath = strFETCH_REG_KEY(HKEY_LOCAL_MACHINE,"Software\\Klever Group, Inc.",SKINAME "Path"); | ||
10 | STRING kPath = strFETCH_REG_KEY(HKEY_LOCAL_MACHINE,"Software\\Klever Group, Inc.","KINPath"); | ||
11 | LPCSTR qPath = ((LPCSTR)tPath)?(LPCSTR)tPath:(((LPCSTR)kPath)?(LPSTR)kPath:"C:\\Program Files\\Klever\\Nothings"); | ||
12 | STRING path = REQUESTPATH(" " KINAME,"Note: KINSole program file will be installed into your windows directory so that you can rely on it's presence in your search path\nEnter destination path:",qPath); | ||
13 | if(!path) | ||
14 | return NULL; | ||
15 | STRING winDir(_MAX_PATH); | ||
16 | |||
17 | GetWindowsDirectory(winDir,_MAX_PATH); | ||
18 | INSTALLFILE("KINSole.ex_",winDir,"KINSole.exe"); | ||
19 | MAKE_PATH(path); | ||
20 | STRING shortPath = GET_SHORT_PATH(path); | ||
21 | if(!shortPath){ | ||
22 | MessageBox(NULL,"Failed to install " KINAME " in specified directory",NULL,MB_ICONERROR|MB_OK); | ||
23 | return FALSE; | ||
24 | } | ||
25 | if(!( | ||
26 | INSTALLFILE("KINSole.hl_",path,"KINSole.hlp") && | ||
27 | INSTALLFILE("KINSole.cn_",path,"KINSole.cnt") | ||
28 | )){ | ||
29 | MessageBox(NULL,"Failed to install " KINAME " in specified directory",NULL,MB_ICONERROR|MB_OK); | ||
30 | return FALSE; | ||
31 | } | ||
32 | ADDMENU("Accessories\\Klever Co.","KINSole Help",path,SKINAME ".hlp"); | ||
33 | strSET_REG_KEY(HKEY_LOCAL_MACHINE,"Software\\Klever Group, Inc.", SKINAME "Path",path); | ||
34 | strSET_REG_KEY(HKEY_LOCAL_MACHINE,"Software\\Klever Group, Inc.","KINPath",path); | ||
35 | FILE* inf=CREATE_INF_FILE(path, SKINAME ".INF"); | ||
36 | if(!inf){ | ||
37 | MessageBox(NULL,"Failed to install " KINAME,NULL,MB_ICONERROR|MB_OK); | ||
38 | return FALSE; | ||
39 | } | ||
40 | INF_FILE_HEADER(inf); | ||
41 | INF_FILE_SECTION(inf,"Uninstall"); | ||
42 | fprintf(inf,"AddReg=kFiles\nDelReg=kReg\nUpdateInis=kMenu\n"); | ||
43 | |||
44 | INF_FILE_SECTION(inf,"kFiles"); | ||
45 | INF_REMOVE_ROOT(inf,SKINAME "Files",shortPath); | ||
46 | INF_REMOVE_HELP_FILE(inf,SKINAME "Files",SKINAME); | ||
47 | INF_REMOVE_FILE(inf,SKINAME "Files",SKINAME ".inf"); | ||
48 | |||
49 | INF_REMOVE_ROOT(inf,SKINAME "WFiles",winDir); | ||
50 | INF_REMOVE_FILE(inf,SKINAME "WFiles",SKINAME ".exe"); | ||
51 | |||
52 | INF_FILE_SECTION(inf,"kReg"); | ||
53 | INF_UNINSTALL_REG(inf,SKINAME); | ||
54 | |||
55 | INF_FILE_SECTION(inf,"kMenu"); | ||
56 | INF_MENU_GROUP(inf,1,"Accessories\\Klever Co."); | ||
57 | INF_MENU_ITEM(inf,1,"KINSole Help"); | ||
58 | fclose(inf); | ||
59 | |||
60 | REG_UNINSTALL_COMMAND(SKINAME,"Klever " KINAME,shortPath,SKINAME ".INF","Uninstall"); | ||
61 | |||
62 | MessageBox(NULL,KINAME " installed successfully, you may now run it from command line, read documentation in Programs/Accessories/Klever Co. menu or simply remove it using Control Panel Add/Remove Programs applet."," Rejoice!",MB_ICONINFORMATION|MB_OK); | ||
63 | |||
64 | return TRUE; | ||
65 | } | ||