代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
CSharp
】
让程序只保证一个进程的类
作者:
zgke
/ 发布于
2014/7/29
/
945
使用方法在Program.cs里的Main里调用就好了 LoadProcess.StarPoint()第1个参数是用来给已启动的进程发送的消息.. [STAThread] static void Main(string[] args) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); if (LoadProcess.StarPoint("哈哈", true)) { Form2 _Form=new Form2(); LoadProcess.LoadProcessMessage _Load = new LoadProcess.LoadProcessMessage(_Form.Handle); _Load.LoadMessage += new LoadProcess.LoadProcessMessage.GetMessage(_Load_LoadMessage); Application.Run(_Form); } else { } } static void _Load_LoadMessage(string Text) { Application.OpenForms[0].Text = Text; } 下面是全部代码 using System; using System.Collections.Generic; using System.Text; using System.Runtime.InteropServices; using System.Windows.Forms; using System.Diagnostics; namespace Zgke.SysInfo { /// <summary> /// 只能运行一个的程序 /// zgke@sina.com /// qq:116149 /// </summary> public class LoadProcess { /// <summary> /// 检查当前进程是否已存在 /// </summary> /// <param name="p_Message">发送进程消息</param> /// <param name="p_IsPath">通过路径判断 false是通过进程名判断</param> /// <returns>true不存在 false存在</returns> public static bool StarPoint(string p_Message, bool p_IsPath) { Process _Process = Process.GetCurrentProcess(); Process[] _ProcessList = Process.GetProcessesByName(_Process.ProcessName); int _ProcessInst = 0; IntPtr _ProcessMainWindowHandle = IntPtr.Zero; if (p_IsPath) { for (int i = 0; i != _ProcessList.Length; i++) { if (_ProcessList[i].MainModule.FileName == _Process.MainModule.FileName) _ProcessInst++; if (_ProcessList[i].Id != _Process.Id) _ProcessMainWindowHandle = _ProcessList[i].MainWindowHandle; } } else { _ProcessInst = _ProcessList.Length; } if (_ProcessInst == 1) { return true; } else { if (p_Message != null) SendMessage(p_Message, _ProcessMainWindowHandle); return false; } } /// <summary> /// 发送消息 /// </summary> /// <param name="Message">发送消息</param> /// <param name="p_MainIntPtr">主窗体</param> private static void SendMessage(string Message, IntPtr p_MainIntPtr) { byte[] _Bytes = System.Text.Encoding.Default.GetBytes(Message); COPYDATASTRUCT _Data = new COPYDATASTRUCT(); _Data.dwData = new IntPtr(100); _Data.lpData = Message; _Data.cbData = _Bytes.Length + 1; SendMessage(p_MainIntPtr, 0x004A, 0, ref _Data); } /// <summary> /// 获取消息 /// </summary> public class LoadProcessMessage : NativeWindow { public LoadProcessMessage(IntPtr p_MainWindowHandle) { base.AssignHandle(p_MainWindowHandle); } public delegate void GetMessage(string Text); public event GetMessage LoadMessage; protected override void WndProc(ref Message m) { if (m.Msg == 0x004A) { if (LoadMessage != null) { COPYDATASTRUCT _Data = new COPYDATASTRUCT(); Type _DataType = _Data.GetType(); _Data = (COPYDATASTRUCT)m.GetLParam(_DataType); LoadMessage(_Data.lpData); } } base.WndProc(ref m); } } /// <summary> /// 消息 /// </summary> public struct COPYDATASTRUCT { /// <summary> /// 句柄 (IntPtr) 100 /// </summary> public IntPtr dwData; /// <summary> /// 数据大小 是byte的大小 /// </summary> public int cbData; /// <summary> /// 数据 /// </summary> [MarshalAs(UnmanagedType.LPStr)] public string lpData; } [DllImport("user32.dll", CharSet = CharSet.Auto)] public static extern int SendMessage(IntPtr hwnd, int wMsg, int wParam, ref COPYDATASTRUCT copyData); } }
试试其它关键字
让程序只保证一个进程的类
同语言下
.
文件IO 操作类库
.
Check图片类型[JPEG(.jpg 、.jpeg),TIF,GIF,BMP,PNG,P
.
机器名和IP取得(IPV4 IPV6)
.
Tiff转换Bitmap
.
linqHelper
.
MadieHelper.cs
.
RegHelper.cs
.
如果关闭一个窗体后激活另一个窗体的事件或方法
.
创建日志通用类
.
串口辅助开发类
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
zgke
贡献的其它代码
(
46
)
.
让程序只保证一个进程的类
.
获取PictureBox的SizeMode为Zoom图形的大小
.
获取RICHTEXTBOX所有图形的位置和大小
.
实现系统热键盘注册的类.
.
操作CUR的类
.
读写 Photoshop PSD文件 操作类
.
获取系统鼠标指针
.
隐藏滚动条
.
实现BCD码
.
获取EXCEL所有表名
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3