怎样隐藏应用程序的任务条图标

来源:计算机等级考试    发布时间:2012-08-28    计算机等级考试视频    评论

  在BCB中显示2000新式对话框

  我自己测试了一下,在2000和xp下能显示新式对话框,不过不能使用bcb中的组件,只能自己调用api函数,再一次说明了api函数的强大.我的程序如下,希望大家指教.
  //main.h
  //---------------------------------------------------------------------------
  #ifndef mainH
  #define mainH
  //---------------------------------------------------------------------------
  #include <Classes.hpp>
  #include <Controls.hpp>
  #include <StdCtrls.hpp>
  #include <Forms.hpp>
  #include <Dialogs.hpp>
  #include <ExtCtrls.hpp>
  //---------------------------------------------------------------------------
  class TForm1 : public TForm
  {
  __published: // IDE-managed Components
  TButton *Button1;
  TPanel *Panel1;
  TMemo *Memo1;
  TPanel *Panel2;
  TGrouPBox *GroupBox1;
  TCheckBox *CheckBox1;
  TButton *Button2;
  void __fastcall Button1Click(TObject *Sender);
  void __fastcall FormCreate(TObject *Sender);
  void __fastcall FormDestroy(TObject *Sender);
  void __fastcall Button2Click(TObject *Sender);
  void __fastcall CheckBox1Click(TObject *Sender);
  private: // User declarations
  public: // User declarations
  LPOPENFILENAMEA   pOpenFile;
  BYTE        *pBuf;
  __fastcall TForm1(TComponent* Owner);
  void __fastcall DisplayInMemo(String str);
  };
  //---------------------------------------------------------------------------
  extern PACKAGE TForm1 *Form1;
  //---------------------------------------------------------------------------
  #endif

  //main.c
  //---------------------------------------------------------------------------
  #include <vcl.h>
  #pragma hdrstop
  #include "main.h"
  //---------------------------------------------------------------------------
  #pragma package(smart_init)
  #pragma resource "*.dfm"
  TForm1 *Form1;
  //---------------------------------------------------------------------------
  __fastcall TForm1::TForm1(TComponent* Owner)
  : TForm(Owner)
  {
  }
  //---------------------------------------------------------------------------
  void __fastcall TForm1::Button1Click(TObject *Sender)
  {
  String str;
  BOOL  bReturn = GetOpenFileName(pOpenFile);
  if(bReturn)
  {
  str.sprintf( "您选择的文件为%s",pOpenFile->lpstrFile);
  DisplayInMemo(str);
  }else{
  str.sprintf( "您没有选择的文件");
  DisplayInMemo(str);
  }
  }
  //---------------------------------------------------------------------------
  void __fastcall TForm1::FormCreate(TObject *Sender)
  {
  String str;
  pBuf =(BYTE *)malloc(1024);
  memset(pBuf,0,1024);
  pBuf = "*.txt";
  pOpenFile = (LPOPENFILENAMEA)malloc(sizeof(OPENFILENAMEA));
  memset(pOpenFile,0,sizeof(OPENFILENAMEA));
  pOpenFile- >lStructSize = sizeof(OPENFILENAMEA);
  pOpenFile- >hwndOwner = Handle;
  pOpenFile- >hInstance = HInstance;
  pOpenFile- >lpstrFilter = "文本文件(*.txt)";
  pOpenFile- >nFilterIndex = 0;
  pOpenFile- >nMaxFile = 255;
  pOpenFile- >Flags = OFN_EXPLORER;
  pOpenFile- >lpstrFile = pBuf;
  pOpenFile- >lpstrTitle = "我的文件对话框";
  pOpenFile- >lpstrInitialDir = ".//";
  //pOpenFile- >
  str.sprintf( "显示2000样式对话框演示");
  DisplayInMemo(str);
  }
  //---------------------------------------------------------------------------
  void __fastcall TForm1::FormDestroy(TObject *Sender)
  {
  free((void *)pOpenFile);
  }
  //---------------------------------------------------------------------------
  void __fastcall TForm1::DisplayInMemo(String str)
  {
  if(Memo1- >Lines->Count > 100){
  Memo1- >Lines->Clear();
  }
  Memo1- >Text = str + char(13) + char(10) + Memo1->Text;
  }
  void __fastcall TForm1::Button2Click(TObject *Sender)
  {
  Close();  
  }
  //---------------------------------------------------------------------------
  void __fastcall TForm1::CheckBox1Click(TObject *Sender)
  {
  if(CheckBox1- >Checked){
  pOpenFile- >Flags |= OFN_READONLY;
  }else{
  pOpenFile- >Flags &= !OFN_READONLY;
  }
  }
  //---------------------------------------------------------------------------
  在bcb5测试通过.

  如何屏蔽系统ALT+F4

  第一步:在你的密码窗口的头文件的 public部分加上以下两段代码:
  //这是自定义响应消息的函数:
  void __fastcall OnCloseForm(TMessage Message);
  //定义一个消息域:
  BEGIN_MESSAGE_MAP
  MESSAGE_HANDLER(WM_SYSCOMMAND, TMessage, OnCloseForm)
  END_MESSAGE_MAP(TForm)
  第二步:在密码窗口的代码中增加此函数的实现:(注 TfWelcome 是密码窗口的名字,改成你自己的密码窗口名称)
  void __fastcall TfWelcome::OnCloseForm(TMessage Message)
  {
  if(Message.WParam==SC_CLOSE){
  //此消息拦截是为了防止用户关闭登录窗口 。
  if(Application- >MessageBox(" 您确实要关闭本系统?”。","金浪软件提醒",48|1)==1){
  Application- >Terminate();//如果用户选择“是”,就关闭整个程序。
  }
  }
  }
  说明:这样用户无论如何都关不了你的密码窗口了,要关就把整个程序关了。

  调用API函数NetBios来获得网卡物理地址

  本程序是调用API函数NetBios来获得网卡物理地址的。

  //Get MAC Address
  //Proto: bool MAC(char *Mac);
  //return: true if success and Mac is MAC address,
  // false if fail.
  //
  bool MAC(char *Mac)
  {
  typedef struct _ASTAT_
  {
  ADAPTER_STATUS adapt;
  NAME_BUFFER NameBuff [30];
  }ASTAT, *PASTAT;

  ASTAT Adapter;

  NCB ncb;
  UCHAR uRetCode;
  char tmp[40];
  Mac[0]='/0';
  memset( &ncb, 0, sizeof(ncb) );
  ncb.ncb_command = NCBRESET;
  ncb.ncb_lana_num = 0;
  uRetCode = Netbios( &ncb );
  if (uRetCode!=0)
  {
  strcat(Mac, "Init Error!");
  return false;
  }
  memset(&ncb, 0, sizeof(ncb) );
  ncb.ncb_command = NCBASTAT;
  ncb.ncb_lana_num = 0;
  strcpy((char *)ncb.ncb_callname, "* " );//这个"*"代表获得本机网卡地址,换成IP地址就可以获得局域网内其他机器的网卡地址。

  ncb.ncb_buffer =(unsigned char *) &Adapter;
  ncb.ncb_length = sizeof(Adapter);

  uRetCode = Netbios( &ncb );
  if ( uRetCode == 0 )
  {
  for(int i=0;i <6;i++)
  {
  sprintf(tmp, "%02X ",(int)Adapter.adapt.adapter_address[i]);
  strcat(Mac,tmp);
  }
  sprintf(tmp," Software: %d.%d",Adapter.adapt.rev_major,Adapter.adapt.rev_minor);
  strcat(Mac,tmp);
  return true;
  }
  else
  {
  strcat(Mac,"Unknown.");
  return false;
  }
  }

  细说3721网络实名“病毒”(人家用C++写的)

  最近浏览一些门户网站时,会不知不觉的被安装上一个名为“3721网络实名”的IE插件。虽说这些门户网站和3721本是好意,可是这样单方面地安装上这么一个插件有点不妥!之所以说它是病毒,因为它同样是开机自动启动,而且虽然带来 一些方便,但是使系统运行的极不稳定,拖慢上网速度。在s8s8.net的论坛上看 到很多网友都说关机时经常会出现 explorer.exe 出错的提示。我也是同样深受 其害,仔细研究了一下,问题就出在这个“3721网络实名”上!更可气的是,可能是由于程序做的比较仓促,完全没有卸载功能!
  这里附上它的源代码,通过代码可以看出这不是木马。不过程序写的很烂……
  #include "windows.h"
  #include "winbase.h"
  void main()
  {
  char buf[MAX_PATH];
  ::ZeroMemory(buf, MAX_PATH);
  ::GetWindowsDirectory(buf, MAX_PATH);
  char filename[MAX_PATH];
  ::ZeroMemory(filename, MAX_PATH);
  strcpy(filename, buf);
  strcat(filename, "//Downloaded Program Files//CnsMinIO.dll");
  ::MoveFileEx(filename, NULL, MOVEFILE_DELAY_UNTIL_REBOOT);
  ::ZeroMemory(filename, MAX_PATH);
  strcpy(filename, buf);
  strcat(filename, "//Downloaded Program Files//CnsMin.dll");
  ::MoveFileEx(filename, NULL, MOVEFILE_DELAY_UNTIL_REBOOT);
  ::ZeroMemory(filename, MAX_PATH);
  strcpy(filename, buf);
  strcat(filename, "//Downloaded Program Files//cnsio.dll");
  ::MoveFileEx(filename, NULL, MOVEFILE_DELAY_UNTIL_REBOOT);
  }

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答