实现:ipc$命名管道连接

#include <windows.h>
#include <WinNetWk.h>
#include <iostream>
#pragma comment(lib, "Mpr.lib")

using namespace std;

int wmain(int argc,wchar_t * argv[]) {
    /*
    DWORD WNetAddConnection2W(
        LPNETRESOURCEW lpNetResource,
        LPCWSTR        lpPassword,
        LPCWSTR        lpUserName,
        DWORD          dwFlags
    );
    */
    LPNETRESOURCEW nr; // 定义一个LPNETRESOURCEW结构体
    memset(&nr, 0, sizeof(nr)); //结构体初始化
    //DWORD dwFlags;
    DWORD res;

    if (argc != 4) {
        cout << "Usage: ipc.exe <remotename> <username> <password>" << endl;
        return -1;
    }

    //LPNETRESOURCEW结构体的四个必须填写
    nr->dwType = RESOURCETYPE_ANY; //任意资源类型
    nr->lpLocalName = NULL; // 建立与网络资源的连接,而不会重定向本地设备
    nr->lpRemoteName = argv[1]; // 连接的网络资源
    nr->lpProvider = NULL; // 操作系统尝试通过解析lpRemoteName成员指向的字符串来确定正确的提供程序

    if ((res = WNetAddConnection2(nr, argv[3], argv[2], CONNECT_TEMPORARY) == NO_ERROR)) {
        cout << "ipc管道连接成功" << endl;
    }
    else {
        //if (res == ERROR_ACCESS_DENIED) {
        //  cout << "ipc管道连接失败,原因:无权限" << endl;
        //}
        //else if (res == ERROR_BAD_USERNAME) {
        //  cout << "ipc管道连接失败,原因:用户名无效" << endl;
        //}
        //else if (res == ERROR_INVALID_PASSWORD) {
        //  cout << "ipc管道连接失败,原因:密码无效" << endl;
        //}
          wchar_t * pMsgBuf;
          FormatMessageA(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS
              , NULL, res, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPSTR)&pMsgBuf, 0, NULL);
          cout << pMsgBuf << endl;
          LocalFree(pMsgBuf);
    }
}

原文地址:https://www.cnblogs.com/zpchcbd/p/12190083.html

时间: 2024-10-16 07:09:00

实现:ipc$命名管道连接的相关文章

SQL Server 连接问题圣经-命名管道

SQL Server 连接问题圣经-命名管道 (1) APGC DSD Team 12 Jan 2011 1:24 AM 3 一.前言 在使用SQL Server 的过程中,用户遇到的最多的莫过于连接问题了.本文将深度讨论SQL Server 连接问题的方方面面,希望能帮你彻底解决SQL server 的连接问题. SQL Server 支持的通讯协议很多,如命名管道(Named Pipes).TCP/IP 套接字.共享内存(Shared Memory)等.由于最常用的是前两种即命名管道和TCP

SQL Server 连接问题-命名管道

原文:SQL Server 连接问题-命名管道 出自:http://blogs.msdn.com/b/apgcdsd/archive/2011/01/12/sql-server-1.aspx 一.前言 在使用SQL Server 的过程中,用户遇到的最多的莫过于连接问题了.本文将深度讨论SQL Server 连接问题的方方面面,希望能帮你彻底解决SQL server 的连接问题. SQL Server 支持的通讯协议很多,如命名管道(Named Pipes).TCP/IP 套接字.共享内存(Sh

进程间通信(5) - 命名管道(FIFO)

1. 前言 本篇文章的所有例子,基于RHEL6.5平台.前一篇文章介绍了匿名管道.点此链接. 2.介绍 管道应用的一个重大限制是它没有名字,因此,只能用于具有亲缘关系的进程间通信,在有名管道(named pipe或FIFO)提出后,该限制得到了克服.FIFO不同于管道之处在于它提供一个路径名与之关联,以FIFO的文件形式存在于文件系统中.这样,即使与FIFO的创建进程不存在亲缘关系的进程,只要可以访问该路径,就能够彼此通过FIFO相互通信(能够访问该路径的进程以及FIFO的创建进程之间),因此,

C++ 命名管道 与Winform跨进程通信

以下是.NET命名管道解决方案中几个主要的类. NamedPipeNative:这个类和kernal32.dll联系实现命名管道的通信,其中包含一些常用方法和常量. NamedPipeWrapper :这个类是NamedPipeNative的一个包装. BasepipeConnection:这是一个抽象类,定义了命名管道连接.读.写数据的方法.这个类是从ClientPipeConnection 和ServerPipeConnection 继承的,分别在客户端和服务器端应用程序中使用. Clien

邮槽 匿名管道 命名管道 剪贴板 进程通讯 转自http://www.cnblogs.com/kzloser/archive/2012/11/04/2753367.html#

邮槽 通信流程: 服务器 客户端 注意: 邮槽是基于广播通信体系设计出来的,它采用无连接的不可靠的数据传输 邮槽可以实现一对多的单向通信,我们可以利用这个特点编写一个网络会议通知系统,而且实现这一的系统所需要编写的代码非常少.如果读者是项目经理,就可以给你手下每一位员工的机器上安装上这个系统中的邮槽服务器端程序,在你自己的机器上安装油槽的客户端程序,这样,当你想通知员工开会,就可以通过自己安装的邮槽客户端程序.将开会这个消息发送出去,因为机器上都安装了邮槽服务器端的程序,所以他们都能同时收到你发

Unidac连接出错:命名管道提供程序:管道的另一端上无任何进程.

环境: DELPHI XE ,UniDAC 6.2.8, (Options->Provider=prNativeClient) 程序编译后,放在Windows Server 2003 (sp2 32位)上运行, 连接MSSQL2005(32位)时报以下错误: 命名管道提供程序:管道的另一端上无任何进程. 确定SQL Server Native Client 驱动已经安装.   解决:启用Named Pipes 协议即可.

SQL2008安装时,“provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接) (.Net SqlClient Data Provider)” 错误的解决方案

错误提示: 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误.未找到或无法访问服务器.请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接. (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接) (.Net SqlClient Data Provider) 解决方案: 解决方法:开始->所有程序->Ms Sql Server->配置工具->sql server外围应用配置器->服

在与 SQL Serve2008r 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接) j解决方案

在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误.未找到或无法访问服务器.请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接. (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接) 今早开机发现,打开SQL Server 2008 的 SQL Server Management Studio,输入sa的密码发现,无法登陆数据库?提示以下错误: “在与 SQL Server 建立连接时出现与网络相关

provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)

立与服务器的连接时出错.在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败. (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接) 说明: 执行当前 Web 请求期间,出现未处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息. 异常详细信息: System.Data.SqlClient.SqlException: 在建立与服务器的连接时出错.