因為要在wince上面開發乙個系統,監測資料。長時間執行下去容易導致宕機。所以設定定時重啟。認真分析與查閱相關資料後,發現下面幾種方法:
一、使用setsystempowerstate,通過測試後發現該方法重啟的效果並不理想,有點像windows的登出而不是斷電重啟。
#ifndef power_state_reset
#define power_state_reset dword(0x00800000)
#endif
typedef
bool
(*setsystempowerstate)(
lpcwstr
psstate,
dword
stateflags,
dword
options
);
//在函式中呼叫如下:
hinstance
hmodule = loadlibrary(_t(
"coredll.dll"
));
setsystempowerstate f = (setsystempowerstate)::getprocaddress(hmodule, text(
"setsystempowerstate"
));
f(null, power_state_reset, 0);
::freelibrary(hmodule);
二、使用看門狗,因為看門狗必須定時餵食,所以我在呼叫時不給它餵食就會造成系統重啟。我用的emd9263的板子,重啟**如下:
#define at91sam9263_enable_watchdog 2400
#define at91sam9263_disable_watchdog 2401
#define at91sam9263_clear_watchdog 2402
#define file_device_datalink 0x00000005
#define method_buffered 0
#define file_write_access ( 0x0002 ) // file & pipe
#define ctl_code( devicetype, function, method, access ) ( \
((devicetype) << 16) | ((access) << 14) | ((function) << 2) | (method) \
)
#define ioctl_enable_watchdog ctl_code(file_device_datalink, at91sam9263_enable_watchdog, method_buffered, file_write_access)
#define ioctl_disable_watchdog ctl_code(file_device_datalink, at91sam9263_disable_watchdog, method_buffered, file_write_access)
#define ioctl_clear_watchdog ctl_code(file_device_datalink, at91sam9263_clear_watchdog, method_buffered, file_write_access)
//呼叫如下:
handle
hfilewatchdog= createfile(_t(
"dog1:"
),
generic_read | generic_write,
0,
null,
open_existing,
file_attribute_normal,
null);
if
(hfilewatchdog != invalid_handle_value)
}
在實際運用中,我用的是第二種方法。第一種方法可以適當使用。
WinCE下重新設定IP位址無需重新啟動
include bool setipaddress cstring m strip,cstring m strmask,cstring m strgateway get list of adapter names if deviceiocontrol m hfilehandle,ioctl ndis...
停止流程重新啟動
在fix平台的使用中,有部分客戶會提出把已經停止的流程再重新啟動的需求 針對這一需求,其實使用fix平台解決非常的簡單,只需要做相關的配置即可實現 直接修改sys inst tasks表中對應流程例項資料的task status欄位的值為1 順便附註一下task status欄位配置各值的含義 ta...
VC實現程式重新啟動
重啟程式 如下 process information info startupinfo startup char szpath 128 char szcmdline bool bsucc createprocess szpath,szcmdline,null,null,false,normal p...