(34)uniGUI for Cbuilder下如何自动退出和启动
(中行雷威2019.12.5)
(同一个世界,同一个梦想,交流学习C++Builder and Delphi XE10,传承c++builder and Delphi的魅力!欢迎各地朋友加入我的QQ群484979943、299497712,860634510,进群密码“BCB”,同时也请将该群号广为宣传,希望能够广集各方高手,共同进步。如需下载开发工具及源代码请加入我的QQ群。)
【阅读倡议】
1、有问题请留言;
2、没问题请点赞;
3、看连载请加群;
4、下源码请加群;
【开发工具】
1、C++Builder and Delphi 10.3.3
2、FMSoft_uniGUI_Complete_Professional_1.70.0.1514(正版)
本人主笔的国内第一本uniGUI教学案例代码已诞生,分为cbuilder和delphi两个版本,买代码送手册,需要的朋友可以加入我的QQ技术交流群484979943、299497712,860634510给我(群主)留言。资料简介:
https://www.meipian.cn/20b86ayo?share_from=others&user_id=64168117&uuid=a8a75af8c0cc31e6a21b8a79a2b07398&share_depth=1&first_share_uid=64168117&utm_medium=meipian_android&share_user_mpuuid=94b70e99e8b6986c71b270a9883befb2
开发项目时需要频繁执行编译和运行,但是每次编译前都得先手动停止已经运行的程序,然后重新打开浏览器输入测试地址,十分麻烦,为了提高效率最好能够执行编译时自动停止原来的程序,然后自动运行程序,设置如下:
- 自动停止
操作Project->Options菜单,在Building->BuildEvents->Pre-build events->Commands中添加命令配置,让项目在编译前执行一个命令,杀掉已有进程,命令配置如下:
taskkill /f /im $(OUTPUTFILENAME) 2>1 ||exit /B 0
备注:该方法在delphi很好用,但是在cbuilder下表现不稳定,有时候不好用。
- 自动启动
在项目的主文件HelloWorld.dpr里添加几行代码,引用几个头文件,并且调用shellExecute打开浏览器访问项目的URL地址,如下所示:
//---------------------------------------------------------------------------
#include <vcl.h>
#include <UniGUIVars.hpp>
#include "windows.hpp"
#include "ShellAPI.hpp"
#include "SysUtils.hpp"
USEFORM("ServerModule.cpp", UniServerModule); /* TUniGUIServerModule: File Type */
USEFORM("MainModule.cpp", UniMainModule); /* TUniGUIMainModule: File Type */
USEFORM("Main.cpp", MainForm); /* TUniForm: File Type */
//---------------------------------------------------------------------------
#ifdef _WIN64
#pragma link "UniGUIVars.o"
#else
#pragma link "UniGUIVars.obj"
#endif
#pragma scrumBoard
//---------------------------------------------------------------------------
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
try
{
Forms::Application->Initialize();
Uniguivars::CreateServerModule(__classid(TUniServerModule));
//
ShellExecute(Application->Handle,"Open","http://127.0.0.1:8077",NULL,NULL,SW_SHOW);
//
Forms::Application->Run();
}
catch (Exception &exception)
{
}
return 0;
}