AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Dll-Zuweisung

Ein Thema von JWollenberg · begonnen am 23. Nov 2020 · letzter Beitrag vom 26. Nov 2020
Antwort Antwort
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.073 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: Dll-Zuweisung

  Alt 23. Nov 2020, 10:44
Ich bin ein großer Freund des Strg + linker Mausklick, was uns in Zeile 37432 der Winapi.Windows.pas führt:
function GetDriveType; external kernelbase name 'GetDriveTypeW';

Ein weiterer Strg + linker Mausklick auf kernelbase bringt uns in Zeile 36253, wo die Definition der Konstante steht:
kernelbase = 'kernel32.dll';
  Mit Zitat antworten Zitat
JWollenberg

Registriert seit: 8. Okt 2006
8 Beiträge
 
#2

AW: Dll-Zuweisung

  Alt 24. Nov 2020, 07:55
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
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.073 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Dll-Zuweisung

  Alt 24. Nov 2020, 09:08
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.
Nochmal die Frage: Wie kommst du auf die scrrun.dll? Wo ist der Bezug? Was für ein Ansatz?
Bitte erläutern!
  Mit Zitat antworten Zitat
JWollenberg

Registriert seit: 8. Okt 2006
8 Beiträge
 
#4

AW: Dll-Zuweisung

  Alt 24. Nov 2020, 09:35
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.
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.073 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Dll-Zuweisung

  Alt 24. Nov 2020, 10:21
Zitat:
Bei der Suche im Netz bin ich dann auf die scrrun.dll gestoßen, deshalb
Zeig mir bitte mal die Fundstelle.
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:
Get-Volume | Select-Object DriveLetter, DriveType
oder
Code:
Get-CimInstance Win32_LogicalDisk | Select-Object DeviceID, DriveType
schon genau das, was du suchst.
Den Teil hinter dem Pipe-Operator | kannst du auch weglassen, um zu sehen welche Eigenschaften da noch angezeigt werden.
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.683 Beiträge
 
Delphi 5 Professional
 
#6

AW: Dll-Zuweisung

  Alt 24. Nov 2020, 11:17
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 Windows Script Host (WSH). Normalerweise benutzt man selbigen in Verbindung mit VBS Skripten (durch cscript.exe/wscript.exe).

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
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.340 Beiträge
 
Delphi 12 Athens
 
#7

AW: Dll-Zuweisung

  Alt 24. Nov 2020, 12:15
Indirekt hat der schon bissl was damit zu tun.

Der Windows Script Host (WSH) kann aktuell standardmäßig VisualBasic- (VBS), JavaScript- (JS) und PowerShell-Scripte ausführen,
über die Console (wscript.exe bzw. cscript.exe) oder via API (DLL).
Und man kann dort auch nich weitere Script-Sprachen registrieren. (sogar PascalScript gibt es)

Wobei man PowerShell auch direkt auswühren kann (powershell.exe) und den WSH garnicht bräuchte.



Hier sind praktisch paar Dinge gemischt, welche nichtmal alle für das eigentlich Problem nötig sind.
* Laufwerke suchen ... Win32-API, PowerShell, WMI oder sonstwo
* ein PowerShellScript ausführen und dort nach Laufwerken suchen
* ein PowerShellScript im WindowsScriptingHost ausführen



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 if (flag and DriveMask) 0 then muss also if (flag and DriveMask) = flag then werden.
Wobei hier nicht das = fehlte, denn die sind alle vorhanden.
Es fehlte das <> , da irgendwann diese HTML-Zeichen verschwunden sind.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (24. Nov 2020 um 12:23 Uhr)
  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 00:35 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