AutoHotKey

부팅 완료 체크

by 디케 posted Feb 09, 2011
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

부팅 완료 체크


autohotkey.pe.kr의  글쓴이 : 운장 님께서 만드신 소스

부팅후 cpu점유율이 3초동안 5%이하를 유지하면 부팅완료로 인식
시작프로그램 폴더에 넣고 부팅하시면 보실수 있습니다.


컴퓨터 업글후 완전부팅 시간을 측정해보고자 만들어보았는데요
예전에 느린 컴퓨터에선 부팅후 인터넷 일찍눌렀다가 오랫동안 고생했던걸 생각해보면...
이게 그때 있었으면 좋지 않았을까 싶네요..




<--------------------------------------------- AHK 스크립트 내용 --------------------------------------------->
#SingleInstance, Force
StartTime := A_TickCount
menu, tray, NoStandard 
menu, tray, DeleteAll
Menu, tray, add, 종료

fileread,used,C:\boot_memory_percent.txt
if used=
 used=모름
else
 used=%used%`%

fileread,used_time,C:\boot_time.txt
if used_time=
 used_time=모름
else
 used_time=%used_time%초


Gui -0x80000

Gui, 1:Add, Text, x10 y10 w180 h20 center, -현재 사용율-

Gui, 1:Add, Text, x10 y30 w90 h15 right,CPU 사용율 :
Gui, 1:Add, Text, x10 y50 w90 h15 right,메모리 사용율 :
Gui, 1:Add, Text, x10 y70 w90 h15 right,경과시간 :

Gui, 1:Add, Text, x100 y30 w90 h15 right vnow,
Gui, 1:Add, Text, x100 y50 w90 h15 right vnow2,
Gui, 1:Add, Text, x100 y70 w90 h15 right vnow3,

Gui, 1:Add, Text, x70 y100 w80 h20 cred left vlast,
Gui, 1:Add, Button, x75 y125 w50 h20 g확인 Disabled +default, 확인

Gui, 1:Add, Text, x10 y180 w170 h20 center, -이전부팅 정보-
Gui, 1:Add, Text, x10 y200 w90 h15 right,메모리 사용율 :
Gui, 1:Add, Text, x100 y200 w90 h15 cblue right,%used%
Gui, 1:Add, Text, x10 y220 w90 h15 right,부팅소요시간 :
Gui, 1:Add, Text, x100 y220 w90 h15 cblue right,%used_time%
Gui, 1:Show, w200 h240 ,부팅완료 체크 -W-
SetFormat, Float, 0.1

cpu_now:=GetSystemTimes()
GuiControl,text,now,%cpu_now%
sleep 1000

cnt=0
Loop
{


cpu_now:=GetSystemTimes()

GuiControl,text,now,%cpu_now% `%

if (cpu_now<=5)
 cnt++
else
 cnt=0

mem_now:=GetMemoryPer()
GuiControl,text,now2,%mem_now%`%/%used%

SetFormat, Float, 0.0
ElapsedTime := (A_TickCount - StartTime)/1000

GuiControl,text,now3,%ElapsedTime%초/%used_time%
SetFormat, Float, 0.1

if (cnt=3)
 {
 GuiControl,text,last,부팅 완료!
 GuiControl, Enable,button1
 Gui, Font, cred
 GuiControl,Font,now2
 GuiControl,text,now2,%mem_now%`%/%used%
 GuiControl,Font,now3
 GuiControl,text,now3,%ElapsedTime%초/%used_time%
 filedelete,C:\boot_memory_percent.txt
 fileappend,%mem_now%,C:\boot_memory_percent.txt
 filedelete,C:\boot_time.txt
 fileappend,%ElapsedTime%,C:\boot_time.txt
 sleep 2000
 exitapp
 }
if (mod(a_index,3)=0)
 GuiControl,text,last,부팅중...
else if (mod(a_index,3)=1)
 GuiControl,text,last,부팅중..
else if (mod(a_index,3)=2)
 GuiControl,text,last,부팅중.
sleep 1000
}

Return

 


확인:
종료:
exitapp
return

 

GetSystemTimes()    ; Total CPU Load
{
   Static oldIdleTime, oldKrnlTime, oldUserTime
   Static newIdleTime, newKrnlTime, newUserTime

   oldIdleTime := newIdleTime
   oldKrnlTime := newKrnlTime
   oldUserTime := newUserTime

   DllCall("GetSystemTimes", "int64P", newIdleTime, "int64P", newKrnlTime, "int64P", newUserTime)
   Return (1 - (newIdleTime-oldIdleTime)/(newKrnlTime-oldKrnlTime + newUserTime-oldUserTime)) * 100
}

GetMemoryPer()
{
VarSetCapacity(memorystatus, 4 )
DllCall("kernel32.dll\GlobalMemoryStatus", "uint",&memorystatus) 
mem := *( &memorystatus + 4 )
return mem

}