GVKun编程网logo

如何在Windows上调试基本的node.js应用程序(而非http)(怎样调试 node. js程序())

17

本文将介绍如何在Windows上调试基本的node.js应用程序的详细情况,特别是关于而非http的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关于c

本文将介绍如何在Windows上调试基本的node.js应用程序的详细情况,特别是关于而非http的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关于c# – 如何在Windows应用程序中实现通知机制?、C#:如何在Windows应用程序中从webbrowser读取数据、Directx11 教程(1) 基本的windows应用程序框架(1)、javascript – 如何在windows上的node.js中运行外部程序?的知识。

本文目录一览:

如何在Windows上调试基本的node.js应用程序(而非http)(怎样调试 node. js程序())

如何在Windows上调试基本的node.js应用程序(而非http)(怎样调试 node. js程序())

我知道如何使用node-inspector和iisnode调试http应用程序。但是我可以在Windows上使用node-inspector调试
非http 节点应用程序吗?

我试过了:

 node debug test.js

它说:

debugger listening on port 5858

但是http://localhost:5858/在Chrome中打开并不会执行任何操作。


顺便说一句:运行node debug test.js确实会启动命令行调试器。但这不像节点检查器。

答案1

小编典典

要使用node-inspector,node --debug不可以使用正确的开关node debug

详细步骤如下:

  1. 全局安装node-inspector(npm install -g node-inspector
  2. 在命令行窗口中,运行: node-inspector
  3. 打开Chrome浏览器,然后转到http://localhost:8080/debug?port=5858。您将获得节点检查器用户界面,但没有任何正在运行的应用程序。
  4. 在另一个命令行窗口中,使用以下--debug开关运行您的应用程序:node --debug test.js
  5. 刷新Chrome标签页, 瞧!

一些有趣的观点:

  • 如果您终止应用程序并重新启动,只需刷新节点检查器选项卡即可。它将保留所有断点。
  • 要在第一行自动中断,请使用 node --debug-brk test.js

c# – 如何在Windows应用程序中实现通知机制?

c# – 如何在Windows应用程序中实现通知机制?

我有一个用c#编写的 windows / WPF应用程序.这个应用程序连接到托管在我们公共服务器上的远程数据库.应用程序将安装到所有系统.用户可以通过此应用程序将值添加到数据库.
当有人向数据库添加任何值时,我需要一个通知机制来向所有已安装的 Windows应用程序发送通知.

请告诉我实施此方案的最佳方法.

提前致谢.

解决方法

您可以使用sql Server的“查询通知”功能,该功能允许在数据发生更改时通知应用程序.

请参阅以下链接.

http://support.microsoft.com/kb/555893?wa=wsignin1.0

C#:如何在Windows应用程序中从webbrowser读取数据

C#:如何在Windows应用程序中从webbrowser读取数据

首先,我正在做一个 Windows应用程序.不是Web应用程序.

现在我正在申请将SMS(短消息)从System发送到Mobile.

在这里,我使用http URL来推送具有参数To(number)和Msg(测试消息)的消息.

形成URL之后,就像

http://333.33.33.33:3333/csms/PushURL.cgi?USERNAME=xxxx&PASSWORD=xxxx&MOBILENO=919962391144&MESSAGE=TestMessage&TYPE=0&CONTENT_TYPE=text;

这里我提到3个用于ip地址,X用于密码和用户ID因为机密.

发送此URL后,我在浏览器窗口中收到一些文本,如“Message Send Successfully”.

我想阅读文本并存储在数据库中.

我的问题是:我如何从网络浏览器中读取文本.

请抱着我!

解决方法

使用.NET,请参阅 WebClient Class –
提供向URI标识的资源发送数据和从其接收数据的常用方法.

在这里看过几次,例如fastest c# code to download a web page

编辑:System.Net.WebClient类未连接到Web应用程序,可以轻松地在控制台或winforms应用程序中使用. MSDN链接中的C#示例是一个独立的控制台应用程序(编译并运行它来检查):

using System;
using System.Net;
using System.IO;

public class Test
{
public static void Main (string[] args)
{
    if (args == null || args.Length == 0)
    {
        throw new ApplicationException ("Specify the URI of the resource to retrieve.");
    }
    WebClient client = new WebClient ();

    client.Headers.Add ("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");

    Stream data = client.OpenRead (args[0]);
    StreamReader reader = new StreamReader (data);
    string s = reader.ReadToEnd ();
    Console.WriteLine (s);
    data.Close ();
    reader.Close ();
}

}

Directx11 教程(1) 基本的windows应用程序框架(1)

Directx11 教程(1) 基本的windows应用程序框架(1)

原文: Directx11 教程(1) 基本的windows应用程序框架(1)

       在vs2010中,建立一个新的win32工程,名字是: myTutorialD3D11, 注意:同时勾选Create directory for solution,我们同时建立一个solution,后面教程的所有的工程文件,我们都建立在这个solution中。

image

 

勾选 Emtpy project

image

增加source files->add new item->main.cpp

image

 

创建一个windows应用程序需要以下步骤:

1、在入口Main函数中注册窗口类

2、调用CreateWindowEx函数创建窗口

3、处理调度消息循环

4、编写回调函数,在回调函数中响应处理各种消息事件

在main.cpp中,逐步增加以下的代码:

首先增加

#include <windows.h>

这样,我们就能够使用windows中的API函数、structure,类对象等。

 

//窗口类的名字
LPCWSTR m_applicationName;
//应用程序实例句柄
HINSTANCE m_hinstance;

定义一个全局的windows窗口句柄,这个句柄用来表示应用程序的主窗口句柄。
//窗口句柄
HWND m_hwnd;
//用来判断是否按ESC键,按下ESC键,则退出程序
bool bexit = false;

//初始化窗口类,创建应用程序窗口
void InitializeWindows(int& screenWidth, int& screenHeight);
//调用初始化窗口函数,以及其它的接口类的初始化函数
bool Initialize();

//处理消息循环
void Run();

//关闭窗口
void ShutdownWindows();

//这两个函数是窗口的回调函数
static LRESULT CALLBACK MessageHandler(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

//判断是否全屏,全屏模式和窗口模式下使用不同的创建窗口参数

const bool FULL_SCREEN = false;

     下面的函数WinMain,是windows应用程序的入口函数。

      四个参数简单提一下,HInstance表示当前应用程序的实例句柄,它实际上是一个内存基地址,系统将可执行程序的映像加载到进程地址空间中的这个位置。

      HPrevInstance表示进程前一个实例句柄,比如对于同一个程序打开两次,出现两个窗口,第一次打开的窗口就是先前实例的窗口。该参数用于16位Windows系统,对于一个32位程序,该参数总为NULL,现在仍然保留该参数主要是为了和16位windows系统兼容。

      pSCmdLine是指向应用程序命令行的字符串的指针,不包括执行文件名。获得整个命令行,使用函数GetCommandLine。

      nCmdShow:指明窗口如何显示,比如SW_HIDE(隐藏),SW_MINIMIZE(最小化)等等,默认情况为SW_SHOW。

     

//应用程序入口main函数
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR pScmdline, int iCmdshow)
    {

    Initialize();
    Run();
    ShutdownWindows();
    return 0;
    }

该函数首先调用初始化函数,初始化函数中将会设置窗口的高度、宽度,然后调用初始化窗口函数。

//调用窗口初始化函数和其它一些类的初始化函数
//本例子中,只调用初始化窗口函数
bool Initialize()
    {
    int screenWidth = 0, screenHeight = 0;

    // 初始化窗口
    InitializeWindows(screenWidth, screenHeight);

    return true;
    }

void InitializeWindows(int& screenWidth, int& screenHeight)
    {
    WNDCLASSEX wc;
    DEVMODE dmScreenSettings;
    int posX, posY;


    // 得到应用程序实例句柄
    m_hinstance = GetModuleHandle(NULL);

    // 应用程序名字
    m_applicationName = L"Engine";

    // 设置窗口类参数.
    wc.style         = CS_HREDRAW | CS_VREDRAW | CS_OWNDC;

指定回调函数后,windows会自动调用回调函数处理各种消息事件
    wc.lpfnWndProc   = WndProc; //指定回调函数
    wc.cbClsExtra    = 0;
    wc.cbWndExtra    = 0;
    wc.hInstance     = m_hinstance;
    wc.hIcon         = LoadIcon(NULL, IDI_WINLOGO);
    wc.hIconSm       = wc.hIcon;
    wc.hCursor       = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH); //默认黑色窗口黑色背景
    wc.lpszMenuName  = NULL;
    wc.lpszClassName = m_applicationName;
    wc.cbSize        = sizeof(WNDCLASSEX);

    // 注册窗口类
    RegisterClassEx(&wc);

    // 得到windows桌面分辨率
    screenWidth  = GetSystemMetrics(SM_CXSCREEN);
    screenHeight = GetSystemMetrics(SM_CYSCREEN);

    // 根据是否全屏设置不同的分辨率.
    if(FULL_SCREEN)
        {
        //全屏模式下,设置窗口大小为windows桌面分辨率.
        memset(&dmScreenSettings, 0, sizeof(dmScreenSettings));
        dmScreenSettings.dmSize       = sizeof(dmScreenSettings);
        dmScreenSettings.dmPelsWidth  = (unsigned long)screenWidth;
        dmScreenSettings.dmPelsHeight = (unsigned long)screenHeight;
        dmScreenSettings.dmBitsPerPel = 32;           
        dmScreenSettings.dmFields     = DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT;

       // 临时设置显示设备为全屏模式,注意:应用程序退出时候,将恢复系统默认设置。
        ChangeDisplaySettings(&dmScreenSettings, CDS_FULLSCREEN);

        // 设置窗口的左上角坐标位置为(0,0).
        posX = posY = 0;
        }
    else
        {
        // 窗口模式:800*600.
        screenWidth  = 800;
        screenHeight = 600;

        // 窗口左上角坐标位置,posX, posY

        posX = (GetSystemMetrics(SM_CXSCREEN) - screenWidth)  / 2;
        posY = (GetSystemMetrics(SM_CYSCREEN) - screenHeight) / 2;
        }

    // 全屏和窗口使用不同的参数.
    if( FULL_SCREEN)
        {
        m_hwnd = CreateWindowEx(WS_EX_APPWINDOW, m_applicationName, m_applicationName,
            WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_POPUP,
            posX, posY, screenWidth, screenHeight, NULL, NULL, m_hinstance, NULL);
        }
    else
        {
        m_hwnd = CreateWindowEx(WS_EX_APPWINDOW, m_applicationName, m_applicationName,
            WS_OVERLAPPEDWINDOW,
            posX, posY, screenWidth, screenHeight, NULL, NULL, m_hinstance, NULL);
        }

    // 显示窗口并设置其为焦点.
    ShowWindow(m_hwnd, SW_SHOW);
    SetForegroundWindow(m_hwnd);
    SetFocus(m_hwnd);

    // 隐藏鼠标.
    //ShowCursor(false);

    return;
    }

在Run函数中,我们响应调度windows消息以及调用我们的render函数。

//处理消息
void Run()
    {
    MSG msg;
    bool done, result = 1;


   // 初始化消息结构.
    ZeroMemory(&msg, sizeof(MSG));

    // 循环进行消息处理

    done = false;
    while(!done)
        {
       // 处理windows消息.
        if(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
            {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
            }

       // 接收到WM_QUIT消息,退出程序.
        if(msg.message == WM_QUIT)
            {
            done = true;
            }
        else
            {
            result = bexit; //如果按了ESC,也退出程序

            //我们的渲染或者其它处理,可以放在这儿
            //....
            //.....
            if(result)
                {
                done = true;
                }
            }

        }

    return;
    }

WndProc函数为窗口回调函数,程序中的消息处理都在这个函数中。

LRESULT CALLBACK WndProc(HWND hwnd, UINT umessage, WPARAM wparam, LPARAM lparam)
{
switch(umessage)
{

// 窗口销毁消息.
case WM_DESTROY:
{
PostQuitMessage(0);
return 0;
}

// 窗口关闭消息.
case WM_CLOSE:
{
PostQuitMessage(0);
return 0;
}

//MessageHandle过程处理其它所有消息.
default:
{
return MessageHandler(hwnd, umessage, wparam, lparam);
}
}
}


LRESULT CALLBACK MessageHandler(HWND hwnd, UINT umsg, WPARAM wparam, LPARAM lparam)
    {

    switch(umsg)
        {
       // 检测按键消息.
        case WM_KEYDOWN:
            if(wparam==VK_ESCAPE)
                bexit = true;
            return 0;
       //任何其它消息发送到windows缺省处理.
    default:
        {
        return DefWindowProc(hwnd, umsg, wparam, lparam);
        }
        }
    }


ShutdownWindows函数主要用来在程序结束后,释放一些资源。

 

void ShutdownWindows()
    {
    //显示光标.
    //ShowCursor(true);

    // 恢复默认显示设置.
    if(FULL_SCREEN)
        {
        ChangeDisplaySettings(NULL, 0);
        }

    //释放窗口句柄.
    DestroyWindow(m_hwnd);
    m_hwnd = NULL;

    // 释放应用程序实例.
    UnregisterClass(m_applicationName, m_hinstance);
    m_hinstance = NULL;

    return;
    }

程序执行后,界面如下,窗口是黑色,我们按下ESC,程序会退出:

image

完整的代码请参考:

工程文件myTutorialD3D11

代码下载:

http://files.cnblogs.com/mikewolf2002/myTutorialD3D11.zip

javascript – 如何在windows上的node.js中运行外部程序?

javascript – 如何在windows上的node.js中运行外部程序?

我正在使用 windows上的node.js创建一个自动化的Web应用程序构建过程.我正在尝试通过Google封闭 java程序运行我们的代码.我在节点文档中阅读了有关child_process的文档.它提到它在 Windows中不起作用.是否有包装或解决此问题?

下面是试图运行的代码.

var _exec = require('child_process').exec;
_exec( 'java ' + '-jar '+ COMPILER_JAR +' --js '+ srcPath +' --js_output_file '+ distPath,function(e){
        echo( "google closure done....");
        echo( e );
    } );

解决方法

我有一个Web服务器应用程序,用于控制Windows XP上的构建队列,我使用它来运行批处理文件或可执行文件,而无需任何其他软件包.

我会检查回调和stderr上的错误参数,因为这可以帮助您找到它不起作用的原因.

我的服务器中的示例解决方案,我希望有所帮助:

var theJobType = 'FOO';
var exec = require('child_process').exec;
var child = exec('Test.exe ' + theJobType,function( error,stdout,stderr) 
   {
       if ( error != null ) {
            console.log(stderr);
            // error handling & exit
       }

       // normal 

   });

关于如何在Windows上调试基本的node.js应用程序而非http的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于c# – 如何在Windows应用程序中实现通知机制?、C#:如何在Windows应用程序中从webbrowser读取数据、Directx11 教程(1) 基本的windows应用程序框架(1)、javascript – 如何在windows上的node.js中运行外部程序?的相关知识,请在本站寻找。

本文标签: