コード例 #1
0
ファイル: RegistryEditor.cs プロジェクト: MoriEdan/cameyo
        public RegistryEditor(VirtPackage virtPackage, DelegateRequireElevation requireElevation,
            TreeView fsFolderTree, ListView fsFilesList, Label fsFolderInfoFullName, 
            ComboBox fsFolderInfoIsolationCombo, ToolStripButton regRemoveBtn, ToolStripButton regEditBtn)
        {
            this.virtPackage = virtPackage;
            this.requireElevation = requireElevation;
            this.fsFolderTree = fsFolderTree;
            this.fsFilesList = fsFilesList;
            this.fsFolderInfoFullName = fsFolderInfoFullName;
            this.fsFolderInfoIsolationCombo = fsFolderInfoIsolationCombo;
            this.regRemoveBtn = regRemoveBtn;
            this.regEditBtn = regEditBtn;

            fsFolderInfoFullName.Text = "";
            fsFolderInfoIsolationCombo.Text = "";
            fsFolderInfoIsolationCombo.Items.Add(PackageEditor.Messages.Messages.fullAccess);
            fsFolderInfoIsolationCombo.Items.Add(PackageEditor.Messages.Messages.isolated);
            fsFolderInfoIsolationCombo.Items.Add(PackageEditor.Messages.Messages.strictlyIsolated);
            fsFolderTree.AfterSelect += OnFolderTreeSelect;
            fsFolderInfoIsolationCombo.SelectionChangeCommitted += OnFolderSandboxChange;
            regRemoveBtn.Click += OnRemoveBtnClick;
            regEditBtn.Click += OnEditClick;
            dirty = false;
            treeHelper = new TreeHelper(virtPackage);

            // delegate for AddFileOrFolder init
            Del_AddFOrF = new DelegateAddFileOrFolder(this.AddFileOrFolder);
        }
コード例 #2
0
ファイル: ADPermissions.cs プロジェクト: dream1986/cameyo
 public ADPermissionsForm(VirtPackage virtPackage)
 {
     this.virtPackage = virtPackage;
     allowedEntities = new List<ADEntity>();
     deniedEntities = new List<ADEntity>();
     InitializeComponent();
 }
コード例 #3
0
 public bool Do(VirtPackage virtPackage, ref bool dirty)
 {
     String oldValue = virtPackage.GetProperty("BaseDirName");
     String newValue;
     propertyLocalStorageCustomDir.Text = "";
     if (oldValue == "")
         propertyLocalStorageDefault.Checked = true;
     else if (oldValue.Equals("%ExeDir%\\%AppID%.cameyo.data", StringComparison.InvariantCultureIgnoreCase))
         propertyLocalStorageExeDir.Checked = true;
     else
     {
         propertyLocalStorageCustom.Checked = true;
         propertyLocalStorageCustomDir.Text = oldValue;
     }
     if (ShowDialog() == DialogResult.OK)
     {
         if (propertyLocalStorageDefault.Checked)
             newValue = "";
         else if (propertyLocalStorageExeDir.Checked)
             newValue = "%ExeDir%\\%AppID%.cameyo.data";
         else
             newValue = propertyLocalStorageCustomDir.Text;
         if (newValue != oldValue)
         {
             virtPackage.SetProperty("BaseDirName", newValue);
             dirty = true;
         }
         return true;
     }
     else
         return false;
 }
コード例 #4
0
 public CustomEventsForm(VirtPackage virtPackage)
 {
     this.virtPackage = virtPackage;
     onStartUnvirtualized = new List<CustomEvent>();
     onStartVirtualized = new List<CustomEvent>();
     onStopVirtualized = new List<CustomEvent>();
     onStopUnvirtualized = new List<CustomEvent>();
     InitializeComponent();
 }
コード例 #5
0
 public AutoUpdateForm(VirtPackage virtPackage)
 {
     this.virtPackage = virtPackage;
     InitializeComponent();
     txtFinish = literalFinish.Text;
     txtNext = btnNext.Text;
     tbVersion.Text = virtPackage.GetProperty("Version");
     tbLocation.Text = virtPackage.GetProperty("AutoUpdate");
     if (string.IsNullOrEmpty(tbLocation.Text))
     {
         radioDisableFeature.Checked = true;
         tbLocation.Text = @"\\server\apps\" + Path.ChangeExtension(Path.GetFileName(virtPackage.openedFile), ".xml");
     }
     else
     {
         autoUpdateAlreadyConfigured = true;
         radioEnableFeature.Checked = true;
     }
 }
コード例 #6
0
ファイル: FileSystemEditor.cs プロジェクト: Rorymon/cameyo
        public FileSystemEditor(VirtPackage virtPackage, TreeView fsFolderTree, ListView fsFilesList,
            Label fsFolderInfoFullName, ComboBox fsFolderInfoIsolationCombo,
            ToolStripButton fsAddBtn, ToolStripButton fsRemoveBtn, ToolStripButton fsAddEmptyDirBtn,
            ToolStripButton fsSaveFileAsBtn, ToolStripButton fsAddDirBtn)
        {
            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));

            this.virtPackage = virtPackage;
            this.fsFolderTree = fsFolderTree;
            this.fsFilesList = fsFilesList;
            this.fsFolderInfoFullName = fsFolderInfoFullName;
            this.fsFolderInfoIsolationCombo = fsFolderInfoIsolationCombo;
            this.fsAddBtn = fsAddBtn;
            this.fsRemoveBtn = fsRemoveBtn;
            this.fsAddEmptyDirBtn = fsAddEmptyDirBtn;
            this.fsSaveFileAsBtn = fsSaveFileAsBtn;
            this.fsAddDirBtn = fsAddDirBtn;

            fsFolderInfoFullName.Text = "";
            fsFolderInfoIsolationCombo.Text = "";
            fsFolderInfoIsolationCombo.Items.Add(PackageEditor.Messages.Messages.fullAccess);
            fsFolderInfoIsolationCombo.Items.Add(PackageEditor.Messages.Messages.isolated);
            fsFolderInfoIsolationCombo.Items.Add(PackageEditor.Messages.Messages.strictlyIsolated);
            fsFolderTree.AfterSelect += OnFolderTreeSelect;
            fsFolderInfoIsolationCombo.SelectionChangeCommitted += OnFolderSandboxChange;
            fsAddBtn.Click += OnAddBtnClick;
            fsAddDirBtn.Click += OnAddDirBtnClick;
            fsRemoveBtn.Click += OnRemoveBtnClick;
            fsAddEmptyDirBtn.Click += OnAddEmptyDirBtnClick;
            fsSaveFileAsBtn.Click += OnSaveFileAsBtnClick;
            fsFilesList.KeyDown += Vfs_KeyDown;
            fsFolderTree.KeyDown += Vfs_KeyDown;
            dirty = false;
            treeHelper = new TreeHelper(virtPackage);

            // delegate for AddFileOrFolderRecursive init
            Del_AddFOrFR = new DelegateAddFileOrFolderRecursive(this.AddFileOrFolderRecursive);
        }
コード例 #7
0
 public AutoLaunchEditItemForm(VirtPackage virtPackage, FileSystemEditor fileSystemEditor)
 {
     InitializeComponent();
     this.virtPackage = virtPackage;
     this.fileSystemEditor = fileSystemEditor;
 }
コード例 #8
0
 public VirtFilesBrowse(VirtPackage virtPackage, FileSystemEditor fileSystemEditor)
 {
     InitializeComponent();
     this.virtPackage = virtPackage;
     this.fileSystemEditor = fileSystemEditor;
 }
コード例 #9
0
ファイル: MainForm.cs プロジェクト: vaginessa/cameyo
        public MainForm(string packageExeFile, bool notifyPackageBuilt)
        {
            InitializeComponent();
            dragging = false;

            // helpVirtMode
            SplitTextHelp(propertyVirtModeRam, out helpVirtModeRam);
            SplitTextHelp(propertyVirtModeDisk, out helpVirtModeDisk);

            // helpIsolationMode
            SplitTextHelp(propertyIsolationDataMode, out helpIsolationModeData);
            SplitTextHelp(propertyIsolationIsolated, out helpIsolationModeIsolated);
            SplitTextHelp(propertyIsolationMerge, out helpIsolationModeFull);

            // panelWelcome
            panelWelcome.Parent = this;
            panelWelcome.BringToFront();
            panelWelcome.Dock = DockStyle.None;
            panelWelcome.Dock = DockStyle.Fill;
            tabControl.TabPages.Remove(tabWelcome);
            this.Text = CaptionText();

            // delegate for PackageOpen init
            Del_Open = new DelegatePackageOpen(this.PackageOpen);

            tabControl.Visible = false;
            panelWelcome.Visible = !tabControl.Visible;
            regLoaded = false;
            dirty = dirtyIcon = false;
            virtPackage = new VirtPackage();
            mru = new MRU("Software\\Cameyo\\Packager\\MRU");

            fsEditor = new FileSystemEditor(virtPackage, fsFolderTree, fsFilesList,
                fsFolderInfoFullName, fsFolderInfoIsolationCombo, fsAddBtn, fsRemoveBtn, fsAddEmptyDirBtn, fsSaveFileAsBtn, fsAddDirBtn);
            regEditor = new RegistryEditor(virtPackage, new RegistryEditor.DelegateRequireElevation(RequireElevation),
                regFolderTree, regFilesList, regFolderInfoFullName, regFolderInfoIsolationCombo, regRemoveBtn, regEditBtn);

            regFilesList.DoubleClickActivation = true;
            Editors = new Control[] { tbFile, tbValue, tbType, tbSize };

            EnableDisablePackageControls(false);       // No package opened yet; disable Save menu etc
            if (packageExeFile != "" && !packageExeFile.Equals("/OPEN", StringComparison.InvariantCultureIgnoreCase))
            {
                if (PackageOpen(packageExeFile) && notifyPackageBuilt)
                {
                    PackageBuiltNotify packageBuiltNotify = new PackageBuiltNotify();
                    String friendlyPath = packageExeFile;
                    int pos = friendlyPath.ToUpper().IndexOf("\\DOCUMENTS\\");
                    if (pos == -1) pos = friendlyPath.ToUpper().IndexOf("\\MY DOCUMENTS\\");
                    if (pos != -1) friendlyPath = friendlyPath.Substring(pos + 1);

                    System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
                    packageBuiltNotify.Do(PackageEditor.Messages.Messages.packageBuiltOk, packageExeFile, friendlyPath, "PackageBuiltNotify");
                }
            }

            #if DropBox
            if (!System.IO.File.Exists(Application.StartupPath + "\\AppLimit.CloudComputing.oAuth.dll")
                || !System.IO.File.Exists(Application.StartupPath + "\\AppLimit.CloudComputing.SharpBox.dll")
                || !System.IO.File.Exists(Application.StartupPath + "\\Newtonsoft.Json.Net20.dll"))
            {
                dropboxLabel.Hide();
                dropboxButton.Hide();
                resetCredLink.Hide();
                MessageBox.Show("This version is compiled with DropBox funtionality, but one or more of the dlls needed are missing:\nAppLimit.CloudComputing.oAuth.dll\nAppLimit.CloudComputing.SharpBox.dll\nNewtonsoft.Json.Net20.dll\n\nThe button will be hidden", "Missing DLL", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            #else
            dropboxLabel.Hide();
            dropboxButton.Hide();
            //resetCredLink.Hide();
            #endif
            // Display logo
            /*string branding = "";
            try { Environment.GetEnvironmentVariable("CAMEYO_RO_PROPERTY_BRANDING"); } catch { }
            propertyDisplayLogo.Visible = !string.IsNullOrEmpty(branding);   // Freeware Cameyo does not have this feature*/

            // Culture
            langToolStripMenuItem.DropDownItems.Clear();
            ToolStripMenuItem item;
            foreach (Cameyo.OpenSrc.Common.LangItem lang in Cameyo.OpenSrc.Common.LangItem.SupportedLangs())
            {
                item = new ToolStripMenuItem(lang.DisplayName) { Tag = lang.Culture };
                item.Click += langMenuItem_Click;
                langToolStripMenuItem.DropDownItems.Add(item);
            }
            CurLanguageMenuItem().Checked = true;
        }
コード例 #10
0
ファイル: MainForm.cs プロジェクト: vaginessa/cameyo
        private bool PackageOpen(String packageExeFile, bool displayWaitMsg, out VirtPackage.APIRET apiRet)
        {
            if (File.Exists(Path.ChangeExtension(packageExeFile, ".dat")))
                packageExeFile = Path.ChangeExtension(packageExeFile, ".dat");

              retry:
            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
            bool ret = false;
            apiRet = 0;
            if (virtPackage.opened && !PackageClose())      // User doesn't want to discard changes
                return false;
            if (displayWaitMsg)
                PleaseWait.PleaseWaitBegin(PackageEditor.Messages.Messages.openingPackage, PackageEditor.Messages.Messages.opening + " " + System.IO.Path.GetFileName(packageExeFile) + "...", packageExeFile);

            System.Drawing.Icon exeIcon = null;
            try
            {
                exeIcon = Win32Function.getIconFromFile(packageExeFile);   // Must be done before PackageOpen is called
            }
            catch { }

            // virtPackage.Open
            if (!string.IsNullOrEmpty(memorizedPassword))
                ret = virtPackage.Open(packageExeFile + "|" + memorizedPassword, out apiRet);
            else   //
                ret = virtPackage.Open(packageExeFile, out apiRet);
            if (apiRet == VirtPackage.APIRET.PASSWORD_REQUIRED || apiRet == VirtPackage.APIRET.PASSWORD_MISMATCH)
            {
                string password = "";
                while (string.IsNullOrEmpty(password))
                {
                    if (displayWaitMsg)   // Hide progress window
                        PleaseWait.PleaseWaitEnd();   // Otherwise it'll hide our below MessageBox
                    var passwordInput = new PasswordInput();
                    if (passwordInput.ShowDialog() != System.Windows.Forms.DialogResult.OK)
                        return false;
                    password = passwordInput.tbPassword.Text;
                    ret = virtPackage.Open(packageExeFile + "|" + password, out apiRet);
                    if (apiRet == VirtPackage.APIRET.SUCCESS)
                        memorizedPassword = password;
                    if (apiRet == VirtPackage.APIRET.PASSWORD_MISMATCH)
                    {
                        MessageBox.Show("Incorrect password");
                        password = "";
                    }
                    if (displayWaitMsg)   // Restore progress window
                        PleaseWait.PleaseWaitBegin(PackageEditor.Messages.Messages.openingPackage, PackageEditor.Messages.Messages.opening + " " + System.IO.Path.GetFileName(packageExeFile) + "...", packageExeFile);
                }
            }
            else if (apiRet != VirtPackage.APIRET.SUCCESS)
            {

            }

            // OLD_VERSION conversion
            if (!ret && apiRet == VirtPackage.APIRET.OLD_VERSION)
            {
                if (displayWaitMsg)   // Hide progress window
                    PleaseWait.PleaseWaitEnd();     // Otherwise it'll hide our below MessageBox
                if (MessageBox.Show("This package was built with an older version and needs to be converted.\nConvert now?",
                    "Conversion required", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes)
                {
                    int exitCode = 0;
                    if (displayWaitMsg)   // Restore progress window
                        PleaseWait.PleaseWaitBegin(PackageEditor.Messages.Messages.openingPackage, "Converting " + System.IO.Path.GetFileName(packageExeFile) + "...", packageExeFile);

                    // Init file names: old, new
                    string newPkgFile = packageExeFile, oldPkgFile = packageExeFile;
                    int pos = newPkgFile.LastIndexOf('.');
                    newPkgFile = newPkgFile.Insert(pos, ".new");
                    oldPkgFile = oldPkgFile.Insert(pos, ".old");

                    // Check whether target file already exists
                    bool proceed = true;
                    if (File.Exists(newPkgFile) && MessageBox.Show("Warning: output file will be overwritten:\n" + newPkgFile +
                        "\n" + "Proceed?", "Confirm", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.No)
                        proceed = false;

                    if (proceed)
                    {
                        bool convertedOk = (ExecProg(PackagerExe(), "-Quiet -ConvertOldPkg \"" + packageExeFile + "\"", true, ref exitCode) && exitCode == 0);
                        if (displayWaitMsg)   // Hide progress window
                            PleaseWait.PleaseWaitEnd();   // Otherwise it'll hide our below MessageBox
                        if (convertedOk)
                        {
                            bool trouble = false;
                            try { File.Delete(oldPkgFile); }
                            catch { }
                            try
                            {
                                File.Move(packageExeFile, oldPkgFile);
                            }
                            catch
                            {
                                MessageBox.Show("Package could not be renamed to:\n" + oldPkgFile);
                                trouble = true;
                            }
                            try
                            {
                                File.Move(newPkgFile, packageExeFile);
                            }
                            catch
                            {
                                MessageBox.Show("New package could not be renamed to:\n" + packageExeFile);
                                trouble = true;
                            }
                            if (!trouble)
                            {
                                //ret = virtPackage.Open(packageExeFile, out apiRet);
                                MessageBox.Show("Package was successfully converted. Your old package was saved in:\n" + oldPkgFile);
                                goto retry;   // Takes care of password etc
                            }
                        }
                        else
                            MessageBox.Show("Error converting package! " + exitCode);
                    }
                }
            }

            if (ret)
            {
                regLoaded = false;
                dirty = dirtyIcon = false;
                this.OnPackageOpen(exeIcon);
                fsEditor.OnPackageOpen();

                // regEditor (threaded)
                regProgressBar.Visible = true;
                regToolStrip.Visible = false;
                regSplitContainer.Visible = false;
                regProgressTimer.Enabled = true;

                ThreadedRegLoadStop(-1);
                //2.5:was here:regLoadThread = new Thread(ThreadedRegLoad);
                //2.5:was here:regLoadThread.Start();

                tabControl.SelectedIndex = 0;
                EnableDisablePackageControls(true);
                mru.AddFile(packageExeFile);

                ret = true;
            }
            else
                ret = false;

            if (displayWaitMsg)
                PleaseWait.PleaseWaitEnd();

            return ret;
        }
コード例 #11
0
ファイル: MainForm.cs プロジェクト: maniekmankowski/cameyo
        private bool PackageOpen(String packageExeFile, bool displayWaitMsg, out VirtPackage.APIRET apiRet)
        {
            bool ret;
            apiRet = 0;
            if (virtPackage.opened && !PackageClose())      // User doesn't want to discard changes
                return false;
            if (displayWaitMsg)
            {
                System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
                PleaseWait.PleaseWaitBegin(PackageEditor.Messages.Messages.openingPackage, PackageEditor.Messages.Messages.opening + " " + System.IO.Path.GetFileName(packageExeFile) + "...", packageExeFile);
            }

            if (virtPackage.Open(packageExeFile, out apiRet))
            {
                regLoaded = false;
                dirty = false;
                this.OnPackageOpen();
                fsEditor.OnPackageOpen();

                // regEditor (threaded)
                regProgressBar.Visible = true;
                regToolStrip.Visible = false;
                regSplitContainer.Visible = false;
                regProgressTimer.Enabled = true;

                ThreadedRegLoadStop();
                regLoadThread = new Thread(ThreadedRegLoad);
                regLoadThread.Start();

                tabControl.SelectedIndex = 0;
                EnableDisablePackageControls(true);
                mru.AddFile(packageExeFile);

                ret = true;
            }
            else
                ret = false;

            if (displayWaitMsg)
                PleaseWait.PleaseWaitEnd();

            return ret;
        }
コード例 #12
0
 public FileProperties(VirtPackage virtPackage)
 {
     InitializeComponent();
     this.virtPackage = virtPackage;
 }
コード例 #13
0
ファイル: DataStorageForm.cs プロジェクト: dream1986/cameyo
        public bool Do(VirtPackage virtPackage, ref bool dirty)
        {
            String oldValue = virtPackage.GetProperty("BaseDirName");
            String newValue;

            // BaseDirName
            //propertyLocalStorageCustomDir.Text = "";
            propertyLocalStorageCustomDir.Text = DefaultBaseDir;   // Shows user how to build this path
            if (oldValue == "")
                propertyLocalStorageDefault.Checked = true;
            else if (oldValue.Equals("%ExeDir%\\%AppID%.cameyo.files", StringComparison.InvariantCultureIgnoreCase))
                propertyLocalStorageExeDir.Checked = true;
            else
            {
                propertyLocalStorageCustom.Checked = true;
                propertyLocalStorageCustomDir.Text = oldValue;
            }

            // DataDirName
            string DefaultDataDirName = System.IO.Path.Combine(propertyLocalStorageCustomDir.Text, "CHANGES");
            propertyDataDirName.Text = virtPackage.GetProperty("DataDirName").Trim();
            propertyDataDir.Checked = !string.IsNullOrEmpty(propertyDataDirName.Text);
            if (propertyDataDirName.Text == "")
                propertyDataDirName.Text = DefaultDataDirName;   // Show user how to build this path
            propertyDataDir_CheckedChanged(null, null);
            propertyLocalStorageCustom_CheckedChanged(null, null);

            retry:
            if (ShowDialog() == DialogResult.OK)
            {
                propertyLocalStorageCustomDir.Text = propertyLocalStorageCustomDir.Text.Trim();
                propertyDataDirName.Text = propertyDataDirName.Text.Trim();

                // Validate
                if (propertyLocalStorageCustom.Checked && propertyLocalStorageCustomDir.Text.Trim('\\').IndexOf('\\') == -1 &&
                    MessageBox.Show(PackageEditor.Messages.Messages.storageDirSubdirWarning + "\n" + propertyLocalStorageCustomDir.Text,
                    "", MessageBoxButtons.YesNo) != System.Windows.Forms.DialogResult.Yes)
                    goto retry;
                if (propertyDataDir.Checked && propertyDataDirName.Text.Trim('\\').IndexOf('\\') == -1 &&
                    MessageBox.Show(PackageEditor.Messages.Messages.storageDirSubdirWarning + "\n" + propertyDataDirName.Text,
                    "", MessageBoxButtons.YesNo) != System.Windows.Forms.DialogResult.Yes)
                    goto retry;

                // BaseDirName
                if (propertyLocalStorageCustomDir.Text.Equals(DefaultBaseDir, StringComparison.InvariantCultureIgnoreCase))
                    propertyLocalStorageCustomDir.Text = "";
                if (propertyLocalStorageDefault.Checked)
                    newValue = "";
                else if (propertyLocalStorageExeDir.Checked)
                    newValue = "%ExeDir%\\%AppID%.cameyo.files";
                else
                    newValue = propertyLocalStorageCustomDir.Text;
                if (newValue != oldValue)
                {
                    virtPackage.SetProperty("BaseDirName", newValue);
                    dirty = true;
                }

                // DataDirName
                if (!propertyDataDir.Checked) // Causes bug (Tom Ferratt case): || propertyDataDirName.Text.Equals(DefaultDataDirName, StringComparison.InvariantCultureIgnoreCase))
                    propertyDataDirName.Text = "";
                virtPackage.SetProperty("DataDirName", propertyDataDirName.Text);

                return true;
            }
            else
                return false;
        }
コード例 #14
0
ファイル: FileSystemEditor.cs プロジェクト: Rorymon/cameyo
 public TreeHelper(VirtPackage virtPackage)
 {
     this.virtPackage = virtPackage;
 }