热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

C#/VB.NET在PPT中创建、编辑PPTSmartArt图形

本文介绍通过C#和VB.NET程序代码来创建和编辑PPT文档中的SmartArt图形。文中将分两

本文介绍通过C#和VB.NET程序代码来创建和编辑PPT文档中的SmartArt图形。文中将分两个操作示例来演示创建和编辑结果。

使用工具:Spire.Presentation for .NET hotfix 5.9.5

Dll文件引用:

方式1:下载包。下载后,解压,打开Bin文件夹,根据自己用的.NET Framework选择相应的文件夹,如:此示例中使用的是NET4.0,即打开NET4.0文件,找到Spire.Presentation.dll文件。找到dll文件后,在vs程序中添加引用该dll。

如下引用结果:


 

 

方式2:通过Nuget搜索下载导入。

 

 

注:创建SmartArt图形时,可创建80多种不同类型的图形,编辑图形是,可添加、删除节点、编辑节点内容、给节点内容设置超链接(包括链接到网页、链接到幻灯片)

示例1. 创建PPT SmartArt图形

using Spire.Presentation;
using Spire.Presentation.Diagrams;
namespace AddSmartArt
{
class Program
{
static void Main(string[] args)
{
//实例化Presentation对象
Presentation ppt = new Presentation();
//设置幻灯片大小
ppt.SlideSize.Type = SlideSizeType.Screen16x9;
//添加组织结构图类型的SmartArt图形,并指定位置、大小
ISmartArt smartArt = ppt.Slides[0].Shapes.AppendSmartArt(100, 50, 450, 250, SmartArtLayoutType.OrganizationChart);
//设置SmartArt的样式和颜色
smartArt.Style = SmartArtStyleType.IntenceEffect;
smartArt.ColorStyle = SmartArtColorType.ColorfulAccentColors3to4;
//移除默认的形状(Node即代表SmartArt中的形状)
foreach (ISmartArtNode node in smartArt.Nodes)
{
smartArt.Nodes.RemoveNode(node);
}
//添加形状并在其下面添加嵌套子形状
ISmartArtNode node1 = smartArt.Nodes.AddNode();
ISmartArtNode node1_1 = node1.ChildNodes.AddNode();
ISmartArtNode node1_1_1 = node1_1.ChildNodes.AddNode();
ISmartArtNode node1_1_2 = node1_1.ChildNodes.AddNode();
ISmartArtNode node1_1_3 = node1_1.ChildNodes.AddNode();
ISmartArtNode node1_1_4 = node1_1.ChildNodes.AddNode();
ISmartArtNode node1_1_5 = node1_1.ChildNodes.AddNode();
ISmartArtNode node1_1_6 = node1_1.ChildNodes.AddNode();
ISmartArtNode node1_1_1_1 = node1_1_1.ChildNodes.AddNode();
ISmartArtNode node1_1_1_2 = node1_1_1.ChildNodes.AddNode();
ISmartArtNode node1_1_1_3 = node1_1_1.ChildNodes.AddNode();
ISmartArtNode node1_1_3_1 = node1_1_3.ChildNodes.AddNode();
ISmartArtNode node1_1_3_2 = node1_1_3.ChildNodes.AddNode();
ISmartArtNode node1_1_6_1 = node1_1_6.ChildNodes.AddNode();
ISmartArtNode node1_1_6_2 = node1_1_6.ChildNodes.AddNode();
ISmartArtNode node1_1_6_3 = node1_1_6.ChildNodes.AddNode();

//在每一个形状上添加文字
node1.TextFrame.Text = "董事会
" + "Board of Directors";
node1_1.TextFrame.Text = "总经理
" + "General Manager";
node1_1_1.TextFrame.Text = "供应部
" + "Supply Dept.";
node1_1_2.TextFrame.Text = "营销部
" + "Sales Dept.";
node1_1_3.TextFrame.Text = "生产部
" + "Productive Dept.";
node1_1_4.TextFrame.Text = "财务部
" + "Finance Dept.";
node1_1_5.TextFrame.Text = "人力资源部
" + "HR Dept.";
node1_1_6.TextFrame.Text = "质检中心
" + "Quality Center";
node1_1_1_1.TextFrame.Text = "采购部
" + "Purchase Dept.";
node1_1_1_2.TextFrame.Text = "仓库管理
" + "Warehouse Manager";
node1_1_1_3.TextFrame.Text = "物流部
" + "Logistics Dept.";
node1_1_3_1.TextFrame.Text = "生产车间
" + "Production Dept.";
node1_1_3_2.TextFrame.Text = "维修部
" + "Maintenance Dept.";
node1_1_6_1.TextFrame.Text = "生产质量管理
" + "Production Quality Mgt.";
node1_1_6_2.TextFrame.Text = "生产安全管理
" + "Production Safety Mgt.";
node1_1_6_3.TextFrame.Text = "环境管理
" + "Environmental Mgt.";

//保存文档
ppt.SaveToFile("result.pptx", FileFormat.Pptx2013);
System.Diagnostics.Process.Start("result.pptx");
}
}
}

using Spire.Presentation;
using Spire.Presentation.Diagrams;
namespace AddSmartArt
{
class Program
{
static void Main(string[] args)
{
//实例化Presentation对象
Presentation ppt = new Presentation();
//设置幻灯片大小
ppt.SlideSize.Type = SlideSizeType.Screen16x9;
//添加组织结构图类型的SmartArt图形,并指定位置、大小
ISmartArt smartArt = ppt.Slides[0].Shapes.AppendSmartArt(100, 50, 450, 250, SmartArtLayoutType.OrganizationChart);
//设置SmartArt的样式和颜色
smartArt.Style = SmartArtStyleType.IntenceEffect;
smartArt.ColorStyle = SmartArtColorType.ColorfulAccentColors3to4;
//移除默认的形状(Node即代表SmartArt中的形状)
foreach (ISmartArtNode node in smartArt.Nodes)
{
smartArt.Nodes.RemoveNode(node);
}
//添加形状并在其下面添加嵌套子形状
ISmartArtNode node1 = smartArt.Nodes.AddNode();
ISmartArtNode node1_1 = node1.ChildNodes.AddNode();
ISmartArtNode node1_1_1 = node1_1.ChildNodes.AddNode();
ISmartArtNode node1_1_2 = node1_1.ChildNodes.AddNode();
ISmartArtNode node1_1_3 = node1_1.ChildNodes.AddNode();
ISmartArtNode node1_1_4 = node1_1.ChildNodes.AddNode();
ISmartArtNode node1_1_5 = node1_1.ChildNodes.AddNode();
ISmartArtNode node1_1_6 = node1_1.ChildNodes.AddNode();
ISmartArtNode node1_1_1_1 = node1_1_1.ChildNodes.AddNode();
ISmartArtNode node1_1_1_2 = node1_1_1.ChildNodes.AddNode();
ISmartArtNode node1_1_1_3 = node1_1_1.ChildNodes.AddNode();
ISmartArtNode node1_1_3_1 = node1_1_3.ChildNodes.AddNode();
ISmartArtNode node1_1_3_2 = node1_1_3.ChildNodes.AddNode();
ISmartArtNode node1_1_6_1 = node1_1_6.ChildNodes.AddNode();
ISmartArtNode node1_1_6_2 = node1_1_6.ChildNodes.AddNode();
ISmartArtNode node1_1_6_3 = node1_1_6.ChildNodes.AddNode();

//在每一个形状上添加文字
node1.TextFrame.Text = “董事会
” + “Board of Directors”;
node1_1.TextFrame.Text = “总经理
” + “General Manager”;
node1_1_1.TextFrame.Text = “供应部
” + “Supply Dept.”;
node1_1_2.TextFrame.Text = “营销部
” + “Sales Dept.”;
node1_1_3.TextFrame.Text = “生产部
” + “Productive Dept.”;
node1_1_4.TextFrame.Text = “财务部
” + “Finance Dept.”;
node1_1_5.TextFrame.Text = “人力资源部
” + “HR Dept.”;
node1_1_6.TextFrame.Text = “质检中心
” + “Quality Center”;
node1_1_1_1.TextFrame.Text = “采购部
” + “Purchase Dept.”;
node1_1_1_2.TextFrame.Text = “仓库管理
” + “Warehouse Manager”;
node1_1_1_3.TextFrame.Text = “物流部
” + “Logistics Dept.”;
node1_1_3_1.TextFrame.Text = “生产车间
” + “Production Dept.”;
node1_1_3_2.TextFrame.Text = “维修部
” + “Maintenance Dept.”;
node1_1_6_1.TextFrame.Text = “生产质量管理
” + “Production Quality Mgt.”;
node1_1_6_2.TextFrame.Text = “生产安全管理
” + “Production Safety Mgt.”;
node1_1_6_3.TextFrame.Text = “环境管理
” + “Environmental Mgt.”;

//保存文档
ppt.SaveToFile(“result.pptx”, FileFormat.Pptx2013);
System.Diagnostics.Process.Start(“result.pptx”);
}
}
}

图形创建结果:


VB.NET

Imports Spire.Presentation
Imports Spire.Presentation.Diagrams
Namespace AddSmartArt
Class Program
Private Shared Sub Main(args As String())
"实例化Presentation对象
Dim ppt As New Presentation()
"设置幻灯片大小
ppt.SlideSize.Type = SlideSizeType.Screen16x9
"添加组织结构图类型的SmartArt图形,并指定位置、大小
Dim smartArt As ISmartArt = ppt.Slides(0).Shapes.AppendSmartArt(100, 50, 750, 450, SmartArtLayoutType.OrganizationChart)
"设置SmartArt的样式和颜色
smartArt.Style = SmartArtStyleType.IntenceEffect
smartArt.ColorStyle = SmartArtColorType.ColorfulAccentColors3to4
"移除默认的形状(Node即代表SmartArt中的形状)
For Each node As ISmartArtNode In smartArt.Nodes
smartArt.Nodes.RemoveNode(node)
Next
"添加形状并在其下面添加嵌套子形状
Dim node1 As ISmartArtNode = smartArt.Nodes.AddNode()
Dim node1_1 As ISmartArtNode = node1.ChildNodes.AddNode()
Dim node1_1_1 As ISmartArtNode = node1_1.ChildNodes.AddNode()
Dim node1_1_2 As ISmartArtNode = node1_1.ChildNodes.AddNode()
Dim node1_1_3 As ISmartArtNode = node1_1.ChildNodes.AddNode()
Dim node1_1_4 As ISmartArtNode = node1_1.ChildNodes.AddNode()
Dim node1_1_5 As ISmartArtNode = node1_1.ChildNodes.AddNode()
Dim node1_1_6 As ISmartArtNode = node1_1.ChildNodes.AddNode()
Dim node1_1_1_1 As ISmartArtNode = node1_1_1.ChildNodes.AddNode()
Dim node1_1_1_2 As ISmartArtNode = node1_1_1.ChildNodes.AddNode()
Dim node1_1_1_3 As ISmartArtNode = node1_1_1.ChildNodes.AddNode()
Dim node1_1_3_1 As ISmartArtNode = node1_1_3.ChildNodes.AddNode()
Dim node1_1_3_2 As ISmartArtNode = node1_1_3.ChildNodes.AddNode()
Dim node1_1_6_1 As ISmartArtNode = node1_1_6.ChildNodes.AddNode()
Dim node1_1_6_2 As ISmartArtNode = node1_1_6.ChildNodes.AddNode()
Dim node1_1_6_3 As ISmartArtNode = node1_1_6.ChildNodes.AddNode()
"在每一个形状上添加文字
node1.TextFrame.Text = "董事会" & vbLf + "Board of Directors"
node1_1.TextFrame.Text = "总经理" & vbLf + "General Manager"
node1_1_1.TextFrame.Text = "供应部" & vbLf + "Supply Dept."
node1_1_2.TextFrame.Text = "营销部" & vbLf + "Sales Dept."
node1_1_3.TextFrame.Text = "生产部" & vbLf + "Productive Dept."
node1_1_4.TextFrame.Text = "财务部" & vbLf + "Finance Dept."
node1_1_5.TextFrame.Text = "人力资源部" & vbLf + "HR Dept."
node1_1_6.TextFrame.Text = "质检中心" & vbLf + "Quality Center"
node1_1_1_1.TextFrame.Text = "采购部" & vbLf + "Purchase Dept."
node1_1_1_2.TextFrame.Text = "仓库管理" & vbLf + "Warehouse Manager"
node1_1_1_3.TextFrame.Text = "物流部" & vbLf + "Logistics Dept."
node1_1_3_1.TextFrame.Text = "生产车间" & vbLf + "Production Dept."
node1_1_3_2.TextFrame.Text = "维修部" & vbLf + "Maintenance Dept."
node1_1_6_1.TextFrame.Text = "生产质量管理" & vbLf + "Production Quality Mgt."
node1_1_6_2.TextFrame.Text = "生产安全管理" & vbLf + "Production Safety Mgt."
node1_1_6_3.TextFrame.Text = "环境管理" & vbLf + "Environmental Mgt."
"保存文档
ppt.SaveToFile("result.pptx", FileFormat.Pptx2013)
System.Diagnostics.Process.Start("result.pptx")
End Sub
End Class
End Namespace

Imports Spire.Presentation
Imports Spire.Presentation.Diagrams
Namespace AddSmartArt
Class Program
Private Shared Sub Main(args As String())
“实例化Presentation对象
Dim ppt As New Presentation()
“设置幻灯片大小
ppt.SlideSize.Type = SlideSizeType.Screen16x9
“添加组织结构图类型的SmartArt图形,并指定位置、大小
Dim smartArt As ISmartArt = ppt.Slides(0).Shapes.AppendSmartArt(100, 50, 750, 450, SmartArtLayoutType.OrganizationChart)
“设置SmartArt的样式和颜色
smartArt.Style = SmartArtStyleType.IntenceEffect
smartArt.ColorStyle = SmartArtColorType.ColorfulAccentColors3to4
“移除默认的形状(Node即代表SmartArt中的形状)
For Each node As ISmartArtNode In smartArt.Nodes
smartArt.Nodes.RemoveNode(node)
Next
“添加形状并在其下面添加嵌套子形状
Dim node1 As ISmartArtNode = smartArt.Nodes.AddNode()
Dim node1_1 As ISmartArtNode = node1.ChildNodes.AddNode()
Dim node1_1_1 As ISmartArtNode = node1_1.ChildNodes.AddNode()
Dim node1_1_2 As ISmartArtNode = node1_1.ChildNodes.AddNode()
Dim node1_1_3 As ISmartArtNode = node1_1.ChildNodes.AddNode()
Dim node1_1_4 As ISmartArtNode = node1_1.ChildNodes.AddNode()
Dim node1_1_5 As ISmartArtNode = node1_1.ChildNodes.AddNode()
Dim node1_1_6 As ISmartArtNode = node1_1.ChildNodes.AddNode()
Dim node1_1_1_1 As ISmartArtNode = node1_1_1.ChildNodes.AddNode()
Dim node1_1_1_2 As ISmartArtNode = node1_1_1.ChildNodes.AddNode()
Dim node1_1_1_3 As ISmartArtNode = node1_1_1.ChildNodes.AddNode()
Dim node1_1_3_1 As ISmartArtNode = node1_1_3.ChildNodes.AddNode()
Dim node1_1_3_2 As ISmartArtNode = node1_1_3.ChildNodes.AddNode()
Dim node1_1_6_1 As ISmartArtNode = node1_1_6.ChildNodes.AddNode()
Dim node1_1_6_2 As ISmartArtNode = node1_1_6.ChildNodes.AddNode()
Dim node1_1_6_3 As ISmartArtNode = node1_1_6.ChildNodes.AddNode()
“在每一个形状上添加文字
node1.TextFrame.Text = “董事会” & vbLf + “Board of Directors”
node1_1.TextFrame.Text = “总经理” & vbLf + “General Manager”
node1_1_1.TextFrame.Text = “供应部” & vbLf + “Supply Dept.”
node1_1_2.TextFrame.Text = “营销部” & vbLf + “Sales Dept.”
node1_1_3.TextFrame.Text = “生产部” & vbLf + “Productive Dept.”
node1_1_4.TextFrame.Text = “财务部” & vbLf + “Finance Dept.”
node1_1_5.TextFrame.Text = “人力资源部” & vbLf + “HR Dept.”
node1_1_6.TextFrame.Text = “质检中心” & vbLf + “Quality Center”
node1_1_1_1.TextFrame.Text = “采购部” & vbLf + “Purchase Dept.”
node1_1_1_2.TextFrame.Text = “仓库管理” & vbLf + “Warehouse Manager”
node1_1_1_3.TextFrame.Text = “物流部” & vbLf + “Logistics Dept.”
node1_1_3_1.TextFrame.Text = “生产车间” & vbLf + “Production Dept.”
node1_1_3_2.TextFrame.Text = “维修部” & vbLf + “Maintenance Dept.”
node1_1_6_1.TextFrame.Text = “生产质量管理” & vbLf + “Production Quality Mgt.”
node1_1_6_2.TextFrame.Text = “生产安全管理” & vbLf + “Production Safety Mgt.”
node1_1_6_3.TextFrame.Text = “环境管理” & vbLf + “Environmental Mgt.”
“保存文档
ppt.SaveToFile(“result.pptx”, FileFormat.Pptx2013)
System.Diagnostics.Process.Start(“result.pptx”)
End Sub
End Class
End Namespace

 

示例2. 编辑PPT SmartArt图形

using Spire.Presentation;
using Spire.Presentation.Diagrams;
namespace ModifySmartArt
{
class Program
{
static void Main(string[] args)
{
//加载PPT幻灯片文档
Presentation ppt = new Presentation();
ppt.LoadFromFile("test.pptx");
//获取SmartArt图形的节点集合
ISmartArt smartart = ppt.Slides[0].Shapes[0] as ISmartArt;
ISmartArtNodeCollection nodes = smartart.Nodes;
//更改节点内容
nodes[1].TextFrame.Text = "新修改的节点内容";
//添加超链接到节点
nodes[2].Click = new ClickHyperlink("https://baike.baidu.com/");//添加指向网页的超链接
nodes[3].Click = new ClickHyperlink(ppt.Slides[1]);//添加指向指定幻灯片的超链接
//添加节点
ISmartArtNode newnode = nodes[5].ChildNodes.AddNode();
newnode.TextFrame.Text = "新添加的节点内容";
//删除节点
//nodes[0].ChildNodes[3].ChildNodes.RemoveNodeByPosition(0);
//保存到本地并打开
ppt.SaveToFile("output.pptx", FileFormat.Pptx2010);
System.Diagnostics.Process.Start("output.pptx");
}
}
}

using Spire.Presentation;
using Spire.Presentation.Diagrams;
namespace ModifySmartArt
{
class Program
{
static void Main(string[] args)
{
//加载PPT幻灯片文档
Presentation ppt = new Presentation();
ppt.LoadFromFile(“test.pptx”);
//获取SmartArt图形的节点集合
ISmartArt smartart = ppt.Slides[0].Shapes[0] as ISmartArt;
ISmartArtNodeCollection nodes = smartart.Nodes;
//更改节点内容
nodes[1].TextFrame.Text = “新修改的节点内容”;
//添加超链接到节点
nodes[2].Click = new ClickHyperlink(“https://baike.baidu.com/”);//添加指向网页的超链接
nodes[3].Click = new ClickHyperlink(ppt.Slides[1]);//添加指向指定幻灯片的超链接
//添加节点
ISmartArtNode newnode = nodes[5].ChildNodes.AddNode();
newnode.TextFrame.Text = “新添加的节点内容”;
//删除节点
//nodes[0].ChildNodes[3].ChildNodes.RemoveNodeByPosition(0);
//保存到本地并打开
ppt.SaveToFile(“output.pptx”, FileFormat.Pptx2010);
System.Diagnostics.Process.Start(“output.pptx”);
}
}
}

添加超链接后,注意要在幻灯片播放下才可见超链接添加效果:


 

VB.NET

Imports Spire.Presentation
Imports Spire.Presentation.Diagrams
Namespace ModifySmartArt
Class Program
Private Shared Sub Main(args As String())
"加载PPT幻灯片文档
Dim ppt As New Presentation()
ppt.LoadFromFile("test.pptx")
"获取SmartArt图形的节点集合
Dim smartart As ISmartArt = TryCast(ppt.Slides(0).Shapes(0), ISmartArt)
Dim nodes As ISmartArtNodeCollection = smartart.Nodes
"更改节点内容
nodes(1).TextFrame.Text = "新修改的节点内容"
"添加超链接到节点
nodes(2).Click = New ClickHyperlink("https://baike.baidu.com/")
"添加指向网页的超链接
nodes(3).Click = New ClickHyperlink(ppt.Slides(1))
"添加指向指定幻灯片的超链接
"添加节点
Dim newnode As ISmartArtNode = nodes(5).ChildNodes.AddNode()
newnode.TextFrame.Text = "新添加的节点内容"
"删除节点
"nodes[0].ChildNodes[3].ChildNodes.RemoveNodeByPosition(0);
"保存到本地并打开
ppt.SaveToFile("output.pptx", FileFormat.Pptx2010)
System.Diagnostics.Process.Start("output.pptx")
End Sub
End Class
End Namespace

Imports Spire.Presentation
Imports Spire.Presentation.Diagrams
Namespace ModifySmartArt
Class Program
Private Shared Sub Main(args As String())
“加载PPT幻灯片文档
Dim ppt As New Presentation()
ppt.LoadFromFile(“test.pptx”)
“获取SmartArt图形的节点集合
Dim smartart As ISmartArt = TryCast(ppt.Slides(0).Shapes(0), ISmartArt)
Dim nodes As ISmartArtNodeCollection = smartart.Nodes
“更改节点内容
nodes(1).TextFrame.Text = “新修改的节点内容”
“添加超链接到节点
nodes(2).Click = New ClickHyperlink(“https://baike.baidu.com/”)
“添加指向网页的超链接
nodes(3).Click = New ClickHyperlink(ppt.Slides(1))
“添加指向指定幻灯片的超链接
“添加节点
Dim newnode As ISmartArtNode = nodes(5).ChildNodes.AddNode()
newnode.TextFrame.Text = “新添加的节点内容”
“删除节点
“nodes[0].ChildNodes[3].ChildNodes.RemoveNodeByPosition(0);
“保存到本地并打开
ppt.SaveToFile(“output.pptx”, FileFormat.Pptx2010)
System.Diagnostics.Process.Start(“output.pptx”)
End Sub
End Class
End Namespace

 



推荐阅读
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • 本文对SQL Server系统进行了基本概述,并深入解析了其核心功能。SQL Server不仅提供了强大的数据存储和管理能力,还支持复杂的查询操作和事务处理。通过MyEclipse、SQL Server和Tomcat的集成开发环境,可以高效地构建银行转账系统。在实现过程中,需要确保表单参数与后台代码中的属性值一致,同时在Servlet中处理用户登录验证,以确保系统的安全性和可靠性。 ... [详细]
  • PTArchiver工作原理详解与应用分析
    PTArchiver工作原理及其应用分析本文详细解析了PTArchiver的工作机制,探讨了其在数据归档和管理中的应用。PTArchiver通过高效的压缩算法和灵活的存储策略,实现了对大规模数据的高效管理和长期保存。文章还介绍了其在企业级数据备份、历史数据迁移等场景中的实际应用案例,为用户提供了实用的操作建议和技术支持。 ... [详细]
  • 本文详细解析了使用C++实现的键盘输入记录程序的源代码,该程序在Windows应用程序开发中具有很高的实用价值。键盘记录功能不仅在远程控制软件中广泛应用,还为开发者提供了强大的调试和监控工具。通过具体实例,本文深入探讨了C++键盘记录程序的设计与实现,适合需要相关技术的开发者参考。 ... [详细]
  • 深入剖析Java中SimpleDateFormat在多线程环境下的潜在风险与解决方案
    深入剖析Java中SimpleDateFormat在多线程环境下的潜在风险与解决方案 ... [详细]
  • 在本文中,我们将深入探讨C#中的构造函数及其应用场景。通过引入构造函数,可以有效解决在访问类属性时反复赋值导致的代码冗余问题,提高代码的可读性和维护性。此外,还将介绍构造函数的不同类型及其在实际开发中的最佳实践。 ... [详细]
  • 在当前的软件开发领域,Lua 作为一种轻量级脚本语言,在 .NET 生态系统中的应用逐渐受到关注。本文探讨了 Lua 在 .NET 环境下的集成方法及其面临的挑战,包括性能优化、互操作性和生态支持等方面。尽管存在一定的技术障碍,但通过不断的学习和实践,开发者能够克服这些困难,拓展 Lua 在 .NET 中的应用场景。 ... [详细]
  • 2018年9月21日,Destoon官方发布了安全更新,修复了一个由用户“索马里的海贼”报告的前端GETShell漏洞。该漏洞存在于20180827版本的某CMS中,攻击者可以通过构造特定的HTTP请求,利用该漏洞在服务器上执行任意代码,从而获得对系统的控制权。此次更新建议所有用户尽快升级至最新版本,以确保系统的安全性。 ... [详细]
  • IOS Run loop详解
    为什么80%的码农都做不了架构师?转自http:blog.csdn.netztp800201articledetails9240913感谢作者分享Objecti ... [详细]
  • 本文总结了一些开发中常见的问题及其解决方案,包括特性过滤器的使用、NuGet程序集版本冲突、线程存储、溢出检查、ThreadPool的最大线程数设置、Redis使用中的问题以及Task.Result和Task.GetAwaiter().GetResult()的区别。 ... [详细]
  • 本文详细介绍了MySQL数据库的基础语法与核心操作,涵盖从基础概念到具体应用的多个方面。首先,文章从基础知识入手,逐步深入到创建和修改数据表的操作。接着,详细讲解了如何进行数据的插入、更新与删除。在查询部分,不仅介绍了DISTINCT和LIMIT的使用方法,还探讨了排序、过滤和通配符的应用。此外,文章还涵盖了计算字段以及多种函数的使用,包括文本处理、日期和时间处理及数值处理等。通过这些内容,读者可以全面掌握MySQL数据库的核心操作技巧。 ... [详细]
  • 在C#编程中,数值结果的格式化展示是提高代码可读性和用户体验的重要手段。本文探讨了多种格式化方法和技巧,如使用格式说明符、自定义格式字符串等,以实现对数值结果的精确控制。通过实例演示,展示了如何灵活运用这些技术来满足不同的展示需求。 ... [详细]
  • 在C#中,一旦对象被实例化后,直接重新调用构造函数是不可行的。与C++不同,C#不支持在对象实例化后强制调用构造函数。为了实现类似的功能,可以通过定义一个重置方法或使用工厂模式来重新初始化对象的状态。例如,可以创建一个 `Reset` 方法,在该方法中重新设置对象的属性和状态,从而达到类似于重新调用构造函数的效果。这样不仅保持了代码的清晰性和可维护性,还避免了潜在的副作用。 ... [详细]
  • 本文深入解析了HTML框架集(FRAMESET)的使用方法及其应用场景。首先介绍了几个关键概念,如如何通过FRAMESET标签将主视图划分为多个独立的区域,每个区域可以加载不同的HTML文件。此外,还详细探讨了FRAMESET在实际开发中的优缺点,并提供了具体的实例代码,帮助开发者更好地理解和应用这一技术。 ... [详细]
  • 本文介绍了如何在iOS平台上使用GLSL着色器将YV12格式的视频帧数据转换为RGB格式,并展示了转换后的图像效果。通过详细的技术实现步骤和代码示例,读者可以轻松掌握这一过程,适用于需要进行视频处理的应用开发。 ... [详细]
author-avatar
月亮哥哥是团宠他男人
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有