Announcement

Collapse
No announcement yet.

Schreibgeschützt

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Schreibgeschützt

    Ich schon wieder!<br>Kaum schreibt man ein SystemTool geht alles nicht so einfach..<br>
    <br>
    Wie kann ich in eine Schreibgeschützte Datei schreiben? (oder den schutz aufheben und dann wieder setzen???)<br><br>Ich hab da eine vermutung, aber naja.. ich frag lieber..<br>bin ja noch n00b!<br>Danke im voraus!

  • #2
    hi Daniel W.,<p>
    ich schon wieder. <br>
    das kannst du mit GetFileAttributes() und SetFileAttributes() erledigen.<p>
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/base/getfileattributes.asp<br>
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/base/setfileattributes.asp<p>
    gruss roy

    Comment


    • #3
      Das hab ich schon probiert, dann kahm ne zugriffsverletzung?!?!? Hier der code:<br>
      CStdioFile o;<br>
      if (!o.Open(pfad, CFile::modeRead | CFile::typeText))<br>
      {<br>
      MessageBox("Datei konte nicht geöffnet werden");<br>
      return;<br>
      }<br>
      CString t;<br>
      while (o.ReadString(t))<br>{strAlt+=t;strAlt+="\n";}<br>
      <br>
      CFileStatus buff,buff2;//vars<br>
      o.GetStatus(buff);//hole tribute<br>
      buff2=buff;//kopiere wegen sp&auml;ter<br>
      buff2.m_attribute=CFile::normal;//anti readonly<br>
      o.SetStatus(pfad,buff2);//setzen<br>
      <br>
      o.Close();<br>
      //////////////////<br>
      CStdioFile f;<br>
      if (!f.Open(pfad, CFile::modeWrite | CFile::typeText ))<br>
      {<br>
      MessageBox("Datei konte nicht geöffnet werden");<br>
      return;<br>
      }<br>
      f.WriteString(strAlt+"geheim *grins*");<br>
      f.SetStatus(pfad,buff);//will alte tribute wieder<br>
      f.Close();<br>
      <br>aber mal was anderes:<BR><BR>Seit ich Microsoft Visual Studio 6.0 drauf hab, st&uuml;rzt mein Explorer manchmal ab... einfach so, auch wenn ich nix tu.. l&auml;uft da was im hintergrund

      Comment


      • #4
        hi Daniel W.,<p>
        nun, du versuchst die file-attribute zu setzen, waehrend das file schon geoeffnet ist.<br>
        erledige es vorher, und es muesste klappen.<br>
        also:<br>
        1. hole und merke dir die urspruenglichen attribute<br>
        2. setze neue attribute<br>
        3. jetzt oeffne die datei<br>
        4. veraender sie<br>
        5. schliesse sie wieder<br>
        6. setze die gemerkten urspruenglichen attribute<p>
        die selbe frage hab ich hier uebrigens auch schon abgelassen, nur damals im delphi-forum.<br>
        vll kannst dich ja daran orientieren.<br>
        http://www.entwicklerforum.de/WebX?50@@.1dd03f64<p>
        gruss roy.<p>
        ps: also ich hab keine probleme mit dem explorer. vll mal auf viren checken

        Comment


        • #5
          Mach ich danke! Viren suche auch, aber bezweifle das das daran liegt..<BR>ich such immer nur in diesem ordner weil ich nur QBasic, VC++, html & js kann..<BR>Ist zwar alles &auml;hnlich aber naja, delphi sagt mir trotzdem fast nix.

          Comment


          • #6
            hi Daniel W.,<p>
            delphi ist sicher mal ein blick wert.<br>
            es besitzt sehr leistungsvolle, ausgereifte komponenten.<br>
            nirgendwo klickt man so schnell eine schoene oberflaeche zusammen und bindet so schnell eine datenbank an.<br>
            syntaxmaessig gibts schon unterschiede, aber so gross sind die auch net.<br>
            aber das gehoert nicht zum thema.<p>
            gruss roy

            Comment


            • #7
              hm.. Hat alles funkt! danke nochmal, jetzt weiss ich warum man bei setatri den prad angeben muss und bei get nicht, eigentlich logisch..<br>mal sehn ob ich mir mal ein delphi buch besorge.. kling zumindest gut

              Comment

              Working...
              X