Programcs
using System;
using SystemWindowsForms;
namespace SMS
{
static class Program
{
//private static SystemThreadingMutex mutex;
public static SystemThreadingMutex Run;
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
bool noRun = false;
Run = new SystemThreadingMutex(true, "SmsProgram", out noRun);
//检测是否已经运行
if (noRun)
{
RunReleaseMutex();
ApplicationEnableVisualStyles();
ApplicationSetCompatibleTextRenderingDefault(false);
//创建登录窗体的实例
FormLogin fml = new FormLogin();
//设置在屏幕中央显示
fmlStartPosition = FormStartPositionCenterScreen;
//启动程序
ApplicationRun(fml); ;
}
else
{
MessageBoxShow("程序已运行!", "提示", MessageBoxButtonsOK, MessageBoxIconInformation);
ApplicationExit();
}
}
}
}
获取当前屏幕分辨率->获取当前窗口大小->计算如果居中的话当前窗口的位置->给当前窗口位置赋值
楼主应该是设置了最大的尺寸。下面的代码在最大化的事件里面添加上就OK了。方法挺笨的,不过可以实现,代码如下,测试通过。
int height = SystemWindowsFormsSystemInformationWorkingAreaHeight;
int width = SystemWindowsFormsSystemInformationWorkingAreaWidth;
int formheight = thisSizeHeight;
int formwidth = thisSizeWidth;
int newformx = width / 2 - formwidth / 2;
int newformy = height / 2 - formheight / 2;
thisSetDesktopLocation(newformx, newformy);
用C#创建Windows服务的步骤:
1创建Windows Service项目
从Visual C# 工程中选取 Windows 服务(Windows Service)选项,给工程一个新文件名,然后点击 确定。
2向服务中函数功能实现
OnStart函数在启动服务时执行,OnStop函数在停止服务时执行。在这里,当启动和停止服务时,向一个文本文件中写入一些文字信息,代码如下:
using System;
using SystemCollectionsGeneric;
using SystemComponentModel;
using SystemData;
using SystemDiagnostics;
using SystemIO;
using SystemLinq;
using SystemServiceProcess;
using SystemText;
using SystemThreadingTasks;
namespace MyService
{
public partial class Service1 : ServiceBase
{
public Service1()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
FileStream fs = new FileStream(@"d:\xxtxt", FileModeOpenOrCreate, FileAccessWrite);
StreamWriter sw = new StreamWriter(fs);
swBaseStreamSeek(0, SeekOriginEnd);
swWriteLine("WindowsService: Service Started" + DateTimeNowToString() + "\n");
swFlush();
swClose();
fsClose();
}
//protected override void OnContinue()
//{
// baseOnContinue();
//}
//protected override void OnPause()
//{
// baseOnPause(); // father class method inherit
//}
//protected override void OnShutdown()
//{
// baseOnShutdown();
//}
protected override void OnStop()
{
FileStream fs = new FileStream(@"d:\xxtxt", FileModeOpenOrCreate, FileAccessWrite);
StreamWriter sw = new StreamWriter(fs);
swBaseStreamSeek(0, SeekOriginEnd);
swWriteLine("WindowsService: Service Stopped" + DateTimeNowToString() + "\n");
swFlush();
swClose();
fsClose();
}
}
}
4回到设计窗口点右键选择-添加安装程序 -生成serviceInstaller1和 serviceProcessInstaller1两个组件
把serviceInstaller1的属性ServiceName改写为你的服务程序名,并把启动模 式设置为AUTOMATIC
把serviceProcessInstaller1的属性account改写为 LocalSystem
5编译链接生成服务程序
通过从生成菜单中选择生成来生成项目。
6安装服务
用net framework工具INSTALLUTIL安装服务程序即可。
用项目的输出作为参数,从命令行运行 InstallUtilexe。在命令行中输入下列代码:
installutil yourprojectexe
Hint: a windows service must first be installed using installutilexe and then started with the serviceExplorer, windows Services Administrative tool or the NET START command
7卸载服务
用项目的输出作为参数,从命令行运行 InstallUtilexe。
installutil /u yourprojectexe
以上就是关于.net C#如何保证打开winform程序唯一性全部的内容,包括:.net C#如何保证打开winform程序唯一性、winform 程序 直接打开时 窗口大小正好 可最大化后就停靠在左上角了 能不能最大化后还是居中呢、用C#winform程序开启windows服务 怎么做等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)