王朝百科
分享
 
 
 

GetCommandLine

王朝百科·作者佚名  2010-03-27  
宽屏版  字体: |||超大  

GetCommandLine

The GetCommandLine function retrieves the command-line string for the current process.

LPTSTR GetCommandLine(void);

Parameters

This function has no parameters.

Return Values

The return value is a pointer to the command-line string for the current process.

Remarks

ANSI console processes written in C can use the argc and argv arguments of the main function to access the command-line arguments. ANSI GUI applications can use the lpCmdLine parameter of the WinMain function to access the command-line string, excluding the program name. The reason that main and WinMain cannot return Unicode strings is that argc, argv, and lpCmdLine use the LPSTR data type for parameters, not the LPTSTR data type . The GetCommandLine function can be used to access Unicode strings, because it uses the LPTSTR data type.

To convert the command line to an argv style array of strings, call the CommandLineToArgvW function.

Note The name of the executable in the command line that the operating system provides to a process is not necessarily identical to that in the command line that the calling process gives to the CreateProcess function. The operating system may prepend a fully qualified path to an executable name that is provided without a fully qualified path.

Requirements

Client: Included in Windows XP, Windows 2000 Professional, Windows NT Workstation, Windows Me, Windows 98, and Windows 95.

Server: Included in Windows Server 2003, Windows 2000 Server, and Windows NT Server.

Unicode: Implemented as Unicode and ANSI versions on all platforms.

Header: Declared in Winbase.h; include Windows.h.

Library: Use Kernel32.lib.

See Also

Processes and Threads Overview, Process and Thread Functions, CommandLineToArgvW, CreateProcess, WinMain

[声明]

Declare Function GetCommandLine Lib "kernel32" Alias "GetCommandLineA" () As String

[说明]

获得指向当前命令行缓冲区的一个指针

[返回值]

Long,命令行缓冲区在内存中的地址

[其它]

Visual Basic Command函数更易获取参数,但它未提供可执行的名称。使用这个函数时,要求进行内存复制操作

[注释]

使用这个函数用的时候,不应该直接使用诸如 str=GetCommandLine() (str是一个字符串)这样的语句,这样有可能会导致内存的错误。

正确的做法是应该把 声明 中的 "As String" 改为 "As Long",再用 lstrlen 获取长度,并用这个长度加一来设置一个字符串的长度,最后用 lstrcpy 复制到字符串中。

代码如下:

Private Declare Function GetCommandLine Lib "kernel32" Alias "GetCommandLineA" () As Long

Private Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" (ByVal lpString As Long) As Long

Private Declare Function lstrcpy Lib "kernel32" Alias "lstrcpyA" (ByVal lpString1 As String, ByVal lpString2 As Long) As Long

Public Property Get CommandLine() As String

Dim length As Long, pstr As Long

pstr = GetCommandLine() '获取字符串的指针

length = lstrlen(pstr) '获取字符串的长度

CommandLine = String(length + 1, 0) '调整字符串的大小

lstrcpy CommandLine, pstr '复制字符串

End Property

Private Sub Form_Load()

MsgBox CommandLine

End Sub

下面给出一个实例,描述如何使用该函数

#include <windows.h>

#include <stdio.h>

#include <shellapi.h>

int __cdecl main()

{

LPWSTR *szArglist;

int nArgs;

int i;

szArglist = CommandLineToArgvW(GetCommandLineW(), &nArgs);

if( NULL == szArglist )

{

wprintf(L"CommandLineToArgvW failed

");

return 0;

}

else

{

for( i=0; i<nArgs; i++)

printf("%d: %ws

", i, szArglist[i]);

LocalFree(szArglist);// Free memory allocated for CommandLineToArgvW arguments.

return(1);

}

}

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
如何用java替换看不见的字符比如零宽空格&#8203;十六进制U+200B
 干货   2023-09-10
网页字号不能单数吗,网页字体大小为什么一般都是偶数
 干货   2023-09-06
java.lang.ArrayIndexOutOfBoundsException: 4096
 干货   2023-09-06
Noto Sans CJK SC字体下载地址
 干货   2023-08-30
window.navigator和navigator的区别是什么?
 干货   2023-08-23
js获取referer、useragent、浏览器语言
 干货   2023-08-23
oscache遇到404时会不会缓存?
 干货   2023-08-23
linux下用rm -rf *删除大量文件太慢怎么解决?
 干货   2023-08-08
刀郎新歌破世界纪录!
 娱乐   2023-08-01
js实现放大缩小页面
 干货   2023-07-31
生成式人工智能服务管理暂行办法
 百态   2023-07-31
英语学习:过去完成时The Past Perfect Tense举例说明
 干货   2023-07-31
Mysql常用sql命令语句整理
 干货   2023-07-30
科学家复活了46000年前的虫子
 探索   2023-07-29
英语学习:过去进行时The Past Continuous Tense举例说明
 干货   2023-07-28
meta name="applicable-device"告知页面适合哪种终端设备:PC端、移动端还是自适应
 干货   2023-07-28
只用css如何实现打字机特效?
 百态   2023-07-15
css怎么实现上下滚动
 干货   2023-06-28
canvas怎么画一个三角形?
 干货   2023-06-28
canvas怎么画一个椭圆形?
 干货   2023-06-28
canvas怎么画一个圆形?
 干货   2023-06-28
canvas怎么画一个正方形?
 干货   2023-06-28
中国河南省郑州市金水区蜘蛛爬虫ip大全
 干货   2023-06-22
javascript简易动态时间代码
 干货   2023-06-20
感谢员工的付出和激励的话怎么说?
 干货   2023-06-18
 
>>返回首页<<
 
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有