20 个解决方案
#1
楼主,请问你的client.exe是SDI,MDI还是DLG?
可以修改client的代码吗?
可不可以自己写一个exe在启动里来启动那个vbs的?
可以修改client的代码吗?
可不可以自己写一个exe在启动里来启动那个vbs的?
#2
回1楼,写一个exe来启动这个vbs我也考虑过,但是一想这不是转了几道弯,这是要在客户端部署的,有600多台机器,当然是越简单越好,是在没别的办法也只好这样了,等高手!!
#3
可不可以写一个exe来启动你的client.exe,
然后让将exe放到开机自启动目录里
不要VBS了
然后让将exe放到开机自启动目录里
不要VBS了
#4
写一个exe来启动client.exe?这倒是个新想法,只要是让client.exe启动的时候看不到界面,是在后台运行就行,楼上有具体的办法吗
#5
要开机自动运行的话只能在注册表里来实现吧,把你的程序路径写入注册表自动运行这一项就行了
#6
ShellExecute指定SW_HIDE能不能达到效果?
#7
不是太懂,能说的明白点吗,client.exe是VC的一个控制台程序,现在不想改了,就是想让它开机自启动,并且是在后台,看不到窗口!
#8
client.exe文件修改一下启动的时候不出窗口不就行了?
#9
就是再弄一程序来用这个函数来启动你的程序,参数sw——hide就隐藏你的窗口了
#10
!!!
#11
添加让程序开机自动启动的注册的代码,网上有你可以搜一下,然后程序就能够开机自动启动,然后在你的程序中添加代码隐藏窗口就可以了
#12
添加让程序开机自动启动的注册的代码,网上有你可以搜一下,然后程序就能够开机自动启动,然后在你的程序中添加代码隐藏窗口就可以了
#13
我不是做vc的,能不能帮我改下,程序的核心代码如下:
怎样让它运行不显示窗口?
#include "stdafx.h"
#include <iostream>
#include <UrlMon.h>
#pragma comment(lib, "urlmon.lib")
using namespace std;
int main(int argc, char* argv[])
{
cout<<"此界面为机房管理系统客户端,正在与主机通信......请耐心等待数秒,谢谢合作!"<<endl;
HRESULT hr= ::URLDownloadToFile(NULL,"http://www.baidu.com/index.htm","d:\\123.htm",0,NULL);
// HRESULT hr = URLDownloadToFile(NULL,"http://www.baidu.com","d:\\file.exe",0,NULL);
if (hr == S_OK)
{
cout<<"download ok"<<endl;
}
else
{
cout<<"download fail"<<endl;
}
return 0;
}
怎样让它运行不显示窗口?
#14
开始\运行\输入"msconfig"\启动\关闭多余的启动项就可以了.
在注册表上修改:
查看“自启动”程序
绝大多数“自启动”程序都是通过注册表加载的,而它们在“开始/程序/启动”菜单中是看不到的。这时,你可以选择“本地机器上的HKEY_LOCAL_MACHINE”子窗口,定位到HKEY_LOCAL_MACHINE\Software\Microsoft\
Windows\CurrentVersion\Run分支查看,也可以删除右边窗口中的一些键值而达到禁止某些程序自启动的目的。
开始\运行\输入"regedit"\打开注册表.
在注册表上修改:
查看“自启动”程序
绝大多数“自启动”程序都是通过注册表加载的,而它们在“开始/程序/启动”菜单中是看不到的。这时,你可以选择“本地机器上的HKEY_LOCAL_MACHINE”子窗口,定位到HKEY_LOCAL_MACHINE\Software\Microsoft\
Windows\CurrentVersion\Run分支查看,也可以删除右边窗口中的一些键值而达到禁止某些程序自启动的目的。
开始\运行\输入"regedit"\打开注册表.
#15
//以下的代码用来执行dos命令且不显示窗口
#include <windows.h>
#include <stdio.h>
#define EXECDOSCMD "ping www.csdn.net"
//替换成其他的也可以 比如你要求得"client.exe";
BOOL ExecDosCmd()
{
SECURITY_ATTRIBUTES sa;
HANDLE hRead,hWrite;
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.lpSecurityDescriptor = NULL;
sa.bInheritHandle = TRUE;
if (!CreatePipe(&hRead,&hWrite,&sa,0))
{
return FALSE;
}
STARTUPINFO si;
PROCESS_INFORMATION pi;
si.cb = sizeof(STARTUPINFO);
GetStartupInfo(&si);
si.hStdError = hWrite;
si.hStdOutput = hWrite;
si.wShowWindow = SW_HIDE;
si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
//关键步骤,CreateProcess函数参数意义请查阅MSDN
if (!CreateProcess(NULL, EXECDOSCMD
,NULL,NULL,TRUE,NULL,NULL,NULL,&si,&pi))
{
return FALSE;
}
CloseHandle(hWrite);
char buffer[4096] = {0};
DWORD bytesRead;
while (true)
{
if (ReadFile(hRead,buffer,4095,&bytesRead,NULL) == NULL)
break;
//buffer中就是执行的结果,可以保存到文本,也可以直接输出
printf(buffer);//这行注释掉就可以了
Sleep(200);
}
return TRUE;
}
int main(int argc, char* argv[])
{
ExecDosCmd();
return 0;
}
#include <windows.h>
#include <stdio.h>
#define EXECDOSCMD "ping www.csdn.net"
//替换成其他的也可以 比如你要求得"client.exe";
BOOL ExecDosCmd()
{
SECURITY_ATTRIBUTES sa;
HANDLE hRead,hWrite;
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.lpSecurityDescriptor = NULL;
sa.bInheritHandle = TRUE;
if (!CreatePipe(&hRead,&hWrite,&sa,0))
{
return FALSE;
}
STARTUPINFO si;
PROCESS_INFORMATION pi;
si.cb = sizeof(STARTUPINFO);
GetStartupInfo(&si);
si.hStdError = hWrite;
si.hStdOutput = hWrite;
si.wShowWindow = SW_HIDE;
si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
//关键步骤,CreateProcess函数参数意义请查阅MSDN
if (!CreateProcess(NULL, EXECDOSCMD
,NULL,NULL,TRUE,NULL,NULL,NULL,&si,&pi))
{
return FALSE;
}
CloseHandle(hWrite);
char buffer[4096] = {0};
DWORD bytesRead;
while (true)
{
if (ReadFile(hRead,buffer,4095,&bytesRead,NULL) == NULL)
break;
//buffer中就是执行的结果,可以保存到文本,也可以直接输出
printf(buffer);//这行注释掉就可以了
Sleep(200);
}
return TRUE;
}
int main(int argc, char* argv[])
{
ExecDosCmd();
return 0;
}
#16
将你的代码加入到main中应该就可以了
#17
11楼正解
#18
问题解决了,结贴!
#19
加入这段代码:
#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" )
详细:http://zergb.spaces.live.com/blog/cns!C417B6C5A59504CE!548.entry
#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" )
详细:http://zergb.spaces.live.com/blog/cns!C417B6C5A59504CE!548.entry
#20
对不起19楼了,就是这种办法解决的!抱歉
#21
#1
楼主,请问你的client.exe是SDI,MDI还是DLG?
可以修改client的代码吗?
可不可以自己写一个exe在启动里来启动那个vbs的?
可以修改client的代码吗?
可不可以自己写一个exe在启动里来启动那个vbs的?
#2
回1楼,写一个exe来启动这个vbs我也考虑过,但是一想这不是转了几道弯,这是要在客户端部署的,有600多台机器,当然是越简单越好,是在没别的办法也只好这样了,等高手!!
#3
可不可以写一个exe来启动你的client.exe,
然后让将exe放到开机自启动目录里
不要VBS了
然后让将exe放到开机自启动目录里
不要VBS了
#4
写一个exe来启动client.exe?这倒是个新想法,只要是让client.exe启动的时候看不到界面,是在后台运行就行,楼上有具体的办法吗
#5
要开机自动运行的话只能在注册表里来实现吧,把你的程序路径写入注册表自动运行这一项就行了
#6
ShellExecute指定SW_HIDE能不能达到效果?
#7
不是太懂,能说的明白点吗,client.exe是VC的一个控制台程序,现在不想改了,就是想让它开机自启动,并且是在后台,看不到窗口!
#8
client.exe文件修改一下启动的时候不出窗口不就行了?
#9
就是再弄一程序来用这个函数来启动你的程序,参数sw——hide就隐藏你的窗口了
#10
!!!
#11
添加让程序开机自动启动的注册的代码,网上有你可以搜一下,然后程序就能够开机自动启动,然后在你的程序中添加代码隐藏窗口就可以了
#12
添加让程序开机自动启动的注册的代码,网上有你可以搜一下,然后程序就能够开机自动启动,然后在你的程序中添加代码隐藏窗口就可以了
#13
我不是做vc的,能不能帮我改下,程序的核心代码如下:
怎样让它运行不显示窗口?
#include "stdafx.h"
#include <iostream>
#include <UrlMon.h>
#pragma comment(lib, "urlmon.lib")
using namespace std;
int main(int argc, char* argv[])
{
cout<<"此界面为机房管理系统客户端,正在与主机通信......请耐心等待数秒,谢谢合作!"<<endl;
HRESULT hr= ::URLDownloadToFile(NULL,"http://www.baidu.com/index.htm","d:\\123.htm",0,NULL);
// HRESULT hr = URLDownloadToFile(NULL,"http://www.baidu.com","d:\\file.exe",0,NULL);
if (hr == S_OK)
{
cout<<"download ok"<<endl;
}
else
{
cout<<"download fail"<<endl;
}
return 0;
}
怎样让它运行不显示窗口?
#14
开始\运行\输入"msconfig"\启动\关闭多余的启动项就可以了.
在注册表上修改:
查看“自启动”程序
绝大多数“自启动”程序都是通过注册表加载的,而它们在“开始/程序/启动”菜单中是看不到的。这时,你可以选择“本地机器上的HKEY_LOCAL_MACHINE”子窗口,定位到HKEY_LOCAL_MACHINE\Software\Microsoft\
Windows\CurrentVersion\Run分支查看,也可以删除右边窗口中的一些键值而达到禁止某些程序自启动的目的。
开始\运行\输入"regedit"\打开注册表.
在注册表上修改:
查看“自启动”程序
绝大多数“自启动”程序都是通过注册表加载的,而它们在“开始/程序/启动”菜单中是看不到的。这时,你可以选择“本地机器上的HKEY_LOCAL_MACHINE”子窗口,定位到HKEY_LOCAL_MACHINE\Software\Microsoft\
Windows\CurrentVersion\Run分支查看,也可以删除右边窗口中的一些键值而达到禁止某些程序自启动的目的。
开始\运行\输入"regedit"\打开注册表.
#15
//以下的代码用来执行dos命令且不显示窗口
#include <windows.h>
#include <stdio.h>
#define EXECDOSCMD "ping www.csdn.net"
//替换成其他的也可以 比如你要求得"client.exe";
BOOL ExecDosCmd()
{
SECURITY_ATTRIBUTES sa;
HANDLE hRead,hWrite;
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.lpSecurityDescriptor = NULL;
sa.bInheritHandle = TRUE;
if (!CreatePipe(&hRead,&hWrite,&sa,0))
{
return FALSE;
}
STARTUPINFO si;
PROCESS_INFORMATION pi;
si.cb = sizeof(STARTUPINFO);
GetStartupInfo(&si);
si.hStdError = hWrite;
si.hStdOutput = hWrite;
si.wShowWindow = SW_HIDE;
si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
//关键步骤,CreateProcess函数参数意义请查阅MSDN
if (!CreateProcess(NULL, EXECDOSCMD
,NULL,NULL,TRUE,NULL,NULL,NULL,&si,&pi))
{
return FALSE;
}
CloseHandle(hWrite);
char buffer[4096] = {0};
DWORD bytesRead;
while (true)
{
if (ReadFile(hRead,buffer,4095,&bytesRead,NULL) == NULL)
break;
//buffer中就是执行的结果,可以保存到文本,也可以直接输出
printf(buffer);//这行注释掉就可以了
Sleep(200);
}
return TRUE;
}
int main(int argc, char* argv[])
{
ExecDosCmd();
return 0;
}
#include <windows.h>
#include <stdio.h>
#define EXECDOSCMD "ping www.csdn.net"
//替换成其他的也可以 比如你要求得"client.exe";
BOOL ExecDosCmd()
{
SECURITY_ATTRIBUTES sa;
HANDLE hRead,hWrite;
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.lpSecurityDescriptor = NULL;
sa.bInheritHandle = TRUE;
if (!CreatePipe(&hRead,&hWrite,&sa,0))
{
return FALSE;
}
STARTUPINFO si;
PROCESS_INFORMATION pi;
si.cb = sizeof(STARTUPINFO);
GetStartupInfo(&si);
si.hStdError = hWrite;
si.hStdOutput = hWrite;
si.wShowWindow = SW_HIDE;
si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
//关键步骤,CreateProcess函数参数意义请查阅MSDN
if (!CreateProcess(NULL, EXECDOSCMD
,NULL,NULL,TRUE,NULL,NULL,NULL,&si,&pi))
{
return FALSE;
}
CloseHandle(hWrite);
char buffer[4096] = {0};
DWORD bytesRead;
while (true)
{
if (ReadFile(hRead,buffer,4095,&bytesRead,NULL) == NULL)
break;
//buffer中就是执行的结果,可以保存到文本,也可以直接输出
printf(buffer);//这行注释掉就可以了
Sleep(200);
}
return TRUE;
}
int main(int argc, char* argv[])
{
ExecDosCmd();
return 0;
}
#16
将你的代码加入到main中应该就可以了
#17
11楼正解
#18
问题解决了,结贴!
#19
加入这段代码:
#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" )
详细:http://zergb.spaces.live.com/blog/cns!C417B6C5A59504CE!548.entry
#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" )
详细:http://zergb.spaces.live.com/blog/cns!C417B6C5A59504CE!548.entry
#20
对不起19楼了,就是这种办法解决的!抱歉