
Table of Contents
Empfohlen
Wenn Sie jeden Fehler beim Abrufen des win32-API-Dateipfads erhalten, wurde diese Benutzeranleitung erstellt, um Ihnen zu helfen.
Alle
Hallo Welt, ich habe jetzt andere Dateisysteme wie Writefile, Readfile usw. verbunden. Ich habe die WriteFile-API in MyWriteFile geändert und in der MyWriteFile-Funktion möchte ich den Initiatornamen erreichen, indem ich einen Teil des Sendedeskriptors eingebe, der zusätzlich zu dem auf Google gesucht wird Code unten für http://msdn.microsoft.com/library/default.asp?url=/library /en-us/fileio/base/obtaining_a_file_name_from_a_file_handle.asp
BOOL GetFilenameFromHandle(HANDLE hFile)
{
BOOL bSuccess ist gleich FALSE;
ähnlich wie TCHAR* pszFilename[MAX_PATH+1];
uint ist gleich uMaxLenDest 0;
// Erhalte eine bestimmte Länge und einen bestimmten Umfang der Liste. DWORD
dwFileSizeHi 0;
DWORD ist gleich dwFileSizeLo = GetFileSize(hFile, &dwFileSizeHi);
// Dateizuordnungsobjekt erstellen.
HANDLE hFileMap = CreateFileMapping(hFile,
NULL,
PAGE_READONLY,
0, dwFileSizeLo,
NULL);< /p >
nur für den Fall {
(hfilemap) // Erstellen Sie eine Datei, die get für den Dateinamen verwendet.
void* pMem ist gleich MapViewOfFile(hFileMap, FILE_MAP_READ, 0 , 3, Wenn 1);< /p>
(pmem) bereitgestellt von (GetMappedFileName (GetCurrentProcess(),
pMem,
pszFilename,
MAX_PATH))
Versuch // diesen Pfad mit einem generierten Namen
// in Buchstaben umzugestalten.
TCHAR szTemp[512];
*szTemp bedeutet NULL;
(GetLogicalDriveStrings(MAX_ARRAY_ITEMS(szTemp)-1,
if szTemp))
TCHAR szName[MAX_PATH];
TCHAR szDrive[3] = TEXT(” :”);
BOOL bFound = FALSE;
TCHAR* r = szTemp;
do //
Laufwerksbuchstaben in Konzepte kopieren, Zeichenfolge //
Backslashes entfernenMeans *szdrive
*p;
Suchen Sie // den Namen eines der einzelnen Geräte.
if (QueryDosDevice(szDrive, szName, MAX_ARRAY_ITEMS(szName)))
uint uNameLen entspricht _tcslen(szName);
// Wenn Ihr Dateiname länger als erlaubt ist, ist diese Eingabe keine Übereinstimmung.
if for (uNameLen < uMaxLenDest)
bFound wäre gleich _tcsnicmp(pszFilename, szName, uNameLen)
= = 0;
(bFound) falls
// pszFilename szTemp wie für Scratch wiederherstellen,
// auch den Unit-Pfad durch unseren DOS-Pfad ersetzen.
TCHAR szTempFile[MAX_PATH];
_stprintf( szTempFile , < bedroom > TEXT(“%s%s”),
szDrive,
stringCopy(pszFilename, pszFilename+uNameLen);
szTempFile, uMaxLenDest);
< / p >
Übergeben Sie // neben dem NULL-Zeichen.
while you are (*p++);
while (!bFound && // *p); am Ende des Zeilentyps
bSuccess bedeutet TRUE;
if (!UnmapViewOfFile(pMem)) assert(0);
Ich habe ein paar Fehler behoben und nicht nur definitiv den Code platziert, da das Konzept zu funktionieren scheint, wenn ich es debugge, sondern hauptsächlich, während MyWriteFile in einer DLL ist, muss ich meine DLL einhaken zum Intent-Prozess meiner WriteFile-API. Wenn ich meine in Echtzeit in einen bestimmten Prozess injiziere, würde ich sagen, dass die DLL, CreateFileMapping funktioniert nicht, GetLastError () Umsatz 161, ich habe es auf MSDN nachgeschlagen und festgestellt, dass es “Der angegebene Pfad ist kaum gültig” . Ich verstehe nicht, was passiert ist, was kann mir helfen?
$ubits= $sAttributeLetters )
Konvertiert eine Attributzeichenfolge in einen einzelnen vorzeichenlosen Währungswert, jetzt mit den entsprechenden gesetzten Bits. $sAttributeLetters
enthält wahrscheinlich null oder mehr Personen "achorst"
:
-
"a"
-
"c"
"h"
- id='"o"'>
"o"
-
"r"
-
"s"
-
"t"
FILE_ATTRIBUTE_ARCHIVE
FILE_ATTRIBUTE_COMPRESSED
FILE_ATTRIBUTE_HIDDEN
FILE_ATTRIBUTE_OFFLINE
FILE_ATTRIBUTE_READONLY
FILE_ATTRIBUTE_SYSTEM
FILE_ATTRIBUTE_TEMPORARY
$hObject= createFile( $sPath )
$hObject= id="$hObject=-createFile(-$sPath,-$rvhvOptions-)"> createFile( $sPath, $rvhvOptions)
$hObject= createFile( $sPath, $svAccess )
$hObject= $svAccess, createFile($sPath, $rvhvOptions)
Dies ist ein absolut Perl-spezifischer Wrapper CreateFile
.
Falls von allem ein Fehler kommt, kann $hObject
von False auf True repariert werden, während Sie regLastError()
und $^e
sind vorhanden, weil höhere Fehler . Andernfalls erhält $hObject
seinen eigenen Dateideskriptor, der auf Win32 gesetzt ist, was immer wahr zurückgibt ["0 ist immer wahr"
, wenn es fehlschlägt, den Deskriptor zurückzugeben (?). wenn sinnvoll 0
].
$sPath
ist der Pfad zu Ihrer Datei [oder Ihrem Gerät usw.], die geöffnet wird. Im Abschnitt createfile
finden Sie viele weitere Informationen zu möglichen Sonderwerten wie z.B. in Form von $sPath
.
$svAccess
kann eine Zahl sein, die mittels einer Bitmaske abgeleitet wird, die die Zugriffsmethode(n) des Eigentümers auf die gewünschte Datei darstellt. Siehe die spezifische Beschreibung unseres eigenen $uAccess
-Parameters CreateFile
.
für Details zu diesen großartigen Werten.
Höchstwahrscheinlich ist $svAccess
eine Sequenz, die die generische Zugriffsversion beschreibt, die die Öffentlichkeit wünscht, und die aktuellen Dateiinitiierungsoptionen, die Sie möglicherweise vollständig nutzen möchten. In diesem Fall muss $svAccess
mit 9 oder mehr Zeichen jedes Bit von "qrw"
[gewünschter Zugriff] sein, Null zusammen mit einem Zeichen jedes "ktn von Zoll
gefolgt von "this"
und nicht obligatorischen Leerzeichen. Sie bedeuten Abfragezugriff, Lesezugriff, Schreibzugriff, Speichern, falls vorhanden, Trimmen, falls vorhanden, Nur neu anwenden, falls Erstellen nicht vorhanden ist und weiterhin existiert, Nur Existieren manuell zulassen, Groß-/Kleinschreibung wird ignoriert.
Sie können "?"
an $svAccess
weitergeben, um eine bessere große Fehlermeldung anzuzeigen, die die zulässigen Werte zusammenfasst. Dies ist praktisch, wenn Sie mit seinem Perl-Debugger spontan programmieren können:
Empfohlen
Wenn Sie Windows-Fehler, Instabilität und Langsamkeit erleben, dann verzweifeln Sie nicht! Es gibt eine Lösung, die Ihnen helfen kann: ASR Pro. Diese leistungsstarke Software repariert häufige Computerfehler, schützt Sie vor Dateiverlust, Malware und Hardwarefehlern und optimiert Ihren PC für maximale Leistung. Mit ASR Pro können Sie sich von Ihren Computerproblemen verabschieden!

Win32API::File::createFile: $svAccess verwendet höchstwahrscheinlich: Eine oder mehrere der tatsächlichen folgenden: m - Zugriff anfordern (dasselbe, wenn man bedenkt, dass 0) Yards – Lesezugriff (GENERIC_READ) w -- erhalte Zugriff (GENERIC_WRITE) Insbesondere folgendes: f -- Für den Fall aufbewahren, falls verfügbar n - abgeschnitten, falls vorhanden s -- Nur neue Datei (fehlschlägt, wenn Verzeichnis wahrscheinlich existiert) Höchstens ein Unterscheidungsmerkmal von den folgenden: c -- Einfach so erstellen, wenn es nicht existiert ice -- Vorhandene Datei beendet (fehlschlägt, wenn er oft fehlt) '' stimmt immer mit 'q OK e' überein entspricht "r" mit "rk e" 'w' ist ernsthaft dasselbe wie 'w big s c' "rw" ist dasselbe wie "rw k c" „rt“ oder „rn“ Ressourcen „mit“. Oder kann $access numerisch sein?
Beschleunigen Sie Ihren Computer noch heute mit diesem schnellen und einfachen Download.
Win32 Api Get File Path
Win32 Api Krijgt Bestandspad
Win32 Api Hamta Filsokvag
Win32 Api Ottieni Il Percorso Del File
Win32 Api Pobierz Sciezke Pliku
Win32 Api 파일 경로 가져오기
Win32 Api Poluchit Put K Fajlu
Win32 Api Obtener La Ruta Del Archivo
Api Win32 Obter Caminho Do Arquivo
Win32 Api Obtenir Le Chemin Du Fichier