-
當前位置:首頁 > 創(chuàng)意學院 > 營銷推廣 > 專題列表 > 正文
自定義文件和所有文件的區(qū)別(自定義文件什么意思)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關于自定義文件和所有文件的區(qū)別的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。
創(chuàng)意嶺作為行業(yè)內優(yōu)秀的企業(yè),服務客戶遍布全球各地,相關業(yè)務請撥打電話:175-8598-2043,或添加微信:1454722008
本文目錄:
一、右鍵中出現了一個自定義文件夾,而且只有在一個打開的文件夾里面有,其他時候就沒有高分求解?。。。?!
無須擔心,不是電腦出問題。
這確實是系統(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文件
2、修改其中的內容
3、點擊保存按鈕
4、Word直接進行保存操作
5、再使用另存為,此時右側會彈出多種格式,可實現快捷操作
6、彈出另存為窗口,可修改文件名和改變保存類型
7、此外還有其他設置可選
8、鍵入新的文件名,點擊保存
9、生成新的文件
以上就是關于自定義文件和所有文件的區(qū)別相關問題的回答。希望能幫到你,如有更多相關問題,您也可以聯(lián)系我們的客服進行咨詢,客服也會為您講解更多精彩的知識和內容。
推薦閱讀: