Google Go语言通过syscall,unsafe模块访问windows api,ShellExecute
公司主营业务:成都做网站、成都网站制作、成都外贸网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联推出玉屏免费做网站回馈大家。
package main
import "syscall"
import "unsafe"
func main() {
var hand uintptr = uintptr(0);
var operator uintptr = uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr("open")));
var fpath uintptr = uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr("D:\Program Files\TTPlayer\TTPlayer.exe")));
var param uintptr = uintptr(0);
var dirpath uintptr = uintptr(0);
var ncmd uintptr = uintptr(1);
shell32 := syscall.NewLazyDLL("shell32.dll");
ShellExecuteW := shell32.NewProc("ShellExecuteW");
_,_,_ = ShellExecuteW.Call(hand,operator,fpath,param,dirpath,ncmd);
OpenAI ChatGPT目前除了提供免费试用网页版给大家使用外,也提供收费的API以便我们进行二次开发。另外,这几天白天在使用OpenAI ChatGPT网页版时,很多次出现网站拥堵情况。因此,后续有必要调用API来做些事情。OpenAI GPT-3 API 包括以下好处:
高质量的文本生成: GPT-3 是一种先进的语言模型,能够生成高质量和连贯的文本。
语言理解: GPT-3 对自然语言有深刻的理解,这使其非常适合诸如语言翻译、文本摘要和情感分析等任务。
各种用例: API 可用于广泛的应用,如编写代码、撰写电子邮件和消息、创建聊天机器人等。
易于使用:API易于使用,可通过简单的HTTPS请求访问,且有许多不同编程语言的开源库可以更方便地使用。
成本效益:GPT-3 API是一种基于云的服务,无需昂贵的硬件,也无需训练自己的模型。
节省时间:GPT-3 API 可以快速完成许多自然语言任务,减少人工输入,节省时间和资源。
大数据可用性: GPT-3是基于大型数据集训练的,意味着它可以访问广泛的知识,帮助生成更准确和更有信息量的输出
window下调用API列出所有运行的进程
[Google Go]代码
package main
import (
"fmt"
"syscall"
"unsafe"
"strconv"
)
type ulong int32
type ulong_ptr uintptr
type PROCESSENTRY32 struct {
dwSize ulong
cntUsage ulong
th32ProcessID ulong
th32DefaultHeapID ulong_ptr
th32ModuleID ulong
cntThreads ulong
th32ParentProcessID ulong
pcPriClassBase ulong
dwFlags ulong
szExeFile [260]byte
}
func main() {
kernel32 := syscall.NewLazyDLL("kernel32.dll");
CreateToolhelp32Snapshot := kernel32.NewProc("CreateToolhelp32Snapshot");
pHandle,_,_ := CreateToolhelp32Snapshot.Call(uintptr(0x2),uintptr(0x0));
if int(pHandle)==-1 {
return;
}
Process32Next := kernel32.NewProc("Process32Next");
for {
var proc PROCESSENTRY32;
proc.dwSize = ulong(unsafe.Sizeof(proc));
if rt,_,_ := Process32Next.Call(uintptr(pHandle),uintptr(unsafe.Pointer(proc)));int(rt)==1 {
fmt.Println("ProcessName : "+string(proc.szExeFile[0:]));
fmt.Println("ProcessID : "+strconv.Itoa(int(proc.th32ProcessID)));
}else{
break;
}
}
CloseHandle := kernel32.NewProc("CloseHandle");
_,_,_ = CloseHandle.Call(pHandle);
}