如何呼叫出控制台的印表機? |
|
ok2002
一般會員 發表:3 回覆:8 積分:2 註冊:2002-04-14 發送簡訊給我 |
|
jck1
一般會員 發表:53 回覆:67 積分:24 註冊:2002-05-23 發送簡訊給我 |
|
ok2002
一般會員 發表:3 回覆:8 積分:2 註冊:2002-04-14 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
如果是要呼加新增 Printer 的對話方塊
uses ShellApi; begin ShellExecute(handle, nil, 'rundll32.exe', 'shell32.dll,SHHelpShortcuts_RunDLL AddPrinter', '',SW_SHOWNORMAL); end;This piece of code was corrected from old code to call rundll32.exe to has compatibility with Win9x and WinNT. |
ok2002
一般會員 發表:3 回覆:8 積分:2 註冊:2002-04-14 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
找到了, 答案如下:
uses ShellApi, ShlObj; procedure TForm1.Button5Click(Sender: TObject); var PIDL:PItemIDList; Info:TShellExecuteInfo; pInfo:PShellExecuteInfo; WaitCode:DWord; begin {Obtenemos PIDL de la carpeta virtual} {get PIDL of the virtual folder} SHGetSpecialFolderLocation(Handle, CSIDL_PRINTERS, PIDL); {Puntero a Info} {Pointer to Info} pInfo := @Info; {Rellenamos Info} {Fill info} With Info do begin cbSize := SizeOf(Info); fMask := SEE_MASK_NOCLOSEPROCESS SEE_MASK_IDLIST; wnd := Handle; lpVerb := nil; lpFile := nil; {Parametros al ejecutable} {Executable parameters} lpParameters := nil; lpDirectory := nil; nShow := SW_ShowNormal; hInstApp := 0; lpIDList := PIDL; end; {Ejecutamos} {Execute} ShellExecuteEx(pInfo); {Esperamos que termine} {Wait to finish} repeat WaitCode := WaitForSingleObject(Info.hProcess, 500); Application.ProcessMessages; until (WaitCode <> WAIT_TIMEOUT); end; |
ok2002
一般會員 發表:3 回覆:8 積分:2 註冊:2002-04-14 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |