專案需要用到口袋電腦,但口袋電腦的電池容量小,經常會沒電導致系統時間不准;
實現要求,安卓pad和pc通過區域網(wifi)連線動態設定電腦端的時間。
android端 - 通過socket以及tcp協議和mfc端通訊(send篇);
android端 - 通過socket以及tcp協議和mfc端通訊(receive篇);
安卓間通過socket在區域網傳輸檔案;
如果僅僅是自定義修改時間,可以用 bat 檔案,**如下,可在任意位置雙擊執行,bug在哪呢,雙擊執行可以,但是 vc 呼叫卻不能執行!;這樣的話,如果可以操作pc,那我直接在設定裡設定它不香嗎,幹得兒要用 bat ?顯得我的屌比較大嗎?
@echo off
>nul 2
>&1
"%systemroot%\system32\cacls.exe"
"%systemroot%\system32\config\system"
if'%errorlevel%' neq '0'
(goto uacprompt
)else
(goto gotadmin )
:uacprompt
echo set uac = createobject^(^
)>
"%temp%\getadmin.vbs"
echo uac.shellexecute "%~s0",""
,"","runas",1
>>
"%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /b
:gotadmin
if exist "%temp%\getadmin.vbs"
( del "%temp%\getadmin.vbs"
)date 2018-08
-08time 20:18
:08
try
catch
(ioexception e)
char szrecvmsg[
1024]=
;m_socket1.
receive
(szrecvmsg,
1024);
cstring strreceive ="";
strreceive =
(cstring)szrecvmsg;
cstring receiveddate ="";
cstring receivedtime ="";
cstring measurepoints ="";
int pos1 = strreceive.
find
('$');
int pos2 = strreceive.
reversefind
('$');
if(pos1 ==-1
|| pos2 ==-1
|| pos2 == pos1)
receiveddate = strreceive.
left
(pos1)
;measurepoints = strreceive.
mid(pos2 +1)
;sscanf
(strreceive,
"%*[^$]$%[^$]"
, receivedtime)
;while
(true
)
方法一:具體指定 int 、long 型資料,
systemtime curr_st;
//可行
getlocaltime
(&curr_st)
;curr_st.wyear =
2006
;curr_st.wmonth =12;
curr_st.wday =1;
curr_st.whour =3;
curr_st.wminute =33;
curr_st.wsecond =59;
curr_st.wmilliseconds =
999;
setlocaltime
(&curr_st)
;
方法二
coledatetime tm;
//可行
coledatetimespan ts;
//可行
tm.parsedatetime
("2007-11-24 8:00:00");
//可行
8, 0, -14); //用於動態調正時間,幾時幾分幾秒
tm +
= ts;
//可行
systemtime st;
//可行
tm.getassystemtime
(st)
;//可行
setlocaltime
(&st)
;//可行
通過指定 string 是可以實現的!包括通過 +「 」+ 也通過!(以下**是靜態**,把困難問題簡單化、具體化)
coledatetime tm;
cstring date =
"2007-11-24"
;cstring time =
"8:00:00"
;cstring newdatetime = date +
" "+ time;
ofstream ofile;
//定義輸出檔案
ofile.
open
("c:\\users\\administrator\\desktop\\receivednewtime.txt");
ofile << newdatetime << endl;
ofile.
close()
;tm.
parsedatetime
(newdatetime)
;systemtime st;
tm.getassystemtime
(st)
;setlocaltime
(&st)
;
通過解析字串也成功了!坑,在於要給date、time初始化!不能僅僅是給 「」(接收解析資料,並利用資料進行時間校準)
coledatetime tm;
cstring receivedstr =
"2016-09-13$17:25:17$3"
;cstring date =
"2020-01-01"
;cstring time =
"08:08:08"
;cstring measurepoints ="";
int pos1 = receivedstr.
find
('$');
int pos2 = receivedstr.
reversefind
('$');
date = receivedstr.
left
(pos1)
;//measurepoints = strreceive.mid(pos2 + 1);
measurepoints = receivedstr.
right
(receivedstr.
getlength()
-1- pos2)
;sscanf
(receivedstr,
"%*[^$]$%[^$]"
, time)
;date +
=" "
;cstring newdatetime = date + time;
ofstream ofile;
//定義輸出檔案
ofile.
open
("c:\\users\\administrator\\desktop\\2016newtime.txt");
ofile << date << endl;
ofile << time << endl;
ofile.
close()
;tm.
parsedatetime
(newdatetime)
;ts.
setdatetimespan(0
,0,0
,2);
tm +
= ts;
systemtime st;
tm.getassystemtime
(st)
;setlocaltime
(&st)
;
pc端軟體要以管理員身份執行;
pc端開啟vs編譯也同樣需要管理員執行;
遇到最大的坑!c++裡面的時間問題!parsedatetime(); 引數是 字串,但不是完全的 string,對於引數中有 空格的,其實他可以解析,但是這個用於拼接的源資料,必須!事先給其賦值!絕不能僅僅給個 「」;另外,其字串通過:str3 = str1 + " " + str2;是沒有錯的!即使c++看見空格就返回;
日期、字串轉換:
.exe 要在屬性-相容性中寫上以管理員身份執行。
安卓手機通過wifi變成電腦的外接音箱
昨天音箱線不小心被我扯斷了,在新音箱沒有到來之前只能默默尋求別的替代方法了,突發奇想,我的手機能不能當音箱那?網上搜搜還真可以 原理上是可以的,電腦和手機都安裝特定的軟體,通過wifi進行點對點的音訊流交換。理論上而言,你能想到的,別人也可以想到。所以上網搜尋了一下,還真的有這樣的軟體,並且是免費的...
安卓手機用WIFI與電腦共享檔案
大家在往手機裡傳檔案的時候是不是還在使用原始的資料線,要不就是使用藍芽進行傳輸,資料線傳輸受到線路和介面的影響,也不是很方便,而且。資料線連線長期使用,易使手機資料口損壞。藍芽傳輸又相對較為麻煩,電腦要有藍芽模組,還需要在電腦端安裝第三方軟體與手機同步,大多電腦小白不容易操作。有沒有更好的一種方法在...
給電腦系統備份時的注意事項
當你的電腦隨著使用時間變長,因為各類程式的安裝,也許會出現各式各樣的系統問題,如系統常常崩潰,病毒突然來襲等等。給電腦系統備份是必定的乙個選擇。那麼在進行系統備份之前我們應該注意哪些事項呢?首先假設你選擇系統自帶的備份工具。那麼請確定你自己全然可以自行操作,以免誤操作導致電腦不能使用。能夠對你的系統...