Win32api模拟发送postmessage到网页java applet无效模拟鼠标左键无效

Win32api模拟发送postmessage到网页java applet无效模拟鼠标左键无效

场景:
通过WIN32api模拟点击网页上的一个java applet应用的按钮,在发送postmessage时都是按照spy++的消息发送,没有模拟效果。

很奇怪现象!
同样的代码,在一个A:WIN7 32位旗舰版是没问题,在B:WIN7 32位旗舰版就不行。
两个系统是不同的ghost,但对比过IE设置那些,都是一样的,就是不同。

求助:
请教各位大神帮助,是操作系统设置问题还是我自身代码问题,求助!!!急!!!

代码片段如下:
User32.SendMessage(sunAwtCanvas, WindowMessage.WindowsMessages.WM_MOUSEACTIVATE, 0x000B027A, 0x02010001);
User32.SetCursorPos(webBrowserPositionInScreen.X + 95, webBrowserPositionInScreen.Y);
User32.PostMessageToClick(sunAwtCanvas, 0, 366 << 16 | 572);
User32.SetCursorPos(pointMouse.X, pointMouse.Y);

1个回答

发送wm_lbuttondown
wm_lbuttonup试试看

wilsonsam777777
wilsonsam777777 有发的,上面PostMessageToClick就是封装了这2个消息的发送
大约 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
postmessage 能否发送鼠标移动的消息?

是鼠标移动,不是点击某个坐标。有哪些方法可以模拟出鼠标的位移动作?

Python模拟后台鼠标点击失效问题,待解决,急!!!

我用Python在做一个自动按键脚本小程序,使用Sendmessage和Postmessage向指定程序发送指令, 本来都进行的挺顺利的,但是遇到一个问题始终无法解决。 问题是这样的:窗口程序有一个复选框,我需要向该程序窗口发送一个鼠标点击指令,点选该复选框, 当该窗口位于前台时,我的程序可以点选该复选框,没有问题,但是当我把窗口最小化之后,再运行 程序,没有任何反应,复选框没有被选中,再将该窗口显示到前台后,即使不是当前激活到窗口,也可 以实现点选复选框。一般情况下我是需要把该程序窗口最小化的,方便做其他事情,请问如何解决窗口 最小化后无法点选复选框的问题? 代码如下: ``` import win32api,win32gui,win32con win32gui.SendMessage(hwnd, win32con.WM_ACTIVATE,win32con.WA_ACTIVE,0) win32gui.SendMessage(hwnd,win32con.WM_LBUTTONDOWN,win32con.MK_LBUTTON,win32api.MAKELONG(8,30)) win32gui.SendMessage(hwnd,win32con.WM_LBUTTONUP,win32con.MK_LBUTTON,win32api.MAKELONG(8,30)) ```

js,为什么这个postMessage无法向另一个网页发送信息

## 程序目标:点击“打开副本网页”按钮,然后点击“发送信息”向打开的网页发送信息,新开的网页监听并输出接收的信息。两个页面在同个文件夹下 # 网页1 ``` <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>主页</title> </head> <body> <button class="open-copy">打开副本网页</button> <button class="send-msg">发送信息</button> <script type="text/javascript"> var openCopy = document.getElementsByClassName("open-copy")[0]; var sendMsg = document.getElementsByClassName("send-msg")[0]; openCopy.onclick = function(){ newPage = window.open("practice2.html"); }; sendMsg.onclick = function(){ newPage.postMessage("nihao","practice2.html"); } </script> </body> </html> ``` # 网页2 ``` <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>副本</title> </head> <body> <button class="get-msg">接收打印信息</button> <script type="text/javascript"> var getMsg = document.getElementsByClassName("get-msg")[0]; window.addEventListener("message",function(e){ newMsg = document.write(e.data); getMsg.onclick = function(){ console.log(e.data); } },false); </script> </body> </html> ```

怎么用postmessage组合按键。例如:ctrl+v

(我要后台发送,所以不想用keybd_event这个函数) 希望有大神出来解答我的疑惑

在C# Winform项目 利用WIN32 API 无法再次调用第三方的应用系统

在C# Winform项目,from窗体中有一个Panel控件和一个Button控件。 目前已经能够利用WIN32 API 找到“监控系统”窗口的句柄,并将那个获取到的窗口“附加”到了Panel控件上。 并能够正常在Panel控件中显示“监控系统”。 请问下,怎么样实现form窗体关闭后,再次再点击Button控件能够再次获取到“监控系统”窗口的句柄并可以放在Panel控件中正常显示“监控系统”呢? 附上自己的代码,帮忙看看是不是下面代码写得有点问题,还是其它的问题。有没有相关的参考资料,谢谢! ----点击Button控件获取“监控系统”窗口的句柄显示到Panel控件上---- private void button1_Click(object sender, EventArgs e) { IntPtr ptrjkWnd = API.FindWindow("TabWindowClass", null); //查找监控系统的句柄 API.SetParent(ptrjkWnd, this.panel1.Handle); API.ShowWindow(ptrjkWnd, WindowsApi.API.SW_MAXIMIZE); } ---点击关闭form窗体------ private void Frmjk_FormClosed(object sender, FormClosedEventArgs e) { API.PostMessage(ptravayaWnd, API.WM_CLOSE, 0, 0); API.PostMessage(ptravayaWnd, API.WM_QUIT, 0, 0); System.Threading.Thread.Sleep(10); Environment.Exit(Environment.ExitCode); }

C++ Windows API 发送鼠标点击消息问题

我想写个脚本在后台自己点击安卓模拟器的具体位置 ``` HWND hq = FindWindowA(NULL, "MuMu模拟器"); HWND hqchild = FindWindowEx(hq, NULL, NULL, TEXT("NemuPlayer")); HWND hqchildchild = FindWindowEx(hqchild, NULL, NULL, TEXT("canvas")); SendMessage(hqchildchilde, WM_LBUTTONDOWN, MK_LBUTTON, MAKELPARAM(200, 200)); Sleep(100); SendMessage(hqchildchilde, WM_LBUTTONUP, MK_LBUTTON, MAKELPARAM(200, 200)); ``` 然后程序运行之后没有任何改变,不知道具体问题出在哪。 PostMessage也试过了,没改变。

Win32消息,子窗口如何接受WM_KEYDOWN消息

我有一个主窗口,里面创建了一个子窗口。所有的操作其实都是为了对子窗口里的图片进行处理。但是一些控件如Button等放在主窗口。现在我想要这个子窗口处理我的PAGEUP和PAGEDOWN键盘消息,但是在主窗口的消息处理函数中可以接收到WM_KEYDOWN消息,而在子窗口中却不能接收到。我知道可以通过主窗口主动POST消息给子窗口实现,但是我想知道能不能直接在子窗口里接收消息。比如,主窗口放弃处理这个消息,并传递给子窗口。我对Windows的消息传递机制一直不是很清楚,希望有懂的大神简单讲解一下这个问题,非常感谢。 case WM_KEYDOWN: switch (wParam) { case VK_LEFT: // LEFT ARROW MessageBox(hWnd,"Left","Left", MB_YESNO); break; case VK_RIGHT: // RIGHT ARROW MessageBox(hWnd,"Right","Right", MB_YESNO); break; case VK_UP: // UP ARROW MessageBox(hWnd,"UP","UP", MB_YESNO); break; case VK_DOWN: // DOWN ARROW MessageBox(hWnd,"DOWN","DOWN", MB_YESNO); break; case VK_HOME: // HOME MessageBox(hWnd,"HOME","HOME", MB_YESNO); break; case VK_END: // END MessageBox(hWnd,"END","END", MB_YESNO); break; case VK_PRIOR: // PAGE UP MessageBox(hWnd,"PAGEUP","PAGEUP",MB_YESNO); break; case VK_NEXT: // PAGE DOWN MessageBox(hWnd,"PAGEDOWN","PAGEDOWN",MB_YESNO); break; default: break; } break;

C# postmessage 键盘消息问题

SendMessage(s, CommonConst.WM_LBUTTONDBLCLK, IntPtr.Zero, IntPtr.Zero); PostMessage(s, CommonConst.WM_SYSKEYDOWN, CommonConst.VK_NUMPAD1, 0); 这是两条发消息的代码。s是我定义的获取的记事本的edit的句柄。但第一条sendmessage能够成功执行,第二条postmessage 却没有反应,请问各位大神这是为什么呢

MFC OCX getmessage 经常获取不到 子线程 postmessage

VC6.0 C++ 开发的扫描仪 OCX控件 在IE运行时 getmessage 可正常获取到 子线程 postmessage 发送的消息 使用 java OLE 调用 OCX 控件时。 getmessage 经常获取不到 postmessage 发送的消息 大侠们谁能 给下思路。

DLL 中new了一个字符串,PostMessage发送给主程序,主程序处理了数据后delete时崩溃

DLL 中new了一个字符串,调用PostMessage发送给主程序,主程序处理了数据后delete 当主程序和dll都用vs2010编译(v100)时,不会崩溃, 当主程序和dll都用vs2017编译(v141)时,也不会崩溃, 当主程序用vs2010编译(v100),dll用vs2017编译(v141)时,就会崩溃, 出错的地方: \_ASSERTE(_CrtIsValidHeapPointer(pUserData)); 注释: * If this ASSERT fails, a bad pointer has been passed in. It may be * totally bogus, or it may have been allocated from another heap. * The pointer MUST come from the 'local' heap. 好像是说delete的指针不是本地堆内存

它进程对SysTreeView32模拟点击

请问:windows控件SysTreeView32模拟点击(无论双击或者左键单击)怎么做? 有人说需要WM_NCHITTEST,但是似乎还是没用 我连发了6个消息,都没有用 SendMessage(m_lefttreeview, WM_NCHITTEST, NULL, m_iconOrders); PostMessage(m_lefttreeview, WM_LBUTTONDOWN, NULL, m_iconOrders); PostMessage(m_lefttreeview, WM_LBUTTONUP, NULL, m_iconOrders); PostMessage(m_lefttreeview, WM_LBUTTONDBLCLK, NULL, m_iconOrders); PostMessage(m_lefttreeview, WM_NCHITTEST, NULL, m_iconOrders); PostMessage(m_lefttreeview, WM_LBUTTONUP, NULL, m_iconOrders); ------------- 那种mouse_event的函数我能够实现此功能,但是此方案不太适合

怎么获取其他进程postmessage的消息

如题,现在写的程序需要用到其他进程postmessage的消息。 WNDCLASSEX注册的窗口过程函数调用不到,getmessage只能获取本线程post的消息 测试代码如下: ``` LRESULT CALLBACK MyWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { if (1233 != uMsg) return DefWindowProc(hWnd, uMsg, wParam, lParam); else std::cout << "helloworld" << lParam << std::endl; return 0; } int _tmain(int argc, _TCHAR* argv[]) { WNDCLASSEX wcex; wcex.cbSize = sizeof(WNDCLASSEX); wcex.style = CS_HREDRAW | CS_VREDRAW; wcex.lpfnWndProc = MyWndProc; wcex.cbWndExtra = wcex.cbClsExtra = 0; wcex.hInstance = GetModuleHandle(NULL); wcex.hIcon = wcex.hIconSm = LoadIcon(NULL, IDI_APPLICATION); wcex.hCursor = LoadCursor(NULL, IDC_ARROW); wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); wcex.lpszMenuName = NULL; wcex.lpszClassName = TEXT("__HARDWARE1__"); int x = RegisterClassEx(&wcex); HWND wnd = nullptr; wnd = CreateWindow(TEXT("__HARDWARE1__"), TEXT("HARDWARE_IMPL"), WS_POPUP, 0, 0, 60, 60, NULL, NULL, GetModuleHandle(NULL), &x); int err; if (wnd == nullptr) err = GetLastError(); std::thread a = std::thread( [wnd]() { while (1) { MSG msg; GetMessage(&msg, wnd, 0, 0); std::cout << "helloworld" << msg.message << std::endl; } }); while (true) { std::cin >> err; PostMessage(wnd, 1233, 0, err); } return 0; } ```

如何用winapi隐藏程序窗口。

简单说:我会隐藏记事本,但不会隐藏记事本的'另存为'窗口,我可以在另存为的窗口显示之后再将其隐藏,但这样很难看,不是我想要的。我希望可以一直让记事本的所有功能都在后台完成。 我做了一个python的例子。 ``` # -*- coding: utf-8 -*- #! python2 #!/usr/bin/python import win32api,win32con,win32gui,win32process,time def main_(): o = () try: st = win32process.STARTUPINFO() st.dwFlags = win32con.STARTF_USESHOWWINDOW st.wShowWindow = win32con.SW_HIDE # 隐藏窗口 o = win32process.CreateProcess(None, "Notepad", None, None, 0, win32con.NORMAL_PRIORITY_CLASS, None, None, st) except Exception as e: print e time.sleep(0.5) win32gui.EnumThreadWindows(o[3],TW,0) def TW(h,f): if win32gui.GetClassName(h)=='Notepad': time.sleep(0.5) menu=win32gui.GetMenu(h)# menu=win32gui.GetSubMenu(menu,0)# menus=win32gui.GetMenuItemID(menu,2)# win32gui.PostMessage(h, win32con.WM_COMMAND, menus, 0) if __name__ == '__main__': main_() ``` 虽然我不太懂c++,但基本的读代码还是没问题的。。所以答案如果有c++的话非常欢迎。。

怎么获得windows传递消息的发送顺序,而不是消息队列的接收的顺序

怎么获得windows传递消息的发送顺序,而不是消息队列的接收的顺序,请问消息的发送顺序可以获得么?

真实鼠标点击和模拟鼠标点击的区别

简单的说 有个游戏要做脚本(以下均为前台),不管你怎么在他窗口外模拟鼠标移动点击,他都不掉线.同时也可以在他窗口内模拟鼠标移动.就是不能发送鼠标点击事件,发送了 也不是马上掉线,而是大概2分钟左右掉线. 如果模拟鼠标点击间隔超过20秒,也不掉线. 同时 模拟鼠标点击间隔哪怕半秒,只要你用真实鼠标同时进行点击,他也不掉线. 求原理 求指点 同时请教: 真实鼠标点击和模拟鼠标点击的区别~ 不是移动 是点击 例如前台 不动鼠标的情况下 手动移动到某点 单击左键 和 用PostMessage 或者SendMessage 发送点击事件的区别 其中并不含有移动等操作.

如何取出有效的窗口句柄

我的程序中用CreateProcess打开了一个第三方应用,我想给这个应用程序发消息(postmessage或sendmessage),但是取不到有效的窗口句柄,用findwindow有时能取到,有时又取不到,很着急啊,不知道怎么弄才好,关键这个进程ID下有很多窗口,如何判断哪个才是可以响应消息的窗口呢?

Win98下无法向dos发送消息

因特殊情况所以需要在win98环境运行, 想通过vb调用SendMessage或PostMessage发送WM_KEYDOWN或WM_CHAR消息到MS-DOS中,也就是win98的命令行程序中,用工具获取了父窗口和子窗口都尝试过,然而都不能发送,api返回值是1,大于0,发送成功,但实际上命令行窗口中没有显示,尝试发送到text文本中却可以。不知道哪位有什么办法解决一下,谢谢

tkinter界面最小化到托盘如何保持按钮启动的程序后台一直运行。

我使用网上的代码,把用户界面最小化后按钮启动的程序停止运行了,请问有大神指点一下吗? ``` import win32api import win32con import win32gui_struct import win32gui from multiprocessing import Process import GetData import SaveAwx from Parameter import * import numpy as np from tkinter import * import threading Main = None class SysTrayIcon(object): QUIT = 'QUIT' SPECIAL_ACTIONS = [QUIT] FIRST_ID = 1314 def __init__(s, icon, hover_text, on_quit=None, default_menu_index=None, window_class_name=None, ): s.icon = icon s.hover_text = hover_text s.on_quit = on_quit menu_options = (('退出', None, s.QUIT),) s._next_action_id = s.FIRST_ID s.menu_actions_by_id = set() s.menu_options = s._add_ids_to_menu_options(list(menu_options)) s.menu_actions_by_id = dict(s.menu_actions_by_id) del s._next_action_id s.default_menu_index = (default_menu_index or 0) s.window_class_name = window_class_name or "SysTrayIconPy" message_map = {win32gui.RegisterWindowMessage("TaskbarCreated"): s.refresh_icon, win32con.WM_DESTROY: s.destroy, win32con.WM_COMMAND: s.command, win32con.WM_USER + 20: s.notify, } # 注册窗口类。 window_class = win32gui.WNDCLASS() window_class.hInstance = win32gui.GetModuleHandle(None) window_class.lpszClassName = s.window_class_name window_class.style = win32con.CS_VREDRAW | win32con.CS_HREDRAW; window_class.hCursor = win32gui.LoadCursor(0, win32con.IDC_ARROW) window_class.hbrBackground = win32con.COLOR_WINDOW window_class.lpfnWndProc = message_map # 也可以指定wndproc. s.classAtom = win32gui.RegisterClass(window_class) def show_icon(s): # 创建窗口。 hinst = win32gui.GetModuleHandle(None) style = win32con.WS_OVERLAPPED | win32con.WS_SYSMENU s.hwnd = win32gui.CreateWindow(s.classAtom, s.window_class_name, style, 0, 0, win32con.CW_USEDEFAULT, win32con.CW_USEDEFAULT, 0, 0, hinst, None) win32gui.UpdateWindow(s.hwnd) s.notify_id = None s.refresh_icon() win32gui.PumpMessages() def show_menu(s): menu = win32gui.CreatePopupMenu() s.create_menu(menu, s.menu_options) # win32gui.SetMenuDefaultItem(menu, 1000, 0) pos = win32gui.GetCursorPos() # See http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/menus_0hdi.asp win32gui.SetForegroundWindow(s.hwnd) win32gui.TrackPopupMenu(menu, win32con.TPM_LEFTALIGN, pos[0], pos[1], 0, s.hwnd, None) win32gui.PostMessage(s.hwnd, win32con.WM_NULL, 0, 0) def destroy(s, hwnd, msg, wparam, lparam): if s.on_quit: s.on_quit(s) # 运行传递的on_quit nid = (s.hwnd, 0) win32gui.Shell_NotifyIcon(win32gui.NIM_DELETE, nid) win32gui.PostQuitMessage(0) # 退出托盘图标 def notify(s, hwnd, msg, wparam, lparam): if lparam == win32con.WM_LBUTTONDBLCLK: # 双击左键 pass # s.execute_menu_option(s.default_menu_index + s.FIRST_ID) elif lparam == win32con.WM_RBUTTONUP: # 单击右键 s.show_menu() elif lparam == win32con.WM_LBUTTONUP: # 单击左键 nid = (s.hwnd, 0) win32gui.Shell_NotifyIcon(win32gui.NIM_DELETE, nid) win32gui.PostQuitMessage(0) # 退出托盘图标 if Main: Main.root.deiconify() return True """ 可能的鼠标事件: WM_MOUSEMOVE WM_LBUTTONDOWN WM_LBUTTONUP WM_LBUTTONDBLCLK WM_RBUTTONDOWN WM_RBUTTONUP WM_RBUTTONDBLCLK WM_MBUTTONDOWN WM_MBUTTONUP WM_MBUTTONDBLCLK""" def _add_ids_to_menu_options(s, menu_options): result = [] for menu_option in menu_options: option_text, option_icon, option_action = menu_option if callable(option_action) or option_action in s.SPECIAL_ACTIONS: s.menu_actions_by_id.add((s._next_action_id, option_action)) result.append(menu_option + (s._next_action_id,)) else: result.append((option_text, option_icon, s._add_ids_to_menu_options(option_action), s._next_action_id)) s._next_action_id += 1 return result def refresh_icon(s, **data): hinst = win32gui.GetModuleHandle(None) if os.path.isfile(s.icon): # 尝试找到自定义图标 icon_flags = win32con.LR_LOADFROMFILE | win32con.LR_DEFAULTSIZE hicon = win32gui.LoadImage(hinst, s.icon, win32con.IMAGE_ICON, 0, 0, icon_flags) else: # 找不到图标文件 - 使用默认值 hicon = win32gui.LoadIcon(0, win32con.IDI_APPLICATION) if s.notify_id: message = win32gui.NIM_MODIFY else: message = win32gui.NIM_ADD s.notify_id = (s.hwnd, 0, win32gui.NIF_ICON | win32gui.NIF_MESSAGE | win32gui.NIF_TIP, win32con.WM_USER + 20, hicon, s.hover_text) win32gui.Shell_NotifyIcon(message, s.notify_id) def create_menu(s, menu, menu_options): for option_text, option_icon, option_action, option_id in menu_options[::-1]: if option_icon: option_icon = s.prep_menu_icon(option_icon) if option_id in s.menu_actions_by_id: item, extras = win32gui_struct.PackMENUITEMINFO(text=option_text, hbmpItem=option_icon, wID=option_id) win32gui.InsertMenuItem(menu, 0, 1, item) else: submenu = win32gui.CreatePopupMenu() s.create_menu(submenu, option_action) item, extras = win32gui_struct.PackMENUITEMINFO(text=option_text, hbmpItem=option_icon, hSubMenu=submenu) win32gui.InsertMenuItem(menu, 0, 1, item) def prep_menu_icon(s, icon): # 首先加载图标。 ico_x = win32api.GetSystemMetrics(win32con.SM_CXSMICON) ico_y = win32api.GetSystemMetrics(win32con.SM_CYSMICON) hicon = win32gui.LoadImage(0, icon, win32con.IMAGE_ICON, ico_x, ico_y, win32con.LR_LOADFROMFILE) hdcBitmap = win32gui.CreateCompatibleDC(0) hdcScreen = win32gui.GetDC(0) hbm = win32gui.CreateCompatibleBitmap(hdcScreen, ico_x, ico_y) hbmOld = win32gui.SelectObject(hdcBitmap, hbm) # 填满背景。 brush = win32gui.GetSysColorBrush(win32con.COLOR_MENU) win32gui.FillRect(hdcBitmap, (0, 0, 16, 16), brush) # "GetSysColorBrush返回缓存的画笔而不是分配新的画笔。" # - 暗示没有DeleteObject # 画出图标 win32gui.DrawIconEx(hdcBitmap, 0, 0, hicon, ico_x, ico_y, 0, 0, win32con.DI_NORMAL) win32gui.SelectObject(hdcBitmap, hbmOld) win32gui.DeleteDC(hdcBitmap) return hbm def command(s, hwnd, msg, wparam, lparam): id = win32gui.LOWORD(wparam) s.execute_menu_option(id) def execute_menu_option(s, id): menu_action = s.menu_actions_by_id[id] if menu_action == s.QUIT: win32gui.DestroyWindow(s.hwnd) else: menu_action(s) class _Main: def main(s): import tkinter as tk s.root = tk.Tk() s.S = Scrollbar(s.root) s.T = Text(s.root, height=4, width=50) s.S.pack(side=RIGHT, fill=Y) s.T.pack(side=LEFT, fill=Y) s.S.config(command=s.T.yview) s.T.config(yscrollcommand=s.S.set) quote = "Start reading files\n" s.T.insert(END, quote) s.T.update() s.goBtn = Button(text="Go!", command=s.tt) s.goBtn.pack() icons = 'D:\\1.ico' hover_text = "SysTrayIcon.py Demo" # 悬浮于图标上方时的提示 s.sysTrayIcon = SysTrayIcon(icons, hover_text, on_quit=s.exit, default_menu_index=1) s.root.bind("<Unmap>", lambda event: s.Unmap() if s.root.state() == 'iconic' else False) s.root.protocol('WM_DELETE_WINDOW', s.exit) s.root.resizable(0, 0) s.root.mainloop() def switch_icon(s, _sysTrayIcon, icons='D:\\2.ico'): _sysTrayIcon.icon = icons _sysTrayIcon.refresh_icon() # 点击右键菜单项目会传递SysTrayIcon自身给引用的函数,所以这里的_sysTrayIcon = s.sysTrayIcon def Unmap(s): s.root.withdraw() s.sysTrayIcon.show_icon() def exit(s, _sysTrayIcon=None): s.root.destroy() print('exit...') def tt(s): while True: print("**********************") quote = "Start reading files\n" s.T.insert(END, quote) s.T.update() ``` ``` ``` ``` ```

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

总结了 150 余个神奇网站,你不来瞅瞅吗?

原博客再更新,可能就没了,之后将持续更新本篇博客。

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

外包程序员的幸福生活

今天给你们讲述一个外包程序员的幸福生活。男主是Z哥,不是在外包公司上班的那种,是一名自由职业者,接外包项目自己干。接下来讲的都是真人真事。 先给大家介绍一下男主,Z哥,老程序员,是我十多年前的老同事,技术大牛,当过CTO,也创过业。因为我俩都爱好喝酒、踢球,再加上住的距离不算远,所以一直也断断续续的联系着,我对Z哥的状况也有大概了解。 Z哥几年前创业失败,后来他开始干起了外包,利用自己的技术能...

优雅的替换if-else语句

场景 日常开发,if-else语句写的不少吧??当逻辑分支非常多的时候,if-else套了一层又一层,虽然业务功能倒是实现了,但是看起来是真的很不优雅,尤其是对于我这种有强迫症的程序"猿",看到这么多if-else,脑袋瓜子就嗡嗡的,总想着解锁新姿势:干掉过多的if-else!!!本文将介绍三板斧手段: 优先判断条件,条件不满足的,逻辑及时中断返回; 采用策略模式+工厂模式; 结合注解,锦...

深入剖析Springboot启动原理的底层源码,再也不怕面试官问了!

大家现在应该都对Springboot很熟悉,但是你对他的启动原理了解吗?

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

2020阿里全球数学大赛:3万名高手、4道题、2天2夜未交卷

阿里巴巴全球数学竞赛( Alibaba Global Mathematics Competition)由马云发起,由中国科学技术协会、阿里巴巴基金会、阿里巴巴达摩院共同举办。大赛不设报名门槛,全世界爱好数学的人都可参与,不论是否出身数学专业、是否投身数学研究。 2020年阿里巴巴达摩院邀请北京大学、剑桥大学、浙江大学等高校的顶尖数学教师组建了出题组。中科院院士、美国艺术与科学院院士、北京国际数学...

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

你期望月薪4万,出门右拐,不送,这几个点,你也就是个初级的水平

先来看几个问题通过注解的方式注入依赖对象,介绍一下你知道的几种方式@Autowired和@Resource有何区别说一下@Autowired查找候选者的...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

《Oracle Java SE编程自学与面试指南》最佳学习路线图2020年最新版(进大厂必备)

正确选择比瞎努力更重要!

《Oracle Java SE编程自学与面试指南》最佳学习路线图(2020最新版)

正确选择比瞎努力更重要!

字节跳动面试官竟然问了我JDBC?

轻松等回家通知

面试官:你连SSO都不懂,就别来面试了

大厂竟然要考我SSO,卧槽。

终于,月薪过5万了!

来看几个问题想不想月薪超过5万?想不想进入公司架构组?想不想成为项目组的负责人?想不想成为spring的高手,超越99%的对手?那么本文内容是你必须要掌握的。本文主要详解bean的生命...

自从喜欢上了B站这12个UP主,我越来越觉得自己是个废柴了!

不怕告诉你,我自从喜欢上了这12个UP主,哔哩哔哩成为了我手机上最耗电的软件,几乎每天都会看,可是吧,看的越多,我就越觉得自己是个废柴,唉,老天不公啊,不信你看看…… 间接性踌躇满志,持续性混吃等死,都是因为你们……但是,自己的学习力在慢慢变强,这是不容忽视的,推荐给你们! 都说B站是个宝,可是有人不会挖啊,没事,今天咱挖好的送你一箩筐,首先啊,我在B站上最喜欢看这个家伙的视频了,为啥 ,咱撇...

代码注释如此沙雕,会玩还是你们程序员!

某站后端代码被“开源”,同时刷遍全网的,还有代码里的那些神注释。 我们这才知道,原来程序员个个都是段子手;这么多年来,我们也走过了他们的无数套路… 首先,产品经理,是永远永远吐槽不完的!网友的评论也非常扎心,说看这些代码就像在阅读程序员的日记,每一页都写满了对产品经理的恨。 然后,也要发出直击灵魂的质问:你是尊贵的付费大会员吗? 这不禁让人想起之前某音乐app的穷逼Vip,果然,穷逼在哪里都是...

立即提问
相关内容推荐