Harddisklerin mantıksal bölümünün fiziksel sırasını bulmak.

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3077
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Harddisklerin mantıksal bölümünün fiziksel sırasını bulmak.

Mesaj gönderen sabanakman »

Herkeslere kolay gelsin. Problemim; bir sistemde diyelimki 2 harddisk takılı ve bunlardan birisi 2'ye diğeri 3'e mantıksal olarak bölünmüş olsun. (C:,D: 1. harddisk E:,F:,G: 2. harddisk veya daha karışık bir şekilde de olabilir.) Bölümün ismini vererek o bölüm fiziksel olarak hangi harddiske ait olduğunun bulunması lazım. Mesela örneğe göre 'C:\'-> 0, 'E:\'->1 değerini vermeli. Böyle bir işlem nasıl yapılabilir.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
MicroChip
Kıdemli Üye
Mesajlar: 1119
Kayıt: 02 Ağu 2003 01:02
Konum: İstanbul
İletişim:

Mesaj gönderen MicroChip »

bi ara yapmıştım böyle bişey ama ne zaman nerde hatırlamıyorum. Kodlarımı bulursam gönderirim. Bu arada mitec componentine baktın mı onunla da yapabilirsin.

saygılar...
Kafkas Kartalı Kabarday
Sitesi!= http://www.ahmetceylan.com
Resim
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3077
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Seni tanıdım!...

Mesaj gönderen sabanakman »

Sen şu "mitec derim de başka bi şey derim ama mitec." diyen vatandaşsın. :wink: Biraz inceleme yapayım bakalım bulabilecek miyim. Bulursam buraya yazarım ama bu arada başka yöntem veya fikirleri olan varsa onlara da hayır denmez herhalde. :)
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
MicroChip
Kıdemli Üye
Mesajlar: 1119
Kayıt: 02 Ağu 2003 01:02
Konum: İstanbul
İletişim:

Mesaj gönderen MicroChip »

evet galiba o vatandaşım ;) system özellikleri hakkında mitec üzerine comp tanımıyorum şu an için. ( Adam kodlarında bayağı asm kullanmış )

;)
Kafkas Kartalı Kabarday
Sitesi!= http://www.ahmetceylan.com
Resim
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3077
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Yok ya da ben bulamadım.

Mesaj gönderen sabanakman »

Mitec bileşenleri içinden TMiTeC_Disk bileşenini kullandım ve

Kod: Tümünü seç

MiTeC_Disk.Drive:='C:';
ShowMessage(IntToStr(MiTeC_Disk.GetCD));
kodunu denedim ama istediğimi vermedi. (Test için başkası kullandı kendim test edemedim.) Ayrıca, sadece bu iş için kullanacağımdan kodların elimde olmasını isterim. Varsa bilinen API, ASM veya başka kodlar bulmam gerekiyor. Araştırmalarım devam ediyor.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
ikut

Re: Yok ya da ben bulamadım.

Mesaj gönderen ikut »

sabanakman yazdı:Mitec bileşenleri içinden TMiTeC_Disk bileşenini kullandım ve

Kod: Tümünü seç

MiTeC_Disk.Drive:='C:';
ShowMessage(IntToStr(MiTeC_Disk.GetCD));
kodunu denedim ama istediğimi vermedi. (Test için başkası kullandı kendim test edemedim.) Ayrıca, sadece bu iş için kullanacağımdan kodların elimde olmasını isterim. Varsa bilinen API, ASM veya başka kodlar bulmam gerekiyor. Araştırmalarım devam ediyor.
Kodu yokmuki sende bu maydanozun?
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3077
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Cevap

Mesaj gönderen sabanakman »

.dcu dosyalarını bulabildim. Kodu galiba parayla satılıyor.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
ikut

Re: Cevap

Mesaj gönderen ikut »

sabanakman yazdı:.dcu dosyalarını bulabildim. Kodu galiba parayla satılıyor.
Kural dışına çıkmayalım ama herşeye para verecek olsaydık ooooooooh işimiz var. Bide bunu yazan herifçioğlu artık yeni kullanıcılara satmıyormuş. sebebide bu paketi kullanan bir ticari pro yazması. eskiden alanlar mustesna.

bu nasıl bir zihniyet anlamadım...
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3077
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Sorum başka yere kaydı..

Mesaj gönderen sabanakman »

Zaten benim sorum mitec bileşenleri değil. O lazım değil (şimdilik...) ama konu oraya kaydı. Benim sorunum hangi mantıksal bölümün hangi fiziksel sürücüye ait olduğunu bulabilmek. Araştırmalarım devam ediyor :)
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3077
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Aslında Inno Setup için Lazım

Mesaj gönderen sabanakman »

Mrb; Sorunumu hala çözemedim, tekrar bir gündeme getireyim dedim. Bu işi aslında inno setup içinde [ Code ] bloğu içerisinde yapmam lazım ama olmadı. (Delphi ile .dll hazırlayıp oradanda çalışsa da olur). Sorun özet olarak oluşturulmuş mantıksal bölüm (c:, d:, e: vs.) fiziksel olarak kaçıncı sırada olduğunu bulmak. (c: ve d: ide üzerinde 0. sırada, e: ide üzerinde 1. sırada gibi bir sonuç elde etmek istiyorum). Kolay gelsin.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Merhaba...

- Çoktan bulmuşsunuzdur diye ilgilenmedim, aşağıdaki fonksiyon işini görecektir. Çok derinlere gitmene gerek yok...

Kod: Tümünü seç

function GetLogicalDriveDevice(DriveLetter: Char): String;
const
  BUFFER_SIZE: Integer = 1024;
var
  BufLen: Integer;
  DriveName: String;
begin
  DriveName := DriveLetter + ':';
  SetLength(Result, BUFFER_SIZE);
  BufLen := QueryDosDevice(PChar(DriveName), PChar(Result), BUFFER_SIZE);

  if BufLen = 0 then
    RaiseLastOSError
  else
    SetLength(Result, BufLen);
end;
Kullanımı :

Kod: Tümünü seç

  ShowMessage( GetLogicalDriveDevice('C') );
Resim
Resim ....Resim
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3077
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

İyi bayramlar :) ilgilenip cevap yazdığınız için çok teşekkür ederim. Sorunum devam ediyor :cry: . Şöyle ki; ikiye bölünmüş tek harrdiskimin ( c:,d: için ilk ide ) ikisinin de aynı şekilde sonuç vermesi gerekirken c: için \Device\HarddiskVolume1 d: için ise \Device\HarddiskVolume2 sonucunu verdi. Acaba dikkatimden kaçan bir nokta mı var. Gerçi henüz 2. bir harddisk takılı bir bilgisayarda deneme yapamadım. Kolay gelsin.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Cevapla