├── .gitattributes
├── .gitignore
├── Checkm8 Installer.sln
└── Checkm8 Installer
├── App.config
├── Checkm8 Installer.vbproj
├── Form1.Designer.vb
├── Form1.resx
├── Form1.vb
└── My Project
├── Application.Designer.vb
├── Application.myapp
├── AssemblyInfo.vb
├── Resources.Designer.vb
├── Resources.resx
├── Settings.Designer.vb
└── Settings.settings
/.gitattributes:
--------------------------------------------------------------------------------
1 | ###############################################################################
2 | # Set default behavior to automatically normalize line endings.
3 | ###############################################################################
4 | * text=auto
5 |
6 | ###############################################################################
7 | # Set default behavior for command prompt diff.
8 | #
9 | # This is need for earlier builds of msysgit that does not have it on by
10 | # default for csharp files.
11 | # Note: This is only used by command line
12 | ###############################################################################
13 | #*.cs diff=csharp
14 |
15 | ###############################################################################
16 | # Set the merge driver for project and solution files
17 | #
18 | # Merging from the command prompt will add diff markers to the files if there
19 | # are conflicts (Merging from VS is not affected by the settings below, in VS
20 | # the diff markers are never inserted). Diff markers may cause the following
21 | # file extensions to fail to load in VS. An alternative would be to treat
22 | # these files as binary and thus will always conflict and require user
23 | # intervention with every merge. To do so, just uncomment the entries below
24 | ###############################################################################
25 | #*.sln merge=binary
26 | #*.csproj merge=binary
27 | #*.vbproj merge=binary
28 | #*.vcxproj merge=binary
29 | #*.vcproj merge=binary
30 | #*.dbproj merge=binary
31 | #*.fsproj merge=binary
32 | #*.lsproj merge=binary
33 | #*.wixproj merge=binary
34 | #*.modelproj merge=binary
35 | #*.sqlproj merge=binary
36 | #*.wwaproj merge=binary
37 |
38 | ###############################################################################
39 | # behavior for image files
40 | #
41 | # image files are treated as binary by default.
42 | ###############################################################################
43 | #*.jpg binary
44 | #*.png binary
45 | #*.gif binary
46 |
47 | ###############################################################################
48 | # diff behavior for common document formats
49 | #
50 | # Convert binary document formats to text before diffing them. This feature
51 | # is only available from the command line. Turn it on by uncommenting the
52 | # entries below.
53 | ###############################################################################
54 | #*.doc diff=astextplain
55 | #*.DOC diff=astextplain
56 | #*.docx diff=astextplain
57 | #*.DOCX diff=astextplain
58 | #*.dot diff=astextplain
59 | #*.DOT diff=astextplain
60 | #*.pdf diff=astextplain
61 | #*.PDF diff=astextplain
62 | #*.rtf diff=astextplain
63 | #*.RTF diff=astextplain
64 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | ## Ignore Visual Studio temporary files, build results, and
2 | ## files generated by popular Visual Studio add-ons.
3 | ##
4 | ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
5 |
6 | # User-specific files
7 | *.rsuser
8 | *.suo
9 | *.user
10 | *.userosscache
11 | *.sln.docstates
12 |
13 | # User-specific files (MonoDevelop/Xamarin Studio)
14 | *.userprefs
15 |
16 | # Build results
17 | [Dd]ebug/
18 | [Dd]ebugPublic/
19 | [Rr]elease/
20 | [Rr]eleases/
21 | x64/
22 | x86/
23 | [Aa][Rr][Mm]/
24 | [Aa][Rr][Mm]64/
25 | bld/
26 | [Bb]in/
27 | [Oo]bj/
28 | [Ll]og/
29 |
30 | # Visual Studio 2015/2017 cache/options directory
31 | .vs/
32 | # Uncomment if you have tasks that create the project's static files in wwwroot
33 | #wwwroot/
34 |
35 | # Visual Studio 2017 auto generated files
36 | Generated\ Files/
37 |
38 | # MSTest test Results
39 | [Tt]est[Rr]esult*/
40 | [Bb]uild[Ll]og.*
41 |
42 | # NUNIT
43 | *.VisualState.xml
44 | TestResult.xml
45 |
46 | # Build Results of an ATL Project
47 | [Dd]ebugPS/
48 | [Rr]eleasePS/
49 | dlldata.c
50 |
51 | # Benchmark Results
52 | BenchmarkDotNet.Artifacts/
53 |
54 | # .NET Core
55 | project.lock.json
56 | project.fragment.lock.json
57 | artifacts/
58 |
59 | # StyleCop
60 | StyleCopReport.xml
61 |
62 | # Files built by Visual Studio
63 | *_i.c
64 | *_p.c
65 | *_h.h
66 | *.ilk
67 | *.meta
68 | *.obj
69 | *.iobj
70 | *.pch
71 | *.pdb
72 | *.ipdb
73 | *.pgc
74 | *.pgd
75 | *.rsp
76 | *.sbr
77 | *.tlb
78 | *.tli
79 | *.tlh
80 | *.tmp
81 | *.tmp_proj
82 | *_wpftmp.csproj
83 | *.log
84 | *.vspscc
85 | *.vssscc
86 | .builds
87 | *.pidb
88 | *.svclog
89 | *.scc
90 |
91 | # Chutzpah Test files
92 | _Chutzpah*
93 |
94 | # Visual C++ cache files
95 | ipch/
96 | *.aps
97 | *.ncb
98 | *.opendb
99 | *.opensdf
100 | *.sdf
101 | *.cachefile
102 | *.VC.db
103 | *.VC.VC.opendb
104 |
105 | # Visual Studio profiler
106 | *.psess
107 | *.vsp
108 | *.vspx
109 | *.sap
110 |
111 | # Visual Studio Trace Files
112 | *.e2e
113 |
114 | # TFS 2012 Local Workspace
115 | $tf/
116 |
117 | # Guidance Automation Toolkit
118 | *.gpState
119 |
120 | # ReSharper is a .NET coding add-in
121 | _ReSharper*/
122 | *.[Rr]e[Ss]harper
123 | *.DotSettings.user
124 |
125 | # JustCode is a .NET coding add-in
126 | .JustCode
127 |
128 | # TeamCity is a build add-in
129 | _TeamCity*
130 |
131 | # DotCover is a Code Coverage Tool
132 | *.dotCover
133 |
134 | # AxoCover is a Code Coverage Tool
135 | .axoCover/*
136 | !.axoCover/settings.json
137 |
138 | # Visual Studio code coverage results
139 | *.coverage
140 | *.coveragexml
141 |
142 | # NCrunch
143 | _NCrunch_*
144 | .*crunch*.local.xml
145 | nCrunchTemp_*
146 |
147 | # MightyMoose
148 | *.mm.*
149 | AutoTest.Net/
150 |
151 | # Web workbench (sass)
152 | .sass-cache/
153 |
154 | # Installshield output folder
155 | [Ee]xpress/
156 |
157 | # DocProject is a documentation generator add-in
158 | DocProject/buildhelp/
159 | DocProject/Help/*.HxT
160 | DocProject/Help/*.HxC
161 | DocProject/Help/*.hhc
162 | DocProject/Help/*.hhk
163 | DocProject/Help/*.hhp
164 | DocProject/Help/Html2
165 | DocProject/Help/html
166 |
167 | # Click-Once directory
168 | publish/
169 |
170 | # Publish Web Output
171 | *.[Pp]ublish.xml
172 | *.azurePubxml
173 | # Note: Comment the next line if you want to checkin your web deploy settings,
174 | # but database connection strings (with potential passwords) will be unencrypted
175 | *.pubxml
176 | *.publishproj
177 |
178 | # Microsoft Azure Web App publish settings. Comment the next line if you want to
179 | # checkin your Azure Web App publish settings, but sensitive information contained
180 | # in these scripts will be unencrypted
181 | PublishScripts/
182 |
183 | # NuGet Packages
184 | *.nupkg
185 | # The packages folder can be ignored because of Package Restore
186 | **/[Pp]ackages/*
187 | # except build/, which is used as an MSBuild target.
188 | !**/[Pp]ackages/build/
189 | # Uncomment if necessary however generally it will be regenerated when needed
190 | #!**/[Pp]ackages/repositories.config
191 | # NuGet v3's project.json files produces more ignorable files
192 | *.nuget.props
193 | *.nuget.targets
194 |
195 | # Microsoft Azure Build Output
196 | csx/
197 | *.build.csdef
198 |
199 | # Microsoft Azure Emulator
200 | ecf/
201 | rcf/
202 |
203 | # Windows Store app package directories and files
204 | AppPackages/
205 | BundleArtifacts/
206 | Package.StoreAssociation.xml
207 | _pkginfo.txt
208 | *.appx
209 |
210 | # Visual Studio cache files
211 | # files ending in .cache can be ignored
212 | *.[Cc]ache
213 | # but keep track of directories ending in .cache
214 | !?*.[Cc]ache/
215 |
216 | # Others
217 | ClientBin/
218 | ~$*
219 | *~
220 | *.dbmdl
221 | *.dbproj.schemaview
222 | *.jfm
223 | *.pfx
224 | *.publishsettings
225 | orleans.codegen.cs
226 |
227 | # Including strong name files can present a security risk
228 | # (https://github.com/github/gitignore/pull/2483#issue-259490424)
229 | #*.snk
230 |
231 | # Since there are multiple workflows, uncomment next line to ignore bower_components
232 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
233 | #bower_components/
234 |
235 | # RIA/Silverlight projects
236 | Generated_Code/
237 |
238 | # Backup & report files from converting an old project file
239 | # to a newer Visual Studio version. Backup files are not needed,
240 | # because we have git ;-)
241 | _UpgradeReport_Files/
242 | Backup*/
243 | UpgradeLog*.XML
244 | UpgradeLog*.htm
245 | ServiceFabricBackup/
246 | *.rptproj.bak
247 |
248 | # SQL Server files
249 | *.mdf
250 | *.ldf
251 | *.ndf
252 |
253 | # Business Intelligence projects
254 | *.rdl.data
255 | *.bim.layout
256 | *.bim_*.settings
257 | *.rptproj.rsuser
258 | *- Backup*.rdl
259 |
260 | # Microsoft Fakes
261 | FakesAssemblies/
262 |
263 | # GhostDoc plugin setting file
264 | *.GhostDoc.xml
265 |
266 | # Node.js Tools for Visual Studio
267 | .ntvs_analysis.dat
268 | node_modules/
269 |
270 | # Visual Studio 6 build log
271 | *.plg
272 |
273 | # Visual Studio 6 workspace options file
274 | *.opt
275 |
276 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
277 | *.vbw
278 |
279 | # Visual Studio LightSwitch build output
280 | **/*.HTMLClient/GeneratedArtifacts
281 | **/*.DesktopClient/GeneratedArtifacts
282 | **/*.DesktopClient/ModelManifest.xml
283 | **/*.Server/GeneratedArtifacts
284 | **/*.Server/ModelManifest.xml
285 | _Pvt_Extensions
286 |
287 | # Paket dependency manager
288 | .paket/paket.exe
289 | paket-files/
290 |
291 | # FAKE - F# Make
292 | .fake/
293 |
294 | # JetBrains Rider
295 | .idea/
296 | *.sln.iml
297 |
298 | # CodeRush personal settings
299 | .cr/personal
300 |
301 | # Python Tools for Visual Studio (PTVS)
302 | __pycache__/
303 | *.pyc
304 |
305 | # Cake - Uncomment if you are using it
306 | # tools/**
307 | # !tools/packages.config
308 |
309 | # Tabs Studio
310 | *.tss
311 |
312 | # Telerik's JustMock configuration file
313 | *.jmconfig
314 |
315 | # BizTalk build output
316 | *.btp.cs
317 | *.btm.cs
318 | *.odx.cs
319 | *.xsd.cs
320 |
321 | # OpenCover UI analysis results
322 | OpenCover/
323 |
324 | # Azure Stream Analytics local run output
325 | ASALocalRun/
326 |
327 | # MSBuild Binary and Structured Log
328 | *.binlog
329 |
330 | # NVidia Nsight GPU debugger configuration file
331 | *.nvuser
332 |
333 | # MFractors (Xamarin productivity tool) working folder
334 | .mfractor/
335 |
336 | # Local History for Visual Studio
337 | .localhistory/
338 |
339 | # BeatPulse healthcheck temp database
340 | healthchecksdb
--------------------------------------------------------------------------------
/Checkm8 Installer.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 16
4 | VisualStudioVersion = 16.0.29306.81
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Checkm8 Installer", "Checkm8 Installer\Checkm8 Installer.vbproj", "{7C21F8C8-5A1B-4582-8BA9-C5CB87A310CA}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|Any CPU = Debug|Any CPU
11 | Release|Any CPU = Release|Any CPU
12 | EndGlobalSection
13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
14 | {7C21F8C8-5A1B-4582-8BA9-C5CB87A310CA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15 | {7C21F8C8-5A1B-4582-8BA9-C5CB87A310CA}.Debug|Any CPU.Build.0 = Debug|Any CPU
16 | {7C21F8C8-5A1B-4582-8BA9-C5CB87A310CA}.Release|Any CPU.ActiveCfg = Release|Any CPU
17 | {7C21F8C8-5A1B-4582-8BA9-C5CB87A310CA}.Release|Any CPU.Build.0 = Release|Any CPU
18 | EndGlobalSection
19 | GlobalSection(SolutionProperties) = preSolution
20 | HideSolutionNode = FALSE
21 | EndGlobalSection
22 | GlobalSection(ExtensibilityGlobals) = postSolution
23 | SolutionGuid = {DBA21AF8-9B83-4714-9667-F107F4934BE9}
24 | EndGlobalSection
25 | EndGlobal
26 |
--------------------------------------------------------------------------------
/Checkm8 Installer/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | False
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/Checkm8 Installer/Checkm8 Installer.vbproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {7C21F8C8-5A1B-4582-8BA9-C5CB87A310CA}
8 | WinExe
9 | Checkm8_Installer.My.MyApplication
10 | Checkm8_Installer
11 | Checkm8 Installer
12 | 512
13 | WindowsForms
14 | v4.5
15 | true
16 |
17 |
18 | AnyCPU
19 | true
20 | full
21 | true
22 | true
23 | bin\Debug\
24 | Checkm8 Installer.xml
25 | 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022
26 |
27 |
28 | AnyCPU
29 | pdbonly
30 | false
31 | true
32 | true
33 | bin\Release\
34 | Checkm8 Installer.xml
35 | 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022
36 |
37 |
38 | On
39 |
40 |
41 | Binary
42 |
43 |
44 | Off
45 |
46 |
47 | On
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 | Form
78 |
79 |
80 | Form1.vb
81 | Form
82 |
83 |
84 |
85 | True
86 | Application.myapp
87 |
88 |
89 | True
90 | True
91 | Resources.resx
92 |
93 |
94 | True
95 | Settings.settings
96 | True
97 |
98 |
99 |
100 |
101 | Form1.vb
102 |
103 |
104 | VbMyResourcesResXFileCodeGenerator
105 | Resources.Designer.vb
106 | My.Resources
107 | Designer
108 |
109 |
110 |
111 |
112 | MyApplicationCodeGenerator
113 | Application.Designer.vb
114 |
115 |
116 | SettingsSingleFileGenerator
117 | My
118 | Settings.Designer.vb
119 |
120 |
121 |
122 |
123 |
--------------------------------------------------------------------------------
/Checkm8 Installer/Form1.Designer.vb:
--------------------------------------------------------------------------------
1 | _
2 | Partial Class Form1
3 | Inherits System.Windows.Forms.Form
4 |
5 | 'Form overrides dispose to clean up the component list.
6 | _
7 | Protected Overrides Sub Dispose(ByVal disposing As Boolean)
8 | Try
9 | If disposing AndAlso components IsNot Nothing Then
10 | components.Dispose()
11 | End If
12 | Finally
13 | MyBase.Dispose(disposing)
14 | End Try
15 | End Sub
16 |
17 | 'Required by the Windows Form Designer
18 | Private components As System.ComponentModel.IContainer
19 |
20 | 'NOTE: The following procedure is required by the Windows Form Designer
21 | 'It can be modified using the Windows Form Designer.
22 | 'Do not modify it using the code editor.
23 | _
24 | Private Sub InitializeComponent()
25 | Me.logbox = New System.Windows.Forms.TextBox()
26 | Me.Button1 = New System.Windows.Forms.Button()
27 | Me.Label1 = New System.Windows.Forms.Label()
28 | Me.backgroundThread = New System.ComponentModel.BackgroundWorker()
29 | Me.Label2 = New System.Windows.Forms.Label()
30 | Me.Button2 = New System.Windows.Forms.Button()
31 | Me.SuspendLayout()
32 | '
33 | 'logbox
34 | '
35 | Me.logbox.Location = New System.Drawing.Point(12, 158)
36 | Me.logbox.Multiline = True
37 | Me.logbox.Name = "logbox"
38 | Me.logbox.ReadOnly = True
39 | Me.logbox.ScrollBars = System.Windows.Forms.ScrollBars.Both
40 | Me.logbox.Size = New System.Drawing.Size(307, 159)
41 | Me.logbox.TabIndex = 0
42 | '
43 | 'Button1
44 | '
45 | Me.Button1.Location = New System.Drawing.Point(85, 45)
46 | Me.Button1.Name = "Button1"
47 | Me.Button1.Size = New System.Drawing.Size(136, 23)
48 | Me.Button1.TabIndex = 1
49 | Me.Button1.Text = "Install Checkm8"
50 | Me.Button1.UseVisualStyleBackColor = True
51 | '
52 | 'Label1
53 | '
54 | Me.Label1.AutoSize = True
55 | Me.Label1.Location = New System.Drawing.Point(12, 139)
56 | Me.Label1.Name = "Label1"
57 | Me.Label1.Size = New System.Drawing.Size(28, 13)
58 | Me.Label1.TabIndex = 2
59 | Me.Label1.Text = "Log:"
60 | '
61 | 'backgroundThread
62 | '
63 | '
64 | 'Label2
65 | '
66 | Me.Label2.AutoSize = True
67 | Me.Label2.Font = New System.Drawing.Font("Microsoft Sans Serif", 10.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
68 | Me.Label2.Location = New System.Drawing.Point(45, 9)
69 | Me.Label2.Name = "Label2"
70 | Me.Label2.Size = New System.Drawing.Size(248, 17)
71 | Me.Label2.TabIndex = 3
72 | Me.Label2.Text = "Checkm8 installer 1.0 by Most Gooder"
73 | '
74 | 'Button2
75 | '
76 | Me.Button2.Location = New System.Drawing.Point(118, 76)
77 | Me.Button2.Name = "Button2"
78 | Me.Button2.Size = New System.Drawing.Size(75, 23)
79 | Me.Button2.TabIndex = 4
80 | Me.Button2.Text = "Credits"
81 | Me.Button2.UseVisualStyleBackColor = True
82 | '
83 | 'Form1
84 | '
85 | Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
86 | Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
87 | Me.ClientSize = New System.Drawing.Size(331, 329)
88 | Me.Controls.Add(Me.Button2)
89 | Me.Controls.Add(Me.Label2)
90 | Me.Controls.Add(Me.Label1)
91 | Me.Controls.Add(Me.Button1)
92 | Me.Controls.Add(Me.logbox)
93 | Me.Name = "Form1"
94 | Me.Text = "Checkm8 Installer"
95 | Me.ResumeLayout(False)
96 | Me.PerformLayout()
97 |
98 | End Sub
99 |
100 | Friend WithEvents logbox As TextBox
101 | Friend WithEvents Button1 As Button
102 | Friend WithEvents Label1 As Label
103 | Friend WithEvents backgroundThread As System.ComponentModel.BackgroundWorker
104 | Friend WithEvents Label2 As Label
105 | Friend WithEvents Button2 As Button
106 | End Class
107 |
--------------------------------------------------------------------------------
/Checkm8 Installer/Form1.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
121 | 17, 17
122 |
123 |
--------------------------------------------------------------------------------
/Checkm8 Installer/Form1.vb:
--------------------------------------------------------------------------------
1 | Imports System.IO.Compression
2 |
3 | Public Class Form1
4 | Private Sub BackgroundThread_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) Handles backgroundThread.DoWork
5 | End Sub
6 |
7 | Public Shared Function logger(ByRef textr)
8 | If Form1.logbox.Text = "" Then
9 | Form1.logbox.Text = textr
10 | Else
11 | Form1.logbox.Text = Form1.logbox.Text & vbCrLf & textr
12 | End If
13 | End Function
14 |
15 | Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
16 | 'backgroundThread.RunWorkerAsync()
17 | Try
18 | If My.Computer.FileSystem.DirectoryExists("checkm8-files") Then
19 | Dim r = MsgBox("We've detected left over checkm8 files from a previous time this program was used, would you like to delete these files? If not, we can't reinstall checkm8 for Windows.", vbYesNo)
20 | If Not r = vbYes Then
21 | logger("Installation cancelled.")
22 | Exit Sub
23 | End If
24 | My.Computer.FileSystem.DeleteDirectory("checkm8-files", FileIO.DeleteDirectoryOption.DeleteAllContents)
25 | End If
26 | If My.Computer.FileSystem.FileExists("checkm8.zip") Then
27 | My.Computer.FileSystem.DeleteFile("checkm8.zip")
28 | End If
29 | If My.Computer.FileSystem.FileExists("libusb.zip") Then
30 | My.Computer.FileSystem.DeleteFile("libusb.zip")
31 | End If
32 | If My.Computer.FileSystem.FileExists("pythoninstaller.exe") Then
33 | My.Computer.FileSystem.DeleteFile("pythoninstaller.exe")
34 | End If
35 | CheckForIllegalCrossThreadCalls = False
36 | Dim f = MsgBox("Is your device in DFU mode and connected to the computer?", vbYesNo)
37 | If Not f = vbYes Then
38 | MsgBox("Put your device into DFU mode and connect it to the computer, once that is done press ok", vbOKOnly)
39 | End If
40 | f = MsgBox("Is Python 3.7.x installed?", vbYesNo)
41 | If Not f = vbYes Then
42 | logger("Downloading the Python 3.7.4 installer...")
43 | My.Computer.Network.DownloadFile("http://goodertech.com/python.exe", "pythoninstaller.exe")
44 | MsgBox("Press OK to start the python installation process, make sure to checkmark ""Add Python 3.7 to path"" once you finish installing python press ""Ok"" on the next prompt.")
45 | logger("Starting the Python installer...")
46 | Process.Start("pythoninstaller.exe")
47 | j:
48 | f = MsgBox("Press Ok once you've installed Python 3.7.4.")
49 | If Not f = vbOK Then
50 | GoTo j
51 | End If
52 | End If
53 | logger("Downloading necessary checkm8 files...")
54 | If Not My.Computer.FileSystem.FileExists("checkm8.zip") Then
55 | My.Computer.Network.DownloadFile("http://goodertech.com/checkm8script.zip", "checkm8.zip")
56 | End If
57 | If Not My.Computer.FileSystem.FileExists("libusb.zip") Then
58 | My.Computer.Network.DownloadFile("http://goodertech.com/libusb.zip", "libusb.zip")
59 | End If
60 | logger("Successully downloaded checkm8 files.")
61 | logger("Decompressing checkm8 files...")
62 | If Not My.Computer.FileSystem.DirectoryExists("checkm8-files") Then
63 | My.Computer.FileSystem.CreateDirectory("checkm8-files")
64 | My.Computer.FileSystem.CreateDirectory("checkm8-files/checkm8/")
65 | My.Computer.FileSystem.CreateDirectory("checkm8-files/libusb/")
66 | End If
67 | ZipFile.ExtractToDirectory("checkm8.zip", "checkm8-files/checkm8/")
68 | ZipFile.ExtractToDirectory("libusb.zip", "checkm8-files/libusb/")
69 | logger("Successfully decompressed checkm8 files.")
70 | MsgBox("Another installer is about to pop up after you click ok, once it does, select ""Install a device filter"" and click next. In the list, find your device in DFU mode. It should say ""Apple Mobile Device (DFU Mode)"", click on it and then press install. After it completes, close the pop up.")
71 | logger("Running necessary scripts...")
72 | Process.Start("checkm8-files\libusb\libusb\bin\amd64\install-filter-win.exe")
73 | MsgBox("Press Ok once the pop up is closed.")
74 | MsgBox("Another pop up is going to open after you click Ok, once it does, click next on the popup. Select ""Apple Mobile Device (DFU Mode)"" and then click next. Check that you've chosen the right device, then click next. On the new window that opens, choose your desktop to save this .inf file.")
75 | Process.Start("checkm8-files\libusb\libusb\bin\inf-wizard.exe")
76 | MsgBox("Click Ok once you've completed the task.")
77 | My.Settings.safemode = True
78 | My.Settings.Save()
79 | MsgBox("Now here comes the most tedious part. Due to Windows not allowing unsigned third party drivers to be installed while not in safe mode, we'll have to boot into it. Bring up your power down options, and while holding shift, click restart. Keep holding shift until a blue screen comes up. Click ""Troubleshoot"", then click ""Advanced options"". Click ""Startup Settings"", then click restart. When a list of options comes up, press '7' and let your PC boot. Sign in as normal, and open back up this program.")
80 | Catch
81 | logger("An error has occured, please report this in the reddit post: " & ErrorToString())
82 | Exit Sub
83 | End Try
84 | End Sub
85 |
86 | Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
87 | logger("Checkm8 Installer 1.0 by Most Gooder")
88 | If My.Settings.safemode Then
89 | MsgBox("Welcome back! Now that you're in safe mode we can continue to the next step!")
90 | MsgBox("Open up Device Manager, and find your Apple device (it's usually down the bottom in one of the USB categories). Right click on it, and choose ""Update Driver"". Choose ""Browse my computer for driver software"". Click ""Let me choose from a list of available drives on my computer"". On the bottom right, click ""Have Disk..."". In the new window, click ""Browse"". Navigate to your desktop, and select the .inf file you made earlier. Click ""Open"", then ""Okay"". Click ""Next"". On the window that pops up, simply confirm your choice. Once it's done, press Ok.")
91 | Dim psi As New ProcessStartInfo()
92 | psi.Verb = "runas"
93 | psi.FileName = "cmd.exe"
94 | MsgBox("Heres the last step! 2 commands are going to be put into the log, open up a adminstator command prompt and paste those 2 commands into it in order, after that you'll be done!")
95 | Dim command As String = "cd " & System.AppDomain.CurrentDomain.BaseDirectory() & "\checkm8-files\checkm8\ipwndfu-master\"
96 | logger("Command 1: " & command)
97 | command = "python.exe ipwndfu -p"
98 | logger("Command 2: " & command)
99 | My.Settings.safemode = False
100 | My.Settings.Save()
101 | End If
102 | End Sub
103 |
104 | Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
105 | MsgBox("Checkm8, libusb are property of their respectful owners, not Most Gooder. Some of the prompts that you'll see in this program were copied straight from ""u/NeoBassMakesWafflez""
106 | on his reddit post ""[Tutorial] How to run Checkm8 on Windows 10"", plus this program wouldn't of been made without them! The version of checkm8 used in this program was modified by Geohot to run on Windows. If I missed anybody in the credits please let me know!")
107 | End Sub
108 | End Class
109 |
--------------------------------------------------------------------------------
/Checkm8 Installer/My Project/Application.Designer.vb:
--------------------------------------------------------------------------------
1 | '------------------------------------------------------------------------------
2 | '
3 | ' This code was generated by a tool.
4 | ' Runtime Version:4.0.30319.42000
5 | '
6 | ' Changes to this file may cause incorrect behavior and will be lost if
7 | ' the code is regenerated.
8 | '
9 | '------------------------------------------------------------------------------
10 |
11 | Option Strict On
12 | Option Explicit On
13 |
14 |
15 | Namespace My
16 |
17 | 'NOTE: This file is auto-generated; do not modify it directly. To make changes,
18 | ' or if you encounter build errors in this file, go to the Project Designer
19 | ' (go to Project Properties or double-click the My Project node in
20 | ' Solution Explorer), and make changes on the Application tab.
21 | '
22 | Partial Friend Class MyApplication
23 |
24 | _
25 | Public Sub New()
26 | MyBase.New(Global.Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows)
27 | Me.IsSingleInstance = false
28 | Me.EnableVisualStyles = true
29 | Me.SaveMySettingsOnExit = true
30 | Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses
31 | End Sub
32 |
33 | _
34 | Protected Overrides Sub OnCreateMainForm()
35 | Me.MainForm = Global.Checkm8_Installer.Form1
36 | End Sub
37 | End Class
38 | End Namespace
39 |
--------------------------------------------------------------------------------
/Checkm8 Installer/My Project/Application.myapp:
--------------------------------------------------------------------------------
1 |
2 |
3 | true
4 | Form1
5 | false
6 | 0
7 | true
8 | 0
9 | 0
10 | true
11 |
12 |
--------------------------------------------------------------------------------
/Checkm8 Installer/My Project/AssemblyInfo.vb:
--------------------------------------------------------------------------------
1 | Imports System
2 | Imports System.Reflection
3 | Imports System.Runtime.InteropServices
4 |
5 | ' General Information about an assembly is controlled through the following
6 | ' set of attributes. Change these attribute values to modify the information
7 | ' associated with an assembly.
8 |
9 | ' Review the values of the assembly attributes
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 | 'The following GUID is for the ID of the typelib if this project is exposed to COM
21 |
22 |
23 | ' Version information for an assembly consists of the following four values:
24 | '
25 | ' Major Version
26 | ' Minor Version
27 | ' Build Number
28 | ' Revision
29 | '
30 | ' You can specify all the values or you can default the Build and Revision Numbers
31 | ' by using the '*' as shown below:
32 | '
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/Checkm8 Installer/My Project/Resources.Designer.vb:
--------------------------------------------------------------------------------
1 | '------------------------------------------------------------------------------
2 | '
3 | ' This code was generated by a tool.
4 | ' Runtime Version:4.0.30319.42000
5 | '
6 | ' Changes to this file may cause incorrect behavior and will be lost if
7 | ' the code is regenerated.
8 | '
9 | '------------------------------------------------------------------------------
10 |
11 | Option Strict On
12 | Option Explicit On
13 |
14 |
15 | Namespace My.Resources
16 |
17 | 'This class was auto-generated by the StronglyTypedResourceBuilder
18 | 'class via a tool like ResGen or Visual Studio.
19 | 'To add or remove a member, edit your .ResX file then rerun ResGen
20 | 'with the /str option, or rebuild your VS project.
21 | '''
22 | ''' A strongly-typed resource class, for looking up localized strings, etc.
23 | '''
24 | _
28 | Friend Module Resources
29 |
30 | Private resourceMan As Global.System.Resources.ResourceManager
31 |
32 | Private resourceCulture As Global.System.Globalization.CultureInfo
33 |
34 | '''
35 | ''' Returns the cached ResourceManager instance used by this class.
36 | '''
37 | _
38 | Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
39 | Get
40 | If Object.ReferenceEquals(resourceMan, Nothing) Then
41 | Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Checkm8_Installer.Resources", GetType(Resources).Assembly)
42 | resourceMan = temp
43 | End If
44 | Return resourceMan
45 | End Get
46 | End Property
47 |
48 | '''
49 | ''' Overrides the current thread's CurrentUICulture property for all
50 | ''' resource lookups using this strongly typed resource class.
51 | '''
52 | _
53 | Friend Property Culture() As Global.System.Globalization.CultureInfo
54 | Get
55 | Return resourceCulture
56 | End Get
57 | Set(ByVal value As Global.System.Globalization.CultureInfo)
58 | resourceCulture = value
59 | End Set
60 | End Property
61 | End Module
62 | End Namespace
63 |
--------------------------------------------------------------------------------
/Checkm8 Installer/My Project/Resources.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 | text/microsoft-resx
107 |
108 |
109 | 2.0
110 |
111 |
112 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
113 |
114 |
115 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
--------------------------------------------------------------------------------
/Checkm8 Installer/My Project/Settings.Designer.vb:
--------------------------------------------------------------------------------
1 | '------------------------------------------------------------------------------
2 | '
3 | ' This code was generated by a tool.
4 | ' Runtime Version:4.0.30319.42000
5 | '
6 | ' Changes to this file may cause incorrect behavior and will be lost if
7 | ' the code is regenerated.
8 | '
9 | '------------------------------------------------------------------------------
10 |
11 | Option Strict On
12 | Option Explicit On
13 |
14 |
15 | Namespace My
16 |
17 | _
20 | Partial Friend NotInheritable Class MySettings
21 | Inherits Global.System.Configuration.ApplicationSettingsBase
22 |
23 | Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings)
24 |
25 | #Region "My.Settings Auto-Save Functionality"
26 | #If _MyType = "WindowsForms" Then
27 | Private Shared addedHandler As Boolean
28 |
29 | Private Shared addedHandlerLockObject As New Object
30 |
31 | _
32 | Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs)
33 | If My.Application.SaveMySettingsOnExit Then
34 | My.Settings.Save()
35 | End If
36 | End Sub
37 | #End If
38 | #End Region
39 |
40 | Public Shared ReadOnly Property [Default]() As MySettings
41 | Get
42 |
43 | #If _MyType = "WindowsForms" Then
44 | If Not addedHandler Then
45 | SyncLock addedHandlerLockObject
46 | If Not addedHandler Then
47 | AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
48 | addedHandler = True
49 | End If
50 | End SyncLock
51 | End If
52 | #End If
53 | Return defaultInstance
54 | End Get
55 | End Property
56 |
57 | _
60 | Public Property safemode() As Boolean
61 | Get
62 | Return CType(Me("safemode"),Boolean)
63 | End Get
64 | Set
65 | Me("safemode") = value
66 | End Set
67 | End Property
68 | End Class
69 | End Namespace
70 |
71 | Namespace My
72 |
73 | _
76 | Friend Module MySettingsProperty
77 |
78 | _
79 | Friend ReadOnly Property Settings() As Global.Checkm8_Installer.My.MySettings
80 | Get
81 | Return Global.Checkm8_Installer.My.MySettings.Default
82 | End Get
83 | End Property
84 | End Module
85 | End Namespace
86 |
--------------------------------------------------------------------------------
/Checkm8 Installer/My Project/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | False
7 |
8 |
9 |
--------------------------------------------------------------------------------