Deutsches AutoHotkey Homepage AutoHotkey Community
Wir helfen uns gegenseitig aus der Patsche
 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Schreibschutzabfrage USB-Stick

 
Neues Thema eröffnen   Neue Antwort erstellen    AutoHotkey Community Foren-Übersicht -> Ich brauche Hilfe!
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
eagle213



Anmeldedatum: 12.05.2006
Beiträge: 3

BeitragVerfasst am: Fr Mai 12, 2006 10:44 am    Titel: Schreibschutzabfrage USB-Stick Antworten mit Zitat

Hallo Ihr,

ich moechte in einem Script abfragen, ob der Datentraeger (von dem das Script startet) schreibgeschuetzt ist.

Dazu benenne ich eine Datei probehalber um (mit FileMove) und lese danach den ErrorLevel aus.

Allerdings scheitere ich dann an der Windows-Fehlermeldung "Der Datentraeger ist schreibgeschuetzt ...", die ich mit WinWaitActive und WinClose auch nicht geschlossen bekomme.

Hat jemand eine Idee oder einen anderen (besseren) Weg?

Danke schon mal vorab.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Thalon



Anmeldedatum: 25.10.2005
Beiträge: 1871
Wohnort: Österreich

BeitragVerfasst am: Fr Mai 12, 2006 11:06 am    Titel: Antworten mit Zitat

Am Besten du fragst nach ob es Schreibgeschützt ist Wink
Code:
FileGetAttrib, Attribute, C:\
IfInStr(Attribute, "R")
   msgbox, Drive is Readonly!
Einfach deinen Laufwerksbuchstaben einsetzen. Sollte funktionieren!

Thalon
_________________
Mein Motto: Hilfe zur Selbsthilfe!
Teildeutsche Hilfe (CHM)!! und Deutsche Online-Hilfe
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
eagle213



Anmeldedatum: 12.05.2006
Beiträge: 3

BeitragVerfasst am: Fr Mai 12, 2006 11:47 am    Titel: Antworten mit Zitat

Thalon hat Folgendes geschrieben:
Am Besten du fragst nach ob es Schreibgeschützt ist Wink
...
Thalon


Hmm,

Das funzt so leider nicht... Sad

Die Dateien und Verzeichnisse auf dem USB-Stick haben selbst keinen Schreibschutz, der Stick selbst ist manchmal per Schieber schreibgeschuetzt. Deshalb mein Versuch, die Datei umzubenennen und danach den Errorlevel auszulesen (was soweit auch funzt).

Es wuerde mir auch schon helfen, die Windowsfehlermeldung zu unterdruecken (verstecken)

hier mal der Code auszugsweise:
Code:

SetTitleMatchMode, 2                                 ; Fenstertitelabfrage muss nur einen       
;                                                    ; Teil des Fenstertitels enthalten
;
SetEnv, ePath, %A_WorkingDir%                        ; Auslesen des Arbeitsverzeichnisses

FileMove,  %ePath%\wp, %ePath%\wpneu, 1              ; Schreibschutztest
msgbox, UmbenennVersuch
If Errorlevel                                        ; Schreibschutz im aktuellen Verzeichnis?
{
      SetEnv, eErrLev, 1                             ; Errorlevel 1 merken
      WinWait, %A_ScriptName%
      WinClose,  %A_ScriptName%
}


Die vorletzten 2 Zeilen (WinWait/WinClose) greifen bei der Windows-Schreibschutz-Fehlermeldung nicht...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Gast






BeitragVerfasst am: Fr Mai 12, 2006 12:31 pm    Titel: Antworten mit Zitat

Code:
If Errorlevel
Sofern diese deine Schreibweise überhaupt zulässig ist (ich denke ja), würde ich es trotzdem vorziehen einen Wert anzugeben. Beispiel:
If Errorlevel = 1
If Errorlevel <> 1

Code:
SetEnv, ePath, %A_WorkingDir%

FileSetAttrib, ^A, %ePath%\AttribTest.txt ; Attribut toggeln
If ErrorLevel <> 0 ; Attributwechsel Fehlversuch
{
   MsgBox, USB-Schreibschutz aktiv ?
   Exit
   }
FileSetAttrib, ^A, %ePath%\AttribTest.txt ; Attribut zurücksetzen
Ungetestet.
Nach oben
Thalon



Anmeldedatum: 25.10.2005
Beiträge: 1871
Wohnort: Österreich

BeitragVerfasst am: Fr Mai 12, 2006 12:32 pm    Titel: Antworten mit Zitat

Du sollst auch nicht die Dateien abfragen sondern das Laufwerk selbst Wink
Darum wurde oben auch als Example nur "C:\" angegeben...

Wenn du also im Windows-Explorer per "Eigenschaften" des Stick-Laufwerkes den Schreibschutz siehst sollte es so funktionieren...

Thalon
_________________
Mein Motto: Hilfe zur Selbsthilfe!
Teildeutsche Hilfe (CHM)!! und Deutsche Online-Hilfe
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
BoBo
Gast





BeitragVerfasst am: Fr Mai 12, 2006 12:41 pm    Titel: Antworten mit Zitat

der Gast war ich. Weiss auch jetzt nicht wirklich, ob Thalon auf mich retourniert hat?
Nach oben
Thalon



Anmeldedatum: 25.10.2005
Beiträge: 1871
Wohnort: Österreich

BeitragVerfasst am: Fr Mai 12, 2006 1:02 pm    Titel: Antworten mit Zitat

@BoBo
Nein, war nicht auf dich bezogen.
Deine Lösung (sofern sie prinzipiell funktioniert) ist der Mov-Lösung sicherlich vorzuziehen. Am Elegantesten wäre aber sicherlich die simple Schreibschutzabfrage (wie von mir vorgeschlagen), anstatt über Symptome auf den Zustand zu schließen. Ich vermute diese Lösung würde auch die Windows-Meldung hervorrufen.

Ich besitze leider keinen Stick mit Schreibschutzmöglichkeiten um zu sehen ob am Laufwerk das enstprechende Attribut gesetzt wird. Bei einem simplen Umsetzen des Status funktioniert obiger Code von mir...

Thalon
_________________
Mein Motto: Hilfe zur Selbsthilfe!
Teildeutsche Hilfe (CHM)!! und Deutsche Online-Hilfe
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
eagle213



Anmeldedatum: 12.05.2006
Beiträge: 3

BeitragVerfasst am: Fr Mai 12, 2006 1:38 pm    Titel: Antworten mit Zitat

Thalon hat Folgendes geschrieben:
...

Wenn du also im Windows-Explorer per "Eigenschaften" des Stick-Laufwerkes den Schreibschutz siehst sollte es so funktionieren...

Thalon

Noe, funktioniert bei mir nicht. Windows Explorer zeigt nichts an.
Ich habe den Laufwerksbuchstaben mit und ohne "\" im Script ausprobiert ->
Code:

msgbox, %Attribute%

zeigt das Ergebnis: "D" (wohl fuer Directory)

Vielleicht kann das Betriebssystem den Schreibschutz gar nicht auslesen, aehnlich wie beim mechanischen Schreibschutz der 3,5-Zoll-Diskette?

Ich teste mal Bobo's Zeilen und melde mich wieder...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Gast






BeitragVerfasst am: Fr Mai 12, 2006 4:44 pm    Titel: Antworten mit Zitat

So, hab noch paar andere Wege probiert...

Auch mit Bobo's Code kommt die Fehlermeldung.

Windows ist anscheinend nicht in der Lage, den Schreibschutz abzufragen.
Erst wenn wirklich versucht wird zu schreiben, reagiert Windows mit der Schreibschutz-Fehlermeldung.

Letzte Moeglichkeit bleibt also nur noch, die Fehlermeldung abzufangen.

Hat noch jemand eine Idee? Mit WinWait bzw. WinClose habe ich keine Erfolge erzielen koennen...
Nach oben
BoBo
Gast





BeitragVerfasst am: Fr Mai 12, 2006 10:39 pm    Titel: Antworten mit Zitat

Code:
SetTimer, KickIt, 500
Return

KickIt:
IfWinActive, HierDerExakteTitelVondemIchNichtGlaubeDasErMitA_ScriptNameIdentischIst
   WinClose
Return

SetEnv, ePath, %A_WorkingDir%

FileSetAttrib, ^A, %ePath%\AttribTest.txt ; Attribut toggeln
If ErrorLevel <> 0 ; Attributwechsel Fehlversuch
{
   MsgBox, USB-Schreibschutz aktiv ?
   Exit
   }
FileSetAttrib, ^A, %ePath%\AttribTest.txt ; Attribut zurücksetzen
Ungetestet. Aber eine SetTimerRoutine wirds final, definitiv!
Nach oben
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    AutoHotkey Community Foren-Übersicht -> Ich brauche Hilfe! Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de