安卓通過WIFI修改電腦系統時間

2021-10-24 06:32:58 字數 4666 閱讀 7007

專案需要用到口袋電腦,但口袋電腦的電池容量小,經常會沒電導致系統時間不准;

實現要求,安卓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與電腦共享檔案

大家在往手機裡傳檔案的時候是不是還在使用原始的資料線,要不就是使用藍芽進行傳輸,資料線傳輸受到線路和介面的影響,也不是很方便,而且。資料線連線長期使用,易使手機資料口損壞。藍芽傳輸又相對較為麻煩,電腦要有藍芽模組,還需要在電腦端安裝第三方軟體與手機同步,大多電腦小白不容易操作。有沒有更好的一種方法在...

給電腦系統備份時的注意事項

當你的電腦隨著使用時間變長,因為各類程式的安裝,也許會出現各式各樣的系統問題,如系統常常崩潰,病毒突然來襲等等。給電腦系統備份是必定的乙個選擇。那麼在進行系統備份之前我們應該注意哪些事項呢?首先假設你選擇系統自帶的備份工具。那麼請確定你自己全然可以自行操作,以免誤操作導致電腦不能使用。能夠對你的系統...