Programmet - Haugelab



4880610-64135000ProgrammeringMathias Hauge, Casper Lundqvist, Tobias BrissingIndholdsfortegnelse TOC \o "1-3" \h \z \u Programmet PAGEREF _Toc486446986 \h 3SQL Database PAGEREF _Toc486446987 \h 6C# PAGEREF _Toc486446988 \h 7Windows Presentation Foundation PAGEREF _Toc486446989 \h 9Nedarvning PAGEREF _Toc486446990 \h 10Loginscreen.xaml PAGEREF _Toc486446991 \h 12LoginScreen.xaml.cs PAGEREF _Toc486446992 \h 13MainWindow.xaml PAGEREF _Toc486446993 \h 15MainWindow.xaml.cs PAGEREF _Toc486446994 \h 19MSI Installer (WIX Toolset) PAGEREF _Toc486446995 \h 23ProgrammetVores program som vi har lavet, er det program vi beskrev at vi ville lave i vores udviklings uge. Det er et program til en Service Desk som skal bruges til at effektivisere deres arbejdsgang ved at ha’ de genveje og programmer som de bruger mest til deres r?dighed. For at f? adgang til genvejene og programmerne er applikationen programmeret s?dan at den promter for brugernavn og password. Dette bliver holdt oppe imod en SQL database hvor ID, Username og password er gemt. Hvis det de skriver ind bliver fundet som match i SQL databasen s? f?r de lov til at komme videre ind til programmet. Hvis der ikke bliver fundet en match, s? vil der forekomme en popup med teksten ” Brugernavn eller Password er forkert”.I programmet er f?lgende:Sikkerhed:Username BoxPassword boxSQL database checkGenveje:Computer ManagementDevice ManagerDisplay SettingsProgram and FeaturesRegeditUser Account ControlEvent ViewerInternet PropertiesTask ManagerNetwork SettingsRemote Desktop ConnectionInternet ExplorerCMDPowershellControl PanelNotepadWindows Remote AssistanceProgrammer (eksekverbare .exe)SpeedtestTeamviewer 10PuttyAdvanced UninstallerNetwork ScannerWireless Key ViewerWireless Info ViewerProgram DebuggerStorage Size AnalyserInternet Connectivity MonitorProgrammet fungerer ved at man k?rere .exe filen hvor efter login boksen starter. Denne login boks best?r af 1 textbox som hedder txtUsername, 1 passwordbox som hedder txtPassword og en button som hedder btnSubmit. I de 2 boxe skrives brugernavn og password som bliver sendt via submit button til vores SQL database med strengen "SELECT COUNT(1) FROM tblUser WHERE UserName=@UserName AND Password=@Password". Hvis vores SQL data melder tilbage at der er en match bliver man sendt videre til vore MainWindows med applikationen med denne streng if (count == 1) {MainWindow dashboard = new MainWindow();dashboard.Show();this.Close(); }.Man kan logge ind via submit knappen, men vi ville ogs? gerne have at man kunne logge ind n?r man stod i password boxen og klikkede enter. For at g?re dette lavede vi en refactor af funktionen til submit knappen private void btnSubmit_Click(object sender, RoutedEventArgs e) {Login();} og kaldte p? denne funktion igen med private void Window_KeyUp(object sender, KeyEventArgs e) { if (e.Key == Key.Enter) Login(); }Vores program best?r bland andet af genveje, fx bliver taskmanager k?rt med linjen private void Button8_Click(object sender, RoutedEventArgs e){System.Diagnostics.Process.Start("taskmgr");}. Nogle af de mere komplexe ting bliver k?rt gennem en hidden cmd. Fx bliver internet propperties k?rt med linjen private void Button7_Click(object sender, RoutedEventArgs e) { System.Diagnostics.Process process = new System.Diagnostics.Process(); System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(); startInfo.CreateNoWindow = true; startInfo.UseShellExecute = false; startInfo.RedirectStandardOutput = true; startInfo.FileName = "CMD.exe"; startInfo.Arguments = "/c control inetcpl.cpl"; process.StartInfo = startInfo; process.Start(); process.WaitForExit(); }For at f? exe filerne med som resourcer bliver de via en .msi installer compilet med Wix Toolset fra RED. Dette g?r at vores single executed .exe filer bliver installeret som resourcer i en folder hvor vi kan kalde p? dem. Fx Putty kaldes med linjenprivate void Button19_Click(object sender, RoutedEventArgs e) { System.Diagnostics.Process.Start("C:/Program Files (x86)/DDS Toolbox/putty.exe"); }18421357048500Ved at bruge Wix Toolset kunne vi lave en MSI installer hvor vi kunne ha’ vores single .exe filer og vores database fil med over i. Dette g?r at man kan k?re programmet og de single .exe filer som vi har lagt som resourcer i vores msi pakke. Der er ogs? lavet en license.rtf fil med teksten til vores installer, billedet og andet ligger i resources mappen. SQL DatabaseTil vores projekt g?r vi brug af en SQL database, som indeholder en tabel med vores login oplysninger til programmer som ses i billedet nedenfor. SQL st?r for Structured Query Language og den udgave af SQL vi valgte at benytter er MSSQL 2014 som er udviklet af Microsoft.tblUserHer er tabellen som vores application holder sig op imod for at tjekke om brugernavn og password stemmer.C#C# er Microsofts multi-purpose languages som er et programmeringssprog, det bliver udviklet og vedligeholdt af Microsoft. C# g?r det muligt for udviklere at opbygge en r?kke sikre og robuste applikationer, der k?rer p? .NET Framework. Du kan bruge C # til at oprette Windows-klientprogrammer, XML-webtjenester, distribuerede komponenter, klient-serverprogrammer, databaseapplikationer og meget mere. Visual C # giver en avanceret kode editor, praktiske brugergr?nseflade designere, integreret debugger og mange andre v?rkt?jer til at g?re det lettere at udvikle applikationer baseret p? C # og .NET Framework. C # det nemt at udvikle softwarekomponenter gennem flere innovative sprogkonstruktioner, herunder f?lgende:Encapsulated method: signaturer kaldes delegerede, som muligg?r typebeskyttede begivenhedsmeddelelser.Properties: der tjener som accessors for private member variabler.Attributes: der giver deklarative metadata om typer i l?betid.Inline XML dokumentation kommentarer.Language-Integrated Query (LINQ): der indeholder indbyggede foresp?rgselsfunktioner p? tv?rs af forskellige datakilder.-22479030924500C # -programmer k?rer p? .NET Framework, en integreret del af Windows, der indeholder et virtuelt eksekveringssystem kaldet Common Language runtime (CLR) og et samlet s?t klassebiblioteker. CLR er den kommercielle implementering af Microsoft af den f?lles sproginfrastruktur (CLI), en international standard, der er grundlaget for at skabe eksekverings- og udviklingsmilj?er, hvor sprog og biblioteker arbejder sammen problemfrit. Kildekode skrevet i C # er udarbejdet i et mellemsprog (IL), der er i overensstemmelse med CLI-specifikationen. IL-koden og ressourcerne, s?som bitmaps og strenge, gemmes p? disk i en eksekverbar fil kaldet en samling, typisk med en udvidelse af .exe eller .dll. En samling indeholder et manifest, der giver information om samlingens typer, version, kultur og sikkerhedskrav. N?r C # -programmet udf?res, indl?ses samlingen i CLR, som kan tage forskellige handlinger baseret p? informationerne i manifestet. Derefter, hvis sikkerhedskravene er opfyldt, udf?rer CLR just-in-time (JIT) -samlingen for at konvertere IL-koden til indf?dte maskininstruktioner. CLR tilbyder ogs? andre tjenester i forbindelse med automatisk affaldsindsamling, undtagelsesh?ndtering og ressourceforvaltning. Kode, der udf?res af CLR, kaldes undertiden som "administreret kode" i mods?tning til "ustyret kode", som er kompileret til modersm?lsprog, der er m?lrettet mod et specifikt system. F?lgende diagram illustrerer kompileringstid og run-time-relationer for C # kildekodefiler, .NET Framework-klassebiblioteker, samlinger og CLR.Windows Presentation Foundation1146810280670WPF, som st?r for Windows Presentation Foundation, som er Microsofts seneste tilgang til en GUI-ramme, der bruges sammen med .NET-framework. Men hvad er en GUI-ramme? GUI st?r for grafisk brugergr?nseflade. Windows har en GUI til at arbejde med din computer, og din browser, der giver dig mulighed for at surfe p? nettet.En GUI-framework giver dig mulighed for at oprette en applikation med en bred vifte af GUI-elementer, som etiketter, tekstbokse og andre velkendte elementer. Uden en GUI-framework skal du tr?kke disse elementer manuelt og h?ndtere alle brugerinteraktionsscenarier som tekst og mus input. Dette er en masse arbejde, s? de fleste udviklere vil i stedet bruge en GUI, som g?r alt det grundl?ggende arbejde og giver udviklerne mulighed for at fokusere p? at lave gode applikationer.Der er mange GUI-framework derude, men for .NET-udviklere er de mest interessante dem i ?jeblikket WinForms og WPF. WPF er den nyeste, men Microsoft opretholder og underst?tter fortsat WinForms. Fordele ved at bruge WPF.?Det er nyere og dermed mere i overensstemmelse med g?ldende standarder?Microsoft bruger det til mange nye applikationer, f.eks. Visual Studio?Det er mere fleksibelt, s? du kan g?re flere ting uden at skulle skrive eller k?be nye kontroller?N?r du skal bruge 3rd party controls, vil udviklerne af disse kontroller sandsynligvis v?re mere fokuserede p? WPF fordi det er nyere?XAML g?r det nemt at oprette og redigere din GUI, og g?r det muligt for arbejdet at blive delt mellem en designer (XAML) og en programm?r (C #, etc.)?Databinding, som giver dig mulighed for at f? en mere ren adskillelse af data og layout?Bruger hardwareacceleration til tegning af GUI, for bedre ydeevne?Det giver dig mulighed for at lave brugergr?nseflader til b?de Windows-applikationer og webapplikationer (Silverlight / XBAP)NedarvningEt af de vigtigste begreber i objektorienteret programmering er nedarvning eller inheritance. nedarvning giver os mulighed for at definere en Class i form af en anden Class, hvilket g?r det lettere at oprette og vedligeholde et stykke software. Dette giver ogs? mulighed for at genbruge kodefunktionaliteten og fremskynde implementeringstiden.N?r du opretter en Class, kan du i stedet for at skrive helt ny data member og member functions. Den nye Class skal nedarve member af en eksisterende Class. Denne eksisterende Class kaldes Base Class, og den nye Class betegnes som den Derived Class.Eksempel for nedarvning:Eksempel nedenfor viser hvordan nedarvning virker i forhold til den Class med navnet Shape og de andre underliggende Classes er Child Class.I f?lgende billede nedenfor kan der ses brugen af disse Classes til nedarvning i praksis Loginscreen.xaml<Window x:Class="wpfloginscreen.LoginScreen" xmlns="" xmlns:x="" xmlns:d="" xmlns:mc="" xmlns:local="clr-namespace:wpfloginscreen" mc:Ignorable="d" Title="Aarhustech App Login" Height="300" Width="300" FontSize="14" Background="#04c582" KeyUp="Window_KeyUp"> <Border Background="Black" CornerRadius="20" Margin="20"> <StackPanel Margin="20"> <Label Content="IT Support" Foreground="White" FontSize="25" HorizontalAlignment="Center"/> <Separator></Separator> <Label Content="Brugernavn" Foreground="White" FontSize="13" /> <TextBox Name="txtUsername" Background="#545d6a" Foreground="White" FontSize="18"/> <Label Content="Password" Foreground="White" FontSize="13" /> <PasswordBox Name="txtPassword" Background="#545d6a" Foreground="White" FontSize="18"/> <Button Name="btnSubmit" Click="btnSubmit_Click" Content="Login" Margin="60 10" Background="#545d6a" Foreground="White" FontSize="13"/> </StackPanel> </Border></Window>LoginScreen.xaml.csusing System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows;using System.Windows.Controls;using System.Windows.Data;using System.Windows.Documents;using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Imaging;using System.Windows.Shapes;using System.Data.SqlClient;namespace wpfloginscreen{ /// <summary> /// Interaction logic for LoginScreen.xaml /// </summary> public partial class LoginScreen : Window { public LoginScreen() { InitializeComponent(); } private void btnSubmit_Click(object sender, RoutedEventArgs e) { Login(); } private void Login() { SqlConnection sqlcon = new SqlConnection(@"Data Source=DESKTOP-G1B7T9B\SQLEXPRESS; Initial Catalog=LoginDB; Integrated Security = true;"); try { if (sqlcon.State == System.Data.ConnectionState.Closed) sqlcon.Open(); string querry = "SELECT COUNT(1) FROM tblUser WHERE UserName=@UserName AND Password=@Password"; SqlCommand sqlCmd = new SqlCommand(querry, sqlcon); mandType = System.mandType.Text; sqlCmd.Parameters.AddWithValue("@UserName", txtUsername.Text); sqlCmd.Parameters.AddWithValue("@Password", txtPassword.Password); int count = Convert.ToInt32(sqlCmd.ExecuteScalar()); if (count == 1) { MainWindow dashboard = new MainWindow(); dashboard.Show(); this.Close(); } else { MessageBox.Show("Brugernavn eller Password er forkert"); } } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void Window_KeyUp(object sender, KeyEventArgs e) { if (e.Key == Key.Enter) Login(); } }}MainWindow.xaml<Window x:Class="wpfloginscreen.MainWindow" xmlns="" xmlns:x="" xmlns:d="" xmlns:mc="" xmlns:local="clr-namespace:wpfloginscreen" xmlns:tb="" mc:Ignorable="d" WindowStartupLocation="Manual" WindowStyle="ToolWindow" Title="Udvilking projekt Aarhustech" MinWidth="178" Width="178" MinHeight="700" SizeToContent="Height" Icon="Resources/Martz90-Hex-Settings.ico" Topmost="True"> <Window.Resources> <Style x:Key="DarkBtn" TargetType="{x:Type Button}"> <Setter Property="Margin" Value="0,0,5,3"/> <Setter Property="BorderBrush" Value="{x:Null}"/> <Setter Property="Foreground" Value="White"/> <Setter Property="Background" Value="#FF474747"/> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type Button}"> <Border Background="{TemplateBinding Background}"> <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/> </Border> </ControlTemplate> </Setter.Value> </Setter> <Style.Triggers> <Trigger Property="IsMouseOver" Value="True"> <Setter Property="Background" Value="#FF323131"/> </Trigger> <Trigger Property="IsPressed" Value="True"> <Trigger.EnterActions> <BeginStoryboard> <Storyboard> <ColorAnimation Storyboard.TargetProperty="(Control.Background).(SolidColorBrush.Color)" To="DarkGray"/> </Storyboard> </BeginStoryboard> </Trigger.EnterActions> </Trigger> </Style.Triggers> </Style> <ControlTemplate x:Key="ButtonControlTemplate1" TargetType="{x:Type Button}"> <Grid/> </ControlTemplate> </Window.Resources> <Grid x:Name="Computer_Management" Margin="10" Background="#FFF3F3F3"> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="1*"/> </Grid.RowDefinitions> <Grid.OpacityMask> <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> <GradientStop Color="Black" Offset="0"/> <GradientStop Color="#FFB8B8B8" Offset="1"/> </LinearGradientBrush> </Grid.OpacityMask> <TextBlock x:Name="label" Text="Udvikling Projekt" HorizontalAlignment="Left" VerticalAlignment="Top" FontFamily="Open Sans" FontSize="18" Foreground="Black" Grid.Column="0" TextWrapping="Wrap"/> <Image x:Name="Aarhustech_png" Grid.Row="1 " Source="Resources/Aarhustech.png" Stretch="None"/> <WrapPanel Grid.Row="2" Grid.ColumnSpan="2" Orientation="Vertical" Margin="0,10,0,0"> <Button Content="Computer Management" Style="{StaticResource DarkBtn}" Click="Button_Click"/> <Button Content="Device Manager" Style="{StaticResource DarkBtn}" Click="Button1_Click"/> <Button Content="Display Settings" Style="{StaticResource DarkBtn}" Click="Button3_Click"/> <Button Content="Program and Features" Style="{StaticResource DarkBtn}" Click="Button2_Click"/> <Button Content="Regedit" Style="{StaticResource DarkBtn}" Click="Button4_Click"/> <Button Content="User Account Control" Style="{StaticResource DarkBtn}" Click="Button5_Click"/> <Button Content="Event Viewer" Style="{StaticResource DarkBtn}" Click="Button6_Click"/> <Button Content="Internet Properties" Style="{StaticResource DarkBtn}" Click="Button7_Click"/> <Button Content="Task Manager" Style="{StaticResource DarkBtn}" Click="Button8_Click"/> <Button Content="Network Settings" Style="{StaticResource DarkBtn}" Click="Button9_Click"/> <Button Content="Remote Desktop Connection" Style="{StaticResource DarkBtn}" Click="Button10_Click"/> <Button Content="Internet Explorer" Style="{StaticResource DarkBtn}" Click="Button11_Click"/> <Button Content="CMD" Style="{StaticResource DarkBtn}" Click="Button12_Click"/> <Button Content="Powershell" Style="{StaticResource DarkBtn}" Click="Button13_Click"/> <Button Content="Control Panel" Style="{StaticResource DarkBtn}" Click="Button15_Click"/> <Button Content="Speedtest" Style="{StaticResource DarkBtn}" Click="Button16_Click"/> <Button Content="Teamviewer 10" Style="{StaticResource DarkBtn}" Click="Button17_Click"/> <Button Content="Windows Remote Assistance" Style="{StaticResource DarkBtn}" Click="Button18_Click"/> <Button Content="Putty" Style="{StaticResource DarkBtn}" Click="Button19_Click"/> <Button Content="Advanced Uninstaller" Style="{StaticResource DarkBtn}" Click="Button20_Click"/> <Button Content="Network Scanner" Style="{StaticResource DarkBtn}" Click="Button21_Click"/> <Button Content="Wireless Key Viewer" Style="{StaticResource DarkBtn}" Click="Button22_Click"/> <Button Content="Notepad" Style="{StaticResource DarkBtn}" Click="Button23_Click"/> <Button Content="Wireless Info Viewer" Style="{StaticResource DarkBtn}" Click="Button24_Click"/> <Button Content="Program Debugger" Style="{StaticResource DarkBtn}" Click="Button25_Click"/> <Button Content="Storage Size Analyser" Style="{StaticResource DarkBtn}" Click="Button26_Click"/> <Button Content="Internet Connectivity Monitor" Style="{StaticResource DarkBtn}" Click="Button27_Click"/> </WrapPanel> </Grid></Window>MainWindow.xaml.csusing System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows;using System.Windows.Controls;using System.Windows.Data;using System.Windows.Documents;using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Imaging;using System.Windows.Navigation;using System.Windows.Shapes;namespace wpfloginscreen{ /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); this.Loaded += new RoutedEventHandler(MainWindow_Loaded); } void MainWindow_Loaded(object sender, RoutedEventArgs e) { this.Left = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Right - this.Width; = 0; } private void Computer_Management_Click(object sender, RoutedEventArgs e) { } private void Button_Click(object sender, RoutedEventArgs e) { System.Diagnostics.Process.Start("compmgmt.msc"); } private void Button1_Click(object sender, RoutedEventArgs e) { System.Diagnostics.Process.Start("devmgmt.msc"); } private void Button2_Click(object sender, RoutedEventArgs e) { System.Diagnostics.Process.Start("appwiz.cpl"); } private void Button3_Click(object sender, RoutedEventArgs e) { System.Diagnostics.Process.Start("desk.cpl"); } private void Button4_Click(object sender, RoutedEventArgs e) { System.Diagnostics.Process.Start("Regedit.exe"); } private void Button5_Click(object sender, RoutedEventArgs e) { System.Diagnostics.Process process = new System.Diagnostics.Process(); System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(); startInfo.CreateNoWindow = true; startInfo.UseShellExecute = false; startInfo.RedirectStandardOutput = true; startInfo.FileName = "CMD.exe"; startInfo.Arguments = "/c Control nusrmgr.cpl"; process.StartInfo = startInfo; process.Start(); process.WaitForExit(); } private void Button6_Click(object sender, RoutedEventArgs e) { System.Diagnostics.Process.Start("eventvwr"); } private void Button7_Click(object sender, RoutedEventArgs e) { System.Diagnostics.Process process = new System.Diagnostics.Process(); System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(); startInfo.CreateNoWindow = true; startInfo.UseShellExecute = false; startInfo.RedirectStandardOutput = true; startInfo.FileName = "CMD.exe"; startInfo.Arguments = "/c control inetcpl.cpl"; process.StartInfo = startInfo; process.Start(); process.WaitForExit(); } private void Button8_Click(object sender, RoutedEventArgs e) { System.Diagnostics.Process.Start("taskmgr"); } private void Button9_Click(object sender, RoutedEventArgs e) { System.Diagnostics.Process.Start("ncpa.cpl"); } private void Button10_Click(object sender, RoutedEventArgs e) { System.Diagnostics.Process.Start("mstsc"); } private void Button11_Click(object sender, RoutedEventArgs e) { System.Diagnostics.Process.Start("iexplore"); } private void Button12_Click(object sender, RoutedEventArgs e) { System.Diagnostics.Process.Start("CMD.exe"); } private void Button13_Click(object sender, RoutedEventArgs e) { System.Diagnostics.Process.Start("Powershell.exe"); } private void button14_Click(object sender, RoutedEventArgs e) { System.Diagnostics.Process.Start(""); } private void Button15_Click(object sender, RoutedEventArgs e) { System.Diagnostics.Process.Start("control"); } private void Button16_Click(object sender, RoutedEventArgs e) { System.Diagnostics.Process.Start(""); } private void Button17_Click(object sender, RoutedEventArgs e) { System.Diagnostics.Process.Start(""); } private void Button18_Click(object sender, RoutedEventArgs e) { System.Diagnostics.Process.Start("msra"); } private void Button19_Click(object sender, RoutedEventArgs e) { System.Diagnostics.Process.Start("C:/Program Files (x86)/DDS Toolbox/putty.exe"); } private void Button20_Click(object sender, RoutedEventArgs e) { System.Diagnostics.Process.Start("C:/Program Files (x86)/DDS Toolbox/geek.exe"); } private void Button21_Click(object sender, RoutedEventArgs e) { System.Diagnostics.Process.Start("C:/Program Files (x86)/DDS Toolbox/netscan.exe"); } private void Button22_Click(object sender, RoutedEventArgs e) { System.Diagnostics.Process.Start("C:/Program Files (x86)/DDS Toolbox/WirelessKeyView.exe"); } private void Button23_Click(object sender, RoutedEventArgs e) { System.Diagnostics.Process.Start("notepad"); } private void Button24_Click(object sender, RoutedEventArgs e) { System.Diagnostics.Process.Start("C:/Program Files (x86)/DDS Toolbox/WifiInfoView.exe"); } private void Button25_Click(object sender, RoutedEventArgs e) { System.Diagnostics.Process.Start("C:/Program Files (x86)/DDS Toolbox/SimpleProgramDebugger.exe"); } private void Button26_Click(object sender, RoutedEventArgs e) { System.Diagnostics.Process.Start("C:/Program Files (x86)/DDS Toolbox/TreeSizeFree.exe"); } private void Button27_Click(object sender, RoutedEventArgs e) { System.Diagnostics.Process.Start("C:/Program Files (x86)/DDS Toolbox/InternetConnectivityMonitor.exe"); } }}MSI Installer (WIX Toolset)<?xml version="1.0" encoding="UTF-8"?><Wix xmlns="" xmlns:ui=""><?define wpfloginscreen_TargetDir=$(var.wpfloginscreen.TargetDir)?> <Product Id="*" Name="Aarhus Tech Programmering" Language="1033" Version="1.0.0.0" Manufacturer="Mathias, Casper, Tobias" UpgradeCode="147659a0-698c-4cec-99d1-14556a2f90d6"> <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" /> <WixVariable Id="WixUILicenseRtf" Value="C:\Users\MHN\Documents\Visual Studio 2015\Projects\wpfloginscreen\wpfloginscreen\Resources\License.rtf" /> <WixVariable Id="WixUIDialogBmp" Value="C:\Users\MHN\Documents\Visual Studio 2015\Projects\wpfloginscreen\wpfloginscreen\Resources\Background.bmp" /> <WixVariable Id="WixUIBannerBmp" Value="C:\Users\MHN\Documents\Visual Studio 2015\Projects\wpfloginscreen\wpfloginscreen\Resources\Banner.bmp" /> <WixVariable Id="WixUIExclamationIco" Value="C:\Users\MHN\Documents\Visual Studio 2015\Projects\wpfloginscreen\wpfloginscreen\Resources\Setupikon.ico" /> <WixVariable Id="WixUIInfoIco" Value="C:\Users\MHN\Documents\Visual Studio 2015\Projects\wpfloginscreen\wpfloginscreen\Resources\Setupikon.ico" /> <WixVariable Id="WixUINewIco" Value="C:\Users\MHN\Documents\Visual Studio 2015\Projects\wpfloginscreen\wpfloginscreen\Resources\DDSIkon.ico" /> <WixVariable Id="WixUIUpIco" Value="C:\Users\MHN\Documents\Visual Studio 2015\Projects\wpfloginscreen\wpfloginscreen\Resources\DDSIkon.ico" /> <Property Id="WixUI_Minimal" Value="INSTALLFOLDER" /> <UIRef Id="WixUI_Minimal" /> <Icon Id="DDSIkon.ico" SourceFile="C:\Users\MHN\Documents\Visual Studio 2015\Projects\wpfloginscreen\wpfloginscreen\Resources\DDSIkon.ico" /> <Property Id="ARPPRODUCTICON" Value="DDSIkon.ico" /> <MajorUpgrade DowngradeErrorMessage="A newer version of Aarhus Tech Programmering is already installed." /> <MediaTemplate EmbedCab="yes" /> <Feature Id="ProductFeature" Title="Aarhus Tech Programmering" Level="1"> <ComponentGroupRef Id="ProductComponents" /> <ComponentRef Id="ApplicationShortcut" /> <ComponentRef Id="ApplicationShortcutDesktop" /> </Feature> </Product> <Fragment> <Directory Id="TARGETDIR" Name="SourceDir"> <Directory Id="ProgramFilesFolder"> <Directory Id="INSTALLFOLDER" Name="Aarhus Tech Programmering"> <Directory Id="ENRESOURCESFOLDER" Name="en" /> </Directory> </Directory> <Directory Id="ProgramMenuFolder"> <Directory Id="ApplicationProgramsFolder" Name="Aarhus Tech Programmering" /> </Directory> <Directory Id="DesktopFolder" Name="Desktop"></Directory> </Directory> </Fragment> <Fragment> <DirectoryRef Id="ApplicationProgramsFolder"> <Component Id="ApplicationShortcut" Guid="386ea464-8ad8-433c-bca9-f6f7276c4a17"> <Shortcut Id="ApplicationStartMenuShortcut" Name="Aarhus Tech Programmering" Description="Aarhus Tech Programmering" Target="[INSTALLFOLDER]wpfloginscreen.exe" WorkingDirectory="INSTALLFOLDER" /> <RemoveFolder Id="RemoveApplicationProgramsFolder" Directory="ApplicationProgramsFolder" On="uninstall" /> <RegistryValue Root="HKCU" Key="Software\DDS" Name="installed" Type="integer" Value="1" KeyPath="yes" /> </Component> </DirectoryRef> <DirectoryRef Id="DesktopFolder"> <Component Id="ApplicationShortcutDesktop" Guid="f113f6d6-a136-4537-9f90-d50b8d7012f6"> <Shortcut Id="ApplicationDesktopShortcut" Name="ATP" Description="Aarhus Tech Programmering" Target="[INSTALLFOLDER]wpfloginscreen.exe" WorkingDirectory="INSTALLFOLDER" /> <RemoveFolder Id="RemoveDesktopFolder" Directory="DesktopFolder" On="uninstall" /> <RegistryValue Root="HKCU" Key="Software\DDS" Name="installed" Type="integer" Value="1" KeyPath="yes" /> </Component> </DirectoryRef> </Fragment> <Fragment> <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER"> <Component Id="CMP_DDSToolboxSetup" Guid="{6F44232F-1C0B-4278-AB2B-BFD34FAE863C}"> <File Id="DDSToolbox.exe" Source="C:\Users\MHN\Documents\Visual Studio 2015\Projects\wpfloginscreen\wpfloginscreen\bin\Debug\wpfloginscreen.exe" KeyPath="yes" /> <File Id="Hardcodet.Wpf.TaskbarNotification.dll" Source="C:\Users\MHN\Documents\Visual Studio 2015\Projects\wpfloginscreen\wpfloginscreen\bin\Debug\Hardcodet.Wpf.TaskbarNotification.dll" /> <File Id="putty.exe" Source="C:\Users\MHN\Documents\Visual Studio 2015\Projects\wpfloginscreen\wpfloginscreen\Resources\putty.exe" /> <File Id="geek.exe" Source="C:\Users\MHN\Documents\Visual Studio 2015\Projects\wpfloginscreen\wpfloginscreen\Resources\geek.exe" /> <File Id="netscan.exe" Source="C:\Users\MHN\Documents\Visual Studio 2015\Projects\wpfloginscreen\wpfloginscreen\Resources\netscan.exe" /> <File Id="WirelessKeyView.exe" Source="C:\Users\MHN\Documents\Visual Studio 2015\Projects\wpfloginscreen\wpfloginscreen\Resources\WirelessKeyView.exe" /> <File Id="WifiIntoView.exe" Source="C:\Users\MHN\Documents\Visual Studio 2015\Projects\wpfloginscreen\wpfloginscreen\Resources\WifiInfoView.exe" /> <File Id="SimpleProgramDebugger.exe" Source="C:\Users\MHN\Documents\Visual Studio 2015\Projects\wpfloginscreen\wpfloginscreen\Resources\SimpleProgramDebugger.exe" /> <File Id="TreeSizeFree.exe" Source="C:\Users\MHN\Documents\Visual Studio 2015\Projects\wpfloginscreen\wpfloginscreen\Resources\TreeSizeFree.exe" /> <File Id="InternetConnectivityMonitor.exe" Source="C:\Users\MHN\Documents\Visual Studio 2015\Projects\wpfloginscreen\wpfloginscreen\Resources\InternetConnectivityMonitor.exe" /> </Component> <Component Id="wpfloginscreen.exe" Guid="3cf516e7-767a-4940-9be6-6adfddc1f39e"> <File Id="wpfloginscreen.exe" Name="wpfloginscreen.exe" Source="$(var.wpfloginscreen_TargetDir)wpfloginscreen.exe" /> </Component> <Component Id="wpfloginscreen.exe.config" Guid="a9611f4c-f27c-4b1b-8b7c-d3e9a76d4f94"> <File Id="wpfloginscreen.exe.config" Name="wpfloginscreen.exe.config" Source="$(var.wpfloginscreen_TargetDir)wpfloginscreen.exe.config" /> </Component> </ComponentGroup> </Fragment></Wix>Programmerings rapport Lavet af:Mathias HaugeTobias BrissingCasper Lundqvist ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download

To fulfill the demand for quickly locating and searching documents.

It is intelligent file search solution for home and business.

Literature Lottery

Related searches