Hallo,
ich betreibe eine
Win32-Anwendung (Delphi XE2) auf einem Tablet-PC mit Windows 8 Pro.
Aus der Delphi-Anwendung möchte ich einige Win8-apps starten (z.B. Kamera = C:\Windows\Camera\Camera.exe).
Leider funktioniert der
Winapi-Aufruf "Shellexecute" nicht. Die Kamera-App (camera.exe) kann auch nicht per Doppelklick aus dem Windows Explorer gestartet werden, sondern nur aus der Metro-Oberfläche klappt das.
Der Delphi Programmcode:
// sollte die Kamera-App unter Win8 starten
procedure TForm1.bt_KameraClick(Sender: TObject);
var rslt : integer;
begin
rslt := ShellExecute_woWait ('C:\Windows\Camera\Camera.exe','');
end;
//
Winapi-Aufruf:
function ShellExecute_woWait(FileName: string; Params: string):integer;
var exepath:string;
begin
Result := 0;
if (not FileExists(FileName)) then begin
Result := ERROR_FILE_NOT_FOUND;
exit;
end;
exepath := extractFilepath(FileName);
Result := ShellExecute(0, //
handle to parent window
nil, // pointer to string that specifies operation to perform (--> klappt auch nicht mit 'open')
PChar(FileName), // pointer to filename string
PChar(Params), // pointer to string that specifies executable-file parameters
PChar(exepath), // pointer to string that specifies default directory (--> klappt auch nicht mit nil)
SW_SHOWNORMAL // whether file is shown when opened
);
// >32: erfolgreich
if Result>32 then
Result := 0;
end;
Wie kann ich aus einer
Win32-Anwendung eine Win8 app starten?
Danke.
Punki