當前位置:首頁 » 編程軟體 » 重機編程

重機編程

發布時間: 2023-07-26 15:20:28

『壹』 cnc加工中心編程G30.G31.G50,各自的用法

數銑及加工中心編程指令復習非模態G代碼00組的指令有每個指令的詳細講解G04暫停指令格式G04X(P,U)詳解G04指令有效後機床進給暫停主軸繼續運轉暫停的時間由XPU後的數值控制XU單位是秒P的單位是毫秒1s=1000msG04的程序段中不能有其他命令G04X1.0暫停一秒G04P1000暫停一秒G04U1.0暫停一秒(數車專用)G09准確停止格式G09詳解G09是一個不經常使用的指令它的功能是用來檢查切削刀具是否已精確定位使刀具在接近終點時減速進給G10可編程數據輸入格式無具體格式詳解G10這個命令本身沒有任何作用要完成相應的工作還需其他的輔助輸入而且不同的控制器其指令格式有細微差別對於FANUC控制器來說坐標模式選擇絕對(G90)和增量(G91)編程方式對所有偏置量的輸入有很大影響G90或G91可在程序中的任何位置設置也可以互相修改只要程序段再調用G10數據設置命令之前進行指定即可可在程序中設置的有效偏置量工件偏置量。。。。。G54~G59刀具長度偏置量。。。。G43或G44(取消是G49)切削半徑偏置量。。。。G41或G42(取消時G40)工件偏置量格式G10L2PXYZ加工中心G10L2PXZ車削中心字L2是固定的命令編輯偏置組號P地址可在1~6中取值P1=G54P2=G55P3=G56P4=G57P5=G58P6=G59例如G90G10L2P1X-450.0Y-375.0Z0.0該語句將會輸入X-450.0Y-375.0Z0.0到G54工件坐標偏置寄存器G11可編程數據輸入取消機械原點指令G27G28G29G30G27機床原點返回位置檢查G28第一機床原點返回指令G28有兩種形式絕對形式和增量形式G90G28X14.0Y2.0Z0.0刀具運動到點X14.0Y2.0Z0.0然後再返回機床原點G29從機械原點的回退指令和G28相反也要通過中間點並有兩種形式G30第二機床原定回退指令G31跳過指令主要和數控機床上的探測器一起使用跳轉功能G31是跳轉指令,通常只用於測量功能,需要外部輸入信號,輸入信號的地址是X4.7(信號名SKIP)。G31執行過程中如果沒有SKIP信號輸入則和G01完全一樣,如果在執行過程中SKIP信號置「1」,則在SKIP信號置「1」的位置清除剩餘的運動量,直接執行下一個程序段。在SKIP信號置「1」時,4個進給軸的坐標值被存儲在#5061~5064這4個系統變數中,供測量宏程序計算使用。你所說的主軸扭矩跳躍大概是指執行小孔深孔鑽循環(G83)時的過載扭矩檢測退回功能。使用這個功能同樣需要輸入信號,和G31用的是同一個信號。要求刀具本身有過載檢測功能,在檢測到過載時輸出一個信號到機床的X4.7(SKIP)。執行過程大致是這樣的:當執行G83過程中(Z軸位置在R和Z之間)如果刀具發出過載信號使SKIP置「1」,則進給停止,刀具退回R點。改變轉速和進給速度後再繼續執行循環。主軸轉速和進給速度改變的百分比分別在5164和5166號參數設置。G37自動刀具長度測量位置補償G45G46G47G48G45在編程方向上增加一倍編程量格式G91G00G45XYH或G91G00G45XYDG46在編程方向上減少一倍編程量G47在編程方向上增加二倍編程量G48在編程方向上減少二倍編程量G50取消比例編程G51比例縮放有效格式G51XYZP以給定點XYZ為縮放中心將圖形放大到原始圖形的P倍若省略XYZ則以程序原點為縮放中心G52局部坐標系設定格式G52XYZXYZ用於制定局部坐標系的原點在工件坐標系中的位置G52X0.0Y0.0Z0.0用於取消局部坐標系G53選擇機床坐標系G60單方向定位詳解G60隻是定位而不是切削它代替的是G00快速移動指令在絕對模式或增量模式下都可使用與G00的用法相同如果使用鏡像指令則不必改變定位方向它的定位方向和超出距離由系統參數指定)G65宏程序調用指令詳解G65在A類宏指令中的應用格式G65HmP#iQ#jR#km——宏程序的功能#i——運算結果存放出的變數名#j——被操作的第一個變數#k——被操作的第二個變數在B類宏指令中的應用格式G65PLP被調用的宏程序代號L宏程序重復運行的次數為一時可省略G92設定工件坐標系指令格式G92XYZ詳解執行該命令時刀具並不運動只是當前刀位點被設置為工件坐標系下的XYZ的設定值01組運動指令有G00G01G02G03G00快速點定位格式G00XYZG01直線插補指令格式G01XYZFG02/G03順/逆時針圓弧擦補格式G02IJG17XYFG03R__________________________________________________G02IJG18XYFG03R______________________________________________________-G02IJG19XYFG03R_______________________________________________________02組平面選擇指令G17選擇XY平面G18選擇ZX平面G19選擇YZ平面XYZ終點坐標IJK圓心坐標相對於起點在XYZ軸向的增量值R圓弧半徑F進給率03組尺寸模式G90絕對坐標編程G91相對坐標編程04組存儲行程G22存儲行程限制激活格式G22XYZIJK詳解XYZ限制區域的起始點IJK限制區域的終止點X-I>2mmY-J>2mmZ-K>2mmG23存儲行程限製取消06組輸入單元G20英制數據輸入G21公制數據輸入07組刀具半徑偏置G40刀具半徑偏取消G41刀具半徑左補償格式G41DG42刀具半徑右補償格式G42D08組刀具長度偏置G43刀具長度正偏置格式G43HG44刀具長度負偏置格式G44HG49刀具長度偏置取消09組循環固定循環代碼孔加工行程(-Z)孔底動作返回行程(+Z)用途G73斷續進給快速進給高速深孔往復排屑鑽孔G74切削進給主軸正轉切削進給攻左旋螺紋G76切削進給主軸准停刀具位移快速進給精鏜G80——————————————取消指令G81切削進給快速進給鑽孔G82切削進給暫停快速進給鑽孔G83斷續進給快速進給深孔排屑鑽G84切削進給主軸反轉切削進給攻右旋螺紋G85切削進給切削進給鏜削G86切削進給主軸停轉切削進給鏜削G87切削進給刀具移位主軸啟動快速進給背鏜G88切削進給暫停;主軸停轉手動操作後快速返回鏜削G89切削進給暫停切削進給鏜削固定循環的代碼組成G90/G91G98(返回初始點)/G99(返回R點)G73~G89使用前一定要在前一程序段中加M03/M04指令使主軸啟動固定循環指令的格式是GXYZRQPFKG是指G73~G89XY是指孔在XY平面內的坐標位置(增量或絕對值)Z是指孔底坐標值在增量方式時是R點到孔底的距離在絕對值方式時是孔底的Z坐標值R在增量方式時是初始點到R點的距離而在絕對值方式時是R點的Z坐標值Q在G73G83中是每次進刀深度在G76G87中指定刀具的讓刀量P暫停時間單位1msF進給量K固定循環的重復次數他們都是模態指令固定循環中的參數(zrqpf)也是模態的鑽孔包括鉸孔攻絲和單點鏜孔編程時需考慮鑽頭的直徑和鋒角及螺旋槽的數量10組返回模式G98固定循環返回初始點G99固定循環返回R點12組坐標系G54G55G56G57G58G5914組宏指令模式G66模態調用G67模態調用取消16組坐標旋轉G68坐標旋轉激活格式G68XYR詳解XY旋轉中心如果省略則以程序原點為中心R為旋轉角度順時針為+值逆時針為-值G69坐標旋轉取消18組極坐標輸入G15極坐標指令取消G16極坐標指令激活24組主軸速度波動G25主軸速度波動檢測功能無效G26主軸速度波動檢測功能有效格式G26PQRP以毫秒記的開始檢查時間Q允許誤差的百分比R主軸速度跳動的百分比M代碼程序控制組M00無條件強制性停止包括停止所有軸的運動主軸的旋轉冷卻液功能程序的進一步執行執行M00時控制器不會重啟所有當前有效地重要數據(進給率坐標設置主軸速度等)都被保存M00會取消主軸旋轉和冷卻液功能M01可選擇程序停止當按下操作面板上的選擇停止開關時M01同M00功能相同不按下時M01無效M02程序結束M02將終止程序但不會回到程序的開頭M30程序結束M30將終止程序並同時回到程序的開頭執行M02和M30時便取消所有軸的運動主軸旋轉冷卻液功能並且將系統重新設置到預設狀態M02執行時將停留在末尾並准備開始下一循環主軸控制組M03主軸順時針旋轉(CW)M04主軸逆時針旋轉(CCW)M05主軸停止M19主軸定位換刀M06冷卻液M07開M08開(標准)M09關附件螺紋加工M23螺紋漸退出開M24關齒輪速比范圍M41M42M43M44進給率倍率M48M49子程序M98調子程序M99子程序結束托盤M60在程序開頭激活的M功能在程序末尾激活的M功能功能的持續時間在單個程序段中有效的M00M01M02M06M30M60M功能一直有效的,直到被取消或替代M03M04M05M07M08M09鏡像M21對Y軸鏡像M22的X軸鏡像M23取消鏡像當只對X軸或Y軸鏡像時刀具的實際切削順序將與源程序相反刀補矢量方向相反圓弧插補方向相反同時鏡像時均不變鏡像功能必須在工件坐標系原點開始回到原點取消各鏡像指令必須單獨編寫鏡像加工程序中不允許帶有轉移性質的指令不允許嵌套使用使用後必須用M23取消編程實例O4151N1X6.0Y1.0N2X4.0Y3.0N3X2.0Y5.0N4M99O1111M21(鏡像開)G98P4151(調用需要鏡像的程序)宏程序的變數類型#0空變數它是空變數即所謂的空白變數它可以被系統讀取但不能賦值#1~#33局部變數它僅是暫時的當完成調用時或切斷電源時所有局部變數會被清空#100~#149#500~#531全局或全局變數完成宏程序調用仍有用變數由系統維護可以與其他程序共享#1000~上限系統變數用於設置或修改預設值可以讀寫不同的CNC數據局部變數賦值自變數列表1的賦值宏程序中的局部變數A#1B#2C#3D#7E#8F#9H#11I#4J#5K#6M#13Q#17R#18S#19T#20U#21V#22W#23X#24Y#25Z#26賦值列表2自變數列表1的賦值宏程序中的局部變數A#1B#2C#3I1#4J1#5K1#6I2#7J2#8K2#9I3#10J3#11K3#12I4#13J4#14K4#15I5#16J5#17K5#18I6#19J6#20K6#21I7#22J7#23K7#24I8#25J8#26K8#27I9#28J9#29K9#30I10#31J10#32K10#33

『貳』 你知道工業機器人是用什麼語言編程的嗎

工業機器人作為朝陽產業,未來的蓬勃發展是不容忽視的,很多人可能好奇這些機器人都是怎麼進行操作和生產的,其實很簡單,就是通過編程來控制它的行為指令。世界上有超過1500種編程語言,每種語言對機器人有不同的優勢,下面就來看看目前機器人技術中最流行的幾種編程語言。

1.C/C++

C和C++是新機器人的起點,很多硬體庫都使用這些語言。它們允許與低級硬體進行交互,允許實時性能和非常成熟的編程語言。該語言具有更多的功能。

2.Python

Python近年來開始漸漸在技術圈岩喊巧子流行起來。其中一個原因是Python(和C++)是ROS中發現的兩種主要的編程語言。它是一種解釋語言,語言的主要重點是易用性。許多人都認為這樣做非常好。

Python節省了許多常規的事情,這些事情在編程中花費時間。此外,還有大量免費的圖書館,這意味著當您需要實現一些基本功能時,您不必「重新發明」。並且由於它允許使用C/C++代碼進行簡單的綁定,這意味著代碼的性能很重的部分可以用這些語言來實現,以避免性能下降。

編程.jpg

3.Java

Java從程序員「隱藏」底層的內存功能,這使得它比C更容易編程,但這也意味著你對代碼實際做的不太了解。Java是一種解釋語言,它不會被編譯成機器代碼滲卜。相反,Java虛擬機在運行時解釋指令。使用Java的理論是,由於Java虛擬機,您可以在許多不同的機器上使用相同的代碼。在實踐中,這並不總是奏效,有時會導致代碼運行緩慢。然而,Java在機器人的某些部分非常受歡迎,因此你可能需要它。

4.C#/.NET

C#是Microsoft提供的專有編程語言。這里主要包括C#/.NET,主要是因為使用它作為主要語言。如果你要使用這個系統,你可能要使用C#。但是,首先學習C/C++可能是長期發展編碼技巧的好選擇。

編程(1).jpg

5.MATLAB

MATLAB是非常受歡迎的一些機器人工程師分析數據和開發控制系統。還有一個非常受歡迎的機器人工具箱用於MATLAB。使用MATLAB開發整個機器人系統的人,如果要分析數據,生成高級圖形或實現控制系統,需要學習MATLAB。

6.硬體描述語言(HDL)

硬體描述語言基本上是描述電子設備的編程方式。這些語言對於一些機器人專家來說是相當熟悉的,因為它們用於編程現場可編程門陣列(FPGA)。FPGA允許您開發電子硬體,而無需實際生產硅晶元,這使得它們成為更快更容易的一些開發選擇。

如果你不是電子原型,你可能永遠不會使用HDL。即使如此,重要的是知道它們存在,因為它們與其他編程語言完全不同。一方面,所有操作都是並行執行的,而不是依照基於處理器的語言進行。

編程(2).jpg

7.LISP

LISP是世界上第二大最古老的編程語言。雖然使用不夠廣泛,但在人工智慧編程中仍然非常重要。

8.工業機器人語言

幾乎每個機器人製造商都開發了自己的專有機器人編程語言。您可以通過學習Pascal熟悉其中的幾個。但是,您每次開始使用新的機器人時,仍然需要學習新的語言。

9.BASIC/帕斯卡

BASIC和Pascal,它們是幾種工業機器人語言的基礎。BASIC是為初學者設計的,是一個非常簡單的語言開始。帕斯卡爾旨在鼓勵良好的編程習慣小號,並介紹構造,如指針,它一個很好的「敲門磚」,從普通版使一個更復雜的語言。雖然,這兩種語言都有點過時。但是,如果要進行大量的低級編碼,或者想要熟悉其他工業機器人語言,還是值得一學的。

作為工業機器人的技術人員,雖然並不需要每種編程語言都會,但是常用的編程語言還是需要掌握。學無止境,只有自己掌握了大量的專業知識,再實際的生產過程中才能應用的得心應手。


這個問題怎樣回答你好呢!這樣說吧,現在市面上每家工業機器人公司的機器人編程語言都會不相同,每一家都有自己的編程語言,比如ABB機器人的編程語言叫做RAPID;STAUBLI機器人的編程語言叫VAL3;不過本質都是用底層語言封裝過的一些功能介面,因為這樣方便客戶使用和任意調用,但是在實際工作當中,有的還是直接用單片機控制的,也有的是利用到了PLC,所以作者你這個問題壓根就沒有一個你滿意的答案,機器人是機械/電氣/電子電機等技術的綜合科技結晶,粗鍵要學的知識點也是非常廣的,以上內容希望採納,評價不易,且行且珍惜,謝謝!


機器人的開發語言一般為C、C++、C++Builder、VB、VC等語言,主要取決於執行機構(伺服系統)的開發語言;機器人編程分為示教、動作級機器人編程語言、任務級編程語言三個級別;機器人編程語言分為專用操作語言(如VAL語言、AL語言、SLIM語言等)、應用已有計算機語言的機器人程序庫(如Pascal語言、JARS語言、AR-BASIC語言等)、應用新型通用語言的機器人程序庫(如RAPID語言、AML語言KAREL語言等)三種類型。目前主要應用的是SLIM語言。


『叄』 數控車床程序編程

數控編程方法:
數控機床程序編制(又稱數控機床編程)是指編程者(程序員或數控機床操作者)根據零件圖樣和工藝文件的要求,編制出可在數控機床上運行以完成規定加工任務的一系列指令的過程。具體來說,數控機床編程是由分析零件圖樣和工藝要求開始到程序檢驗合格為止的全部過程。
數控機床編程步驟
1.分析零件圖樣和工藝要求
分析零件圖樣和工藝要求的目的,是為了確定加工方法、制定加工計劃,以及確認與生產組織有關的問題,此步驟的內容包括:
確定該零件應安排在哪類或哪台機床上進行加工。
採用何種裝夾具或何種裝卡位方法。
確定採用何種刀具或採用多少把刀進行加工。
確定加工路線,即選擇對刀點、程序起點(又稱加工起點,加工起點常與對刀點重合)、走刀路線 、程序終點(程序終點常與程序起點重合)。
確定切削深度和寬度、進給速度、主軸轉速等切削參數。
確定加工過程中是否需要提供冷卻液、是否需要換刀、何時換刀等。
2.數值計算
根據零件圖樣幾何尺寸,計算零件輪廓數據,或根據零件圖樣和走刀路線,計算刀具中心(或刀尖)運行軌跡數據。數值計算的最終目的是為了獲得數控機床編程所需要的所有相關位置坐標數據。
3.編寫加工程序單
常用數控機床編程指令
一組有規定次序的代碼符號,可以作為一個信息單元存貯、傳遞和操作。
坐標字:用來設定機床各坐標的位移量由坐標地址符及數字組成,一般以X、Y、Z、U、V、W等字母開頭,後面緊跟「-」或「-」及一串數字。
准備功能字(簡稱G功能):
指定機床的運動方式,為數控系統的插補運算作準備由准備功能地址符「G」和兩位數字所組成,G功能的代號已標准化,見表2-3;一些多功能機床,已有數字大於100的指令,見表2-4。常用G指令:坐標定位與插補;坐標平面選擇;固定循環加工;刀具補償;絕對坐標及增量坐標等。
輔助功能字:用於機床加工操作時的工藝性指令,以地址符M為首,其後跟二位數字,常用M指令:主軸的轉向與啟停;冷卻液的開與停;程序停止等。
進給功能字:指定刀具相對工件的運動速度進給功能字以地址符「F」為首,後跟一串字代碼,單位:mm/min(對數控車床還可為mm/r)三位數代碼法:F後跟三位數字,第一位為進給速度的整數位數加「3」,後二位是進給速度的前二位有效數字。如1728mm/min指定為F717。二位數代碼法:F後跟二位數字,規定了與00~99相對應的速度表,除00與99外,數字代碼由01向98遞增時,速度按等比關繫上升,公比為1.12。一位數代碼法:對速度檔較少的機床F後跟一位數字,即0 ~9來對應十種預定的速度。直接指定法:在F後按照預定的單位直接寫上要求的進給速度。
主軸速度功能字:指定主軸旋轉速度以地址符S為首,後跟一串數字。單位:r/min,它與進給功能字的指定方法一樣。
刀具功能字:用以選擇替換的刀具以地址符T為首,其後一般跟二位數字,該數代表刀具的編號。
模態指令和非模態指令 G指令和M指令均有模態和非模態指令之分模態指令:也稱續效指令,一經程序段中指定,便一直有效,直到出現同組另一指令或被其他指令取消時才失效。見表2-3、表2-6 N001 G91 G01 X10 Y10 Z-2 F150 M03 S1500; N002 X15; N003 G02 X20 Y20 I20 J0; N004 G90 G00 X0 Y0 Z100 M02; 非模態指令:非續效指令,僅在出現的程序段中有效,下一段程序需要時必須重寫(如G04)。
在完成上述兩個步驟之後,即可根據已確定的加工方案(或計劃)及數值計算獲得的數據,按照數控系統要求的程序格式和代碼格式編寫加工程序等。編程者除應了解所用數控機床及系統的功能、熟悉程序指令外,還應具備與機械加工有關的工藝知識,才能編制出正確、實用的加工程序。
4.製作控制介質,輸入程序信息
程序單完成後,編程者或機床操作者可以通過CNC機床的操作面板,在EDIT方式下直接將程序信息鍵入CNC系統程序存儲器中;也可以根據CNC系統輸入、輸出裝置的不同,先將程序單的程序製作成或轉移至某種控制介質上。控制介質大多採用穿孔帶,也可以是磁帶、磁碟等信息載體,利用穿孔帶閱讀機或磁帶機、磁碟驅動器等輸入(輸出)裝置,可將控制介質上的程序信息輸入到CNC系統程序存儲器中。
5.程序檢驗
編制好的程序,在正式用於生產加工前,必須進行程序運行檢查。在某些情況下,還需做零件試加工檢查。根據檢查結果,對程序進行修改和調整,檢查--修改--再檢查--再修改……這往往要經過多次反復,直到獲得完全滿足加工要求的程序為止。
上述編程步驟中的各項工作,主要由人工完成,這樣的編程方式稱為「手式編程」。在各機械製造行業中,均有大量僅由直線、圓弧等幾何元素構成的形狀並不復雜的零件需要加工。這些零件的數值計算較為簡單,程序段數不多,程序檢驗也容易實現,因而可採用手工編程方式完成編程工作。由於手工編程不需要特別配置專門的編程設備,不同文化程度的人均可掌握和運用,因此在國內外,手工編程仍然是一種運用十分普遍的編程方法。
數控機床編程中的代碼
數控機床編程編制過程
把圖紙上的工程語言變為數控裝置的語言,並把它記錄在控制介質上。
數控機床編程的主要內容
分析圖樣、確定工藝過程:進行零件工藝分析,確定加工路線、切削用量等工藝參數。
數值計算:對形狀簡單的零件(如直線和圓弧組成的零件)的輪廓加工,計算幾何元素的起點、終點、圓弧的圓心、兩元素的交點或切點的坐標值等;對形狀復雜的零件(如非圓曲線、曲面組成的零件),用直線段或圓弧段逼近,由精度要求計算出節點坐標值,這種情況可用計算機完成數值計算。
編寫零件加工程序單編程人員根據數控系統規定的功能指令代碼及程序段格式,逐段編寫加工程序單。
程序校驗與首件試切在有CRT圖形顯示屏的數控機床上,用模擬刀具與工件切削過程的方法進行檢驗,此方法只能檢驗出運動軌跡是否正確,不能查出被加工零件的加工精度,因此,要進行零件首件試切。
數控機床編程程序段格式
每個程序段是由程序段編號,若干個指令(功能字)和程序段結束符號組成。
需要說明的是,數控機床的指令格式在國際上有很多標准,並不完全一致。而隨著數控機床的發展,不斷改進和創新,其系統功能更加強大和使用方便,在不同數控系統之間,程序格式上存在一定的差異,因此,在具體進行某一數控機床編程時,要仔細了解其數控系統的編程格式,參考該數控機床編程手冊。

『肆』 立式加工中心第四軸手工怎樣編程

G0G90G54X0.Y0.A90.S3000M3.你要注意了。一般用四軸都要好幾個坐標系。G54 G55 G56 轉一個方向加工就要一個坐標系的。不要搞的撞刀就不好了哇。

只要Z方向抬起來就可以轉四軸 要抬高點,不要撞到。G0 Z100.A180.G0G90G55X0.Y0.S3000M3

四軸加工中心編程方法是:

一般工件在空間未定位時,有六個自由度,XY三個線性位移自由度和與其對應的啊ABC三個旋轉位移自由度。六個自由度通常用笛卡爾直角坐標系的XY來表達三個線性軸,用與其對應的ABC來表達三個旋轉軸。諸如多軸數控機床,也就是加工中心在設計時,需要根據加工對象規劃設置軸數。

『伍』 可以用VB編程,運行後,是電腦關機或者重啟。求代碼,謝謝。

你先在新窗體上添加以下三個按鈕,完整代碼如下(你只要完整復制過去運行就可以了)

建立3個按鈕Command1、Command2、Command3

第一個按鈕是實現關機
第二個按鈕是實現重啟
第三個按鈕式實現注銷

保證你成功哦!

'*******************************************************************************

Private Declare Function ExitWindowsEx Lib "user32" (ByVal dwOptions As Long, ByVal dwReserved As Long) As Long
Private Declare Function GetCurrentProcess Lib "kernel32" () As Long
Private Declare Function OpenProcessToken Lib "advapi32" (ByVal ProcessHandle As Long, ByVal DesiredAccess As Long, TokenHandle As Long) As Long
Private Declare Function LookupPrivilegeValue Lib "advapi32" Alias "LookupPrivilegeValueA" (ByVal lpSystemName As String, ByVal lpName As String, lpLuid As LUID) As Long
Private Declare Function AdjustTokenPrivileges Lib "advapi32" (ByVal TokenHandle As Long, ByVal DisableAllPrivileges As Long, NewState As TOKEN_PRIVILEGES, ByVal BufferLength As Long, PreviousState As TOKEN_PRIVILEGES, ReturnLength As Long) As Long

Private Type LUID
UsedPart As Long
IgnoredForNowHigh32BitPart As Long
End Type

Private Type TOKEN_PRIVILEGES
PrivilegeCount As Long
TheLuid As LUID
Attributes As Long
End Type

Private Const EWX_SHUTDOWN As Long = 1
Private Const EWX_REBOOT = 2
Private Const EWX_LOGOFF = 0

Private Sub AdjustToken()
Const TOKEN_ADJUST_PRIVILEGES = &H20
Const TOKEN_QUERY = &H8
Const SE_PRIVILEGE_ENABLED = &H2
Dim hdlProcessHandle As Long
Dim hdlTokenHandle As Long
Dim tmpLuid As LUID
Dim tkp As TOKEN_PRIVILEGES
Dim tkpNewButIgnored As TOKEN_PRIVILEGES
Dim lBufferNeeded As Long
hdlProcessHandle = GetCurrentProcess()
OpenProcessToken hdlProcessHandle, (TOKEN_ADJUST_PRIVILEGES Or TOKEN_QUERY), hdlTokenHandle
LookupPrivilegeValue "", "SeShutdownPrivilege", tmpLuid
tkp.PrivilegeCount = 1
tkp.TheLuid = tmpLuid
tkp.Attributes = SE_PRIVILEGE_ENABLED
AdjustTokenPrivileges hdlTokenHandle, False, tkp, Len(tkpNewButIgnored), tkpNewButIgnored, lBufferNeeded
End Sub

Private Sub Command1_Click()
Call AdjustToken
ExitWindowsEx EWX_SHUTDOWN, 0
End Sub

Private Sub Command2_Click()
Call AdjustToken
ExitWindowsEx EWX_REBOOT, 0
End Sub

Private Sub Command3_Click()
ExitWindowsEx EWX_LOGOFF, 0
End Sub

熱點內容
編譯器的製作環境 發布:2025-02-06 05:54:34 瀏覽:828
學車網源碼 發布:2025-02-06 05:47:40 瀏覽:385
搭建區域網影院伺服器 發布:2025-02-06 05:47:38 瀏覽:759
廣東一區cf刷經驗房密碼都是什麼 發布:2025-02-06 05:46:20 瀏覽:633
加密工具源碼 發布:2025-02-06 05:44:52 瀏覽:13
筆記本可用存儲多大 發布:2025-02-06 05:44:48 瀏覽:157
ftp登錄後沒有反應 發布:2025-02-06 05:29:41 瀏覽:175
linux建目錄命令 發布:2025-02-06 05:29:06 瀏覽:724
安卓所有照片在哪裡 發布:2025-02-06 05:16:32 瀏覽:972
l2緩存作用 發布:2025-02-06 05:15:02 瀏覽:291