首页
统计
关于
骗子曝光
Search
1
电脑微信企业微信双开/多开的方法(这可能是最简单粗暴高效的解决方案)
1,611 阅读
2
网址自动推送百度API源码(PHP源码)(百度php推送源代码)
658 阅读
3
宝塔面板7.7.0版本原版安装+升级脚本(宝塔面板7.6.0破解版)
647 阅读
4
宝塔LINUX企业永久付费破解版(宝塔企业版破解版)所有专业版企业版插件免费使用!
515 阅读
5
宝塔面板插件破解方法(宝塔面板插件破解方法教程)
451 阅读
闲聊
骗子曝光
线报
WinForm
WinForm成品
WinForm源码
WinForm代码段
WEB
HTML代码
PHP代码
网站文章
网站源码
建站程序
Typecho
Typecho模板
Typecho插件
服务器运维面板
宝塔面板
网络安全
软件工具
技术教程
域名
自营程序
短链网DLW.IM
登录
Search
标签搜索
宝塔面板
BT
源码
PHP
Telegram
百度
Typecho
CDN
谷歌翻译
nginx
IP
宝塔面板企业版免授权安装脚本
宝塔面板破解版
子比主题
在线截图生成器
网站源码
2023最新可用dai挂网源码
阿里云域名快速转出的方法
国内服务器绕过备案详细操作教程
C#进程守护
Root
累计撰写
139
篇文章
累计收到
161
条评论
今日撰写
3
篇文章
首页
栏目
闲聊
骗子曝光
线报
WinForm
WinForm成品
WinForm源码
WinForm代码段
WEB
HTML代码
PHP代码
网站文章
网站源码
建站程序
Typecho
Typecho模板
Typecho插件
服务器运维面板
宝塔面板
网络安全
软件工具
技术教程
域名
自营程序
短链网DLW.IM
页面
统计
关于
骗子曝光
用户登录
登录
搜索到
23
篇与
WinForm
的结果
2023-03-19
Winform 程序多开
在使用应用程序的过程中,经常要求应用程序只能运行一次。如果发现重复开启,应从系统进程列表中搜索到已经开启的进程,并将该进程窗口移到最前端显示。实现过程在 Program.cs 文件的 Program 类中声明两个外部调用函数 [DllImport("User32")] private static extern bool SetForegroundWindow(IntPtr hWnd); [DllImport("User32")] private static extern bool ShowWindowAsync(IntPtr hWnd, int cmdShow);两个外部调用 User32.dll 文件中的函数,其中SetForegroundWindow 主要用于将窗体移动到最前端显示,ShowWindowAsync函数用于显示窗体。修改 main 函数内容static void Main() { bool createdNew; //是否是第一次开启程序 Mutex mutex = new Mutex(false, "Single", out createdNew); //实例化一个进程互斥变量,标记名称Single if (!createdNew) //如果多次开启了进程 { Process currentProcess = Process.GetCurrentProcess();//获取当前进程 foreach (Process process in Process.GetProcessesByName(currentProcess.ProcessName)) { //通过进程ID和程序路径获取一个已经开启的进程 if ((process.Id != currentProcess.Id) && (Assembly.GetExecutingAssembly().Location == process.MainModule.FileName)) { //获取已经开启的进程的主窗体句柄 IntPtr mainFormHandle = process.MainWindowHandle; if (mainFormHandle != IntPtr.Zero) { ShowWindowAsync(mainFormHandle, 1); //显示已经开启的进程窗口 SetForegroundWindow(mainFormHandle); //将已经开启的进程窗口移动到前端 } } } mutex.WaitOne(); mutex.ReleaseMutex(); //释放Mutex一次 //MessageBox.Show("进程已经开启"); return; } else { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new MainFrame()); } }Mutex类,该类位于System.Threading命名空间下,主要用于创建线程或进程的互斥变量。本实例创建了一个名为Single的互斥变量,在运行程序时,首先访问该互斥变量,看该变量是否已经被创建,如果已经被创建,说明已经有相同的进程正在运行。
2023年03月19日
4 阅读
0 评论
0 点赞
2023-02-21
子比主题最新可用免受权版6.9.2
此版本仅仅提供研究学习,如要使用请支持正版安装后,点击授权即可,免授权隐藏内容,请前往内页查看详情
2023年02月21日
13 阅读
0 评论
0 点赞
2023-02-02
WinForm微软推出的强大桌面程序开发技术满足开发者的多种需求
WinForm是微软公司推出的一种使用C#或VB.NET编写的桌面程序开发技术。它提供了从用户界面到数据库连接的一系列组件,为开发者提供了强大的功能,同时也是一个易于使用、稳定可靠的系统。WinForm的优势WinForm的优势在于它的易用性,它提供了一系列灵活的组件,可以快速简便地编写出一个完整的桌面程序。它还支持多种数据库,可以方便地连接和操作数据库。此外,它还支持多种语言,可以使用C#或VB.NET来编写程序,并有良好的开发环境,使得开发者可以快速、高效地开发出自己所需要的程序。WinForm的缺点WinForm的缺点在于它的性能不是很高,在大量数据处理的情况下,它的运行效率是相对较低的。此外,它的UI界面也不够灵活,对于比较复杂的UI界面,它的编写效率是较低的。WinForm的使用场景WinForm的使用场景主要是在桌面程序开发,用它来开发简单的桌面程序,效果很好。它也可以用来开发一些数据处理程序,比如数据库查询程序,因为它的连接数据库的功能很强大,而且使用起来也很方便。WinForm的维护WinForm的维护比较简单,因为它的结构非常清晰,只需要对程序的每部分进行简单的维护就可以了。当更新了一些新的功能时,也只需要更新相应的部分即可,不用担心会影响到其他部分。WinForm的安全性WinForm的安全性也很高,它使用了强大的加密技术,可以有效地防止程序被破解和攻击。此外,它也支持一些安全认证技术,可以有效地防止数据泄露,保证数据安全。总而言之,WinForm是一种强大的桌面程序开发技术,它具有易用性、稳定性、高效性、安全性等优势,可以满足开发者的大多数需求,是一种非常好的桌面程序开发技术。以上便是关于“WinForm”的相关内容,WinForm:微软推出的强大桌面程序开发技术(满足开发者的多种需求)
2023年02月02日
12 阅读
0 评论
0 点赞
2023-02-01
C# WinForm程序防止多开的方法总结
Winform启动的时候,检测是否存在同样的进程名,防止程序多开;方法1:static class Program { /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main() { Process[] processes = Process.GetProcesses(); Process currentProcess = Process.GetCurrentProcess(); bool processExist = false; foreach (Process p in processes) { if (p.ProcessName == currentProcess.ProcessName && p.Id != currentProcess.Id) { processExist = true; } } if (processExist) { Application.Exit(); } else { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } } } 方法2:static class Program { /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main() { string processName = Process.GetCurrentProcess().ProcessName; Process[] processes = Process.GetProcessesByName(processName); //如果该数组长度大于1,说明多次运行 if (processes.Length > 1) { MessageBox.Show("程序已运行,不能再次打开!"); Environment.Exit(1); } else { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } } } 利用Mutex互斥对象防止程序多开;static class Program { /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main() { bool isAppRunning = false; Mutex mutex = new Mutex(true, System.Diagnostics.Process.GetCurrentProcess().ProcessName, out isAppRunning); if (!isAppRunning) { MessageBox.Show("程序已运行,不能再次打开!"); Environment.Exit(1); } Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } }
2023年02月01日
16 阅读
0 评论
0 点赞
2023-02-01
C#实现控制Windows系统关机、重启和注销的方法:
shutdown命令的参数:shutdown.exe -s:关机 shutdown.exe -r:关机并重启 shutdown.exe -l:注销当前用户 shutdown.exe -s -t 时间:设置关机倒计时 shutdown.exe -h:休眠 shutdown.exe -t 时间:设置关机倒计时。默认值是 30 秒。 shutdown.exe -a:取消关机 shutdown.exe -f:强行关闭应用程序而没有警告 shutdown.exe -m 计算机名:控制远程计算机 shutdown.exe -i:显示“远程关机”图形用户界面,但必须是Shutdown的第一个参数 shutdown.exe -c "消息内容":输入关机对话框中的消息内容 shutdown.exe -d u:xx:yy :列出系统关闭的原因代码:u 是用户代码 ,p 是一个计划的关闭代码 ,xx 是一个主要原因代码(小于 256 的正整数) ,yy 是一个次要原因代码(小于 65536 的正整数)比如你的电脑要在12:00关机,可以选择“开始→运行”,输入“at 12:00 Shutdown -s",这样,到了12点电脑就会出现“系统关机”对话框,默认有30秒钟的倒计时并提示你保存工作。如果你想以倒计时的方式关机,可以输入 “Shutdown.exe -s -t 3600",这里表示60分钟后自动关机,“3600"代表60分钟。一键关机:1、首先在桌面的空白处单击鼠标右键,新建一个“快捷方式”。2、在创建快捷方式的“命令行”中输入以下的指令:“shutdown –s –t 0 ”。(在windows98按此输入“C:windowsRUNDLL32.EXE user,ExitWindows”。)3、按着鼠标选择“下一步”,在快捷方式的名称栏中输入“一键关机”或其他自己喜欢的名称。4、之后,你就会在桌面见到一个名为“一键关机”的快捷方式图标,在该图标上单击鼠标右键,选择“属性”,再进入“快捷方式”页,然后在“快速键一栏内随便按选一个功能键(如F1-F12)。建议大家最好选一个平时不常用的功能键,最后按确定退出即可。Windows系统通过一个名为shutdown.exe的程序来完成关机操作(位置WindowsSystem32下),一般情况下Windows系统的关机都可以由关机程序 shutdown.exe来实现的,关机的时候调用shutdown.exe。由此可知要阻止强行关机就是要取消对shutdown.exe的调用。使用C#代码实现控制Windows系统关机、重启和注销的方法,使用.NET和C#.NET,我们可以对当前PC执行关机,重启,注销操作,.NET Framework中,有一个命名空间System.Diagnostics具有所需的类和方法,从当前PC上运行.NET应用程序来执行这些操作 。一般使用System.Diagnostics.Process.Start()方法来启动shutdown.exe程序。下面是一个winform程序说明,使用按钮来执行关机,重启和注销。 //关机 和 计时关机 private void btnShutDown_Click(object sender, EventArgs e) { if (checkBox1.Checked) { if (MessageBox.Show("将要设定计划关机,是否确认操作?", "提示", MessageBoxButtons.OKCancel) == DialogResult.OK) { decimal decl = numericUpDown1.Value * + numericUpDown2.Value * + numericUpDown3.Value; string str = decl.ToString(); Process.Start("shutdown.exe", "-s -t " + str);//计时关机 } } else { if (MessageBox.Show("是否确认关机?", "提示", MessageBoxButtons.OKCancel) == DialogResult.OK) { Process.Start("shutdown.exe", "-s");//关机 //Process.Start("shutdown.exe", "-s -t xx"); } } } //重启 private void butRestar_Click(object sender, EventArgs e) { if (MessageBox.Show("是否确认重启?", "提示", MessageBoxButtons.OKCancel) == DialogResult.OK) { Process.Start("shutdown.exe", "-r");//重启 Process.Start("shutdown.exe", "-r -t 10"); } } //注销 private void butLogOff_Click(object sender, EventArgs e) { if (MessageBox.Show("是否确认注销?", "提示", MessageBoxButtons.OKCancel) == DialogResult.OK) Process.Start("shutdown.exe", "-l");//注销 }
2023年02月01日
8 阅读
0 评论
0 点赞
2023-02-01
C#Winform获取当前系统的基本信息
SystemInformation类在.net的系统信息类库中,最基本的类库是SystemInformation类,包含在System.Windows.Forms名字空间中。该类库可以帮助我们获得有关系统的基本信息;这个类中只包含了几个从System.Object类继承的公共方法,没有提供其他的方法。系统的信息可以通过这个类的公共静态成员获得,我们可以根据需要获得的信息选取合适的成员。命名空间: System.Windows.Forms 程集集: System.Window.Forms.dll 提供当前系统环境的有关信息public static class SystemInformation继承Object → SystemInformationEnvironment 类第二种方法是通过Environment 类该类提供了有关当前环境和平台的信息以及操作它们的方法;Environment 类除了提供了一些静态成员外,还提供了一些静态方法。命名空间: System 程序集: System.Runtime.dll 提供有关当前环境和平台的信息以及操作它们的方法(此类不能被继承)。public static class Environment继承Object → EnvironmentRegistryKey 类第三种方式是通过注册表查询系统信息,这是最传统的方法,也是功能最强大的方法和最复杂的方法。.net中注册表封装在RegistryKey 类 中,位于Microsoft.win32命名空间中。这个类和前两个类不同,它的公共属性我们能利用的机会很少,我们为了获得系统信息主要是使用它的OpenSubKey 方法,然而为了使用这个方法,我们必须对注册表有相当的了解才行,这也正是使用这个类获得系统信息的复杂之处。命名空间: Microsoft.Win32 程序集: Microsoft.Win32.Registry.dll 表示Windows注册表中的项级节点。此类是注册表封装。public sealed class RegistryKey : MarshalByRefobject,IDisposable继承Object → MarshalByRefobject → RegistryKey练习实例using System; using System.Windows.Forms; namespace Winform_1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { // 计算机名称 SystemInformation richTextBox1.AppendText("计算机名称: " + SystemInformation.ComputerName); // 换行 richTextBox1.AppendText(Environment.NewLine); // 计算机名称 Environment richTextBox1.AppendText("计算机名称: " + Environment.MachineName); richTextBox1.AppendText(Environment.NewLine); // 用户名称 richTextBox1.AppendText("用户名称: " + Environment.UserName); richTextBox1.AppendText(Environment.NewLine); // 平台标识 richTextBox1.AppendText("平台标识: " + Environment.OSVersion.Platform); richTextBox1.AppendText(Environment.NewLine); // 操作系统版本号 richTextBox1.AppendText("版本号: " + Environment.OSVersion.VersionString); richTextBox1.AppendText(Environment.NewLine); // 处理器个数 richTextBox1.AppendText("处理器个数: " + Environment.ProcessorCount); richTextBox1.AppendText(Environment.NewLine); // 判断操作系统位数 64位&32位 if (Environment.Is64BitOperatingSystem) { richTextBox1.AppendText("操作系统位数: 64bit."); } else { richTextBox1.AppendText("操作系统位数: 32bit."); } richTextBox1.AppendText(Environment.NewLine); // 判断网络 if (SystemInformation.Network) { richTextBox1.AppendText("网络连接: 已连接"); } else { richTextBox1.AppendText("网络连接: 未连接"); } richTextBox1.AppendText(Environment.NewLine); // 判断系统启动模式 if (SystemInformation.BootMode.ToString() == "Normal") richTextBox1.AppendText("启动模式: 正常启动"); if (SystemInformation.BootMode.ToString() == "FailSafe") richTextBox1.AppendText("启动模式: 安全启动"); if (SystemInformation.BootMode.ToString() == "FailSafeWithNework") richTextBox1.AppendText("启动方式: 通过网络服务启动"); richTextBox1.AppendText(Environment.NewLine); // 显示器数量 richTextBox1.AppendText("显示器数量: " + SystemInformation.MonitorCount); richTextBox1.AppendText(Environment.NewLine); // 显示器分辨率 richTextBox1.AppendText("显示器分辨率: " + SystemInformation.PrimaryMonitorMaximizedWindowSize.Width + " * " + SystemInformation.PrimaryMonitorMaximizedWindowSize.Height); richTextBox1.AppendText(Environment.NewLine); // 当前分辨率 richTextBox1.AppendText("主显示器当前分辨率: " + SystemInformation.PrimaryMonitorSize.Width + " * " + SystemInformation.PrimaryMonitorSize.Height); richTextBox1.AppendText(Environment.NewLine); // 鼠标按钮个数 richTextBox1.AppendText("鼠标按钮个数: " + SystemInformation.MouseButtons.ToString()); richTextBox1.AppendText(Environment.NewLine); // 鼠标速度 richTextBox1.AppendText("鼠标速度: " + SystemInformation.MouseSpeed.ToString()); richTextBox1.AppendText(Environment.NewLine); // 系统目录 richTextBox1.AppendText("系统目录: " + Environment.SystemDirectory); richTextBox1.AppendText(Environment.NewLine); // 系统内存页 richTextBox1.AppendText("系统内存页: " + Environment.SystemPageSize.ToString() + "MB"); richTextBox1.AppendText(Environment.NewLine); } } }
2023年02月01日
7 阅读
0 评论
0 点赞
2022-10-24
微信&企微多开助手 版本 1.1.3.6275 发行说明
单击按钮下载最新版本的 多开助手(duokaizhushou) {abtn icon="fa-windows" color="#ff6800" href="https://www.root.tax/app/weixin_qiwei-shuangkaizhushou/app/" radius="17.5px" content="微信&企微多开助手 Windows"/} 多开助手(duokaizhushou) 版本 1.1.3.6275 中的新增功能多开助手 版本 1.1.3.6275 是多开助手的第二个受支持的服务基准版本。增加微信和企业微信 支持多开版本在线下载的服务微信与企业微信 服务端版本号验证通信服务将微信多开剥离至 .bat Windows脚本运行对程序主页进行UI调整,并加入广告服务(虽然并没有广告商)。加入WeWeb页面(通过向服务器请求数据并访问程序最新版本发布页)本地统计微信与企业微信多开次数合计的值对双开数量输入控件增加验证和限制,仅支持输入数字,且限制微信最高多开99个删除首页进行的IP验证应用程序打开通过SMTP发送至邮箱用户使用次数修复修复微信多开出现的部分BUG
2022年10月24日
103 阅读
0 评论
0 点赞
2022-10-24
电脑微信企业微信双开/多开的方法(这可能是最简单粗暴高效的解决方案)
单击按钮下载最新版本的 多开助手(duokaizhushou) {abtn icon="fa-windows" color="#ff6800" href="http://e-c.top/app/weixin_qiwei-shuangkaizhushou/app/" radius="17.5px" content="微信&企微多开助手 Windows"/} 微信历史版本下载企微历史版本下载NULL支持双开 4.0.6.6516 访问密码:c8tkaaNULL表格PS:应用程序多开微信双开企业微信在文章最下方微信双开微信方法一、不用额外借助代码和其他软件工具,最粗暴简单高效的方法:1.首先确保没有登录任何微信,如果已有登录的微信,先彻底退出程序。操作之前务必保证没有正在运行的微信,这是关键点。2.点击桌面任意空白处, 使微信图标不被选中。3.此时按住键盘上的回车键不放,同时鼠标左键点击微信图标,即可同时打开很多个登录窗口,觉得数量够了就放开回车键。点击图标时会有闪烁,若视觉变化不太明显,按住2秒左右也可以打开好几个了。方法二、如果是Win10系统,在微软应用商城再下载一个微信,加上原有的微信exe程序,这样就有了两个微信。微信方法二、微软应用商店微信双开微信方法三、请严格按以下步骤来先上文字简化版步骤总结:鼠标右键微信图标,选择属性——目标——整行复制目标中的路径——新建记事本,输入start "" +刚刚复制的路径,开几个微信就复制几行——保存记事本,改后缀名为.bat,确定。——双击运行后,拉开或登录最上面的微信界面,就能看到下面的微信登录窗口。具体详细步骤如下:1.鼠标右键微信快捷方式,选择“属性”,然后复制“目标”中的路径。2.新建记事本 后缀改为.bat,取名为微信多开或其他名字,在其中输入:start "" +刚刚复制的路径。比如:start "" "D:Program FilesWeChatWeChat.exe" 2个双引号为英文状态,前后有空格。随后复制整行,再粘贴,想开几个微信就粘贴几行。3.保存记事本,更改后缀名为bat。双击运行即可。双击运行出来的微信登录窗口是重叠在一起的,登录或拉开最上面的微信界面后,就能看到下面的登录窗口。企业微信双开企微PC端默认只能开一个,如果你想登录两个企微,那么如何实现应用多开呢?企微方法一:最简单便捷的就是利用修改Window注册表实现双开。注意:只能实现双开,无法实现3开甚至更多。1、先打开登陆一个企业微信应用。注:一定要先登录一个,然后再操作下面的步骤,否则你修改的数值会被刷新掉,无法实现双开;2、成功登录一个账号后,按Win+R,快速调出【运行】工具,然后输入 regedit,然后点击【确定】3、在弹窗提示的“你要允许此应用对你的设备进行修改吗”点击【是】;4、在搜索栏输入" 计算机HKEY_CURRENT_USERSoftwareTencentWXWork ",找到WXWork文件夹,在右边栏找到multi_instances;双击,出现如下弹窗:5、【数值数据】默认是0,只能开一个,修改数值大于等于2即可,点击【确定】;6、再次点击桌面【企业微信应用图标】,这时候你就可以登录第二个账号了。注:电脑重新开机后该注册表的值也会刷新回默认值,每次开机都需要重新设置。企微方法二:使用虚拟机实现多开,大家可以自行安装虚拟机,虚拟机中安装windows系统,然后安装企业微信软件即可。多开几个系统即可实现企微多开通过应用程序多开微信/双开企业微信企业微信默认双开数量是二微信不限制多开数量(我自己测试我电脑最多开60个,然后死机了)企业微信由于Windows注册表限制还是只能双开但是这个程序方便了新手小白该项目源代码已开源在GitHub https://github.com/CN-Root/wechat-wecom-duokai程序广告招商程序首页图片广告位=每月/2元 程序首页文字广告位=每月/1元 程序更新日志[1.1.7.3268版本]微信多开(无限制)&企微双开(限制两个)微信版本:3.7.0.3(任何版本都可以)企微版本:4.0.8.6505(该版本以下的都可以)新增:判断企业微信是否为4.0.8.6505以下版本主页内添加微信&企业微信双开注意事项修复:打开双开助手后提示错误并生成Windows文件问题操作系统测试版本:版本:Win10 教育版·家庭中文版版本号:21H2[1.1.3.6275版本]微信多开(无限制)&企微双开(限制两个)微信版本:3.7.0.3(任何版本都可以)企微版本:4.0.8.6505(该版本以下的都可以)新增:在线下载微信支持的版本在线下载企微支持的版本操作系统测试版本:版本:Win10 教育版·家庭中文版版本号:21H2[1.0版本]微信多开(内部测试最高61个电脑死机了)企微双开(由于Windows注册表限制最多可开两个)微信版本:3.7.0.3(任何版本都可以)企微版本:4.0.8.6505(该版本以下的都可以)操作系统测试版本:版本:Windows 10 教育版版本号:21H2
2022年10月24日
1,611 阅读
0 评论
2 点赞
2022-06-20
C#中的WinForm问题——使用滚动条时页面闪烁及重影问题
C#中的WinForm问题——使用滚动条时页面闪烁及重影问题当使用鼠标进行滚动查看页面时,由于页面会频繁刷新,如果页面中控件较多会导致页面出现闪烁、重影等问题,如下图所示:具体的解决方案是通过设置CreateParams的ExStyle为ExStyle 为 0x02000000 (WS_EX_COMPOSITED)。protected override CreateParams CreateParams { get { CreateParams cp = base.CreateParams; cp.ExStyle |= 0x02000000; return cp; } }
2022年06月20日
37 阅读
0 评论
0 点赞
2022-06-12
WinForm系统托盘双击打开窗体
this.Visible = true; this.WindowState = FormWindowState.Normal;//双击打开窗体
2022年06月12日
34 阅读
0 评论
0 点赞
1
2
3