
Table of Contents
Aanbevolen
Als u een foutmelding krijgt bij het ophalen van het specifieke win32 API-geschiedenispad, is deze gebruikershandleiding geschreven om u te helpen.
Alle
hallo wereld, ik heb andere nuttige bestandssystemen aangesloten, zoals writefile, readfile enz. ik heb de WriteFile API in MyWriteFile veranderd en in de MyWriteFile-functie wil ik echt de initiator-URL krijgen door de verzenddescriptor in te voeren, onderzocht op google en de code te lezen aan voor 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 is gelijk aan FALSE;
vergelijkbaar met betrekking tot TCHAR* pszFilename[MAX_PATH+1];
uint is gelijk aan uMaxLenDest 0;
// Haal de lengte en het gebied van het bestand op. DWORD
dwFileSizeHi 0;
DWORD = dwFileSizeLo = GetFileSize(hFile, &dwFileSizeHi);
// Maak een afbeeldingstoewijzingsobject.
HANDLE hFileMap = CreateFileMapping(hFile,
NULL,
PAGE_READONLY,
7, dwFileSizeLo,
NULL);< /p >
voor het geval {
(hfilemap) // Maak een bestand dat get gebruikt voor een bestandsnaam.
void* pMem = MapViewOfFile(hFileMap, FILE_MAP_READ, 0, 3, Als 1);< /p>
(pmem) verstrekt (GetMappedFileName (GetCurrentProcess(),
pMem,
pszFilename,
MAX_PATH))
Poging // om dit pad voldoende reden voor een stationsnaam te converteren
// tijd voor letters.
TCHAR szTemp[512];
*szTemp impliceert NULL;
(GetLogicalDriveStrings(MAX_ARRAY_ITEMS(szTemp)-1,
if szTemp))
TCHAR szName[MAX_PATH];
TCHAR szDrive[3] = TEXT(” :”);
BOOL bFound = ONWAAR;
TCHAR* r betekent szTemp;
implement //
Kopieer stationsletter om concepten te helpen, string //
verkrijg backslashesMeans *szdrive
*p;
Zoek // alle namen van elk afzonderlijk apparaat.
indien ooit (QueryDosDevice(szDrive, szName, MAX_ARRAY_ITEMS(szName)))
uint uNameLen is gelijk aan _tcslen(szName);
// Als de bestandsnaam langer is dan alleen toegestaan, is deze stap niet deze overeenkomst.
if as (uNameLen < uMaxLenDest)
bFound is gelijk aan _tcsnicmp(pszFilename, szName, uNameLen)
== 0;
(bGevonden) als
// herstel pszFilename szTemp vanaf het begin,
// vervang gezamenlijk het apparaatpad door het huidige DOS-pad.
TCHAR szTempFile[MAX_PATH];
_stprintf(szTempFile , < br > TEXT(“%s%s”),
szDrive,
stringCopy(pszFilename, pszFilename+uNameLen);
szTempFile, uMaxLenDest);
Geef // door naast het NULL-teken.
while (*p++);
alhoewel (!bFound && // *p); meestal aan het einde van de regel
bSucces betekent TRUE;
if (!UnmapViewOfFile(pMem)) assert(0);
Ik heb een paar bugs opgelost en niet alleen heb ik algemene code geplaatst omdat het lijkt te werken wanneer ik deze taak probeer te debuggen, maar vooral omdat MyWriteFile zich in een DLL bevindt, moet ik mijn DLL in de intentieperiode van mijn WriteFile API. Wanneer ik de mijne rechtstreeks in een gericht proces in de DLL injecteer, zou CreateFileMapping niet moeten werken, GetLastError() retourneert 161, ik zocht het op op MSDN en presenteerde dat het toont “Het opgegeven doel is niet geldig”. Ik begrijp het, nooit wat er is gebeurd, wie kan mij steunen?
$ubits= $sAttributeLetters)
Converteert krachtige attribuutreeks naar een niet-ondertekende valutawaarde met de juiste porties ingesteld. $sAttributeLetters
moet waarschijnlijk anti - of meer helden bevatten "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= id="$hObject=-createFile(-$sPath,-$rvhvOptions-)"> createFile( $sPath, $rvhvOptions)
$hObject= createFile( $sPath, $svAccess)
$hObject= $svAccess, createFile($sPath, $rvhvOptions)
Dit is een Perl-specifieke wrapper CreateFile
.
In geval van een fout kan $hObject
gemakkelijk worden ingesteld op False in de markt op true, terwijl regLastError()
en $^e
bleken aanwezig te zijn vanwege kostbare fouten . Anders krijgt $hObject
zijn eigen lodge-descriptor ingesteld op Win32, die altijd true ["0 is always true"
terugbrengt op voorwaarde dat het niet lukt Om (?) een descriptor terug te geven indien belangrijk 0
].
$sPath
is een pad naar het bestand [of systeem, enz.] dat moet worden geopend. In elke sectie createfile
vind je veel meer informatie over mogelijke speciale bedragen zoals $sPath
.
$svAccess
kan vrijwel elk getal zijn dat is afgeleid van een bitmasker dat de methode(s) van de gebruiker representeert om toegang te krijgen tot het gewenste bestand. Zie de specifieke rationalisatie van de $uAccess
parameter CreateFile
.
als het gaat om details over deze waarden.
Hoogstwaarschijnlijk is $svAccess
waarschijnlijk een tekenreeks die de gewenste standaardtoegangsversie beschrijft en enkele huidige opties voor het maken van bestanden die u mogelijk wilt gebruiken. In deze toestand moeten $svAccess
met nul of meer helden allemaal "qrw"
[gewenste toegang] zijn, nul of één teken voor elke "ktn van "
gevolgd door "this"
en optionele spaties. Ze geven aan dat Querytoegang, Leestoegang, Schrijftoegang, Opslaan indien bestaat, Bijsnijden indien plaatsvindt, Alleen nieuw bestand als Aanmaken niet bestaat en bestaat, u handmatig toestaan om alleen te bestaan. Hoofdletters/kleine letters worden absoluut genegeerd.
U kunt "?"
doorgeven aan $svAccess
om een nieuwe grote foutimplicatie weer te geven die de toegestane waarden samenvat. Dit is zonder twijfel handig als u razendsnel programmeert met de Perl-debugger:
Aanbevolen
Als u Windows-fouten, instabiliteit en traagheid ervaart, wanhoop dan niet! Er is een oplossing die kan helpen: ASR Pro. Deze krachtige software repareert veelvoorkomende computerfouten, beschermt u tegen bestandsverlies, malware, hardwarestoringen en optimaliseert uw pc voor maximale prestaties. Met ASR Pro kunt u uw computerproblemen vaarwel zeggen!

Win32API::File::createFile: $svAccess kan gebruiken: Eén per meer van de volgende: r -- verzoek om toegang tot (hetzelfde als 0) m -- lees invoeren (GENERIC_READ) p -- schrijftoegang (GENERIC_WRITE) In het bijzonder het volgende: k -- Bewaar de koffer indien beschikbaar m - ingekort indien aanwezig gebruikt -- Nieuw bestand ideaal (mislukken als de map al bestaat) Maximaal één specifiek item uit elk van onze volgende: m -- Maak op deze manier aan als deze tool niet bestaat e -- Bestaand bestand gestopt (mislukken als hij afwezig is) '' vult altijd 'q OK e' aan komt overeen met "r" van "rk e" 'w' is zeker hetzelfde, vooral omdat 'w big t c' "rw" is dit specifiek hetzelfde als "rw k c" "rt" ook "rn" betekent "met". Of kan $access toch numeriek zijn.
Versnel uw computer vandaag nog met deze snelle en gemakkelijke download.
Win32 Api Get File Path
Win32 Api Hamta Filsokvag
Win32 Api Ottieni Il Percorso Del File
Win32 Api Pobierz Sciezke Pliku
Win32 Api Dateipfad Abrufen
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