notepad 打开文件 并跳到某行

budweiser 2009-07-17 04:15:33
Windows98/2K/XP系统自带的文本编辑器有支持命令行参数就可以打开一个文本文件并跳到到某一行的吗?
像unix下的vi,用命令
vi -c "9" dxsb.txt
就可以打开文本文件“dxsb.txt”并把光标停留在第九行第一列


有人提议用 脚本 发送 SendKeys, 但本人不会,有会的人说一下吗?

100分奖励
...全文
539 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhouzhipen 2009-07-18
  • 打赏
  • 举报
回复

HINSTANCE hinstance = ShellExecute(*this, _T("open"), m_strFilePath, NULL, NULL, SW_SHOWNORMAL);

CString strWindNmae=m_strFilePath+" - 记事本";
HWND hWnd=::FindWindow(NULL,strWindNmae);
::SendMessage(hWnd, EM_LINESCROLL, 0, 200); //跳到200行


试试这个
xwsn007 2009-07-18
  • 打赏
  • 举报
回复
MARK,顶一下
danxuezx 2009-07-17
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 budtang 的回复:]
HWND handle;
HINSTANCE hinstance = ShellExecute(handle, _T("open"), m_strFilePath, NULL, NULL, SW_SHOWNORMAL);

::SendMessage(handle, EM_LINESCROLL, 0, 4);  //跳到200行


怎么不行啊, 代码是这样的, 帮忙看下。
[/Quote]
您SendMessage里的handle和您记事本窗口有什么关系呢?
tkminigame 2009-07-17
  • 打赏
  • 举报
回复
HINSTANCE 和HWND是两个东西,不能互相转换
budweiser 2009-07-17
  • 打赏
  • 举报
回复
具体情况是这样的:我在一个程序中调用notepad打开文件,然后让notepad定位到文件的某一行。

HINSTANCE hinstance = ShellExecute(this->GetSafeHwnd(), _T("open"), m_strFilePath, NULL, NULL, SW_SHOWNORMAL);

(this->GetSafeHwnd()是父窗口句柄,也就是我的程序的句柄)
m_strFilePath 是被打开文件的路径



然后得到的是 HINSTANCE ,但是 ::SendMessage(handle, EM_LINESCROLL, 0, 4); //跳到4行

这个消息函数要得第一个参数是HWND, 所以他们之间存在一个转化过程。

还有一个问题是,他们之间可不可以传递消息???
oyljerry 2009-07-17
  • 打赏
  • 举报
回复
FindWindow查找notepad得到handle试试
budweiser 2009-07-17
  • 打赏
  • 举报
回复
HWND handle;
HINSTANCE hinstance = ShellExecute(handle, _T("open"), m_strFilePath, NULL, NULL, SW_SHOWNORMAL);

::SendMessage(handle, EM_LINESCROLL, 0, 4); //跳到200行


怎么不行啊, 代码是这样的, 帮忙看下。
eagerle01 2009-07-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 oyljerry 的回复:]
SendMessage(hwnd, EM_LINESCROLL, 0, 200)  //跳到200行

[/Quote]
up
oyljerry 2009-07-17
  • 打赏
  • 举报
回复
SendMessage(hwnd, EM_LINESCROLL, 0, 200) //跳到200行
wangk 2009-07-17
  • 打赏
  • 举报
回复
发送EM_LINESCROLL消息。
消息参数请参考MSDN。
在Windows系统中,notepad.exe(记事本)是一个“经典的”、“简洁的”文本编辑器。这个软件,没有华丽的外观,也没有繁杂的功能,仅仅是一个文本编辑小软件。虽然经过Windows系统数十年的变换,但它却保持着永恒姿态,数十年来几乎不曾改变过。曾经,VS中的经典DEMO中,就有它的身影,一个新建的项目,就藏有一个新建的“记事本”。然而,在WPF的项目中,“记事本”却消失的无影无踪,也许是很容易实现,也许是为了革新,而不愿再传承“经典”。确实,使用WPF技术再次让“记事本”复活,确实也是一件非常容易的事情。但是,如果,使用WPF技术,再搭配当下非常流行的MVVM模式呢?复活“记事本”的难度却陡然上升至很多WPF程序员为之默默叹气。而,MVVM模式是掌握WPF的最顶级技术,MVVM模式拥有的无尽的优势,让WPF相对于过往的编程模式来说,是一种革命性的创新,从而也成为大中型WPF项目中必须的模式。但,学习难度。。。。。。在这个《WPF记事本开发详解》的课程中,赵老师带领你在WPF中,从零开始一步步构建MVVM模式,直到让你亲自以WPF+MVVM的方式,让这个经典的“记事本”软件从你的手中“复活”。在课程中,赵老师会详细讲解WPF和MVVM中的各种技巧,让你从此爱上WPF+MVVM编程。

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧