VBVBA使用api实现外部程序listview指定item的双击

VBVBA使用api实现外部程序listview指定item的双击,第1张

建议你将信息存在文件或注册表中,然后用个循环读取并加载。这样以后也好修改。

帮你修改了下,将路径按以下格式存为txt文件。

冒险岛online

D:\盛大网络\冒险岛online\maplestoryexe

超级玛丽

D:\ZSNESW\运行游戏exe

机械迷城

D:\机械迷城\machinariumexe

植物大战僵尸

D:\Plants vs Zombies\PlantsVsZombiesexe

平衡球

D:\Ballance\Startupexe

粘粘世界

D:\新建文件夹\World of Goo V14\WorldOfGooexe

Private Sub Label1_Click(Index As Integer)

Select Case Index

Case 0

LoadData ("Gamestxt")

Case 1

LoadData ("Toolstxt")

Case 2

End Select

End Sub

Private Sub LoadData(TxtFile As String)

Dim str As String, Data() As String

Dim Names() As String, Paths() As String

Dim i As Long, k As Long

'打开文件,读取内容

Open TxtFile For Binary As #1

str = Input(LOF(1), #1)

Close #1

Data() = Split(str, vbCrLf)

ReDim Names(0 To Int(UBound(Data) / 2))

ReDim Paths(0 To Int(UBound(Data) / 2))

k = 0

For i = 0 To UBound(Data) Step 2

'确保不为空

If Len(Data(i)) <> 0 And Len(Data(i + 1)) <> 0 Then

Names(k) = Data(i)

Paths(k) = Data(i + 1)

'添加图标

Dim a

Picture1Picture = LoadPicture("")

a = ExtractIcon(ApphInstance, Paths(k), 0)

a = DrawIcon(Picture1hdc, 0, 0, a)

ImageList1ListImagesAdd , , Picture1Image

'添加项目,利用key属性储存路径数据

ListView1ListItemsAdd , Paths(k), Names(k), k + 1

k = k + 1

End If

Next i

End Sub

'双击

Private Sub ListView1_DblClick()

'判断是否点击到item

If Not ListView1SelectedItem Is Nothing Then

Shell ListView1SelectedItemKey

End If

End Sub

'为了让Listview在没点到item时失去焦点

'否则点空白时selectitem不为空

Private Sub ListView1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)

If Not ListView1HitTest(x, y) Is ListView1SelectedItem Then

Set ListView1SelectedItem = Nothing

End If

End Sub

vbafind方法参数最多可以有8位。vbafind方法参数最多可以有8位。vbafind方法参数最多可以有8位。vbafind方法参数最多可以有8位。vbafind方法参数最多可以有8位。vbafind方法参数最多可以有8位。vbafind方法参数最多可以有8位。

Set xlsApp = Nothing

/----------有参调用模式-------------/

xls文件中代码如下:

Sub test2(str As String)

MsgBox (str)

End Sub

VB代码如下:

Dim xlsApp As ExcelApplication

Dim xlsBook As ExcelWorkbook

Dim xlsSheet As ExcelWorksheet

Set xlsApp = New ExcelApplication

Set xlsBook = xlsAppWorkbooksOpen(AppPath + "\testxls")

Set xlsSheet = xlsBookWorksheets(1)

xlsAppVisible = False

Call xlsAppRun("test2", "Hello!World!")

驱动是:偷懒。 技巧是:在提高效率、健壮性和美观的道路上精进,日拱一卒。 口诀是:如果相同或者相似的一件事情第三次做,一定要优化现有解法。 总结起来就是:在实践中不断寻求更好的解法,然后掌握熟练。解法存在于快捷键、函数、高阶工具和VBA之中。 一、快捷键 其实快捷键不用刻意去记忆,只要在Excel的实 *** 中反复遇到一些略微复杂的 *** 作(特别是需要使用鼠标的那些 *** 作),就去查查有无快捷键,然后不断使用就自然记住了。以下列举一些极其常用和必然遇到的。另外一个逼迫自己记忆快捷键的快糙猛的办法就是拔掉鼠标。 最最常用而必须记住的 Ctrl+C/V/X/S/F:不想解释了,自己去查,这5个必须在最开始就熟练掌握 移动焦点 Ctr+↑↓← → :切换到有内容区域的上下左右的尽头 Ctr+Shift+↑↓← → :切换到有内容区域的上下左右的尽头并选中该区域 Ctrl+PgUp/PgDn:在工作表选项卡之间从左至右(从右至左)进行切换 编辑格式 Alt+E+S:调出“选择性粘贴”的界面, Ctrl+Shift+%:使用不带小数位的“百分号”格式 Ctrl+Shift+^:使用带有两位小数的科学计数格式 Ctrl+;:输入当前日期 Ctrl+B:使用或取消加粗格式设置 Ctrl+U:使用或取消下划线 *** 作 Ctr+Y/Z:重复或撤销上一次 *** 作 Alt+I+W:插入新的工作表 Alt+F11:打开VBA编辑器(VBA是最爱,详见Excel 到底有多厉害? - 何明科的回答) 二、函数 当需求不复杂的时候,用用“=”或者“sum”等就够了。然而随着需求升级,VLookup就来了。竖着查找之后,就要横着查找(HLookup)以及各种花式查找( Match/Offset/ Indirect/Address)。查找完之后,就涉及到统计计算,于是Sumif或者Sumifs的需求就来了。然而这还不够,逐渐会繁衍出类似于数据库的Select等多重复杂条件的需求,于是就不得不引入了数组函数。 比如:计算AA产品的总价值,替代select sum(产品数量x产品单价) from where 产品编号=‘AA’。当然使用数组函数就非常简单和灵活:{=SUM(IF(($B$4:$B$8="AA"),($C$4:$C$8)($D$4:$D$8),0))} 另外,搞财务和金融的同学,一定做过三张报表,也肯定经历过报表之间配平的酸楚。为了偷懒和提高财务模型的健壮性,将上面的各类索引函数及数组函数用到极致,于是实现自动配平以及检查。 三、高阶工具 Excel中有许多高阶工具也能大幅提高效率和美观。首先是图表绘制工具,因为作为视觉动物的人类越来越需要利用图表来理解和表达。在文章(RIO是如何席卷大江南北的? - 数据冰山 - 知乎专栏)中,为了表达鸡尾酒消费意愿的逐年增长,抽取数据后需要利用可视化来表达。下图左方是利用系统默认配置绘制出的图表,是不是浓浓的广场舞风格?而要实现下图右方的财经杂志风格,那就只好一个个参数的优化:优化图表类型,配置Title、标注及数据源,添加趋势线,优化字体等等。为了让图表更好看,各种招和参数都用了一遍,对于Excel的图表工具,自然就掌握了。 同时,平时收集那些大牌财经杂志的经典表格(比如:华尔街日报、经济学人等等),然后找教材和培训课程把这些表格实现一遍,这样对于Excel画图的功能就更熟悉了。 另外,Excel上面还有许多数据清洗(排序、筛选、根据统一分隔符来分隔数据等)及分析工具,有些是很高阶的(ANOVA及多元线性回归等等一个都不少),在使用过程中逐步使用和精进,也就逐渐掌握了。 四、VBA VBA其实先不用系统学,而是先直接用,体会到电脑比人手更高效的快感,然后在实践中不断去摸索和尝试更高阶的技能,只能到遇到瓶颈后,再找本书去看看。 第一次使用VBA是因为要反复打印无数的文件,而且打印顺序和单双面的要求很严格,非常容易出错。于是不能忍,但是限于技能,只能利用宏录制不断重复的过程,然后简单改改参数,最后通过执行宏来。 然后一发不可收拾,随着打印问题不断地复杂,程序随之升级,VBA技能也突飞猛进。遇到一些进阶的需求如下,同时也掌握了许多关于打印机设置、Worksheet切换以及调用 *** 作系统API等等各种技能 如何防止卡纸? 如何协调多台打印机来提高速度? 如果在偌大的办公室中自动选取最近的打印机? …… 另外一个例子是为了更美观和炫酷,制作图表的GIF动图。最开始利用了网上的一段程序为中国地图涂色,便于为黄焖鸡米饭是怎么火起来的? - 何明科的回答制作炫目的表格。后来为了在微信上传播有更炫酷的效果,尝试制作GIF。于是开始找制作GIF的外部程序,最终使用VBA调用外部程序以及读写系统文件的各种技能,完成自动生成GIF动画。 五、构建模型的套路 以上都是技法,Excel最大的实战价值就是制作各类财务模型或者简单的数学模型,用正确的方式方法来做模型(所谓的“套路”)才是心法。在回答(在金融行业中,常用的 Excel 分析 *** 作技巧有哪些? - Microsoft Excel)中提到构建各类模型的心法,其实核心点就是不断练习加之不断琢磨怎么偷懒。 世间万物,许多都是触类旁通。做Financial Model的基本思想其实和编程非常类似,比如著名而老套的MVC: 整个Financial Model的逻辑被分成三层, Model(负责数据),View(负责呈现)和Controller(负责业务逻辑),理想状态下其中一层的改动不会影响到另一层。这些基本思想在实践中逐步形成的动力还是为了偷懒: 灵活性高,需要有灵活的框架快速满足老板及客户多变的需求 复用性强,这个项目做得Financial Model,随便改改就能投入到下一个毫不相关的项目中使用 健壮性强,尽量减少频繁的手工输入或者 *** 作,将原始数据集中在一个模块,改一个数据,相关的数据及模块自动更改 在做大部分Financial Model的时候基本就是按照MVC的框架来要求自己的。 Financial Model搭建的过程就如同修建高楼一层层往上累加模块 常数/核心数据/假设数据部分,包括:商业常数(汇率及税率等)、历史数据(过去的财报以及市场规模的历史数据)、认为靠谱而不能改动的预测数据、核心假设(比如假定宏观经济按照6-7%来增长)等等。这些数据略等于C语言的h文件部分,动一发而动全身,所以要单独对待。如同程序一样,Excel的函数中是不能出现hard-code的数字,所以如果一个财务模型中出现“=2314r”,基本是可以打回去重做的。 Scenario场景,包括:模型中需要经常调节的重要输入参数(比如:市场渗透率、Exit PE ratio等)。这些参数最好剥离出来成为一个单独的界面,可以比较方便的控制和调整,为之后的Sensitivity Analysis做准备,甚至可能遇到在上文中提到的类似于用梯度下降法寻求最优值的情况。 基础模型。这一步的核心就是做出预测的三张财务报表,最令人痛苦的是配平。可以使用各类复杂函数(Indirect/Offset/VLookup等)来进行配平而不会出错,而且复用性极高。 进阶模型。基于历史及预测的三张报表,做一些更复杂的财务分析或者估值预测,包括:DCF、Comparable、敏感性分析等等。 呈现。把用户(包括老板或者客户)最关心的产出放出来,用最友好的界面展现出来。当然做得极致些,可以把调整Scenario以及重要参数的界面也放出来,方便用户Manipulate Data(其实翻译成中文更有趣一些:猥亵数据)以便得到最满意的结果。 下图是曾经奋战过的一个Financial Model,基本涵盖了上述的逻辑和构建过程,供大家参考。

今天上午发现原先使用VS开发的CATIA二次开发程序(Win7,CATIA v5r21,VS2013),无法获取到CATIA,煞费一番苦心才想起,VS是管理员身份运行,而CATIA不是管理员身份,因而一直无法获取

解决办法:将CATIA,VS运行身份调整一致即可

CommonDialog1  是在VB中用的,VBA 请参考如下代码,然后自己修改

Sub 对话框()

With ApplicationFileDialog(msoFileDialogFilePicker)

AllowMultiSelect = False

'单选择

FiltersClear

'清除文件过滤器

FiltersAdd "Excel Files", "xls;xlw"

FiltersAdd "All Files", ""

'设置两个文件过滤器

If Show = -1 Then

'FileDialog 对象的 Show 方法显示对话框,并且返回 -1(如果您按 OK)和 0(如果您按 Cancel)。

MsgBox "您选择的文件是:" & SelectedItems(1), vbOKOnly + vbInformation, "智能Excel"

End If

End With

End Sub

以上就是关于VB/VBA使用api实现外部程序listview指定item的双击全部的内容,包括:VB/VBA使用api实现外部程序listview指定item的双击、vbafind方法参数最大多少位、VB 如何调用EXCEL VBA带参过程等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9463103.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存