Установка принтера по умолчанию
От: lightix  
Дата: 18.02.04 12:28
Оценка:
Программа находится на Win2k Server, которому юзера подключаются посредством Terminal Services. Их локальные принтера автоматически подключаются к серверу.
Как получить указатель (имя, номер и т.п.) на локальный принтер клиента, чтобы программно установить его по-умолчанию?
Программа для каждого юзера должна перед печатью выставить принтер клиента который ее запустил.

Заранее благодарен
Re: Установка принтера по умолчанию
От: Thread  
Дата: 18.02.04 12:44
Оценка:
Здравствуйте, lightix, Вы писали:

L>Программа находится на Win2k Server, которому юзера подключаются посредством Terminal Services. Их локальные принтера автоматически подключаются к серверу.

L>Как получить указатель (имя, номер и т.п.) на локальный принтер клиента, чтобы программно установить его по-умолчанию?
L>Программа для каждого юзера должна перед печатью выставить принтер клиента который ее запустил.

L>Заранее благодарен




int CALLBACK WinMain( HINSTANCE hInst, HINSTANCE hPrevInst,
                LPSTR lpCmdLine, int nShowCmd )
{
        /* Get the port & device settings for the specified printer */
        char szDeviceString[260];

        /* First (and only) parameter is the printer name */
        lstrcpy( szDeviceString, __argv[1] );
        const int Pos = lstrlen( szDeviceString );

        /* Append a ',' */
        szDeviceString[ Pos ] = ',';

        GetProfileString( "Devices", __argv[1], "",
                        &szDeviceString[Pos+1],
                        sizeof( szDeviceString ) - (Pos+1) );

        /* Have we got the printer? */
        if ( szDeviceString[Pos+1] != '\0' )
        {
                /* Set the default printer */
                WriteProfileString( "windows", "device", szDeviceString );

                SendMessageTimeout( HWND_BROADCAST, WM_SETTINGCHANGE, 0L,
                        (LPARAM)(LPCTSTR)"windows", SMTO_NORMAL,
                        1000, NULL );
        }
        else
        {
                MessageBox( NULL, "Printer not found",
                        "Set Default Printer Utility",
                        MB_OK | MB_ICONERROR );
        }

        return 0;
}



References and samples:

Knowledge Base Article Q135387: "How to Get and Set the Default Printer in
Windows"

Knowledge Base Article Q140560 "How to Set the Default Printer Programmatically
in Windows 95"

Re[2]: Установка принтера по умолчанию
От: lightix  
Дата: 18.02.04 12:47
Оценка:
T>Knowledge Base Article Q135387: "How to Get and Set the Default Printer in
T>Windows"
T>Knowledge Base Article Q140560 "How to Set the Default Printer Programmatically
T>in Windows 95"
Так мне не принтер по умолчанию нужен, а принтер с которым подсоединился пользователь.
Все пользователи ходят на сервер под одним логином. А по умолчанию любой может стоять принтер.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.