
Windows应用程序开发
文章平均质量分 77
QQ1422078449
为人诚恳,性格开朗,有主见,积极进取,有较强的组织能力和团队精神,富有创造力和探索精神。
展开
-
探索CefSharp,Cefsharp浏览器能做自动填表和模拟登录
1. Chromium内核: CefSharp基于Chromium Embedded Framework (CEF),这是一个轻量级的库,用于在任何应用程序中嵌入Chromium浏览器引擎。CefSharp是一个开源项目,它为.NET开发者提供了与Chromium浏览器引擎交互的能力,让您可以轻松地在自己的应用程序中嵌入Web渲染引擎。3. 双向通信: CefSharp支持JavaScript和C#之间的双向通信,使得可以在C#代码中调用JavaScript函数,并将JavaScript的结果返回到C#。原创 2024-09-25 17:26:04 · 846 阅读 · 0 评论 -
cefsharp浏览器控件模拟登录失败原因分析
cefsharp浏览器控件获取到cookie字符串,模拟登录失败原因分析:1)visitor_SendCookie 函数可能会重复获取cookie项, 需要做个判断,后面获取的cookie项覆盖前面的cookie项2)拼接成cookie字符串的时候请注意:cookie项之间的间隔除了用分号间隔之外,还需要加1个空格字符(否则将会导致模拟登录失败!)一个困扰我好几个月的问题,今天终于解决...原创 2020-04-21 09:18:31 · 1358 阅读 · 0 评论 -
类里面调用主窗体的输出显示控件显示的2种方法
一:传统方法:主窗体: Lib.CatchUrl.CatchDetailUrl(item.Tag.ToString(), this);类: public static void CatchDetailUrl(string PageUrlByCate,FrmCatchData frmMain) { //调用主窗体的函数 frmMain.OutLog原创 2013-07-13 20:02:18 · 940 阅读 · 0 评论 -
C# 按钮控制windows音量
一个项目中要用到的一个功能,但是这种方法仅限于直接增加和减小音量。最理想化的控制条来控制音量还需要调研。经过测试,这种方法在win7下也能正常使用如图代码如下 控制系统音量using System;using System.Collections.Generic;using System.ComponentModel;using S转载 2013-07-14 13:51:06 · 1167 阅读 · 0 评论 -
如何在数据绑定时不让combox控件触发SelectedIndexChanged事件
这两天一直被一个问题困扰着,就是 我用一个combox显示数据,并根据用户的选择,触发SelectedIndexChanged事件完成一些操作,但是当用combox数据绑定到一个dataset时就触发了SelectedIndexChanged事件,请教如何在数据绑定时不让combox控件触发SelectedIndexChanged事件, 本来想设个Flag变量,判断是不是第一次登录,那样也可以转载 2013-06-29 10:52:42 · 1972 阅读 · 0 评论 -
C#如何操作(新建,修改,删除)XML文件?
C#如何操作(新建,修改,删除)XML文件?已知有一个XML文件(bookstore.xml)如下: Oberon's Legacy Corets, Eva 5.95 1、往节点中插入一个节点: XmlDocument xmlDoc=new XmlDocument(); xmlDoc.Load("book转载 2013-07-04 08:30:03 · 793 阅读 · 0 评论 -
修改app.config不能马上生效(只有重启应用程序之后才能生效)的根本原因
修改app.config不能马上生效(只有重启应用程序之后才能生效)的根本原因:1:之前的代码:this.ntxtLenForValue.Text = Properties.Settings.Default.LenForValue;2:现在的代码:直接读取应用程序所在目录的配置文件(其实就是XML文件)第一步://读取app.config文件,然原创 2013-07-03 20:38:06 · 4401 阅读 · 0 评论 -
MaskedTextBox 掩码元素说明和常用掩码组合
掩码说明:掩码元素说明0数字,必选。此元素将接受 0 到 9 之间的任何一个数字。9数字或空间,可选。#数字或空间,可选。如果掩码中该位置为空白,在 Text 属性中将把它呈现为一个空格。允许使用加号 (+) 和减号 (-)。转载 2013-07-05 18:18:10 · 2111 阅读 · 0 评论 -
.NET程序脱离.NET框架的方法
Net框架目前逐步在普及了,仍然有很多人在寻找如何让.NET程序脱离.NET框架的方法。现成的工具有Xenocode 的postbuidle或者vas,还有Salamander .NET Linker。另外还有MaxToCode 作者以前做的framework linker,以及一些支持注册表模拟和文件模拟的打包工具molebox,thinstall等。Xenocode的是使用了一个虚转载 2013-07-24 17:26:41 · 956 阅读 · 0 评论 -
winform文本编辑器的实现
可以借用Webbrowse控件,通过JS来调用html里面的xheditor控件来实现对xheditor控件进行赋值操作:$(pageInit);var editor;function pageInit(){ //editor=$('#elm1').xheditor({shortcuts:{'ctrl+enter':submitForm}});//交互方式1 e原创 2013-07-25 09:56:39 · 3882 阅读 · 1 评论 -
打印小票时自动换行算法,可处理各种字符混排
这是一个算法,是我在做热敏打印机打印小票时解决的一个问题,想了想还是分享给大家,或许多大家有些许帮助。 在打印小票时,可能遇到一些字符串长度过长的问题,但是你不能直接截取,所以需要自动换行来显示全部名称。经过分析,其实是这么一个问题:需要把字符串分行,使得每行不得超过最大长度,最后一行长度为指定的最小长度,长度不够,用空格补齐。先给出一个简单的效果示例图:转载 2013-11-05 11:38:13 · 5518 阅读 · 1 评论 -
利用Aspose.Word控件实现Word文档的操作
Aspose系列的控件,功能都挺好,之前一直在我的Winform开发框架中用Aspose.Cell来做报表输出,可以实现多样化的报表设计及输出,由于一般输出的内容比较正规化或者多数是表格居多,所以一般使用Aspose.Cell来实现我想要的各种Excel报表输出。虽然一直也知道Aspose.Word是用来生成Word文档的,而且深信其也是一个很强大的控件,但一直没用用到,所以就不是很熟悉。偶然转载 2013-12-22 10:26:55 · 5979 阅读 · 0 评论 -
你知道吗?wb是默认开启兼容性视图的
前天晚上发现用webbrowse不能打开网页1.html,总是弹出并提示脚本错误(当前页面的脚本发生错误,脚本文件为:12.js),但是用IE浏览器可以正常访问(360浏览器可用极速模式访问)我尝试了以下几种方法:1:我以为是webbrowse默认不支持运行activeX控件,查了很多资料,还是无法解决2:我想用IE自带的浏览器控件,就是从COM+里面提取IE控件,结果还是一样报脚原创 2017-05-19 11:07:29 · 748 阅读 · 0 评论 -
用主动模式port上传文件后发现文件大小为0
用主动模式port上传文件发现有个问题,我发现有时候上传文件后,存放在服务器上文件大小为0【解决方法】方法1:高级安全windows防火墙 -> windows 防火墙属性 - 公用配置文件- 防火墙状态- 关闭方法2:高级安全windows防火墙 -> windows 防火墙属性 - 公用配置文件- 防火墙状态- 启用推荐1)入站连接:设置为允许2)出战连接:允许默认值...原创 2018-07-03 12:12:57 · 1102 阅读 · 0 评论 -
C#串口编程问题:一个测试数据怎么拆分成2个字符串,做了2次发送?
最近采用C#串口编程遇到一个问题:一个测试数据怎么拆分成2个字符串,做了2次发送,屏幕显示的字符总是少了几位, 输出的数据是这样的: 2013-06-26 09:38:29 XR1000229E-2,GO 2013-06-26 09:39:20 XR1000244E-2013-06-26 09:39:20 2,GO 2013-06-26 09:39:27 XR10002原创 2013-06-27 12:04:16 · 2018 阅读 · 0 评论 -
C# ListBox 自动滚动到底部
/// /// 通过计算ListBox显示的行数,设置TopIndex属性(ListBox中第一个可见项的索引)而达到目的。 /// public void ListBoxAutoCroll(ListBox lbox) { // //lbox.Items.Add(" ")原创 2013-06-02 16:43:43 · 7345 阅读 · 0 评论 -
CodeSmith DAL层的写法
// My methods here.public string GetAllColStr(string flag){ string colStr=""; for(int i=0;i { string col_name=SourceTable.Columns[i].Name; if(i==SourceTable.Columns.Count-1) { colStr +=flag原创 2009-04-17 20:10:00 · 1953 阅读 · 2 评论 -
一道有趣的面试题 - 设计模式的运用
程序设计:猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒。要求:1.要有联动性,老鼠和主人的行为是被动的。2.考虑可扩展性,猫的叫声可能引起其他联动效应。程序员甲是这样设计的:publicinterfaceObserver{voidResponse();//观察者的响应,如是老鼠见到猫的反映原创 2008-09-28 09:38:00 · 699 阅读 · 0 评论 -
BindingSource的使用范例
public partial class Form1 : Form { private DataSet gDataSet = GetDS(); public Form1() { InitializeComponent(); // Set the data sourc原创 2009-03-19 20:33:00 · 7556 阅读 · 2 评论 -
c#执行DOS命令
public static string Execute(string dosCommand) { //return Execute(dosCommand, 10); try { System.Diagnostics.Process process1;原创 2013-01-28 12:31:50 · 639 阅读 · 1 评论 -
关于BindingContext
http://msdn.microsoft.com/zh-cn/library/system.windows.forms.bindingcontext(VS.80).aspx个 Windows 窗体至少有一个 BindingContext 对象,此对象管理该窗体的 BindingManagerBase 对象。由于BindingManagerBase 类是抽象类,因此 Item 属性的返原创 2009-04-30 07:14:00 · 3754 阅读 · 0 评论 -
今天的面试题:填写程序输出结果
今天的面试题,大家过来看看:要求填写程序输出结果。 class A { public A() { Print(); } public virtual void Print() {原创 2007-05-17 20:44:00 · 870 阅读 · 0 评论 -
类似"拖一个文件到windows回收站图标" 的那样的效果.
问题如下: 我有一个窗体 FormA,里面有一个Button1... 还有一段代码codeA 另有一个窗体 FormB. 是MDI的子窗体. 一段代码codeB(Button1) 我的问题是, 1. 我要拖FormA的按钮Button1到FormB上, 2.松开之后,然后在FormB上执行codeB,在FormA上执行一段代码codeA. 类似"拖一个文件原创 2008-03-14 15:25:00 · 696 阅读 · 0 评论 -
c#中指针的使用
C#使用指针很多人将C#和Java进行比较的时候,认为C#支持指针是C#的一个特点。我的个人观点认为任何事务应该一分为二的看,有利必然有弊。关于支持指针是好还是不好,不同的人有不同的看法,这个讨论很多。我们在此仅仅是讨论如何在C#中使用指针,并不是讨论它的利弊。1、修改工程配置工程中默认的配置是不支持代码的非安全性的,如果我们想使用指针就要修改这个默认的设置。否则我们在编译的时原创 2007-06-05 08:02:00 · 1113 阅读 · 0 评论 -
不同厂家RFID读写器统一编程接口的实现
不同厂家RFID读写器统一编程接口的实现设计思想:采用工厂模式 一:准备工作:1:准备好不同厂家的RFID读写器及配置天线和馈线,RFID标签若干2:收集不同厂家读写器及其编程接口API 二:编写一个RFID读写器操作基类下面是核心代码: /// /// 不同厂家RFID读写器操作基类 /// public class原创 2013-04-18 09:43:28 · 3064 阅读 · 2 评论 -
win7(64)出项未在本地计算机上注册 Microsoft.Jet.OLEDB.4.0 提供程序的错误解决办法
之前用.net写的导数据程序,换成win7(64位)后,运行程序,抛出异常:未在本地计算机上注册 Microsoft.Jet.OLEDB.4.0 提供程序,搞了老半天,不知道什么原因,后来搜了一下,才发现解决问题的办法是如此简单:编译项目指定目标平台为x86就完了,不能用any cpu生成->配置管理器->平台->点击Any Cpu选项卡->新建->新建平台->X86。这样就可以。转载 2013-04-18 16:39:30 · 1030 阅读 · 2 评论 -
Winform项目HTMLEdior的运用
HTMLEdior的运用1:拷贝UserControl(包含2个自定义控件)到所载的项目2:添加Microsoft.mshtml的引用3:将Resources文件拷贝到当前项目4:将Property下的Resources.resx里面的图片拷贝到当前项目原创 2013-05-28 14:24:06 · 537 阅读 · 0 评论 -
C#怎么使用默认浏览器打开网页
using Microsoft.Win32;RegistryKey key = Registry.ClassesRoot.OpenSubKey(@"http\shell\open\command\");string s = key.GetValue("").ToString();s就是你的默认浏览器,不过后面带了参数,把它截去System.Diagnostics.Pro转载 2013-05-30 17:05:43 · 645 阅读 · 0 评论 -
程序集合并前检查类文件是否冲突
思路:只需要检查Inherits属性是否含有类文件名即可,如果不同,证明程序员采用的是复制代码的方式在写代码,从而忘了修改类文件的Inherits属性比如:比如检查Inherits="WorkPlan_HuiBaoAdd" 中的 WorkPlan_HuiBaoModify 是否含有HuiBaoModify.aspx中的HuiBaoModify用到的相关技术1:递归处理文件夹原创 2013-06-12 00:50:58 · 787 阅读 · 0 评论 -
如何能让datagridview中的列移动(左移或右移)
思路:1. 先在当前列的左边或者右边插入一个空列 2. 按行将当前列(被移动列)的值复制到 新列 3. 移除当前列 代码如下: /// /// 获取当前列 /// public DataGridViewColumn CurCol { get {原创 2009-03-30 19:11:00 · 5991 阅读 · 6 评论