#define IdYes 1002
#define IdNo 1003
#define IdStatic 1004
#define IdTimer 1005
#define Width 640
#define Height 480
#define Tick 2000
#include<windowsh>
int x,y;
RECT rdesk;
HINSTANCE hinst;
HWND hyes,hno;
BOOL quit=FALSE;
LRESULT CALLBACK WndProc(HWND hwnd,UINT Message,WPARAM wParam,LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
RECT rclient;
HBRUSH hbrbkgnd;
static COLORREF c;
static BYTE r,g,b;
switch(Message)
{
case WM_TIMER:
if(IdTimer==LOWORD(wParam))
{
r=(BYTE)(rand()%256);
g=(BYTE)(rand()%256);
b=(BYTE)(rand()%256);
c=RGB(r,g,b);
InvalidateRect(hwnd,NULL,TRUE);
UpdateWindow(hwnd);
}
break;
case WM_PAINT:
hdc=BeginPaint(hwnd,&ps);
hbrbkgnd=CreateSolidBrush(c);
SelectObject(hdc,hbrbkgnd);
GetClientRect(hwnd,&rclient);
FillRect(hdc,&rclient,hbrbkgnd);
DeleteObject(hbrbkgnd);
EndPaint(hwnd,&ps);
break;
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IdYes:
quit=TRUE;
MessageBox(hwnd,TEXT("回答正确,太太太好了!"),TEXT("宝贝"),MB_ICONEXCLAMATION|MB_OK);
SendMessage(hwnd,WM_CLOSE,0,0);
break;
case IdNo:
MessageBox(hwnd,TEXT("回答错误哦,我很生气呢!"),TEXT("宝贝"),MB_ICONEXCLAMATION|MB_OK);
break;
}
break;
case WM_SIZE:
case WM_MOVE:
SetWindowPos(hwnd,HWND_TOPMOST,x,y,Width,Height,SWP_SHOWWINDOW);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
case WM_CLOSE:
if(quit)
{
KillTimer(hwnd,IdTimer);
DestroyWindow(hwnd);
}
break;
case WM_CREATE:
CreateWindow(TEXT("Static"),
TEXT("请回答:做我女朋友好吗?"),
WS_CHILD|WS_VISIBLE|SS_CENTER,
200,
200,
240,
20,
hwnd,
(HMENU)IdStatic,
hinst,
NULL
);
hyes=CreateWindow(TEXT("Button"),
TEXT("好"),
WS_CHILD|WS_VISIBLE|BS_CENTER,
270,
230,
45,
20,
hwnd,
(HMENU)IdYes,
hinst,
NULL
);
hno=CreateWindow(TEXT("Button"),
TEXT("不好"),
WS_CHILD|WS_VISIBLE|BS_CENTER,
325,
230,
45,
20,
hwnd,
(HMENU)IdNo,
hinst,
NULL
);
SetTimer(hwnd,IdTimer,Tick,NULL);
break;
default:
return DefWindowProc(hwnd,Message,wParam,lParam);
}
return 0;
}
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
WNDCLASSEX wc;
HWND hwnd;
MSG msg;
hinst=hInstance;
srand(time(NULL));
memset(&wc,0,sizeof(wc));
wccbSize=sizeof(WNDCLASSEX);
wclpfnWndProc=WndProc;
wchInstance=hInstance;
wchCursor=LoadCursor(NULL,IDC_ARROW);
wchbrBackground=(HBRUSH)(COLOR_WINDOW+1);
wclpszClassName=TEXT("WindowClass");
wchIcon=LoadIcon(NULL,IDI_APPLICATION);
wchIconSm=LoadIcon(NULL,IDI_APPLICATION);
if(!RegisterClassEx(&wc))
{
MessageBox(NULL,TEXT("窗口注册失败!"),TEXT("错误"),MB_ICONEXCLAMATION|MB_OK);
return 0;
}
GetWindowRect(GetDesktopWindow(),&rdesk);
x=(rdeskright-Width)/2;
y=(rdeskbottom-Height)/2,
hwnd = CreateWindowEx(WS_EX_TOPMOST,
TEXT("WindowClass"),
TEXT("I Love You"),
WS_THICKFRAME|WS_VISIBLE,
x,
y,
Width,
Height,
NULL,NULL,hInstance,NULL);
if(NULL==hwnd)
{
MessageBox(NULL,TEXT("窗口创建失败!"),TEXT("错误!"),MB_ICONEXCLAMATION|MB_OK);
return 0;
}
while(GetMessage(&msg,NULL,0,0)>0)
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msgwParam;
}
截图
你需要的是编译器,比如TurboC,MSC,或者VC等等,你写的C代码只是源程序而已,需要经过C编译器编译成可执行的EXE文件。C编译器有很多,上面提到的就是比较常用的,至于编译器的使用,你得另查一查使用手册,一般而言,编译器都带有IDE的集成编程环境,可以作为程序的编辑器(别把编辑器和编译器弄混了,编辑器就是可以输入源代码的软件工具,如记事本就是一个最简单的编辑器,编译器就是用于编译特定语言源代码的软件),然后一般都有一个编译(Compile)按钮(或者编译命令),编译时编译器会检查你的源代码是否有语法错误,如果没有错误,还会使用链接(Link)工具将你的程序链接成为可执行的Exe文件,至此,你的源程序就成了可运行的程序了。运行EXE文件是不用源代码的,它与编写程序的语言无关,各种编程语言写成的源程序经过该编程语言的编译器可以被编译成在计算机上可以被运行的执行程序。
既然是PYTHON程序员,肯定信仰PYTHON彩蛋中的话。简洁大于复杂。
所以你要简洁一点。又要给点惊喜。如果你是男的的话,就买好鲜花,订好午餐。在她的计算机写一个python脚本。写下你的表白,然后设置成开机运行(称她不注意。),在脚本中计算好时间 ,设计好效果。然后水到渠成。
如果你是女的 向男的表白。那最好的方法就是直接跟他说就行了。现在这年代 有个媳妇就不错了。。还挑什么啊。
追女孩最重要的是什么?
相貌平平,追女生,重要的是什么?是坚持,记得以前有这样一件事,男生喜欢一个女孩,坚持追了29天,到第30天的时候,男孩没有再像往常那样出现,也正是这天,女孩心里想,如果今天还来了,我就答疑他,就这样,错过将是错过;当然在恋爱中也会有很多因素,如果没有让女生倒追的资本,
在这个人人都在秀情商的时候,做为程序员我们也要操作起来!散发我们的荷尔蒙!今天就大家奉献上最强表白程序!此程序结合数据抓取 + 微信自动发消息 + 定时任务,实现一个能每天自动定时给你心爱的 ta 发送:你们相识相恋天数 + 情话 + 我爱你的。具体的消息如下。
每天要发送给她的信息如下:
这里需要填写的第一个字段是 ta 的称呼,inLoveDays 为你们相识相恋的天数。
love_word 是每天为 ta 精心准备情话内容,当然如果你的文笔好也可以自己写
最后也是最重要的!每天不尽相同「我爱你」的!
实现思路
本次程序运行的环境是 windows10 + Python 36,此次主要用到的库有 selenium、itchat、request。程序主要分为两部分第一数据的抓取,一些情话信息和信息。另一部就是利用 itchat 自动发送消息给你的好友。
情话信息
如果对你的文笔有信心,可以自己写每天的情话。当然大部分人的文笔跟我一样的,那我们就利用网络上的情话啦!
表白资源
为了配合此次表白程序,我专门去找了些带有「我爱你」的资源。通过一些贴吧的贴子,我们就可以获取到大量的这样资源。
程序源码
此次表白程序主要有 5 个函数
crawl_Love_words()
此函数通过 selenium + xpath 来抓取情话网站的资源,并存入到当前目录下的「love_wordtxt」文件。
crawl_love_image()
此函数用来爬取贴吧带有「我爱你」的资源,通过 request + re 来实现。代码并不复杂,在正则表达式那也简单的写了一个,用来匹配当前也所有的资源。
mkdir(path)
此函数用来在当前目录下创建一个新的文件夹,以便存储相应的数据。
send_new()
此函数通过利用 itchat 库,实现给你的微信好友自动发送消息。在这个函数中我利用 datetime 来计算你们之间相识相恋的时间。并且在登录的时候添加了一个「hotReload=True」,这样你就可以不用每次运行程序的时候都要登录。关于 itchat 更多的操作,大家可以去网上查找相应的资料。
main()
main() 函数就是我们主逻辑函数,程序运行的逻辑顺序就是在这个函数里规定的。在 main() 里我首先判断下当前路径下是否有「love_wordtxt」文件,如果有则提示相应的信息,没有的话才去执 crawl_Love_words() 函数,去网上抓取一些情话数据。
其次再判断下当前目录下是否有「img」文件夹,用来判断我们是否有资源,没有则执行 crawl_love_image() 来抓取贴吧上的资源。
最后我们所需的数据都已准备完善,则调用 send_news() 函数,整理下要发送的数据格式,然后自动给你的 ta 发送消息。
定时任务
每天定时发送我主要是用 while True 简单的实现,通过判断当前的时间是否是你所需要发送的时间,来达到每天定时发送。
表白程序使用教程
首先你把相应的源码下载下来,后台回复「表白」即可获取。其次把相应的库先事先安装好,随后运行程序则会显示一个微信网页登录的二维码,扫描登录即可。
欢迎分享,转载请注明来源:表白网
评论列表(0条)