VB如何vb 调用图片Windows自带的 文件搜索?

如何启动文件的默认应用 (XAML) (Windows)
如何启动文件的默认应用 (XAML)
了解如何启动文件的默认应用。很多应用需要使用它们自身无法处理的文件。例如,电子邮件应用接收大量文件类型并且需要使用一种方式在其默认处理程序中启动这些文件。
这些步骤显示了如何使用
API 为应用自身无法处理的文件启动默认处理程序。
在 Windows Phone 8.1 上,保留某些 URI 和文件扩展名用于内置应用和操作系统。将忽略使用保留的 URI 或文件扩展名注册应用的尝试。有关详细信息,请参阅。
步骤 1: 获取文件
首先,获取该文件的
如果该文件包含在应用的程序包中,则可以使用
对象并且使用
如果该文件在已知的文件夹中,则可以使用
类的属性获取
步骤 2: 启动该文件
Windows 提供了用于为文件启动默认处理程序的多个不同选项。这些选项将在此图表中和以下各节中进行介绍。
选项方法描述
使用默认处理程序启动指定的文件。
打开方式启动
启动指定的文件,该文件让用户通过“打开方式”对话框选择处理程序。
使用推荐的应用反馈启动
使用默认处理程序启动指定的文件。如果系统上未安装处理程序,则向用户推荐应用商店中的应用。
以所需的其余视图启动
(仅适用于 Windows)使用默认处理程序启动指定的文件。指定首选项以便在启动后停留于屏幕上,然后请求特定的窗口尺寸。Windows 8.1:
在 Windows 8.1 和 Windows Server 2012 R2 之前的版本中不受支持。
Windows Phone:
不受 Windows Phone 支持。
Default launch
方法以启动默认的应用。此示例会使用
方法启动应用包中包含的图像文件 test.png。
async void DefaultLaunch()
// Path to the file in the app package to launch
string imageFile = @"images\test.png";
var file = wait Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(imageFile);
if (file != null)
// Launch the retrieved file
var success = await Windows.System.Launcher.LaunchFileAsync(file);
if (success)
// File launched
// File launch failed
// Could not find file
Open with launch
设置为 true 的情况下调用
方法以启动用户从“打开方式”对话框中选择的应用。
当用户希望选择默认应用以外的应用来打开某个特定文件时,我们建议你使用“打开方式”对话框。 例如,如果你的应用允许用户启动某个图像文件,则默认的处理程序将可能是查看器应用。 在某些情况下,用户可能需要编辑图像而不只是查看图像。使用“打开方式”选项及“应用程序栏”或上下文菜单中的备用命令,让用户在此类情况下打开“打开方式”对话框并选择编辑器应用。
async void DefaultLaunch()
// Path to the file in the app package to launch
string imageFile = @"images\test.png";
var file = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(imageFile);
if (file != null)
// Set the option to show the picker
var options = new Windows.System.LauncherOptions();
options.DisplayApplicationPicker = true;
// Launch the retrieved file
bool success = await Windows.System.Launcher.LaunchFileAsync(file, options);
if (success)
// File launched
// File launch failed
// Could not find file
Launch with a recommended app fallback
在某些情况下,用户可能未安装用以处理所启动文件的应用。默认情况下,为处理此类情况,Windows 会向用户提供一个链接,帮助其在应用商店中搜索相应的应用。如果你希望为用户提供具体的建议,告知他们在此情况下应获取何种应用,则可以随所启用的文件传递该建议。为此,调用
设置为应用商店中要推荐的应用的程序包系列名称。 然后,将
设置为该应用的名称。Windows 会使用此信息将在应用商店中搜索应用这一常规选项替换为从应用商店中获取推荐的应用这一具体选项。
必须设置这些选项才能推荐应用。设置一个而不设置另一个将导致出现故障。
async void DefaultLaunch()
// Path to the file in the app package to launch
string imageFile = @"images\test.contoso";
// Get the image file from the package's image directory
var file = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(imageFile);
if (file != null)
// Set the recommended app
var options = new Windows.System.LauncherOptions();
options.PreferredApplicationPackageFamilyName = “Contoso.FileApp_8wknc82po1e”;
options.PreferredApplicationDisplayName = “Contoso File App”;
// Launch the retrieved file pass in the recommended app
// in case the user has no apps installed to handle the file
bool success = await Windows.System.Launcher.LaunchFileAsync(file, options);
if (success)
// File launched
// File launch failed
// Could not find file
以所需的其余视图启动(仅适用于 Windows)
的源应用可请求在文件启动后停留于屏幕上。默认情况下,Windows 会尝试在负责处理该文件的源应用和目标应用之间平等地共享可用空间。源应用可借助
属性向操作系统指示希望其应用占用较多或较少的可用空间。此外,还可使用 DesiredRemainingView 以指示源应用在文件启动后无需停留于屏幕上,并可由目标应用完全替代。此属性仅指定调用应用的首选窗口大小。不指定可能会同时显示在屏幕上的其他应用的行为。
Windows 在确定目标应用的最终窗口尺寸时会考虑多个不同因素;例如,源应用的首选项、屏幕上的应用数量以及屏幕的方向。设置
并不保证为目标应用设定具体的窗口化行为。
Windows 8.1:
在 Windows 8.1 和 Windows Server 2012 R2 之前的版本中不受支持。
Windows Phone:
不受 Windows Phone 支持。
async void DefaultLaunch()
// Path to the file in the app package to launch
string imageFile = @"images\test.png";
var file = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(imageFile);
if (file != null)
// Set the desired remaining view
var options = new Windows.System.LauncherOptions();
options.DesiredRemainingView = Windows.UI.ViewManagement.ViewSizePreference.UseL
// Launch the retrieved file
bool success = await Windows.System.Launcher.LaunchFileAsync(file, options);
if (success)
// File launched
// File launch failed
// Could not find file
你的应用不能选择要启动的应用。用户确定启动哪个应用。用户可以选择 Windows 运行时应用或桌面应用。
启动文件时,你的应用必须是前台应用,即对于用户必须是可见的。此要求有助于确保用户保持控制。为满足此要求,需确保将文件的所有启动都直接绑定到应用的 UI 中。 大多数情况下,用户总是必须采取某个操作来发起文件启动。
如果包含代码或脚本的文件类型(例如 .exe、.msi 和 .js 文件)由操作系统自动执行,则你无法启动这些文件类型。此限制可防止用户遭受可能修改操作系统的潜在恶意文件的损害。如果可以包含脚本的文件类型由可隔离脚本的应用来执行(例如 .docx 文件),则你可以使用此方法来启动这些文件类型。Microsoft Word 之类的应用可防止 .docx 文件中的脚本修改操作系统。
如果你尝试启动受限制的文件类型,则启动将失败,且会调用错误回调。如果你的应用处理许多不同类型的文件,并且你预计会遇到该错误,则应该为你的用户提供回退体验。例如,你可以为用户提供将文件保存到桌面的选项,然后用户可以从桌面打开该文件。
您对此内容的反馈非常重要。请告诉我们您的想法。
更多反馈?
1500 个剩余字符
我们非常感谢您的反馈。
开发人员中心1894人阅读
1. Dump文件的用途Dump文件, 主要用于诊断一个进程的运行状态,尤其是碰到崩溃(Crash)或者挂起(hang)不响应时,需要分析它的工作状态. &除了平时常见的attach到这个进程, 分析Dump文件就成了一个重要的手段了.相信一些做软件维护和支持的工程师在这方面深有体会, 比如某天某时,客户说, 呀, 糟糕, 服务器进程挂掉了, 怎么回事? 然后,看看了日志文件,也没有什么可用的信息. &技术支持告诉他, 按某步骤生成一个dump文件来看看......2. 如何生成Dump文件, 如何获取调用栈生成dump文件, 可以按照进程的状态要求, 分两种情况:1) 这个进程并不会Crash, 它一直处于运行状态,&& & 那么如何在不终止进程的情况下抓取dump文件呢?Debugging Tools for Windows里提供了一个非常好的工具,adplus.vbs。从名字可以看出,实际上是一个vb脚本,只是对cdb调试器作的一个包装脚本。& & 其路径与Debugging Tools for Windows的安装路径相同,使用的方法也很简单,如下所示:& & &adplus.vbs -hang -p 1234 -o d:/dump& & &其中-hang指明使用hang模式,亦即在进程运行过程中附加上去snapshot抓取一个dump文件,完成之后detach。&& & &使用sysinternals中的procdump命令,一样可以得到运行状态的的进程的dump文件:& & &如:procdump -s 20 -n 1 OBMO.exe c:\OBMO.dmp
procdump -s 20 -n 1 AMPService.exe c:\AMPService.dmp
procdump -s 20 -n 1 OBServiceManager.exe c:\OBServiceManager.dmp
procdump -s 20 -n 1 MlSrvWrapper.exe c:\MlSrvWrapper.dmp
procdump -s 20 -n 1 AdminWebServices.exe c:\AdminWebServices.dmp& & &&&2) 进程起来之后,很快就会Crash, 要获取它Crash时的dump文件& & &与之对应的是-crash崩溃模式,用户先启动adplus,然后由它启动要监控的程序,在出现异常崩溃时自动生成dump文件,或者通过Ctrl-C人为发出抓取指 令。但是-crash模式在抓取完成之后,被监控的进程就必须终止。因此我们在这里只选用-hang模式。-p是要调试的进程ID,-o 指定要output的dump文件路径。另外,与adplus类似的,有个UserDump工具,但是抓取用户模式的进程,而adplus则是内核模式和用户模式两者皆可。& & &再就是使用Dr. Waston工具自动创建dump文件 (Crash的时候)【抓dump】1、一般抓法adplus -hang -p 3230 -quiet 抓3230 pid进程,hang模式,相当于把那个进程暂停住,取内存快照adplus -crash -pn w3wp -quiet 抓w3wp进程,crash模式,当那个进程崩溃结束的时候自动抓取当时的内存adplus -hang -iis -quiet 抓IIS相关进程,包括其上host的web应用,以及iis自身2、抓window服务3、远程抓4、抓蓝屏和死机的dump电脑无故重启或者蓝屏会在C:\WINDOWS\Minidump\下保存一个minidump,但是这个minidump可用的命令很少,一般只打!analyze –v看到是哪个进程引起的,还有相关的驱动模块就基本定位问题了。5、IIS回收的时候抓6、计划任务抓比如一个进程起来后不知道它什么时候会意外崩溃,可以在计划任务里用crash里抓,当那个进程意外终止的时候,cdb可以直接附加上去,抓取当时的dump,如果要抓一些会自动重启的进程,而且要抓每次重启前的dump,可以参考附录里一节。3. 如何分析Dump文件【常用命令】1、先path C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727,把.net路径设置为path环境变量,一遍在windbg里可以直接.load sos,而不必.load C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\sos.dll2、ld demo,加载你程序的pdb文件,调试.net程序一般要把kernel32和mscorwks的符号加载上,关于这两个东西大家可以查资料,尤其是后者有哪些函数可以多了解一些。3、在windbg的file/symbol file path对话框里输入以下文字,以便自动加载和下载符号C:\WINDOWS\Sd:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\.sympath SRV*d:\localsymbols*/download/symbols其中有windows、.net2.0和自动从网上下载的调试符号,注意根据自己的情况适当修改目录【调试死锁】1、!syncblk,查看哪些线程拿到了锁2、~67e!clrstack 跳到某个拿到锁的线程看它正在干什么操作,迟迟不肯释放锁3、!runaway 查看这个占有锁的线程运行了多长时间。4、~*e!clrstack查看所有线程的托管堆栈,看看哪些是正在等待锁的,比如hang在System.Threading.Monitor.Enter(System.Object)&5、~136s选择该线程,显示如下0:000& ~136s eax= ebx=08deeb5c ecx=03eff0d4 edx=5570ab69 esi=08deeb5c edi=7ffd6000 eip=7c95ed54 esp=08deeb10 ebp=08deebb8 iopl=0 nv up ei pl zr na pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl= ntdll!KiFastSystemCallRet: 7c95ed54 c3 ret找到ecx寄存器的值,复制后ctrl+f,向上查找,会找到!syncblk的地方,如下0:000& !syncblk Index SyncBlock MonitorHeld Recursion Owning Thread Info SyncBlock Owner be4 5 1 03ee8f88 22c8 67 185e2ef0 System.Object c 3 1 dd4 49 1060d3ac System.Object c 15 1
1aa8 80 185e7704 System.Object 11428 03eff0d4 35 1 053b8fa8 169c 120 166acd98 System.Object c6b4 61 1 06bc 86 1a5bea88 System.Object可以看到136线程等待的锁被120号线程占着不放(格式有点乱,凑合看),6、有时候通过ecx寄存器找锁不是很确定,可以用~* kb来把所有线程堆栈打出来,然后根据!syncblk出来的同步快的值去搜索大概有多少个线程在等那个锁。因为同样是等待锁,可等的状态不一样,有的在Q里,有的锁已经升级,有的去尝试去拿锁了,所以不一定当时ecx寄存器指向那块内存,具体如何找到某个正在等待锁的线程等待的锁的内存地址,以及它正等待的这个锁被哪个线程拿着,我还没琢磨出规律来,但一般情况下,如果有其它同步对象的话,更难查。.net里用我上面说的几步就能查出锁的问题了。更详细的内容,可以参照这篇文章:4. &获取调用栈这里,可以使用几个工具:1. 使用StraceNT这个trace工具StraceNT&-&A&System&Call&Tracer&for&Windows&&2. 直接使用procexp.exe也可以看到进程的调用栈信息,如果符号库比较全,则调用栈很清晰.3. MSE (Managed Stack Explorer)& & 这个工具对于dotnet进程非常实用./, 直接可以看到dotnet进程的托管栈细节.工具基本上也就这么多了,具体分析还得看怎么用.&&
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:463765次
积分:7328
积分:7328
排名:第896名
原创:239篇
转载:18篇
评论:294条
###iihero@CSDN###
① 本博客中文章,除转载外,均为作者本人原创。请转载时,尊重个人劳动,注明原始出处
② 内容主要涉及数据库相关理论技术、云计算及软件架构项目管理
同时我也是, , 版版主, 欢迎访问相关论坛
③ 联系方式:iihero[, iihero[
我出版过的图书:
文章:23篇
阅读:26674
阅读:19287
(1)(1)(4)(14)(11)(1)(1)(2)(3)(15)(55)(3)(1)(1)(1)(2)(2)(12)(9)(1)(1)(2)(9)(5)(2)(1)(1)(2)(9)(7)(1)(1)(16)(9)(5)(1)(3)(2)(2)(1)(1)(15)(4)(1)(14)(1)(2)(1)(2)VB应用程序中实现查找和替换功能
ZDNet软件频道 时间: 作者:unknow  | soft6 
本文关键词:
 尽管Visual Basic并不是我最喜欢的开发工具,但我喜欢它简单而又丰富的库集。
上一篇:下一篇:
替换查找vbvb.netWindows
? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ?
最受关注的文章:
关键字: &&&&&&&&&& 关键字: &&&&&& 关键字: &&&&&&&& 关键字: && 关键字: &&&&
最新更新文章:
??????????
??????????
Copyright& 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备号-159京公网安备:资费:包月5元手机:
介绍:细处着手,巧处用功。高手和菜鸟之间的差别就是:高手什么都知道,菜鸟知道一些。电脑小技巧收集最新奇招高招,让你轻松踏上高手之路。   下面是windows中提供的对于文件进行操作的API函数及其功能:
Windows API函数
CloseHandle
关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等。涉及文件处理时,这个函数通常与vb的close命令相似。应尽可能的使用close,因为它支持vb的差错控制。注意这个函数使用的文件句柄与vb的文件编号是完全不同的
CompareFileTime
根据FILETIME结构的信息,对比两个文件的时间
复制文件。与vb的filecopy命令相似
CreateFile
这是一个全功能的函数,可打开和创建文件、管道、邮槽、通信服务、设备以及控制台
DeleteFile
删除指定文件
关闭由FindFirstFile函数创建的一个搜索句柄
FindFirstFile
根据文件名查找文件
FindNextFile
根据调用FindFirstFile函数时指定的一个文件名查找下一个文件
FlushFileBuffers
针对指定的文件句柄,刷新内部文件缓冲区
GetBinaryType
判断文件是否可以执行
GetFileAttributes
判断指定文件的属性
GetFileInformationByHandle
这个函数提供了获取文件信息的一种机制――在一个BY_HANDLE_FILE_INFORMATION结构中装载与文件有关的信息
GetFileSize
判断文件长度
GetFileTime
取得指定文件的时间信息
GetFileType
在给出文件句柄的前提下,判断文件类型
GetFileVersionInfo
从支持版本标记的一个模块里获取文件版本信息
GetFileVersionInfoSize
针对包含了版本资源的一个文件,判断容纳文件版本信息需要一个多大的缓冲区
GetShortPathName
获取指定文件的短路径名
GetTempFileName
这个函数包含了一个临时文件的名字,它可由应用程序使用
关闭指定的文件,请参考CloseHandle函数,了解进一步的情况
创建一个文件。如文件已经存在,就会将其缩短成零长度,并将其打开,以便读写
设置文件中进行读写的当前位置。该函数与vb的seek语句类似。如果用vb的open命令打开了一个文件,那么不要再对这个文件使用llseek函数
在windows中,文件可用共享模式打开――在这种情况下,多个进程可同时访问该文件。利用这个函数,要对文件进行读写的一个应用程序可将文件的某一部分锁定起来,使其不能由其他应用程序访问。这样便避免了同时读写时发生的冲突
LockFileEx
与LockFile相似,只是它提供了更多的功能
以二进制模式打开指定的文件
将文件中的数据读入内存缓冲区
将数据从内存缓冲区写入一个文件
MoveFile, MoveFileEx
移动文件。如dwFlags设为零,则MoveFile完全等价于MoveFileEx
这个函数能执行大量不同的文件操作。和这个函数相比,请优先考虑win32的CreateFile函数(它能打开命名管道和控制Unicode文件名,同时不受128个字符的路径名称的限制)
从文件中读出数据。与lread函数相比,这个函数要明显灵活的多。该函数能够操作通信设备、管道、套接字以及邮槽
ReadFileEx
与ReadFile相似,只是它只能用于异步读操作,并包含了一个完整的回调
SearchPath
查找指定文件
SetEndOfFile
针对一个打开的文件,将当前文件位置设为文件末尾
SetFileAttributes
设置文件属性
SetFilePointer
在一个文件中设置当前的读写位置
SetFileTime
设置文件的创建、访问及上次修改时间
UnlockFile
解除对一个文件的锁定
UnlockFileEx
解除对一个文件的锁定
将数据写入一个文件。该函数比lwrite函数要灵活的多。也可将这个函数应用于对通信设备、管道、套接字以及邮槽的处理
WriteFileEx
与WriteFile类似,只是它只能用于异步写操作,并包括了一个完整的回调  让我们通过几个例子来详细的了解一下其中主要的几个函数及其用法:
(作者:潇潇责任编辑:方舟)
欢迎在新浪微博上关注我们
笔记本手机数码家电

我要回帖

更多关于 vb 调用图片 的文章

 

随机推荐