澳门新萄京c#运维EXE文件(轻松的)

 

  1. 较为轻便的.exe程序可采纳进度调用

API技巧集
2003-4-18参预  来自西祠胡同  小编无名氏  5条商议  点击30玖拾玖次
      

在程序奉行中会境遇运转本软件的exe问,恐怕启用其余的exe文件,已达到规定的标准实施有些操作的效果与利益。上面是两种最广大的运转exe文件。

        [DllImport(“kernel32.dll”)]

Process.Start(“D:\\emr\\emras.exe”, para);

API技巧集(一)

1、调用系统dll使用其提供的方法。

        public static extern int WinExec(string exeName, int operType);
 

分析:参数1为.exe的寄存路径,参数2为.exe的推行参数

一、拖动无标题窗体:

引用的dll,

使用:

  1. 若是.exe程序中还或者有另向外调拨运输用,则上述格局可能在运行进程中报错。

包蕴头文件:

[csharp] view
plain copy

 

这种境况下,可使用直接调用cmd的施行办法

#include $#@60;winuser.h$#@62;

 

                WinExec(@”应用地址.exe”,3State of Qatar;

[DllImport(“kernel32.dll”)]

在窗体或机件的 OnMouseDown 事件中参与以下代码:

 print?

public static extern int WinExec(string exeName, int operType);

if(Button == mbLeft)
{
ReleaseCapture();
SendMessage( Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);
}

  1. [DllImport(“kernel32.dll”)]  
  2.   public static extern int WinExec(string exeName, int operType);  

private void btnShow_DoubleClick(object sender, EventArgs e)

二、弹出和倒闭光驱:

调用,WinExec(@”路径\exe的公文名”, 参数);

{

带有头文件:

operType参数如下:

        string para = “291801/1”;

#include $#@60;mmsystem.h$#@62;

[csharp] view
plain copy

        WinExec(“Cmd.exe /c cd D:\\emr && emras.exe ” + para, 0);

在窗体的OnCreate事件中步入:

 

}

mciSendString(“open cdaudio alias cd wait shareable”,0,0,0);

 print?

1、要弹出光驱时使用:

  1. 0: 隐蔽, 何况职责栏也并未最小化Logo  
  2. 1: 用近年来的朗朗上口和职分显得, 激活  
  3. 2: 最小化, 激活  
  4. 3: 最大化, 激活  
  5. 4: 用近来的深浅和岗位显示, 不激活  
  6. 5: 同 1  
  7. 6: 最小化, 不激活  
  8. 7: 同 3  
  9. 8: 同 3  
  10. 9: 同 1  
  11. 10: 同 1  

mciSendString(“set cd door open”,0,0,0);

2、最广大的ProcessStartInfo运维

2、要关张光驱时接收:

[csharp] view
plain copy

mciSendString(“set cd door closed”,0,0,0);

 

三、提取Logo:

 print?

包涵头文件:

  1. ProcessStartInfo info = new ProcessStartInfo();             
  2. info.FileName = @”路径\exe的文本名”;              
  3. info.Arguments = “”;              
  4. info.WindowStyle = ProcessWindowStyle.Minimized;             
  5. Process pro = Process.Start(info);              
  6. pro.WaitForExit();  

#include $#@60;shellapi.h$#@62;

3、结束运转的exe的长河

例子:

[csharp] view
plain copy

TIcon *Icon = new TIcon();
AnsiString FileName = “C:\\WINDOWS\\SYSTEM\\SHELL32.DLL”;
int TotalIcon;

 

//取得文件SHELL32.DLL的总Logo数
TotalIcon = (int)ExtractIcon(Form1->Handle,FileName.c_str(), -1);

 print?

//提取第贰个Logo,0为率先个,1为第三个,类推…
Icon->Handle = ExtractIcon( Form1->Handle, FileName.c_str(), 0);

  1. Process[] allProgresse = System.Diagnostics.Process.GetProcessesByName(“exe的历程名”卡塔尔(قطر‎;  
  2.  foreach (Process closeProgress in allProgresse)  
  3. {  
  4.    if (closeProgress.ProcessName.Equals(“exe的经过名”State of QatarState of Qatar  
  5.          {  
  6.                 closeProgress.Kill();  
  7.                  closeProgress.WaitForExit();  
  8.                   break;  
  9.            }  
  10.  }  

//保存Logo
Icon->SaveToFile(“C:\\1.ICO”);

四、设置顶上部分窗口(永在上边):

包涵头文件:

#include $#@60;winuser.h$#@62;

1、设置顶层窗口

SetWindowPos( Handle, HWND_TOPMOST, 0, 0, 0, 0,
SWP_NOMOVE||SWP_NOSIZE);

2、撤销顶层窗口

SetWindowPos( Handle, HWND_NOTOPMOST, 0, 0, 0, 0,
SWP_NOMOVE||SWP_NOSIZE);

API技巧集 (二)

12/3/2000 0:0:0··符东亮··yesky

  (一)不允许绳窗口

  Windows提供的只是业内的矩形窗口,要想创建一个颠三倒四的窗口就供给调用API函数来促成。建构叁个非通常的窗口,经常是先用创设区域的API函数营造二个异形的区域,再用API函数SetWindowTucsongn改动窗口的区域。那几个API函数在C++
Builder中带有在头文件wingdi.h和winuser.h里面,由此,要动用这一个API函数就要先在前后相继头部加上含有头文件的讲话:

include $#@60;wingdi.h$#@62;

include $#@60;winuser.h$#@62;

  SetWindow途观gn函数能变越来越多个窗口的区域,该函数有七个参数,第二个参数hWnd是欲设置区域的窗口句柄,第一个参数h奥迪Q5gn是欲设置的区域,第八个参数bRedraw日常设为true,即立刻重画窗口。

  用来创设区域的API函数有四个,最常用的有多少个:

  1、CreateRectPRADOgn函数,用来创设一个由X1、Y1和X2、Y2坐标点显著的矩形区域。当坐标点X1和Y1相等、X2和Y2也约等于的时候,创制的是三个星型。

  例子:

//创制圆柱形

HRGN hRect=CreateRectRgn(0,0,400,200);

SetWindowRgn(Handle,hRect,true);

//创造圆锥形

HRGN hRect=CreateRectRgn(0,0,300,300);

SetWindowRgn(Handle,hRect,true);

  2、CreateElliptic福睿斯gn函数,用来创制三个由X1、Y1和X2、Y2坐标点分明的矩形所内切的扁圆形。同样,X1、Y1和X2、Y2坐标点所分明的矩形为圆柱形时,成立的便是多少个圆形。

  例子:

//创立椭圆

HRGN hElliptic=CreateEllipticRgn(0,0,400,250);

SetWindowRgn(Handle,hElliptic,true);

//成立圆形

HRGN hElliptic=CreateEllipticRgn(0,0,400,400);

SetWindowRgn(Handle,hElliptic,true);

  3、Combine途达gn函数,能将三个区域组成为一个新区域,它有多个参数,第三个参数hrgnDest保存归中国人民解放军总后勤部的新区域,第一个参数hrgnSrc1、八个参数hrgnSrc2为欲合并的多个区域,第多个参数fnCombineMode是区域整合的章程,它的值是为上边组合措施之一:

  组合措施 表达

RGN_AND 创立七个区域的混合

RGN_COPY 建立hrgnSrc1的拷贝

RGN_DIFF 创立多个区域不相交的局部

福特ExplorerGN 构建五个区域的并集

RGN_XO奥迪Q3 建构除四个区域并集之外的某个

  例子:

//创制三个圆形和长方形交集的结合形象

HRGN hRect=CreateRectRgn(0,0,300,300);

HRGN hElliptic=CreateEllipticRgn(0,0,400,250);

CombineRgn(hRect,hRect,hElliptic,RGN_OR);

SetWindowRgn(Handle,hRect,true);

  当须要将窗口还原为规范Windows矩形窗口时,只要将SetWindowTiggogn函数的hHighlandergn参数设为0就能够了,如:

SetWindowRgn(Handle,0,true);

API技巧集 (二)

  (二)取得系统声卡的个数

  当我们编辑三个多媒体程序(如播放器)的时候,一时要求检测一下微处理机中是或不是安装了声卡,若无装声卡程序则会结束运维。

  在那间,大家将在选拔API函数waveOutGetNumDevs,调用这一个函数可再次回到系统中装置了的声卡的个数。在C++
Builder 5.0中,它被含有在头文件“mmsystem.h”里面。

  例子:

  1、首先在程序尾部插足包括头文件的代码:

#include $#@60;mmsystem.h$#@62;

  2、在窗体的OnCreate事件中参加上面包车型客车代码:

int Num;

//得到声卡的个数

Num=waveOutGetNumDevs();

if(Num)

ShowMessage(“你有安装了”+IntToStr(Num卡塔尔(قطر‎+”块声卡”State of Qatar;

else

{

ShowMessage(“你从未设置声卡!\n程序终止运转!”卡塔尔国;

Close();

}

  3、编写翻译运路程序。

API技巧集 (二)

  (三)获得、设置鼠标双击的间距时间

  在钦定间隔的时日内,一而再四次鼠标单击操作称为双击,双击间距的日子能够在调控面板中的鼠标属性之中改动。若要在自编的应用程序中能获得或安装鼠标双击的间距时间,大家只需接收Windows的四个API函数GetDoubleClickTime和SetDoubleClickTime。调用GetDoubleClickTime可以重返鼠标双击的间距时间,而使用SetDoubleClickTime则足以设置鼠标双击间距的岁月。

  下边让大家来做叁个拿走和装置鼠标双击间距时间的粗略的程序:

  首先,在Borland C++ Builder 5.0
中新建二个工程,往窗体Form1中增加四个Button组件,把它们的Caption属性分别改为“获取双击间距时间”和“设置双击间隔时间”,再增加一个艾德it组件,将Edit1的Text属性改为“200”,增添一个Label组件,把Caption属性改为“皮秒”。

  然后,双击按键Button1,在它的OnClick(单击)事件中投入上边包车型大巴代码:

//重返鼠标双击间距时间

ShowMessage(“鼠标双击间距时间为”+IntToStr(GetDoubleClickTime(卡塔尔卡塔尔(قطر‎+”纳秒”卡塔尔;

  再双击开关Button2,也在它的OnClick事件中参加代码:

//设置鼠标双击距离时间

SetDoubleClickTime(StrToInt(Edit1-$#@62;Text));

  最后,按F9编写翻译运营一下主次。点击窗口中的“获取双击间距时间”按键就能够弹出壹人展馆示当前系统鼠标双击间隔的时辰,若要设置鼠标双击间距的小时,只要改动文本框中的数值,举个例子300吗,再点击“设置双击间隔时间”开关就足以了。须要介意的是,鼠标双击间距时间的单位是纳秒,设置的值越小,间距的光阴就越小,双击的速度就越快,系统默许的是400纳秒,可不要设得太小了,不然“笔者的微管理机”会打不开的(你双击的快慢非常不够快,^_^)。

 API技巧集 (二)

  (四)运维调控面板调控台应用程序

  在调控面板里有成都百货上千的调控面板项目,这么些项目正是调控台应用程序,它们都是正经的DLL(动态链接库卡塔尔文件,大家平日索要经过它们来对Windows进行配备。rundll32.exe就是专程用来调用DLL文件的主次,在C++
Builder编制程序中,大家能够通过应用API函数WinExec运营外界程序rundll32.exe调用DLL来兑现运维调整面板的调节台应用程序。上边是访问的局地调用DLL运行调节台应用程序的事例:

  1、展开调整面板  

WinExec(“rundll32.exe shell32.dll,Control_RunDLL”,SW_SHOWNORMAL);

  2、打开药情势对话框

WinExec(“rundll32.exe shell32.dll,OpenAs_RunDLL
“c:\\autoexec.bat””,SW_SHOWNORMAL);

  3、添加Modem

WinExec(“rundll32.exe shell32.dll,Control_RunDLL
modem.cpl,,add”,SW_SHOWNORMAL);

  4、加多打字与印刷机

WinExec(“rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL
AddPrinter”,SW_SHOWNORMAL);

  5、复制磁盘

WinExec(“rundll32.exe diskcopy.dll,DiskCopyRunDll”,SW_SHOWNORMAL);

  6、鼠标

WinExec(“rundll32.exe shell32.dll,Control_RunDLL
main.cpl”,SW_SHOWNORMAL);

  7、网络

WinExec(“rundll32.exe shell32.dll,Control_RunDLL
netcpl.cpl”,SW_SHOWNORMAL);

  8、密码

WinExec(“rundll32.exe shell32.dll,Control_RunDLL
password.cpl”,SW_SHOWNORMAL);

  9、游戏调节器

WinExec(“rundll32.exe shell32.dll,Control_RunDLL
joy.cpl”,SW_SHOWNORMAL);

  10、日期/时间

WinExec(“rundll32.exe shell32.dll,Control_RunDLL
timedate.cpl”,SW_SHOWNORMAL);

  11、Internet 属性
WinExec(“rundll32.exe shell32.dll,Control_RunDLL
inetcpl.cpl”,SW_SHOWNORMAL);

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图