關閉佔用特定端口的進程的方法

使用ftp上傳文件失敗,究其原因是由於ftp server程序使用的控制端口21被佔用,所以在啓動ftp server程序之前做如下工作:

1.檢查防火牆是否關閉;

2.檢查ftp控制端口21是否被佔用。

實現方法:

1.在Windows XP環境下,通過代碼查詢註冊表:SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile下的EnableFirewall的值,1防火牆打開,0防火牆關閉。如果防火牆打開,提示用戶關閉防火牆。

2.通過調用批處理文件,關閉佔用端口21的進程。

批處理文件kill21.bat的內容如下:

@echo off
setlocal enabledelayedexpansion
for /f "delims=  tokens=1" %%i in ('netstat -aon ^| findstr "21"') do (
set a=%%i
goto js
)
:js
taskkill /pid "!a:~71,5!"

如果單存調用批處理文件,會顯示命令提示窗口的黑框,爲了不顯示提示串口,需要使用run.vbs文件調用批處理文件kill21.bat,run.vbs文件內容如下:

Set ws = CreateObject("Wscript.Shell")     
ws.run "cmd /c Kill21.bat",0

在代碼中,ShellExecute(NULL,L"open",L"run.vbs" ,NULL, NULL, SW_SHOWNORMAL);調用run.vbs文件,就不會顯示命令行窗口。需要包含頭文件shellapi.h。


發佈了35 篇原創文章 · 獲贊 3 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章