VB6修改txt文档后,如何将其另存为(指定新的路径&名称)?如果知道某一程序的句柄(如Photoshop),该如何将其打开的图片按照指定的路径&名称保存呢?

解决方案 »

  1.   

    所谓的另存就是再创建一个文件后把修改的内容保存过去,这样原来文件的内容不变。而说使用FILECOPY的意思是先保存原文件再拷贝,结果两个文件有相同的内容,这还是另存吗?
      

  2.   

    实际应用情况是这样的:
        1、由VB6编写的界面程序读取I/O端口;
        2、将读出的数据处理生成一个特殊文件A,可以用记事本读取修改;
        3、再由VB6界面程序调用特定应用程序B,文件A为此应用程序的输入文件,通过一系列封闭的运算,得到一个图片格式的输出文件C;
        4、要将文件C(图片)实时显示在界面程序的图片框中,同时将此文件按照给定路径&文件名保存到磁盘。    因为文件B的内容并不是用VB程序生成的,而是第三方的应用程序B生成的,所以,在指定的文件夹打开文件并写入修改后的内容这个方法似乎是行不通的。
        我的思路是用FindWindow/FindWindowEx控制程序B的菜单句柄,打开“另存为”对话框,希望能够先将文件C(图片)保存到本地硬盘,然后在PictureBox调用显示此图片文件。但是问题出现了:在打开“另存为”对话框后,FindWindowEx无法获取文件名Text框&“保存”按钮的句柄,无法用SendMessage来指定目标文件夹&文件名,也无法模拟点击“保存”按钮。
        存为”对话框属于有模式对话框,在弹出后就进入了一个封闭的自循环,无法接收外部的信息。(可能是我理解错误吧 :) )
        后来请教同学,被提示说用钩子函数,但是看了一段时间的Hook,不懂。惭愧中……
        
        现在我想,能不能直接用类似SendMessage或SendKeys之类的命令在不弹出“另存为”对话框的前提下将文件C(图片)按指定文件名保存到指定文件夹下?    不知道我说清楚没有,:)希望各位大虾能够不吝赐教!!!!    由于某些原因,该第三方应用程序的名称不能公布,希望大家不要介意。
      

  3.   

    实际应用情况是这样的:
        1、由VB6编写的界面程序读取I/O端口;
        2、将读出的数据处理生成一个特殊文件A,可以用记事本读取修改;
        3、再由VB6界面程序调用特定应用程序B,文件A为此应用程序的输入文件,通过一系列封闭的运算,得到一个图片格式的输出文件C;
        4、要将文件C(图片)实时显示在界面程序的图片框中,同时将此文件按照给定路径&文件名保存到磁盘。    因为文件B的内容并不是用VB程序生成的,而是第三方的应用程序B生成的,所以,在指定的文件夹打开文件并写入修改后的内容这个方法似乎是行不通的。
        我的思路是用FindWindow/FindWindowEx控制程序B的菜单句柄,打开“另存为”对话框,希望能够先将文件C(图片)保存到本地硬盘,然后在PictureBox调用显示此图片文件。但是问题出现了:在打开“另存为”对话框后,FindWindowEx无法获取文件名Text框&“保存”按钮的句柄,无法用SendMessage来指定目标文件夹&文件名,也无法模拟点击“保存”按钮。
        存为”对话框属于有模式对话框,在弹出后就进入了一个封闭的自循环,无法接收外部的信息。(可能是我理解错误吧 :) )
        后来请教同学,被提示说用钩子函数,但是看了一段时间的Hook,不懂。惭愧中……
        
        现在我想,能不能直接用类似SendMessage或SendKeys之类的命令在不弹出“另存为”对话框的前提下将文件C(图片)按指定文件名保存到指定文件夹下?    不知道我说清楚没有,:)希望各位大虾能够不吝赐教!!!!    由于某些原因,该第三方应用程序的名称不能公布,希望大家不要介意。
      

  4.   

    Private Sub 另存为_Click()
        Dim 一个变量 As String
        With 公用对话框
            .DialogTitle = "另存为"
            .CancelError = False
            .Filter = "文本文件(*.txt)|*.txt|所有文件|*.*"
            .Flags = cdlOFNOverwritePrompt
            .ShowSave
            一个变量 = .FileName
        End With
        控件.SaveFile 一个变量
    End Sub
      

  5.   

    '真有那么难么?奇怪,最近VB版的高人都哪去了?是不是学习JAVA或NET了?郁闷!
    '不知道你的第三方应用程序是什么,这里演示操作记事本
    Private Sub Command1_Click()
        Shell "NotePad", vbNormalFocus      '打开记事本
        SendKeys "PowerBASIC中国", True     '键入一些字符
        SendKeys "%FA", True                '打开另存为对话框
        SendKeys "C:\PowerBASIC.txt", True  '输入文件名
        SendKeys "{TAB}{TAB}", True         '将焦点定位到保存按钮上
        SendKeys "{ENTER}", True            '回车
        SendKeys "%(FX)", True              '退出记事本
        MsgBox "您的文件已经保存到 C:\PowerBASIC.txt 中!"
    End Sub
      

  6.   

    由于此第三方软件涉密不方便给出,但是可以说是一个类似于photoshop的多窗口程序,只是功能不一样而已。couragetodream &  VBDN(PowerBASIC 中国 http://powerbasic.cn) 两位大虾的方法非常管用,特此感谢二位!!!