| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1513 人关注过本帖
标题:[解决]拖图标运行程序法
只看楼主 加入收藏
SNAKEQX
Rank: 1
等 级:新手上路
帖 子:112
专家分:3
注 册:2006-4-11
收藏
 问题点数:0 回复次数:11 
[解决]拖图标运行程序法
上次的问题没人回答,关键在于问题问的不对,这次重问。

windows有这么一种操作,假设有个prog.exe的可执行文件可以修改某文本文件,有一个a.txt的文本文件。

把a.txt的图标拖到prog.exe的图标上,a.txt就被修改了。
请问这种操作是如何用c语言实现的???

谢谢:)

[[it] 本帖最后由 SNAKEQX 于 2008-4-24 12:31 编辑 [/it]]
搜索更多相关主题的帖子: 程序法 图标 运行 
2008-04-23 16:58
雨中飛燕
Rank: 1
等 级:新手上路
帖 子:765
专家分:0
注 册:2007-10-13
收藏
得分:0 
理论上等价于命令行
prog.exe a.txt

" border="0" />[color=white]
2008-04-23 17:03
sxn0508
Rank: 1
等 级:新手上路
帖 子:120
专家分:0
注 册:2008-1-24
收藏
得分:0 
经实践,果如LS所说
附上试验程序和结果
程序代码:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
    int i;
    for(i = 0; i < argc; i++)
    {
        puts(argv[i]);
    }
    system("PAUSE");
    return 0;
}

程序代码:
C:\Documents and Settings\Administrator\桌面\未命名14.exe
C:\Documents and Settings\Administrator\桌面\未命名14.cpp
请按任意键继续. . .

获取了文件名及路径
后面想拿它咋滴就咋滴~~

[[it] 本帖最后由 sxn0508 于 2008-4-23 17:34 编辑 [/it]]
2008-04-23 17:32
SNAKEQX
Rank: 1
等 级:新手上路
帖 子:112
专家分:3
注 册:2006-4-11
收藏
得分:0 
请帮我看看下面代码,拖图标可以运行,但是无输出文件,打命令行就 没问题。
下楼贴代码
2008-04-23 17:33
SNAKEQX
Rank: 1
等 级:新手上路
帖 子:112
专家分:3
注 册:2006-4-11
收藏
得分:0 
/////////////////////////////////////////
// A prog. make my work easier
// during scanning the barcode
// of the module.
// Ver 1.0
// Writer: Qian Xin on 2008.4.23
////////////////////////////////////////

#include<stdio.h>
#include<stdlib.h>

int main(int argc, char *argv[])
{
    // 46 modules in fact, but 4 modules for buff
    // Every barcode has 1 char and 8 ints
    // 10 makes 1 buff in barcode
    // barcode example: s30201234
    char strBarcode[50][10];
    int nModuleNumber=0;
   
    //print paras
    printf("%d para\n",argc);
    for (int i=0;i<argc;i++) printf ("para[%d]:%s\n",i,argv[i]);
   
   
    FILE *in,*out;  
    // file to read  
    if (!(in=fopen(argv[1],"r")))
    {
        printf("Read Error!\n");
        system("pause");
        return 1;
    }
    // file to write   
    if (!(out=fopen("out.txt","w")))
    {
        printf("Write Error!\n");
        system("pause");
        return 1;
    }   
   
    // read from file
    while(fscanf(in,"%s",&strBarcode[nModuleNumber]) != EOF)
        nModuleNumber++;
    // converting
    if (nModuleNumber != 46)
    {
        printf ("There are %d modules!\n",nModuleNumber);
        printf ("Please check it out!\n");
    }     
    else
    {
        printf ("Success!\n");
    }   
    // write to the file removing every first character of the string
    for (int i=0;i<nModuleNumber;i++)
    {
        fprintf(out,"%s",strBarcode[i]+1);
        fprintf(out,"\n");
    }   

    system ("pause");
    fclose(in);
    fclose(out);
   
    return 0;
}

[[it] 本帖最后由 SNAKEQX 于 2008-4-23 18:16 编辑 [/it]]
2008-04-23 17:34
hao0716
Rank: 4
等 级:业余侠客
威 望:1
帖 子:353
专家分:222
注 册:2006-4-11
收藏
得分:0 
这个是拖进去的
2 para
para[0]:E:\test\Debug\test.exe
para[1]:E:\test\Debug\test.ilk
There are 4 modules!
Please check it out!

这个是直接打的
2 para
para[0]:test.exe
para[1]:test.ilk
There are 4 modules!
Please check it out!
可以看出参数不一样 一个是绝对路径 一个是相对路径
out=fopen("out.txt","w")你这个并没有写绝对路径
我把路径改成绝对路径就可以输出了
话说回来我一直不知道竟然可以拖.....

2008-04-23 18:05
SNAKEQX
Rank: 1
等 级:新手上路
帖 子:112
专家分:3
注 册:2006-4-11
收藏
得分:0 
哦,原来是路径问题,也就是说如果我拖得话,可能输出路径就是我的环境变量的路径?
那么如何让拖进去的文件输出也是相对路径呢???
2008-04-23 18:12
SNAKEQX
Rank: 1
等 级:新手上路
帖 子:112
专家分:3
注 册:2006-4-11
收藏
得分:0 
自己顶一下!!!大家帮帮我啊!
2008-04-23 18:58
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
main还有一个参数
int main(int argc, char* argv[], char* envp[])

envp就是环境变量,但这是非标的  :)

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2008-04-23 20:27
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
可以处理得到的文件名,取得路径,然后SetCurrentDir(API,不知道CRT里面怎么表示的),应该就可以了……
顺便说说,实际上,取得路径了以后,直接strcat输出文件名就可以了………………

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-04-24 02:24
快速回复:[解决]拖图标运行程序法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016833 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved