Thats the exact opposite of how I thought about it, thanks for the mind-openner!

Best regards
Neal Campbell
Abroham Neal Software
Programming Services for Windows, OS X and Linux
(540) 242 0911
---------------------------------------------------------------------
Try Spot for OS X, the intelligent DXCluster Client at
www.abrohamnealsoftware.com -  $15.99



On Thu, Jan 15, 2009 at 4:09 PM, Charlie Chambers
<[email protected]> wrote:
> Hi Neal,
> What you need to remember is that the main unit code is to cover the needs
> of the GUI of the main form and the DLL will take care of areas you wish to
> update for the future. I'd put the update code in the main form code unit
> and load the DLL as part of the activation of the main unit. When you wish
> to download a new update, i'd unload DLL, download then reload the new DLL.
> Having said this, this is precisely where the term "DLL Hell" came from. It
> might be good to have code to revert to a previous dll just in case to cover
> all bases or at least, put a DLL version function into the DLL.
>
> Looks like Doug beat me to this! <g>
>
> Cheers,
> Charlie
>
> ----- Original Message -----
> From: Neal Campbell
> To: [email protected]
> Sent: Thursday, January 15, 2009 1:14 PM
> Subject: Re: [delphi-en] Problem with ShellExecute
>
> Hi Charlie
>
> Please excuse my newness to the list and Delphi programming (I am
> returning after 10+ years). In the DLL example, how would that work?
> The main program will call the functions in the DLL to determine if a
> new release is available and downloads it, while quitting the main
> program? How does the DLL stay alive when you kill the main program so
> that you can delete/init it with the new version?
>
> I need to do this myself and am learning from this email chain tremendously?
>
> Why hasn't someone created a small framework for this like we have for
> OS X (Sparkle)?
>
> Thanks
> Neal Campbell
> Abroham Neal Software
>
> On Thu, Jan 15, 2009 at 12:33 PM, Charlie Chambers
> <[email protected]> wrote:
>> Hi Bobby,
>> Another idea is to put the update functions/procedures into a DLL
>> and just update the DLL as opposed to the full exe.
>>
>> Cheers,
>> Charlie
>>
>> ----- Original Message -----
>> From: Bobby Clarke
>> To: [email protected]
>> Sent: Thursday, January 15, 2009 8:09 AM
>> Subject: [delphi-en] Problem with ShellExecute
>>
>> I wanted to provide a web update facility for my program B.exe and
>> decided that the easiest way was to write a small control program,
>> A.exe, which checked the web for updates to program B.exe and then
>> starts, via ShellExecute, the latest version of B, perhaps B009.exe.
>>
>> This all works very well. The problem comes when I try to update the
>> control program A.exe. Clearly the new version must be called A.exe so
>> that all the shortcuts work. I can download A.new and the only task now
>> is to delete A.exe and rename A.new to A.exe. I have written a small
>> console program C.exe that does this. The problem is knowing how to
>> start C.exe. If I start with a ShellExecute from A.exe, the file A.exe
>> seems to be locked even after A has finished and even if C.exe waits for
>> two minutes before trying to change the A filenames. The A filenames
>> themselves are not locked as I can change using Windows Explorer during
>> the 2 minute wait. I can even change the names by hand-starting a
>> different occurrence of C.exe. Starting C from B fails as the A file is
>> still locked.
>>
>> I could place C.exe to be run on the next re-boot, but this seems messy
>> and interferes with the user's control of his PC. Is there another
>> option? All suggestions welcome. How do others update programs using the
>> web?
>>
>> Bobby Clarke
>>
>> [Non-text portions of this message have been removed]
>>
>> [Non-text portions of this message have been removed]
>>
>>
>
> [Non-text portions of this message have been removed]
>
> 

Reply via email to