大虾们,帮我一下,把C++重写成C#

wawawo 2007-04-18 06:52:40
源址:http://blogs.msdn.com/fyuan/archive/2007/02/24/printing-documents-to-microsoft-xps-document-writer-without-user-interaction.aspx

谁帮我用C#重写一下,谢谢了。
(Printing documents to Microsoft XPS Document Writer without user interaction)

#include <windows.h>

#include <strsafe.h>



const wchar_t * Dialog_Class = L"#32770";





HRESULT PrintHTML(const wchar_t * pUri, const wchar_t * pFileName)

{

HRESULT hr;



STARTUPINFO si = { sizeof(si) };

PROCESS_INFORMATION pi;



wchar_t command[MAX_PATH];



hr = StringCchPrintf(command, _countof(command),

L"rundll32.exe mshtml.dll,PrintHTML \"%s\"", pUri);



if (FAILED(hr))

{

return hr;

}



if (CreateProcess(0, command, 0, 0, FALSE, 0, 0, 0, &si, &pi))

{

printf("\r\nStarting '%S'\r\n", command);



CloseHandle(pi.hProcess);

CloseHandle(pi.hThread);

}



DWORD size = _countof(command);

GetDefaultPrinter(command, & size);

printf(" Default printer: '%S'\r\n", command);



printf("\r\nWaiting for Print dialog box\r\n");

Sleep(5 * 1000);



// Find Print Dialog box

HWND hWnd = FindWindow(Dialog_Class, L"Print");



// Print button

HWND hChild = FindWindowEx(hWnd, NULL, NULL, L"&Print");



GetWindowText(hChild, command, _countof(command));



printf(" hwnd = %p %p('%S')\r\n", hWnd, hChild, command);



// Press Print button

SendMessage (hChild, WM_IME_KEYDOWN, 'P', 0);



printf("\r\nWaiting for File Save dialog box\r\n");

Sleep(5 * 1000);



// Find Save File Dialog Box



hWnd = FindWindow(Dialog_Class, L"Save the file as");



hChild = FindWindowEx(hWnd, NULL, L"ComboBoxEx32", NULL);

hChild = FindWindowEx(hChild, NULL, L"ComboBox", NULL);

hChild = FindWindowEx(hChild, NULL, L"Edit", NULL); // File name edit control



printf(" hwnd = %p %p\r\n", hWnd, hChild);



// Enter file name

SendMessage(hChild, WM_SETTEXT, NULL, (LPARAM) pFileName);



Sleep(1000);



// Find Save button

hChild = FindWindowEx(hWnd, NULL, NULL, L"&Save");



GetWindowText(hChild, command, _countof(command));



printf(" hwnd = %p %p('%S')\r\n", hWnd, hChild, command);



// Press Save button

SendMessage (hChild, WM_IME_KEYDOWN, 'S', 0);



printf("\r\nSaving to '%S'\r\n", pFileName);



return hr;

}

...全文
248 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yutaooo 2007-04-19
  • 打赏
  • 举报
回复
这个改成C#不太合适吧。顶 jiangsheng(蒋晟.Net[MVP]) 的方案。采用dll.
wawawo 2007-04-19
  • 打赏
  • 举报
回复
怎么没人帮忙啊?
jixingzhong 2007-04-19
  • 打赏
  • 举报
回复
工作量不是很大......
yixiao386 2007-04-19
  • 打赏
  • 举报
回复
这个还是要靠你自己的哦!
蒋晟 2007-04-19
  • 打赏
  • 举报
回复
自己写成DLL
CathySun118 2007-04-18
  • 打赏
  • 举报
回复
帮顶
celftj 2007-04-18
  • 打赏
  • 举报
回复
不懂C#者路过。。
下载代码方式:https://pan.quark.cn/s/a4b39357ea24 全国计算机等级考试二级教程《Python语言程序设计》(2018年版)被视为针对Python入门者和备考人员的核心学习材料。该资料汇总了教材内的所有编程练习答案,这些答案在Python 3.5.3环境中经过实际执行测试,从而保障了代码的准确性和应用价值。备考人员借助这些答案,能够评估自身的学习进度,并深入理解和熟练掌握Python编程的基础原理与方法。 1. Python基础理论:Python作为一门高级编程语言,因其简明扼要的语法结构和卓越的功能表现而备受推崇。基础内容涵盖了变量、数据种类(例如整型、浮点型、字符串、布尔型、列表、元组、字典、集合)、逻辑控制(比如条件判断if-else,循环控制for、while)、函数的声明及使用、模块的引入等。 2. Python高级应用:Python的进阶内容涉及异常管理(try-except-finally结构),类与实例(面向对象编程的基础,包含类的构造、对象的生、属性与方法的运用、继承机制、多态表现),装饰器(用于调整函数或类的功能特性),上下文管理器(借助with语句实现资源管理)等。 3. 数据文件处理:Python配备了全面的文件操作功能,涉及文件的开启、数据读写、关闭操作,以及多种操作模式(例如r模式用于读取,w模式用于写入,a模式用于追加内容等)。此外,还包括文本文件与二进制文件的转换处理,以及文件的位置调整、复制和删除等操作。 4. 标准库的运用:Python的标准库资源极为丰富,比如os模块提供操作系统接口,sys模块用于获取系统参数,random模块可用于生随机数值,datetime模块负责处...

65,213

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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