Commit 40849d9f981c448865fe48635909828017100ce6
1 parent
646b7578
Exists in
Au-ghub/master
Adicionei download e extração de sinais.
Baixa os sinais 1.zip, 2.zip... atualizados ou ausentes na máquina do usuário e os extrai uma pasta antes da pasta da versão. Ainda precisa atualizar o endereço da pasta dos sinais remotos e adicionar o NVDA.
Showing
2 changed files
with
554 additions
and
0 deletions
Show diff stats
@@ -0,0 +1,175 @@ | @@ -0,0 +1,175 @@ | ||
1 | +<?xml version="1.0" encoding="Windows-1252"?> | ||
2 | +<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | ||
3 | + <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> | ||
4 | + <PropertyGroup> | ||
5 | + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> | ||
6 | + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> | ||
7 | + <ProjectGuid>{6EB1FB18-7A1B-46E0-9991-A18B3AA32E5C}</ProjectGuid> | ||
8 | + <OutputType>Exe</OutputType> | ||
9 | + <AppDesignerFolder>Properties</AppDesignerFolder> | ||
10 | + <RootNamespace>VLIBRAS_II</RootNamespace> | ||
11 | + <AssemblyName>VLIBRAS_II</AssemblyName> | ||
12 | + <TargetFrameworkVersion>v4.5</TargetFrameworkVersion> | ||
13 | + <FileAlignment>512</FileAlignment> | ||
14 | + <IsWebBootstrapper>true</IsWebBootstrapper> | ||
15 | + <PublishUrl>C:\Users\Caio Moraes\Documents\AU\release\</PublishUrl> | ||
16 | + <Install>true</Install> | ||
17 | + <InstallFrom>Web</InstallFrom> | ||
18 | + <UpdateEnabled>true</UpdateEnabled> | ||
19 | + <UpdateMode>Foreground</UpdateMode> | ||
20 | + <UpdateInterval>7</UpdateInterval> | ||
21 | + <UpdateIntervalUnits>Days</UpdateIntervalUnits> | ||
22 | + <UpdatePeriodically>false</UpdatePeriodically> | ||
23 | + <UpdateRequired>true</UpdateRequired> | ||
24 | + <MapFileExtensions>false</MapFileExtensions> | ||
25 | + <InstallUrl>http://150.165.205.137:8080/</InstallUrl> | ||
26 | + <UpdateUrl>http://150.165.205.137:8080/</UpdateUrl> | ||
27 | + <ProductName>VLIBRAS</ProductName> | ||
28 | + <PublisherName>LAVID-UFPB</PublisherName> | ||
29 | + <MinimumRequiredVersion>1.0.0.67</MinimumRequiredVersion> | ||
30 | + <OpenBrowserOnPublish>false</OpenBrowserOnPublish> | ||
31 | + <ApplicationRevision>77</ApplicationRevision> | ||
32 | + <ApplicationVersion>1.0.0.%2a</ApplicationVersion> | ||
33 | + <UseApplicationTrust>true</UseApplicationTrust> | ||
34 | + <CreateDesktopShortcut>true</CreateDesktopShortcut> | ||
35 | + <PublishWizardCompleted>true</PublishWizardCompleted> | ||
36 | + <BootstrapperEnabled>true</BootstrapperEnabled> | ||
37 | + </PropertyGroup> | ||
38 | + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> | ||
39 | + <PlatformTarget>AnyCPU</PlatformTarget> | ||
40 | + <DebugSymbols>true</DebugSymbols> | ||
41 | + <DebugType>full</DebugType> | ||
42 | + <Optimize>false</Optimize> | ||
43 | + <OutputPath>bin\Debug\</OutputPath> | ||
44 | + <DefineConstants>DEBUG;TRACE</DefineConstants> | ||
45 | + <ErrorReport>prompt</ErrorReport> | ||
46 | + <WarningLevel>4</WarningLevel> | ||
47 | + </PropertyGroup> | ||
48 | + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> | ||
49 | + <PlatformTarget>AnyCPU</PlatformTarget> | ||
50 | + <DebugType>pdbonly</DebugType> | ||
51 | + <Optimize>true</Optimize> | ||
52 | + <OutputPath>bin\Release\</OutputPath> | ||
53 | + <DefineConstants>TRACE</DefineConstants> | ||
54 | + <ErrorReport>prompt</ErrorReport> | ||
55 | + <WarningLevel>4</WarningLevel> | ||
56 | + </PropertyGroup> | ||
57 | + <PropertyGroup> | ||
58 | + <TargetZone>LocalIntranet</TargetZone> | ||
59 | + </PropertyGroup> | ||
60 | + <PropertyGroup> | ||
61 | + <GenerateManifests>true</GenerateManifests> | ||
62 | + </PropertyGroup> | ||
63 | + <PropertyGroup> | ||
64 | + <ApplicationManifest>Properties\app.manifest</ApplicationManifest> | ||
65 | + </PropertyGroup> | ||
66 | + <PropertyGroup> | ||
67 | + <SignManifests>true</SignManifests> | ||
68 | + </PropertyGroup> | ||
69 | + <PropertyGroup> | ||
70 | + <ManifestCertificateThumbprint>2811720AF50392C2792C67C4DEBCB1D40662604A</ManifestCertificateThumbprint> | ||
71 | + </PropertyGroup> | ||
72 | + <PropertyGroup> | ||
73 | + <ManifestKeyFile>AU_5_TemporaryKey.pfx</ManifestKeyFile> | ||
74 | + </PropertyGroup> | ||
75 | + <PropertyGroup> | ||
76 | + <ManifestTimestampUrl>http://timestamp.verisign.com/scripts/timstamp.dll</ManifestTimestampUrl> | ||
77 | + </PropertyGroup> | ||
78 | + <PropertyGroup> | ||
79 | + <ApplicationIcon>icon_vlibras.ico</ApplicationIcon> | ||
80 | + </PropertyGroup> | ||
81 | + <PropertyGroup> | ||
82 | + <StartupObject /> | ||
83 | + </PropertyGroup> | ||
84 | + <ItemGroup> | ||
85 | + <Reference Include="System" /> | ||
86 | + <Reference Include="System.Core" /> | ||
87 | + <Reference Include="System.IO.Compression" /> | ||
88 | + <Reference Include="System.IO.Compression.FileSystem" /> | ||
89 | + <Reference Include="System.Xml.Linq" /> | ||
90 | + <Reference Include="System.Data.DataSetExtensions" /> | ||
91 | + <Reference Include="Microsoft.CSharp" /> | ||
92 | + <Reference Include="System.Data" /> | ||
93 | + <Reference Include="System.Deployment" /> | ||
94 | + <Reference Include="System.Drawing" /> | ||
95 | + <Reference Include="System.Windows.Forms" /> | ||
96 | + <Reference Include="System.Xml" /> | ||
97 | + </ItemGroup> | ||
98 | + <ItemGroup> | ||
99 | + <Compile Include="Form1.cs"> | ||
100 | + <SubType>Form</SubType> | ||
101 | + </Compile> | ||
102 | + <Compile Include="Form1.Designer.cs"> | ||
103 | + <DependentUpon>Form1.cs</DependentUpon> | ||
104 | + </Compile> | ||
105 | + <Compile Include="Program.cs" /> | ||
106 | + <Compile Include="Properties\AssemblyInfo.cs" /> | ||
107 | + <EmbeddedResource Include="Form1.resx"> | ||
108 | + <DependentUpon>Form1.cs</DependentUpon> | ||
109 | + </EmbeddedResource> | ||
110 | + <EmbeddedResource Include="Properties\Resources.resx"> | ||
111 | + <Generator>ResXFileCodeGenerator</Generator> | ||
112 | + <LastGenOutput>Resources.Designer.cs</LastGenOutput> | ||
113 | + <SubType>Designer</SubType> | ||
114 | + </EmbeddedResource> | ||
115 | + <Compile Include="Properties\Resources.Designer.cs"> | ||
116 | + <AutoGen>True</AutoGen> | ||
117 | + <DependentUpon>Resources.resx</DependentUpon> | ||
118 | + <DesignTime>True</DesignTime> | ||
119 | + </Compile> | ||
120 | + <!-- <None Include="AU_5_TemporaryKey.pfx" /> --> | ||
121 | + <None Include="Properties\app.manifest"> | ||
122 | + <SubType>Designer</SubType> | ||
123 | + </None> | ||
124 | + <None Include="Properties\Settings.settings"> | ||
125 | + <Generator>SettingsSingleFileGenerator</Generator> | ||
126 | + <LastGenOutput>Settings.Designer.cs</LastGenOutput> | ||
127 | + </None> | ||
128 | + <Compile Include="Properties\Settings.Designer.cs"> | ||
129 | + <AutoGen>True</AutoGen> | ||
130 | + <DependentUpon>Settings.settings</DependentUpon> | ||
131 | + <DesignTimeSharedInput>True</DesignTimeSharedInput> | ||
132 | + </Compile> | ||
133 | + </ItemGroup> | ||
134 | + <ItemGroup> | ||
135 | + <None Include="App.config" /> | ||
136 | + </ItemGroup> | ||
137 | + <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> | ||
138 | + <!-- To modify your build process, add your task inside one of the targets below and uncomment it. | ||
139 | + Other similar extension points exist, see Microsoft.Common.targets. | ||
140 | + <Target Name="AfterBuild"> | ||
141 | + </Target> | ||
142 | + --> | ||
143 | + <!-- <Target Name="BeforeBuild"> | ||
144 | + <Exec Command=""C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Bin\signtool.exe" sign /f "$(ProjectDir)AU_1_TemporaryKey.pfx" /v "$(ProjectDir)bin\$(ConfigurationName)\$(TargetFileName)"" /> | ||
145 | + </Target> --> | ||
146 | + <!-- <Exec Command=""C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Bin\signtool.exe" sign /f "$(ProjectDir)AU_1_TemporaryKey.pfx" /p nightbird /v "$(ProjectDir)obj\x86\$(ConfigurationName)\$(TargetFileName)"" /> --> | ||
147 | + <ItemGroup> | ||
148 | + <Content Include="$(SolutionDir)enviar\**\*"> | ||
149 | + <Link>%(RecursiveDir)%(Filename)%(Extension)</Link> | ||
150 | + <Visible>false</Visible> | ||
151 | + </Content> | ||
152 | + <Content Include="$(SolutionDir)requisitos\**\*"> | ||
153 | + <Link>%(RecursiveDir)%(Filename)%(Extension)</Link> | ||
154 | + <Visible>false</Visible> | ||
155 | + </Content> | ||
156 | + <Content Include="icon_vlibras.ico" /> | ||
157 | + </ItemGroup> | ||
158 | + <ItemGroup> | ||
159 | + <BootstrapperPackage Include=".NETFramework,Version=v4.5"> | ||
160 | + <Visible>False</Visible> | ||
161 | + <ProductName>Microsoft .NET Framework 4.5 %28x86 and x64%29</ProductName> | ||
162 | + <Install>true</Install> | ||
163 | + </BootstrapperPackage> | ||
164 | + <BootstrapperPackage Include="Microsoft.Net.Client.3.5"> | ||
165 | + <Visible>False</Visible> | ||
166 | + <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName> | ||
167 | + <Install>false</Install> | ||
168 | + </BootstrapperPackage> | ||
169 | + <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1"> | ||
170 | + <Visible>False</Visible> | ||
171 | + <ProductName>.NET Framework 3.5 SP1</ProductName> | ||
172 | + <Install>false</Install> | ||
173 | + </BootstrapperPackage> | ||
174 | + </ItemGroup> | ||
175 | +</Project> | ||
0 | \ No newline at end of file | 176 | \ No newline at end of file |
@@ -0,0 +1,379 @@ | @@ -0,0 +1,379 @@ | ||
1 | +using System; | ||
2 | +using System.Collections.Generic; | ||
3 | +using System.Linq; | ||
4 | +using System.Threading.Tasks; | ||
5 | +using System.Windows.Forms; | ||
6 | +using System.Diagnostics; | ||
7 | +using System.Security.Permissions; | ||
8 | +using Microsoft.Win32; | ||
9 | +using System.Net; | ||
10 | +using System.Collections; | ||
11 | +using System.IO; | ||
12 | +using System.IO.Compression; | ||
13 | + | ||
14 | +namespace AU | ||
15 | +{ | ||
16 | + static class Program | ||
17 | + { | ||
18 | + public static bool RemoteFileExists(string url){ | ||
19 | + try{ | ||
20 | + //Creating the HttpWebRequest | ||
21 | + HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest; | ||
22 | + //Setting the Request method HEAD | ||
23 | + request.Method = "HEAD"; | ||
24 | + //Getting the Web Response. | ||
25 | + HttpWebResponse response = request.GetResponse() as HttpWebResponse; | ||
26 | + //Returns TURE if the Status code == 200 | ||
27 | + return (response.StatusCode == HttpStatusCode.OK); | ||
28 | + } | ||
29 | + catch{ | ||
30 | + //Any exception will returns false. | ||
31 | + return false; | ||
32 | + } | ||
33 | + } | ||
34 | + | ||
35 | + //File.Exists(path); | ||
36 | + | ||
37 | + public static bool RemoteIsNewerThanLocal(string url, string path){ | ||
38 | + FileInfo sourceFile = new FileInfo(path); | ||
39 | + var request = (HttpWebRequest)WebRequest.Create(url); | ||
40 | + request.Method = "HEAD"; | ||
41 | + var response = (HttpWebResponse)request.GetResponse(); | ||
42 | + //Console.WriteLine("response.LastModified: "+response.LastModified); | ||
43 | + //Console.WriteLine("sourceFile.LastWriteTime: "+sourceFile.LastWriteTime); | ||
44 | + if(response.LastModified > sourceFile.LastWriteTime){ | ||
45 | + return true; | ||
46 | + }else{ | ||
47 | + return false; | ||
48 | + } | ||
49 | + } | ||
50 | + | ||
51 | + public static void DownloadFileToPath(string site, string path){ | ||
52 | + try{ | ||
53 | + WebClient webClient = new WebClient(); | ||
54 | + webClient.DownloadFile(site, path); | ||
55 | + }catch(Exception e){ | ||
56 | + Console.WriteLine("Erro: {0}", e); | ||
57 | + } | ||
58 | + } | ||
59 | + static void ResetEnvVar(){ | ||
60 | + string vLibrasAtual = Environment.GetEnvironmentVariable("PATH_VLIBRAS",EnvironmentVariableTarget.Machine); | ||
61 | + string vLibrasNovo = Directory.GetCurrentDirectory(); | ||
62 | + | ||
63 | + if(!vLibrasNovo.Equals(vLibrasAtual)){ | ||
64 | + Console.WriteLine("O VLibras foi atualizado ou não estava instalado, é necessário atualizar algumas informações."); | ||
65 | + Console.WriteLine("Por favor, confirme a reconfiguração das variáveis de ambiente do VLibras."); | ||
66 | + string[] buscaReset = Directory.GetFiles(Directory.GetCurrentDirectory(), "ResetEnvVar.exe", SearchOption.AllDirectories); | ||
67 | + string resetPath = buscaReset[0]; | ||
68 | + | ||
69 | + System.Diagnostics.ProcessStartInfo resetProcInfo = new System.Diagnostics.ProcessStartInfo(); | ||
70 | + resetProcInfo.FileName = resetPath; | ||
71 | + resetProcInfo.Verb = "runas"; //ADM | ||
72 | + //resetProcInfo.Arguments = comandoUnins; | ||
73 | + | ||
74 | + System.Diagnostics.Process resetProc = new System.Diagnostics.Process(); | ||
75 | + resetProc.StartInfo = resetProcInfo; | ||
76 | + resetProc.Start(); | ||
77 | + resetProc.WaitForExit(); | ||
78 | + } | ||
79 | + } | ||
80 | + | ||
81 | + static void desinstalarVLibras(RegistryKey reg){ | ||
82 | + //Variáveis para desinstalação | ||
83 | + System.Diagnostics.Process uninsProc = new System.Diagnostics.Process(); | ||
84 | + System.Diagnostics.ProcessStartInfo uninsProcInfo = new System.Diagnostics.ProcessStartInfo(); | ||
85 | + //uninsProcInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; | ||
86 | + uninsProcInfo.FileName = "cmd.exe"; | ||
87 | + string comandoUnins; | ||
88 | + comandoUnins = "/C" + reg.GetValue("QuietUninstallString").ToString().Replace("\"", ""); | ||
89 | + uninsProcInfo.Arguments = comandoUnins; | ||
90 | + uninsProc.StartInfo = uninsProcInfo; | ||
91 | + uninsProc.Start(); | ||
92 | + uninsProc.WaitForExit(); | ||
93 | + } | ||
94 | + | ||
95 | + static void instalarPython(int opSys){ | ||
96 | + //Console.WriteLine("Por favor, confirme a instalação do Python 2.7.9"); | ||
97 | + string[] buscaPython; | ||
98 | + if(opSys == 64){ | ||
99 | + buscaPython = Directory.GetFiles(Directory.GetCurrentDirectory(), "python-2.7.9.amd64.msi", SearchOption.AllDirectories); | ||
100 | + }else{ | ||
101 | + buscaPython = Directory.GetFiles(Directory.GetCurrentDirectory(), "python-2.7.9.msi", SearchOption.AllDirectories); | ||
102 | + } | ||
103 | + string pythonPath = buscaPython[0]; | ||
104 | + string comandoIns = "/C" + pythonPath; | ||
105 | + | ||
106 | + System.Diagnostics.ProcessStartInfo insProcInfo = new System.Diagnostics.ProcessStartInfo(); | ||
107 | + System.Diagnostics.Process insProc = new System.Diagnostics.Process(); | ||
108 | + | ||
109 | + insProcInfo.FileName = "cmd.exe"; | ||
110 | + insProcInfo.Arguments = comandoIns; | ||
111 | + //insProcInfo.Verb = "runas"; //ADM | ||
112 | + | ||
113 | + insProc.StartInfo = insProcInfo; | ||
114 | + insProc.Start(); | ||
115 | + insProc.WaitForExit(); | ||
116 | + | ||
117 | + } | ||
118 | + | ||
119 | + [STAThread] | ||
120 | + static void Main() | ||
121 | + { | ||
122 | + | ||
123 | + //VERFICAÇÃO E DESINSTALAÇÃO DO VLIBRAS DESCONTINUADO | ||
124 | + //Variáveis para verificar se há instalação no registro | ||
125 | + var lm64 = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64); | ||
126 | + var lm32 = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32); | ||
127 | + RegistryKey reg; | ||
128 | + RegistryKey reg2; | ||
129 | + RegistryKey reg3; | ||
130 | + RegistryKey reg4; | ||
131 | + | ||
132 | + bool tentouX64 = false; | ||
133 | + Console.WriteLine("Verificação se há versões descontinuadas do VLibras."); | ||
134 | + //x64 | ||
135 | + try{ | ||
136 | + reg = lm64.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{84B73167-EF7F-42BB-9CCD-E1A8E2C53659-vlibras}_is1"); | ||
137 | + if(reg == null){ | ||
138 | + Console.WriteLine("Chave do 64 é nula."); | ||
139 | + Console.WriteLine("UninstallString 64: nenhum."); | ||
140 | + Console.WriteLine("QuietUninstallString 64: nenhum."); | ||
141 | + }else{ | ||
142 | + tentouX64 = true; | ||
143 | + Console.WriteLine("Chave: "+reg.ToString()); | ||
144 | + Console.WriteLine("UninstallString 64: "+reg.GetValue("UninstallString").ToString().Replace("\"", "")); | ||
145 | + Console.WriteLine("QuietUninstallString 64: "+reg.GetValue("QuietUninstallString").ToString().Replace("\"", "")); | ||
146 | + //desinstalação da versão x64 | ||
147 | + Console.WriteLine("Desinstalando a versão descontinuada do VLibras x64. Por favor, aguarde."); | ||
148 | + desinstalarVLibras(reg); | ||
149 | + //Console.WriteLine("Desinstalou a versão descontinuada do VLibras x64."); | ||
150 | + } | ||
151 | + }catch(Exception e){ | ||
152 | + Console.WriteLine("Erro x64: {0}",e); | ||
153 | + } | ||
154 | + | ||
155 | + Console.WriteLine(""); | ||
156 | + | ||
157 | + //x86 | ||
158 | + if(!tentouX64){ | ||
159 | + try{ | ||
160 | + reg = lm32.OpenSubKey(@"SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{84B73167-EF7F-42BB-9CCD-E1A8E2C53659-vlibras}_is1"); | ||
161 | + if(reg == null){ | ||
162 | + Console.WriteLine("Chave do 32 é nula."); | ||
163 | + Console.WriteLine("UninstallString 32: nenhum."); | ||
164 | + Console.WriteLine("QuietUninstallString 32: nenhum."); | ||
165 | + }else{ | ||
166 | + Console.WriteLine("Chave: "+reg.ToString()); | ||
167 | + Console.WriteLine("UninstallString 32: "+reg.GetValue("UninstallString").ToString().Replace("\"", "")); | ||
168 | + Console.WriteLine("QuietUninstallString 32: "+reg.GetValue("QuietUninstallString").ToString().Replace("\"", "")); | ||
169 | + //desinstalação da versão x86 | ||
170 | + Console.WriteLine("Desinstalando a versão descontinuada do VLibras x86. Por favor, aguarde."); | ||
171 | + desinstalarVLibras(reg); | ||
172 | + //Console.WriteLine("Desinstalou a versão descontinuada do VLibras x86."); | ||
173 | + } | ||
174 | + }catch(Exception e){ | ||
175 | + Console.WriteLine("Erro x86: {0}",e); | ||
176 | + } | ||
177 | + } | ||
178 | + | ||
179 | + Console.WriteLine(""); | ||
180 | + Console.WriteLine("Verificando se o Python 2.7.9 está instalado"); | ||
181 | + | ||
182 | + //VERIFICAÇÃO DO INTERPRETADOR PYTHON | ||
183 | + //x64 | ||
184 | + try{ | ||
185 | + reg = lm64.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{79F081BF-7454-43DB-BD8F-9EE596813232}"); | ||
186 | + reg2 = lm64.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{79F081BF-7454-43DB-BD8F-9EE596813233}"); | ||
187 | + reg3 = lm32.OpenSubKey(@"SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{79F081BF-7454-43DB-BD8F-9EE596813232}"); | ||
188 | + reg4 = lm32.OpenSubKey(@"SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{79F081BF-7454-43DB-BD8F-9EE596813233}"); | ||
189 | + if(reg == null && reg2 == null && reg3 == null && reg4 == null){ | ||
190 | + Console.WriteLine("O python 2.7.9 não se encontra instalado. Por confirme a instalação."); | ||
191 | + if(Environment.Is64BitOperatingSystem){ | ||
192 | + instalarPython(64); | ||
193 | + }else{ | ||
194 | + instalarPython(86); | ||
195 | + } | ||
196 | + } | ||
197 | + }catch(Exception e){ | ||
198 | + Console.WriteLine("Erro python: {0}",e); | ||
199 | + } | ||
200 | + | ||
201 | + Console.WriteLine(""); | ||
202 | + Console.WriteLine("Checando as variáveis de ambiente."); | ||
203 | + | ||
204 | + //CONFIGURAÇÃO DAS VARIÁVEIS DE AMBIENTE | ||
205 | + try{ | ||
206 | + ResetEnvVar(); | ||
207 | + }catch(Exception e){ | ||
208 | + Console.WriteLine("Erro Var Env: {0}", e); | ||
209 | + } | ||
210 | + | ||
211 | + | ||
212 | + Console.WriteLine(""); | ||
213 | + //DOWNLOAD DOS SINAIS | ||
214 | + //BAIXA OS ZIPS DOS SINAIS | ||
215 | + string url = @"http://127.0.0.1:8080/"; | ||
216 | + string path = @"..\"; | ||
217 | + string extractPath = @"..\Bundles\"; | ||
218 | + string ext = @".zip"; | ||
219 | + int i = 1; | ||
220 | + string remote; | ||
221 | + string local; | ||
222 | + //baixa apenas se for mais recente ou se usuário não possuir cópia | ||
223 | + while(true){ | ||
224 | + remote = url+i.ToString()+ext; | ||
225 | + local = path+i.ToString()+ext; | ||
226 | + if(!RemoteFileExists(remote)){ | ||
227 | + //NECESSÁRIO PARA EVITAR IndexOutOfRange | ||
228 | + i--; | ||
229 | + break; | ||
230 | + }else{ | ||
231 | + if(!File.Exists(local)){ | ||
232 | + DownloadFileToPath(remote, local); | ||
233 | + }else{ | ||
234 | + if(RemoteIsNewerThanLocal(remote, local)){ | ||
235 | + DownloadFileToPath(remote, local); | ||
236 | + //DELETA ARQUIVO DE VERIFICAÇÃO PARA QUE HAJA NOVA EXTRAÇÃO | ||
237 | + File.Delete(extractPath + i); | ||
238 | + } | ||
239 | + } | ||
240 | + } | ||
241 | + i++; | ||
242 | + } | ||
243 | + | ||
244 | + | ||
245 | + //EXTRAÇÃO: | ||
246 | + //EXTRAI APENAS SE NÃO TIVER O ARQUIVO HOMÔNIMO SEM EXTENSÃO NA PASTA SINAIS | ||
247 | + //SE O CAMINHO DE EXTRAÇÃO NÃO EXISTE, ELE SERÁ CRIADO | ||
248 | + bool exists = System.IO.Directory.Exists(extractPath); | ||
249 | + if(!exists){ | ||
250 | + System.IO.Directory.CreateDirectory(extractPath); | ||
251 | + } | ||
252 | + | ||
253 | + while(i > 0){ | ||
254 | + if(!File.Exists(extractPath+i.ToString())){ | ||
255 | + string zip = path+i.ToString()+ext; | ||
256 | + using (ZipArchive archive = ZipFile.Open(zip, ZipArchiveMode.Read, System.Text.Encoding.GetEncoding(System.Globalization.CultureInfo.CurrentCulture.TextInfo.OEMCodePage))){ | ||
257 | + foreach (ZipArchiveEntry entry in archive.Entries){ | ||
258 | + //POSSO FILTRAR E EXTRAIR APENAS ARQUIVOS QUE TERMINEM COM O VALOR DA STRING | ||
259 | + if (entry.FullName.EndsWith("", StringComparison.OrdinalIgnoreCase)) | ||
260 | + { | ||
261 | + entry.ExtractToFile(Path.Combine(extractPath, entry.FullName), true); | ||
262 | + } | ||
263 | + } | ||
264 | + } | ||
265 | + //CRIA UM ARQUIVO 1(SEM EXTENSÃO), 2, 3... NA PASTA BUNDLES PARA VERIFICAÇÃO DE EXTRAÇÃO PRÉVIA | ||
266 | + //SÓ É CRIADO APÓS EXTRAÇÃO DE TODOS OS ARQUIVOS DE CADA ZIP | ||
267 | + File.Create(extractPath+i).Close(); | ||
268 | + } | ||
269 | + i--; | ||
270 | + } | ||
271 | + | ||
272 | + //EXTRAI OS BUNDLES | ||
273 | + /*//VERSÃO QUE EXTRAIA TODOS ZIPS NA PASTA SINAIS | ||
274 | + try{ | ||
275 | + //ARRAY COM PATHS DOS ZIPS: "C:\...\blabla.zip" | ||
276 | + string[] zipPaths = Directory.GetFiles(Directory.GetCurrentDirectory()+@"\Sinais\", "*.zip", SearchOption.AllDirectories); | ||
277 | + | ||
278 | + //ARRAY COM NOMES DOS ZIPS: "blabla" | ||
279 | + string[] nomeZips = new string[zipPaths.Length]; | ||
280 | + for(int i = 0; i < zipPaths.Length; i++){ | ||
281 | + int slashIdx = zipPaths[i].LastIndexOf(@"\"); | ||
282 | + int extIdx = zipPaths[i].LastIndexOf(@"."); | ||
283 | + //Console.WriteLine("path>> "+zipPath); | ||
284 | + //Console.WriteLine("removido a extensão>> "+zipPath.Remove(extIdx, 4)); | ||
285 | + //Console.WriteLine("nome do arquivo com extensão>> "+zipPath.Remove(0, slashIdx + 1)); | ||
286 | + Console.WriteLine("nome do arquivo sem extensão>> "+zipPaths[i].Remove(extIdx, 4).Remove(0, slashIdx + 1)); | ||
287 | + nomeZips[i] = zipPaths[i].Remove(extIdx, 4).Remove(0, slashIdx + 1); | ||
288 | + //Console.WriteLine("nomeZips["+i+"]>> "+ nomeZips[i]); | ||
289 | + } | ||
290 | + | ||
291 | + //EXTRAI UM ARQUIVO: "C:\...\pastaComZip\zipado.zip" | ||
292 | + //EM: "C:\...\pastaComZip\zipado\arquivoQueEstavaEmZipado" | ||
293 | + for(int i = 0; i < nomeZips.Length; i++){ | ||
294 | + string extractPath = zipPaths[i]+@"\..\..\..\Bundles\"; //volta duas e cria lá | ||
295 | + | ||
296 | + //SE O CAMINHO DE EXTRAÇÃO NÃO EXISTE, ELE SERÁ CRIADO | ||
297 | + bool exists = System.IO.Directory.Exists(extractPath); | ||
298 | + if(!exists){ | ||
299 | + System.IO.Directory.CreateDirectory(extractPath); | ||
300 | + } | ||
301 | + //EXTRAÇÃO DOS ARQUIVOS | ||
302 | + using (ZipArchive archive = ZipFile.Open(zipPaths[i], ZipArchiveMode.Read, System.Text.Encoding.GetEncoding(System.Globalization.CultureInfo.CurrentCulture.TextInfo.OEMCodePage))) | ||
303 | + { | ||
304 | + foreach (ZipArchiveEntry entry in archive.Entries) | ||
305 | + { | ||
306 | + //POSSO FILTRAR E EXTRAIR APENAS ARQUIVOS QUE TERMINEM COM O VALOR DA STRING | ||
307 | + if (entry.FullName.EndsWith("", StringComparison.OrdinalIgnoreCase)) | ||
308 | + { | ||
309 | + entry.ExtractToFile(Path.Combine(extractPath, entry.FullName), true); | ||
310 | + } | ||
311 | + } | ||
312 | + } | ||
313 | + } | ||
314 | + //DELETA O ZIP NO FINAL | ||
315 | + for(int i = 0; i < zipPaths.Length; i++){ | ||
316 | + if(File.Exists(zipPaths[i])){ | ||
317 | + File.Delete(zipPaths[i]); | ||
318 | + } | ||
319 | + } | ||
320 | + }catch(Exception e){ | ||
321 | + Console.WriteLine("ERRO ZipFile: {0}", e); | ||
322 | + } | ||
323 | + */ | ||
324 | + /*//VERSÃO QUE CHECAVA UM ARQUIVO DICTIONARY_VERSION.TXT | ||
325 | + try{ | ||
326 | + //string dictVer = System.IO.File.ReadAllText(@"dictionary_version.txt"); | ||
327 | + string[] dictVer = Directory.GetFiles(Directory.GetCurrentDirectory(), "dictVer.txt", SearchOption.AllDirectories); | ||
328 | + if(dictVer.Length == 0){ | ||
329 | + Console.WriteLine("Path de DictVer.txt: null path"); | ||
330 | + }else{ | ||
331 | + Console.WriteLine("Path de DictVer.txt: " + dictVer[0]); | ||
332 | + } | ||
333 | + if(dictVer.Length == 0){ | ||
334 | + string[] buscaBundles = Directory.GetFiles(Directory.GetCurrentDirectory(), "Bundles.zip", SearchOption.AllDirectories); | ||
335 | + string zipPath = buscaBundles[0]; | ||
336 | + string extractPath = buscaBundles[0] + @"\..\Bundles\"; | ||
337 | + | ||
338 | + using (ZipArchive archive = ZipFile.Open(zipPath, ZipArchiveMode.Read, System.Text.Encoding.GetEncoding(System.Globalization.CultureInfo.CurrentCulture.TextInfo.OEMCodePage))) | ||
339 | + { | ||
340 | + foreach (ZipArchiveEntry entry in archive.Entries) | ||
341 | + { | ||
342 | + if (entry.FullName.EndsWith("", StringComparison.OrdinalIgnoreCase)) | ||
343 | + { | ||
344 | + entry.ExtractToFile(Path.Combine(extractPath, entry.FullName), true); | ||
345 | + } | ||
346 | + } | ||
347 | + } | ||
348 | + } | ||
349 | + }catch(Exception e){ | ||
350 | + Console.WriteLine("ERRO ZipFile: {0}", e); | ||
351 | + } | ||
352 | + */ | ||
353 | + | ||
354 | + Console.WriteLine("Pré-requisitos verificados."); | ||
355 | + //Console.ReadKey(); | ||
356 | + | ||
357 | + | ||
358 | + | ||
359 | + //RODA O VLIBRAS | ||
360 | + try{ | ||
361 | + Process playerProc = new Process(); | ||
362 | + string[] buscaPlayer = Directory.GetFiles(Directory.GetCurrentDirectory(), "vlibrasPlayer.exe", SearchOption.AllDirectories); | ||
363 | + string player = buscaPlayer[0]; | ||
364 | + playerProc.StartInfo.FileName = player; | ||
365 | + playerProc.EnableRaisingEvents = true; | ||
366 | + playerProc.Start(); | ||
367 | + //playerProc.WaitForExit(); | ||
368 | + }catch(Exception e){ | ||
369 | + Console.WriteLine("Erro: {0}", e); | ||
370 | + } | ||
371 | + | ||
372 | + /* | ||
373 | + Application.EnableVisualStyles(); | ||
374 | + Application.SetCompatibleTextRenderingDefault(false); | ||
375 | + Application.Run(new Form1()); | ||
376 | + */ | ||
377 | + } | ||
378 | + } | ||
379 | +} |