![]() |
Dll-Zuweisung
Hallo Leute,
ich stehe etwas auf dem Schlauch, wie spreche ich die scrrun.dll an, damit dieser Quelltext (nicht von mir, ist aus dem Netz: ![]() Quelltext:
Delphi-Quellcode:
Vielen Dank im Voraus!
procedure GetDrives(const AItems: TStrings);
const DriveTypeTexts: array[DRIVE_UNKNOWN..DRIVE_RAMDISK] of string = ('Unbekannt', 'Kein Wurzelverzeichnis', 'Diskette', 'Festplatte', 'Netzlaufwerk', 'CDROM', 'RAMDisk'); var Drive: Char; DriveType: Integer; DriveMask: Integer; Flag: Integer; begin DriveMask := GetLogicalDrives; //Bitmaske holen flag := 1; //Startflag setzen for Drive := 'A' to 'Z' do //Jeden Buchstaben gegenprüfen begin if (flag and DriveMask) 0 then begin DriveType := GetDriveType(PChar(Format('%S:',[Drive]) ) ) ; AItems.Add(Format('%s: %s', [Drive, DriveTypeTexts[DriveType]])); end; flag := flag shl 1; //Ein Bit weiter nach links gehen ( = flag * 2) end; end; MfG Jürgen |
AW: Dll-Zuweisung
1. Schon im Original-Link fehlt das Gleichheitszeichen in der if-Abfrage und der Vergleich darf nicht mit 0 sondern muss mit flag geschehen!
Aus
Delphi-Quellcode:
muss also
if (flag and DriveMask) 0 then
Delphi-Quellcode:
werden.
if (flag and DriveMask) = flag then
2. Was hat diese Funktion mit dem Windows Scripting Host (scrrun.dll) zu tun? EDIT: If-Abfrage geändert |
AW: Dll-Zuweisung
1. Danke
2. Diese Funktion
Delphi-Quellcode:
nutzt doch die scrrun.dll im Windows-Verzeichnis SysWOW64.
GetDriveType(PChar(Format('%S:',[Drive]) ) )
Oder liege ich hier falsch? Ich bin dankbar für jeden Tipp! |
AW: Dll-Zuweisung
Zitat:
![]() [EDIT] Wenn man ein Delphi mit Quelltext hat, kann man natürlich auch direkt nachschauen, z.B. per Strg+Klick, wie TiGü auch im folgenden Beitrag anmerkt. [/EDIT] Grüße Dalai |
AW: Dll-Zuweisung
Ich bin ein großer Freund des Strg + linker Mausklick, was uns in Zeile 37432 der Winapi.Windows.pas führt:
Delphi-Quellcode:
function GetDriveType; external kernelbase name 'GetDriveTypeW';
Ein weiterer Strg + linker Mausklick auf kernelbase bringt uns in Zeile 36253, wo die Definition der Konstante steht:
Delphi-Quellcode:
kernelbase = 'kernel32.dll';
|
AW: Dll-Zuweisung
Danke für die schnelle Hilfe, hat funktioniert, dennoch würde mich der Ansatz mit scrrun.dll interessieren. Ich hoffe es macht keine große Mühe.
MfG Jürgen |
AW: Dll-Zuweisung
Zitat:
Bitte erläutern! |
AW: Dll-Zuweisung
Der Bezug ist folgender: Z.Z. experimentiere ich mit einer RAM-Disk (statt SSD) herum. Ich habe 2 RAM-Disks wobei die zweite zum Probieren fungiert. Bei der Suche im Netz bin ich dann auf die scrrun.dll gestoßen, deshalb. Zuerst wollte ich das mit ein Powershell-Script lösen, wobei ich zu keinem Ergebnis gekommen bin, wobei ich sagen möchte, dass ich ein Anfänger in Richtung PS-Script bin.
|
AW: Dll-Zuweisung
Zitat:
Sehe den Bezug nämlich immer noch nicht. Vor allen nicht mit der Delphi-Funktion von delphi-treff.de. Powershell ist sehr mächtig und wahrscheinlich gut geeignet für dein Problem: Herauszufinden was genau sich hinter dem jeweiligen Laufwerksbuchstaben verbirgt. Hier wäre eine weitere Beschäftigung mit dem Thema angebracht. Es gibt unzählige Videos, Tutorials, Blogs, Bücher und alte mesopotamische Tontäfelchen dazu. Bitte schlau googlen! Wahrscheinlich wäre ein
Code:
oder
Get-Volume | Select-Object DriveLetter, DriveType
Code:
schon genau das, was du suchst.
Get-CimInstance Win32_LogicalDisk | Select-Object DeviceID, DriveType
Den Teil hinter dem Pipe-Operator | kannst du auch weglassen, um zu sehen welche Eigenschaften da noch angezeigt werden. |
AW: Dll-Zuweisung
Ei, da läuft ja einiges durcheinander. PowerShell hat mit der scrrun.dll nichts zu tun, denn diese DLL kommt vom bzw. ist für den
![]() Die Problemstellung hat weder mit der DLL noch mit der PowerShell zu tun. Vielleicht wäre es gut, wenn du darlegen könntest, was du eigentlich vorhast. Für mich sieht es so aus, als wolltest du rausfinden, ob ein Laufwerk eine RAM-Disk ist. Das ist mit PowerShell, WSH und jeder Programmiersprache möglich. Grüße Dalai |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz