ProcessStartInfo ps = new ProcessStartInfo(@”D:\Program Files\Java\jdk\jdk1.8.0_372\bin\java.exe”, @”-Dfile.encoding=utf-8 -cp E:\IQSEND\SrEmailService2.jar com.XXXX.ExportApi ” + mc);
ps.UseShellExecute = false;
Process.Start(ps);
分类目录归档:C#
chrome 右键 翻译成简体(中文)的解决方案
点击下方链接下载
GoogleTranslateIpCheck.rar
https://github.com/Ponderfly/GoogleTranslateIpCheck
cefsharp 使用代理切换ip
1.Program.cs 设置不代理
settings.CefCommandLineArgs.Add("no-proxy-server", "1");//不使用代理
2.编写方法:
async private void SetProxy(ChromiumWebBrowser cwb, string Address)
{
await Cef.UIThreadTaskFactory.StartNew(delegate
{
var rc = cwb.GetBrowser().GetHost().RequestContext;
var v = new Dictionary();
v[“mode”] = “fixed_servers”;
v[“server”] = Address;
string error;
bool success = rc.SetPreference(“proxy”, v, out error);
});
}
然后每次更新换代理ip时调用该方法就可以,如下:
SetProxy(CefBrowser, 新代理ip及端口);
CefSharp.CefSharpSettings.Proxy = new CefSharp.ProxyOptions(新代理ip, 端口, 用户名,密码);
c# 通过npoi操作excel汇总
1:新建工程,使用nuget添加引用
2:读取文件时,需要判断后缀
static DataTable ReadExcel(string filename)
{
DataTable dtTable = new DataTable();
List<string> rowList = new List<string>();
ISheet sheet;
string fileExt = Path.GetExtension(filename).ToLower();
IWorkbook workbook;using (var fs = new FileStream(filename, FileMode.Open))
{
if (fileExt == “.xlsx”) { workbook = new XSSFWorkbook(fs); } else if (fileExt == “.xls”) { workbook = new HSSFWorkbook(fs); } else { workbook = null; }
if (workbook == null) { return null; }sheet = workbook.GetSheetAt(0);
IRow headerRow = sheet.GetRow(0);
int cellCount = headerRow.LastCellNum;
for (int j = 0; j < cellCount; j++)
{
ICell cell = headerRow.GetCell(j);
if (cell == null || string.IsNullOrWhiteSpace(cell.ToString())) continue;
{
dtTable.Columns.Add(cell.ToString());
}
}
for (int i = (sheet.FirstRowNum + 1); i <= sheet.LastRowNum; i++)
{
IRow row = sheet.GetRow(i);
if (row == null) continue;
if (row.Cells.All(d => d.CellType == CellType.Blank)) continue;
for (int j = row.FirstCellNum; j < cellCount; j++)
{
if (row.GetCell(j) != null)
{
if (!string.IsNullOrEmpty(row.GetCell(j).ToString()) && !string.IsNullOrWhiteSpace(row.GetCell(j).ToString()))
{
rowList.Add(row.GetCell(j).ToString());
}
}
}
if (rowList.Count > 0)
dtTable.Rows.Add(rowList.ToArray());
rowList.Clear();
}
}
// return JsonConvert.SerializeObject(dtTable);
return dtTable;
}
打脸记
使用JavaScript为react的页面的控件赋值
因为使用cefsharp做的自动登陆程序,涉及到一部分为控件的赋值,最近遇到一个使用react写的页面.没法直接用abc.value=’123’的方式直接赋值,经研究可以使用一下代码
var ev = new Event(‘input’, { bubbles: true});
ev.simulated = true;
abc.value = ‘ 123‘;
abc.dispatchEvent(ev);
最新更新, 使用一下代码
https://raw.githubusercontent.com/nullQ/js/main/js_setvalue_input_via_react
cefsharp 浏览器 开发记录
以cefsharp的winform版本为基础,增加以下几个功能:
1.与js的交互做自动登陆(需注意版本,cefsharp的版本不同,使用的方法不一致)
2.增加与数据库的链接,并动态的生成菜单功能
3.支持页面的快捷键操作(查找,刷新)
4.检查更新功能
5.ip的限制功能
使用cefsharp中调用JavaScript脚本的promise的实例
function c1(){setTimeout(“var sec=’header-account mobile-hide’;document.getElementsByClassName(sec)[0].firstChild.click()”, 1300 );}
function c2(){setTimeout(“var sec=’btn btn-primary’;document.getElementsByClassName(sec)[0].click()”, 1300 );}
function c3(){var list=document.getElementsByTagName(“input”);
for(var i=0;i<list.length && list[i];i++)
{
if(list[i].type==”email”)
{
list[i].value=’aaa’;
list[i].dispatchEvent(new Event(‘input’))
}
else if(list[i].type==”password”)
{
list[i].value=’bbb’;
list[i].dispatchEvent(new Event(‘input’))
}
}
var bts=’btn btn-primary’;bt=document.getElementsByClassName(bts)[0];bt.click();}
function c4(){setTimeout(“window.location.href=\”https://visaya.solutions/de/\”;”,1000)}
new Promise(resolve => {
setTimeout(() => {
c1();
resolve(1);
}, 1500);
}).then((val) => {new Promise(resolve => {
setTimeout(() => {
c2();
resolve(2);
}, 1500);
}).then(val => {
setTimeout(() => {
c3();
}, 1500);
}).then(val => {
setTimeout(() => {
c4();
}, 1000);
});});
未在本地计算机上注册“microsoft.ACE.oledb.12.0″提供程序
针对部分WIN11操作系统,直接下载64位,下载:https://download.microsoft.com/download/2/4/3/24375141-E08D-4803-AB0E-10F2E3A07AAA/AccessDatabaseEngine_X64.exe
update:2023-03-06
下载64位的版本,下载好之后用命令提示符安装,下载路径\AccessDatabaseEngine_X64.exe\passive
winform操作excel时报错:未在本地计算机上注册“microsoft.ACE.oledb.12.0

下载:https://www.microsoft.com/en-us/download/Confirmation.aspx?ID=13255
本错误是由于你使用了ACCESS2007版本建立的数据库,但服务器中没有相配合使用的程序,所以出错.
未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.InvalidOperationException: 未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序。
C# webBrowser 打开 json 弹出下载框问题解决方案
private bool SetRegistery()
{
try
{
using (var hklm = RegistryKey.OpenBaseKey(RegistryHive.ClassesRoot, RegistryView.Registry64))
{
using (RegistryKey key = hklm.OpenSubKey(@"MIME\Database\Content Type\application/json", true))
{
if (key != null)
{
key.SetValue("CLSID", "{25336920-03F9-11cf-8FD0-00AA00686F13}");
key.SetValue("Encoding", new byte[] { 0x80, 0x00, 0x00, 0x00 });
}
}
}
return true;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
return false;
}
使用时:SetRegistery();注意使用时需要管理员运行