Cita:
Empezado por dec
Hola,
Comprueba el error de "ShellExecute()", si existe: intenta con la función "GetLastError()", porque es muy raro eso que ocurre... ¿igual es que no existe "notepad.exe" en tu sistema?
|
Jeje, si, si que existe notepad.exe en mi sistema.
Cita:
Empezado por seoane
Siguiendo el consejo de dec, coloca esto justo despues del ShellExecute:
Código Delphi [-]ShowMessage(SysErrorMessage(GetLastError));
|
He he hecho esto y obtengo el mensaje "La operación se ha completado correctamente" eso si, no se abre el notepad con el archivo de texto. Esto es mazo de raro.
Este es el código que tengo:
Código Delphi
[-]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ShellAPi;
type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
Archivo: Text;
public
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
linea: string;
St: Array[0..255] of char;
SW_SHOW: longint;
begin
SW_SHOW := 0;
System.Assign(Archivo,'C:\a\b.txt');
System.Rewrite(Archivo);
System.Writeln(Archivo,'Hola');
System.Close(Archivo);
Memo1.Lines.Clear;
Memo1.Lines.Add('Formulario creado.');
Memo1.Lines.Add('Archivo creado.');
System.Reset(Archivo);
System.Readln(Archivo,linea);
Memo1.Lines.Add(linea);
System.Close(Archivo);
ShellExecute(Handle,'open','notepad.exe','C:\a\b.txt','',SW_SHOW);
ShowMessage(SysErrorMessage(GetLastError));
end;
end.