USB FLASHDİSK OKUMA YAZMA
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
USB FLASHDİSK OKUMA YAZMA
https://drive.google.com/open?id=1ne4_s ... Pug7nydnsd
Remindeki gibi bir checkedlistbox da Flash diks listesini görmek ve işaretli olana checkedlistbox daki Flash disk e dosya aktarmak dosya silmek akatarılın dosyanın da görünmesini istemiyorum.Gizli dosyaları göster denilse bile.bunu nasıl yapabilirim.
Remindeki gibi bir checkedlistbox da Flash diks listesini görmek ve işaretli olana checkedlistbox daki Flash disk e dosya aktarmak dosya silmek akatarılın dosyanın da görünmesini istemiyorum.Gizli dosyaları göster denilse bile.bunu nasıl yapabilirim.
Re: USB FLASHDİSK OKUMA YAZMA
Merhaba,
- USB Flash bellek sürücü isimlerini öğrenmek için aşağıdaki gibi bir yöntem izleyebilirsiniz.
- Sürücünün toplam kapasitesini aşağıdaki Windows API fonksiyonunu kullanarak öğrenebilirsiniz:
- Dosya sistemi türü ve etiket bilgisini "GetVolumeInformation()" Windows API fonksiyonunu ile öğrenebilirsiniz. Kolay kullanım için aşağıdaki gibi bir prosedür hazırlanabilir:
Aşağıdaki gibi bir kod ile ekranda ilgili bileşen içinde istediğimiz bilgileri gösterebiliriz:
- İlgili sürücüye dosya kopyalamak için System.IOUtils içindeki TFile.Copy() prosedürünü kullanabilirsiniz.
Ancak
Sistem üzerinde dosyanın gözükmemesini sağlamak her dosya sistemi için mümkün değildir. Ayrıca bilgili kişiler bu dosyaları dahi görüp okuyabilirler. Bunun yerine kopyalayacağınız bilgileri şifrelenmiş şekilde kopyalamayı deneyebilirsiniz.
Dosya kopyalama işlemleri dışındakileri yapan örnek Delphi 10.2.3 projesini ekte bulabilirsiniz.
- USB Flash bellek sürücü isimlerini öğrenmek için aşağıdaki gibi bir yöntem izleyebilirsiniz.
Kod: Tümünü seç
const
IOCTL_STORAGE_QUERY_PROPERTY = $002D1400;
type
STORAGE_QUERY_TYPE = (PropertyStandardQuery = 0, PropertyExistsQuery, PropertyMaskQuery, PropertyQueryMaxDefined);
TStorageQueryType = STORAGE_QUERY_TYPE;
STORAGE_PROPERTY_ID = (StorageDeviceProperty = 0, StorageAdapterProperty);
TStoragePropertyID = STORAGE_PROPERTY_ID;
STORAGE_PROPERTY_QUERY = packed record
PropertyId: STORAGE_PROPERTY_ID;
QueryType: STORAGE_QUERY_TYPE;
AdditionalParameters: array [0..9] of AnsiChar;
end;
TStoragePropertyQuery = STORAGE_PROPERTY_QUERY;
STORAGE_BUS_TYPE = (BusTypeUnknown = 0, BusTypeScsi, BusTypeAtapi, BusTypeAta, BusType1394, BusTypeSsa, BusTypeFibre,
BusTypeUsb, BusTypeRAID, BusTypeiScsi, BusTypeSas, BusTypeSata, BusTypeMaxReserved = $7F);
TStorageBusType = STORAGE_BUS_TYPE;
STORAGE_DEVICE_DESCRIPTOR = packed record
Version: DWORD;
Size: DWORD;
DeviceType: Byte;
DeviceTypeModifier: Byte;
RemovableMedia: Boolean;
CommandQueueing: Boolean;
VendorIdOffset: DWORD;
ProductIdOffset: DWORD;
ProductRevisionOffset: DWORD;
SerialNumberOffset: DWORD;
BusType: STORAGE_BUS_TYPE;
RawPropertiesLength: DWORD;
RawDeviceProperties: array [0..0] of AnsiChar;
end;
TStorageDeviceDescriptor = STORAGE_DEVICE_DESCRIPTOR;
function GetBusType(Drive: AnsiChar): TStorageBusType;
var
H: THandle;
Query: TStoragePropertyQuery;
dwBytesReturned: DWORD;
Buffer: array [0..1023] of Byte;
sdd: TStorageDeviceDescriptor absolute Buffer;
OldMode: UINT;
begin
Result := BusTypeUnknown;
OldMode := SetErrorMode(SEM_FAILCRITICALERRORS);
try
H := CreateFile(PChar(Format('\\.\%s:', [AnsiLowerCase(string(Drive))])), 0, FILE_SHARE_READ or FILE_SHARE_WRITE, nil,
OPEN_EXISTING, 0, 0);
if H <> INVALID_HANDLE_VALUE then
begin
try
dwBytesReturned := 0;
FillChar(Query, SizeOf(Query), 0);
FillChar(Buffer, SizeOf(Buffer), 0);
sdd.Size := SizeOf(Buffer);
Query.PropertyId := StorageDeviceProperty;
Query.QueryType := PropertyStandardQuery;
if DeviceIoControl(H, IOCTL_STORAGE_QUERY_PROPERTY, @Query, SizeOf(Query), @Buffer, SizeOf(Buffer), dwBytesReturned, nil) then
Result := sdd.BusType;
finally
CloseHandle(H);
end;
end;
finally
SetErrorMode(OldMode);
end;
end;
procedure GetUsbDrives(List: TStrings);
var
DriveBits: set of 0..25;
I: Integer;
Drive: AnsiChar;
begin
List.BeginUpdate;
try
Cardinal(DriveBits) := GetLogicalDrives;
for I := 0 to 25 do
if I in DriveBits then
begin
Drive := AnsiChar(Chr(Ord('a') + I));
if GetBusType(Drive) = BusTypeUsb then
List.Add(string(Drive));
end;
finally
List.EndUpdate;
end;
end;
Kod: Tümünü seç
GetDiskFreeSpaceEx()
Kod: Tümünü seç
procedure GetDriveInfo(const Drive: string; out oFileSystemName: string; out oVolumeName: string);
var
VolumeSerialNumber: DWORD;
MaximumComponentLength: DWORD;
FileSystemFlags: DWORD;
VolumeName: PChar;
FileSystemName: PChar;
begin
GetMem(VolumeName, MAX_PATH);
try
GetMem(FileSystemName, MAX_PATH);
try
GetVolumeInformation( PChar(Drive), VolumeName, MAX_PATH, @VolumeSerialNumber,
MaximumComponentLength, FileSystemFlags, FileSystemName, MAX_PATH);
oVolumeName := StrPas(VolumeName);
oFileSystemName := StrPas(FileSystemName);
finally
FreeMem(FileSystemName);
end;
finally
FreeMem(VolumeName);
end;
end;
Kod: Tümünü seç
procedure TForm1.btnGetUsbDriveListClick(Sender: TObject);
const
GB: Int64 = 1024*1024*1024;
var
I: Integer;
FreeSpace: Int64;
Available: Int64;
Volume: string;
FS: string;
begin
GetUsbDrives(CheckListBox1.Items);
// Sürücü harflerini daha anlaşılır hale getir
for I := 0 to Pred(CheckListBox1.Items.Count) do
begin
CheckListBox1.Items[I] := CheckListBox1.Items[I].ToUpper() + ':\';
if System.SysUtils.GetDiskFreeSpaceEx(PChar(CheckListBox1.Items[I]), FreeSpace, Available, nil) then
begin
GetDriveInfo(CheckListBox1.Items[I], FS, Volume);
CheckListBox1.Items[I] := CheckListBox1.Items[I] + Format(' %s ( %2.2f GB ) %s', [FS, (Available / GB), Volume]);
end;
end;
end;
Ancak
Sistem üzerinde dosyanın gözükmemesini sağlamak her dosya sistemi için mümkün değildir. Ayrıca bilgili kişiler bu dosyaları dahi görüp okuyabilirler. Bunun yerine kopyalayacağınız bilgileri şifrelenmiş şekilde kopyalamayı deneyebilirsiniz.
Dosya kopyalama işlemleri dışındakileri yapan örnek Delphi 10.2.3 projesini ekte bulabilirsiniz.
- Dosya ekleri
-
- usb_listesi_okuma.7z
- (2.28 KiB) 59 kere indirildi
Re: USB FLASHDİSK OKUMA YAZMA
çok teşekkürler ertank.Kod ve uygula dosyan için.Takıldığında otomatik nasıl görünür kodu var mı.
C:\ altına ini dosyası açıyorum burada usb deki F,G.. sürücülerinin harfleri C:\Database.ini yerine nasıl eklenir.checklistbox daki yani F:\Database.ini+G:\Database.ini+.... gibi bütün flasların altına aynı ini dosyası atacağım.
birde atılan ini dosyası çok küçük boyutta ve bu dosyanın gizli kalmasını istiyorum.Ama gizli dosya şeklinde değil.kimse görmeyecek şekilde.
Kod: Tümünü seç
INIDosya := TIniFile.Create('C:\Database.ini');
INIDosya.WriteString('Okul Adı','Şifre',Edit1.Text );
birde atılan ini dosyası çok küçük boyutta ve bu dosyanın gizli kalmasını istiyorum.Ama gizli dosya şeklinde değil.kimse görmeyecek şekilde.
Re: USB FLASHDİSK OKUMA YAZMA
Yukarıdaki mesajımın sonunda belirtmiştim. "Kimse göremeyecek şekilde" kısmı çok mümkün değil. Bunun yerine şifrelenmiş dosya kullanabilirsiniz.
Diğer sorunuzu anlayamadım. Daha detaylı şekilde sormanız mümkün mü?
Diğer sorunuzu anlayamadım. Daha detaylı şekilde sormanız mümkün mü?
Re: USB FLASHDİSK OKUMA YAZMA
1.sorum Flash disk takıldıgında otomatik checkboxta görünmesi cıkartıldığnda kaybolması
2.sorum Flashfisk F Olarak gözüyor örneğin F:\Dabase.ini (flash kök dizini) şeklinde bir dosya kaydetmek istiyorum.Bunu nasıl yapabilirim F G H gibi kök dizinler olduğunda hangi kök dizin secili ise ona ini dosyası atacak
2.sorum Flashfisk F Olarak gözüyor örneğin F:\Dabase.ini (flash kök dizini) şeklinde bir dosya kaydetmek istiyorum.Bunu nasıl yapabilirim F G H gibi kök dizinler olduğunda hangi kök dizin secili ise ona ini dosyası atacak
Re: USB FLASHDİSK OKUMA YAZMA
Kod: Tümünü seç
Unit EZCrypt;
{modeled by Ben Hochstrasser(bhoc@surfeu.ch) after some code snippet from borland}
interface
uses Windows, Classes;
type
TWordTriple = Array[0..2] of Word;
function FileEncrypt(InFile, OutFile: String; Key: TWordTriple): boolean;
function FileDecrypt(InFile, OutFile: String; Key: TWordTriple): boolean;
function TextEncrypt(const s: string; Key: TWordTriple): string;
function TextDecrypt(const s: string; Key: TWordTriple): string;
function MemoryEncrypt(Src: Pointer; SrcSize: Cardinal; Target: Pointer; TargetSize: Cardinal; Key: TWordTriple): boolean;
function MemoryDecrypt(Src: Pointer; SrcSize: Cardinal; Target: Pointer; TargetSize: Cardinal; Key: TWordTriple): boolean;
implementation
function MemoryEncrypt(Src: Pointer; SrcSize: Cardinal; Target: Pointer; TargetSize: Cardinal; Key: TWordTriple): boolean;
var
pIn, pOut: ^byte;
i : Cardinal;
begin
if SrcSize = TargetSize then
begin
pIn := Src;
pOut := Target;
for i := 1 to SrcSize do
begin
pOut^ := pIn^ xor (Key[2] shr 8);
Key[2] := Byte(pIn^ + Key[2]) * Key[0] + Key[1];
inc(pIn);
inc(pOut);
end;
Result := True;
end else
Result := False;
end;
function MemoryDecrypt(Src: Pointer; SrcSize: Cardinal; Target: Pointer; TargetSize: Cardinal; Key: TWordTriple): boolean;
var
pIn, pOut: ^byte;
i : Cardinal;
begin
if SrcSize = TargetSize then
begin
pIn := Src;
pOut := Target;
for i := 1 to SrcSize do
begin
pOut^ := pIn^ xor (Key[2] shr 8);
Key[2] := byte(pOut^ + Key[2]) * Key[0] + Key[1];
inc(pIn);
inc(pOut);
end;
Result := True;
end else
Result := False;
end;
function TextCrypt(const s: string; Key: TWordTriple; Encrypt: Boolean): string;
var
bOK: Boolean;
begin
SetLength(Result, Length(s));
if Encrypt then
bOK := MemoryEncrypt(PChar(s), Length(s), PChar(Result), Length(Result), Key)
else
bOK := MemoryDecrypt(PChar(s), Length(s), PChar(Result), Length(Result), Key);
if not bOK then Result := '';
end;
function FileCrypt(InFile, OutFile: String; Key: TWordTriple; Encrypt: Boolean): boolean;
var
MIn, MOut: TMemoryStream;
begin
MIn := TMemoryStream.Create;
MOut := TMemoryStream.Create;
Try
MIn.LoadFromFile(InFile);
MOut.SetSize(MIn.Size);
if Encrypt then
Result := MemoryEncrypt(MIn.Memory, MIn.Size, MOut.Memory, MOut.Size, Key)
else
Result := MemoryDecrypt(MIn.Memory, MIn.Size, MOut.Memory, MOut.Size, Key);
MOut.SaveToFile(OutFile);
finally
MOut.Free;
MIn.Free;
end;
end;
function TextEncrypt(const s: string; Key: TWordTriple): string;
begin
Result := TextCrypt(s, Key, True);
end;
function TextDecrypt(const s: string; Key: TWordTriple): string;
begin
Result := TextCrypt(s, Key, False);
end;
function FileEncrypt(InFile, OutFile: String; Key: TWordTriple): boolean;
begin
Result := FileCrypt(InFile, OutFile, Key, True);
end;
function FileDecrypt(InFile, OutFile: String; Key: TWordTriple): boolean;
begin
Result := FileCrypt(InFile, OutFile, Key, False);
end;
sitede bu şekilde bir unit var metin yada dosya sifreleme için hazır unit kodu bunu nasıl kullalnabiliriz.
Re: USB FLASHDİSK OKUMA YAZMA
Ekteki uygulamayı inceleyebilirsiniz. Aşağıdaki kaynaktan faydalanmaktadır:
http://nitemsg.blogspot.com.tr/2011/01/ ... t-you.html
Örnek kodlar arasındaki procedure GetUsbDrives(List: TStrings); prosedürünü kullanabilirsiniz. Bu size bilgisayara takılı olan USB belleklerin sürücü harf listesini verecektir. Liste içeriği küçük harf olacaktır.
- Dosya ekleri
-
- usb_detection.7z
- (3.41 KiB) 54 kere indirildi
Re: USB FLASHDİSK OKUMA YAZMA
Bu şifreleme yöntemi güvenli değil. Ekteki uygulama ile test edebilirsiniz. Şifrelenmiş dosya halen anlaşılır derecede okunabilir oluyor. Daha kabul görmüş AES128, AES256 gibi yöntemlerden birini denemenizde fayda var.
Sitede daha önce şifreleme ile ilgili birçok kullanılabilir kod paylaşımı olmuştu. Arama yapmanızı tavsiye ederim.
- Dosya ekleri
-
- ezcrypt.7z
- (1.79 KiB) 57 kere indirildi
Re: USB FLASHDİSK OKUMA YAZMA
şifrleme ( hiç bir işe yaramıyor.
Re: USB FLASHDİSK OKUMA YAZMA
Key değişkeni için tanımlanan rakamları yüksek değerler olarak verir iseniz şifreleme yapıyor. Ben aşağıdaki gibi denediğimde şifrelenmiş dosya elde ettim.
Kod: Tümünü seç
Key[0] := 10;
Key[1] := 200;
Key[2] := 3000;
Re: USB FLASHDİSK OKUMA YAZMA
denedim ama çift tıkladığımda dosya açılıyor.şifreleme de bir şifre girişi olası gerekmiyormu yada dosyaya çift tıkladığımızda şifre istemesi gibi
Re: USB FLASHDİSK OKUMA YAZMA
usb kodları çok işime yaradı ertank.Flas cıkartıldığında F sürücüsü yok uyarısı nasıl verdiririz
Re: USB FLASHDİSK OKUMA YAZMA
50 numaralı satırdaki
kontrolünü aşağıdaki gibi yaparsanız çıkarıldığını algılarsınız.
Kod: Tümünü seç
if Inserted then
Kod: Tümünü seç
if not Inserted then
Re: USB FLASHDİSK OKUMA YAZMA
teşekkürler