Ver Mensaje Individual
  #2  
Antiguo 16-11-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Creo que estas tratando de implementar el código que te sugerí aquí y te has echo una ensalada.
Si te fijas bién en el post anterior, no es en OnCreate donde se captura el nombre de archivo sino en DragDropFileMSG.

Resumiendo:
Código Delphi [-]
....
implementation

uses ShellApi,StrUtils;

function GetShortName(const FileName: String): String;
var
  ShortName: PChar;
  Size: Cardinal;
begin
  Size := GetShortPathName(PChar(FileName), nil, 0);
  if Size > 0 then
  begin
    GetMem(ShortName, Size);
    GetShortPathName(PChar(FileName), ShortName, Size);
    Result := ShortName;
    FreeMem(ShortName);
  end
  else
    Result := FileName;
end;

procedure LlamarReg2inf(Hnd: THandle; const App:string; Origen: string; Destino: string);
begin
  // En Origen dejamos el nombre corto sin espacios
  Origen:= AnsiReplaceStr(GetShortName(Origen), ' ', ''); 
  // Cambiamos la extensión para Destino 
  Destino:= ChangeFileExt(Origen, '.inf');
  // Llamamos a 'REG2INF.EXE con Origen y Destino
  ShellExecute(Hnd,  
              'OPEN',
              PChar(ExtractFileName(App)),
              PChar(Origen+' '+Destino),
              PChar(ExtractFilePath(App)),
              SW_SHOW);
end;

procedure TForm1.DragDropFileMSG(var Msg: TMessage);
var
  DragDropFileName: array[0..255] of Char;
begin
  DragQueryFile(msg.WParam, 0, DragDropFileName, Length(DragDropFileName));
  DragFinish(Msg.WParam);
  LlamarReg2inf(Handle, 'REG2INF.EXE', DragDropFileName,'')
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  DragAcceptFiles(Handle, True);
end;
...
A fin de simplificar la explicación recorté y modifiqué un poco el código del procedimiento LlamarReg2inf.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita