AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein ShellExecute und schreibgeschütztes Medium

ShellExecute und schreibgeschütztes Medium

Ein Thema von Poolspieler · begonnen am 1. Jul 2012 · letzter Beitrag vom 2. Jul 2012
Antwort Antwort
Poolspieler

Registriert seit: 9. Aug 2004
165 Beiträge
 
Delphi 10.3 Rio
 
#1

ShellExecute und schreibgeschütztes Medium

  Alt 1. Jul 2012, 22:26
Hallo,
ich würde mit folgendem Code gern ein externes Programm starten:
Code:
ShellExecute(Application.Handle, 'open', PChar(_datei), PChar(_parameter), Nil, SW_ShowNormal);
Dies funktioniert auch problemlos.

ABER:
Wenn das AUSZUFÜHRENDE Programm auf einem schreibgeschützten Medium (in meinem Fall eine SD-Karte) liegt, dann bekomme ich NUR unter WinXP folgende fehlermeldung von Windows (der Rückgabewert ShellExecute ist OK!):

Zitat:
Der Datenträger ist schreibgeschützt und kann nicht beschrieben werden. Entfernen Sie den Schreibschutz vom Datenträger in Laufwerk D:.
Das ganze tritt unter Win7 NICHT auf.

Ich habe es auch schon mit ShellExecuteEx ausprobiert --> gleiches Ergebnis.

Warum glaubt WinXP, ShellExecute wolle irgendwo schreibend zugreifen? Ich habe auch schon die notepad.exe mal auf das schreibgeschützte, und mal auf z.B. C:\ gelegt. --> Auf dem schreibgeschützten Verzeichnis bekomme ich die Fehlermeldung - auf C:\ nicht.
--> führe ich die Datei direkt aus (also nicht über ShellExecute, sondern über den Dateiexplorer), dann kommt KEIN Fehler. Es liegt also DEFINITIV am ShellExecute-Aufruf.

Ich versteh die Welt nicht mehr

Hat jemand eine Idee?

Viele Grüße,

Poolspieler
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.326 Beiträge
 
Delphi 12 Athens
 
#2

AW: ShellExecute und schreibgeschütztes Medium

  Alt 1. Jul 2012, 22:38
Was für eine Datei willst du öffnen und mit welchem Programm ist sie verknüpft?

Einige Programme öffnen Dateien nicht nur ReadOlny oder sie erstellen gerne mal im Verzeichnis der zu öffnenden Datei eine temporäre Hilfsdatei.
> also Schreibzugriffe

Unter Windows 7 könnte da eventuell die Virtualisierung für schlechte/alte Programme zuschlagen.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 2. Jul 2012 um 00:14 Uhr)
  Mit Zitat antworten Zitat
Poolspieler

Registriert seit: 9. Aug 2004
165 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: ShellExecute und schreibgeschütztes Medium

  Alt 1. Jul 2012, 23:08
Hi,
danke für Deine Antwort!

Eigentlich will ich ein von mir geschriebenes Delphi-Programm öffnen.
Oder ein mit Innosetup erzeugtes setup.exe.
Ich habe es aber auch mit der notepad.exe aus WinXP versucht.

--> bei allen Programmen ist es das selbe Problem.

Gruß,

Poolspieler
Andreas
  Mit Zitat antworten Zitat
Poolspieler

Registriert seit: 9. Aug 2004
165 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: ShellExecute und schreibgeschütztes Medium

  Alt 1. Jul 2012, 23:28
Hallo,
ich habe eine weiter Erkenntnis:

Das Problem tritt NUR bei SCHREIBGESCHÜTZTEN SD-Karten auf!
--> Bei einer gebrannten CD tritt das Problem NICHT auf.

Vielleicht sind hier die SD-Karten ein magischer Sonderfall und ich sollte diesen im Kleingedruckten der Software-Beschreibung einfach ausschließen...

Aber vielleicht hat ja jemand noch eine bessere Idee...

Viele Grüße,

Poolspieler
Andreas
  Mit Zitat antworten Zitat
WM_CLOSE

Registriert seit: 12. Mai 2010
Ort: königsbronn
398 Beiträge
 
RAD-Studio 2009 Pro
 
#5

AW: ShellExecute und schreibgeschütztes Medium

  Alt 2. Jul 2012, 02:08
Ich habe mal einen Filesystem Treiber geschrieben, in den Dokus stand etwas von Dateisystemtypen.
Der CDFS-Treiber hat zum beispiel keine Funktionen zum Schreiben ind ist auch so gekennzeichnet.

Die SD-Karte ist vermutlich FAT32 oder NTFS formatiert, also mit Schreibfunktion, welche nur durch den Schalter an der Karte selbst unterdrückt wird.

PS: versuch es mal mit Hier im Forum suchenCreateProcess
Delphi programming

Geändert von WM_CLOSE ( 2. Jul 2012 um 02:10 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.326 Beiträge
 
Delphi 12 Athens
 
#6

AW: ShellExecute und schreibgeschütztes Medium

  Alt 2. Jul 2012, 09:16
Bei NTFS wird z.B. das Datum/Uhrzeit des letzten Dateizugriffs gespeichert
und ich glaub im Windows 7-Treiber wurde dieses Verhalten wieder geändert.

Man braucht also nur eine Datei zu öffnen und es geschieht ein Schreibzugriff.


Zusammen mit der Aussage von WM_CLOSE (ups, jetzt ist mein Browser weg) könnte es da schon die Auswirkungen erklären.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 2. Jul 2012 um 09:18 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:49 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz