Leonardo Pignataro
Guest
|
I'm using the code suggested in the Developer's Code to invoke the update via ClickTwice of my addon. Eventually, the following statement is executed:
this.CreateProcess(""" + ieFullPath + "" "" + updateUrl + """);
Which in turn invokes the download of the updated <projectname>.exe. However, it seems that the CreateProcess method only works when IE is executing with administrative privileges. When it is not executing with such privileges, the method seems to silently fail, that is, it doesn't invoke the download and it doesn't throw an exception.
I checked the string that is passed to the method in both cases, and it is the same:
"C:\Program Files (x86)\Internet Explorer\iexplore.exe" "http://10.1.1.117/1046/2.17.0/pluginiev2.exe"
What could be wrong? |
|
Leonardo Pignataro
Guest
|
The whole code follows:
private void update(bool silent) {
Console.Log("Checking for updates");
try {
if (this.IsNetworkDeployed() && this.IsUpdatable()) {
string updateUrl = this.CheckForUpdates();
if (!String.IsNullOrEmpty(updateUrl)) {
if (MessageBox.Show("Uma nova versão do plugin foi detectada!
Você gostaria de realizar a atualiza?ão?", this.ModuleName, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) {
string ieFullPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles), "Internet Explorer\iexplore.exe");
Console.Log("Calling CreateProcess - " + """ + ieFullPath + "" "" + updateUrl + """);
this.CreateProcess(""" + ieFullPath + "" "" + updateUrl + """);
}
} else {
if (!silent) {
MessageBox.Show("Não h? updates dispon?veis!");
}
}
} else {
if (!silent) {
MessageBox.Show("Não ? poss?vel atualizar o plugin.");
}
}
} catch (Exception ex) {
Console.Log("Ocorreu um erro ao verificar atualiza?ões: " + ex);
}
}
|
|
Leonardo Pignataro
Guest
|
And the log follows:
------------------------------------------------------------
22/05/2012 16:07:28: Checking for updates
------------------------------------------------------------
22/05/2012 16:07:29: Calling CreateProcess - "C:\Program Files (x86)\Internet Explorer\iexplore.exe" "http://10.1.1.117/1046/2.19.0/pluginiev2.exe"
------------------------------------------------------------
BTW, the ";" after the "pluginiev2.exe" is being added by the forum... |
|
Leonardo Pignataro
Guest
|
Oh, and the update does work when executing IE as administrator. |
|
Sergey Grischenko
Add-in Express team
Posts: 7233
Joined: 2004-07-05
|
Hi Leonardo,
Thank you for the bug report. Please use 'Process.Start(ieFullPath, updateUrl);' instead of 'this.CreateProcess'. |
|
Leonardo Pignataro
Guest
|
Hello, Sergey.
That did the trick.
Thank you for your assistance! |
|