Bonjour développeurs,
J'utilise Windows 7, Lazarus version 1.0.12, FPC 2.6.2 et SVN 42478.
Je travaille depuis plusieurs semaines sur un programme et j'ai découvert un problème, lorsque vient le temps de lire une clé de registre.
Voici la portion du code qui me cause problème :
Lorsque je fais appel à cette clé de registre en particulier, la concaténation de cette ligne de code ne fonctionne plus :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 unit Unit1; {$mode objfpc}{$H+} interface uses Forms, LCLType, Registry, ShellApi, ComCtrls, StdCtrls; type { TForm1 } TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { private declarations } public { public declarations } end; var Form1: TForm1; implementation {$R *.lfm} { TForm1 } // Execute FSX.exe procedure TForm1.Button1Click(Sender: TObject); var reg: TRegistry; str: string; exeFSX : string; begin // Allons chercher le chemin de FSX.exe reg := TRegistry.Create; reg.RootKey := HKEY_CURRENT_USER; reg.OpenKeyreadonly('Software\Microsoft\Microsoft Games\Flight Simulator\10.0'); str := reg.ReadString('AppPath'); reg.closekey; reg.free; exeFSX := (str + 'FSX.exe'); // Executer FSX.exe si retourne > 32 c'est qu'il y a erreur if ShellExecute(0,nil, PChar(exeFSX),nil,nil,SW_SHOWNORMAL) > 32 then begin Halt(); end else Application.MessageBox('Unable to find FSX.exe!', 'Run FSX.exe', MB_ICONINFORMATION); end; end.
Cela fait une bonne semaine que je cherche à solutionner ce problème, mais sans succès.
Code : Sélectionner tout - Visualiser dans une fenêtre à part exeFSX := (str + 'FSX.exe');
Avez-vous déjà rencontré ce genre de situation ?
Est-ce un bogue avec Lazarus ?
Merci de votre support.
Partager