我正在创建一个服务,它将监视特定文件夹并打印放在此文件夹中的任何文件.我对可以发送到要打印的文件夹的各种文件类型有困难.
我的第一次尝试是使用Microsoft Office文件.我要做的是启动办公室打印文件.它更像是一个捕获,我不是真正使用库或类似的东西.
到目前为止,这种方法可行,但当没有Office应用程序在计算机上启动时,Office会要求用户输入首字母.因此,在这种情况下,我的应用程序将无法正常工作,因为我以编程方式执行此操作.
ProcessStartInfo info = new ProcessStartInfo(myDocumentsPath);
info.Verb = "Print";
info.CreateNoWindow = true;
info.WindowStyle = ProcessWindowStyle.Hidden;
Process.Start(info);
Run Code Online (Sandbox Code Playgroud)
现在我正在尝试使用Microsoft Office文件,但我也会对其他类型应用相同的方法.
无论如何,要绕过第一次Office运行所需的缩写?
或者更好地解决我的问题?
任何帮助表示赞赏,提前谢谢.
这个错误意味着什么?
错误:请求'*printerInfo'中的成员'Attributes',其指针类型为'PPRINTER_INFO_2 {aka _PRINTER_INFO_2A*}'(也许您打算使用' - >'?)
PPRINTER_INFO_2* printerInfo = NULL;
void ChangedPrinter()
{
...
DWORD attributesPrinterInfo;
printerInfo = (PPRINTER_INFO_2*) malloc(bufferSize);
attributesPrinterInfo = printerInfo->Attributes; // error
free(printerInfo);
}
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么???
我无法使用delphi中开发的dll的功能.我在类型的转换方面遇到了一些困难.
这是我想调用DLL的函数:
function rData(ID: Cardinal; queue: WideString): WideString; stdcall;
Run Code Online (Sandbox Code Playgroud)
我在C++中的代码是这样的:
typedef string (*ReturnDataSPL)(DWORD, string);
string result;
HMODULE hLib;
hLib = LoadLibrary("delphi.dll");
pReturnDataSPL = (ReturnDataSPL)GetProcAddress(hLib,"rData");
if (NULL != pReturnDataSPL)
result = pReturnDataSPL(JobID,printerName);
Run Code Online (Sandbox Code Playgroud)
问题我无法使其发挥作用.我不知道哪种类型与Delphi WideString和Cardinal兼容.
谁来帮帮我
编辑:
这是我想调用DLL的函数:
Run Code Online (Sandbox Code Playgroud)procedure rData(ID: Cardinal; queue: WideString; var Result: WideString); stdcall;更改代码后看起来像这样:
Run Code Online (Sandbox Code Playgroud)typedef void (__stdcall *ReturnDataSPL)(DWORD, BSTR, BSTR&); HMODULE hLib; BSTR result = NULL; hLib = LoadLibrary("delphi.dll"); pReturnDataSPL = (ReturnDataSPL)GetProcAddress(hLib,"rData"); if (NULL != pReturnDataSPL) { pReturnDataSPL(JobID,(BSTR)"Lexmark X656de (MS) (Copiar 2)",result); }
我没有得到我的映射代码,总是出现相同的错误:当我启动应用程序创建表时,它显示以下错误
尝试在添加时添加多对一的"文档".
这是我的代码:
public class DocTypes
{
public virtual Int16 Id { get; private set; }
public virtual IList<Documents> Documents { get; set; }
}
public class Documents
{
public virtual Int64 Id { get; private set; }
public virtual DocTypes DocType { get; set; }
public virtual IList<Files> Files { get; set; }
public virtual IList<Fields> Fields { get; set; }
}
public class Fields
{
public virtual Int32 Id { get; private set; }
public virtual Documents Document …Run Code Online (Sandbox Code Playgroud) c# ×2
c++ ×2
delphi ×1
dll ×1
nhibernate ×1
pointers ×1
printing ×1
syntax ×1
widestring ×1
windows ×1