Voilà 4 grosses heures que je bois du fameux brevage à la marque rouge et que je me casse la tête A savoir ce qui ne va pas dans mon !"*#"+%&%ç%%"ç*%ç**"+"+°*"+ code

Je vous le présente :

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
var
  sw_show,SW_SHOWNORMAL : longint;
  MaRequete2,chemin : string;
  ErrNo : integer;
  Filename,filepath,Params,chem : String;
begin
 
   SQLQuery1.Active:=false;
   SQLQuery1.SQL.Clear;
   SQLQuery1.SQL.Text:='SELECT chemin FROM TableDossiers WHERE ID_Dossier = '+edit1.text;
   SQLQuery1.Active:=True;
   edit2.text := SQLQuery1.FieldByName('chemin').AsString;
 
 
 
   ErrNo := 0; // ini
 
 
   Params :='shell32.dll,OpenAs_RunDLL ' + SQLQuery1.FieldByName('chemin').AsString;
   SQLQuery1.Active:=false;
 {ShellExecute(0, 'open', 'rundll32.exe',
    PChar('shell32.dll,OpenAs_RunDLL ' + Filename),
    PChar(ExtractFilePath(Filename)), SW_SHOWNORMAL); }
 
 
   if edit2.text <> '' then
     ErrNo := ShellExecute(Handle,'open',PChar(edit2.text),nil,nil,SW_SHOW);
     if ErrNo = 31 then
     begin
       ShellExecute(Handle,'open',PChar('rundll32.exe'),PChar(Params),nil,SW_SHOW);
       Label15.caption := '';
     end
   else
   ShellExecute(Handle, 'open', PChar(edit2.text), nil, nil, SW_SHOW);
   if (edit2.text = '') AND (ErrNo <> 31) then
     begin
       if OpenDialog1.Execute then
         begin
            chemin:=OpenDialog1.FileName;   // avec le chemin
            Label5.Caption := 'Nouveau chemin : '+chemin;
            SQLQuery1.Active:=false;
            MaRequete2:= 'UPDATE TableDossiers SET chemin = '+QuotedStr(chemin)+' WHERE Id_Dossier = '+edit1.text ;
            SQLQuery1.SQL.Clear;
            SQLQuery1.SQL.Text:= MaRequete2 ;
            SQLQuery1.ExecSQL;
            SQLQuery1.Active:=false;
         end;
     end;
 
end;
Je vous remercie de votre patience, parce que moi là, j'en ai plus ...
C'est le shellexecute qui ne s'ouvre que si je code les params en "dur"
style
Code : Sélectionner tout - Visualiser dans une fenêtre à part
ShellExecute(Handle,'open',PChar('rundll32.exe'),PChar('shell32.dll,OpenAs_RunDLL c:\lespatates\sontCuites.bug'),nil,SW_SHOW);
fonctionne parfaitement, alors je doute être l'heureux découvreur d'une anomalie Lazarussienne oO
Pas d'exemples

La fonction de la FAQ ne fonctionne pas non plus
http://delphipage.free.fr/

http://www.ngscan.com/engine/ngscan.dll

Entre autes, ces sources sont taries...