diff --git a/README.md b/README.md index 54813dc..b700929 100644 --- a/README.md +++ b/README.md @@ -6,22 +6,22 @@ ### Table of Contents - [Installation](https://github.com/Pixel48/SerialExaminer#installation) - [Usage](https://github.com/Pixel48/SerialExaminer#usage) - - [Generating an exam key](https://github.com/Pixel48/SerialExaminer#generating-an-exam-key) - - [Importing an exam key](https://github.com/Pixel48/SerialExaminer#importing-an-exam-key) - - [Checking tests](https://github.com/Pixel48/SerialExaminer#checking-tests) - - [Searching for cheaters](https://github.com/Pixel48/SerialExaminer#searching-for-cheaters) - [Limits](https://github.com/Pixel48/SerialExaminer#limits) - - [Answers in exam key](https://github.com/Pixel48/SerialExaminer#answers-in-exam-key) - - [Records in result display](https://github.com/Pixel48/SerialExaminer#records-in-result-display) ## Installation - Download the latest [SerialExaminer installer](https://github.com/Pixel48/SerialExaminer/releases/latest) + Download installer from the [latest release](https://github.com/Pixel48/SerialExaminer/releases/latest) `SerialExaminerSetup.exe` is 32-bit. For 64-bit systems, download `SerialExaminerSetup-x64.exe` - > For now, downloading the installer will launch [UAC](https://en.wikipedia.org/wiki/User_Account_Control) *Unknown publisher* alert because it is not digitally signed - For now I can't afford digital certification + > For now, downloading the installer will launch [UAC](https://en.wikipedia.org/wiki/User_Account_Control) *Unknown publisher* alert because it is not digitally signed - I can't afford digital certification + + > For now, some anti-virus programs may detect the installer as a potential threat because it is not downloaded frequently, so it is not marked as safe (it is unknown to the anti-virus) ## Usage - How to use SerialExaminer interface + Guide how to use SerialExaminer interface + - [Generating an exam key](https://github.com/Pixel48/SerialExaminer#generating-an-exam-key) + - [Importing an exam key](https://github.com/Pixel48/SerialExaminer#importing-an-exam-key) + - [Checking tests](https://github.com/Pixel48/SerialExaminer#checking-tests) + - [Searching for cheaters](https://github.com/Pixel48/SerialExaminer#searching-for-cheaters) ![Main window dummy](./docs/img/main_window.png) diff --git a/SerialExaminer.py b/SerialExaminer.py index 85c9501..4cc0bb2 100644 --- a/SerialExaminer.py +++ b/SerialExaminer.py @@ -9,7 +9,7 @@ import os, pickle import openpyxl -versionTag = '0.4.1' +versionTag = '0.5.0' # SOME GLOBALS R = 0 @@ -32,7 +32,7 @@ def newCol(col = 1): C += col def zeroCol(col = 0): global C, R - C = R = 0 + R = 0 C = col def splitLine(line): if line.split('.')[0].isdigit(): @@ -112,7 +112,7 @@ def build(self, frame): newRow() self.examinateButtonFont = tkFont.Font(size=15) self.examinateButton = Button(frame, font = self.examinateButtonFont) - self.examinateButton['text'] = "Check!" + self.examinateButton['text'] = "Check" self.examinateButton['command'] = self.examinate self.examinateButton['state'] = DISABLED self.examinateButton.grid(row = R, column = C, columnspan = 3, sticky = 'we') @@ -370,7 +370,7 @@ def build(self, frame): newRow() self.nextWindowFont = tkFont.Font(size = 14) self.nextWindow = Button(frame, font = self.nextWindowFont) - self.nextWindow['text'] = "Create Key!" + self.nextWindow['text'] = "Create Key" self.nextWindow['command'] = self.mainKeyCreator self.nextWindow.grid(row = R, column = C, columnspan = 7, sticky = 'we') # key config done button # @@ -576,7 +576,7 @@ def mainLabelUpdate(self): self.mainLabel['text'] = "Question " + str(self.questionNo) if self.questionNo > questionCount: self.above.keyDone['state'] = NORMAL - self.above.nextWindow['text'] = "ReCreate Key!" + self.above.nextWindow['text'] = "ReCreate Key" self.die() def die(self): diff --git a/docs/img/check_button.png b/docs/img/check_button.png index 5889b4f..9057c34 100644 Binary files a/docs/img/check_button.png and b/docs/img/check_button.png differ diff --git a/docs/img/exam_file.png b/docs/img/exam_file.png deleted file mode 100644 index 9408cf0..0000000 Binary files a/docs/img/exam_file.png and /dev/null differ diff --git a/docs/img/key_parameters.png b/docs/img/key_parameters.png index fcf0c4d..278c191 100644 Binary files a/docs/img/key_parameters.png and b/docs/img/key_parameters.png differ diff --git a/docs/img/main_window.png b/docs/img/main_window.png index cfcab09..4252a4f 100644 Binary files a/docs/img/main_window.png and b/docs/img/main_window.png differ diff --git a/installer-x64.nsi b/installer-x64.nsi new file mode 100644 index 0000000..853f0c1 --- /dev/null +++ b/installer-x64.nsi @@ -0,0 +1,66 @@ +; SeriEx Installer +!include "MUI2.nsh" + +;------------------ +; defines +!define PROGRAM_NAME "SerialExaminer" +!define UNINST_KEY "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\${PROGRAM_NAME}" +!define INST_KEY "SOFTWARE\${PROGRAM_NAME}" + +;------------------ +; Atributes +Name "SerialExaminer" +OutFile "SerialExaminerSetup.exe" +InstallDir "$PROGRAMFILES64\${PROGRAM_NAME}" +RequestExecutionLevel admin +; Unicode True + +;------------------ +; Icons +!define MUI_UNICON "unico.ico" +!define MUI_ICON "ico.ico" + +;------------------ +; Installer +!insertmacro MUI_PAGE_DIRECTORY +!insertmacro MUI_PAGE_INSTFILES + +Section "SerialExaminer" SerialExaminer + SetOutPath $INSTDIR + File /r "dist-x64\SerialExaminer\*" + CreateDirectory "$INSTDIR\keys" + + WriteRegStr HKLM "${INST_KEY}" "InstallDir" "$INSTDIR" + WriteRegStr HKLM "${INST_KEY}" "DisplayName" "SerialExaminer" + WriteRegStr HKLM "${INST_KEY}" "DisplayVersion" "0.4.1" + WriteRegStr HKLM "${INST_KEY}" "DisplayIcon" "$\"$INSTDIR\ico.ico$\"" + WriteRegStr HKLM "${INST_KEY}" "Publisher" "GitHub.com/Pixel48" + WriteRegStr HKLM "${INST_KEY}" "UninstallString" "$INSTDIR\Uninstall.exe" + + WriteUninstaller "$INSTDIR\Uninstall.exe" + + WriteRegStr HKLM "${UNINST_KEY}" "InstallDir" "$INSTDIR" + WriteRegStr HKLM "${UNINST_KEY}" "DisplayName" "${PROGRAM_NAME}" + WriteRegStr HKLM "${UNINST_KEY}" "DisplayVersion" "0.4.1" + WriteRegStr HKLM "${UNINST_KEY}" "DisplayIcon" "$\"$INSTDIR\ico.ico$\"" + WriteRegStr HKLM "${UNINST_KEY}" "Publisher" "GitHub.com/Pixel48" + WriteRegStr HKLM "${UNINST_KEY}" "UninstallString" "$\"$INSTDIR\Uninstall.exe$\"" + WriteRegDWORD HKLM "${UNINST_KEY}" "NoModify" 1 + WriteRegDWORD HKLM "${UNINST_KEY}" "NoRepair" 1 +SectionEnd + +Section "Desktop shortcut" + CreateShortcut "$DESKTOP\SerialExaminer.lnk" "$INSTDIR\SerialExaminer.exe" +SectionEnd + +;------------------ +; Uninstaller +!insertmacro MUI_UNPAGE_CONFIRM +!insertmacro MUI_UNPAGE_INSTFILES + +Section "Uninstall" + Delete "$DESKTOP\SerialExaminer.lnk" + RMDir /r "$INSTDIR" + DeleteRegKey HKLM "${INST_KEY}" + DeleteRegKey HKLM "${UNINST_KEY}" +SectionEnd diff --git a/installer.nsi b/installer.nsi index 8080e51..69f576c 100644 --- a/installer.nsi +++ b/installer.nsi @@ -1,21 +1,27 @@ -;SeriEx Installer +; SeriEx Installer !include "MUI2.nsh" ;------------------ -;Atributes +; defines +!define PROGRAM_NAME "SerialExaminer" +!define UNINST_KEY "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\${PROGRAM_NAME}" +!define INST_KEY "SOFTWARE\${PROGRAM_NAME}" + +;------------------ +; Atributes Name "SerialExaminer" OutFile "SerialExaminerSetup.exe" -InstallDir "$PROGRAMFILES\SerialExaminer" +InstallDir "$PROGRAMFILES32\${PROGRAM_NAME}" RequestExecutionLevel admin -;Unicode True +; Unicode True ;------------------ -;Icons +; Icons !define MUI_UNICON "unico.ico" !define MUI_ICON "ico.ico" ;------------------ -;Installer +; Installer !insertmacro MUI_PAGE_DIRECTORY !insertmacro MUI_PAGE_INSTFILES @@ -24,11 +30,23 @@ Section "SerialExaminer" SerialExaminer File /r "dist\SerialExaminer\*" CreateDirectory "$INSTDIR\keys" - WriteRegStr HKLM "SOFTWARE\SerialExaminer" "InstallPath" "$INSTDIR" - WriteRegStr HKLM "Software\SerialExaminer" "DisplayName" "SerialExaminer" - WriteRegStr HKLM "Software\SerialExaminer" "UninstallString" '"$INSTDIR\Uninstall.exe"' + WriteRegStr HKLM "${INST_KEY}" "InstallDir" "$INSTDIR" + WriteRegStr HKLM "${INST_KEY}" "DisplayName" "SerialExaminer" + WriteRegStr HKLM "${INST_KEY}" "DisplayVersion" "0.4.1" + WriteRegStr HKLM "${INST_KEY}" "DisplayIcon" "$\"$INSTDIR\ico.ico$\"" + WriteRegStr HKLM "${INST_KEY}" "Publisher" "GitHub.com/Pixel48" + WriteRegStr HKLM "${INST_KEY}" "UninstallString" "$INSTDIR\Uninstall.exe" WriteUninstaller "$INSTDIR\Uninstall.exe" + + WriteRegStr HKLM "${UNINST_KEY}" "InstallDir" "$INSTDIR" + WriteRegStr HKLM "${UNINST_KEY}" "DisplayName" "${PROGRAM_NAME}" + WriteRegStr HKLM "${UNINST_KEY}" "DisplayVersion" "0.4.1" + WriteRegStr HKLM "${UNINST_KEY}" "DisplayIcon" "$\"$INSTDIR\ico.ico$\"" + WriteRegStr HKLM "${UNINST_KEY}" "Publisher" "GitHub.com/Pixel48" + WriteRegStr HKLM "${UNINST_KEY}" "UninstallString" "$\"$INSTDIR\Uninstall.exe$\"" + WriteRegDWORD HKLM "${UNINST_KEY}" "NoModify" 1 + WriteRegDWORD HKLM "${UNINST_KEY}" "NoRepair" 1 SectionEnd Section "Desktop shortcut" @@ -36,13 +54,13 @@ Section "Desktop shortcut" SectionEnd ;------------------ -;Uninstaller +; Uninstaller !insertmacro MUI_UNPAGE_CONFIRM !insertmacro MUI_UNPAGE_INSTFILES Section "Uninstall" Delete "$DESKTOP\SerialExaminer.lnk" - Delete "$INSTDIR\Uninstall.exe" RMDir /r "$INSTDIR" - DeleteRegKey HKLM "Software\SerialExaminer" + DeleteRegKey HKLM "${INST_KEY}" + DeleteRegKey HKLM "${UNINST_KEY}" SectionEnd