當前位置:首頁 » 挖礦知識 » btn用cpu挖礦

btn用cpu挖礦

發布時間: 2021-06-13 01:44:25

『壹』 VC++ MFC如何獲取CPU ID及硬碟的序列號

// 「獲得Intel CPU ID」按鈕消息處理函數
void CIntelCPUIDDlg::OnBtnCPUID()
{
unsigned long s1,s2;
unsigned char vendor_id[]="------------";//CPU提供商ID
CString str1,str2,str3;
// 以下為獲得CPU ID的匯編語言指令
_asm // 得到CPU提供商信息
{
xor eax,eax // 將eax清0
cpuid // 獲取CPUID的指令
mov dword ptr vendor_id,ebx
mov dword ptr vendor_id[+4],edx
mov dword ptr vendor_id[+8],ecx
}
str1.Format("%s",vendor_id);

_asm // 得到CPU ID的高32位
{
mov eax,01h
xor edx,edx
cpuid
mov s2,eax
}
str2.Format("%08X-",s2);

_asm // 得到CPU ID的低64位
{
mov eax,03h
xor ecx,ecx
xor edx,edx
cpuid
mov s1,edx
mov s2,ecx
}
str3.Format("%08X-%08X\n",s1,s2);

str2=str2+str3;
m_editVendor.SetWindowText(str1);
m_editCPUID.SetWindowText(str2);
}

// GetHDSerial.cpp: implementation of the CGetHDSerial class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "GetHDSerial.h"

char m_buffer[256];
WORD m_serial[256];
DWORD m_OldInterruptAddress;
DWORDLONG m_IDTR;

// 等待硬碟空閑
static unsigned int WaitHardDiskIdle()
{
BYTE byTemp;

Waiting:
_asm
{
mov dx, 0x1f7
in al, dx
cmp al, 0x80
jb Endwaiting
jmp Waiting
}
Endwaiting:
_asm
{
mov byTemp, al
}
return byTemp;
}

//中斷服務程序
void _declspec( naked )InterruptProcess(void)
{
int byTemp;
int i;
WORD temp;
//保存寄存器值
_asm
{
push eax
push ebx
push ecx
push edx
push esi
}

WaitHardDiskIdle();//等待硬碟空閑狀態
_asm
{
mov dx, 0x1f6
mov al, 0xa0
out dx, al
}
byTemp = WaitHardDiskIdle(); //若直接在Ring3級執行等待命令,會進入死循環
if ((byTemp&0x50)!=0x50)
{
_asm // 恢復中斷現場並退出中斷服務程序
{
pop esi
pop edx
pop ecx
pop ebx
pop eax
iretd
}
}

_asm
{
mov dx, 0x1f6 //命令埠1f6,選擇驅動器0
mov al, 0xa0
out dx, al
inc dx
mov al, 0xec
out dx, al //發送讀驅動器參數命令
}
byTemp = WaitHardDiskIdle();
if ((byTemp&0x58)!=0x58)
{
_asm // 恢復中斷現場並退出中斷服務程序
{
pop esi
pop edx
pop ecx
pop ebx
pop eax
iretd
}
}
//讀取硬碟控制器的全部信息
for (i=0;i<256;i++)
{
_asm
{
mov dx, 0x1f0
in ax, dx
mov temp, ax
}
m_serial[i] = temp;
}
_asm
{
pop esi
pop edx
pop ecx
pop ebx
pop eax
iretd
}
}
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CGetHDSerial::CGetHDSerial()
{

}

CGetHDSerial::~CGetHDSerial()
{

}
// 讀取硬碟序列號函數
char* CGetHDSerial::GetHDSerial()
{
m_buffer[0]='\n';
// 得到當前操作系統版本
OSVERSIONINFO OSVersionInfo;
OSVersionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
GetVersionEx( &OSVersionInfo);
if (OSVersionInfo.dwPlatformId != VER_PLATFORM_WIN32_NT)
{
// Windows 9x/ME下讀取硬碟序列號
WORD m_wWin9xHDSerial[256];
Win9xReadHDSerial(m_wWin9xHDSerial);
strcpy (m_buffer, WORDToChar (m_wWin9xHDSerial, 10, 19));
}
else
{
// Windows NT/2000/XP下讀取硬碟序列號
DWORD m_wWinNTHDSerial[256];
// 判斷是否有SCSI硬碟
if ( ! WinNTReadIDEHDSerial(m_wWinNTHDSerial))
WinNTReadSCSIHDSerial(m_wWinNTHDSerial);
strcpy (m_buffer, DWORDToChar (m_wWinNTHDSerial, 10, 19));
}
return m_buffer;
}

// Windows9X/ME系統下讀取硬碟序列號
void _stdcall CGetHDSerial::Win9xReadHDSerial(WORD * buffer)
{
int i;
for(i=0;i<256;i++)
buffer[i]=0;
_asm
{
push eax
//獲取修改的中斷的中斷描述符(中斷門)地址
sidt m_IDTR
mov eax,dword ptr [m_IDTR+02h]
add eax,3*08h+04h
cli
//保存原先的中斷入口地址
push ecx
mov ecx,dword ptr [eax]
mov cx,word ptr [eax-04h]
mov dword ptr m_OldInterruptAddress,ecx
pop ecx
//設置修改的中斷入口地址為新的中斷處理程序入口地址
push ebx
lea ebx,InterruptProcess
mov word ptr [eax-04h],bx
shr ebx,10h
mov word ptr [eax+02h],bx
pop ebx
//執行中斷,轉到Ring 0(類似CIH病毒原理)
int 3h
//恢復原先的中斷入口地址
push ecx
mov ecx,dword ptr m_OldInterruptAddress
mov word ptr [eax-04h],cx
shr ecx,10h
mov word ptr [eax+02h],cx
pop ecx
sti
pop eax
}
for(i=0;i<256;i++)
buffer[i]=m_serial[i];
}

// Windows 9x/ME系統下,將字類型(WORD)的硬碟信息轉換為字元類型(char)
char * CGetHDSerial::WORDToChar (WORD diskdata [256], int firstIndex, int lastIndex)
{
static char string [1024];
int index = 0;
int position = 0;

// 按照高位元組在前,低位元組在後的順序將字數組diskdata 中內容存入到字元串string中
for (index = firstIndex; index <= lastIndex; index++)
{
// 存入字中的高位元組
string [position] = (char) (diskdata [index] / 256);
position++;
// 存入字中的低位元組
string [position] = (char) (diskdata [index] % 256);
position++;
}
// 添加字元串結束標志
string [position] = '\0';

// 刪除字元串中空格
for (index = position - 1; index > 0 && ' ' == string [index]; index--)
string [index] = '\0';

return string;
}

// Windows NT/2000/XP系統下,將雙字類型(DWORD)的硬碟信息轉換為字元類型(char)
char* CGetHDSerial::DWORDToChar (DWORD diskdata [256], int firstIndex, int lastIndex)
{
static char string [1024];
int index = 0;
int position = 0;

// 按照高位元組在前,低位元組在後的順序將雙字中的低字存入到字元串string中
for (index = firstIndex; index <= lastIndex; index++)
{
// 存入低字中的高位元組
string [position] = (char) (diskdata [index] / 256);
position++;
// 存入低字中的低位元組
string [position] = (char) (diskdata [index] % 256);
position++;
}
// 添加字元串結束標志
string [position] = '\0';

// 刪除字元串中空格
for (index = position - 1; index > 0 && ' ' == string [index]; index--)
string [index] = '\0';

return string;
}

// Windows NT/2000/XP下讀取IDE硬碟序列號
BOOL CGetHDSerial::WinNTReadIDEHDSerial(DWORD * buffer)
{
BYTE IdOutCmd [sizeof (SENDCMDOUTPARAMS) + IDENTIFY_BUFFER_SIZE - 1];
BOOL bFlag = FALSE;
int drive = 0;
char driveName [256];
HANDLE hPhysicalDriveIOCTL = 0;

sprintf (driveName, "\\\\.\\PhysicalDrive%d", drive);
// Windows NT/2000/XP下創建文件需要管理員許可權
hPhysicalDriveIOCTL = CreateFile (driveName,
GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
OPEN_EXISTING, 0, NULL);

if (hPhysicalDriveIOCTL != INVALID_HANDLE_VALUE)
{
GETVERSIONOUTPARAMS VersionParams;
DWORD cbBytesReturned = 0;

// 得到驅動器的IO控制器版本
memset ((void*) &VersionParams, 0, sizeof(VersionParams));
if(DeviceIoControl (hPhysicalDriveIOCTL, IOCTL_GET_VERSION,
NULL, 0, &VersionParams,
sizeof(VersionParams),
&cbBytesReturned, NULL) )
{
if (VersionParams.bIDEDeviceMap > 0)
{
BYTE bIDCmd = 0; // IDE或者ATAPI識別命令
SENDCMDINPARAMS scip;

// 如果驅動器是光碟機,採用命令IDE_ATAPI_IDENTIFY, command,
// 否則採用命令IDE_ATA_IDENTIFY讀取驅動器信息
bIDCmd = (VersionParams.bIDEDeviceMap >> drive & 0x10)?
IDE_ATAPI_IDENTIFY : IDE_ATA_IDENTIFY;

memset (&scip, 0, sizeof(scip));
memset (IdOutCmd, 0, sizeof(IdOutCmd));
// 獲取驅動器信息
if (WinNTGetIDEHDInfo (hPhysicalDriveIOCTL,
&scip,
(PSENDCMDOUTPARAMS)&IdOutCmd,
(BYTE) bIDCmd,
(BYTE) drive,
&cbBytesReturned))
{
int m = 0;
USHORT *pIdSector = (USHORT *)
((PSENDCMDOUTPARAMS) IdOutCmd) -> bBuffer;

for (m = 0; m < 256; m++)
buffer[m] = pIdSector [m];
bFlag = TRUE; // 讀取硬碟信息成功
}
}
}
CloseHandle (hPhysicalDriveIOCTL); // 關閉句柄
}
return bFlag;
}

// WindowsNT/2000/XP系統下讀取SCSI硬碟序列號
BOOL CGetHDSerial::WinNTReadSCSIHDSerial (DWORD * buffer)
{
buffer[0]='\n';
int controller = 0;
HANDLE hScsiDriveIOCTL = 0;
char driveName [256];
sprintf (driveName, "\\\\.\\Scsi%d:", controller);
// Windows NT/2000/XP下任何許可權都可以進行
hScsiDriveIOCTL = CreateFile (driveName,
GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
OPEN_EXISTING, 0, NULL);

if (hScsiDriveIOCTL != INVALID_HANDLE_VALUE)
{
int drive = 0;
DWORD mmy;
for (drive = 0; drive < 2; drive++)
{
char buffer [sizeof (SRB_IO_CONTROL) + SENDIDLENGTH];
SRB_IO_CONTROL *p = (SRB_IO_CONTROL *) buffer;
SENDCMDINPARAMS *pin =
(SENDCMDINPARAMS *) (buffer + sizeof (SRB_IO_CONTROL));
// 准備參數
memset (buffer, 0, sizeof (buffer));
p -> HeaderLength = sizeof (SRB_IO_CONTROL);
p -> Timeout = 10000;
p -> Length = SENDIDLENGTH;
p -> ControlCode = IOCTL_SCSI_MINIPORT_IDENTIFY;
strncpy ((char *) p -> Signature, "SCSIDISK", 8);
pin -> irDriveRegs.bCommandReg = IDE_ATA_IDENTIFY;
pin -> bDriveNumber = drive;
// 得到SCSI硬碟信息
if (DeviceIoControl (hScsiDriveIOCTL, IOCTL_SCSI_MINIPORT,
buffer,
sizeof (SRB_IO_CONTROL) +
sizeof (SENDCMDINPARAMS) - 1,
buffer,
sizeof (SRB_IO_CONTROL) + SENDIDLENGTH,
&mmy, NULL))
{
SENDCMDOUTPARAMS *pOut =
(SENDCMDOUTPARAMS *) (buffer + sizeof (SRB_IO_CONTROL));
IDSECTOR *pId = (IDSECTOR *) (pOut -> bBuffer);
if (pId -> sModelNumber [0])
{
int n = 0;
USHORT *pIdSector = (USHORT *) pId;

for (n = 0; n < 256; n++)
buffer[n] =pIdSector [n];
return TRUE; // 讀取成功
}
}
}
CloseHandle (hScsiDriveIOCTL); // 關閉句柄
}
return FALSE; // 讀取失敗
}

// Windows NT/2000/XP下讀取IDE設備信息
BOOL CGetHDSerial::WinNTGetIDEHDInfo (HANDLE hPhysicalDriveIOCTL, PSENDCMDINPARAMS pSCIP,
PSENDCMDOUTPARAMS pSCOP, BYTE bIDCmd, BYTE bDriveNum,
PDWORD lpcbBytesReturned)
{
// 為讀取設備信息准備參數
pSCIP -> cBufferSize = IDENTIFY_BUFFER_SIZE;
pSCIP -> irDriveRegs.bFeaturesReg = 0;
pSCIP -> irDriveRegs.bSectorCountReg = 1;
pSCIP -> irDriveRegs.bSectorNumberReg = 1;
pSCIP -> irDriveRegs.bCylLowReg = 0;
pSCIP -> irDriveRegs.bCylHighReg = 0;

// 計算驅動器位置
pSCIP -> irDriveRegs.bDriveHeadReg = 0xA0 | ((bDriveNum & 1) << 4);

// 設置讀取命令
pSCIP -> irDriveRegs.bCommandReg = bIDCmd;
pSCIP -> bDriveNumber = bDriveNum;
pSCIP -> cBufferSize = IDENTIFY_BUFFER_SIZE;

// 讀取驅動器信息
return ( DeviceIoControl (hPhysicalDriveIOCTL, IOCTL_GET_DRIVE_INFO,
(LPVOID) pSCIP,
sizeof(SENDCMDINPARAMS) - 1,
(LPVOID) pSCOP,
sizeof(SENDCMDOUTPARAMS) + IDENTIFY_BUFFER_SIZE - 1,
lpcbBytesReturned, NULL) );
}

『貳』 請高手指點利用注冊表優化XP系統

1、加快開機及關機速度

在[開始]-->[運行]-->鍵入[Regedit]-->[HKEY_CURRENT_USER]-->[Control Panel]-->[Desktop],將字元串值[HungAppTimeout]的數值數據更改為[200],將字元串值[WaitToKillAppTimeout]的數值數據更改為1000.另外在[HKEY_LOCAL_MACHINE]-->[System]-->[CurrentControlSet]-->[Control],將字元串值[HungAppTimeout]的數值數據更改為[200],將字元串值[WaitToKillServiceTimeout]的數值數據更改1000.

2、自動關閉停止響應程序

在[開始]-->[運行]-->鍵入[Regedit]-->[HKEY_CURRENT_USER]-->[Control Panel]-->[Desktop],將字元串值[AutoEndTasks]的數值數據更改為1,重新啟動即可。

3、清除內存內被不使用的DLL文件

在[開始]-->[運行]-->鍵入[Regedit]-->[HKKEY_LOCAL_MACHINE]-->[SOFTWARE]-->[Microsoft]-->[Windows]-->[CurrentVersion],在[Explorer]增加一個項[AlwaysUnloadDLL],默認值設為1。註:如由默認值設定為[0]則代錶停用此功能。

4、加快寬頻接入速度

(1)家用版本:在[開始]-->[運行]-->鍵入[regedit]-->在[HKEY_LOCAL_MACHINE]-->[SOFTWARE]-->[Policies]-->[Microsoft] -->[Windows],增加一個名為[Psched]的項,在[Psched]右面窗口增加一個Dword值[NonBestEffortLimit]數值數據為0。

(2)商業版本:在[開始]-->[運行]-->鍵入[gpedit.msc],打開本地計算機策略,在左邊窗口中選取[計算機配置]-->[管理模板]-->[網路]-->[QoS數據包調度程序],在右邊的窗口中雙擊"限制可保留的帶寬",選擇"已啟用"並將"帶寬限制(%)"設為0應用-->確定,重啟動即可。

5、加快菜單顯示速度

在[開始]-->[運行]-->鍵入[Regedit]-->[HKEY_CURRENT_USER]-->[Control Panel]-->[Desktop],將字元串值[MenuShowDelay]的數值數據更改為[0],調整後如覺得菜單顯示速度太快而不適應者可將[MenuShowDelay]的數值數據更改為[200],重新啟動即可。

6、加快自動刷新率

在[開始]-->[運行]-->鍵入[Regedit]-->[HKEY_LOCAL_MACHINE]-->[System]-->[CurrentControlSet]-->[Control]-->[Update],將Dword[UpdateMode]的數值數據更改為[0],重新啟動即可.

7、加快預讀能力改善開機速度

Windows XP預讀設定可提高系統速度,加快開機速度。按下修改可進一步善用CPU的效率:在[開始]-->[運行]-->鍵入[Regedit]-->[HKEY_LOCAL_MACHINE]-->[SYSTEM]-->[CurrentControlSet]-->[Control]-->[SessionManager]-->[MemoryManagement],在[PrefetchParameters]右邊窗口,將[EnablePrefetcher]的數值數據如下更改,如使用PIII 800MHz CPU以上的建議將數值數據更改為4或5,否則建議保留數值數據為默認值即3。

8、利用CPU的L2 Cache加快整體效能

在[開始]-->[運行]-->鍵入[Regedit]-->[HKEY_LOCAL_MACHINE]-->[SYSTEM]-->[CurrentControlSet]-->[Control]-->[SessionManager],在[MemoryManagement]的右邊窗口,將[SecondLevelDataCache]的數值數據更改為與CPU L2 Cache相同的十進制數值:例如:P4 1.6G A的L2 Cache為512Kb,數值數據更改為十進制數值512。

9、在啟動計算機時運行Defrag程序

在[開始]-->[運行]-->鍵入[Regedit]-->[HKEY_LOCAL_MACHINE]-->[SOFTWARE]-->[Microsoft]-->[Dfrg]-->[BootOptimizeFunction ],將字元串值[Enable]設定為:Y等於開啟而設定為N等於關閉。

10、關機時自動關閉停止響應程序

在[開始]-->[運行]-->鍵入[Regedit]-->[HKEY_USERS]-->[.DEFAULT]-->[Control Panel],然後在[Desktop]右面窗口將[AutoEndTasks]的數值數據改為1,注銷或重新啟動。

11、在不同的內存空間中運行程序

找到HKEY_CURRENT_子鍵,把MemCheckBoxInRunDlg設置成1,「開始」菜單的「運行對話框」會增加一個「在獨立的內存空間中運行」選項。

12、禁止修改用戶文件夾

找到HKEY_CURRENT_。如果要鎖定「圖片收藏」、「我的文檔」、「收藏夾」、「我的音樂」這些用戶文件夾的物理位置,分別把下面這些鍵設置成1:DisableMyPicturesDirChange,DisablePersonalDirChange,DisableFavoritesDirChange,DisableMyMusicDirChange

13、顯示映射網路驅動器的按鈕

找到HKEY_CURRENT_子鍵,把MapNetDrvBtn設置成1。映射網路驅動器的按鈕將出現在Windows資源管理器和「我的電腦」的工具條上。

14、減小瀏覽區域網的延遲時間

和Windows 2000一樣,XP在瀏覽區域網時也存在煩人的延遲問題,但介紹這個問題的資料卻很難找到。如果你瀏覽一台Win 9x的機器,例如,在網上鄰居的地址欄輸入「\computername」,XP的機器會在它正在連接的機器上檢查「任務計劃」。這種搜索過程可能造成多達30秒的延遲。如果你直接打開某個共享資源,例如在網上鄰居的地址欄輸入「\computernameshare」,就不會有這個延遲過程。要想避免XP搜索「任務計劃」的操作,提高瀏覽網路的速度,你可以刪除HKEY_LOCAL_eSpace{D6277990-4C6A-11CF-8D87-00AA0060F5BF}子鍵。該鍵的類型是REG_SZ。

15、XP中讓程序開機即運行的新方法

點擊「開始」菜單中的「運行」,在打開的「運行」對話框中輸入「Regedit」,打開注冊表編輯器。順次展開注冊表到HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows下,在這里新建一個字元串值,方法是右擊主鍵「Windows」,在彈出的菜單中選擇「新建」→「串值」,把該字元串值命名為「load」。然後,雙擊「load」,在彈出的窗口中將它的鍵值改為你想開機就自動運行的程序路徑。要注意的是應該使用文件的短文件名,即「C:\Program Files」應該寫為「C:\Progra~1」。

16、屏蔽系統中的熱鍵

點擊「開始」→「運行」,輸入Regedit,打開注冊表編輯器。然後依次打開到HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer,新建一個雙位元組值,鍵名為「NoWindows Keys」,鍵值為「1」,這樣就可以禁止用戶利用系統熱鍵來執行一些禁用的命令。如果要恢復,只要將鍵值設為0或是將此鍵刪除即可。

17、關閉不用的共享

安全問題一直為大家所關注,為了自己的系統安全能夠有保證,某些不必要的共享還是應該關閉的。用記事本編輯如下內容的注冊表文件,保存為任意名字的.Reg文件,使用時雙擊即可關閉那些不必要的共享:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters]

"AutoShareServer"=dword:00000000

"AutoSharewks"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]

"restrictanonymous"=dword:00000001

18、修改服務名稱和解釋

在注冊表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services下的次級主鍵就是各個服務,選中任何一個次級主鍵,在右邊可以看到DisplayName和Description兩個字元串,DisplayName就是在「管理工具→服務」裡面顯示的名字,Description就是對應服務的描述。二者可以任意修改,但是次級主鍵名和其他的不能亂動。

19、取消磁碟空間不夠警告提示

Windows XP會自動監控磁碟空間剩餘量,一旦磁碟空間不足的話,會提示你並掛起系統還原功能。如果要取消的話,就打開注冊表編輯器,找到HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer,新建一個Dword值NoLowDiskSpaceChecks,然後修改為1即可。

20、自動關閉停止響應的程序

在Windows XP操作系統中,我們可以通過修改注冊表,使Windows XP診測到某個應用程序已經停止響應時就自動關閉它,這樣就不需要手工干預了。想要實現這個功能,請點擊「開始」→「運行」輸入RegEdit,打開注冊表編輯器,依次展示HKEY_CURRENT_USER\Control Panel\Desktop\Auto End Tasks,將其鍵值改為1即可。

21、讓「我的電腦」和「我的文檔」「乾坤倒掛」

Win2000以下版本的視窗操作系統的「我的電腦」的圖表都是放在「我的文檔」之上的,到了Win2000及其以後操作系統則正好相反。在Windows XP中,我們可以利用修改注冊表來把「我的電腦」圖標放在「我的文檔」之上,具體操作步驟如下:在注冊表中找到HKEY_CLASSES_ROOT\CLSID\{450D8FBA-AD25-11D0-98A8-0800361B1103},然後新建Dword值「SortOrderIndex」,並修改其鍵值為「54」(16進制)。如果要把「我的文檔」放在首位的話,只需要修改「SortOrderIndex」的鍵值為48(16進制)即可。

22、每次啟動時保持桌面設置不變

我們可以通過修改注冊表來保護我們的桌面設置,無論做了什麼樣的修改,只要重新啟動之後桌面就會恢復原樣。步驟如下:打開注冊表編輯器,找到HKEY_CURRENT_USERS\Software\Microsoft\Windows\CurrentVersion\Polices\Explorer子鍵分支,在它的下面找到NoSaveSettings,其類型為REG_SZ,將其鍵值改為「0」,或者直接刪除該鍵值項,重新啟動系統使設置生效。

23、禁止IE下載文件

在有些公用電腦上需要禁止下載文件功能,雖然某些管理軟體可以做到這一點,但安裝調試這類軟體實在是太麻煩了。其實在注冊表中稍作修改就可以滿足大家的要求了。打開注冊表編輯器,找到HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3,然後在右邊找到1803這個DWORD值,將其鍵值修改為3即可。重新啟動IE看看還能不能夠下載的?如果要取消限制的話,只需要還原DWORD值為0即可。

24、讓IE支持多線程下載

一般情況下,大家都使用多線程下載軟體如Flashget等下載文件,其實IE也可以支持多線程下載的,只是微軟將這個功能給藏了起來。我們把它給挖出來就可以使用了。打開注冊表編輯器,在注冊表HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings下新建雙位元組值項「MaxConnectionsPerServer」,它決定了最大同步下載的連線數目,一般設定為5~8個連線數目比較好。另外,對於HTTP 1.0伺服器,可以加入名為「MaxConnectionsPer1_0Server」的雙位元組值項,它也是用來設置最大同步下載的數目,也可以設定為5~8。

25、讓WINDOWS XP自動登陸

打開:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon,在右邊的窗口中的新建字元串"AutoAdminlogon",並把他們的鍵值為"1",並且把「DefaultUserName」的值設置為用戶名,並且另外新建一個字元串值「DefaultPassword」,並設其值為用戶的密碼。

『叄』 用JAVA編一個小游戲或者其他程序

import java.util.Random;
import java.util.Scanner;

public class Game {

private static int win=0;
private static int fail=0;
private static int pi=0;
private static void check(int cpu,int pe){
int t=0;
if(pe-cpu==2) t= -1;
else if(pe-cpu==-2) t= 1;
else t=pe-cpu;
if(t>0) {System.out.println("你贏了!");win++;}
else if(t==0) {System.out.println("咱們平了!");pi++;}
else {System.out.println("你輸了!");fail++;}
}
public static void main(String[] args) {
String input="";
String cpuStr="";
Random rand=new Random();
int cpu=0;
int pe=0;
while(true){
System.out.println("*************************小游戲一個 輸e/E可以退出*****************");
System.out.println("請選擇你要出什麼?F--剪刀(forfex),S--石頭(stone),C--布(cloth)");
Scanner scan=new Scanner(System.in);
input=scan.nextLine();
cpu=rand.nextInt(3);
if(cpu==0)cpuStr="剪刀";
else if(cpu==1)cpuStr="石頭";
else cpuStr="布";

if(input.equals("F")||input.equals("f")){
pe=0;
System.out.println("你出的是,剪刀");
System.out.println("我出"+cpuStr);
check(cpu,pe);
}else if(input.equals("S")||input.equals("s")){
pe=1;
System.out.println("你出的是,石頭");
System.out.println("我出"+cpuStr);
check(cpu,pe);
}else if(input.equals("C")||input.equals("c")){
pe=2;
System.out.println("你出的是,布");
System.out.println("我出"+cpuStr);
check(cpu,pe);
}else if(input.equals("E")||input.equals("e")){
System.out.println("結束游戲。。");
System.out.println("結果統計:");
System.out.println("勝:"+win+"局");
System.out.println("負:"+fail+"局");
System.out.println("平:"+pi+"局");
System.exit(0);
}
}

}

}

以上回答參考:
http://..com/question/39899654.html

『肆』 用VB提交網頁數據

DoEvents 轉讓控制權,就是減少cpu使用率,50%應該是系統默認的吧,要想更高的佔有可以試一下遞歸或者提高程序優先順序,具體我也不會,補充問題,簡單的乘除法,自己算。

『伍』 C#獲取CPU佔用率

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//使用額外的線程獲取CPU狀態值
Thread newThread;
delegate void SetLabelTextDele(string text);
private void ThreadForCpuView(object obj)
{
PerformanceCounter pcCpuLoad = (PerformanceCounter)obj;
SetLabelTextDele setTextDele = new SetLabelTextDele(SetLabelText);
while (true)
{
Thread.Sleep(1000);
float cpuLoad = pcCpuLoad.NextValue();
//label2.Text = cpuLoad + "%";
label2.Invoke(setTextDele, new object[] { cpuLoad + "%" });
}
}

private void SetLabelText(string text)
{
label2.Text = text;
}

private void Btn_Start_Click(object sender, EventArgs e)
{
PerformanceCounter pcCpuLoad = new PerformanceCounter("Processor", "% Processor Time", "_Total");
pcCpuLoad.NextValue();
ParameterizedThreadStart p = new ParameterizedThreadStart(ThreadForCpuView);
newThread = new Thread(ThreadForCpuView);
newThread.Start(pcCpuLoad);
}

private void Btn_Abort_Click(object sender, EventArgs e)
{
newThread.Abort();
}
}

『陸』 關於騰迅QQ佔用CPU很高的問題

建議去查BTN+Service.exe和兩個RUNDLL32所運行的DLL

『柒』 在android中進程的級別有哪些

進程的優先順序 12); //實例化按鈕對象 Button btnDownload=(Button)findViewById(RMessage); Button btnDownload=(Button)findViewById(R.id.btnDownload); Button btnUpdate=(Button)findViewById(R.id.btnUpdate); //注冊按鈕的單擊事件 btnDownload.setOnClickListener(this); btnUpdate.setOnClickListener(this); } //實現按鈕的單擊時間事件 @Override public void onClick(View v) { switch (v.getId()) { case R.id.btnDownload: //創建對象 MyAsyncTask myAsyncTask=new MyAsyncTask(); myAsyncTask.execute(null);//執行任務 break; case R.id.btnUpdate: break; } } private class MyAsyncTask extends AsyncTask<URL, Integer, String>{ //在UI中執行,更新UI @Override protected void onProgressUpdate(Integer... values) { mProgressBar.setProgress(values[0]); if(values[0]<100){ mTextView.setText("progress="+values[0]+"%"); } } //現在work thread中執行耗時操作 @Override protected String doInBackground(URL... params) { for (int i = 0; i < 100; i++) { publishProgress(i+1);//向onProgressUpdate發送消息 try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } } return "download finished"; } //doInBackground結束後,執行本方法,result是doInBackground方法返回的數據 @Override protected void onPostExecute(String result) { mTextView.setText(result); } } } 12.9. 軟體開發術語 12.9.1性能 臨時對象越多,垃圾回收(GC)的頻率越高 GC佔用CPU,CPU被佔用時,無法響應用戶的操作 用戶感覺到卡,影響用戶體驗。 12.9.2資源池 存放一定數量的同樣類型的對象,當程序需要使用時,可以從資源池中獲取,使用完成,收回資源池。 等待下一次被使用。 示例:從資源池中獲取Message對象。 Message msg=Message.obtainMessage(); 提示:若之前沒有創建過Message,則創建給對象。Android系統會在適當時候回收該對象,方便下次取用。 提示:解決性能問題的前提是不能影響功能。

『捌』 啟動故障:btn_rst是什麼意思

答:RST是RESET的簡寫,RESET信號一般用於有CPU的電路中,是復位、初始化的意思,在開機時要用RESET信號使電路初始化,電路工作狀態出現異常死機時也要用...

『玖』 bootstrap小白一枚 今天復刻網頁練習看到這么一個狀態,在網上也查不到 求大神指導! btn-normal什麼效果

默認的按鈕吧。默認白色。默認大小。

熱點內容
元宇宙景點 發布:2025-06-23 11:24:14 瀏覽:699
eth與ht哪個值得買 發布:2025-06-23 11:21:16 瀏覽:623
區塊鏈上新幣連續新底怎麼辦 發布:2025-06-23 11:06:44 瀏覽:372
聯通38抵消合約怎麼取消 發布:2025-06-23 11:01:43 瀏覽:680
合約怎麼收取手續費 發布:2025-06-23 11:01:42 瀏覽:309
網易區塊鏈邀請碼貼吧 發布:2025-06-23 10:57:15 瀏覽:522
比特幣收款地址能篡改嗎 發布:2025-06-23 10:52:53 瀏覽:805
區塊鏈領域股票 發布:2025-06-23 10:50:43 瀏覽:653
比特幣今日財經 發布:2025-06-23 10:50:33 瀏覽:661
開發區塊鏈多少錢 發布:2025-06-23 10:47:43 瀏覽:541