设置默认打印机的问题(100分)

  • 主题发起人 主题发起人 BmwHans1
  • 开始时间 开始时间
B

BmwHans1

Unregistered / Unconfirmed
GUEST, unregistred user!
function TfrmCheckPay.SetPrinter(const PrinterName: String): boolean;
var
s2 : string;
dum1 : Pchar;

xx, qq : integer;
const
cs1 : pchar = 'Windows';
cs2 : pchar = 'Device';
cs3 : pchar = 'Devices';
cs4 : pchar = #0;
begin
xx := 254;
GetMem( dum1, xx);
Result := False;
try
qq := GetProfileString( cs3, pchar( printerName ), #0, dum1, xx);
if (qq > 0) and (trim( strpas( dum1 )) <> '') then
begin
s2 := PrinterName + ',' + strpas( dum1 );
while GetProfileString( cs1, cs2, cs4, dum1, xx) > 0do
WriteProfileString( cs1, cs2, #0);
WriteProfileString( cs1, cs2, pchar( s2 ));
case Win32Platform of
VER_PLATFORM_WIN32_NT :
SendMessage( HWND_BROADCAST, WM_WININICHANGE, 0, LongInt(cs1));
VER_PLATFORM_WIN32_WINDOWS :
SendMessage( HWND_BROADCAST, WM_SETTINGCHANGE, 0, LongInt(cs1));
end;
Result := True;
end;
finally
FreeMem( dum1 );
end;
end;
上面的这函数是我从DFW上找来的,在FORM的FormStyle属性为fsNormal的窗体下执行
SetPrinter(//PrinterServer/Epson LQ-1600) 时操作成功,即将PrinterServer上的Epson LQ-1600打印机设为默认打印(当然这些打印机事先已安装好)。
但我的窗体是fsMDIChild类型的,用上述方法就操作失败,不知何故?
qq := GetProfileString( cs3, pchar( printerName ), #0, dum1, xx);这一句执行后,qq=0,dum1为空,请高手指教。另GetProfileString和WriteProfileString 是什么意思,我是菜鸟,还望不要见笑!!!!
 
是不是printername搞错了,和form的风格应该没有关系。
GetProfileString和WriteProfileString是用来读写win.ini文件的函数
 
没有道理啊!
 
我已经搞定了,可是我的分怎么办!斑竹大侠能否把分还给我啊
 
这点分就大伙分了吧,都是苦苦哈哈的兄弟嘛
 
斑竹大侠把分还给我吧!小弟很菜,赚分是不太可能的,就留给我以后花吧!拜托!!!!
 
我也要!
 
不行,各位大侠让让我吧
 
多人接受答案了。
 
后退
顶部