HOME 首頁
SERVICE 服務產品
XINMEITI 新媒體代運營
CASE 服務案例
NEWS 熱點資訊
ABOUT 關于我們
CONTACT 聯(lián)系我們
創(chuàng)意嶺
讓品牌有溫度、有情感
專注品牌策劃15年

    自定義文件和所有文件的區(qū)別(自定義文件什么意思)

    發(fā)布時間:2023-03-05 05:37:43     稿源: 創(chuàng)意嶺    閱讀: 350        問大家

    大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關于自定義文件和所有文件的區(qū)別的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。

    創(chuàng)意嶺作為行業(yè)內優(yōu)秀的企業(yè),服務客戶遍布全球各地,相關業(yè)務請撥打電話:175-8598-2043,或添加微信:1454722008

    本文目錄:

    自定義文件和所有文件的區(qū)別(自定義文件什么意思)

    一、右鍵中出現了一個自定義文件夾,而且只有在一個打開的文件夾里面有,其他時候就沒有高分求解?。。。?!

    無須擔心,不是電腦出問題。

    這確實是系統(tǒng)自帶的功能,可以對文件夾進行自定義,包括文件夾類型,更換文件夾圖標等。

    至于有時候有,有時候沒有是,因為你所處的文件夾不同,有的文件夾允許自定義,有的不允許。

    比如說你進C盤的Windows文件夾中點擊右鍵,就一定沒有“自定義”;但是你自己在桌面上新建一個文件夾,點擊打開后在右鍵單擊,就會有“自定義”這個選項。

    二、關于自定義文件格式(VB)

    Attribute VB_Name = "Module1"

    Public Const PROCESS_VM_READ = &H10

    Public Const TH32CS_SNAPPROCESS = &H2

    Public Const MEM_COMMIT = 4096

    Public Const PAGE_READWRITE = 4

    Public Const PROCESS_CREATE_THREAD = (&H2)

    Public Const PROCESS_VM_OPERATION = (&H8)

    Public Const PROCESS_VM_WRITE = (&H20)

    Public Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Long, ByVal lpBuffer As String, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long

    Public Declare Function GetLastError Lib "kernel32" () As Long

    Public Declare Function VirtualAllocEx Lib "kernel32" (ByVal hProcess As Long, ByVal lpAddress As Long, ByVal dwSize As Long, ByVal flAllocationType As Long, ByVal flProtect As Long) As Long

    Public Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Long, ByVal lpBuffer As String, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long

    Public Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As Long

    Public Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As Long

    Public Declare Function Process32First Lib "kernel32" (ByVal hSnapshot As Long, lppe As PROCESSENTRY32) As Long

    Public Declare Function CreateToolhelp32Snapshot Lib "kernel32" (ByVal dwFlags As Long, ByVal th42ProcessID As Long) As Long

    Public Declare Function CreateRemoteThread Lib "kernel32" (ByVal hProcess As Long, ByVal lpThreadAttributes As Long, ByVal dwStackSize As Long, ByVal lpStartAddress As Long, ByVal lpParameter As Long, ByVal dwCreationFlags As Long, lpThreadId As Long) As Long

    Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long

    Public Declare Function Process32Next Lib "kernel32" (ByVal hSapshot As Long, lppe As PROCESSENTRY32) As Long

    Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

    Public Type PROCESSENTRY32

    dwSize As Long

    cntUseage As Long

    th42ProcessID As Long

    th42DefaultHeapID As Long

    th42ModuleID As Long

    cntThreads As Long

    th42ParentProcessID As Long

    pcPriClassBase As Long

    swFlags As Long

    szExeFile As String * 1024

    End Type

    Public Sub EnumAndInject()

    Dim MySnapHandle As Long

    Dim ProcessInfo As PROCESSENTRY32

    Dim MyRemoteProcessId As Long

    Dim MyDllFileLength As Long

    Dim MyDllFileBuffer As Long

    Dim MyReturn As Long

    Dim MyStartAddr As Long

    Dim MyResult As Long

    Dim temp As Long

    Dim DllFileName As String

    MySnapHandle = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0)

    ProcessInfo.dwSize = Len(ProcessInfo)

    If Process32First(MySnapHandle, ProcessInfo) <> 0 Then

    Do

    Debug.Print ProcessInfo.szExeFile

    If InStr(LCase(ProcessInfo.szExeFile), "notepad.exe") > 0 Then

    '遍歷進程,查找notepad.exe

    MyRemoteProcessId = OpenProcess(PROCESS_CREATE_THREAD + PROCESS_VM_OPERATION + PROCESS_VM_WRITE + PROCESS_VM_READ, False, ProcessInfo.th42ProcessID)

    '打開進程獲得notepad的句柄供后面的操作使用

    'DllFileName = "C:\Program Files\Microsoft Visual Studio\VB98\DATAVIEW.DLL"

    MyDllFileLength = Len(DllFileName) + 1

    '學過C語言的朋友應該知道字符串最后要一個ASCII 0標志結尾,所以要加1

    MyDllFileBuffer = VirtualAllocEx(MyRemoteProcessId, 0, MyDllFileLength, MEM_COMMIT, PAGE_READWRITE)

    '在指定進程里申請一塊內存區(qū)域出來供我們存放字符串“c:\test.dll“

    '傳string給api時,byval byref有區(qū)別,應該使用byval,這樣會傳給api一個標準的C字符指針,不能byref,否則函數調用沒問題

    '但是起不到預期效果,VirtualAllocEx返回的是申請到的內存地址值.

    MyReturn = WriteProcessMemory(MyRemoteProcessId, MyDllFileBuffer, DllFileName, MyDllFileLength, temp)

    '向剛才申請的內存中寫入dll文件路徑字符串

    '順便說一下,很多api瀏覽器上的api聲明都是錯的,包括VB6自帶的也不例外,writeprocessmemory第二個參數要的是

    'lpBaseAddress 但是這個值不能傳址得到,如果你按byref傳址,實際上傳的是MyDllFileBuffer變量的地址,而不是它里面存放的那個數字

    '上面說了MyDllFileBuffer的數值才是WriteProcessMemory要的地址,所以聲明API的時候一定要byval,大家知道空著不寫就是默認byref

    '下面還有幾處不該傳址的參數,只要搞清楚API函數要的到底是什么值才可以確定到底傳值還是傳址,API瀏覽器僅能供參考,還是要仔細閱讀MSDN

    MyStartAddr = GetProcAddress(GetModuleHandle("Kernel32"), "LoadLibraryA")

    '獲取loadlibrary函數的地址,這個函數可以載入指定的dll文件,那他的參數呢?就是我們剛才在notepad.exe進程里寫入的“c:\test.dll“

    '不過還得讓CreateRemoteThread告訴他.另外簡單的說一下windows下應用程序的內存管理,我也不很懂,呵呵,win32下的應用程序

    '的內存區(qū)域是隔開的,每個程序有自己的一塊內存不能直接訪問別的程序的內存區(qū),當然,這里調用的幾個系統(tǒng)函數有訪問別的程序內存區(qū)域的特權

    '而且每個應用程序的內存區(qū)域都映射到系統(tǒng)內存區(qū)域里,也就是說在這里GetProcAddress得到的VB程序里LoadLibraryA函數的入口地址和

    'notepad程序里的LoadLibraryA函數地址是一致的(映射的作用),所以不必擔心.另外在VB寫的程序里

    '要使用LoadLibraryA,notepad不是用vc寫的嗎?要注意根notepad沒關系,我們現在是在自己的VB程序里面找LoadLibraryA函數的入口.

    '還有要注意函數大小寫,api函數和vb不一樣的。

    MyResult = CreateRemoteThread(MyRemoteProcessId, 0, 0, MyStartAddr, MyDllFileBuffer, 0, temp)

    '好了,現在該讓LoadLibrary載入“c:\test.dll“吧,現在CreateRemoteThread做的就是在notepad進程中把控制權轉到LoadLibraryA的入口

    '然后把notepad內存區(qū)域中的“c:\test.dll“字符串當作參數傳給LoadLibraryA?,F在我們的dll文件就在notepad程序中運行了

    'dll被注入notepad.exe以后會主動彈出對話框顯示出notepad.exe的進程ID,表明注入成功.

    End If

    Loop While Process32Next(MySnapHandle, ProcessInfo) <> 0

    End If

    CloseHandle MySnapHandle

    End Sub

    Private Sub Form_Load()

    EnumAndInject

    End Sub

    Attribute VB_Name = "Module1"

    Public Const PROCESS_VM_READ = &H10

    Public Const TH32CS_SNAPPROCESS = &H2

    Public Const MEM_COMMIT = 4096

    Public Const PAGE_READWRITE = 4

    Public Const PROCESS_CREATE_THREAD = (&H2)

    Public Const PROCESS_VM_OPERATION = (&H8)

    Public Const PROCESS_VM_WRITE = (&H20)

    Public Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Long, ByVal lpBuffer As String, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long

    Public Declare Function GetLastError Lib "kernel32" () As Long

    Public Declare Function VirtualAllocEx Lib "kernel32" (ByVal hProcess As Long, ByVal lpAddress As Long, ByVal dwSize As Long, ByVal flAllocationType As Long, ByVal flProtect As Long) As Long

    Public Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Long, ByVal lpBuffer As String, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long

    Public Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As Long

    Public Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As Long

    Public Declare Function Process32First Lib "kernel32" (ByVal hSnapshot As Long, lppe As PROCESSENTRY32) As Long

    Public Declare Function CreateToolhelp32Snapshot Lib "kernel32" (ByVal dwFlags As Long, ByVal th42ProcessID As Long) As Long

    Public Declare Function CreateRemoteThread Lib "kernel32" (ByVal hProcess As Long, ByVal lpThreadAttributes As Long, ByVal dwStackSize As Long, ByVal lpStartAddress As Long, ByVal lpParameter As Long, ByVal dwCreationFlags As Long, lpThreadId As Long) As Long

    Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long

    Public Declare Function Process32Next Lib "kernel32" (ByVal hSapshot As Long, lppe As PROCESSENTRY32) As Long

    Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

    Public Type PROCESSENTRY32

    dwSize As Long

    cntUseage As Long

    th42ProcessID As Long

    th42DefaultHeapID As Long

    th42ModuleID As Long

    cntThreads As Long

    th42ParentProcessID As Long

    pcPriClassBase As Long

    swFlags As Long

    szExeFile As String * 1024

    End Type

    三、金山毒霸自定義殺毒和普通的有何區(qū)別

    您好!

    對于一些對于計算機有清醒認識的用戶,自定義殺毒,可以進一步查看查殺的病毒名稱。一般用戶,直接殺毒,不用查看清理的什么病毒。前者比較專業(yè),后者比較大眾。結果是類似的,都查殺了病毒。

    希望可以幫到你!

    四、WORD中保存和另存為的區(qū)別

    區(qū)別如下:

    執(zhí)行“保存”操作時,Word會將正在編輯的最后一次操作結果覆蓋掉原先的存檔,直接執(zhí)行保存操作,不再彈出文件名填寫對話框,文件會按照原來的設置進行存儲。

    執(zhí)行“另存為”操作時,可以選擇另存為其他的文件格式,同時Word會彈出“另存為”執(zhí)行窗口,可更改包括文件名、文件類型等信息,同時,保存好后將生成一個新的文件。

    步驟如下:

    1、打開Word文件

    自定義文件和所有文件的區(qū)別(自定義文件什么意思)

    2、修改其中的內容

    自定義文件和所有文件的區(qū)別(自定義文件什么意思)

    3、點擊保存按鈕

    自定義文件和所有文件的區(qū)別(自定義文件什么意思)

    4、Word直接進行保存操作

    自定義文件和所有文件的區(qū)別(自定義文件什么意思)

    5、再使用另存為,此時右側會彈出多種格式,可實現快捷操作

    自定義文件和所有文件的區(qū)別(自定義文件什么意思)

    6、彈出另存為窗口,可修改文件名和改變保存類型

    自定義文件和所有文件的區(qū)別(自定義文件什么意思)

    7、此外還有其他設置可選

    自定義文件和所有文件的區(qū)別(自定義文件什么意思)

    8、鍵入新的文件名,點擊保存

    自定義文件和所有文件的區(qū)別(自定義文件什么意思)

    9、生成新的文件

    自定義文件和所有文件的區(qū)別(自定義文件什么意思)

    以上就是關于自定義文件和所有文件的區(qū)別相關問題的回答。希望能幫到你,如有更多相關問題,您也可以聯(lián)系我們的客服進行咨詢,客服也會為您講解更多精彩的知識和內容。


    推薦閱讀:

    手機更換字體自定義(手機更換字體自定義軟件)

    小米手機圖標怎么自定義

    如何設置自定義圖標(vivo手機如何設置自定義圖標)

    免費私人網站建設(免費私人網站建設平臺)

    網絡營銷產生的三點原因(網絡營銷產生的三點原因是)