Hi guys,
I try to start itself again with this code, but it doesn't work:
IF GetEnvironmentVariable('LIBOVERLAY_SCROLLBAR') <> '0' THEN begin
mProc := TProcess.Create(NIL);
mProc.CommandLine := GetExeName;
mProc.Environment.Add('LIBOVERLAY_SCROLLBAR=0');
mProc.Environment.Add('UBUNTU_MENUPROXY=');
mProc.Options := mProc.Options + [poNoConsole];
mProc.Execute;
mProc.Free;
halt; //close itself
END;
What's wrong with this code?
Tnx, f.
On Tue, Apr 3, 2012 at 4:30 PM, <[email protected]> wrote:
>
>
> On Tue, 3 Apr 2012, Marco van de Voort wrote:
>
>> On Tue, Apr 03, 2012 at 03:57:01PM +0200, [email protected]
>> wrote:
>>>>
>>>> supported and therefore I am looking for SetEnv which I can use on 64bit
>>>> Linux.
>>>>
>>>> SysUtils contains only GetEnvironmentVariable, but not Set...
>>>
>>>
>>> That's not how it works on Unix/Linux.
>>>
>>> You must always set up environment variables before a program starts.
>>> When starting a process, the environment for that process is started and
>>> is
>>> then immutable for the duration of the process.
>>
>>
>> (and even if you manage to change the copy of the process, the libraries
>> startup code will have already been run before you make that change to the
>> copy of the environment)
>
>
> Hence the 'immutable'...
>
> Michael.
>
>
> --
> _______________________________________________
> Lazarus mailing list
> [email protected]
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus