AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Mehrere Flags mit SHFileOperation [Gelöst]
Thema durchsuchen
Ansicht
Themen-Optionen

Mehrere Flags mit SHFileOperation [Gelöst]

Ein Thema von Ardeo · begonnen am 8. Apr 2007 · letzter Beitrag vom 9. Apr 2007
Antwort Antwort
Ardeo

Registriert seit: 13. Dez 2006
14 Beiträge
 
#1

Mehrere Flags mit SHFileOperation [Gelöst]

  Alt 8. Apr 2007, 23:43
Hallo,

Ich verwende diese Funktion aus der Code-Library:

Delphi-Quellcode:
function DoFileWork(aOperation: FILEOP_FLAGS; aFrom, aTo: AnsiString;
                    Flags : FILEOP_FLAGS): Integer;
var
  FromPath, ToPath: AnsiString;
  SHFileOpStruct: TSHFileOpStruct;
begin
  FromPath := aFrom + #0#0;
  ToPath := aTo + #0#0;
  with SHFileOpStruct do
  begin
    Wnd := 0;
    wFunc := aOperation;
    pFrom := PAnsiChar(FromPath);
    if ToPath <> 'then
    begin
      pTo := PAnsiChar(ToPath)
    end else begin // target available
      pTo := nil;
    end; // target not available
    fFlags := Flags;
  end; // structure
  Result := SHFileOperationA(SHFileOpStruct);
end;
Und da ich nicht viel von WinApi verstehe und auch die Suche keine Erfolge brachte, wollte ich frage, wie es möglich ist, mehr als nur eine Flag zu verwenden. Ich würde nämlich gerne die 2 Flags 'FOF_SILENT' und 'FOF_NOCONFIRMATION'
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Mehrere Flags mit SHFileOperation

  Alt 9. Apr 2007, 00:27
Hi,
versuche es mal so:
fFlags := fof_Silent or fof_NoConfirmation;
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
Ardeo

Registriert seit: 13. Dez 2006
14 Beiträge
 
#3

Re: Mehrere Flags mit SHFileOperation

  Alt 9. Apr 2007, 01:05
Dankeschön, das funktioniert.
Frohe Ostern
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#4

Re: Mehrere Flags mit SHFileOperation [Gelöst]

  Alt 9. Apr 2007, 09:39
Wen es interessiert :

Mit der Verknüpfung von OR werden 2 Bits in 2 Zahlen zusammengebracht:

Nehmen wir an:
Delphi-Quellcode:
fof_Silent = 1 = 00001
fof_NoConfirmation = 4 = 00100
Dann sind die Flags mit OR verknüpft:
Delphi-Quellcode:
fof_Silent = 1 = 00001
fof_NoConfirmation = 4 = 00100
--------------------------------
MyOR = 5 = 00101
Man kann dann mit einer and Verküpfung herausfinden, ob ein bestimmte Bit gesetzt ist :

if MyOr and fof_Silent = fof_Silent then...
Delphi-Quellcode:
MyOr 00101
and 00001 = fof_Silent
-------------
     00001 == fof_Silent
Der AND Operator ergibt nur 1, wenn an beiden Stellen jeweils eine 1 steht.
Alle Bits werden gelöscht, wenn man mit 0 verundet.

Mit dem XOR Operator kann man dann noch ein Bit löschen

Delphi-Quellcode:
MyOR 00101
XOR
fof_Silent 00001
----------------------
            00100
XOR ergibt nur dann 1, wenn von zwei Bits nur EIN Bit gesetzt ist.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Antwort Antwort


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 12:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz