有個變通的方式:
1、創建一個作業(CreateJobObject);
2、使用CreateProcess("net use...")代替system調用,然後調用AssignProcessToJobObject將進程附加到作業;
3、CreateProcess("explorer...")並指定CREATE_SUSPENDED標識,然後將進程添加到作業並ResumeThread開始執行。
另外,使用CreateProcessWithLogonW應該也可以實現(該函數具體調用方法請網路)
2. 中國電信網路VPC和VC(虛擬通道) 有什麼區別,他們的作用分別是什麼
您好
無網路連接方式 Not Connected 虛擬機將不可以使用網路,物理主機沒在網路上或者不想通過虛擬機上網,則可以選擇此項屏蔽虛擬機的網路,加快虛擬機內應用軟體檢查網路可用性的速度。 虛擬機等同於連接在由Virtual PC虛擬機平台軟體構建的私有網路。這個私有網路中包含一個DHCP伺服器和一個NAT代理伺服器,這兩個伺服器角色都是由VPC虛擬機平台軟體實現。虛擬機通過VPC軟體模擬的代理伺服器訪問外部網路資源,物理主機和外部網路不允許訪問該虛擬私有網路。虛擬機需要使用PPOE撥號或者通過本地網關訪問Internet,虛擬網路參數必須設置成網卡方式。注意:對於通過有網卡物理地址綁定的本地網關訪問Internet,首選配置為共享網路方式。
客服54為你解答。
3. 用VB或VC實現搜索共享文件夾的功能
using : NetShareEnum
The NetShareEnum function retrieves information about each shared resource on a server.
NET_API_STATUS NetShareEnum(
LPWSTR servername,
DWORD level,
LPBYTE *bufptr,
DWORD prefmaxlen,
LPDWORD entriesread,
LPDWORD totalentries,
LPDWORD resume_handle
);
the second parameter is to specify the level data eg:share names or share informations...
the third parameter is the return pointer to a struct or a buffer include the share infos
if level = 0 then bufptr is a pointer to a SHARE_INFO_0 struct (the shared info)
4. VC中不同工程間的資源怎麼共享
有2種共享途徑
1.是源碼級的共享。直接講哪個rc文件拷貝到另外一個工程裡面,同時resource文件裡面的內容也賦值到另外一個工程的 resource.h文件裡面(注意修改ID不要沖突)。或者 以文本方式打開 .rc文件( rc文件上右鍵,打開方式-》源代碼文本編輯器)打開後,將你需要的資源(比如字元串對話框點陣圖游標等都可以分塊拷貝到另外一個工程的rc文件裡面。然後將resource.h裡面的ID也拷貝過去修改值就行了。
2.運行時候進程間資源的共享。一樣不難,GetMoleHandle 得到模塊句柄,FindResource 搜索模塊的資源數據,返回你所需要的資源類型句柄。LoadResource 裝入(映射),那個模塊的資源數據到當前進程空間來。然後使用返回的 HGLOBAL 就可以得到資源的詳細數據了。
直接用 LoadBitmap/ LoadString 等也有一樣的的效果
5. 怎樣VC共享資源
打開VC 選擇共享選項卡 再選擇你需要共享的資源 就這樣
6. 如何VC編程實現訪問共享文件
和本地文件一樣的,路徑是\\共享機器的ip\相對文件位置
7. VC 如何讀取網上鄰居某台電腦下的共享目錄
C:\>net help view
此命令的語法是:
NET VIEW
[\\computername [/CACHE] | /DOMAIN[:domainname]]
NET VIEW /NETWORK:NW [\\computername]
NET VIEW 用於顯示一個計算機上共享資源的列表。當不帶選項使用本命令時,它就會顯示
當前域或網路上的計算機上的列表。
\\computername 指用戶希望瀏覽其共享資源的計算機。
/DOMAIN:domainname 指定用戶希望瀏覽有效的計算機所在的域。如果省略了域名,
就會顯示區域網絡上的所有域。
/NETWORK:NW 顯示 NetWare 網路上所有可用的伺服器。如果指定了一個計算
機名,就會顯示 NetWare 網路中那個計算機上的可用資源。
/CACHE 顯示指定計算機上的離線客戶資源緩存設置
8. 怎樣vc編程實現設置共享目錄並設置許可權
(我在「本地用戶和組「中,新建了幾個新用戶,用戶名和全程均為領導機子的計算機名,沒有密碼) 這個你要設置密碼,用戶名和領導的計算機名一樣不一樣都不影響,關閉guest賬號,可以一共設置兩個賬號就可以了,兩個賬號的 一個賬號給予讀寫許可權 ...
9. VC中如何實現類之間的數據共享
A.cpp
***
{
x=8; // 這個要放在構造函數裡面來做
}
你寫的代碼是示意吧,類默認是private的,要把暴露出來的寫成Public的才能訪問,:-)
只要確保y被賦值前A的X已經被賦值就可以了。
10. vc++一個進程負責寫入共享區,然後多個進程讀取,會有什麼異常嗎
WinSock(Windows Sockets)是處理網路通信的Windows API。許多函數與在BSD中使用的Berkely套接字函數是相同的。套接字,簡單的說就是通信雙方的一種約定,用套接字中的相關函數來完成通信過程。
應用層通過傳輸層進行數據通信時,TCP和UDP會遇到同時為多個應用程序進程提供並發服務的問題。多個TCP連接或多個應用程序進程可能需要通過同一個TCP協議埠傳輸數據。為了區別不同的應用程序進程和連接,許多計算機操作系統為應用程序與TCP/IP協議交互提供了稱為套接字(Socket)的介面。
Socket可以看成在兩個程序進行通訊連接中的一個端點(endpoint),一個程序將一段信息寫入Socket中,該Socket將這段信息發送給另外一個Socket中,使這段信息能傳送到其他程序中。一般一個server伺服器對應很多客戶端client連接,伺服器必須維護一張客戶連接列表,每增加一個客戶端連接伺服器端都要新建一個套接字負責與新增客戶端進行對話通信。
傳輸套接字主要有兩類:流式套接字(SOCK_STREAM)和數據報套接字(SOCK_DGRAM)。流類型的套接字是為需要可靠連接的應用程序設計的。這些程序通常使用連續的數據流。用於這種類型套接字的協議是TCP,適合FTP這類實現。流套接字是最常用的,一些眾所周知的協議如HTTP、TCP、SMTP、POP3等都是基於面向流的協議。
數據報套接字使用UDP做為下層協議,是無連接的,有一個最大緩沖區大小(數據包大小的最大值)。它是為那些需要發送小數據包,並且對可靠性要求不高的應用程序設計的。與流式套接字不同,數據報套接字並不保證數據會到達終端,也不保證它是以正確的順序到來的。數據報套接字的傳輸效率相當高,它經常用於音頻或視頻應用程序。對這些程序來說,速度比可靠性更加重要。
一個連接由(server_ip, server_port)和(client_ip, client_port)唯一確定。你可以調用getsockname()函數獲取與某個套接字關聯的本地地址,調用getpeername()函數獲取與某個套接字關聯的目的地址。
套接字有阻塞(鎖定)和非阻塞(非鎖定)兩種模式。非阻塞和阻塞描述的是WinSock API調用行為特性。
在一個阻塞套接字上調用任何WinSock API函數(accept()/recv()/send()),都會耗費或長或短的時間「等待」返回,這會阻塞調用線程。直到有點數據可讀或可寫時,這種調用才返回。
阻塞模式的優點是符合時序,容易入手。缺點也是顯而易見的,假設這樣一種情景,一個線程中要處理多個客戶(套接字A、B),我們在套接字A、B上順序調用recv企圖依次接收數據。若客戶A始終不發數據,則recv(A)函數將可能永遠無法返回,在這期間我們錯失了客戶B發送來的數據。
大多數WinSock應用都遵循「生產者-消費者」模型,應用程序需要讀取(或寫入)指定數量的位元組,然後再對讀取的數據執行一些計算。在應用程序中,可以為每個套接字都創建一個負責讀取網路數據的讀線程(ReadThread),以及一個負責對數據執行計算的數據處理線程(ProcessThread)。盡管這會增大一些開銷,但的確是一種可行的方案。缺點便是擴展性極差,而且無法應對大規模的通信情況。
將一個套接字置為非阻塞模式之後,WinSock API調用會立即返回。大多數情況下,這些調用都會「失敗」(SOCKET_ERROR),並返回一個WSAEWOULDBLOCK錯誤。它意味著請求的操作在調用期間沒有時間完成。舉個例子來說,假如在系統的輸入緩沖區中,尚不存在「待決」的數據,那麼recv()調用就會返回WSAEWOULDBLOCK錯誤。通常,我們需要重復調用同一個函數(輪詢),直至獲得一個成功返回代碼。
假如需要編寫更多的代碼,以便在每個 Winsock調用中,對收到一個WSAEWOULDBLOCK錯誤的可能性加以應付,那麼非阻塞套接字便顯得有些難於操作。在這些情況下,可考慮使用「套接字I/O模型」,它管理I/O完成通知,幫助應用程序判斷套接字何時可供讀寫。
套接字模式討論的是套接字函數的調用特性,而I/O模型討論的是調用背後的行為特性。
當CPU執行代碼(當前活動線程)時遇上一個I/O請求(例如調用ReadFile()/WriteFile()或recv()/send())時,系統產生一個中斷,當前活動線程阻塞在此,讓CPU去完成這個I/O請求,等到完成後,系統再次產生一個中斷讓原先的程序繼續運行。也就說通過中斷保持這兩者間的同步,可以將中斷理解為硬體化的信號量。
這就是所謂的同步I/O,一個線程中只可能同時處理一個I/O請求。因為一個I/O操作是非常耗時的,所以代碼掛起後等待I/O完成的這段時間內,這個線程浪費了很多個指令周期。如果要同時反復讀寫大文件,則同步I/O的效率是很低的。
當然,可以考慮使用多線程來處理。例如在設計伺服器時可以使用多線程來處理客戶請求,每有一個客戶連接請求,就創建一個新線程,專門處理它的通信請求。對於小型伺服器來說,這不是問題。對於同時處理成千上萬個請求的大型伺服器而言,使用多線程是無效的,因為系統能夠支持的線程數量畢竟是有限制的。另外一種解決方案就是使用共享負載的線程池,這涉及到非同步I/O。