當前位置:首頁 » 編程語言 » c語言運行後的程序怎麼刪除
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言運行後的程序怎麼刪除

發布時間: 2022-04-20 02:16:19

1. c語言 編寫並運行了程序 產生的那些文件可以直接刪除嗎

當然可以了,c語言一般分為
.c 源文件 ,,存儲你寫的源代碼
編譯鏈接時一般會產生 .o 與 .exe
.o 就是object, 也就相當於windows下編譯的obj文件, 俗稱目標文件.
如在linux(UNIX) 下有這個文件就可以直接運行了
.exe windows下的可執行文件。
還有就是你進行文件操作的時候你自己利用操作文件的一些庫函數生成的文件,這個隨意,想刪就刪

2. c語言怎樣刪除文件

首先要說明的是這里並不是指刪除C編譯器裡面的文件,呵呵,如果只是要刪除那些文件的話,那就很簡單,直接選中文件後按delete鍵就可以刪除了,但是我們刪除那些文件幹嘛?我們還要用它寫程序啊,呵呵。我在這里要說的是,怎樣使用C語言編寫程序來刪除文件。

在C語言中,我們可以使用remove()函數來刪除指定的文件,具體語法為:
Int remove(char *filename);其中filename是一個指向字元串的指針,該字元串可以組成有效的文件名,也可以包含路徑說明。如果我們要刪除D盤下的ABC.txt文件,我們就可以這樣寫:remove(「D:\ABC.txt」);

3. 什麼代碼可以讓C語言運行的文件刪除自身

用不同的文件指針就可以在一個程序中同時打開兩個文件。
打開兩個窗口這屬於多線程編程范圍,請參考相關教材。

4. c語言程序運行完後 還佔用內存空間么怎麼刪

程序運行完之後,即使內存沒有在程序中被正確釋放也會被操作系統回收的。
當然了,不釋放動態內存是一種不好的習慣,當你的程序變大時副作用就會很明顯。

5. c語言怎麼關閉正在運行的應用程序

可以通過system 函數,調用dos命令taskkill實現關閉正在運行的應用程序。

system("taskkill /im notepad.exe");
會關閉記事本應用。
system("taskkill \F /pid 1234 \T");
會強制結束pid為1234的進程及其子進程。

關於taskkill的詳細描述如下:
TASKKILL [/S system [/U username [/P [password]]]] { [/FI filter] [/PID processid | /IM imagename] } [/F] [/T]

參數列表:
/S system 指定要連接到的遠程系統。
/U [domain\]user 指定應該在哪個用戶上下文
執行這個命令。
/P [password] 為提供的用戶上下文指定密碼。如果忽略,提示輸入。
/F 指定要強行終止的進程。
/FI filter 指定篩選進或篩選出查詢的的任務。
/PID process id 指定要終止的進程的PID。
/IM image name 指定要終止的進程的圖像名。通配符 '*'可用來指定所有圖像名。
/T Tree kill: 終止指定的進程和任何由此啟動的子進程。
/? 顯示幫助/用法。
篩選器:
篩選器名 有效運算符 有效值
----------- --------------- --------------
STATUS eq, ne 運行 | 沒有響應
IMAGENAME eq, ne 圖像名
PID eq, ne, gt, lt, ge, le PID 值
SESSION eq, ne, gt, lt, ge, le 會話編號
CPUTIME eq, ne, gt, lt, ge, le CPU 時間,格式為
hh:mm:ss。
hh - 時,
mm - 鍾,ss - 秒
MEMUSAGE eq, ne, gt, lt, ge, le 內存使用,單位為 KB
USERNAME eq, ne 用戶名,格式為
[domain\]user
MODULES eq, ne DLL 名
SERVICES eq, ne 服務名
WINDOWTITLE eq, ne 窗口標題
注意: 只有帶有篩選器的情況下,才能跟 /IM 切換使用通配符 '*'。
注意: 遠程進程總是要強行終止,
不管是否指定了 /F 選項。

6. 請問如何用c語言,在注冊表裡刪除一個開機運行程序.

調用注冊表操作API,可以在
HKEY_CURRENT_USER\Software\Microsoft\WindowsNT\CurrentVersion\Windows\load
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\Userinit
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce\Setup
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
以上是自動運行程序注冊的位置,都有自動運行程序的功能,也有不同之處,具體看msdn吧,下面是操作注冊表的API:
1、RegCloseKey()

原型:RegCloseKey(HKEY hKey)

解釋:關閉指定的主冊表鍵,釋放句柄。當對一個或多個鍵或值操作完成以後,需要關閉其鍵來進行保存操作結果,關閉一個鍵後,句柄變為非法,此時應釋放句柄。

2、RegCreateKeyEx()

原型:LONG RegCreateKeyEx( HKEY hKey, LPCTSTR lpSubKey, DWORD Reserved,
LPTSTR lpClass, DWORD dwOptions, REGSAM samDesired, LPSECURITY_ATTRIBUTES lpSecurityAttributes,
PHKEY phkResult, LPDWORD lpdwDisposition );

解釋:打開指定的鍵或子鍵。如果要打開的鍵不存在的話,本函數會試圖建立它。提供該函數是為了向後兼容。所有的WIN32應用程序應使用函數RegCreateKeyEx()。各參數及返回值的含義如下:

各參數及返回值的含義如下:

·hKey為主鍵值,可以取下面的一些數值:HKEY_CLASSES_ROOT、HKEY_CURRENT_CONFIG、 HKEY_CURRENT_USER、HKEY_LOCAL_MACHINE、HKEY_USER、HKEY_PERFORMANCE_DATA(WINNT操作系統)、HKEY_DYN_DATA(WIN9X操作系統);

·參數lpSubKey為一個指向以零結尾的字元串的指針,其中包含將要創建或打開的子鍵的名稱。子鍵不可以用反斜線(\)開始。該參數可以為NULL;

·參數Reserved為保留值,必須設置為0;

·參數lpClass為一個指向包含鍵類型的字元串。如果該鍵已經存在,則忽略該參數;

·參數dwOptions為新創建的鍵設置一定的屬性。可以取下面的一些數值: REG_OPTION_NON_VOLATILE ,表示新創建的鍵為一個非短暫性的鍵(數據信息保存在文件中,當系統重新啟動時,數據信息恢復);REG_OPTION_VOLATILE,表示新創建的鍵為一個短暫性的鍵(數據信息保存在內存中),Windows95忽略該數值;REG_OPTION_BACKUP_RESTORE 僅在WINNT中支持,可以提供優先順序支持;

·參數samDesired用來設置對鍵訪問的許可權,可以取下面的一些數值:KEY_CREATE_LINK,表示准許生成符號鍵;KEY_CREATE_SUB_KEY 表示准許生成子鍵;KEY_ENUMERATE_SUB_KEYS 表示准許生成枚舉子鍵;KEY_EXECUTE 表示准許進行讀操作;KEY_NOTIFY表示准許更換通告; KEY_QUERY_VALUE 表示准許查詢子鍵;KEY_ALL_ACCESS 提供完全訪問,是上面數值的組合;

KEY_READ 是下面數值的組合:KEY_QUERY_VALUE、KEY_ENUMERATE_SUB_KEYS、KEY_NOTIFY; KEY_SET_VALUE 表示准許設置子鍵的數值;KEY_WRITE 是下面數值的組合:KEY_SET_VALUE、KEY_CREATE_SUB_KEY;

·參數lpSecurityAttributes為一個指向SECURITY_ATTRIBUTES結構的指針,確定返回的句柄是否被子處理過程繼承。如果該參數為NULL,則句柄不可以被繼承。在WINNT中,該參數可以為新創建的鍵增加安全的描述;

·參數phkResult為一個指向新創建或打開的鍵的句柄的指針;

·參數lpdwDispition指明鍵是被創建還是被打開的,可以是下面的一些數值: REG_CREATE_NEW_KEY 表示鍵先前不存在,現在被創建;REG_OPENED_EXISTING_KEY 表示鍵先前已存在,現在被打開。

如果該函數調用成功,則返回ERROR_SUCCESS。否則,返回值為文件WINERROR.h中定義的一個非零的錯誤代碼,可以通過設置FORMAT_MESSAGE_FROM_SYSTEM標識調用FormatMessage()函數來獲取一個對錯誤的總體描述。

3、RegOpenKeyEx()

原型:LONG RegOpenKeyEx(HKEY hKey, LPCTSTR lpSubKey, DWORD ulOptions,
REGSAM samDesired, PHKEY phkResult );

解釋:打開一個指定的鍵,並返回打開鍵的句柄。

各參數及返回值的含義如下:

·參數hKey的含義同RegCreateKeyEx函數中的hKey參數;

·參數lpSubKey為一個指向以零結尾的字元串的指針,其中包含子鍵的名稱,可以利用反斜線(\)分隔不同的子鍵名。如果字元串為空,則根據hKey參數創建一個新的句柄。在這種情況下,並不關閉先前打開的句柄;

·參數ulOption保留,通常必須設置為0;

·參數samDesired的含義同RegCreateKeyEx函數中的samDesired參數;

·參數phkResult為一個指針,用來指向打開的鍵的句柄。可以通過RegCloseKey函數關閉這個句柄;

·函數的返回值同RegCreateKeyEx函數的返回值。

4、 查詢某一個鍵值:RegQueryValueEx()

原型:LONG RegQueryValueEx(HKEY hKey, LPCTSTR lpValueName, LPDWORD pReserved, LPDWORD lpType,
LPBYTE lpData, LPDWORD lpcbData );

解釋:根據要查詢的鍵的句柄,要返回的查詢的數據。

各個參數及返回值的含義如下:

·參數hKey為當前的一個打開的鍵的句柄,具體數值同RegCreateKeyEx函數的hKey參數;

·參數lpVauleName為一個指向非空的包含查詢值的名稱的字元串指針;

·參數lpReserved保留,必須為NULL;

·參數lpType為一個指向數據類型的指針,數據類型為下列類型之一:REG_BINARY 二進制數據、REG_DWORD 32位整數、REG_DWORD_LITTLE_ENDIAN little-endian格式的數據,例如0X12345678以(0X78 0X56 0X34 0X12)方式保存、REG_DWORD_BIG_ENDIAN big-endian格式的數據,例如0X12345678以(0X12 0X34 0X56 0X78)方式保存、REG_EXPAND_SZ 一個包含未擴展環境變數的字元串、REG_LINK 一個Unicode類型的鏈接、REG_MULIT_SZ 以兩個零結尾的字元串、REG_NONE 無類型數值、REG_RESOURCE_LIST 設備驅動資源列表、REG_SZ 一個以零結尾的字元串根據函數使用的字元集類型的不同而設置為Unicode或ANSI類型的字元串;

·參數lpData為一個指向保存返回值的變數的指針。如果不需要返回值,該參數可以為NULL;

·參數lpcbData為一個指向保存返回值長度的變數的指針。其中長度以位元組為單位。如果數據類型為REG_SZ、REG_MULTI_SZ或REG_EXPAND_SZ,那麼長度也包括結尾的零字元,只有在參數lpData為NULL時,參數lpcbData才可以為NULL;返回值同RegCreateKeyEx函數的返回值;

5、RegSetValueEx()

原型:LONG RegSetValueEx(HKEY hKey, LPCTSTR lpValueName, LPDWORD lpReserved, DWORD dwType,
const BYTE *lpData, DWORD cbData);

解釋:設置注冊表中的一個鍵值。

各個參數及返回值的含義如下:

·參數hKey的含義同RegCreateKeyEx函數中的hKey參數;

·參數lpValueName為一個指向包含值名的字元串指針;Reserved保留,通常必須設置為0;

·參數dwType確定了設置的值的類型同RegQueryValueKeyEx的lyType參數;

·參數lpData為一個指向包含數據的緩沖區的指針;

·參數cbData以位元組為單位,指定數據的長度;

返回值同RegCreateKeyEx函數的返回值。

6、RegDeketeKey()

原型:LONG RegDeleteKey(HKEY hKey,LPCTSTR lpSubKEY);

解釋:函數RegDeketeKey刪除一個鍵及所有的子鍵。

各個參數及返回值的含義如下:

·參數hKey的含義同RegCreateKeyEx函數中的hKey參數;

·參數lpSubKey的含義同RegCreateKeyEx函數中的lpSubKey參數。

7. 如何讓c語言程序運行一次後自動刪除。

你想做黑客啊?做完了就把自己刪除了?

我知道通過主函數的參數可以知道EXE文件名。
再用system函數調用操作系統的命令來刪除這個EXE文件。
此外,還可以通過批處理來做。

具體代碼你自己寫,做黑客是要有點本事的。

8. 怎麼刪除C語言中程序運行記錄

步驟如下,我用的VC英文版

File -> Close Workspace,點擊「是」

File -> Open,打開需要編譯的文件

Build -> Rebuile All,點擊兩次「是」

就可以搞定問題了

以後編譯完文件後,如果要編譯另外一個文件,先 File -> Close Workspace,點擊「是」

9. c語言程序,如何實現把本身程序刪除。如打開1.exe,然後1.exe的功能就是刪除本身,運行結束後

程序自刪除的方式有很多,不過最終的思想不過是關閉本身進程,開啟新進程用於刪除自身。下面這個方法是用windows自帶命令行程序實現刪除。
命令行為 cmd.exe /c del filename
--------------------------------------------------------------------------------
代碼示例:C語言形式
#include
#include
#include
BOOL SelfDel()
{
SHELLEXECUTEINFO sei;
TCHAR szMole [MAX_PATH],szComspec[MAX_PATH],szParams [MAX_PATH];
// 獲得自身文件名. 獲取cmd的全路徑文件名
if((GetMoleFileName(0,szMole,MAX_PATH)!=0) &&
(GetShortPathName(szMole,szMole,MAX_PATH)!=0) &&
(GetEnvironmentVariable("COMSPEC",szComspec,MAX_PATH)!=0))
{
// 設置命令參數.
lstrcpy(szParams,"/c del ");
lstrcat(szParams, szMole);
lstrcat(szParams, " > nul");
// 設置結構成員.
sei.cbSize = sizeof(sei);
sei.hwnd = 0;
sei.lpVerb = "Open";
sei.lpFile = szComspec;
sei.lpParameters = szParams;
sei.lpDirectory = 0; sei.nShow = SW_HIDE;
sei.fMask = SEE_MASK_NOCLOSEPROCESS;
// 創建cmd進程.
if(ShellExecuteEx(&sei))
{
// 設置cmd進程的執行級別為空閑執行,使本程序有足夠的時間從內存中退出.
SetPriorityClass(sei.hProcess,IDLE_PRIORITY_CLASS);
// 將自身進程的優先順序置高
SetPriorityClass(GetCurrentProcess(),REALTIME_PRIORITY_CLASS);
SetThreadPriority(GetCurrentThread(),THREAD_PRIORITY_TIME_CRITICAL);
// 通知Windows資源瀏覽器,本程序文件已經被刪除.
SHChangeNotify(SHCNE_DELETE,SHCNF_PATH,szMole,0);
return TRUE;
}
}
return FALSE;
}
---------------------------------------------------------------------------------

10. c語言中程序運行完有垃圾文件(運行中的時候強制關掉,然後刪除該程序)怎麼刪也刪不掉,怎麼辦

打開任務管理器,找到正在運行,也就是你要刪除的文件,強制關閉,然後再刪除。