快速关机重启函数 FB版
作者:轮回 日期:2009-07-09
复制内容到剪贴板
程序代码
程序代码#Include "windows.bi"
Enum _SHUTDOWN_ACTION
ShutdownNoReboot
ShutdownReboot
ShutdownPowerOff
End Enum
#Define SE_SHUTDOWN_PRIVILEGE &H13
#Define AdjustCurrentProcess 0
Declare Function RtlAdjustPrivilege Lib "ntdll" Alias "RtlAdjustPrivilege" (ByVal Privilege As ULong,ByVal Enable As BOOLEAN,ByVal Client As BOOLEAN,ByVal WasEnabled As PBOOLEAN) As DWORD
Declare Function NtShutdownSystem Lib "ntdll" Alias "NtShutdownSystem" (ByVal shutdown As _SHUTDOWN_ACTION) As DWORD
Dim bprev As BOOLEAN = FALSE
RtlAdjustPrivilege(SE_SHUTDOWN_PRIVILEGE,TRUE,AdjustCurrentProcess,@bprev)
NtShutdownSystem(ShutdownNoReboot or ShutdownPowerOff)
If GetLastError<>0 Then
MessageBox(NULL,Hex(GetLastError()),"",MB_OK)
SetLastError(0)
EndIf
系统静音切换FB实现
作者:轮回 日期:2009-05-26
防止程序重复运行的三种方法
作者:轮回 日期:2009-05-17
很多时候,我们生成的程序并不需要到多次同时运行,那么就需要禁止程序重复运行了。在网上搜索了下,一共找到用API实现的三种方法,转为了FB来实现。如有兄弟发现有更好的办法,请不吝指教。
1、
#Include "windows.bi"
Sub CheckRun(ByVal lpName As String)
If OpenEvent(2031619, FALSE, StrPtr(lpName)) <> 0 Then
MessageBox(0,"程序已经运行,请不要重复打开程序。","Error",MB_ICONSTOP)
End
End If
CreateEvent(0, FALSE, FALSE,StrPtr(lpName))
End Sub
CheckRun("sanhen")
Print "Test"
sleep
1、
复制内容到剪贴板
程序代码
程序代码#Include "windows.bi"
Sub CheckRun(ByVal lpName As String)
If OpenEvent(2031619, FALSE, StrPtr(lpName)) <> 0 Then
MessageBox(0,"程序已经运行,请不要重复打开程序。","Error",MB_ICONSTOP)
End
End If
CreateEvent(0, FALSE, FALSE,StrPtr(lpName))
End Sub
CheckRun("sanhen")
Print "Test"
sleep
列出系统进程和PID
作者:轮回 日期:2009-05-07
复制内容到剪贴板
程序代码
程序代码#Include once "windows.bi"
#Include once "win/tlhelp32.bi"
Dim As HANDLE hSnapShot
Dim As PROCESSENTRY32 ProcessInfo
Dim As Uinteger result
Dim hProcess As HANDLE
hSnapShot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0)
ProcessInfo.dwSize = SizeOf(ProcessInfo)
If Process32First(hSnapShot, @ProcessInfo) <> 0 Then
Do
Print ProcessInfo.szExeFile & " : " & ProcessInfo.th32ProcessID
Loop While Process32Next(hSnapShot, @ProcessInfo) <> 0
End If
CloseHandle( hSnapShot)
sleep
Tags: API processlist ProcessInfo Process32First Process32Next
Hello World
作者:轮回 日期:2009-05-03
一些常用的系统路径
作者:轮回 日期:2009-04-25
修改盘符
作者:轮回 日期:2009-04-20
复制内容到剪贴板
程序代码
程序代码#include once "windows.bi"
#Include once "win/winbase.bi"
Declare Sub ChangeMountPoint(OldVol As String,NewVol As String)
ChangeMountPoint("d:\","w:\")
Sub ChangeMountPoint(OldVol As String,NewVol As String)
Dim As String buff
Dim As BOOL bFlag
buff = Space(MAX_PATH)
bFlag =GetVolumeNameForVolumeMountPoint(OldVol,buff,MAX_PATH)
If bFlag<>0 Then
DeleteVolumeMountPoint(OldVol)
SetVolumeMountPoint(NewVol,buff)
End If
End Sub
Tags: 修改盘符 API freebasic SetVolumeMountPoint





