Merkwürdiges Verhalten von SlideToShutdown [Windows]

Für sonstige Unterhaltungen, welche nicht direkt mit Lazarus zu tun haben

Merkwürdiges Verhalten von SlideToShutdown [Windows]

Beitragvon KenntKeinSchwein AG » 12. Dez 2016, 20:38 Merkwürdiges Verhalten von SlideToShutdown [Windows]

Hallo allerseits,
ich habe grade eben eine merkwürdige Entdeckung gemacht. Es gibt ja unter Windows (8 und neuer) die Datei "SlideToShutDown.exe" in system32. Zum Spaß wollte ich diese Datei mal von einem selbstgeschriebenen Programm aufrufen, musste jedoch feststellen, dass die Datei durch die Prüfung von FileExists nicht existiert.

Und nun wird es noch viel Merkwüriger: Wenn ich eine cmd von meinem Programm starten lasse (mit ShellExecute) und "dir /a *slide*" in system32 eingebe, wird die Datei ebenfalls nicht gefunden. Wenn ich die cmd aber über den Ausführen-Dialog starte und das gleiche mache, wird die Datei gefunden (über den Explroer wird sie auch gefunden). Ich füge mal ein Screenshot der beiden cmds an (oben ist die cmd, die von meinem Programm aufgerufen wurde. Unten die über den Ausführen-Dialog).

Ich habe schon über den Process Explorer herausgefunden, dass es (wie ich vermutet habe) ein Immersive Prozess (UWP-App) ist. Daran kann es allerdings nicht liegen, da bspw. die exe-Dateien von Edge in "C:\Windows\SystemApps\Microsoft.MicrosoftEdge_8wekyb3d8bbwe" über meine cmd sichtbar sind.

Dass es virtuelle Verzeichnisse und Dateien in Windows seit Vista gibt ist mir bewusst, allerdings verhalten diese sich anders in der cmd.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
KenntKeinSchwein AG
 
Beiträge: 26
Registriert: 4. Dez 2016, 13:35

Beitragvon Michl » 13. Dez 2016, 21:00 Re: Merkwürdiges Verhalten von SlideToShutdown [Windows]

Unter einem 64bit Windows werden die Anfragen auf das System32 Verzeichnis auf das SysWOW64 Verzeichnis umgeleitet. Wenn die Datei dort nicht vorhanden ist, kann sie nicht gefunden bzw. ausgeführt werden.

Habe es eben mal getestet. So geht das bei mir auf Windows10 (ein Test, ob die Datei vorhanden ist, bzw. ob es sich um ein 64bit OS handelt, habe ich bei dem Bsp nicht eingebaut):
Code: Alles auswählen
uses ..., process;
...
function Disable64FsDirection(var OldValue: LongBool): LongBool; stdcall; external 'kernel32' name 'Wow64DisableWow64FsRedirection';
function Revert64FsDirection(var Value: LongBool): LongBool; stdcall; external 'kernel32' name 'Wow64RevertWow64FsRedirection';
 
procedure TForm1.Button1Click(Sender: TObject);
var
  aProcess: TProcess;
  aExecFile: string;
  OldDirection: LongBool;
begin
  OldDirection := False;
  if not Disable64FsDirection(OldDirection) then
    raise Exception.Create('Disable of 64 redirection failed');
 
  aExecFile := 'C:\Windows\System32\SlideToShutDown.exe';
  aProcess := TProcess.Create(nil);
  try
    aProcess.Options := [];
    aProcess.CurrentDirectory := ExtractFileDir(aExecFile);
    aProcess.Executable := ExtractFileName(aExecFile);
    aProcess.Execute;
  finally
    aProcess.Free;
    if not Revert64FsDirection(OldDirection) then
      raise Exception.Create('Enable previous 64 redirection failed');
  end;
end

Bsp. anbei.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Code: Alles auswählen
type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 
Michl
 
Beiträge: 2243
Registriert: 19. Jun 2012, 11:54
OS, Lazarus, FPC: Win7 Laz 1.7 Trunk FPC 3.1.1 Trunk | 
CPU-Target: 32Bit/64bit
Nach oben

Beitragvon KenntKeinSchwein AG » 13. Dez 2016, 21:29 Re: Merkwürdiges Verhalten von SlideToShutdown [Windows]

Michl hat geschrieben:Unter einem 64bit Windows werden die Anfragen auf das System32 Verzeichnis auf das SysWOW64 Verzeichnis umgeleitet.
Stimmt, da war was. Wenn man mal wieder den Wald vor lauter Bäumen nicht sieht ;) . Vielen Dank.
KenntKeinSchwein AG
 
Beiträge: 26
Registriert: 4. Dez 2016, 13:35

• Themenende •

Zurück zu Dies und Das



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste

porpoises-institution
accuracy-worried