<!--CodeS-->
팁에 있는 소스로 기본프린터를 설정하면 2000이나 xp계열에서는 정상적으로 기본 프린터 설정이
됩니다. 근데 98이나 me에서는 정상적으로 안되네요...ㅡㅡ
98이나 me에서 정상적을 설정할 수 있는 방법이 있나요?
아래 소스는 팁 에서 받은 것입니다...
function TForm1.SetDefaultPrinter( const PrinterName : string ) :
// Printername would be like 'Canon BJC-6000'
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) > 0 do
WriteProfileString( cs1, cs2, #0);
WriteProfileString( cs1, cs2, pchar( s2 ));
case Win32Platform of
VER_PLATFORM_WIN32_NT :
begin
SendMessage( HWND_BROADCAST, WM_WININICHANGE, 0,LongInt(cs1));
end;
VER_PLATFORM_WIN32_WINDOWS : //win95
begin
SendMessage( HWND_BROADCAST, WM_SETTINGCHANGE, 0,LongInt(cs1));
end;
end; { case }
Result := True;
end;
finally
FreeMem( dum1 );
end;
end;
<!--CodeE-->
win98이나 me 경우 프린터명 뒤에 on 어쩌구 저쩌구 해서 가져오더군요...
그래서 GetProfileString 함수에서 프린터의 값을 가져오지 못하네요...
copy명령으로 on 다음 부분을 짤라 준 프린터명을 넘겨주면 기본 프린터 설정이 되더군요...
자답이었습니다...ㅡㅡ;