初次提交
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
//go:build windows
|
||||
// +build windows
|
||||
|
||||
package common
|
||||
|
||||
import (
|
||||
"syscall"
|
||||
"unsafe"
|
||||
)
|
||||
|
||||
func ChangeArg(param string) {
|
||||
|
||||
if kernel32, err := syscall.LoadDLL("Kernel32.dll"); err == nil {
|
||||
if GetCommandLineA, err := kernel32.FindProc("GetCommandLineW"); err == nil {
|
||||
u, _, _ := GetCommandLineA.Call()
|
||||
|
||||
u16, _ := syscall.UTF16FromString(param)
|
||||
|
||||
for k, v := range u16 {
|
||||
*(*byte)(unsafe.Pointer(u + uintptr(k*2+0))) = byte(v)
|
||||
*(*byte)(unsafe.Pointer(u + uintptr(k*2+1))) = byte(v >> 8)
|
||||
}
|
||||
|
||||
*(*uint16)(unsafe.Pointer(u + uintptr(len(u16)*2+1))) = 0
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user